大家好,今天给大家分享的是关于 Stable diffusion 提示词的基础和进阶语法,为什么有必要了解这个呢?首先是提示词对出图效果影响很大,了解提示词的用法有助于我们写出更优秀的提示词;其次就是我们可能会去C站拷贝别人的提示词,虽然直接拷贝过来也能得到不错的效果,但这样只会“知其然,不知其所以然”,所以如果你想好好掌握SD,这一关还是有必要闯的!
一、基础规则
第一个规则就是:提示词之间是用英文逗号分隔的,如果你觉得把所有提示词都挤在一行比较不美观,你也可以换行,但是换行并不代表分隔提示词,如果你想分隔的话还是得加上英文逗号。
第二个规则是:提示词的权重从前到后依次降低,也就说越靠前的提示词权重越高,不过这也有一个前提,就是你的提示词没有使用任何增强/降低权重的语法。
比如我有这样两组提示词(大致场景是小女孩和城堡):
# A组提示词
castle,landscape,1girl,loli,silver hair,school_uniform,crystal_earrings,kind_smile,arm_support,in summer,book,mini_witch_hat,frilled,strappy_heels,
# B组提示词
castle,landscape,1girl,loli,silver hair,school_uniform,crystal_earrings,kind_smile,arm_support,in summer,mini_witch_hat,frilled,strappy_heels,book,
这两组提示词的区别在于 book 提示词位置的不同(一个在中间,一个在最后),结果就是一个书比较多,一个书比较少
第三个规则(注意事项)是:提示词的数量尽量控制在75个Token以内。根据第二条规则,其实就可以得到越后面的提示词权重越低,所以提示词并不是越多越好。
SD的界面其实也有相应的提示,那Token是怎么算的呢?一般来说,一个单词算一个Token,英文逗号也算,比如castle,就是2个Token。
第四个规则(注意事项)是:提示词选用词组,而不是自然语言描述。还是上面的场景,一个萝莉女孩站在城堡旁边,我们翻译之后会变成:A loli girl stands by the castle
这其实就是一种自然语言描述,这样也能出图,只是像 by the 这种单词其实作用不大,但却白白浪费了Token和权重。
二、提示词权重语法
在SD中,每个提示词默认的权重为1,虽然我们可以通过调整提示词的位置来影响它的权重,但是这样未免太过麻烦,所以SD其实也有一套增强/降低权重的语法。
2.1 小括号增强
在SD中,英文小括号()可以用来增强提示词的权重,一个小括号可以增加1.1倍权重,最多增加3个小括号,也就是 1.1 * 1.1 * 1.1 = 1.331 倍权重
2.2 大括号增强?
这个有待考证,据说英文大括号 { } 也可以用来增强提示词的权重,一个相当于是 1.05 倍的权重,但是我试了下效果并不明显,所以不确定这种语法在秋叶SD中是否有效
2.3 中括号降低
与小括号类似,不过中括号 [] 是用于降低提示词权重,一个中括号是0.9倍权重,最多3个也就是 0.729 倍权重
2.4 小括号直接增强/降低(推荐)
这种方式的写法是: (xxx: 1.5) ,冒号后面的就是权重,比较推荐这种设置方式,看起来比较直观。
注:试了下,不加小括号也有效果,比如 book:1.5
这种方式还有一个设置的快捷键:就是先选好提示词,然后按住 CTRL 键,通过控制上下方向键就可以快速调整。
三、提示词进阶语法
SD的提示词除了上述的基础语法外,还有一些进阶的玩法。
3.1 下划线连接
通过下划线(_)连接两个单词,可以起到连接的作用,便于SD将其看做一个整体,这种语法在秋叶整合包的提示词非常常见。
比如这个例子
# A组提示词
plate,coffee,cake,
# B组提示词
plate,coffee_cake,
在这两组提示词,A组由于coffee和cake没有连接,所以SD出图的时候可能会同时返回咖啡和蛋糕,但是B组返回的是咖啡蛋糕。
3.2 交替采样
交替采样的语法是: [prompt1 | prompt2 | prompt3]
采用这种方式,第一步采样会使用 prompt1提示词,第二步使用 prompt2提示词,第三步使用 prompt3提示词,到第四步又会使用回 prompt1提示词,循环往复,交替进行。
如果你想把两种,或者多种东西融合成一种,比如颜色渐变,或许这是一个值得尝试的方案。
还是给一个例子
# A组提示词
1girl,red hair,blue hair,wavy hair,
# B组提示词
1girl,[red|blue|wavy] hair,
对比图如下:
3.3 比例采样
比例采样跟前面的交替采样有点像,但是比例采样可以做到更精细化!
第一种方式:prompt1,[prompt2: 0-1数值]。这种方式表示采样值达到指定数值后才使用提示词 prompt2。
第二种方式:prompt1,[prompt2:: 0-1数值]。这种方式比第一种多了一个冒号,表示采样值达到指定数值后就不使用提示词 prompt2 了。
第三种方式:[prompt1:prompt2: 0-1数值]。假设数值是0.3,这种方式表示采样值前30%使用prompt1,后70%使用prompt2。
关于比例采样的使用场景,其实也是适合将多种东西合并在一起,只不过他因为能做到更精细化,所以出图效果会更好,比如这篇文章[1]就提到将多张人脸合并为一张新人脸,感兴趣的可以看下。
注:特朗普和拜登的融合肖像
四、提示词预设样式
有时候我们写了一组不错的提示词,想着以后可以再用,这时候预设样式就派上用场了,它的作用就是保存提示词,便于我们下次直接复用。
五、提示词书写插件
如果你是用秋叶大佬的SD,那么它自带的提示词插件其实已经能够满足大部分人的需求,不仅拥有非常多的提示词,而且提示词都整好分类了,并且自带翻译,使用非常方便。
如果你是Linux系统,或者因为其他原因用不了秋叶SD该怎么办?其实很简单,因为秋叶SD也是通过安装提示词插件才实现上面的效果,如果你是sd-webui,同样可以通过安装插件实现相同的效果。
提示词插件地址:https://gitcode.net/ranting8323/sd-webui-prompt-all-in-one/-/blob/main/README_CN.MD