Bootstrap

了解AI绘图,Stable Diffusion的使用

AI绘图对GPU算力要求较高。

个人电脑配置可参考:
Cpu:14600kf 盒装
显卡:RTX 4080金属大师 OC,16G显存
主板:z790吹雪d4
内存:芝奇皇家戟4000c18,16×2G
硬盘:宏基gm7000 1T
散热:追风者冰灵
电源:酷冷至尊850w sfx
机箱:包豪斯mini
风扇:联力积木一代 两把140 七把120

文章参考链接:https://blog.csdn.net/libaiup/article/details/136478141


一.Stable Diffusion的安装

前置条件,需安装python3.10.6和Git版本管理工具:

1.安装 Python 3.10.6 ,链接:https://www.python.org/downloads/release/python-3106/

Windows installer (64-bit)WindowsRecommended8f46453e68ef38e5544a76d84df3994c27.6 MBSIG

2.安装Git,链接:https://git-scm.com/downloads/win

64-bit Git for Windows Setup.


GitHub开源地址:https://github.com/AUTOMATIC1111/stable-diffusion-webui 这个由于墙的问题,下载非常慢。可以了解一下原仓库。

秋叶整合包教程:https://www.bilibili.com/video/BV1ne4y1V7QU 

启动前需要注意:AMD的显卡,HIP SDK需下载并安装5.7.1版本,高版本可能不兼容。

HIP SDK官网链接:https://www.amd.com/zh-cn/developer/resources/rocm-hub/hip-sdk.html

安装后重启电脑。APP启动器一键启动后,会直接拉起本地浏览器,进入http://127.0.0.1:7860/页面。第一次启动过程可能会继续下载启动需要的依赖库,下载好后可进入。


二.Stable Diffusion用户界面

汉化

1.方式一,插件单独下载,并放入extensions文件夹下:https://github.com/VinsonLaro/stable-diffusion-webui-chinese

2.方式二,WebUi界面下载安装(推荐),"Extensions"、"Install from URL"、输入框https://github.com/VinsonLaro/stable-diffusion-webui-chinese、"Install"、"Apply and restart UI"

双语配置(中英合用)"Settings"、"User interface"、"Localization (requires restart)“,选择"Chinese-All"或者"Chinese-English”"Apply settings"、"Reload UI"


界面功能

文生图:文本提示生成图像
图生图:图像作为范本、结合文本提示生成图像
更多:优化图像
图片信息:显示图像的提示词及模型信息
模型合并:将已有的模型,通过修改后合并生成新模型
训练:将提供的图片,训练出具有某种图像风格的模型

AI绘图原理:根据不同的提示词及参数的约束,给到大模型算法训练,出图的过程由模糊到清晰。提示词分2种:正面提示词(Prompt)、负面提示词(Negative Prompt),提示词直接使用英文逗号隔开,最后一个提示词需注意也用英文逗号
正面提示词(Prompt):期望描述生成的内容,通常在75个英文词汇以内,描述少就给AI更多自由发挥空间。
负面提示词(Negative Prompt):不想让SD生成的内容。
正面提示词,常规使用:masterpiece, best quality, 表示杰作、高质量。
负面提示词,常规使用:nsfw, 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, 表示不适用于公开场合的描述,以及一些低质量的通用诟病内容统一限制。

常用图标,从左到右

1.复原上次生成图片的提示词

2.清空当前所有提示词

3.打开模型选择界面

4.应用选择的风格模板,自动生成提示词

5.存档当前的正反向提示词

采样方法,大模型算法分类

不考虑渲染速度,从图片输出品质的角度,可将采样算法分为:收敛不收敛2类。收敛可理解为生成图像较保守、大众化的,不收敛可理解为多样性、创造性更强,质量或好或坏,不稳定,像开盲盒。

采样方法的选择

通过选择合适的采样方法,可以显著提升Stable Diffusion在写实或二次元渲染方面的表现。

采样方法很多都已过时,下面提供最新的几个常用且高效的采样方法:

1.写实图,最推荐的采样算法:DPM++ SDE Karras,特点:不收敛、高品质、速度快。

2.二次元图,最推荐的采样算法:DPM++ 2M Karras,特点:收敛、速度快、质量OK。

DPM++ 2M SDE Karras: 2M于SDE算法的折中算法,不收敛、速度有所提升。

DPM++ 2M SDE Exponential(同DPM++ 2M SDE Karras):指数算法不收敛、细节少一些、画面更柔和、干净

DPM++ 3M SDE Karras、DPM++ 3M SDE Exponential:速度和2M一样,需要更多的采样步数,调低CFG,采样步数>30效果更好

UniPC:2023新算法,统一预测矫正器、兼容性很好、收敛、10步左右就能生成可用画面。

Restart:每步渲染时间长一些,但只需要很少的采样步数,就能生成质量相当不错的图片。

多样性

eta和sigma都是多样性相关的,但是它们的多样性来自步数的变化,追求更大多样性的话应该关注seed的变化,这两项参数应该是在图片框架被选定后,再在此基础上做微调时使用的参数。

采样步数
稳定扩散通过从充满噪音的画布开始创建图像,并逐渐去噪以达到最终输出。此参数控制这些去噪步骤的数量。通常越高越好,但在一定程度上,我们使用的默认值是25个步骤。下面有几个使用场景的采样步数值。

