没有深奥的魔咒,stable diffusion的Prompt语法就是如此很简单
本文只涉及Prompt的书写规则,因此我假设你已经配置好了stable diffusion webui或者其他类似应用,并且至少成功跑出过一张图。
本文无任何技巧性内容,只介绍能让你随心所欲出图的最基本规则。
本文只展示结果,省略了大多数分析过程,还请大家多多包含。
本文确实参照许多大佬的文献和作品,非常感谢这些大佬在AI图像方面的贡献。
如果你跑过图,你应当知道下面这些最基础的概念:
Prompt:提示词,顾名思义你写什么AI就可能生成什么,常用英文。
Negative Prompt:负面提示词,你写什么AI就避免生成什么,常用英文。
权重:一个小数,表示提示词的重要程度。
这部分是为了方便你复现本文内容,如果你相信作者没粘错图可以跳过
本文所有的图都是在按照如下参数跑出来的
Steps: 20, Sampler: DPM++ 2M Karras, CFG scale: 8, Seed: 2484682528, Size: 512x384, Model hash: 56be194f47, Model: cetusMix_cetusVersion2Fp16, Denoising strength: 0.7, Hires upscale: 2, Hires upscaler: Latent
Time taken: 18.62sTorch active/reserved: 6878/9184 MiB, Sys VRAM: 11616/12288 MiB (94.53%)
另外本文所有负面Prompt都是一致的,即
worst quality, low quality, malformed hands,poorly drawn hand,mutated fingers,extra limbs,poorly drawn face, monochrome, zombie,word
先看一段示例
Prompt:
masterpiece, best quality, ultra-detailed,detailed background,beautiful detailed face,high quality,extremely detailed,1girl,hood,upper body,blood,(red eye) AND (black hair),sad,A girl who is using magic and creates a magic circle,highest quallity, black light particles,illustration, cinematic light,
Negative prompt:
worst quality, low quality, malformed hands,poorly drawn hand,mutated fingers,extra limbs,poorly drawn face, monochrome, zombie,word
非常普通的描述,没有任何花哨的语法,通过这些描述跑出的图这样的
瑕疵有不少,但是还算符合个人审美,接下来我们对上述Prompt进行分析,以正面Prompt为例:
Prompt:
masterpiece, best quality, ultra-detailed,detailed background,beautiful detailed face,high quality,extremely detailed,1girl,hood,upper body,blood,(red eye) AND (black hair),sad,A girl who is using magic and creates a magic circle,highest quallity, black light particles,illustration, cinematic light,
因为是简明版,就不一句一句分析了,直接上结论:
语言:一般用英语,没什么好纠结的,有关Prompt的工具也有不少了,实在不行上百度翻译啊
构成:英文单词/短语/句子+逗号
语句长短:一个词、一个短语、几个AND相连的短语(用AND相连的词语推荐带小括号)和一个句子均可
顺序:一般来说越靠前优先级越高,但也不绝对
距离:这里指的是Prompt与Prompt的距离,如果我们想让一些Prompt有所关联,那么应该把他们放在一起
每一个提示词可以有不同的权重,权重是跟在提示词一个小数,他的默认值(不写的情况)是1,越大越重要,越小越不重要。
请查看示例:
masterpiece, best quality, ultra-detailed,detailed background,beautiful detailed face,high quality,extremely detailed,1girl,(hood:1.2),upper body,(blood:1.4),(red eye) AND (black hair),sad,A girl who is using magic and creates a magic circle,highest quallity, black light particles,illustration, cinematic light,
相比于之前只改了两处:hood -> (bood:1.4) , blood -> (blood:1.4) , 之前明明写了blood却没什么效果,接下来我们把他增强一些,以下结果:
结论如下:
推荐语法: (提示词 :权重)
非常简单,只要在小括号里写提示词、冒号和权重就行了。
其他语法:括号嵌套,比较麻烦,感兴趣的看一下吧
范围:一般写0-2之间,当然你也可以写100试试
适当加一些描述画面的词能达到意想不到的效果,其实之前的描述中已经包含不少特效了,我们加一个镜头(注意最后的逗号,加不加结果不同),再跑一下:
masterpiece, best quality, ultra-detailed,detailed background,beautiful detailed face,high quality,extremely detailed,1girl,hood,upper body,(blood:1.4),(red eye) AND (black hair),sad,A girl who is using magic and creates a magic circle,highest quallity, black light particles,illustration, cinematic light,close up,
效果如下:
可以发现人物靠近了,镜头确实起效了。
另外,上面的有很多特效相关的描述,总结如下:
质量:masterpiece, best quality, ultra-detailed,detailed background,beautiful detailed face,high quality,extremely detailed,highest quallity
镜头:close up
光影:black light particles, cinematic light
画风:illustration
原来上面的图全是特效的功劳啊,大家可以自己试一试其他特效的描述词
下面的参考文献里有更多更详细的介绍,建议大家都去看看。
将两种物体融为一体(创造新生物?)
请查看示例:
masterpiece, best quality, ultra-detailed,detailed background,beautiful detailed face,high quality,extremely detailed,[1girl:10|rabbit:10],(hood:1.2),upper body,(blood:1.4),(red eye) AND (black hair),sad,A girl who is using magic and creates a magic circle,highest quallity, black light particles,illustration, cinematic light,medium view
结果如下:
头(兜帽)上确实有了兔耳朵一样的物体。
语法如下:
基础:[a | b] 先画a,再画b
带权重:[a : a的权重 | b : b的权重]
多步:[a | b | c | ...]
step: 据说小于1时表示总的步数的百分比,大于1时表示步数
规定了AI绘制的先后顺序,比如示例中我希望AI先绘制黑发少女,然后在把黑发绘制成红发
请查看示例:
masterpiece, best quality, ultra-detailed,detailed background,beautiful detailed face,high quality,extremely detailed,1girl,(hood:1.2),upper body,(blood:1.4),(red eye) AND ([black hair:red hair:5]),sad,A girl who is using magic and creates a magic circle,highest quallity, black light particles,illustration, cinematic light,medium view
效果如下:
嗯,头发多了些红色,但好像也增加了更多的瑕疵。
语法如下:
基础:[a: b : step] Prompt的值初始时为a,在step之后变成b
嵌套:[a: [b : c : step] : step]
省略:[a: : step] ,[ : b : step]
step: 据说小于1时表示总的步数的百分比,大于1时表示步数
占位符
并不是所有文字都能被AI理解,比如说“+++++++------”,我们看这段符号无法看出任何意义,训练时就不会把它们作为输出,所以机器也一样看不懂,这意味着我们可以用这些符号作为占位符,把相邻的一些Prompt分隔。
适当地使用现实的经验
为何不把你在现实中看到的景象如实地告诉AI呢,画面里有些元素总是一起出现的,例如天空和白云、无头和学姐,画师是这么画的,AI是这么学的,你把这些告诉AI之后大概率可以得到满意的结果。
关于逗号
多输入一个逗号都会导致生成不同的图,这可以理解,机器并不会过滤某些词,而是把所有词都编码、然后一起喂给AI模型,Prompt结尾的逗号虽然没什么意义但有些事务(对自然语言模型没研究,不确定是不是逗号本身)也被作为描述输入到模型,其中的转换过程不得而知,但从结论上来说,逗号起到了添加噪声的效果。
个人很反感模板,但不得不承认,用起来是真香。=
分为三个步骤
前置:质量+画风+镜头+光照
主要内容:主要景物+次要景物+镜头和光照
全局效果:光照+镜头+画风
参考:《元素同典:确实不完全科学的魔导书》
woc,这什么玩意儿,看懂了但不会弄呀,说了等于什么也没说呀。我在此强烈建议同学们去把大神们出图的Prompt抄下来(例如civitai上的很多图都可以看到模板的影子),自己分析一遍,然后照猫画虎写一写。千万不要排斥模仿,创新本来就是无意识的模仿加一点灵感(随机种子)。
《元素法典》
《元素同典:确实不完全科学的魔导书》
“万事皆虚,万事皆允” 大家都喜欢把简单的事情理论化、复杂化。什么都不看遵从自己的本心也许未必是坏事,花几分钟浏览下此文也可,毕竟我们中大多数只是过往的看客。