Stable Diffusion 提示词语法

发布时间 2023-05-10 08:34:08作者: 蝈蝈俊

本文示例都是用的 ReV Animated V1.2.2 模型, 参数是 stable-diffusion-webui 的默认参数。

提示词一定要用中文么?

我们用一个苹果放在桌子上中英文来做提示词看生成的效果,

从下面两幅图可以看到,中文根本不知道生成的是啥,英文满足我们的期望。

一个苹果放在桌子上

竟然画出了这个

一个苹果放在桌子上
Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 3022276479, Size: 512x512, Model hash: 4199bcdd14, Model: revAnimated_v122

用英文时

An apple on the table


An apple on the table
Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 3513630856, Size: 512x512, Model hash: 4199bcdd14, Model: revAnimated_v122

逗号分隔语意tag

使用英文逗号 , 分隔不同的关键词tag,空格和换行等不影响tag分隔。

比如我们用下面关键字来绘画

1girl , long hair , low twintails , front ponytail

  • “1girl” 是指绘图的主题,通常是指一张只有一个女孩的插画或漫画。
  • “long hair” 长头发。
  • “low twintails” 是一种发型,是将头发分成两部分,然后在头顶上方的位置绑成两个小辫子的一种发型。
  • “front ponytail” 是一种发型,是将头发拉到前面,然后用发带或发夹固定在前额上方的一种发型。这种发型可以让人看起来更加清爽、干净。


1girl , long hair , low twintails , front ponytail
Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 3958830808, Size: 512x512, Model hash: 4199bcdd14, Model: revAnimated_v122

要素混合

将 | 加在多个关键词之间,可以实现多个要素的混合。

1girl , blue | black hair , low twintails , front ponytail

蓝黑相间的头发

1girl , blue | black hair , low twintails , front ponytail
Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 4004018812, Size: 512x512, Model hash: 4199bcdd14, Model: revAnimated_v122

[cat|tiger]

代表cat和tiger交替绘制,最后能生成虎猫兽。

[cat|tiger]
Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 3450602202, Size: 512x512, Model hash: 4199bcdd14, Model: revAnimated_v122

[cow|donkey|horse|zebra|deer|elephant] in a field

代表牛驴马斑马鹿大象交替绘制,最后生成一个奇怪的四不象。

[cow|donkey|horse|zebra|deer|elephant] in a field
Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 8773839, Size: 512x512, Model hash: 4199bcdd14, Model: revAnimated_v122

权重

权重会影响生成图片和关键词的联系度,默认的单词顺序就会影响权重,单词顺序越往后,权重越低。

权重数值从0.1~100,默认状态是1,低于1就是减弱,大于1就是加强。

语法糖: () 每用一次代表权重提高 1.1 倍,[] 每用一次代表权重降低 1.1 倍,以此类推。也可以直接在括号里输入冒号后面直接写上权重的数值。

  • (word) - 将括号内的提示词权重提高 1.1 倍
  • ((word)) - 将括号内的提示词权重提高 1.21 倍 (= 1.1 * 1.1)
  • [word] - 将括号内的提示词权重降低 1.1 倍
  • (word:1.5) - 将括号内的提示词权重提高 1.5 倍
  • (word:0.25) - 将括号内的提示词权重减少4 倍(= 1 / 0.25)

示例

(1girl : 1.2) , long black hair , (cat ears : 1.1) , (nice_dress : 0.9)

  • long black hair 长黑头发
  • cat ears 猫耳朵
  • nice_dress 连衣裙

(1girl : 1.2) , long black hair , (cat ears : 1.1) , (nice_dress : 0.9)
Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 2409461809, Size: 512x512, Model hash: 4199bcdd14, Model: revAnimated_v122

渐变

语法:

[from:to:when]

先绘制前面的提示词内容(from),然后再绘制后面的提示词内容(to),当(when)时转变。

举个例子:

[beach girl 10]

这种写法中,如果总步数设置为20,前10步渲染关键词beach 沙滩 ,后面10步渲染关键词girl 女孩。

[beach girl 10]
Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 1016618029, Size: 512x512, Model hash: 4199bcdd14, Model: revAnimated_v122

此语法还有两个变体:

[to:when] - 在设定的步数后开始绘制
[from::when] - 在设定的步数后结束绘制

当when小于1时,认为是百分比,下面例子,黑白相间各50%的头发:

1girl , [white : black : 0.5] hair , low twintails , front ponytail

1girl , [white : black : 0.5] hair , low twintails , front ponytail
Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 1346704297, Size: 512x512, Model hash: 4199bcdd14, Model: revAnimated_v122

并存

此语法使用大写 AND ,以使两者权重保持一致。
例如下面这个是即像狮子又像熊的动物

a lion AND a bear

a lion AND a bear
Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 3135028232, Size: 512x512, Model hash: 4199bcdd14, Model: revAnimated_v122

另外此语法支持指定权重值:默认权重值为 1,也可以指定每个提示词的权重,比如:

a cat :1.3 AND a dog :1.2 AND a panda :2.6

下面这幅画,更像熊猫,但是也有猫和狗的特征。

a cat :1.3 AND a dog :1.2 AND a panda :2.6
Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 2243564072, Size: 512x512, Model hash: 4199bcdd14, Model: revAnimated_v122

总结

提示词prompt语法主要就是各种权重、渐变、混合..., 搞懂了提示词prompt语法,我们在写提示词的时候就可以适当使用上面这些技巧。