1.测试快速输出,采样步数10-15

2.确定当前的提示词,采样步数25

3.如果是有毛皮的动物或有纹理的主题,生成的图像缺少一些细节,采样步数40

面部修复:修复人物面部,注:非写实类的人物开启时可能导致面部变形。
平铺:生成一张可以平铺的图像
高分辨率重绘:小分辨率创建图像,不改变构图情况下进行细节改进,这里需要用到放大算法、放大倍数以及重回幅度。
放大算法:Latent 在许多情况下效果不错,但重绘幅度小于 0.5 后就不甚理想。ESRGAN_4x、SwinR 4x 对 0.5 以下的重绘幅度有较好支持。
放大倍数: 通常2倍即可
重绘幅度:

阈值推荐:0.3~0.7。决定算法对图像内容的保留程度。该值越高,放大后图像就比放大前图像差别越大。一般来讲阈值是 0.7 左右,超过 0.7 和原图基本上无关,0.3 以下就是稍微改一些,0什么都不会改变,1会得到一个完全不同的图像。具体的执行步骤为 重绘强度 * 重绘步数。

长宽尺寸(分辨率)
最佳的范围应在512至768像素之间。正方形图:512*512和768*768,人像肖像: 512x768,风景画 768×512,可按比例加大或减小,这个值必须是 8 的倍数。如果不希望主题对象出现重复,应在此范围内选择适当的尺寸。如果需要更高分辨率的图片,建议先使用SD模型生成图片,然后再使用合适的模型进行upscale。

生成批次:每次生成图像的组数。一次运行生成图像的数量为生成批次 * 每批数量。
每批数量:同时生成多少个图像。增加这个值可以提高性能,但你也需要更多的 VRAM。图像总数是这个值乘以批次数。

提示词相关性CFG:较高的数值将提高生成结果与提示的匹配度。
OpenArt上使用的默认CFG是7,这在创造力和生成你想要的东西之间提供了最佳平衡。通常不建议低于5。
CFG量表可以分为不同的范围,每个范围都适合不同的提示类型和目标
CFG 2 – 6:有创意,但可能太扭曲,没有遵循提示。对于简短的提示来说,可以很有趣和有用
CFG 710:推荐用于大多数提示。创造力和引导一代之间的良好平衡
CFG 10-15:当您确定您的提示是详细且非常清晰的,您希望图像是什么样子时
CFG 16-20:除非提示非常详细,否则通常不推荐。可能影响一致性和质量
CFG >20:几乎无法使用

随机种子(Seed):生成每张图片时的随机种子,这个种子是用来作为确定扩散初始状态的基础。

提示词生成

Prompt格式优化

第一段:画质tag,画风tag
第二段:画面主体,主体强调,主体细节概括(主体可以是人、事、物、景)画面核心内容。一般提供人数,人物主要特征,主要动作(一般置于人物之前),物体主要特征,主景或景色框架等
第三段:画面场景细节,或人物细节,embedding tag。画面细节内容

举个例子
(具体场景还是要灵活应用,多尝试,找到合适自己的节奏和风格)
第一段:masterpiece, best quality, 4k, ( Pixar - style :1.4)
第二段:1boy,(Cute,handsome,wearing outdoor sportswear :0.7), 3D,(Face close-up :1.2), (at night, surrounded by glowing plants, flowers, flying fireflies, bonfires), (Ultra detailed, aesthetic, beautiful composition, rich bright colors, volumetric soft light).
第三段:Inspired by Alice in Wonderland, magic, fairy tales. unreal Engine, octane render, cuteness render, awe inspiring, beautiful, lora:blindbox\_V1Mix:1

Prompt规则细节

1. 越靠前的Tag权重越大。
2. 生成图片的大小会影响Prompt的效果,图片越大需要的Prompt越多,不然Prompt会相互污染。
3.Stable-diffusion中,可以使用括号人工修改提示词的权重,方法如下:
(word) - 将权重提高 1.1 倍
((word)) - 将权重提高 1.21 倍(= 1.1 * 1.1)
[word] - 将权重降低至原先的 90.91%
(word:1.5) - 将权重提高 1.5 倍
(word:0.25) - 将权重减少为原先的 25%
请注意,权重值最好不要超过 1.5

4. Prompt支持使用emoji,可通过添加emoji达到表现效果。如 形容表情, 可修手。
5.“+” , “ AND” , “|” 用法:“+”和“ AND ”都是用于连接短Tag,但AND两端要加空格。"+“约等于” and ";“|” 为循环绘制符号(融合符号)(Prompt A: w1)|(Prompt B: w2)
以上表达适用于WebUI,w1、w2为权重。AI会对A、 B两Prompt进行循环绘制。可往后无限加入Prompt。
6.tag不一定是多么充满细节,只要模型稳定。小图+高分辨率重绘。800*400的图变成1600*800,初识小图减少崩坏概率。
7.关键词最好具有特异性,譬如 Anime(动漫)一词就相对泛化,而Jojo一词就能清晰地指向 Jojo动漫的画风。措辞越不抽象越好,尽可能避免留下解释空间的措辞。

;