@
yoooooooo #5 这方面可能我确实不太能帮到你,目前的这方面的资料确实比较杂,特别是国内的环境割韭菜的太多了,我觉得还是多实践一下,controlnet 各种模型的作用以及优劣,各种模型的优劣,多逛逛 C 站看看大佬们的大模型或者 Lora 效果以及 prompt 的使用,再进一步训练自己风格的 Lora 甚至融大模型。整体下来时间成本会高一些。
再搬运一下之前看到的一个大佬的总结:
(来源:
https://civitai.com/articles/79/sd )
基础
1.基础的 tag 要打好,负面的同样,一般的逻辑也是在前的 prompt 会被优先考虑。所以注意书写顺序
2.写 tag 要有逻辑顺序,从大到小等。另外注意书写与用词,俚语或不常用词很可能被忽略,另外一般不太会被画出来的东西或者不常见的东西也画不出来,根据 ai 的逻辑它没学过的东西他也不会。Lora 就是补充大模型不会的东西的。
3.不一定第一次就能出好图,多试几次,出图速度与显卡质量有关,另外 6g 及以下显卡生成 1024x1024 时会溢出,买张 4090 吧~
4.你在做之前脑袋里就要有一个构图,知道自己要画什么,然后按图索骥
5.tag 越长越容易出问题,最好简单明了,如果想要的要素很多也可以分开画(比如先画景再画人),描述一副完整的图最好要有人物,场景,时间,灯光效果,特殊效果等。
6.你得考虑到你这个画面能不能容纳你要的东西,肖像画一般只有一个人,人多或者画景物用 landscape ,另外你要是对脸部描写过多,就会出一个特写而忽略其他部位。
7.画出来的东西也间接代表你的审美,如果总是太丑的话,建议陶冶情操
8.本地生成的图片会自动保存在模型的目录下,不需要额外再保存一次了
9.一次性生成太多同样 tag 的图(批量)概率会导致图崩掉。batch size 不宜过大。
10.如果对产物不确定的话,可以去搜索一下,搜索图片,看看出的是不是想要的
11.各采样器用法都不一样,建议系统了解,常用的有 Euler a,DPM++SDE KARRAS,DDIM,别的用的少
12. euler a 到 40 步就没用了,tag 多且要求精细可以试试 Heun 之类的。凡是后面带 a 的采样器(先祖采样器)收敛程度都很小,容易对画面产生改变。
13.经验之谈:模型一次用久了会冗积 prompt (比如之前跑红色头发后面没强调的话就一直是红色头发),而且持续工作对显卡伤害也很大。不要嗯造,服务器随意。
14.自然语言也不是不可以使用(比如 A beautiful girl holding flower ),但是有时候确实不好使。另外很多模型的 prompt 都参照了 danburoo 的模式,可以看看单个 tag 产生的画面以及意义。硬堆东西 ai 也没法理解。
15.因为大部分模型训练时都使用 512x512 或者其他的小图片,所以一次性生成大图片很可能效果不理想,应该是从小到大慢慢搞分辨率和细节。
16.随机种如果保留所有参数的情况下会生成相同的图片,但是一旦有变量就不好用了。
17.迭代次数也并不是越高越好,有的时候会画蛇添足。
18.CFG 既是提示词指导参数也是画面饱和度,过低画面会灰而且会和提示词差太多,太高颜色又会刺眼并且会产生问题,推荐为 7-12 。
19.把你画面中想要最突出的词加权重。比如要突出脚就要给 barefoot 之类的词加权重(不宜超过 1.5),或者使用 foot focus 等词语
20.模型的话大概分为 2 ,2.5 与 3d (真人),三种模型的美术概念都不同,按需下载。Lora 有的也是依照某个美术风格来炼的,并不一定泛用性强。
21.必备的插件有 controlnet ,SR ,动态提示词等。其中有的插件对 sd 是革命性的影响,该下。也有输入中文直接出英文提示词的插件,对英文不好的人很有用。
文生图细节讲解
1.提示词,告诉 ai 你想让他画什么,按上述讲解的思路安排你的提示词。如果自动补全 tag 的插件不认识你的词 ai 有概率也不认识,不要堆一堆无意义词语,浪费 token 而已。
负面提示词,告诉 ai 你不想要什么,负面提示词一般不怎么变,使用 easynegative 会很方便。
2.采样次数,这个概念很难,和采样方式都是一种数学概念。反正一般都是 20-50 之间的(取决于方式),也不是采样次数越高图越好看的,根据你的模型之类的也会有差异。不懂就 Eular a 40 次就行了。
3.batch size 之类的是让 ai 一次生成多张图片,抽奖或者调参用的,多了有可能会崩。
4.图片大小,因为是微调模型所以最好不要一次过大,但是如果要求图片细节很多之类的太小也不出来,平衡也是一门艺术( CUDA is out of memory)
5.种子,如果没有变量的情况下使用同样的种子会生成一模一样的图片,但是一旦有变量就不一样了(很简单的方程)
6.脚本属于比较复杂一点的操作,这里不做赘述。
7.面部修复其实没啥用,不如插件来的有效和方便。高清重绘会在你的第一张图上再画一次,不过效果不一定好。
图生图:
img2img
1.这一切建立在你有一张图片上,如果没有图就去 t2i 。
2.这一功能会在你给的图片上继续创作,比如二渲三之类的,或者你想改变之前的一张出图都在这里操作。
3.重绘幅度:ai 改变画的程度,1 就是基本完全重画(无插件情况下),按需求修改。
4.这里边的脚本比 t2i 的多,用法也更多。
inpaint
1.通过用蒙版遮罩的方式让 ai 重新绘制一部分内容,哪里不喜欢点哪里。上传蒙版也差不多一个意思。如果重绘全图 ai 会参照全图,仅蒙版 ai 会只参照附近区域重绘。如果幅度过大会导致画面突兀。
2.修手之类的一般就通过 inpaint ,通过给出提示词和 lora 之类的让他重新绘制区域。
进阶
1.市面上很多模型其实存在的不合理,大部分也就是几个热门的模型互相融合来融合去,不建议下载过多模型,而且有的过于大的模型存在垃圾数据或者无效精度( SD 默认情况下都使用 fp16 ),所以模型不是越大越好,而且有的甚至有内置 vae 损坏的情况(或者 clip 错误),这些都会影响出图。有的模型错误可以通过工具修复。
2.vae 如果没必要就不需要外挂,除非出图发灰或者过饱和,另外大部分 vae 其实都是 nai 的原装 vae ,对比一下哈希值就发现一模一样
3.在图生图时适量降低采样次数,避免过采样(诡异的细节会增加),局部重绘同理
4.目前我用着最好的放大方法是 tiled diffusion ,比额外功能里的稍微好用一些。
5.tiled vae 可以生成巨大的图
6.用 regional promper 之类的插件定义画面内容,比如人物位置之类的。
7.一键负面词类似 easynegative 会导致风格固化,以及影响对提示词的理解。不能说一点用不了,只能说自行研究使用场合。我自己的负面提示词:lowres,normal quality, low quality,worst quality,extra digits,fewer digits,wrong hand,bad hands, poorly drawn hands, bad_perspective,error, jpeg artifacts,ugly, duplicate, morbid, mutilated,wrong feet, bad feet,mutated hands,poorly drawn face, mutation, deformed, blurry, dehydrated, bad anatomy, bad proportions, extra limbs, cloned face, disfigured, gross proportions, malformed limbs,missing arms, missing legs,fused fingers, long neck, username, watermark,censored,beginner,bad_art,bad arm, bad leg, bad reflection,unfinished, unfinished background
8.有的插件其实并没啥大用,比如 After detailer ,就是帮你 inpaint 一次,还得你自己输入关键词,那还不如自己去蒙版。不过要是那种人巨多的图或者其他情况也不是不能用
9.自己动动笔,比如拿同样颜色的笔涂掉多余的手指,或者奇怪的阴影。也可以自己画一些形状或者色块,然后用 inpaint 稍微重绘一下,有能力的就 ps
10.可以先用平涂风或者你觉得出图好的模型出底图,然后用别的模型 tile 一下,既有细节又不突兀。
11.inpaint 画局部时候蒙版涂大一些,让 ai 有个参考,这样就不会太显得突兀,但是记得给涂住的东西打 prompt ,不然它就只能猜了。