0 更新记录
2022.10.15:更新了一波常用Prompt和Negative Prompt;
1 前言
最近AI绘画蛮火的,我看着一个又一个卢浮宫大作有点心痒痒,于是自己跟着B站大佬的本地部署教程配置了一个自己的NovelAI,并且借着这个机会,凭借着几乎为0的人工智能知识,简单了解了一下NovelAI使用的stable diffusion框架。
而NovelAI大家也知道,画美少女非常牛逼,直接养活了一堆lsp。这么牛逼的效果也基于互联网上高质量女性图数量的绝对优势。但其实大家也知道,AI本质是智障,如果不对其参数进行细致调整,很有可能咱们生成的想要体现英气、成熟的男性图中夹杂着很多可爱的少女、幼女的元素,甚至你有可能看到帅哥穿上蕾丝内裤。所以咱们还是要好好调参,才能整出帅哥。
这里我并不是要讲一些枯燥的理论知识,而是直接告诉大家我自己通过理论和实验总结出来的一些非常实用的提升画质的方式,大家也可以根据自己的实际情况进行选择。
先给大家看看用最后的结果搞出来的几个帅哥:
除了单人图,你还可以搞CP、搞代餐:
如果你需要,也可以搞人设图:
(全是红毛,谁是红毛控我不说)
2 环境
我配置的本地部署的教程是:
https://www.bilibili.com/video/BV1aD4y1y7Gg?share_source=copy_web&vd_source=c2ed4568540da11c88bc07c557f3313b
本次使用的配置是:
机带RAM:16GB(就是16G内存)
显卡:NVIDIA GeForce RTX 3050 Laptop GPU(只有4G显存)
原本的教程在配置起来有一定的难度,需要一定的计算机基础(安装复杂软件)、充足的硬盘空间(装cuda)和梯子(有些环境需要github,以及大又极慢的pytorch)。
而作者新出了一个免配置、开箱即用的版本。我估摸着也是用的Stable Diffusion的框架,还仿了NovelAI的UI,可能会更合适一些,这边也把链接放在这里:
https://www.bilibili.com/video/BV1EV4y1L7dX?share_source=copy_web&vd_source=c2ed4568540da11c88bc07c557f3313b
3 框架参数
首先放上界面。在此处可以解释一下,2的英文「two」和「to」同音,因此在编程中,程序员经常用2表示「to」,用来表达「转换为」的含义。此处就是「将文本转换为图像」的意思。
需要注意的参数有:
Sampling Steps(采样次数):直接决定了同一个算法下的画面拟合效果。通常在2080左右就可以有不错效果。(为什么没有到80之上,因为我显卡会炸显存哈哈我真无语)
此处给大家看一下不同Sampling Steps下的效果:
Sampling methods(采样算法):使用不同的算法生成的风格也不同。通常来说「Euler」系列和「DDIM」的效果不错。本人相当喜欢DDIM,上面所有的图都是DDIM生成的。CFG Scale(CFG规模):相当重要!见下文。
CFG Scale值得让我单独拎出来讲一讲,目前绝大部分的教程都忽略了它。
我们先来看Stable Diffusion官方对它的定义:
CFG scale is described as how much the script tries to match the prompt, but it doesn’t work well if too low or too high.
简单来说,CFG的数值越高,生成结果跟 prompt 的匹配度更高。但是官方也指出,如果太高可能会出现一些问题。CSDN文章指出,CFG越高,结果图片的饱和度和对比度更高,颜色更平滑,纹理更少。
打个比方说人话,其实就是CFG Scale相当于你对AI的严格程度,CFG Scale越大,你对AI的要求越严格,拿着鞭子监督他按照你给他的要求绘制——这种监督当然可以提高质量,但如果给的压力太大,AI可能也会蚌埠住了,导致画面出现过度绘制、扭曲等问题。当然,如果你CFG Scale越低,AI就越自由,可以随心所欲地理解和发挥。此时也会导致绘制风格的变化,这里放个对比图,还是封面的帅哥。
我们会发现,变化的有画风、衣物细节、表情程度等。
所以,如果你生成的图像饱和度太高,或者出现了一些奇怪的问题,可以试着调低CFG Scale数值,但是这同样会导致你的帅哥的绘制风格发生一些变化。
此外,还有一些Stable Diffusion本身的框架参数可以调整,但是这个地方我还没研究清楚,也没太看出变化。感兴趣的家人可以去Stable Diffusion官网查询和阅读。
当然,还有一个值得介绍的参数是「Seed」。不知道大家玩过Minecraft没,在mc里,如果自定义几个地图,输入相同的seed,可以在这个广袤无垠的、由系统随机生成的游戏里,生成几个绝对相同的世界。所以这就是「让随机不随机」的神秘咒语。
在此处,当seed=-1时,为随机生成seed并根据此随机生成的seed生成图像;当你自己输入时,即根据指定seed生成图像。
4 优化Tag
首先,Tag有两大部分,一个是「Prompt」,也就是「你越想让你的画成为什么样子」;与之相反的就是「Negative Prompt」,也就是「你越不想让你的画成为什么样子」。
需要注意的是,即使是同一个Seed,Tag先后顺序对画面的产生有相当大的影响,这里给出一个测试的示例,大家就不要在意用的什么测试词了(
4.1 Tag基本语法
Prompt和Negative Prompt的基本语法:
tag和tag之间用英文逗号隔开(编程的时候用中文逗号是要被挨打的);中括号{}可以起到强调作用,让AI知道他很重要。例如:{{{extremely detailed CG unity 8k wallpaper}}}分隔符|可以起到混合的作用。这个知识点很重要,很少有教程提到。在后面会用到。所有关键词都要用英文!注意英文中的外来词的使用!比如yaoi和yin yang(20221015更新)上面提到的{}是老方法了,现在更多的是使用()小括号。而这具体的区别我在查看了Stable Diffusion文档之后有了答案,在这里不多进行介绍,之后会再写一篇文章给大家介绍。(20221015更新)在使用诸如()、{}、甚至[](中括号可以减少权重,因为用的少所以上面没介绍,之后会在另一个文章里给大家解释)等更改重要级的指令中使用: 来更改具体的权重大小。大家可以看最后20221015中的更新的例子。
4.2 Tag使用的经验原则
首先,前面也提到,Tag的先后顺序会决定画面的绘制效果,在这里我分享给大家一个先后顺序的经验模型(可以根据自己的需要进行增删):
【性别类】,【画质类】,【人物四肢】,【人物面部(含表情)】,【人物头发】,【人物服饰】,【人物动作】,【其他修饰】
注意:人物四肢是指类似于「detailed hands,posing」等决定手部、脚部的情况。posing可以有效地解决一只手六根手指等畸形种出现的可能。
常用的性别类有:1boy/1girl;2boys/2girls;male/female等。1和2可以有效决定是单人图还是多人图(可以来代餐)
常用的画质类有:extremely detailed CG unity 8k wallpaper;game_cg;masterpiece;best quality;illustration;;highres;cinematic highlight等。
其他的可以看下一小节的内容。
其次,经验模型中的【】中,对于相同对象的修饰,建议使用|来进行混合,从而提高效果,尤其是画质类。
例如:
{{extremely detailed CG unity 8k wallpaper}}|game_cg|masterpiece|best quality|illustration|{highres} //描述画质
blue eyes|beautiful detailed eyes //描述眼睛
dark gray coat|light yellow inner coat //描述外套
此处没有展示的图像,纯经验。
4.3 常用Tag分类与示例
此处直接分享github大佬总结的tag合集,非常好用。
github链接
当然,在这里我在这里也给大家我经常使用的生成帅哥的tags;
Prompt:
1boy,{{extremely detailed CG unity 8k wallpaper}}|game_cg|masterpiece|best quality|illustration|{highres},cinematic highlight,simple background,male,short hair|messy hair|dark_red hair,blue eyes|beautiful detailed eyes,dark gray coat|light yellow inner coat,posing
Negative Prompt:
lowres, bad anatomy, {{{bad hands}}}, text,error, missing fngers,extra digt ,fewer digits,cropped, wort quality ,low quality,normal quality, jpeg artifacts,signature,watermark, username, blurry, {{{bad_feet}}},girl,sisters,yuri,{{{female}}}
总结不易,感谢大家~
—————————20221015更新——————————
这两天又多摸索了一点,也多尝试了点东西。狠狠地找到了一波Prompt和Negative Prompt模板,这次效果会更好一点。
我发现Stable Diffusion生成正经图质量还蛮好的,但生成那些有些擦边(甚至是口口的图)质量通常会差一点。当然这个原因也跟本身涩图领域的质量就有些良莠不齐。
先照常放上这两天做的图~
嗯,没错,就是擦边。
放上参数~
Prompt:
((1boy:1.28)),((extremely detailed CG unity 8k wallpaper))|game_cg|masterpiece|best quality|illustration|{highres}|beautifully painted|Aestheticism Painting|highly detailed, intense angle,dramatic angle,cinematic highlight,posing,bust,simple background short hair|messy hair|red hair,light yellow eyes|ruby in eyes|beautiful detailed eyes, detailed clothes,detailed face,detailed skin, white sport shirt,wet clothes,wet shirt,see-through shirt,sweat,dark sport shorts
Negative Prompt:
ugly,duplicate,morbid,mutilated,tranny,trans,trannsexual,mutation,deformed,long neck,bad anatomy,bad proportions,extra arms,extra legs, disfigured,more than 2 nipples,malformed,mutated,hermaphrodite,out of frame,extra limbs,missing arms,missing legs,poorly drawn hands,poorty drawn face,mutation,poorly drawn,long body,multiple breasts,cloned face,gross proportions, mutated hands,bad hands,bad feet,long neck,missing limb,malformed limbs,malformed hands,fused fingers,too many fingers,extra fingers,missing fingers,extra digit,fewer digits,mutated hands and fingers,lowres,text,error,cropped,worst quality,low quality,normal quality,jpeg artifacts,signature,watermark,username,blurry,text font ufemale focus, solo female, poorly drawn, deformed, poorly drawn face, (extra leg:1.3), (extra fingers:1.2),out of frame
Sampling Steps:80
Sampling Method:DDIM
CFG Scale:20
以上的Negative Prompt大家可以直接复制!非常适合生成帅哥。
Prompt中的加粗部分都是十分重要的可以有效提高画质的内容,建议大家直接复制~
这两天研究之后,我发现在框架参数和Tag里面有很多非常有意思的、值得研究的东西。我打算在赶完DDL之后写一篇关于参数的文章来进行分析,方便大家实现搞帅哥自由!
各位晚安~