StableDiffusion提示词进阶玩法,通俗易懂!

SD入门教程7个月前发布 wanglu852
13,965 0 0
广告也精彩

提示词进阶 💡

有些人喜欢将提示词的模式固定化,比如画质加主题加环境加色彩等等。虽然这种做法没有问题,但总感觉有点太机械化。在SD1.5模型中,默认的做法是开头给出几个提高画质的关键词,但是到底能不能提升画质,提升多少,该如何验证呢?
StableDiffusion提示词进阶玩法,通俗易懂!
可能有些人会想到固定种子提示词,从两侧图做对比,一次加上高画质的提示词,一次不加,用眼睛看就知道了。但实际上,一旦固定种子提示词发生变动,图片也会发生很大变动,所以并不好去验证。找遍web ui的官方文档,也没有找到注明需要这样做就可以得到比较好的画质的方法。于是我又来到stability AI,想在源头找到答案,但最后发现社区也很少有人在使用提示词进行图像生成。
StableDiffusion提示词进阶玩法,通俗易懂!

模型数据标签的问题

提示词的出图取决于你在训练模型时,数据中打的标签。如果我想画只猫,一定要用”cat”才能画出来吗?打12345行不行?很显然是可以的。
StableDiffusion提示词进阶玩法,通俗易懂!
这里又引出另外一个问题,在正常情况下,训练模型的人都会默契地遵守规则,用准确的英文来标识出图片中的元素。但对于英文不好或其他地域的人来说,这可能会有问题,因为文化的差异,每个人对提示词的理解也会有差异。训练模型的人也好,使用模型的人也好,都可能会有认知错误。比如对于笑这个表情来说,很多人可能只知道”smile”,但在英文里起码有几十种描述笑的方式,所以训练模型的人真的能认真区分好这些表情,打上对应的标签吗?即使英文是母语,也会出问题。每次英文中演化出一个词,比如”cowboy shot”是七分三比例镜头的意思,但其他地区不一定用,所以你在用作提示时可能会出现牛仔帽、牛仔裤什么的,但你想要的其实并不是这些。总的来说,有多方面的因素影响提示词的效果,包括算法的问题、语言本身的问题,还有训练模型和使用模型的人。英文本身就有一些缺陷,名词有多义性,不像中文一个词一个意思,一个萝卜一个坑。所以XL新模型主推自然语言,因为有了上下文联系以后,程序可以更精准地推理出你想要什么。在XL模型中,画质类的起手和”one girl”就几乎看不见了。

风格和其他因素

风格很容易理解,根据自己的需求有明确的目的就加。如果一个模型支持的风格很多,那么这个模型的潜力就越大。如果试了所有的办法都无法得到你想要的风格和效果,那就只能自己训练模型。最后剩下的部分其实比较随意,想要什么就加什么,想要什么样的背景、什么样的装饰,只要你的提示词能够匹配模型,当没有效果时,就是提示词不对,或是模型里根本没有相关数据。

进阶语法

所有的提示词默认都有一点点的权重,在同样的权重下,越靠前优先级越高。提示词之间也会互相影响,特别是颜色。在这个案例中,你会发现项链总是画不出来,把项链的提示词权重加高试一试,之后的每一张图都有了项链。尽量不要超过1.5,太高的权重可能会导致画面崩溃。在一张图片中,什么是主要,什么是次要,什么元素多一些,什么元素少一点,合理地利用权重控制,能够提升出图效率,节省刷图时间。

权重语法

权重语法有好几种,把提示词放在小括号和花括号时是加权重,中括号是减权重。这三种可以套娃使用,但它们是22年9月29日之前的旧语法,特别是在嵌套使用后,阅读起来很不直观。用小括号加冒号和数值的新语法比较科学,也很容易阅读。选中提示词后,按下CTRL加上下键可以调整数值权重,按下alt加左右可以调整顺序,或者使用第三方插件,比如我老六提示词插件。
StableDiffusion提示词进阶玩法,通俗易懂!

StableDiffusion提示词进阶玩法,通俗易懂!

交替语法和and语法

  • 交替语法一般用来做融合,把A和B交替绘制,第一下画A,第二下画B,直到结束。支持多个提示词。
    StableDiffusion提示词进阶玩法,通俗易懂!

  • and语法和交替语法有所不同,and是把多个提示词的效果直接叠加,默认的权重都是一,可以自行调节。注意要全大写。
    StableDiffusion提示词进阶玩法,通俗易懂!

  • ** 打断语法**和前面的提示词断开联系,不太好描述,但举个例子你就懂了。比如在这段提示词中,黄色头发、蓝色衣服、红色背景出土后,颜色都被互相影响了。这时在每种颜色后面加上break,就能得到精准的颜色。
    StableDiffusion提示词进阶玩法,通俗易懂!

  • 步数控制语法,这个语法和迭代步数有关系,迭代步数可以先简单理解为数值越大,出图越精细,但超出一定范围图会崩溃,还取决于采样器。后面再细说中括号from to win,在两个提示词之间做比例控制,多少步之前画A,剩下步数画B。当权重值大于1时,代表步数小于1时,代表百分比。比如在这里输入:[cat:dog:15]司我一共有20步,前15步用来画猫,后五步画狗,所以猫会多一些。StableDiffusion提示词进阶玩法,通俗易懂!
    中括号from::when对某个提示词做比例控制,意思是在多少步之前画这个提示词。
    StableDiffusion提示词进阶玩法,通俗易懂!
    中括号to:when和from::win相反,意思是在多少步以后画这个提示词。你可以任意组合。
    StableDiffusion提示词进阶玩法,通俗易懂!

转译语法

这个语法很明显是所有括号都被占用完了,为了不冲突,强行使用转义符的方式来处理。
StableDiffusion提示词进阶玩法,通俗易懂!

但其实不应该让用户直接接触转义符这种东西,普通人理解转义符挺难的。比如在我的提示词插件中,动态语法为什么要用井号和中括号,其实也是为了避免和官方语法冲突。转义语法的作用是给前面的提示词添加说明,让程序更能理解你想要什么。常用于风格说明或是单词有多义性时做说明。
StableDiffusion提示词进阶玩法,通俗易懂!
比如宫崎骏的风格、蒂姆伯顿的风格可以看见确实是生效的,出图有很明显的风格变化。再比如前面提到的画鼠标问题,你直接用”mouse”肯定是除老鼠的,通过添加一个”computer”的说明,让程序理解你想要的是电脑鼠标。
up:SixGod_K

© 版权声明
chatgpt4.0

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...
error: Content is protected !!