(下)【一文掌握AI绘图】Stable Diffusion 绘图喂饭教程
上篇——我们将站在小白的视角,了解从0开始到底要怎么开始学习AI绘图,需要掌握哪些知识,安装哪些软件、了解哪些功能,以及一张图片的绘制流程;(点击跳转上篇)
下篇——我们将进一步了解SD画图的进阶技巧,了解关于模型、功能、提示语、插件和参数这五大方面的细节和技巧,让生成的图片效果更加可用和美观。
建议文章最下查看原文,阅读体验更佳哦
SD画图进阶技巧
/ 1 /
了解和使用模型
正如上期所说,模型是决定生成图片效果的最重要因素,所以了解每种模型的区别和使用方式是很有必要的,以下将五种模型类型进行分别讲解:
模型的获取获取的重要网址:
C站:https://civitai.com/ (最方便使用的)
抱脸:https://huggingface.co/models?pipeline_tag=text-to-image (最大最全的)
(1)大模型(底模型、主模型、base model)
- 定义:SD默认的模型也就是官方提供出来的模型现已支持到2.1版本,C站上所有的模型都是基于官方的不同版本进行再训练后打包的。因为该模型数据集最大且影响也最大,所以称为大模型
- 常见模式:尾缀ckpt、safetensors
- 常见大小:2G-7G
- 存放路径:
Dtoolnovelai-webui-一键包novelai-webui-.akimodelsStable-diffusion
(2)VAE美化模型
- 定义:可以理解为滤镜,选择了VAE就像是给图片套上了一层滤镜,会改变图片原有的颜色风格;一般默认是无,而且有些大模型中会自带VAE,没什么特殊需求可以不用勾选使用。
- 常见模式:尾缀ckpt、pt
- 名字中带有vae
- 存放路径:
Dtoo小novelai-webui-一键包novelai-.webui-akimodelsVAE
(3)Lora模型
- 定义:LoRA 模型是通过截取大模型的某一特定部分生成的小模型,虽然不如大模型的能力完整,但短小精悍。因为训练方向明确,所以在生成特定内容的情况下,效果会更好。
- 常见模式:尾缀ckpt、safetensors、pt
- 常见大小:100MB左右
- 存放路径:
D.toolnovelai-webui-一键包novelai-webui-akimodelsLora
(4)Embeddings
- 定义:通过角色训练产出,能够让你的主模型识别某个指定的角色,因为你的主模型不可能每个角色都认识,通过文件名来触发。
- 常见模式:尾缀pt
- 常见大小:几十KB
- 存放路径:
D:toolnovelai-webui-一键包novelai-webui–akiembeddings
- 定义:通过画风训练产出,能够指定特定的画风
- 常见模式:尾缀pt
- 常见大小:几十KB
- 存放路径:
Dtoolnovelai-webui-一键包novelai-webui-akimodelshypernetworks
/ 2 /
功能类型选择
除了文生图,也可根据自己的需求选择其他选项卡进行操作,以下简单介绍正常流程会用到的选项卡:
- 图生图:将文生图的结果继续生成图片,或自己上传一张图片,常用于调整和优化图片,或修改图片风格、背景、人物形象等场景;
- 附加功能:对单张或批量图片进行缩放的操作;
- 图片信息:将本地图片上传后,可以用于其他选项卡的功能中;
- 模型合并:将多个模型进行不同权重的合并,从而获得一个新的模型;
- Tag反推:将本地图片上传,可以获得图片的提示语内容,并重新作用在其他选项卡中;
- 扩展:SD的扩展插件配置区,可以查看已安装的插件内容,并控制开启和禁用状态;也支持通过URL的方式获取其他插件。
/ 3 /
掌握提示语输入技巧(必看)
关于提示语的输入指南建议通读下方链接,写的很详细,看完你将对于理解和使用提示语有非常大的帮助:
https://guide.novelai.dev/guide/prompt-engineering/txt2img
本人基于这篇指南,结合个人经验将常用的技巧整理如下:
(1)提示语输入基本要求
-
使用英语描述最佳,避免出现单词拼写错误;(不同模型可能有训练中文和日文,可自行判断) -
标点符号同样使用英文半角进行输入; -
建议使用逗号隔开的单词作为提示词;(也可用句号、甚至是空字符( )来分隔关键词,可以提高图像质量)
-
也可以使用自然语言描述图片内容,比如:A handsome hero armed with a sword(一个英俊的英雄装配着剑) -
提示语描述和图像风格要尽可能搭配,相近的描述不要重复出现; -
善于利用反向提示语来去除图片的负面效果; -
尽可能使用特定含义的词汇,比如将 big 调整为 huge ,避免使用有多种含义的词汇; -
避免使用with、and之类的连接词; -
可使用emoji(💰,💶,💷,💴,💵,🎊,🎀,👩) 进行补充描述; -
逗号前后的少量空格并不影响实际效果; -
可以通过指定风格提示语来创作带有特效或指定画风的图片;(风格获取参考下文👇) -
姿势的描述越精简越好,否则容易出现肢体重复的情况;(肢体生成是AI硬伤,可用controlnet来解决) -
避免过长提示词,越尾部的提示词在图片中的权重默认就越低,因此关键特征尽可能放在头部或通过语法来提高权重;(过长提示词可适当提高生成步数获取更好效果)
(2)输入技巧
将自己构思的图片特征抽象为标签描述,并将标签按分类进行排列,以下为模板示例:
(quality), (subject)(style), (action/scene), (artist), (filters)
(quality)
代表画面的品质,比如low res
结合sticker
使用来 “利用” 更多数据集,1girl
结合high quality
使用来获得高质量图像。(subject)
代表画面的主题,锚定画面内容,这是任何提示的基本组成部分。(style)
是画面风格,可选。(action/scene)
代表动作/场景,描述了主体在哪里做了什么。(artist)
代表艺术家名字或者出品公司名字。(filters)
代表一些细节,补充。可以使用 艺术家,工作室,摄影术语,角色名字,风格,特效等等。
提示语语法
对于 SD-WebUI,具体规则如下:
(word)
– 将权重提高 1.1 倍((word))
– 将权重提高 1.21 倍(= 1.1 * 1.1),乘法的关系。[word]
– 将权重降低 90.91%(word:1.5)
– 将权重提高 1.5 倍(word:0.25)
– 将权重减少为原先的 25%(word)
– 在提示词中使用字面意义上的 () 字符
使用数字指定权重时,必须使用 ()
括号。如果未指定数字权重,则假定为 1.1
。(权重增加通常会占一个提示词位,应当避免加特别多括号)
( n ) = ( n : 1.1 )
(( n )) = ( n : 1.21 )
((( n ))) = ( n : 1.331 )
(((( n )))) = ( n : 1.4641 )
((((( n )))) = ( n : 1.61051 )
(((((( n )))))) = ( n : 1.771561 )
(3)相关模板(可在SD中保存使用)
正向提示语:
# 万能画质要求
(masterpiece, best quality),
反向提示语:
# 避免糟糕的人像
ugly, fat, obese, chubby, (((deformed))), [blurry], bad anatomy,disfigured, poorly drawn face, mutation, mutated, (extra_limb),(ugly), (poorly drawn hands fingers), messy drawing, morbid,mutilated, tranny, trans, trannsexual, [out of frame], (bad proportions),(poorly drawn body), (poorly drawn legs), worst quality, low quality,normal quality, text, censored, gown, latex, pencil
# 避免生成水印和文字内容
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
# 通用
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
#避免变形的手和多余的手#
extra fingers,fused fingers,too many fingers,mutated hands,malformed limbs,extra limbs,missing arms,poorly drawn hands,
(4)辅助工具推荐(建议收藏)
理论是理论,实践是实践,刚开始要纯手敲提示语终究是太难,所以下面将推荐一些提示语的工具网页,点开即可用:
工具的推荐使用流程如下:
【标签参考】
- 最全tag库(根据分类查找):https://danbooru.donmai.us/
- 颜色列表:https://en.wikipedia.org/wiki/List_of_colors_by_shade
- 表情符号:https://unicode.org/emoji/charts/emoji-list.html
- 标签冰山图:https://icebergcharts.com/i/Danbooru_Tags
【美图灵感】
- C站不多说:https://civitai.com
- AI生图的成品图:https://finding.art/#/?prompt=
- PromptHero:https://prompthero.com/
- PromptSearch(韩风居多):https://www.ptsearch.info/home/
- Crowdsourced AI Art(质量高):https://arthub.ai/
- Lexica(艺术风格):https://lexica.art/
【提示语工具】必用!!!!!!!!!!!
- 标签超市(选择复制粘贴):https://tags.novelai.dev/
- 魔咒百科词典:https://aitag.top/
【风格化标签】
- Stable Diffusion V1 Artist Style Studies(网友总结的风格标签):https://proximacentaurib.notion.site/e28a4f8d97724f14a784a538b8589e7d?v=42948fd8f45c4d47a0edfc4b78937474
- https://www.urania.ai/top-sd-artists
-
Artists To Study:https://artiststostudy.pages.dev/
/ 4 /
获取和使用插件
插件系统作为SD的能力扩展, 很多大佬发挥想象力制作了许多强力的插件,个人认为普通画图不需要研究太多的插件内容,因为你根本没那个时间精力,不过有几个常用插件可以安装和尝试使用,以下我以本地部署的SD页面为例,介绍如何获取插件、使用插件和插件推荐:
(1)获取插件
获取插件可在SD中查询获取或者复制git仓库地址进行下载安装:
(2)使用插件
不同的插件有着各自的个性化配置,所以在这里就不展开讲了,只给大家演示一下在哪里可以选用插件,在文生图和图生图中都可以使用插件。
有些插件可能不存在配置项,是直接内置在SD的功能里面来加强效果,总之每种插件的作用效果和配置内容都有所不同,需要阅读插件的文档来搭配使用。
(3)插件推荐
本地部署的话一般内置就有插件了,这里推荐一些对普通画图过程中有帮助的插件,具体使用教程有需要的话以后再来讲解。
插件聚合页,有需要的自取:
https://guide.novelai.dev/advanced/development/extensions
- C站助手:
(方便在SD中查看模型预览图,也支持复制链接直接下载模型)
插件地址:https://github.com/butaixianran/Stable-Diffusion-Webui-Civitai-Helper.git
- ControlNet:
(必装,可根据上传的图片或视频进行转绘,想要让AI精准确定人物姿势和肢体细节,这个插件是必装的)具体使用教程会在后续出
插件地址:https://github.com/Mikubill/sd-webui-controlnet (也可直接在“扩展”中搜索controlnet下载即可)
ControlNet插件安装后,还需要到官网中下载下载特定的模型:
https://huggingface.co/lllyasviel/ControlNet/tree/main/models
https://huggingface.co/TencentARC/T2I-Adapter/tree/main/models
(模型下载到 extensionssd-webui-controlnetmodels)
- Tiled Diffusion+Tiled VAE插件:
(小显存福音:这个插件可以让小显存玩家将图片放大到2K、4K甚至8K,并且速度非常快)
插件地址 https://github.com/pkuliyi2015/multidiffusion-upscaler-for-automatic1111
其他后续再添加
/ 5 /
了解和配置参数
(1)常用参数的基本介绍
-
采样器(Sampler):不同采样器的图片效果有所差异,具体看下文介绍; -
采样迭代步数(Steps):图片生成时需要进行多少步的计算,20~50即可,太低图片质量差,太高可能图片失真;更多的步骤意味着从噪声到图像的更小、更精确的步骤。增加这一点直接增加了生成图像所需的时间; -
面部修复(Restore faces):可选项,修复面部细节,用于人像图片生成; -
平铺/分块(Tiling):可选项,生成平铺拼接的图案,类似瓷砖拼接的效果; -
高清修复(Hires.fix):可选择,常用于大尺寸的高清图片输出需求,非常耗性能速度很慢; -
宽度/高度(Width/Height):图像的宽高像素。要增加这个值,你需要更多的显存。大尺度的图像一致性会随着分辨率的提高而变差(模型是在 512×512 的基础上训练的)。非常小的值(例如 256 像素)也会降低图像质量。这个值必须是 8 的倍数;出图尺寸太宽时,图中可能会出现多个主体,推荐使用 小尺寸分辨率 + 高清修复; -
生成批次(Batch count):每次执行画图的批次数;最终出图=生成批次*每批数量 -
每批数量(Batch size):每批画图的数量,增加这个值可以提高性能,但你也需要更多的 VRAM,默认为1即可;(数量与时间成正比) -
提示词相关性(CFG Scale):是否严格按照提示词的要求来生图,数值越小AI就会自由发挥,过大过小的数值都会让图片变形;一般7~10 -
随机种子(seed):是图片生成算法在初始状态的基础,指定一个数值,那么对于相同提示词+同样参数+同样的种子,就会出来一个一模一样的图片;-1是指每次生成时都随机一个值,这样图片的生成就会有差异性;图片的种子值可在右侧输出的日志中找到;不同显卡由于微架构不同,可能会造成预料之外的不同结果。
(2)Samplers 采样器推荐
-
目前好用的有 Euler
,Euler a
(更细腻),和DDIM
; -
推荐 Euler a
和DDIM
,新手推荐使用Euler a
; -
Euler a
富有创造力,不同步数可以生产出不同的图片。调太高步数 (>30) 效果不会更好; -
DDIM
收敛快,但效率相对较低,因为需要很多 step 才能获得好的结果,适合在重绘时候使用; -
LMS
和PLMS
是Euler
的衍生,它们使用一种相关但稍有不同的方法(平均过去的几个步骤以提高准确性)。大概 30 step 可以得到稳定结果; -
PLMS
是一种有效的 LMS(经典方法),可以更好地处理神经网络结构中的奇异性; -
DPM2
是一种神奇的方法,它旨在改进 DDIM,减少步骤以获得良好的结果。它需要每一步运行两次去噪,它的速度大约是 DDIM 的两倍。但是如果你在进行调试提示词的实验,这个采样器效果不怎么样; -
Euler
是最简单的,因此也是最快的之一; -
真人图片更推荐使用 DPM++2M
或DPM++2M Karras
;生成人像特写:DPM adaptive
或DPM++SDE Karras
(3)不同的效果示例图:
画图疑难解答
-
生成黑/绿图(Green or Black screen)
如果是 GTX 16xx 系列,启动参数需要加 --precision full --no-half
, 因此如果显存不足还要加 --medvram
。
如果是其他显卡而且加载了 VAE 时出现黑图,加入 --no-half-vae
参数。
-
RuntimeError Sizes of tensors must match
(img2img) 如果你得到 RuntimeError: Sizes of tensors must match
,你需要改变输入图像的分辨率
-
彩虹混乱图
如果 AI 输出了混乱的彩虹色图片,可能是生成分辨率或步数设置得太低。
-
高分辨率出鬼图 / 低显存生成大分辨率图片
使用 Highres. fix 或先使用低分辨率成图后再使用 Waifu2x 等技术提升分辨率。
-
RuntimeError: Unable to find a valid cuDNN algorithm to run convolution
生成报错解释:显存不足
先检查 CUDA 是否可用,打开命令窗,输入 python
并分行输入
import tor
chprint(torch.cuda.is_available())
-
CUDA out of memory
显存不足!!显存低于8g一直出现这个报错的话,最好的解决方案就是——换硬件😭
🎊教程完毕🎊
欢迎大家来关注我的公众号!进入AI兔子洞,掌握最全面最专业的行业资讯、工具分享、变现指南和实战教程,开启你的AI智慧之旅!
有什么问题可评论或公众号留言哦