文章目录
1、应用简介
1.1 Stable Diffusion模型
官网地址:
https://stability.ai/stablediffusion
目前市面上比较权威,并能用于工作中的AI绘画软件其实就两款。一个叫Midjourney(简称MJ),另一个叫Stable-Diffusion(简称SD)。MJ需要付费使用,而SD开源免费,但是上手难度和学习成本略大。
Stable Diffusion 是 2022 年发布的深度学习文字到图像生成模型。它主要用于根据文字的描述产生详细图像,能够在几秒钟内创作出令人惊叹的艺术作品。
Stable Diffusion是一种潜在扩散模型(Latent Diffusion Model),能够从文本描述中生成详细的图像。它还可以用于图像修复、图像绘制、文本到图像和图像到图像等任务。
Stable Diffusion 是由 CompVis、Stability AI 和 LAION 共同开发的一个文本转图像模型,它通过 LAION-5B 子集大量的512×512图文模型进行训练,用户只要简单的输入一段文本,Stable Diffusion 就可以迅速将其转换为图像。同样,用户也可以置入图片或视频,配合文本对其进行处理。
Prompt: five new OpenFlamingo models hanging out! :)
- 前向扩散(Forward diffusion)
前向扩散过程将噪声添加到训练图像中,逐渐将其转换为非特征噪声图像。正向过程会将任何猫或狗的图像变成噪声图像。最终,您将无法分辨它们最初是狗还是猫。
噪声在每一步按顺序添加。噪声预测器估计每个步骤的总噪声加起来。
- 反向扩散(Reverse diffusion)
如果我们能逆转扩散呢?就像向后播放视频一样,时光倒流。从嘈杂、无意义的图像开始,反向扩散恢复了猫或狗的图像。这是主要思想。为了逆转扩散,我们需要知道图像中添加了多少噪声。答案是教神经网络模型来预测增加的噪声。它被称为稳定扩散中的噪声预测因子。这是一个U-Net模型。
我们首先生成一个完全随机的图像,并要求噪声预测器告诉我们噪声。然后,我们从原始图像中减去这个估计的噪声。重复此过程几次。你会得到一只猫或一只狗的图像。
那稳定扩散模型呢?
在文本到图像中,您向稳定扩散提供文本提示,它会返回一个图像。
-
第 1 步。稳定扩散在潜空间中生成随机张量。您可以通过设置随机数生成器的种子来控制此张量。如果将种子设置为某个值,您将始终获得相同的随机张量。这是你在潜在空间中的图像。但现在都是噪音。
-
第 2 步。噪声预测器 U-Net 将潜在噪声图像和文本提示作为输入,并预测噪声,也在潜在空间(4x64x64 张量)中。
-
第 3 步。从潜在图像中减去潜在噪声。这将成为您的新潜在图像。
步骤 2 和 3 重复一定数量的采样步骤,例如 20 次。 -
第 4 步。最后,VAE的解码器将潜在图像转换回像素空间。这是运行稳定扩散后获得的图像。
1.2 Stable Diffusion WebUI
目前大家普遍采用的Stable Diffusion Web UI是发布于开源程序分享网站 Github 的 Python 项目。
Stable Diffusion WebUI 是 Stable Diffusion 的一个浏览器交互界面,它提供了多种功能,如 txt2img、img2img 等,还包含了许多模型融合改进、图片质量修复等附加升级。通过调节不同参数可以生成不同效果,用户可以根据自己的需要和喜好进行创作。它不仅支持生成图片,使用各种各样的模型来达到你想要的效果,还能训练你自己的专属模型。
其中最受欢迎和经常更新的是 AUTOMATIC111 的 Stable Diffusion Web UI 搭建的工作。除了 txt2img、img2img等 Stable Diffusion 的基本功能外,Web UI 还包含许多模型融合改进、图片质量修复等许多附加升级——所有这些都可以通过易于使用的方式访问Web 应用程序图形用户界面。
https://github.com/AUTOMATIC1111/stable-diffusion-webui
参数 | 说明 |
---|---|
Prompt | 提示词(正向) |
Negative prompt | 消极的提示词(反向) |
Width & Height | 要生成的图片尺寸。尺寸越大,越耗性能,耗时越久。 |
CFG scale | AI 对描述参数(Prompt)的倾向程度。值越小生成的图片越偏离你的描述,但越符合逻辑;值越大则生成的图片越符合你的描述,但可能不符合逻辑。 |
Sampling method | 采样方法。有很多种,但只是采样算法上有差别,没有好坏之分,选用适合的即可。 |
Sampling steps | 采样步长。太小的话采样的随机性会很高,太大的话采样的效率会很低,拒绝概率高(可以理解为没有采样到,采样的结果被舍弃了)。 |
Seed | 随机数种子。生成每张图片时的随机种子,这个种子是用来作为确定扩散初始状态的基础。不懂的话,用随机的即可。 |
1.3 InsCode平台
InsCode是一个集成了在线IDE、在线AI编程、在线算力租赁、在线项目部署以及在线SD 模型使用的综合代码开发平台。不论你是初级软件工程师,还是AI大模型爱好者,InsCode都能帮助你快速编写代码,运行项目。甚至在这里你还可以一键购买算力,训练大模型,开发自己的AI应用程序。
https://inscode.csdn.net/@inscode/Stable-Diffusion
2、界面简介
在线运行地址(统一为https://inscode.csdn.net/@inscode/Stable-Diffusion )、模型相关版本和参数配置、图片生成提示词和反向提示词、种子和对应的图片;
2.1 打开Stable Diffusion WebUI
在浏览器打开如下网址:
https://inscode.csdn.net/@inscode/Stable-Diffusion
此环境主要用于学习和使用Stable Diffusion,已经安装了相关软件和组件库,可直接启动Stable Diffusion WebUI进行创作。
Stable Diffusion WebUI把Stable Diffusion模型进行了封装,提供更加简洁易操作的界面,自身还可以通过插件等方式获得更多能力。目前使用的最多的是Stable Diffusion WebUI,因为它界面友好,可以很方便的调整各项参数,生成高质量的图片。
点击右上角的按钮“运行及使用”,弹出如下付费界面:
购买一定的时长后,点击算力资源右侧应用列表的“Stable Diffusion WebUI”:
弹出新的网页页面如下:
2.2 选择模型
2.3 选择功能模块
txt2img:标准的文字生成图像;
img2img:根据图像成文范本、结合文字生成图像;
Extras:优化(清晰、扩展)图像;
PNG Info:图像基本信息
Checkpoint Merger:模型合并
Textual inversion:训练模型对于某种图像风格
Settings:默认参数修改
2.4 文本输入
这里以txt2img为例继续介绍和测试。
内容输入部分有两部分:
prompt:该部分主要就是对于图像进行描述,有内容风格等信息进行描述。后面的画板可以一些随机的风格、下面箭头是之前任务的参数;
Negative prompt:这个主要是提供给模型,我不想要什么样的风格;特别对于图上出现多个人的情况,就可以通过2girls等信息进行消除;
- (1)提示词(prompt)
- (2)反向词(Negative prompt)
2.5 参数设置
- 采样方法(Sampler) Sampling method
Sampling method 扩散去噪算法的采样模式,会带来不一样的效果,ddim 和 pms(plms) 的结果差异会很大,很多人还会使用euler;Euler a(Eular ancestral)可以以较少的步数产生很大的多样性,不同的步数可能有不同的结果。而非 ancestral 采样器都会产生基本相同的图像。DPM 相关的采样器通常具有不错的效果,但耗时也会相应增加。
请使用DPM++ 2M或DPM++ 2M Karras(二次元图)或UniPC,想要点惊喜和变化,Euler a、DPM++ SDE、DPM++ SDE Karras(写实图)、DPM2 a Karras(注意调整对应eta值)。
Euler 是最简单、最快的
Euler a 更多样,不同步数可以生产出不同的图片。但是太高步数 (>30) 效果不会更好。
DDIM 收敛快,但效率相对较低,因为需要很多 step 才能获得好的结果,适合在重绘时候使用。
LMS 是 Euler 的衍生,它们使用一种相关但稍有不同的方法(平均过去的几个步骤以提高准确性)。大概 30 step 可以得到稳定结果
PLMS 是 Euler 的衍生,可以更好地处理神经网络结构中的奇异性。
DPM2 是一种神奇的方法,它旨在改进 DDIM,减少步骤以获得良好的结果。它需要每一步运行两次去噪,它的速度大约是 DDIM 的两倍,生图效果也非常好。但是如果你在进行调试提示词的实验,这个采样器可能会有点慢了。
UniPC 效果较好且速度非常快,对平面、卡通的表现较好,推荐使用。
- 采样迭代步数(Steps) Sampling steps
Sampling Steps diffusion model 生成图片的迭代步数,每多一次迭代都会给 AI 更多的机会去比对 prompt 和 当前结果,去调整图片。更高的步数需要花费更多的计算时间,也相对更贵。但不一定意味着更好的结果。当然迭代步数不足(少于 50)肯定会降低结果的图像质量。一般开到 20~30。
- Width、Height 图像长宽
Width、Height 图像长宽,可以通过send to extras 进行扩大,所以这里不建议设置太大(显存小的特别注意);
-
Restore faces 优化面部,绘制面部图像特别注意;
-
Tiling 生成一个可以平铺的图像;
-
Highres. fix 使用两个步骤的过程进行生成,以较小的分辨率创建图像,然后在不改变构图的情况下改进其中的细节,选择该部分会有两个新的参数 Scale latent 在潜空间中对图像进行缩放。另一种方法是从潜在的表象中产生完整的图像,将其升级,然后将其移回潜在的空间。Denoising strength 决定算法对图像内容的保留程度。在0处,什么都不会改变,而在1处,你会得到一个不相关的图像;
- Batch count、 Batch size 都是生成几张图,前者计算时间长,后者需要显存大;
- CFG Scale 分类器自由引导尺度。图像与提示符的一致程度——越低的值产生越有创意的结果;图像与你的提示的匹配程度。增加这个值将导致图像更接近你的提示,但它也在一定程度上降低了图像质量。 可以用更多的采样步骤来抵消。过高的 CFG Scale 体现为粗犷的线条和过锐化的图像。一般开到 7~11。
- Seed 种子数,只要中子数一样,参数一致、模型一样图像就能重新;种子决定模型在生成图片时涉及的所有随机性,它初始化了 Diffusion 算法起点的初始值。
3、测试
3.1 龙猫
- 模型:Cute_Animals.ckpt
- 采样方法(Sampler):DPM++ 2S a Karras
- 采样迭代步数(Steps): 40
- 正向提示词:
<lora:triceratops:0.7>, totoro
- 反向提示词:(无)
3.2 恐龙
-
模型:Cute_Animals.ckpt
-
采样方法(Sampler):DPM++ 2S a Karras
-
采样迭代步数(Steps): 40
-
正向提示词:
<lora:triceratops:0.7>, epic realistic, giant triceratops, dinosaur, dynamic pose, aggressive, (cinematic:1.4), intricate details, hyperdetailed, dim colors,hdr, faded, slate gray atmosphere, complex background, dark shot
- 反向提示词:
black and white, b&w, anime, manga, asian, (deformed, distorted, disfigured:1.3), poorly drawn, bad anatomy, wrong anatomy, extra limb, missing limb, floating limbs, (mutated hands and fingers:1.4), disconnected limbs, mutation, mutated, ugly, disgusting, blurry, amputation Steps: 20, Sampler: Euler a, CFG scale: 5, Seed: 1276377621, Size: 768x512, Model: 01_deliberate_v2, ENSD: 31337 Template: , epic realistic, giant triceratops, dinosaur, dynamic pose, aggressive, (cinematic:1.4), intricate details, hyperdetailed, dim colors,hdr, faded, slate gray atmosphere, complex background, dark shot
3.3 蓝天白云
-
模型:GuoFeng3
-
采样方法(Sampler):Euler a
-
采样迭代步数(Steps): 20
-
正向提示词:
blue sky, white cloud,green grass
blue sky, white cloud,green grass
Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 3316626042, Size: 512x512, Model hash: 74c61c3a52, Model: GuoFeng3, Version: v1.2.0
- 正向提示词:
blue sky, white cloud,green grass, a stream on the grass land
- 正向提示词:
blue sky, white cloud,green grass, a stream on the grass land, 1girl,
3.4 美少女战士
-
模型:chilloutmix-Ni
-
采样方法(Sampler):DPM++ 2S a Karras
-
采样迭代步数(Steps): 40
-
正向提示词:
miku is singing, character portrait, highly detailed,,romantic lighting,shimmering light,masterpiece,look from side,depth of field,stunning environment,sharp focus
miku is singing, character portrait, highly detailed,romantic lighting,shimmering light,masterpiece,look from side,depth of field,stunning environment,sharp focus
Steps: 40, Sampler: DPM++ 2S a Karras, CFG scale: 7, Seed: 3404521592, Size: 512x512, Model hash: 7234b76e42, Model: chilloutmix-Ni, Version: v1.2.0
4、其他
4.1 DALL·E 2
DALL-E 2 是一种基于语言的人工智能图像生成器,可以根据文本提示创建高质量的图像和艺术作品。它使用CLIP、先验和 unCLIP 模型来生成图像,其质量取决于文本提示的具体性。
2021年1月,OpenAI 推出了 DALL-E 模型,DALL-E 2 是其升级版。“DALL-E”这个名字源于西班牙著名艺术家Salvador Dalí 和广受欢迎的皮克斯动画机器人 “Wall-E” 的组合。
2022年7月,DALL-E 2 进入测试阶段,可供白名单中的用户使用。同年9月28日,OpenAI 取消了白名单的要求,推出了任何人都可以访问并且使用的开放测试版。
4.2 DreamStudio
DreamStudio 是由 Stability AI 公司开发的一款人工智能文本-图像扩散(CLIP)模型,能根据给出的文本提示词(Prompt)生成高质量且匹配度非常精准的图像,且生成速度最快只需要几秒。
哈哈!
4.3 lexica.art
Lexica Art是一个集AI生图和分享为一体的AI绘画网站,你在上面可以看到各种网友分享的AI图片,网站有一键复制提示词功能,如果你看到喜欢的图片,可以点击图片进入编辑器,生成自己特色的图片。当然你也可以直接进入AI生图编辑器,直接输入提示词生成图片。
Lexica Art目前只只支持自己的模型:Lexica Aperture,图片尺寸可定制,生成的图片分辨率极高。
- 正向提示词:
blue sky, white cloud, some bird
4.4 Stable Diffusion FR
https://stablediffusion.fr/demo-v1
Stable Diffusion FR是一个免费StableDiffusion在线体验网站,网站将Stable Diffusion部署在云端上面,你看到的是一个最基础的Stable Diffusion界面,非常适合没有体验过Stable Diffusion的新手,网站满足了简单的文生图,图生图,Impaint(局部生图)等功能。
- 正向提示词:
blue sky, white cloud, totoro
4.5 Graviti SD WebUI
这个网站提供了原汁原味的Stable Diffusion WebUI界面体验功能,网站真的跟我们自己部署的一模一样,网站内置了很多知名的模型和Lora,直接傻瓜式使用就可以了,甚至Stable Diffusion的高级功能ControlNet网站也可以使用。
- 正向提示词:
blue sky, white cloud,
结语
如果您觉得该方法或代码有一点点用处,可以给作者点个赞,或打赏杯咖啡;
╮( ̄▽ ̄)╭
如果您感觉方法或代码不咋地
//(ㄒoㄒ)//,就在评论处留言,作者继续改进;
o_O???
如果您需要相关功能的代码定制化开发,可以留言私信作者;
(✿◡‿◡)
感谢各位大佬童鞋们的支持!
( ´ ▽´ )ノ ( ´ ▽´)っ!!!