来源:https://diwfpqo78m.feishu.cn/docx/NOl4dsah8o4LtixcOv4cdjB3nfb
-
超分:一般指使用Ai技术提升图片分辨率,提高清晰度
-
NAI:Novel AI,一般特指 Leak
-
咒语:prompts
-
施法/吟唱/t2i:Text2Image
-
魔杖:t2i/i2i 参数
-
i2i:Image2Image, 一般特指全部图片生成
-
inpaint: i2i 一种 maskredraw,可以局部重绘
-
ti/emb/炼丹: Train 中的文本反转,一般特指 Embedding 插件
-
hn/hyper/冶金: hypernetwork,超网络
-
炸炉: 指训练过程中过度拟合,但炸炉前的日志插件可以提取二次训练
-
废丹: 指完全没有训练成功
-
美学/ext: aesthetic_embeddings, emb 一种,特性是训练飞快,但在生产图片时实时计算。
-
db/梦展: DreamBooth,目前一种性价比高(可以在极少步数内完成训练)的微调方式,但要求过高
-
ds: DeepSpeed,微软开发的训练方式,移动不需要的组件到内存来降低显存占用,可使 db 的 vram 需求降到 8g 以下。开发时未考虑 win, 目前在 win 有兼容性问题故不可用
-
8bit/bsb: 一般指 Bitsandbyte,一种 8 比特算法,能极大降低 vram 占用,使 16g 可用于训练 db。由于链接库问题,目前/预计未来在 win 不可用
-
VAE:Variational autoencoders (VAEs) 是一种用于学习潜在表示的深度学习技术。它们也被用来绘制图像,在半监督学习中取得最先进的成果,以及在句子之间进行插值。
-
CFG:Classifier Free Guidance Scale,用于衡量模型生成的预期图片和你的提示保持一致的程度。 Cfg Scale 值为 0 时,会生成一个基于种子的随机图像。论文地址
-
Loss functions:在优化算法的上下文中,用于评估候选解决方案(即一组权重)的函数称为目标函数。对于神经网络,我们寻求最小错误。 因此,目标函数通常被称为成本函数或损失函数,由损失函数计算的值简称为“loss”。原理解析
-
潜在空间:压缩数据的表示,其中相似的数据点在空间上更靠近在一起。参考阅读
-
损失:一种衡量指标,用于衡量模型的预测偏离其标签的程度。或者更悲观地说是衡量模型有多差。要确定此值,模型必须定义损失函数。例如,线性回归模型通常将均方误差用于损失函数,而逻辑回归模型则使用对数损失函数。
-
超参数:Hyperparameter,机器学习算法的参数。 示例包括在决策林中学习的树的数量,或者梯度下降算法中的步长。 在对模型进行定型之前,先设置超参数的值,并控制查找预测函数参数的过程,例如,决策树中的比较点或线性回归模型中的权重。
-
Pipeline:要将模型与数据集相匹配所需的所有操作。 管道由数据导入、转换、特征化和学习步骤组成。 对管道进行定型后,它会转变为模型。
-
epoch:在训练时,整个数据集的一次完整遍历,以便不漏掉任何一个样本。因此,一个周期表示(N/批次规模)次训练迭代,其中 N 是样本总数。
-
batch size:一个批次中的样本数。例如,SGD 的批次规模为 1,而小批次的规模通常介于 10 到 1000 之间。批次规模在训练和推断期间通常是固定的;不过,TensorFlow 允许使用动态批次规模。
-
iteration 迭代:模型的权重在训练期间的一次更新。迭代包含计算参数在单个批量数据上的梯度损失。
-
Tensor:TensorFlow 程序中的主要数据结构。张量是 N 维(其中 N 可能非常大)数据结构,最常见的是标量、向量或矩阵。张量的元素可以包含整数值、浮点值或字符串值。
-
checkpoint:一种数据,用于捕获模型变量在特定时间的状态。借助检查点,可以导出模型权重,跨多个会话执行训练,以及使训练在发生错误之后得以继续(例如作业抢占)。请注意,图本身不包含在检查点中。
-
embeddings:一种分类特征,以连续值特征表示。通常,嵌入是指将高维度向量映射到低维度的空间。在 TensorFlow 中,会按反向传播损失训练嵌套,和训练神经网络中的任何其他参数时一样。
-
激活函数:一种函数(例如 ReLU 或 S 型函数),用于对上一层的所有输入求加权和,然后生成一个输出值(通常为非线性值),并将其传递给下一层。
-
weight:线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。
-
ENSD:ENSD 是 eta 噪声种子增量,它改变了种子。NAI 使用 31337。
-
CLIP:一种非常先进的神经网络,可将提示文本转换为数字表示。对一个相对复杂场景的文本描述,AI 需要能“理解”并匹配到对应的画面,大部分项目依赖的都是一个叫 CLIP 的模型。CLIP 在生成模型的潜在空间进行搜索,从而找到与给定的文字描述相匹配的潜在图像,它非常现代且高效。WebUi 使用的是 clip-interrogator 项目,它结合了 blip 和 clip 项目,优化图像到文本的过程。blip 负责从原图片中解读文本,由 clip 负责解读适合创作的新图像的描述。ignore-last-layers-of-clip-model
-
LoRA:就像滤镜,在基础模型之上的一个补丁模型,用来训练特定风格、特定人物、特定动作等效果。
-
ACGN Diffusion:Animation/Comic/Game/Novel,动画/漫画/游戏/小说。
项目变现
变现模式
-
接口费用,会员费或点数
-
商业版权,如剧院200块钱获得图片商业授权、化妆品品牌的商单
-
流量引流和广告
-
卖图、卖关键词
-
代跑AI绘画,闲鱼,提供图片关键词,卖家用MidJourney、Disco Diffusion生成图片,售价5-15元不等
-
卖国外AI绘画平台教程,199元AI绘画课程
-
商家提供海外AI绘画平台使用教程、壁纸下载公众号的入驻通道,学员把生成AI图片放到公众号供下载
-
商家每天发布壁纸下载量的前二十名,前几名一般都有一千多下载量,一次下载0.2-0.3元,一天两三百
-
买教程的人,大部分是工作需要,如画师、游戏概念设计的
-
工作更高效,甲方给一个主题,可以同时给他生成七八张图,之前确认一个草图花三天,现在一个小时
-
文字向游戏不需高价请画师配图,直接找AI生成图片,对大众审美够用
-
用AI绘画来寻找灵感
-
服装设计、珠宝设计、厨具设计、CG游戏角色,服装博主“JINNY ”使用AI生成的概念图作为设计参考,博主“小狐狸毕减索是AI玩家”用AI做杯子设计,用NovelAI生成“小黄图”
情报导航
https://www.360AI.cc
收藏导航
https://github.com/hua1995116/awesome-ai-painting
https://pharmapsychotic.com/tools.html
https://draw.dianas.cyou/,@Github
https://www.aiartapps.com/
https://guide.novelai.dev/
2022-10.1 ~ 2023-2月21日
-
真·拿嘴做视频!Meta「AI导演」一句话搞定视频素材,网友:我已跟不上AI发展速度
-
大神微调Stable Diffusion,打造神奇宝贝新世界
-
从第一性原理出发,分析AI会如何改变视觉内容的创作和分发-36氪
-
谷歌最近放出了两个工作:Imagen Video和Phenaki,如何看待文本生成视频工作的发展? - 知乎
-
如何评价ai绘画网站novelai? - 知乎
-
GAN、扩散模型应有尽有,CMU出品的生成模型专属搜索引擎Modelverse来了
-
「羊驼打篮球」怎么画?有人花了13美元逼DALL·E 2亮出真本事
-
https://twitter.com/hashtag/novelAI?src=hashtag_click
-
太酷了!网页端实现真实3d世界!打造GTA不是梦!Web3d潜力无限!
-
AI终于能生成流畅3D动作片了,不同动作过渡衔接不出bug,准确识别文本指令丨开源 - 知乎
-
AI绘画的当下,人类美术还有未来吗? - 知乎
-
如何评价2022年九,十月份的一系列AI绘画最新技术? - 知乎
-
实测 | AI 绘画三大难题,女生与拉面不可兼得?!
-
AI绘画热度居高不下!多家大厂纷纷入局
-
万字长文:产品经理视角下的AI绘画全解析
获取更多情报
更多情报欢迎进群订阅
(2023年4月3日)当前的权益说明
-
最新情报十大分类导航
-
最新发布前沿研究报告
-
可移动端访问AI应用汇总表(目前已更新629个)
-
4未来每增加一份精品VIP情报整理,涨价10元
-
同时已进群的老会员权益自动升级,无需补价
-
提供ChatGPT3.5 模型 && AI绘画 体验群
-
AI绘画系统教程指南,会员入口:2023年最全AI绘画应用教程
-
1414个关于人工智能、机器学习和数据公司的收录和图谱
-
AI绘画效果合集
部分情报相关内容一览
9大分类全方位跟踪ChatGPT和AIGC情报
实时收集精选研究报告及商业洞察
451个AI应用分类收录,链接和介绍表
全球收录1414个MAD公司名录和背景
AI绘画从在线体验到模型应用及变现思路
提供艺术家风格参照和Prompt手册工具
手残党也能成为艺术家!4个热门AI绘画平台的创作经验总结
来源:https://diwfpqo78m.feishu.cn/docx/V85AdocG7oJW5wxyZhNcR2JEnqw
AI画画,无疑是当下最火热的话题之一。彩云这段时间也抽空研究了下用 AI画画,在创作的过程中发现 AI 真的很强大,给了我很多惊喜。下面这些图就是我用 AI 创作的作品,
初次用 AI 作画在还不是很熟练的情况就感觉就已经画的还不错了,至少比我自己画的要好,简直是像我这种手残党的救星了,AI 作画让每个人都有成为艺术家的可能性。
今天这篇文章主要会讲到我研究过的几个平台的使用经验及教程,非常干货,带你快速入门 AI 作画,记得点赞收藏,赶紧把 AI 创作学起来。
大概尝试了 4 个 AI 作画平台,分别是:Midjourney、Disco Diffusion、Stable Diffusion、百度文心。
一、Midjourney
网站链接:https://www.midjourney.com/home
Midjourney 是托管在 Discord 服务器上的 AI 作画工具,先讲这个工具是因为它对于初学者非常友好,使用上非常简单,生成的图片质量高,速度快。对于想对 AI 作画入门的同学来说,我个人觉得应该是首选了。目前我觉得它唯一的缺点就是需要付费,不过前期作为实验,大概能免费生成几十张图片,想玩一玩的朋友我觉得足够了。
这里放一些大佬用这个工具创作的优秀作品,太好看了。
下面分享下快速使用的教程
-
- 用 Google 浏览器,打开 Midjourney 官网,加入演示版
-
- 进入到 discord,随便选择一个新加入用户的分组。你应该能看到很多人在群组里不断生成新的 AI 图片,此时你其实已经可以在这里开始你自己的 AI 作画了。
但如果在这里发的话,生成的图片很容易被消息冲走。所以,我建议你可以创建一个子房间,然后在属于自己的子房间里进行创作,虽然这个房间仍然是公开的,但其实大概率不会有人来,你可以安静的画画了。如何创建子房间呢?
-
- 新建一个子房间。点右上角的子区图标,然后点创建
在新子区属于一个房间名,并且随便打一段话,然后就可以在左边看到自己创建的子房间了。(这里有个我踩过的坑,就是你创建一个子房间后一定要发条信息,类似于微信拉群后要发个信息,群才能被激活一样,不然你还是看不到自己的房间)
这样你就可以得到一个属于自己的全新房间,当然别人也可以进来,只是会比较安静,输入的信息不容易被冲走
-
- 有了子房间后就可以正式开始作画了。这一步是 AI 作画最核心的地方,从输入这里点+号可以上传图片给 AI 作参考,生成的图跟自己想的可能不一样,但也比较相似,只是这样用的人不多,更多的还是通过关键词还生成。
一般用第一个 imagine,然后输入关键词
可能一开始的时候会对生成的图片有疑惑,这里我也简单解释下,每次生成的图片下面的数字编号是从左到右,从上到下这样的顺序。U 和 V 的意思分别是放大添加细节 upscales (U) ,按构图重新计算 variations (V)。
再次生成图片后底部有几个功能,分别是重新做变化、细节尺寸放大、降噪处理、增加细节处理和重置效果。
-
- 如果你一开始不知道输入什么关键词才好,我建议你可以直接到 Midjourney 官网的大佬专区( https://www.midjourney.com/showcase )参考大佬的关键词,或者在其他房间参考别人的关键词,也可以利用谷歌翻译把自己想说的按照下面的公式翻译后出图,关键词尽量具体,AI 出图也会更加具体。
-
- 这里分享一个我从油管上一位大佬学到的关键词公式:
主体内容+气氛灯光色彩+构图+风格参考
主体内容
-
宇宙飞船
-
一艘/一群 宇宙飞船
-
一艘 卡通风格的 宇宙飞船
-
一艘 类似使命召唤 废土风格的 宇宙飞船 爆炸了
-
一艘 类似使命召唤 废土风格的 宇宙飞船 在空中时 爆炸了
+加入环境
-
周围是一群红色的/蓝色的小型飞行器
-
背景是一片沙漠/城市
-
背景是一片 被遗弃的 古代城市 随处可见高耸的工业塔
+加入气氛
雾蒙蒙的、烈日下、恐怖的、风暴席卷的
+加入灯光
顶光的、雾气光、漫反射的、强对比的
+加入色彩(色彩三要素)
低饱和度的、颜色鲜艳的、花里胡哨的、强反射的、主色调、某种颜色是主色
+加入构图
黄金分割的、三分法的、电影镜头式的、广角的、鸟瞰图
+加入风格参考
超清细节的、照片级别的、写实的、抽象的、2D/3D、4K\8K、数字雕刻的、概念艺术的、建筑设计、水墨草稿、水彩风的、海报风的、某个软件(blender/zbrush/octane render/unreal engine)、某个电影/游戏、某个艺术家、某个艺术平台
-
- 另外,还有些进阶小技巧就是,你可以单独设置一些分辨率
图片比例 Xxxx —ar16:9
甚至是图片中的元素权重,更多的规则大家可以去看官方写的规范,非常全了,我这里就不过多赘述了 https://midjourney.gitbook.io/docs
二、Disco Diffusion
网站链接:https://colab.research.google.com/github/alembics/disco-diffusion
这个 AI 工具优势就是代码开源,适合二次开发,搞 AI 作画也就都是免费的,但免费的同时缺点也比较明显,速度比较慢,第一次使用会有些门槛,需要配置一些参数。
分享几张用用这个算法生成的优秀作品,大家也可以跟前面的作品效果进行对比
我这里也分享下我在使用过程中的一些关键配置教程
这里看似需要设置很多参数,但实际上把主要设置收起来发现需要设置的其实不会很多,咱们一项一项来
- 1. set up
设置分配的服务器,要选择到 T4,速度最快。如果发现分配的不对,可以点击代码执行程序,点终止,然后重新运行分配
- 2. Settings
设置一些 AI 图片生成的参数,这个算法生成的图片会保存在谷歌云盘里,所以你需要有一个谷歌账号,然后设置存放的文件夹名称。
在 Extra settings 中设置 intermedite_saves 中设置存多少过程图,一般看最终结果就行,设置为 0。
在 prompts 设置关键词,这个设置也就是 AI 作图的灵魂,优秀作品就是通过这个关键词生成的。因为这里本质上是程序语言,所以一定要注意语法正确,如果写错的话,会有波浪线和黑体字提示。
- **3. **Diffuse
设置画多少步给你看一次图,初次使用的话,保持默认就行。
- 4. 开始绘画
设置完成后,点程序上的运行
在第一次画的时候时间会比较久,第二次开始的时候,就可以直接从关键词的地方开始运行,会快很多。补一个非常详细的教程 https://www.youtube.com/watch?v=w7B1rfhnqY8
三、Stable Diffusion
这个算法下有 2 个产品,我体验过,操作非常简单就不写具体教程,基本有手就会,这里就简单分享下。
几张用这个算法生成的作品
一个是 hugging( https://huggingface.co/spaces/PaddlePaddle/ERNIE-ViLG ),这个是一个免费的生成工具,是一位大佬用自己的服务器搭建的,使用上非常简单,无需任何配置,但生产的图片质量不大高。
另一个是 Dreamstudio( https://beta.dreamstudio.ai/dream ),这个用法上也非常简单,大家也都应该是打开网站就会用了,值得注意的是这个网站其实也是付费的,只是一开始会给你一些积分。如果你的积分消耗完了,它就必须得付费才能继续使用。
四、百度文心
网站链接:https://wenxin.baidu.com/moduleApi/ernieVilg
最后再分享一个就是百度的文心 AI 作图工具,这个工具我初步体验了下,生成的图片感觉质量都不大高的样子。由于这个生成速度很慢,而且初次使用生成的图不大好,我就没继续研究了。
也分享几张官方放出来的优秀作品,感兴趣的也可以研究研究。
五、如何利用好 AI 作画工具呢?
AI 作画已经成为当下最热门的趋势,作为设计师的我们要如何利用好这个新技术呢?我觉得至少有 3 点:
-
创意发散,可以利用脑暴关键词生成参考图
-
零碎时间充分利用。边输出边干活,因为出图较慢,建议中间穿插着去做别的事,不然等起来会有些焦虑
-
成为 AI 艺术家。如果你已经精通关键词训练,手残党也完全有机会成为艺术家了,但前提是你还得必须提升自己的审美,毕竟 AI 作图的瓶颈还是在于你的审美水平。
最后
我记得在今年年初的时候,AI 画出来的图连人的五官都不是太好,生成感明显,但经过不到 1 年时间的自我学习进化,现在已经比很多人的绘画能力强很多,甚至大有能超越一些专业原画师的水平的趋势。
照这种发展趋势下去,据说部分原画师已经开始为自己的前途担忧了,这个曾经觉得最不可能被取代的岗位,现在也似乎有了危机感。这个时候,我们似乎都需要思考,作为人来说还有哪些能力是最后的倔强呢?有点细思极恐了。
原文链接:https://www.uisdc.com/4-ai-draw-platform
最全AI绘画Disco Diffusion教程
来源:https://diwfpqo78m.feishu.cn/docx/OyW8dgqwsoS2HxxiSuTccIMun0d
最近,我被 AI 绘画刷屏了。让我不敢相信的是,我所看到的一幅幅精美、具备艺术性的作品竟然是由 AI 创作的。
在我的印象中,AI 创作的东西都是很死板的,并不具备艺术性,比如:用 AI 来下棋、用 AI 来翻译文章、用 AI 来辅助自动驾驶等一系列具备规则性的、看似固化的“创作”。
但随着时代的发展,没想到它还可以创作具有「艺术性」的绘画作品。这就让我很惊讶了。
- 艺术与思想
黑格尔曾说:艺术是绝对精神的“外化”,艺术是人类活动最高精神之一。
由此可见,艺术对每个人都是很重要的。我们每个人都需要自我表达,而艺术是最好的自我表达方式。
以往,由于我们不懂一系列创作思想和绘画技巧,而无缘艺术创作。
但现在,我们可以依靠 AI 来表达我们的思想,通过艺术作品来外化我们的思想,帮助我们将思想作品化,这对我们每个人来说就很有意义了。
- 使用 AI 创作绘画作品
好了,说了这么多,我们如何使用 AI 创作绘画作品呢?
其实很简单,并没有大家以为的那么难。
并不需要你懂深奥的技术,只要你有只字不差的阅读能力,跟着我下面的步骤一步步操作,你也可以使用 AI 创作出属于你的绘画作品。
2.1 进入在线创作平台
我们要使用的这个 AI 创作工具是机器学习圈子很火的 Disco Diffusion V 5.2,它是一个开源项目,利用了 CLIP-Guided Diffusion 的人工智能图像生成技术,让你可以通过简单的文本输入创造出精美的图像,我们可以使用 Google Colab 笔记本运行它。
首先,你需要用浏览器打开 Disco Diffusion V 5.2 Colab 的在线创作地址:
https://colab.research.google.com/github/alembics/disco-diffusion/blob/main/Disco_Diffusion.ipynb
温馨提示:访问此网站需要科学上网,请自行解决哦~
打开链接后,你可以看到如下内容。代码看不懂没关系,跟着接下来的步骤一步步操作就好了。
2.1.1 保存副本文件
进入后,你要先在云端硬盘中保存一份副本,在副本上进行接下来的操作。若是直接在现有网页程序中操作,你后续对程序的修改将不会生效。
根据提示登录 Google 账号。
2.1.2 确认程序能正常运行
登录后,系统会自动在你的 Google 云盘中复制一个副本。接下来,进入副本程序,先确认程序是否可以正常运行。点击「代码执行程序 - 全部运行」,点击「连接到 Google 云端硬盘」。
若是能在程序的 「Diffuse!」 模块中看到 AI 实时生成的画面,就代表程序在正常运行。
随后,你可以让程序持续运行生成默认作品;或者点击「代码执行程序 - 中断执行」,开始个性化配置,生成属于你的作品。
2.2 快速创作你的作品
刚刚你已经运行了系统默认程序,并且生**成了默认作品。**如果你想快速学会「如何通过简单的语言描述生成绘画作品」,你可以只看 2.2 节内容。
我会在后面章节详细讲解整个程序的所有设置,你可以根据教程创作出更加个性化的作品。
2.2.1 如何快速生成属于你的绘画作品?
你想要 AI 知道你想要创作怎样的作品,就需要用简单的语句描述出作品的画面。
(1)修改 text_prompts
首先,你需要找到程序中的 Prompts 部分,修改 text_prompts 中对画面的描述,然后点击「代码执行程序 - 全部运行」,AI 将根据你的描述自动生成画面。
接下来,我们仔细看看需要怎么修改呢?
这是程序中默认的 text_prompts 的描述。
text_prompts = {
0: ["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"],
100: ["This set of prompts start at frame 100","This prompt has weight five:5"],
}
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.(一幅由格雷格-鲁特科夫斯基和托马斯-金凯德创作的奇异灯塔的美丽画作,将其光芒照耀在一片动荡的血海中,在artstation上流行。)
yellow color scheme 为黄色配色
我们可以很清晰地看到默认的描述以及绘画作品的配色,此时,我们只需要:
-
将 「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」替换为你想要的画面配色
(2)修改 image_prompts
你可以在此模块描述你想要作品展现的特征,或不想要作品展现的特征。不同特征有不同的权重,权重可以是负的。负的权重可以帮助抑制不希望的提示的特征。(若有多个权重,权重之和不能为 0)
程序默认的配置如下:
image_prompts = {
# 0:['ImagePromptsWorkButArentVeryGood.png:2',],
}
表示接下来创作的画面的特征将近似 ImagePromptsWorkButArentVeryGood.png这张图。
假设我对其做如下修改,则表示,我想让作品有点 beach 的特征,我不想有更多 sky 的特征。
0: ["beach:2","sky:-1"]
(3)点击「代码执行程序 - 全部运行」,AI 会自动运行程序,然后程序会根据你刚刚修改的描述信息生成你想要的绘画作品。
(4)创作完成后,你可以进入 Google 云端硬盘的「AI / Disco_Diffusion / images_out / TimeToDisco」路径文件夹中找到创作完成的作品,随后可以下载到本地。
Google 云端硬盘地址:https://drive.google.com/drive/my-drive
下图是云端硬盘中存放的绘画作品。
至此,你已经掌握了如何快速生成你想要的绘画作品了。若是你想让你的作品变得更加个性化、更加精美,那么你需要继续学习下面的章节。
2.3 深入学习个性化配置
打开副本程序中的目录后,可以看到如下内容。
-
Tutorial
-
Set Up
-
Diffusion and CLIP model settings
-
Settings
-
Diffuse!
-
Create the video
若是想要作品变得更加精美,我们需要调整上述目录中的相关参数后,再点击「代码执行程序 - 全部运行」,生成自己的作品。
那么,如何来调整呢?现在我们开始学习每个参数所代表的意思,随后你可以根据自己想要的画面设定参数。
2.3.1 Tutorial(教程)
这部分是官方给出的教程,里面有关于此程序的扩散设置(不过其中大多数内容已经过期),接下来,我会尽可能将每个参数表示的意思都写清楚。
你还可以加入到 Disco Diffusion 用户讨论组,从活跃的用户社区中学习:
https://discord.gg/XGZrFFCRfN
温馨提示:访问此网站需要科学上网,请自行解决哦~
2.3.2 Set Up(设置)
在这个部分,程序会在这部分检查 GPU 的状态,准备程序相关的文件夹,安装相关的依赖和运行环境,定义迈达斯功能,定义必要的功能,定义二次扩散模型。
你不用操作此模块中的任何参数。
2.3.3 Diffusion and CLIP model settings(扩散和CLIP模型设置)
在这个部分,是扩散和 CLIP 模型设置。程序给你提供了八种不同的 CLIP 模型可供你在图像生成期间使用,有兴趣可以尝试打开看看。
ViTB32、RN50、RN101、ViTB16、RN50x4、RN50x16、RN50x64、ViTL14
(根据内存使用排序:最小到最大,对应速度:最快到最慢)
需要注意的是:如果你在本节中改变了任何扩散和 CLIP 模型的设置,你应该重新启动你的程序并再次运行所有的单元,以确保必要的库被正确加载。
2.3.4 Settings(设置)
在这个部分是相关设置。
2.3.4.1 基础设置
- batch name :
批次的文件和文件夹名称。最终的图像和视频将被保存在:/My Drive/Ai/Disco_Diffusion/images_out/batch name
- setps:(250 | 50-10000)
当创建一个图像时,去噪曲线被细分为处理步骤。每一步(或迭代)涉及人工智能查看被称为“切割”的图像子集,并计算图像应被引导的“方向”,使其更像提示。然后,它在扩散去噪器的帮助下调整图像,并进入下一个步骤。
-
增加步骤将为人工智能提供更多的机会来调整图像,而且每次调整都会比较小,因此会产生更精确、更详细的图像。步数是以延长渲染时间代价的。另外,虽然增加步数通常会提高图像质量,但增加步数后的回报率会递减。
-
一般设置为 250 - 500 步。然而,一些复杂的图像可能需要 1000、2000 或更多步骤,这取决于你的作品。
-
只要知道渲染时间与步骤数直接相关,其他许多参数对图像质量有重大影响,而不需要花费额外时间。
-
width_height:([1280,768] | limited by VRAM)
期望的最终图像尺寸,单位是像素。你可以有一个正方形、自定义宽高的图像,但是每条边的长度应该被设置为64px的倍数,在默认的 CLIP 模型设置上,最小为 512 px。
-
需要注意的是宽和高都需要是 64 的倍数,例如:[512 x 768]。如果你设置的不是 64 的倍数,程度会调整你的图像的尺寸。
-
clip_guidance_scale:
与图像质量有关,你可以尝试更改: 5000 - 7500。
- tv_scale: (0 | 0 - 1000)
总方差去噪。可选的,设置为零即可关闭,控制最终输出的“平滑度”。如果使用,tv_scale 将尝试平滑你的最终图像,以减少整体噪音。
- range_scale: (150 | 10 - 1000)
可选的,设置为零即可关闭。用于调整颜色的对比度。较低的 range_scale 会增加对比度。非常低的数字会产生一个缩小的调色板,从而产生更多鲜艳的或类似海报的图像。较高的 range_scale 会降低对比度,使图像更加柔和。
- sat_scale: (0 | 0 - 20000)
饱和度。可选的,设置为零即可关闭。如果使用,sat_scale 将有助于减轻过饱和度的影响。如果你的图像过于饱和,增加 sat_scale 来降低饱和度。
- cutn_batches: (4 | 1 - 8)
每次迭代,人工智能都会将图像切割成更小的片段,称为切割,并将每个切割与提示进行比较,以决定如何指导下一个扩散步骤。更多的切割通常可以带来更好的图像,因为程序在每个时间步骤中有更多的机会来微调图像的精度。
-
然而,额外的切割会消耗内存,如果程序试图一次评估太多的切割,它可能会耗尽内存。你可以使用 cutn_batches 来增加每个时间段的切割,而不增加内存的使用。
-
在默认设置下,程序被安排在每个时间段做 16 次切割。如果 cutn_ batches 被设置为 1, 那么每个时间段只有 16 次切割。
-
然而,如果 cutn_batches 增加到 4, 程序将在每个时间步中总共做 64 次切割,分为 4 个连续的批次,每个批次 16 次切割。因为每次只评估 16 个切割,所以程序只使用 16 个切割所需的内存,但给你带来 64 个切割的质量优势。
-
当然,这样做的代价是,渲染每张图片需要 4 倍的时间。因此,(预定的切割) x (切割批次) = (每个时间段的总切割)。然而,增加 cutn_batches 会增加渲染时间,因为这些工作是按顺序进行的。程序的默认切割计划是一个很好的开始,但是切割计划可以在 Cutn_Scheduling 部分进行调整。
-
skip_augs:
作为其代码的一部分,程序有一些 “Torchvision 增强”, 在图像创建过程中引入随机的图像缩放、透视和其它选择性调整。这些增强的目的是帮助提高图像质量,但会对边缘产生你可能不希望看到的“平滑”效果。通过将 skip_augs 设置为 “true”,你可以跳过这些增强,稍微加快你的渲染速度。建议你试验一下这个设置,了解它对你的程序有什么影响。
2.3.4.2 初始化设置
- init_image
可选的。回顾一下,在上面的图像序列中,显示的第一个图像只是噪声。如果提供了 init_image,diffusion 将用 init_image 替换噪音,作为其起始状态。要使用 init_image,请将图像上传到程序实例或你的 Google 云端硬盘,并在这里输入完整的图像路径。
-
如果使用 init_image,你可能需要增加 skip_steps 到总步骤的 50号,以保留 init 的特性。进一步讨论见上面的 skip_steps。
-
init_scale: (1000 | 10 - 20000)
这控制了 CLIP 将多大程度地尝试与提供的 init_image 匹配。这是与上面的clip guidance scale (CGS) 相平衡的,太多的 init_scale,图像在扩散过程中不会有太大变化,太多的 CGS,初始图像将被丢失。
- skip_steps:
用低的 steps,你可以得到一个受 init_image 启发的结果,它将保留颜色和粗略的布局和形状,但看起来很不同。使用高跳步,你可以保留 init_image 的大部分内容,只是对纹理进行微调。
2.3.4.3 动画设置
2.3.4.3.1 动画模式
- Animation_mode:
无、二维、三维或视频动画选项。详情见下面各节。
-
无:动画模式被关闭。将使用图像和批次设置创建一批单独的图像。
-
二维动画将每一帧作为一个平面,并根据参数对其进行变换(旋转、缩放、平移 x 或 y)。然后,它使用该转换后的图像作为动画的下一帧的图像初始。
-
三维动画采取每一帧,计算一个估计的三维深度图和估计的虚拟三维空间。然后,利用这个三维空间,它在这个虚拟空间中移动一个虚拟摄像机,并利用深度图和新的“摄像机”位置图像进行变换/扭曲,产生的扭曲图像被用作下一个动画帧的图像初始。视频输入将视频的每一帧初始化,并将它们作为一系列程序输出图像的图像输入。
2.3.4.3.2 视频输入设置
- video_init_path:(仅指视频)
用户提供的视频的源路径,作为动画的图像输入源。要使用视频初始化。将视频上传到程序实例或你的 Google 云端硬盘,并输入完整的源路径,一个典型的路径是 /content/video_name.mp4。
-
如果你的程序版本有两个名为 video_init_path 的字段,请在两个字段中输入相同的值。
-
extract_nth_frame :(仅限视频)(2 | 1 - 6)
允许你提取视频的第 n 个帧。如果你有一个 24 fps 的视频,但只想渲染每秒 12 帧的程序图像,把 extract_nth_frame 设置为 2。
- video_init_seed_continuity:(仅限视频)(On | Off / On)
通过在视频的每一帧重复使用相同的图像创建种子,提高视频动画的流畅度和帧的连续性,取消选择这个选项将导致视频的纹理更加混乱、随机化。上面的视频输入模式设置与从动画帧创建最终输出视频,无关创建和保存最终视频的设置将在下面的创建视频部分讨论。
2.3.4.3.3 2D 动画设置
- key_frames:
开启关键帧系统,允许二维和三维动画参数随时间变化。程序中提供了关键帧
的语法示例,另外,你也可以将关键帧应用于文本或图像提示,见程序中提供的语法示例,允许在动画的长度上有一个不断变化的文本提示来引导图像。
- max_frames:
在二维或三维动画中要创建的总帧数。程序中的所有动画都是以帧为单位,而不是以“时间”为单位,所以你需要确定你的最终动画的每秒帧数,并自己计算出帧数。
-
注意:maxframes 在视频输入模式下被忽略,源视频的长度将决定要创建的动画帧的总数。
-
angle: (0 | -3 to 3)(2D only)
每帧将图像旋转() 度。正的角度值会使图像逆时针旋转,感觉就像摄像机在顺时针旋转一样。
- zoom: (2D only)(1.10 | 0.8 - 1.25)
每一帧图像按()百分比缩放。1.10 是前向缩放的一个好的起始值,低于1.0的数值将被放大。
- translation_x,translation_y (在 2D 模式下)。
(01-10 到 10)在 2D 模式下,平移参数每帧将图像移动()像素。
-
x 是左 / 右;正的 translation_x 使图像向右移动(感觉像摄像机向左移动)。
-
Y 是向上 / 向下的;正的 translation_y 使图像在屏幕上向下移动(感觉像是摄像机向上移动)
-
translation_x,translation_y, translation_z (in 3D mode) :
(01 - 10 to 10)在三维模式下,平移参数的行为与二维模式不同,它们在虚拟三维空间中移动摄像机。
-
x 是左 / 右;正的 translation_x 使摄像机向右移动。
-
y 是向上 / 向下的,正的 translation_y 使摄像机向上移动。
-
z 是向前 / 向后(缩放) ;正的 translation_z 使摄像机向前移动。在 3D 模式中,平移(x、y 或 z)的距离单位被设置为一个任意的尺度,其中 10 个单位是通过 translate_z 向前放大的合理距离。根据你的场景和比例,你将需要试验不同的平移值来实现你的目标。
-
rotation_3d_x: (仅3D) (0 | -3 to 3)
以度数计算。围绕 x 轴旋转摄像机,从而使摄像机的三维视图向上或向下移动。类似于飞机的俯仰。正数的旋转 3d_x 使摄像机向上倾斜。
- rotation_3d_y: (仅3D) (0 | -3 to 3)
以度数计算。围绕 y 轴旋转摄像机,从而使摄像机的三维视图向左或向右移动。类似于飞机上的偏航。正的旋转 3d_y 使摄像机向右平移。
- rotation_3d_z: (仅3D) (0 | -3 to 3)
以度数计算。围绕 z 轴旋转摄像机,从而顺时针或逆时针旋转摄像机的三维视图。类似于飞机上的滚动。rotation_3d_z 为正数时,摄像机会顺时针滚动。
- midas_depth_model:(仅 3D)
留作 dpt_large。
- midas_weight:(仅 3D)
MIDAS 与 adabins 的 3D 深度图混合。保留为 0.3。
- near_plane:(仅 3D)
到 3D 视图喲近剪裁平面的距离。这个距离的测量单位与上面的 translation_x/y/z 不一样。將此值保留为 200。
- far_plane: (仅3D)
到 3D 视图外壳的远剪裁平面的距离。这个距离的测量单位与上面的
translation_x/y/z 不一样。将此值保留为 10000。
- fov:(仅3D) (40 | 20 - 120)
调整虚拟摄像机的视场,以实现 3D 转换。用这个设置进行实验,并分享你的结果。较低的数字产生一个戏剧性的 3D 效果,对于极端的特写图像有用;高的数字会减少 3D 效果,对风景和大场景很有用。
- padding_mode:(仅3D)
决定图像边缘的卷积行为。留作“边界”。
- sampling_mode: (仅适用于3D)
决定了在对图像进行 3D 扭曲重新取样时的卷积行为。保留为“二立方”。
2.3.4.3.4 涡轮模式(仅限 3D 动画)
在第 10 帧后开始跳过扩散步骤,只使用深度图来扭曲跳过的帧的图像。渲染速度提高了 2 - 4 倍,并可能改善帧之间的图像一致性。frame_blend_mode 可以平滑两帧之间的突然纹理变化。关于为涡轮模式调整的不同设置,请参考原始的 Disco-Turbo Github:https://github.com/zippy731/disco-diffusion-turbo
- turbo mode: (3D only)
打开 / 关闭 turbo 模式。在涡轮模式下,扩散图像的生成将只是间歇性地进行,之前的扩散图像的三维扭曲版本将被用于中间的帧。这有助于帧的连续性,并加快渲染速度。
- turbo steps: (仅3D) (3 | 2 - 6)
在 turbo 模式下,每个扩散帧之间的步数。因为 turbo 是使用 3D 动画转换来推断缺失的图像,所以在图像开始出现扭曲之前,3 或 4 的 turbo_steps 是合理的极限。如果动画动作很慢,可以使用更高的 turbo_steps 值。
2.3.4.3.5 连贯性设置
frame_scale 试图引导新帧看起来像旧帧,一个好的默认值是1500。
- frames_scale: (1500 10-50000)
在 2D 和 3D 模式中,前一帧被用作每一帧的图像初始。对于所有这些,frames_scale 决定了前一帧图像在创建新帧时的强度。这与 clip_guidance_scale 的权重以及所有其它通常有助于创建下一帧的设置相平衡。
-
需要记住的一点是,除了来自 frames_scale 的权重外,前一帧的图像也被用作当前帧创建的图像初始。最近的一些实验表明,使用较低的帧尺度(即 1000 或以下)可能是一种帮助缓解长三维动画的色彩剪切的方法。在视频输入动画模式下,frames_scale 将决定视频源图像在创建新帧时的强度,并与文本提示的重量和其它设置相平衡。
-
frames_skip_steps。 (60% | 40% - 808)
在二维、三维和视频动画模式中,frames_skip_steps 的作用类似于上面使用图像作为 init 时的 skip_steps。对于动画中的每一帧,()的扩散曲线将被跳过,源图像将被作为一个起点,然后扩散将继续。50 - 70 号是一个很好的值,可以确保前一帧的图像在创建下一帧的时候很突出。
2.3.4.3.6 VR模式(仅3D动画)
启用左 / 右眼视图的立体渲染(支持 Turbo),这些视图使用不同的(鱼眼)摄像机投影矩阵。
注意你所提示的图像如果有一些固有的广角方面,效果会更好,生成的图像将需要组合成左 / 右视频。然后,这些可以拼接成 VR 180 的格式。谷歌制作了VR180 Creator 工具,但随后停止了对它的支持。
它可以在一些地方下载,包括 https://www.patrickgrunwald.de/vr180-creator-download 该工具不仅有利于拼接(视频和照片),还可以在现有的视频中添加正确的元数据,这是 YouTube 等服务正确识别格式所需要的。
观看 YouTube 的 VR 视频不一定是最容易的,这取决于你的头盔。例如,Oculus 有一个专门的媒体工作室和商店,使文件更容易在 Quest https://creator.oculus.com/manage/mediastudio/。
让 ffmpeg 为每只眼睛连接帧的命令是这样的:ffmpeg -framerate 15 -i frame_%4d_l.png l.mp4 (对r重复)
- vr_mode: (off | on / off)
打开 / 关闭 VR模式。
- vr eye angle: (0.5 | 0 - 1.0) (单位:度)
y 轴旋转角度,与眼睛向内的直线相偏。0.0 将是直线前方,但通常我们的眼睛会非常轻微地指向内部。
-
vr_ipd: (5.0 | 1 - 20)瞳孔间距离,即眼睛之间的距离。使用与x_translation 相同的单位 ipd 是眼睛之间的总距离,所以它在每个方向都减半。
-
VR 模式模块创建者 Nin 的说明。默认参数似乎可以得到一个体面的输出。请注意,从深度估计中推断出的比例可能因场景而异,所以 ipd 最终可能需要调整。
-
一般来说,渲染一到两帧并使用 VR 180 创建者工具只是为了做一个图像测试(它可以做图像以及视频)是个好主意。你可以把这个加载到你的耳机里,然后感受一下你的立体声效果是太小还是太大。
-
不幸的是,比例会随着场景的变化而变化,所以目前(在根据深度输出做进一步推理之前),可能需要在动画的不同部分手动改变 ipd 。此外,输出需要尽可能高的清晰度,例如,Oculus 喜欢疯狂的高分辨率,而我们大多数人在程序中渲染的分辨率,你很可能需要提升你的输出。
2.3.4.4 额外设置
2.3.4.4.1 保存
- intermediate saves:
除了最终图像外,程序还可以保存扩散曲线中的中间图像。这对诊断图像问题很有帮助,或者如果你想制作扩散过程本身的时间线或视频。
- Intermediates in subfolder: (默认: True)
如果保存中间图像,该选项将把中间图像存储在一个名为 “partials” 的子文件夹中。
- 中间步骤将在你指定的时间间隔内保存一份副本,你可以把它格式化为一个单一的整数或一个具体步骤的列表。
2 的值将在 33% 和 66% 的时候保存一份副本。0 将不保存。
一个 [5, 9, 34, 45] 的值将在第 5、9、34 和 45 步保存。
2.3.4.4.2 高级设置
Perlin init 将取代你的 init,所以如果使用 init,请取消勾选。
- perlin_init:
通常情况下,程序会使用一个充满随机噪声的图像作为扩散曲线的起点。如果选择了 perlin_init,程序将使用一个 Perlin 噪声模型作为初始状态。
-
Perlin 有非常有趣的特性,与随机噪声不同,所以值得为你的程序进行实验。除了 Perlin,你当然也可以生成你自己的噪声图像(比如用 GIMP 等),并将其作为 init_image (不跳过步骤)。选择 perlin_init 并不影响实际的扩散过程,只是扩散的起点。
-
请注意,选择 perlin_init 将取代并覆盖你可能已经指定的任何init_image,此外,如果你在使用动画模式时启用 Perlin,2D、3D 和视频动画系统都依赖于 init_image 系统。
-
perlin_ init 将跳到任何先前的图像或视频输入前面,程序将不会给你预期的连贯图像序列。
-
综上所述,将 Perlin 和动画模式结合起来使用,确实能做出非常丰富多彩的彩虹效果,可以创造性地使用。
-
perlin_mode:
设置 Perlin 噪声的类型:彩色、灰色或两者的混合,给你额外的噪声类型选择。实验一下,看看这些在你的程序中的作用。
- set_seed: (“random_seed” | any integer)
在扩散代码的深处,有一个随机数“种子”,它被用来作为确定扩散初始状态的基础。默认情况下,它是随机的,但你也可以指定你自己的种子。如果你喜欢一个特定的结果,并希望运行更多的迭代,这很有用。
- 每次运行后,实际使用的种子值将在参数报告中报告,如果需要,可以在这里输入种子来重复使用。如果重复使用一个特定的数字种子,产生的图像将相当相似,但不完全相同。
注意:通过 set_seed 设置种子值只会为一个批次或一个动画中的第一个图像设置种子。后续的种子仍将是随机的。
- eta: (0.5 | 0 - 1.0) eta (希腊字母 η)
是一个扩散模型变量,它在每个时间步长中混入随机量的比例噪声。0 是没有噪音,1.0 是更多的噪音。和大多数程序参数一样,你可以把 eta 值调到 0 以下,但可能会给你带来不可预测的结果。
-
步数参数与 eta 参数有密切关系。如果你把 eta 设置为 0,那么你只需50 - 75 步就可以得到体面的输出。将 eta 值设置为 1.0 有利于提高步数,最好是 250 步以上。eta 值对图像有一个微妙的不可预测的影响,所以你需要进行实验,看看这对你的程序有什么影响。
-
clamp_grad (True|True or False)
根据我的理解,clamp_grad 是一个内部限制器可以阻止程序产生极端的结果。试试你的图像在有和没有 clamp_grad 的情况下。如果在关闭 clamp_grad 的情况下,图像发生了巨大的变化,这可能意味着你的 clip_guidance_scale 太高,应该降低。
- clamp_max: (0. 05|0-0.30)
设置 clamp_grad 的限制值。默认值是 0.05,为图像提供更平滑、更柔和的色彩,但设置更高的值 (0.15 - 0.3) 可以提供有趣的对比度和鲜度。
2.3.4.4.3 削减计划
格式:[40] 400 + [20] 600 = 前 400 / 1000 步有 40 次切割,然后后 600 / 1000 有 20 次切割。
cut_overview 和 cut_innercut 在任何给定的步骤上都是累计的总切割。概述切割可以看到整个图像,有利于早期结构,内部切割是你的标准切割。
- cut_ove_rview:
概述切割的时间表。
- cut_innercut:
内部切割的时间表。
- cut_ic_pow: (1.010.5-100)
这设置了用于内部切割边界大小高的 cut_ic_pow 值有更大的边框,因此切割本身会更小,提供更精细的细节。如果你有太多或太小的内切,你可能会失去整体图像的连贯性,并且 / 或者会造成不受欢迎的“马赛克“效果。低的 cut_ic_pow 值将允许内部切割更大,有助于图像的连贯性,同时仍然有助于一些细节的处理。
- cut_icgray_p:
除了整体的剪切计划外,还可以将部分剪切设置为灰度而不是彩色。这可能有助于改善形状和边缘的定义,特别是在早期的扩散步骤中,图像结构正在被定义。
- cut_icgray_p 影响概述和内部切割大多数初级用户不需要调整 cutn_schedul_ing,所以在你对其它控制有良好感觉之前,不调整这个设置是一个好主意。
2.3.4.5 提示
animation_mode: None 将只使用第一组动画。
animation_mode: 2D / Video 将按照设定的帧运行,并在最后一个帧上保持。
text_prompts 和 image_prompts 解释见 「2.2.1 如何快速生成属于你的绘画作品?」
2.3.5 Diffuse!(扩散性!)
- display_rate: (50 | 5 - 500)
在扩散运行过程中,你可以用这个变量监控每个图像的创建进度。如果display_rate 被设置为 50,程序将每隔 50 个时间段向你显示正在进行的图像。
-
把这个设置成一个较低的值,如 5 或 10,是一个很好的方法,可以提前窥见你的图像的走向。如果你不喜欢这个进展,只要中断执行,改变一些设置,然后重新运行。
-
如果你打算做一个长的、不受监控的批次,最好把 display_rate 设置为等于步骤,因为显示中期图像会使程序的速度稍微慢一些。
-
如果你的批处理运行被打断了(无论是因为你停止了它,还是因为断线),你可以用这个复选框在你离开的地方恢复你的批处理运行。然而,你不能批处理中的设置,否则它不能可靠地恢复。其它参数(run_to_resume,resume_from_frame,retain_overwritten_rames)控制你希望如何恢复批处理。
-
如果你中断了一个运行并调整了设置,你不应该使用 resume_run,因为这将被认为是一个带有新设置的新运行。
-
n_batches: (50 | 1 - 100)
这个变量设置你希望程序创建的静态图像的数量。如果你使用的是动画模式(详见下文),程序将忽略 n_batches, 并根据动画设置创建一套简单的动画。
-
n_batches 在动画模式下被忽略。
-
run_to_resume,resume_from_frame,retain_overwritten_frames:
控制你希望如何恢复批处理。如果你中断了一个运行并调整了设置,你不应该使用 resume_run,,因为这将被认为是一个带有新设置的新运行。
2.3.6 Create the video(创建视频)
视频文件将与你的图像保存在同一文件夹中。
- skip_video_for_run_all: (默认值: True)
创建一个最终的视频是可选的,而且很耗时,所以默认情况下,当你使用run_all 命令时,程序不会创建一个视频。
- folder: (“batch_name” | any path)
程序默认为在上面定义的批次文件夹中寻找图像来创建视频,你可以选择一个替代的文件夹。
- run: (“latest_run” | alternate run number)
程序默认为使用批处理文件夹中最近的运行来创建视频的图像。运行是有编号的,所以你可以用运行编号范围内的一个整数来选择一个备用的运行。
- init_frame: (1 | any frame number)
程序默认使用它在运行中发现的第一个图像来启动视频。你可以在这里使用一个不同的帧数来启动视频。
- last_frame: (“fina1_frame” | any frame number)
程序默认在运行中发现的最后一个图像上结束视频。你可以在这里使用一个不同的帧数来提前结束视频。
- fps :(12 | 12 - 60)
输出视频的每秒帧数。
- 程序将把你的图像和视频存储到你的谷歌云盘中。
/My Drive/Ai/Disco_Diffusion/images_out/batch name
-
你可以在第二个窗口中浏览这个目录,以监测进度,并在你的程序完成后下载整个文件夹。
-
以上就是所有自定义配置了,你可以根据自己需要的配置调整相关参数,然后运行程序。
2.4 本地配置
若你的电脑配置比较高,你还可以使用 Anaconda 将此项目部署到本地电脑中运行。
项目仓库 Disco Diffusion Github:https://github.com/alembics/disco-diffusion
2.5 作品赏析
2.5.1 默认作品
以下是程序默认配置创作的绘画作品,请欣赏~
2.5.2 网友作品
以下是网友自定义创作的绘画作品,请欣赏~
- 结语
未来不是知识的对象,而是希望和恐惧的对象。
复旦大学王德峰老师说:人类以筹划和下决心的方式走向未来,如今的资本和技术以一种方式把过去转化为创建未来的力量;而艺术,它以作品直观地创建对未来的筹划,艺术作品是探索、冒险、做出决断,我们的未来可以在艺术中更好地呈现。
时代在发展,由资本扩张引起的技术革命也在世界各地持续上演,由此产生了许许多多的新技术。但我们始终要知道,技术产生工具,工具是中性的,希望大家能善于使用工具,不断创造出更符合我们未来发展的美好事物。
原文链接:https://www.qz.net/page/756 作者:朱攀
本地部署 AI作画工具 stable-diffusion-webui 多种模型 可生成NSFW
来源:https://diwfpqo78m.feishu.cn/docx/Mj6rd7p02oA6h2xJZ60cJ6fBnRd
AI作画最近非常火热啊,本文是在使用N卡的电脑上,本地部署stable-diffusion-webui前端+替换默认的模型,实现生成高质量的二次元图像,并且可以不受限制的生成图片(在线版一般会阻止NSFW内容生成)。
-
AI绘画系列文章之一:本地部署 AI作画工具 stable diffusion webui 多种模型 可生成NSFW
-
AI绘画系列文章之二:AI绘画指南 stable diffusion webui (SD webui)如何设置与使用
-
AI绘画系列文章之三:AI作画工具 stable diffusion webui 一键安装工具(A1111-Web-UI-Installer)
-
AI绘画系列文章之四:AI 绘画与作画 stable diffusion webui 常见模型汇总及简介
所需资源下载位置:
Git:https://git-scm.com/download
CUDA:https://developer.nvidia.com/cuda-toolkit-archive
Python3.10.6:https://www.python.org/downloads/release/python-3106/
waifu-diffusion:https://huggingface.co/hakurei/waifu-diffusion
waifu-diffusion-v1-3:https://huggingface.co/hakurei/waifu-diffusion-v1-3
stable-diffusion-v-1-4-original: https://huggingface.co/CompVis/stable-diffusion-v-1-4-original
stable-diffusion-v-1-5: https://huggingface.co/runwayml/stable-diffusion-v1-5
stable-diffusion-webui:https://github.com/AUTOMATIC1111/stable-diffusion-webui
NovelAILeaks 4chan:https://pub-2fdef7a2969f43289c42ac5ae3412fd4.r2.dev/naifu.tar
NovelAILeaks animefull-latest:https://pub-2fdef7a2969f43289c42ac5ae3412fd4.r2.dev/animefull-latest.tar
文章目录
-
安装 Python 3.10.6 与 pip
-
下载stable-diffusion-webui
-
下载stable-diffusion
-
下载 waifu-diffusion
开始
首先请确定你有基本的理解能力和动手能力,基本的网络搜索检索信息的能力。过于基础的东西比如“什么是命令行”,“如何下载文件”,“magnet是什么东西”,“满屏英语看不懂”,“怎么给Python,Git加上魔法上网”等等这些过于基础的问题,我这里无法做出说明,也不会解答。
要顺利运行 stable-diffusion-webui与模型,
需要足够大的显存,最低配置4GB显存,基本配置6GB显存,推荐配置12GB显存。
当然内存也不能太小,最好大于16GB。
显存大小决定了你能生成的图片尺寸,一般而言图片尺寸越大,AI能发挥的地方越多,画面里填充的细节就越多。
GPU主频和显存位宽,则决定了你能生成的多快。
当显存不足时,只能用时间换性能,将生成时间延长4倍,甚至8~10倍来生成同样的图片。
教程部署环境为
CPU:Intel® Core™ i7-10750H
GPU:NVIDIA Quadro T2000 with Max-Q Design (显存4GB)
内存:16GB * 4
磁盘:1TB * 2 SSD
OS:win11 21H1
准备运行环境
需要准备3个或4个东西
Python 3.10.6,Git ,CUDA,这三个的下载地址在文章的最前边。
视情况,你可能还需要一个魔法上网工具(假设你的魔法上网工具代理在127.0.0.1:6808)
安装 Python 3.10.6 与 pip
请一定安装3.10.6版本的Python,其他版本高几率无法运行
请一定安装3.10.6版本的Python,其他版本高几率无法运行
请一定安装3.10.6版本的Python,其他版本高几率无法运行
我这里采用直接系统内安装Python 3.10.6的方式
如果你会用Miniconda,也可以用Miniconda实现Python多版本切换,具体我这里不教需要的自己琢磨。
-
访问 Python3.10.6 下载页面
-
把页面拉到底,找到【Windows installer (64-bit)】点击下载
-
安装是注意,到这一步,需要如下图这样勾选 Add Python to PATH
然后再点上边的** Install No**w
python
-
安装完成后,命令行里输入Python -V,如果返回Python 3.10.6那就是成功安装了。
-
命令行里输入 python -m pip install --upgrade pip安装升级pip到最新版。
请一定安装3.10.6版本的Python,其他版本高几率无法运行
请一定安装3.10.6版本的Python,其他版本高几率无法运行
请一定安装3.10.6版本的Python,其他版本高几率无法运行
安装 Git
-
访问 Git 下载页面
-
点击【Download for Windows】,【64-bit Git for Windows Setup】点击下载
-
一路下一步安装
-
命令行运行git --version,返回git version 2.XX.0.windows.1就是安装成功了。
安装 CUDA
- 命令行运行nvidia-smi,看下自己显卡支持的 CUDA版本
(升级显卡驱动有可能会让你支持更高版本的 CUDA)
- 接下来前往英伟达 CUDA 官网,下载对应版本。
注意请下载,你对应的版本号最高的版本,比如我的是11.7的,那就下11.7.1(这里最后的.1意思是,11.7版本的1号升级版)
- 选你自己的操作系统版本,注意下个离线安装包【exe [local]】,在线安装的话,速度还是比较堪忧的。
下载stable-diffusion-webui
找一个你喜欢的目录,在资源管理器,地址栏里敲CMD,敲回车,启动命令提示行窗口,输入以下命令
下载项目源代码git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git # 切换到项目根目录cd stable-diffusion-webui
Bash
Copy
-
他会在你选择的目录下生成stable-diffusion-webui文件夹,放项目
-
这东西本体+虚拟环境+集中模型+增强脚本最后会很大的,目前我已经占用了快20GB了,请放到磁盘空间富裕的盘符
-
整个路径中,不要有中文(比如“C:\AI作画工具\”),也不要有空格(比如“C:\Program Files”)可以避免很多奇怪的问题。
下载模型文件
stable-diffusion-webui只是个工具,他需要后端的训练模型来让AI参考建模。
目前比较主流的模型有
-
stable-diffusion:偏真人(一般简称为 SD 模型, SDwebui 模型)
-
waifu-diffusion:偏向二次元(一般简称 Waifu 模型,WD模型)
-
Novel-AI-Leaks:更加偏向二次元(一般简称 Naifu 模型)
模型文件一般都比较大,请找个空间富裕的磁盘下载。
更多模型下载可以看下这个:《AI 绘画与作画 常见模型汇总及简介》
模型的大致区别
-
注意这里显存指的是512X512尺寸,默认配置下,出图时软件所需要占用的显存。2GB显存起步,意味浙你电脑显卡实际显存最少也要3GB(因为系统桌面,浏览器的显示也需要占用一部分显存)
-
通过增加各种“优化”参数,可以通过性能的部分下降换取显存占用减少。
-
Nafu模型名称说明1:animefull-final-pruned = full-latest = NAI 全量模型(包含NSFW)
-
Nafu模型名称说明2:animesfw-latest = NAI 基线模型
下载stable-diffusion
下载的方式有 3 个
-
官网下载:https://huggingface.co/CompVis/stable-diffusion-v-1-4-original
-
File storage:https://drive.yerf.org/wl/?id=EBfTrmcCCUAGaQBXVIj5lJmEhjoP1tgl
-
磁力链接 magnet:?xt=urn:btih:3a4a612d75ed088ea542acac52f9f45987488d1c&dn=sd-v1-4.ckpt&tr=udp%3a%2f%2ftracker.openbittorrent.com%3a6969%2fannounce&tr=udp%3a%2f%2ftracker.opentrackr.org%3a1337
-
将解压出.ckpt文件放在\stable-diffusion-webui\models\Stable-diffusion\ 下
文件名可以是任何你喜欢的英文名。比如stable-diffusion .ckpt
下载 waifu-diffusion
-
官网下载:https://huggingface.co/hakurei/waifu-diffusion-v1-3/tree/main
-
下那个 wd-v1-3-float16.ckpt 就行
-
将解压出.ckpt文件放在\stable-diffusion-webui\models\Stable-diffusion\ 下
文件名可以是任何你喜欢的英文名.比如waifu-diffusion-16.ckpt
下载 NovelAILeaks
-
Naifu Leaks 4chan:https://pub-2fdef7a2969f43289c42ac5ae3412fd4.r2.dev/naifu.tar
-
Naifu Leaks animefull-latest:https://pub-2fdef7a2969f43289c42ac5ae3412fd4.r2.dev/animefull-latest.tar
-
找到naifu\models\animefull-final-pruned\model.ckpt放在\stable-diffusion-webui\models\Stable-diffusion\ 下文件名可以是任何你喜欢的英文名,比如Naifu-Leaks- 4chan.ckpt
-
找到naifu\models\animefull-final-pruned\config.yaml放在\stable-diffusion-webui\models\Stable-diffusion\ 下文件名改成上边和你上边的文件同名,比如Naifu-Leaks- 4chan.yaml
-
找到naifu\modules,把里面所有的.pt文件复制到\stable-diffusion-webui\models\hypernetworks\文件夹下,没有这个文件夹就自己新建一个。
下载其他模型
《AI 绘画与作画 stable diffusion webui 常见模型汇总及简介》
运行
-
双击运行\stable-diffusion-webui\webui-user.bat
-
耐心等待,脚本会自己检查依赖****,会下****载大约几个G的东西,解压安装到文件夹内(视网速不同,可能需要20分钟~2小时不等)无论看起来是不是半天没变化,感觉像卡住了,或者你发现电脑也没下载东西,窗口也没变化。千万不要关闭这个黑乎乎的CMD窗口,只要窗口最下方没显示类似“按任意键关闭窗口”的话,那脚本就是依然在正常运行的。
-
当你看到下图这行字的时候,就是安装成功了
- 复制到浏览器访问即可(默认是 http://127.0.0.1:7860 )(注意不要关闭这个窗口,关闭就退出了)
生成第一张AI作图
这里只是简单说一下,稍微详细一点的教程请看另一篇文章:《AI绘画指南 (SD webui)如何设置与使用》
- Prompt 里填写想要的特征点
(((masterpiece))),((best quality)), flat chest,((loli)),((one girl)),very long light white hair, beautiful detailed red eyes,aqua eyes,white robe, cat ears,(flower hairpin),sunlight, light smile,blue necklace,see-through,
以上大概意思就是
杰作,最佳品质,贫乳,萝莉,1个女孩,很长的头发,淡白色头发,红色眼睛,浅绿色眼睛,白色长裙,猫耳,发夹,阳光下,淡淡的微笑,蓝色项链,透明
- Negative prompt 里填不想要的特征点
((part of the head)), ((((mutated hands and fingers)))), deformed, blurry, bad anatomy, disfigured, poorly drawn face, mutation, mutated, extra limb, ugly, poorly drawn hands, missing limb, blurry, floating limbs, disconnected limbs, malformed hands, blur, out of focus, long neck, long body, Octane renderer,lowres, bad anatomy, bad hands, text, missing fingers, worst quality, low quality, normal quality, signature, watermark, blurry,ugly, fat, obese, chubby, (((deformed))), [blurry], bad anatomy, disfigured, poorly drawn face, mutation, mutated, (extra_limb), (ugly), (poorly drawn hands), messy drawing,(2girls), morbid, mutilated, tranny, trans, trannsexual, [out of frame], (bad proportions), octane render, unity, unreal, maya, photorealistic
大概意思就是排除一些负面标签,比如奇怪的手,奇怪的肢体,减少生成奇怪图片的几率
-
Sampling Steps 你可以理解让AI推演多少步,一般来说超过17基本就能看了,步数越多,画面中的细节就越多,但需要的时间也就越久,一般20~30是一个比较稳妥的设定。这个数不会改变画面内容,只会让内容更加精细,比如20的项链就是一个心形钻石,而50的项链还是同样的心形钻石,只是钻石上会有更加复杂的线条
-
Sampling method 你可以理解成AI推演的算法,一般Euler a,Euler ,DDIM,都是不错的,任选一个就行。
-
图片分辨率 这个就是拼显卡显存的,自己调吧,低于512X512可能画面就不会有太多细节了,越大的分辨率AI能发挥的地方就越多。
-
下边是3个扩展选项,一般不需要勾选。
Restore faces:勾选后可以生成更真实的脸,第一次勾选使用时,需要先下载几个G的运行库。
Tiling:让图片可以平铺(类似瓷砖,生成的图案左右上下都可以无缝衔接上自己)
Highres. fix:超分辨率,让AI用更高的分辨率填充内容,但生成的最终尺寸还是你上边设定的尺寸。
- 生成几次,每次多少张
Batch count:是一次运行几次
Batch size: 是同时生成多少张
比如:Batch count设置为4,用时N分钟*4,生成4张图;Batch count设置为4,用时N分钟,生成4张图,但是同时需要的显存也是4倍。512X512大概需要3.75GB显存,4倍就是15GB显存了。
- CFG Scale AI有多参考你的Prompt与Negative prompt
开得越高,AI越严格按照你的设定走,但也会有越少的创意
开的越低,AI就越放飞自我,随心所欲的画。
一般7左右就行。
-
Seed 随机数种子,AI作画从原理上其实就是用一个随机的噪声图,反推回图像。但因为计算机里也没有真随机嘛,所以实际上,AI作画的起始噪声,是可以量化为一个种子数的。
-
Generate 开始干活按钮,这个就不用说了吧,点了AI就开始干活了。
-
Stable Diffusion checkpoint 在最左上角,是选择模型的,前边让你下载了三个,请根据自己需求和体验自行选择使用。
后话
-
使用NovelAILeaks模型,有一个额外的设置,请在页面中选择【settings选项卡】,把页面往下拉到底,找到setting CLIP stop at last layers(Clip 跳过层),把他设置为2
-
AI作图不是释放魔法,不是魔咒越长施法前摇越长的魔咒威力就越大。请简洁、准确、详细的描述你需要的Prompt即可。像我上边的要求就是,1个萝莉,穿白色连衣裙,瞳孔红色,长发,白色,带发卡,猫耳,微笑,阳光下。半透明材质衣服,已经WebUI是有75个词限制的。
-
如果你想生成更大尺寸的图,但是显卡显存不足
用文本编辑器打开\stable-diffusion-webui\webui-user.bat。
在COMMANDLINE_ARGS=后添加–medvram
如果还不行,改成–medvram –xformers
如果还不行,改成–medvram –opt-split-attention –xformers
如果还不行,改成–lowvram
如果还不行,改成–lowvram –xformers
如果还不行,改成–lowvram –opt-split-attention
注意这是个用生成时间换图片尺寸的事情,最极端的参数可能导致你图片生成时间是之前的好几倍。
最极端参数是个什么概念呢,比如默认配置512X512一张图是10秒内,但显存需要4G,改成最极端配置,显存仅需0.5~0.7G(和Sampling method有关),但代价是时长变成3分钟。
- 16XX系显卡,需要用文本编辑器打开\stable-diffusion-webui\webui-user.bat。
在COMMANDLINE_ARGS=后添加–precision full –no-half
类似下边这样,不然生成图会是黑块或者绿块,这是个16XX系显卡的bug
@echo off
set PYTHON=set GIT=set VENV_DIR=set COMMANDLINE_ARGS=---precision full --no-half
call webui.bat
Bash
Copy
- 示意图中tag如下,理论上只要参数完全一致,就可以复现出一样的画(仅些微细节不同)
Stable Diffusion checkpoint:NovelAILeaks 4chan[925997e9]
prompt:
(((masterpiece))),((best quality)), flat chest,((loli)),((one girl)),very long hair,light white hair, red eyes,aqua eyes,white robe, cat ears,(flower hairpin),sunlight, light smile,beautiful detailed blue necklace,see-through,
Negative prompt: ((part of the head)), ((((mutated hands and fingers)))), deformed, blurry, bad anatomy, disfigured, poorly drawn face, mutation, mutated, extra limb, ugly, poorly drawn hands, missing limb, blurry, floating limbs, disconnected limbs, malformed hands, blur, out of focus, long neck, long body, Octane renderer,lowres, bad anatomy, bad hands, text, missing fingers, worst quality, low quality, normal quality, signature, watermark, blurry,ugly, fat, obese, chubby, (((deformed))), [blurry], bad anatomy, disfigured, poorly drawn face, mutation, mutated, (extra_limb), (ugly), (poorly drawn hands), messy drawing,(2girls), morbid, mutilated, tranny, trans, trannsexual, [out of frame], (bad proportions), octane render, unity, unreal, maya, photorealistic
Steps: 27, S
ampler: Euler a,
CFG scale: 7,
Seed: 2413789891,
Size: 1024x768,
Model hash: 925997e9,
Clip skip: 2
- 如果你想了解AI绘画的原理,这里有一篇不错的文章:学习AI绘画,从Diffusion和CLIP开始
AI绘画指南 stable diffusion webui (SD webui)如何设置与使用
来源:https://diwfpqo78m.feishu.cn/docx/M7PqdTXSmo8LdExB36Vc7R6Zn3P
不敢妄称教程,只是根据自己最近的理解与实践,只能说是给后来的AI绘画作画者一点快速上手入门的参考吧。
主要是涉及 SD webui 界面介绍 参数含义及调整,txt2img 怎么设置特征点,img2img 怎么完善原始图像等内容。
文章目录
-
stable diffusion webui (SD webui)界面介绍
-
反向提示词 Negative prompt
-
采样迭代步数 Sampling Steps
-
采样方法 Sampling method
-
生成批次Batch count/n_iter
-
提示词相关性 CFG Scale
-
宽度 X 高度 Width X Height
-
用户界面 User interface
-
【扩展界面】 Extensions
-
从URL安装 Install from URL
stable diffusion webui (SD webui)界面介绍
-
SD webui 的默认地址为 127.0.0.1:7860
-
目前有中文界面了(点击查看设置步骤),下文将以中文版为主,结合英文原文介绍。
-
项目日常更新频繁,请定期git pull更新:一个小白点的方法:在电脑资源管理器内,打开在stable-diffusion-webui文件夹,在地址栏输入cmd,然后敲回车,在该目录下调出命令提示行,然后在命令提示行窗口里输入git pull,然后敲回车即可。
各选项卡的一句话介绍
-
txt2img 文生图:顾名思义就是用文字生成图片
-
img2img 图生图:顾名思义就是用图片生成图片
-
Extras 更多:这里其实是“无损”放大图片用的
-
PNG info 图片信息:从图片exif里获取图片的信息,如果是SD原始生成的png图片,图片的exif信息里会写入图片生成参数的,所以你在网上看到大佬生成的美图,可以用这个功能帮你查看
-
Checkpoint Merger 模型(ckpt)合并:合并不同的模型,生成新的模型
-
Train 训练:自己炼 embedding 或者 hypernetwork
-
Settings 设置:顾名思义就是设置页面
-
Extensions 扩展:顾名思义这里是扩展的管理页面。
下边开始较为详细的介绍一下各个界面
【文生图界面】
这估计是新人最常用的界面了,顾名思义就是用文字生成图片的地方
提示词 Prompt
用文字描述你想要生成的东西
支持的语言
支持的输入语言为英语(不用担心英语不好的问题,目前网上有很多tag生成器供你使用),SD支持用自然语言描述,不过还是推荐使用用逗号分隔的一个个的关键词来写,当然表情符号,emoji,甚至一些日语都是可以用的。
tag语法
- 分隔:不同的关键词tag之间,需要使用英文逗号,分隔,逗号前后有空格或者换行是不碍事的
ex:1girl,loli,long hair,low twintails(1个女孩,loli,长发,低双马尾)
-
混合:WebUi 使用 | 分隔多个关键词,实现混合多个要素,注意混合是同等比例混合,同时混。
ex: 1girl,red|blue hair, long hair(1个女孩,红色与蓝色头发混合,长发)
- 增强/减弱:有两种写法
- 第一种 (提示词:权重数值):数值从0.1~100,默认状态是1,低于1就是减弱,大于1就是加强
ex: ,(loli:1.21),(one girl:1.21),(cat ears:1.1),(flower hairpin:0.9)
- 第二种 (((提示词))),每套一层()括号增强1.1倍,每套一层[]减弱1.1倍。也就是套两层是1.1*1.1=1.21倍,套三层是1.331倍,套4层是1.4641倍。
ex: ((loli)),((one girl)),(cat ears),[flower hairpin]和第一种写法等价
- 所以还是建议使用第一种方式,因为清晰而准确
- 渐变:比较简单的理解时,先按某种关键词生成,然后再此基础上向某个方向变化。
[关键词1:关键词2:数字],数字大于1理解为第X步前为关键词1,第X步后变成关键词2,数字小于1理解为总步数的百分之X前为关键词1,之后变成关键词2
- ex:a girl with very long [white:yellow:16] hair 等价为
开始 a girl with very long white hair
16步之后a girl with very long yellow hair
- ex:a girl with very long [white:yellow:0.5] hair 等价为
开始 a girl with very long white hair
50%步之后a girl with very long yellow hair
- 交替:轮流使用关键词
ex:[cow|horse] in a field比如这就是个牛马的混合物,如果你写的更长比如[cow|horse|cat|dog] in a field就是先朝着像牛努力,再朝着像马努力,再向着猫努力,再向着狗努力,再向着马努力
tag书写示例
建议按类似这样的格式书写提示词
画质词>>
这个一般比较固定,无非是,杰作,最高画质,分辨率超级大之类的
风格词艺术风格词>>
比如是照片还是插画还是动画
图片的主题>>
比如这个画的主体是一个女孩,还是一只猫,是儿童还是萝莉还是少女,是猫娘还是犬娘还是福瑞,是白领还是学生
他们的外表>>
注意整体和细节都是从上到下描述,比如
发型(呆毛,耳后有头发,盖住眼睛的刘海,低双马尾,大波浪卷发),
发色(顶发金色,末端挑染彩色),
衣服(长裙,蕾丝边,低胸,半透明,内穿蓝色胸罩,蓝色内裤,半长袖,过膝袜,室内鞋),
头部(猫耳,红色眼睛),
颈部(项链),
手臂(露肩),
胸部(贫乳),
腹部(可看到肚脐),
屁股(骆驼耻),
腿部(长腿),
脚步(裸足)
他们的情绪>>
表述表情
他们的姿势>>
基础动作(站,坐,跑,走,蹲,趴,跪),
头动作(歪头,仰头,低头),
手动作(手在拢头发,放在胸前 ,举手),
腰动作(弯腰,跨坐,鸭子坐,鞠躬),
腿动作(交叉站,二郎腿,M形开腿,盘腿,跪坐),
复合动作(战斗姿态,JOJO立,背对背站,脱衣服)
图片的背景>>
室内,室外,树林,沙滩,星空下,太阳下,天气如何
杂项>>
比如NSFW,眼睛描绘详细
Bash
Copy
将不同的分类的词,通过换行区分开,方便自己随时调整
(masterpiece:1.331), best quality,
illustration,
(1girl),
(deep pink hair:1.331), (wavy hair:1.21),(disheveled hair:1.331), messy hair, long bangs, hairs between eyes,(white hair:1.331), multicolored hair,(white bloomers:1.46),(open clothes),
beautiful detailed eyes,purple|red eyes),
expressionless,
sitting,
dark background, moonlight, ,flower_petals,city,full_moon,
Bash
Copy
于是我们得到这样一张图
tag书写要点
-
虽然大家都管这个叫释放魔法,但真不是越长的魔咒(提示词)生成的图片越厉害,请尽量将关键词控制在75个(100个)以内。
-
越关键的词,越往前放。
-
相似的同类,放在一起。
-
只写必要的关键词。
反向提示词 Negative prompt
用文字描述你不想在图像中出现的东西
AI大致做法就是
-
对图片进行去噪处理,使其看起来更像你的提示词。
-
对图片进行去噪处理,使其看起来更像你的反向提示词(无条件条件)。
-
观察这两者之间的差异,并利用它来产生一组对噪声图片的改变
-
尝试将最终结果移向前者而远离后者
-
一个相对比较通用的负面提示词设置
lowres,bad anatomy,bad hands,text,error,missing fingers,
extra digit,fewer digits,cropped,worst quality,
low quality,normal quality,jpeg artifacts,signature,
watermark,username,blurry,missing arms,long neck,
Humpbacked,missing limb,too many fingers,
mutated,poorly drawn,out of frame,bad hands,
unclear eyes,poorly drawn,cloned face,bad face
Bash
Copy
采样迭代步数 Sampling Steps
AI绘画的原理用人话说就是,先随机**出一个噪声图片
然后**一步步的调整图片,向你的 提示词 Prompt 靠拢
Sampling Steps就是告诉AI,这样的步骤应该进行多少次。
步骤越多,每一步移动也就越小越精确。同时也成比例增加生成图像所需要的时间。
大部分采样器超过50步后意义就不大了
下图是同一个图从1step到20step,不同step时图像的变化。
采样方法 Sampling method
使用哪种采样器,人话就是让AI用什么算法。
这里只介绍常用的,不太常用的就自己去琢磨吧
-
Euler a :富有创造力,不同步数可以生产出不同的图片。 超过30~40步基本就没什么增益了。
-
Euler:最最常见基础的算法,最简单的,也是最快的。
-
DDIM:收敛快,一般20步就差不多了。
-
LMS:eular的延伸算法,相对更稳定一点,30步就比较稳定了
-
PLMS:再改进一点LMS
-
DPM2:DDIM的一种改进版,它的速度大约是 DDIM 的两倍
生成批次Batch count/n_iter
同样的配置,循环跑几次
每批数量 Batch size
同时生成多少个图像。增加这个值可以并行运行,但你也需要更多的显卡显存,具体可以自己看着任务管理器里的显存占用显示,自己调。
基本512X512的图,SD1.4模型,Euler a,4G显存可以并行2张,8G显存可以并行8张。
每点一次生成按钮,生成的图像总数=生成批次 X 每批数量
提示词相关性 CFG Scale
图像与你的提示的匹配程度。
增加这个值将导致图像更接近你的提示,但过高会让图像色彩过于饱和(你可以自己试试看)
太高后在一定程度上降低了图像质量。可以适当增加采样步骤来抵消画质的劣化。
一般在5~15之间为好,7,9,12是3个常见的设置值。
宽度 X 高度 Width X Height
单位是像素,适当增加尺寸,AI会试图填充更多的细节进来。
非常小的尺寸(低于256X256),会让AI没地方发挥,会导致图像质量下降。
非常高的尺寸(大于1024X1024),会让AI乱发挥,会导致图像质量下降。
增加尺寸需要更大的显存。4GB显存最大应该是1280X1280(极限)
因为常见的模型基本都是在512×512和768X768的基础上训练
分辨率过高,图片质量会随着分辨率的提高而变差
一般1024X1024以上尺寸AI就会搞出搞各种鬼畜图。
如果模型明确某些分辨率最优,请遵照模型的要求
比如3DKX系列模型就是明确推荐图片分辨率为1152 x 768。
如果你确实想生成高分辨率图像,请使用“Hires. fix”功能。
随机种子 Seed
前边说过,AI绘画的原理是,先随机出一个噪声图片
因为计算机世界里不存在真随机
保持种子不变,同一模型和后端,保持所有参数一致的情况下,
相同的种子可以多次生成(几乎)相同的图像。
如果你用某个种子在某tag下生成了很棒的图,
保持种子数不变,而稍微改一点点tag,增减一点细节,一般得到的图也会不错。
- 不同型号的显卡即使参数与模型完全一致,也可能会生成完全不同的图。
10XX和16XX系显卡基本每种型号都会是不同的结果,20XX系和30XX系基本都可以完美复现图片。
-
这里不是10XX系显卡不适合AI作画的意思,只是你可能看网友的参数图很棒,你想照搬一下结果却大不一样。
-
某些模型比如anything3.0因为模型过于混沌,图像复现性能一样很差。
-
设置中有个选项参数叫ENSD( eta 噪声种子增量)这个会改变种子,有些扩展也可以实现同seed下随机微调种子,可能会造成无法复现其他人的图。
面部修复
使用模型,对生成图片的人物面部(主要是三次元真人)进行修复,让人脸更像真人的人脸,具体设定在【设置】- 【面部修复】
-
基本就是2种模型 CodeFormer 和 GFPGAN ,至于那个更好,这个不好说,这个看模型的,建议都试试。
-
CodeFormer权重参数;为0时效果最大;为1时效果最小,建议从0.5开始,左右尝试,找到自己喜欢的设置。
-
倒不是说二次元图就不能用面部修复了,一定程度上也能提升二次元面部的作画质量。
可平铺(Tiling)
一句话:生成可以往左右上下连续拼接的图像。(见过拼贴的瓷砖不?)
超分辨率 Hires. fix
txt2img 在高分辨率下(1024X1024)会生成非常怪异的图像。而此插件这使得AI先在较低的分辨率下部分渲染你的图片,再通过算法提高图片到高分辨率,然后在高分辨率下再添加细节。
-
放大算法:如果不知道选什么,一般无脑选“ ESRGAN_4x ”
-
重绘幅度:放大后修改细节的程度,从0到1,数值越大,AI创意就越多,也就越偏离原图。
-
Upscale by :放大倍数,在原有宽度和长度上放大几倍,注意这个拉高需要更高的显存的。
【设置】 Settings
设置界面就太复杂了,不细说,只说怎么设定翻译和选择模型使用参数吧
用户界面** **User interface
拉到最底下是选择界面翻译的,选择后,记得到网页最上边,先保存(Apply settings),后重启(Reload Ul)。
【扩展界面】 Extensions
已安装扩展 Installed
显示已经安装的扩展(脚本,翻译,选项卡),勾选了就是启用的扩展,不勾选就是不启用
– 应用并重启 UI Apply and restart UI:更新后重启界面,重载UI界面。
– 检查更新 Check for updates:检查已安装扩展更新
可用 Available
显示目前支持的扩展,点击加载按钮,去官方拉取最新的扩展列表(需要你能访问github)
-
隐藏勾选类型的扩展 Hide extensions with tags:就是勾了的类型的扩展就被隐藏,一般推荐勾选,ads(含广告),installed(以安装)。
-
排序方式 Order:就是设定扩展列表的排序方式,是最新到最久,还是按字母顺序等。
-
下方是扩展的目录,显示扩展的名字,简介,和Install安装按钮,点击扩展的名字可以跳转到对应扩展的仓库页,看作者详细的介绍。
从URL安装 Install from URL
用来自行安装扩展,输入扩展给你的安装URL地址,点Install按钮即可
怎么设定为中文版
-
先点击切换到【扩展页面 Extensions】,再点击【可用 Available】,再点击【Load from: 加载自:】
-
在 【隐藏勾选类型的扩展 Hide extensions with tags】中,取消勾选“localization”
找到 zh_CN Localization 或 zh_TW Localization点击最后的Install按钮
-
点击【已安装扩展 Installed】分页,确保页面下方已经勾选了“stable-diffusion-webui-localization-_”,点击【应用并重启 UI Apply and restart UI】,重启页面。
-
切换到【设置页面 Settings】,左侧找到【用户界面 User interface】,往下拉到底
-
下拉框内选择你需要的语言
-
返回网页最上方,先点击【应用设置 Apply settings】,再点击【重新加载UI Reload UI】
-
如果没有问题,你的界面就是中文的了。
摄影师危!AI绘画即将降维打击摄影行业
来源:https://diwfpqo78m.feishu.cn/docx/LadhdZ9jao92b4xRJLNcJl5pnDh
🔗 原文链接: https://zhuanlan.zhihu.com/p/607373…
你还以为AI绘画影响的只是插画师行业吗?错了,摄影行业也即将面临技术洗牌
话不多说,先看一下这几张图
你能一眼看出这是AI画的迪丽热巴吗?
你是不是还以为AI绘画只能画点动漫艺术风格?那你就低估了AI的发展速度!
随着stable diffusion开源社区的发展,生成真实性的画风已不是难事,随便挑选几张国外大神AI绘画作品,这真实程度和光影表现力,恐怕很多入门摄影师都自愧不如吧。
更令人惊讶的是,生成这种高质量写实照片的成本非常低,用别人训练好的模型的话,自己加点描述词(prompt)几秒种就生成好了。
如果想要自行训练一个指定人物的模型,也只需要采集几十张目标人物照片,用显卡训练1小时就完成了。
例如文章开头迪丽热巴的照骗,就是我采集了约100张迪丽热巴照片,仅训练1个小时后出来的结果。相比实地拍摄,用AI生成的方式“摄影”可以说是非常高效率的一件事。
教你怎么实现
如果你从来没在本地电脑玩过AI绘画,那总流程大约耗时3小时,需要花点时间先安装软件和熟悉软件
如果你已经在本地玩过AI绘画,那总流程大约耗时90分钟,其中半小时准备素材,1小时挂机训练模型。可以直接跳到第2步浏览
1. 安装AI绘画软件
本地AI绘画软件用的最多的是基于stable diffusion这个开源项目做的webui可视化工具,已有B站大佬秋叶将其做成了中文页面启动器的一体包,无需自行安装环境,非常好用。具体下载地址和用法参考他的这个视频,我不再赘述
【AI绘画】启动器正式发布!一键启动/修复/更新/模型下载管理全支持!_哔哩哔哩_bilibili
2. 下载写实基础模型(base model)
有了软件后,还需要准备基础模型。一个好的基础模型在特定风格图像上生成更好的效果。
模型可以到 https:// civitai.com/ 这个网站进行浏览与下载各式各样的模型
对于生成写实性的图,推荐以下几个模型作为基础模型:
https:// civitai.com/models/6424 /chilloutmix
https:// civitai.com/models/4201 /realistic-vision-v13
3. 训练素材搜集与LORA模型训练
什么是lora模型?lora模型可以简单理解为在基础模型之上的一个补丁模型,用来训练特定风格、特定人物、特定动作等效果。 因为基础模型提供了强大的通用能力,但对于指定人物、或者特定的一种风格掌握的并不精,所以需要lora模型来针对性学习下特定领域的效果
lora模型的训练也再次搬出B站大佬秋叶的教程
【AI绘画】最佳人物模型训练!保姆式LoRA模型训练教程 一键包发布_哔哩哔哩_bilibili
至于训练素材,大家就各显神通了,通过各种手段,准备几十张目标图片就行。
训练对硬件配置稍微有点要求,英伟达显卡,显存8G以上。训练时间大约1小时
4. 使用Lora模型生成照片(照骗)
如果你用的是秋叶最新一体包,已经是内置了lora插件,只需要把训练好的lora模型,放到一体包安装目录下.models/Lora 里,即可在webui中刷新可见。
如果你用的是老版本lora插件,请按照老版本lora插件的用法,把模型放到指定位置
以下我以文生图为例,演示下lora模型使用方法
-
点击1处打开额外插件
-
切换到lora选项卡
-
点击训练好的lora模型(默认是无封面图的,可以在生成后拿结果图替换为封面图)
-
在tag词中自动加入了对应词条,修改其数值权重,推荐0.5-0.7
-
设置其他采样、数量、分辨率等参数,点生成
-
等待几秒后,就能在生成结果里看到效果
当然你也可以图生图中用lora模型,例如用一张证件照组参考生成迪丽热巴证件照
如果觉得AI画的衣服细节(如扣子)形状不太真实,你也可以用局部重绘来保留原有图的其他部分,只换脸
我猜肯定也会人说,AI画的动作姿势不一定是摄影师想要的,能否让AI指定人物动作呢?当然也可以
可以用张吕敏大佬最近发表的controlNet插件,做到通过骨骼pose图、线框图、深度图、法线图、涂鸦图来精准控制画面人物的姿势
详细参考 AI 绘画引入 ControlNet,将会带来哪些影响?
对摄影的影响
lora模型与controlNet的出现,基本宣告摄影界将迎来一种全新的摄影流派——AI流。
我拿个亲身案例来说,我跟老婆去拍婚纱照
传统流程:约摄影师->商量拍摄风格->找场地->准备服化道->准备相机灯光器材->现场实拍一天->第二天粗选图->再一周精修图
前后忙活好几天,外景婚纱照出来后,我流下了悔恨的泪水,这拍的什么90年代乡土风情?尴尬的动作、粗糙的服化道、流水线的美颜、预设的调色滤镜。就这么一套垃圾花了我6000,重拍得重新交钱。
如果采用AI流派,那流程将是
AI流摄影:约摄影师->随便找个地方实拍->训练LORA模型->模特与摄影师一起调描述词调姿势调背景-> ps微修下bug
整个从下单到拿到成片,时长1天以内。并且不用麻烦模特,电脑上任意切换服化道、场景、动作、表情、光影、相机镜头焦距,直接效率起飞,超低修改成本,改到模特满意为止。
我甚至可以给自己加点吴彦祖风格、给老婆加点杨幂风格,这出来的效果岂不臭美一辈子?
其他领域的影响
当大家看着插画界的AI替代狂潮幸灾乐祸时,不妨目光放长远多思考下自己行业AI的危和机
蒸汽纺织机出现了,工业革命还会远吗?
不要浪费精力找茬说AI画手指不好、画细节不符合物理等小细节上,我承认这些瑕疵确实还有,但你要看他的发展趋势,这是5年前AI绘画效果,再对比现在的AI绘画效果,你就知道5年前说AI绘画无用论的人是多么目光短浅了
搬出我5年前做的预测,如今也都一一成为了现实
滚石:人工智能对传统设计流程的影响
对各个设计子领域,AI绘画+lora模型可以帮你快速出各类效果图,什么产品外观、汽车外观、建筑设计、包装设计统统不在话下
对于协作领域,chargpt的威力大家有目共睹,身边做跨境电商的朋友已经开始用它写地道英文文案,比兼职印度妹子写的还好
对影视制作领域,AI生成视频也已经是学术界热门研究课题。流浪地球2 就用了我们deepfacelab开源项目实现年轻版吴京
对游戏开发领域,网易逆水寒已经出现了chargpt式互动NPC
对于电商领域,特看科技也有短视频数字人、直播数字人等代替主播的产品
对于福利姬领域,pateron上已经出现了AI赛博福利姬,订阅量还不少
…
对于你的领域呢?
相关资料
我用的基础模型: https:// civitai.com/models/6424 /chilloutmix
训练好的迪丽热巴lora模型发布在这里了 https:// civitai.com/models/9631 ,训练参数使用秋叶大佬教程里的默认参数
训练图片素材来自 https:// dfldata.xyz/
我用的合成参数
正面tag: best quality, ultra high res, (photorealistic:1.0), 1girl, busty, large breasts, black choker, (brown hair:1), looking at viewer, lora:dilireba:0.7,
负面tag:paintings, sketches, (worst quality:2), (low quality:2), (normal quality:2), lowres, normal quality, ((monochrome)), ((grayscale)), skin spots, acnes, skin blemishes, age spot, glans, nsfw, (nipples:1.5)
采样方法 DPM++ SDE Karras 提示词相关性(CFG Scale) 7
编辑于 2023-02-18 13:34 ・IP 属地浙江
35张图,直观理解Stable Diffusion - 掘金
来源:https://diwfpqo78m.feishu.cn/docx/EEhndK0MDonDkmxFZjOcB7eonCx
作者|Jay Alammar
翻译|杨婷、徐佳渝
最近,AI 图像生成引人注目,它能够根据文字描述生成精美图像,这极大地改变了人们的图像创作方式。Stable Diffusion 作为一款高性能模型,它生成的图像质量更高、运行速度更快、消耗的资源以及内存占用更小,是 AI 图像生成领域的里程碑。
在接触了 AI 图像生成以后,你可能会好奇这些模型背后的工作原理。
下面是对 Stable Diffusion 工作原理的概述。
Stable Diffusion 用途多样,是一款多功能模型。首先它可以根据文本生成图像(text2img)。上图是从文本输入到图像生成的示例。除此之外,我们还可以使用 Stable Diffusion 来替换、更改图像(这时我们需要同时输入文本和图像)。
下面是 Stable Diffusion 的内部结构,了解内部结构可以让我们更好地理解 Stable Diffusion 的组成、各组成部分的交互方式、以及各种图像生成选项/参数的含义。
1
Stable Diffusion 的组成
Stable Diffusion 并不是一个单一模型,而是由多个部分和模型一起构成的系统。
从内部来看,首先我们可以看到一个文本理解组件,这个组件将文本信息转化为数字表示(numeric representation)以捕捉文本意图。
这部分主要对 ML 进行大概介绍,文章后续还会讲解更多细节。可以说这个文本理解组件(文本编码器)是一个特殊的 Transformer 语言模型(严格来说它是一个 CLIP 模型的文本编码器)。将文本输入到 Clip 文本编码器得到特征列表,对于文本中的每一个 word/token 都有会得到一个向量特征。
然后将文本特征作为图像生成器的输入,图像生成器又由几部分组成。
图像生成器两步骤:
**1-图像信息创建器(Image **information creator)
图像信息创建器是 Stable Diffusion 特有的关键部分,也是其性能远超其他模型的原因。
图像信息创建器运行多个 step 生成图像信息。Stable Diffusion 接口(interfaces)和库(libraries)的 step 参数一般默认为 50 或 100。
图像信息创建器完全在图像信息空间(亦称潜在空间)上运行,这让 Stable Diffusion 比以前在像素空间(pixel space)上运行的扩散模型速度更快。从技术上讲,图像信息创建器由 UNet 神经网络和调度算法组成。
“扩散”一词描述了图像信息创建器中发生的事情。因为图像信息创建器对信息作了逐步处理,所以图像解码器(image decoder)才能随后产出高质量图像。
2-图像解码器(Image Decoder)
图像解码器根据图像信息创建器的信息绘制图像,它只用在过程结束时运行一次,以生成最终的像素图像。
这样就构成了 Stable Diffusion 的三个主要组成部分,每个部分都有自己的神经网络:
-
ClipText: 用于文本编码。输入: 文本。输出: 77 个 token embeddings 向量,每个向量有 768 维。
-
UNet+调度程序: 在信息(潜在)空间中逐步处理信息。输入: 文本 embeddings 和一个初始化的多维数组(结构化的数字列表,也称为张量)组成的噪声。输出:经过处理的信息数组。
-
自动编码解码器(Autoencoder Decoder): 使用经过处理的信息数组绘制最终图像。输入:经过处理的信息数组(维数:(4,64,64))输出: 生成的图像(维数:(3,512,512),即(红/绿/蓝;宽,高))。
2
到底何为扩散(Diffusion)?
扩散是发生在粉色区域图像信息创建器组件中的过程。这一部分有一个表示输入文本的 token embeddings 和一个随机初始化的图像信息数组,这些数组也被称为 latents,在这个过程中会产生一个信息数组,图像解码器(Image Decoder)使用这个信息数组生成最终图像。
扩散是循序渐进逐步发生的,每一步都会增加更多的相关信息。为了更加直观地了解这个过程,我们可以检查随机 latents 数组,看它是否转化为了视觉噪音(visual noise)。在这种情况下,视觉检查(Visual inspection)是通过图像解码器进行的。
扩散分为多个 step,每个 step 都在输入的 latents 数组上运行,并且会产生另一个 latents 数组,这个数组更类似于输入文本以及模型在模型训练时的所有图像中获取的所有视觉信息。
我们可以对一组这样的 latents 数组执行可视化,看看每一步都添加了什么信息。这一过程令人叹为观止。
在这种情况下,步骤 2 和 4 之间发生了一些特别有意思的事情,就好像轮廓是从噪音中浮现出来的。
3
Diffusion 的工作原理
扩散模型图像生成的核心是强大的计算机视觉模型。在足够大的数据集的基础上,这些模型可以学会很多复杂运算。扩散模型通过如下方式建构问题来实现图像生成:
假设我们有一个图像,我们首先生成一些噪音(noise),然后将这些噪音添加到图像上。
我们可以将这看成是一个训练示例。之后我们使用同样的公式去创建更多的训练示例,然后用这些示例去训练图像生成模型的中心组件。
虽然这个例子展示了从图像(总量 0,没有噪音)到总噪音(总量 4,总噪音)的一些噪音值,但是我们可以轻松控制向图像中添加的噪音,因此我们可以将其分为数十个 step,为数据集中的每个图像创建数十个训练示例。
有了这个数据集,我们可以训练噪音预测器(noise predictor),并最终得到一个在特定配置下运行时可以创建图像的预测器。接触过 ML 的人会觉得训练步骤非常熟悉:
接下来我们来看看 Stable Diffusion 是如何生成图像的。
4
通过降噪绘图
经过训练的噪音预测器可以对噪音图像进行降噪处理,并且可以预测噪音。
因为样本噪音(sampled noise)被预测,所以如果我们从图像中去掉这个样本,我们得到的图像就会更接近模型训练的图像。(这个图像不是确切的图像本身,而是图像分布,也就是图像的像素排列,在像素排列中天空通常是蓝色的,高于地面,人有两只眼睛,猫有尖耳朵并且总是懒洋洋的)。
如果训练数据集中的图像比较美观,比如说 Stable Diffusion 训练的 LAION Aesthetics,那么训练出来的图像的可观赏性也会更高。如果我们在 logo 图像上对其进行训练,那么我们最终会得到一个 logo 生成模型。
这里总结了扩散模型处理图像生成的过程,主要如论文 Denoising Diffusion Probabilistic Models 所述。相信你对扩散的含义有了一定的了解,知道了 Stable Diffusion、Dall-E 2 和谷歌 Imagen 的主要组件。
值得注意的是,到目前为止我们所描述的扩散过程,没有使用任何文本数据,只需运行模型就能生成精美图像。不过我们无法控制图像的内容,它可能是一座金字塔,也可能是一只猫。接下来,我们将讨论如何将文本信息融入扩散过程以控制图片类型。
5
速度提升:在压缩(Latent)数据中扩散
为了加快图像生成过程,Stable Diffusion 论文没有在像素图像上进行运行,而是在图像的压缩版本上运行。论文将这称为前往潜在空间(Departure to Latent Space)。
压缩(随后是解压缩/绘图)通过编码器完成。自动编码器使用 Image Encoder 将图像压缩进潜空间,然后使用 Image Decoder 再对压缩信息进行重构。
正向扩散在潜空间上完成。噪声信息应用于潜空间,而不是应用于像素图象。因此,训练噪声预测器(noise predictor)实际上是为了预测压缩表示(compressed representation)上的噪音,这个压缩表示也被称为潜空间(latent space)。
正向扩散是使用 Image Encoder 生成图像数据,来训练噪声预测器。训练一旦完成,就可以执行反向扩散,使用 Image Decoder 生成图像。
LDM/Stable Diffusion 论文的图 3 中提及了这两个过程:
上图还显示了“conditioning”组件,这个组件在本例中是描述模型生成图像的文本提示词(text prompts)。接下来,我们继续探讨文本组件。
6
文本编码器:一种 Transformer 语言模型
Transformer 语言模型作为语言理解组件,能够接受文本提示词,生成 token embeddings。Stable Diffusion 模型使用的是 ClipText(基于 GPT 的模型),而论文中采用的是 BERT。
Imagen 论文表明,语言模型的选择相当重要。相较于较大的图像生成组件,较大的语言模型组件对生成图像的质量影响更大。
较大的/更好的语言模型对图像生成模型的质量有巨大的影响。资料来源:Saharia 等人所著论文 Google Imagen 中的图 A.5。
早期的 Stable Diffusion 模型仅使用了 OpenAI 发布的预训练模型 ClipText。未来模型可能转向新发布的更大的 CLIP 变体 OpenCLIP。(更新于 2022 年 11 月,详情见 Stable Diffusion V2 uses OpenClip。与仅含有 630 万文本模型参数的 ClipText 相比,OpenCLIP 文本模型参数多达 3.54 亿。)
7
如何训练 CLIP
CLIP 模型是在图像和图像说明数据集上训练的。我们可以设想这样一个数据集,它里面有 4 亿张图像以及这些图像说明的材料。
图像及图像说明数据集
实际上,CLIP 是在网络上抓取的带有“alt”标签的图像上训练的。CLIP 是图像编码器和文本编码器的结合。简单来说,训练 CLIP 就是分别对图像和图像文本说明进行编码。
然后,使用余弦相似度来比较生成的 embeddings。刚开始训练时,即使文本正确描述了图像,相似度也会很低。
我们更新了这两个模型,这样下次嵌入它们时就可以得到相似的 embeddings。
通过在数据集上重复此操作并使用大的 batch size,最终使编码器能够生成图像和文本说明相似的 embeddings。如 word2vec,训练过程也需要包含不匹配的图像和文本说明作为负样本,以得到较低的相似度分数。
8
将文本信息融入图像生成过程
为了使文本融入图像生成,我们须调整噪声预测器来输入文本。
现在,在数据集中加入文本。因为我们是在潜空间中运行,所以输入的图像和预测的噪声都处于潜空间中。
为了更好地理解 UNet 中文本 tokens 的使用方式,下面我们将进一步探究 UNet 模型。
Unet 噪声预测器的 Layers(未使用文本)
首先来看没有使用文本的 UNet,其输入和输出如下:
可以看到:
-
UNet 是一系列用于转换 latents 数组的 layers
-
每一 layer 都对前一个 layer 的输出进行操作
-
Some of the outputs are fed (via residual connections) into the processing later in the network
-
通过残差连接(residual connections),将网络前面的 layer 输出送入到后面的 layer 进行处理
-
时间步长被转化为 embedding 向量,在网络层中使用
Unet 噪声预测器中的 Layers (带文本)
现在让我们看看如何改变该系统以增加对文本的关注度。
为了给文本输入提供支持,也就是专业上所说的文本条件(text conditioning),我们需要在系统的 ResNet blocks 之间添加一个注意力层(attention layer)。
文本信息不直接由 ResNet 处理,而是通过注意力层将这些文本表示融入到 latents 中。这样,下一个 ResNet 就能在处理过程中利用融入的文本信息。
9
总结
希望本文能帮助你深入了解 Stable Diffusion 的运作机制。虽然还涉及到许多其他概念,但是只要熟悉了以上板块,这些概念就会变得很容易理解。下面是一些我认为很有用的资源。
资源
-
www.youtube.com/shorts/qL6m…
-
huggingface.co/blog/stable…
-
huggingface.co/blog/annota…
-
www.youtube.com/watch?v=J87…
-
www.youtube.com/watch?v=ltL…
-
ommer-lab.com/research/la…
-
lilianweng.github.io/posts/2021-…
-
www.youtube.com/watch?v=_7r…
(本文在遵循 CC BY-NC-SA 4.0 协议的基础上由 OneFlow 编译发布,译文转载请联系获得授权。 原文: Alammar, J (2018). The Illustrated Transformer [Blog post].
jalammar.github.io/illustrated…
欢迎 Star、试用 OneFlow 最新版本:
github.com/Oneflow-Inc…
中国AI绘画行业调查报告——技术,用户,争议与未来
来源:https://diwfpqo78m.feishu.cn/docx/JyMJdKP2foTveWx3JwFco2munmh
🔗 原文链接: https://sspai.com/post/76141
前言
多家机构在近期都发布了 AIGC 报告,这个尚在萌芽的赛道获得了巨大的关注,但在更早一些的时候,其中一些更细,更窄的领域,就已经发生了惊天动地的变化,我们将专注其中一个赛道,即 AIGC 中的「生成式文生图」领域,从技术发展,用户调研,商业模式和争议,以及对未来的一些展望,为大家呈现这份报告。
报告的数据及来源包括公开新闻媒体文章,第三方统计数据,6pen 自身数据,以及我们收回的 2398 份问卷调查和对部分行业资深人士的深度访谈。我们的问卷通过 6pen 自有渠道,即刻,微博,以及行业 KOL 分发,最终有效收到 2398 个提交,它们可能是这个行业首次的大批量对用户的直接调查,并聚焦在国内市场,我们认为其具有相当的参考性。
利益相关:本报告由 6pen 调查发布,作为行业从业者,本报告将更多从技术,用户及行业整体视角出发。
AI绘画技术发展的简要脉络
GAN时代
在 diffusion 被广泛运用于AI绘画之前,这种艺术形式的主要实现方式 GAN (Generative Adversarial Nets ),以NVlabs的 SPADE 为例:用户提供草图,由GAN模型将其转化为真实的风景图像。这听起来有点像AI绘画里的img2img,但在这类模型里,用户无法通过文本影响生成结果。
直到类似 CLIP 这种跨模态的图文模型出现,才让用户有办法用文字实现AI作画。后来者如 VQGAN+CLIP 或 StyleCLIP ,均是因为CLIP打通文本和图形域(domain),用户输入的文本与GAN生成的结果真正有了「可比较性」,这使得计算二者误差并迭代效果成为了可能。
GAN在模拟分布方面有着天然的优势,因此它在人脸属性编辑、风格模仿等领域大放异彩,例如给人戴上墨镜、加上胡子、生成动漫脸、模仿小说风格。也正因如此,它也很容易陷入模型坍缩(Model Collapse),即 生成器(Generator)倾向于生成那些最不容易出错、能骗过判别器(Discriminator)的结果 ,例如当用户希望生成"眼睛长在鼻子下面的人脸",或"戴着用鲜花构成的眼镜"这种域外(Out-Of-Domain)的结果时,GAN通常会失效。
Diffusion 崛起
和大多数人以为的相反,Diffusion 其实是早于 GAN 被提出的,但因为 Diffusion 依赖大模型实现,所以对大部分用户的进入门槛较高,研究者也不多,直到 2021 年,因为开源项目 Disco Diffusion(也被简称为DD),Open AI的商业服务 Dalle 等,Diffusion 才开始被更多人了解。
2022年,Disco Diffusion 经过更多开发者的贡献,效果有了较大提升,通过 Google colab 的方式运行(很多人因此误以为 DD 是 Google 发布的),也降低了使用者尝试使用的门槛,在 2022 年 4 月左右,DD 生成的图像在社交网络上得到广泛传播,进一步带动了 Disco Diffusion 的破圈。
同一时期,包括 6pen 在内,国内开始有小部分团队和公司进行 DD 的产品化工作,旨在进一步降低 DD 的使用门槛,包括:
-
提供人机友好的交互界面
-
提供云端的算力服务
-
对 DD 的模型做 finetune(微调)
-
通过封装 CLIP 关键词等方式,降低用户使用门槛,提高风格化效果
在研究领域,也有诸多机构或公司进入模型层的研究,例如 6pen 的南瓜模型,清华大学的 cogview ,百度的文心等等,因为 DD 在社交网络的破圈,这些产品和模型都得到了更多人的关注和使用,但依然有很多较专业的中国用户会通过各种方式使用 midjourney 和 Dalle2 等国外的商业化产品。
Stable Diffusion 开源的潘多拉魔盒
在 Stable Diffusion 之前, 开源方案 里最好的AI绘画实现毫无疑问是 Disco Diffusion,但 Disco Diffusion 也存在诸多问题,例如:
-
生成速度慢(基于像素迭代),由此带来的问题是生成成本高(显卡成本高昂)
-
生成图片逻辑性较差,画面结构经常错乱
-
几乎无法生成人和物体
弥补 Disco Diffusion 的不足,是许多模型或研究团队的方向。CompVis提出的 latent diffusion 将diffusion过程从图像层面迁移到了隐变量(latent)层面,这将推理耗时降低了一个数量级(~10min->30s)。latent diffusion 在模型内嵌了一个很小的文本模型,使得生成过程不必依赖CLIP等开源语言大模型,但这也使模型对用户输入文本的理解能力较弱,生成的结果文不对题。
6pen 提供的南瓜正是基于对它的某种改进:将 CLIP 模型替换掉 latent diffusion 自有的文本编码小模型,计算模型结果与文本间的 CLIP 误差来优化生成过程,因此模型对用户文本理解能力、生成质量都有了明显提升。后来的 Stable Diffusion 也是基于 latent diffusion + CLIP 思路做了模型结构、数据方面的优化,并进行了大规模的训练,达到了堪称惊艳的效果。
Stable diffusion 在 2022 年 8 月下旬由 Stability 发布,Stable diffusion 拥有强大的特性:
-
极快的速度(基于隐空间迭代)
-
远超 DD 的画面逻辑
-
能较好的处理人和物体
-
更多的风格化,例如二次元风格
-
更简易的训练框架
Stable Diffusion 极大降低了行业的进入门槛,包括技术门槛和储备显卡的成本,带来了较多的竞争者入场,但同时也有部分基于 Stable Diffusion 的创新应用开始出现,例如文生视频,图片无限拓展,和 3D 建模工具结合等等,毫无疑问,Stable Diffusion 具有这个时代的革命性。
我们目前就处在这个时间节点。
AI绘画的用户画像
用户基础画像
根据我们的回收报告显示,国内的AI绘画用户特点是年轻化,其中 46% 以上是大学生和研究生,其中甚至有 18% 是初中和高中生。
从城市分布上,绝大多数用户还是分布在一二线城市,其中北京占8.7%,深圳占7.8%,但青岛出人意料的排在了第四,占到了6.1%。南方城市占绝大多数,北方城市较少。
在受众用户的行业分布上,调查结果和我们预期差异较大,美术和设计工作者仅仅只占 24.2%(排名第二),排名第一的行业是线下行业(26%),排名第三的是互联网行业(24%)
在使用AI绘画的具体方式上,38% 的用户只使用在线服务,使用自己显卡的用户占到16%,即便如此,依然有21%的用户表示,虽然目前自己使用在线服务,但未来希望使用自己的显卡,与之相反,现在使用显卡,并表示未来会使用在线服务的用户,只占 4%
用户付费及收入调查
根据我们的调查,60% 的用户并没有在使用AI绘图产品上有过付费行为,也就是完全免费在使用,剩下40% 的付费用户中,16% 付费在 10 元以内,14% 在100元以内,付费超过 100 元的不到 10%
于此同时,我们也调查了用户通过AI绘画产生收入的情况,结果显示绝大部分用户(92%)没有通过AI绘画产生收入,也就是「单纯娱乐使用」,4% 的用户获得了 100 元以下的收入,1.9% 的用户获得了1000 元以下的收入,而获得超过 1000 元收入的用户,占 2%
用户认知
问卷调查显示,42% 的用户认为 AI 绘画单纯只能满足娱乐需求,38% 的用户认为AI绘画可以部分运用到工作之中,9.17% 的用户认为AI绘画具有颠覆性,与此同时,也有 7% 的用户认为这根本不值一提。
绝大部分受访者在最近一个月(8-9月)才了解到AI绘画领域,今年上半年开始接触的占 27%,去年就了解的仅占 23%
我们的问卷包括对模型的使用,为了保证客观,我们排除了 6pen (来自6pen渠道的用户会影响数据准确性,我们将单独展示 6pen 不同模型的使用比例),对用户使用其余模型进行了统计,目前可以看到 Disco Diffusion 略微占优,第二名是 Stable Diffusion,第三名则是 midjourney ,令我们惊讶的是,老牌的 AI 绘图产品 wombo dream ,依然有比较广泛的受众,甚至比著名的 Dalle 系列被更多人使用。
与此同时,6pen 内的近千万次用户使用模型数据则显示,Stable Diffusion 被使用的最多,占到了77%,Disco Diffusion模型占 10%,南瓜占 13%
用户的使用场景
绝大部分的用户表示,使用AI生成绘画作品,仅仅是自己欣赏,同时表示会分享给朋友的占 56%,6%的用户用表示会自己加工之后在工作中使用,低于2%的用户会将生成图片直接商业使用,此外还有23%的用户表示,会发布在社交网络媒体以增加粉丝关注。
平台和工具的商业模式
直接向用户收费
目前,绝大多数 **产品化的 AI 绘画服务 **几乎都通过按照生成收费的方式获得收入,如下:
-
Stable Diffusion
-
模型开源免费
-
Dream Studio 及 API :0.01 欧元 / 基础调用
-
midjourney
-
10 美元 / 月:200次快速生成+不限量的排队生成
-
30 美元 / 月:900次快速生成+不限量的排队生成
-
4 美元 / GPU小时
-
600 美元 / 年 企业套餐
1万+



被折叠的 条评论
为什么被折叠?



