你给文字描述,AI艺术作画,精美无比!附源码,快来试试!
作者:韩信子@ShowMeAI
深度学习实战系列:https://www.showmeai.tech/tutorials/42
TensorFlow 实战系列:https://www.showmeai.tech/tutorials/43
本文地址:https://www.showmeai.tech/article-detail/313
声明:版权所有,转载请联系平台与作者并注明出处
收藏ShowMeAI查看更多精彩内容
AI 在艺术界的覆盖越来越广,从最早的 GPT3 等模型文本生成和音乐创作,到最近非常让人惊艳的艺术画绘制,最近最流行的2个付费工具是 OpenAI 的 Dall-E2和 MidJourney。
通过使用 AI 高级算法(各类 Diffusion 模型),它们可以根据人类的提示文本信息创作极其精美的艺术画品,从肖像到风景画,全部都能完成,创作的精美逼真程度有时甚至与人类艺术家不相上下,如下图就来自AI作画生成。
上面提到的商业工具 OpenAI 的 Dall-E2和 MidJourney都非常强大并且可以产生一流的图像(大家可以在它们的官方测试),但它们都有一些访问和使用限制。 Dall-E2 不可公开访问,MidJourney 的免费套餐仅提供 25 张图片。
但我们找到了开源的替代 AI 产品 Disco Diffusion,它是一款功能强大的文本到艺术画生成器,可与 MidJourney 相媲美,而且完全免费。
下面 ShowMeAI 带大家来体验Disco Diffusion,基于它的代码生成图像,你也快来试试!
Disco Diffusion介绍
Disco Diffusion 是发布于 Google Colab 平台的一款利用人工智能深度学习进行数字艺术创作的工具,它是基于 MIT 许可协议的开源工具,可以在 Google Drive 直接运行,也可以部署到本地运行,目前最新的版本是 Disco Diffusion v5.6。
用白话讲 Disco Diffusion 的基本工作就是把你给出的 Prompts(提示/描述)由文字信息变成图像信息,把你用文字描述的画面『画』出来。实际操作也基本如此,很简单,下面是几张基于文本提示用 Disco Diffusion 生成的图片。
文本提示: A digital painting of cyberpunk city by beeple, mist, trending on artstation, V-Ray.
文本提示: Spaceship about to landing on a cornfield, steampunk, clouds in the sky, by Greg Rutkowski, concept art.
文本提示: A beautiful painting of captivating castles on hills and mountains, along plains and rivers, by Ismail Inceoglu.
AI作画实践
我们下面准备在 Google Colab 中完成整个绘画过程,简单地说,大家只需要准备好浏览器(保证可以访问 Google),有 Google 账号的话会更方便。
步骤1. 打开Disco Diffusion Google Colab
准备好浏览器,并保证 Google 访问正常,然后点击 这里,大家会直接在浏览器进入 Google colab 的项目地址,如下图所示。
Colab项目中大家可以看到编号从 1-5 的对应步骤,我们只需按下运行代码的小播放按钮即可执行对应的代码。不过因为是定制作画,大家需要做一些设置和填入部分提示信息,如下步骤。
步骤2.添加文字提示prompt
展开设置 (3) 阶段的内容,可以看到更详细的子设置,我们。在『Prompts』(提示1)部分,修改文本提示,之后 Diffusion 模型就可以根据你的提示作画啦!
步骤3. 生成图像
接下来就可以运行代码作画啦!我们按从上到下的顺序运行各个阶段。 运行的方法非常简单,只需按下左侧代码块对应的小播放按钮,如下图所示。
接下来大家就可以等待AI作画啦!在 Colab 工具的免费版本中,完全渲染生成 1028x768 的图像大约需要 10 分钟。 大家在等待期间可以做其他事情。
生成的图像将自动保存在谷歌网盘/google drive中。
root\AI\Disco_Diffusion\images_out\TimeToDisco*
AI绘画产品结果对比
我们来对比一下,同样的提示文本语句下,Dall-E2、MidJourney 和我们使用 DIsco Diffusion 生成的图片。
我用类似的提示输入了所有三个工具。
A beautiful painting of a singular lighthouse, shining its light across a tumultuous sea of blood by greg rutkowski and thomas kinkade, Trending on artstation.", "yellow color scheme"
翻译成中文就是:一幅美丽的奇异灯塔画作,将光芒照耀在汹涌的红色海洋中。 greg rutkowski 和 thomas kinkade 的黄色配色方案,artstation网站上的流行趋势。
Disco Diffusion
Disco Diffusion AI 生成的图片如下:
MidJourney
MidJourney AI 生成的图片如下:
Dall-E2
OpenAI Dall-E2 生成的图像如下:
大家觉得这段文字描述,生成的图片中,3个平台哪个结果最好看?你也动手修改描述,一键生成自己的艺术画吧!!
参考资料
- OpenAI 的 Dall-E2:https://openai.com/dall-e-2/
- MidJourney:https://www.midjourney.com/app
- OpenAI 的 Dall-E2:https://openai.com/dall-e-2
- MidJourney:https://www.midjourney.com/app/
- Google Colab:https://colab.research.google.com/
- Disco Diffusion Google Colab
你给文字描述,AI艺术作画,精美无比!附源码,快来试试!的更多相关文章
- 开源方案搭建可离线的精美矢量切片地图服务-8.mapbox 之sprite大图图标文件生成(附源码)
项目成果展示(所有项目文件都在阿里云的共享云虚拟主机上,访问地图可以会有点慢,请多多包涵). 01:中国地图:http://test.sharegis.cn/mapbox/html/3china.ht ...
- 第十六节、特征描述符BRIEF(附源码)
我们已经知道SIFT算法采用128维的特征描述子,由于描述子用的是浮点数,所以它将会占用512字节的空间.类似的SUFR算法,一般采用64维的描述子,它将占用256字节的空间.如果一幅图像中有1000 ...
- 【Android初级】使用TypeFace设置TextView的文字字体(附源码)
在Android里面设置一个TextView的文字颜色和文字大小,都很简单,也是一个常用的基本功能.但很少有设置文字字体的,今天要分享的是通过TypeFace去设置TextView的文字字体,布局里面 ...
- Java异常封装(自己定义错误码和描述,附源码)
真正工作了才发现,Java里面的异常在真正工作中使用还是十分普遍的.什么时候该抛出什么异常,这个是必须知道的. 当然真正工作里面主动抛出的异常都是经过分装过的,自己可以定义错误码和异常描述. 下面小宝 ...
- Android ORC文字识别之识别身份证号等(附源码)
项目地址https://github.com/979451341/OrcTest 我们说说实现这个项目已实现的功能,能够截图手机界面的某一块,将这个某一块图片的Bitmap传给tess-two的代码来 ...
- 第十五节、韦伯局部描述符(WLD,附源码)
纹理作为一种重要的视觉线索,是图像中普遍存在而又难以描述的特征,图像的纹理特征一般是指图像上地物重复排列造成的灰度值有规则的分布.纹理特征的关键在于纹理特征的提取方法.目前,用于纹理特征提取的方法有很 ...
- 使用Pytorch进行图像分类,AI challenger 农作物病害分类竞赛源码解读
1.首先对给的数据进行划分,类型为每个类单独放在一个文件夹中 import json import shutil import os from glob import glob from tqdm i ...
- Python实战:截图识别文字,过万使用量版本!(附源码!!)
前人栽树后人乘凉,以不造轮子为由 使用百度的图片识字功能,实现了一个上万次使用量的脚本. 系统:win10 Python版本:python3.8.6 pycharm版本:pycharm 2021.1. ...
- java并发编程的艺术(三)---lock源码
本文来源于翁舒航的博客,点击即可跳转原文观看!!!(被转载或者拷贝走的内容可能缺失图片.视频等原文的内容) 若网站将链接屏蔽,可直接拷贝原文链接到地址栏跳转观看,原文链接:https://www.cn ...
随机推荐
- 使用Fiddler劫持网络资源为前端开发助力(示例:Dynamic CRM 表单开发 也能热更新? )
背景: 使用过vue开发的童鞋应该都知道,在开发vue项目的过程中,有个叫"热更新"的功能特别爽,在传统html开发到初次接触vue时,才发现原来前端开发可以这么香.热更新的表现形 ...
- 【JDBC】学习路径7-转账-commit事务操作
现在我们要做一个转账系统. 第一章:创建一张新的表格(用户银行账户表格) 在之前的JDBC_01数据库中新增一个表格,名字为:Account 其中,有id.银行卡号.银行密码.账户余额. 创建表格 ...
- Hadoop相关WebUI端口记录
以下均为默认端口号,可根据配置文件修改:HDFS:50070yarn:8088Hive:10002HBase:60010Spark:8080Flink:8081Storm:8080
- KingbaseES Truncate 与 Delete 机制比较
使用过Oracle的都知道,Truncate操作由于不需要写redo日志,因此,在性能上会比delete操作更高效,但在实际使用过程中,有时会发现delete比truncate速度更快.以下介绍下二者 ...
- LVGL 模拟仿真(Windows+CodeBlocks)
一.准备材料 Code Blocks官网:https://www.codeblocks.org/ Code Blocks 汉化包:链接: https://pan.baidu.com/s/12zB5bD ...
- 对于Java中权限修饰符的理解
老是把Java中权限修饰符给忘记,写一个博客加深印象吧 权限分为四个作用域:当前类,同一个包,其他包的子类,其他包的类. 首先要知道包的概念,Java中一个包是指一个package下的所有文件. pr ...
- .NET 部署Https(SSL)通过代码方式
在上一个文章中,传送门,给大家介绍了怎么在配置文件中使用 Kestrel 部署 Https,正好今天有小伙伴稳问到:可以通过代码的方式实现 Kestrel 的 Https 的部署吗?答案是肯定的,我们 ...
- k8s控制器和Pod Template的关系
Pod 本身并不能自愈(self-healing).如果一个 Pod 所在的 Node (节点)出现故障,或者调度程序自身出现故障,Pod 将被删除:同理,当因为节点资源不够或节点维护而驱逐 Pod ...
- Java 读写锁 ReadWriteLock 原理与应用场景详解
Java并发编程提供了读写锁,主要用于读多写少的场景,今天我就重点来讲解读写锁的底层实现原理@mikechen 什么是读写锁? 读写锁并不是JAVA所特有的读写锁(Readers-Writer Loc ...
- Node.js(五)学生管理CRUD
npm init -y(初始化项目) npm install express(引入express) npx express-generator -e(自动生成模板.添加对 ejs 模板引擎的支持) n ...