当前位置:   article > 正文

Stable Diffusion:一文搞懂提示词

Stable Diffusion:一文搞懂提示词

杰出的画作展现了艺术家们独特的想象力、生动的表达力和精湛的技艺。如今AI绘画工具似乎已解决了技艺的问题,创作出理想的画作似乎应该是一件轻而易举的事。

但是,AI绘画工具只是机器,如何让它正确地绘制出我们想要的画作呢?这就是本文要讲的内容 —— AI绘画中非常重要,但容易被轻视的能力:提示引导(Prompting),即让机器懂你!

我将结合实操测试和一些文献,让大家一文搞懂Stable Diffusion(下文简称SD)的提示引导。

一、提示引导的作用与构成

一个好的引导提示要详细明确,详细是指 “有啥没啥,一一说清” ,明确是指 “它们的样子”。

提示引导分为正向提示引导反向提示引导。正向提示引导是告诉SD “我们想要图像出现什么”,而反向提示引导是告诉SD “我们不想图像出现什么”。完整的提示引导是由若干个提示词(prompt)组成。

为了在提示引导中避免疏漏,也便于操作效率,可以将提示词做如下归类:

1. 主题(Subject)

2. 介质(Medium)

3. 风格(Style)

4. 艺术分享网站(Art-sharing website)

5. 分辨率(Resolution)

6. 附加细节(Additional details)

7. 色彩(Color)

8. 照明(Lighting)

下文将逐步添加各类别的提示词来生成图像,使用的是Dreamshaper模型(一款相当棒的写实插画风格的模型)

统一参数设置为:DPM++ 2M Karas采样器、25采样步数、512×768的图像尺寸,其他均为默认。

为了单独测试正向提示词的效果,先不添反向定提示词,后面会有段落单独介绍。

(下文图像均未做二次修复,因此不要纠结一些小错误。)

1. 主题(Subject)

主题是指你想要在图像中都看到什么,这是提示引导中最重要的信息,主题描写不充分将很难获得理想的画作。

假设我们要生成一个精灵女,初学者的提示引导可能写成这样:

A female elf

生成的图像质量还不错,但这个提示引导太过宽泛,让SD的想象空间太大了。

精灵女是什么特征?什么动作?穿什么?背景环境是什么?这些都需要用关键词加以描述,让SD更明确地知道我们想要什么。

我们假设她是一位美丽清纯的精灵女(不是希尔瓦娜斯的样子),穿着白色的长裙,头戴花环,坐在古树上,场景是深夜的森林,天空有圆月。

正向提示引导可以这样写:

a beautiful female elf, smiling, sitting on an ancient tree, wearing a white dress, flower crown, forest background, late night, full moon,

这回我们想要的都看到了。

2. 介质(Medium)

介质是用来制作艺术品的材料。例如油画、插图、3D渲染和摄影。介质有很强的效果,一个关键词就可以极大地改变风格。

我们添加关键词 oil painting(油画)。

a beautiful female elf, smiling, sitting on an ancient tree, wearing a white dress, flower crown, forest background, late night, full moon, oil painting,

图像有了明显油画质感和色调。

3. 风格(Style)

风格指图像的艺术风格,例如印象派、超现实主义或波普艺术等,或是艺术大师独特的绘画风格。

你可能对介质和风格有点分不清。举个例子,给你看我画的油画,你只能认出它是油画。给你看《星月夜》,你会立刻想到梵高。图像介质传达给观者的是质感,图像风格传达给观者是感受和情绪。

我们添加关键词 Van Gogh(梵高)

(不是所有的人名都能被大模型认识的,你可以尝试fantasy, cyberpunk等风格词汇 。)

a beautiful female elf, smiling, sitting on an ancient tree, wearing a white dress, flower crown, forest background, late night, full moon, oil painting, Van Gogh,

风格效果显而易见。

4. 艺术作品分享网站(Art-sharing website)

像Artstation和Deviant Art这样的图像艺术网站收集了很多不同类型的图像,它们可能被包含在模型训练时的数据集里,并用网站名称做了标签。因此,以网站名作为提示词可能更容易引导图像偏向这些风格。

我们添加关键词 artstation 试一下。

a beautiful female elf, smiling, sitting on an ancient tree, wearing a white dress, flower crown, forest background, late night, full moon, oil painting, Van Gogh, artstation

图像确实有些变化,例如色调更暗、对比度更强、细节精度更高、背景变得有些梦幻和诡异。

5. 分辨率(Resolution)

分辨率指图像清晰度和细节程度。我们添加关键词 highly detailed (高度细节)和 sharp focus (清晰聚焦)试一下。

a beautiful female elf, smiling, sitting on an ancient tree, wearing a white dress, flower crown, forest background, late night, full moon, oil painting, Van Gogh, artstation, highly detailed, sharp focus

人物和背景的细节增多了,光影也丰富了,前景和后景的层次更明显了,主体更加突出。

6. 附加细节(Additional details)

附加细节是给图像锦上添花,可以进一步微调图像风格、氛围和情绪表达。

我们添加关键词 sci-fi(科幻)试一下。

a beautiful female elf, smiling, sitting on an ancient tree, wearing a white dress, flower crown, forest background, late night, full moon, oil painting, Van Gogh, artstation, highly detailed, sharp focus, sci-fi

人物出现了战甲元素,是不是有些科幻的味道了。(你可以试试加大sci-fi的权重,可能出现飞船)

7. 色彩(Color)

通过添加颜色关键词可以控制图像的整体色调,明确指定的颜色会影响图像的色调,也可能改变某些物体的颜色。

我们添加关键词 iridescent silver(彩虹银)试一下。

a beautiful female elf, smiling, sitting on an ancient tree, wearing a white dress, flower crown, forest background, late night, full moon, oil painting, Van Gogh, artstation, highly detailed, sharp focus, sci-fi, iridescent silver

头发和战甲变成了银色,图像的色调也转冷了一些,饱和度也有所降低。

8. 照明(Lighting)

照明对于图像的效果和表达非常重要。无论是摄影师、平面设计师或渲染师,创作过程中都离不开对光影的设计和把控。

我们添加关键词 rim lighting(轮廓光)试一下。

a beautiful female elf, smiling, sitting on an ancient tree, wearing a white dress, flower crown, forest background, late night, full moon, oil painting, Van Gogh, artstation, highly detailed, sharp focus, sci-fi, iridescent silver, rim lighting

光影有些变化,右图的侧光明显一些。

突然图像中的梵高风格几乎消失了,所以我尝试加大梵高的权重。

梵高风格回来了。

到此我们我就完成了逐步提示引导的过程演示。

二、反向提示引导(Negative prompt)

使用反向提示引导更利于生成你想要的图像,让SD知道你不想要什么。例如不想要的对象、风格、照明等,尤其是一些代表劣质画面属性的提示词,例如畸形、扭曲、丑陋、低分辨率等。

使用反向提示引导对于v2模型是必须的,否则生成的图像可能比v1要差很多。对于v1和SDXL模型不是必须的,但通常会添加一些常规反向提示词,因为它对图像不会产生坏处。

我们添加一组通用反向提示词

disfigured, deformed, ugly

图像更加柔和细腻了。

三、逐步迭代的创建提示引导

从上面的案例可以看出,创建提示引导的过程是小步前行、小心翼翼的,为什么呢?

假设一次性输入几十个提示词,如果生成的图像和预期差距较大,此时你可能无法准确的找到问题提示词,无法判断每个提示词对生成图像产生了哪些影响。

所以正确的创建提示引导应该是一个迭代过程,正如前文所示,先确定主题内容(你想要看到什么),然后逐步向主题添加少量提示词(1~2个),并且每次都要生成图像来评估效果,做好过程监督。

四、提示引导进阶技术

1. 提示词权重

提示词权重是指提示词在图像中产生的效果程度。当提示词效果在图像中不可见或不明显时,需要增加权重。若效果过于明显甚至夸张,需要降低权重。

我们可以通过 `(提示词:系数)` 来控制提示词的权重。系数小于1意味着不太重要,大于1意味着更重要。

例如我们在精灵女的图像上增加一些花瓣,增添提示词petal,并修改权重来生成几张图像。

a beautiful female elf, smiling, sitting on an ancient tree, wearing a white dress, flower crown, forest background, late night, full moon, oil painting, Van Gogh, artstation, highly detailed, sharp focus, sci-fi, iridescent silver, rim lighting, petal

可以看出权重对提示词效果的影响,这个方法适用于任何提示词。

需要注意一点,通过高权重提升的效果,可能体现在数量尺寸上,例如可能是更多的花瓣或更大的花瓣。

2. 使用 () 和 [] 控制关键词权重

提示词权重也可以通过 `()` 和 `[]` 来控制。`(pompt)` 等同于提示词权重提升了1.1倍,`[promt]` 等同于提示词权重降低了0.9倍。

可以像套娃一样叠加使用,不限层数。

(promt) = (promt: 1.1)

(promt) = (promt: 1.21)

[promt] = (promt: 0.9)

[[promt]] = (promt: 0.81)

在 AUTOMATIC1111 SD WebUI中可以使用快捷键Ctrl + 上/下箭头来调整提示词的权重。

3. 提示词混合

可以通过以下语法将2个提示词混合。

[提示词1 : 提示词2: 系数]

系数控制提示词1在哪个步数切换到提示词2,它是一个介于0到1之间数值。

例如,提示词为:

Oil painting portrait of [Natasha Romanoff: Tony Stark: 0.5]

采样步数设置为30

这表示提示词在采样步数1-15时是:

Oil painting portrait of Natasha Romanoff

提示词在采样步数16-30时是:

Oil painting portrait of Tony Stark

系数表示在什么时候切换提示词,设置0.5在步数30的条件下表示:30步 x 0.5 = 15步

通过改变系数,来看一下黑寡妇和小唐尼的混合程度变化:

从结果发现,黑寡妇的特征元素在全图中占比更高,例如发型、脸型、服装。这体现了提示词混合的重要规则:前词决定全图基础构成,后词微调细节。

以下是在种子不变的条件下,调换了两个提示词的顺序后的混合变化:

Natasha Romanoff: Tony Stark: 系数

Tony Stark: Natasha Romanoff: 系数

4. 面容混合

常见的用法就是通过混合两个面容(例如明星),生成一个新的面容。例如:

[Emma Watson:Nina Dobrev:0.5]

另外,我们也可以使用多个名人关键字并设置权重来混合面部特征。例如:

(Nina Dobrev:1),(EmmaWatson:0.8),(Anne Hathaway:

0.6)

5. 面容的一致性

使用多个名人的名字来混合生成新面容是一个简单的方法,Stable Diffusion会将其理解为生成一个具有这些面部特征的人,而且混合的面容能在生成图像之间保持一致。

(Nina Dobrev:1), (Emma Watson:0.8), (Anne Hathaway:

0.6)

五、提示词的数量限制

在AUTOMATIC111的Stable Diffusion WebUI中,可以看到限制了75个Token,但目前实际使用是没有限制的。

Token是什么?Token和提示词(英文单词)不是一回事,SD的CLIP模型自动将提示词转化成能代表提示词语义的数值表示。如果CLIP遇到没见过的提示词,它会将其拆分,直到读懂为止。

例如,dream是一个Token,beach是另一个Token,但dreambeach对于CLIP是陌生的,因此它会将其拆分成dream和beach两个Token。

当在SD WebUI中输入的提示词超过了75个Token的限制时,将会新启一个提示块,此时提示词限制变成了150个Token,如此循环,次数不限。

每个提示块是独立处理的,它们被转换后的结果,会在送进U-Net前被连接在一起。

1. 新启一个提示块

假如提示词未达到75上限时,如何新启一个提示块?有时我们需要这样做,因为靠前的提示词权重可能更高;也可能想通过提示块来分类提示词,便于管理。

我们可以通过输入 BREAK (必须大写)来新启一个提示块。下面我们用两个提示块分别指定白色的帽子和蓝色的裙子。

(Nina Dobrev:1),(Emma Watson:0.8),(Anne Hathaway:

0.6), white hat

BREAK

blue dress

去除BREAK后,提示词都在同一个块里,此时SD用色可能不够坚决和纯粹,甚至可能将帽子和裙子的色调混合。

(Nina Dobrev:1),(Emma Watson:0.8),(Anne Hathaway:

0.6), white hat, blue dress

六、检查提示词

有一个易被忽略的事实 —— 无效的提示词是存在的。我们有时会偷懒,直接复制别人的提示词来用,可能段落很长,也可能包含重复词。其实在前面的案例演示过程中发现,SD对不同提示词的敏感度差距很大,有的无感,而有的添加后起了反作用。

另外,SD生成图像是基于模型里已有数据,对于以专属名称作为提示词(例如,以人名表示的面容、艺术风格等),可能遇到 “库里无货,无法调出” 。

我们可以通过提示词来检验是否有效。例如,监测一下v1.5模型中是否知道梵高和齐白石。

Van Gogh

Qi Baishi

显而易见,梵高的风格数据库存充足,而齐老的风格数据有待补充。

七、定制化模型的影响

定制化模型是指基于SD基础模型,使用具有特定风格和主题的数据集再次训练或微调而成的模型。通过定制化模型可以将想要的风格特征锁定,大大提升了生成图像的稳定性。

在使用定制化模型时需要注意,相同的提示词在不同的模型中使用时,生成结果可能差异很大。

我们在不同的模型中使用相同的提示词试一下:

a beautiful female elf, smiling, sitting on an ancient tree, wearing a white dress, flower crown, forest background, late night, full moon, oil painting,

Stable diffusion v1.5 基础模型:

国风3模型:

DreamShaper模型:

不同模型都有明显的个性化主题和风格特征。因此,我们需要根据需求选择适合的模型,在使用初期也要做简单的提示词测试,看能否正确地生成想要的主题。

当然,运用到实际商业项目中,企业或个人可能需要训练符合自己行业和业务需求的定制化模型。例如产品海报、图书配图、室内外效果图等。由此来提升效率和稳定产出。

总结

  • 提示引导要足够的详细和明确,让SD明白你要什么,控制它的发散性创作,避免因抽卡而耗费大量时间。

  • 提示词宜精不宜多,少量的提示词也能生成不错的图像。

  • 基于提示引导要基于类别,逐步迭代,每步少量词+测试,把控过程不跑偏。

  • 不同的提示词对图像的影响程度差异很大,通过调整提示词的权重来不断优化。

  • 单一的好词,组合在一起不一定是好效果,甚至可能相互制约。不要随意堆砌提示词,要掌握提示词的实际效果并合理使用。

  • 应该建立自己的提示词库,并且多看作品(尤其是国外作品)多实践,持续收集和整理提示词。

  • 第一次生成图像的随机性较大,选择更好的图像做基础,之后的迭代通常也会效果不错。

  • 模型选择很重要,不要期望一个模型能满足所有需求。(或许未来可以)

写在最后

感兴趣的小伙伴,赠送全套AIGC学习资料,包含AI绘画、AI人工智能等前沿科技教程和软件工具,具体看这里。

AIGC技术的未来发展前景广阔,随着人工智能技术的不断发展,AIGC技术也将不断提高。未来,AIGC技术将在游戏和计算领域得到更广泛的应用,使游戏和计算系统具有更高效、更智能、更灵活的特性。同时,AIGC技术也将与人工智能技术紧密结合,在更多的领域得到广泛应用,对程序员来说影响至关重要。未来,AIGC技术将继续得到提高,同时也将与人工智能技术紧密结合,在更多的领域得到广泛应用。

在这里插入图片描述

一、AIGC所有方向的学习路线

AIGC所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

在这里插入图片描述

二、AIGC必备工具

工具都帮大家整理好了,安装就可直接上手!
在这里插入图片描述

三、最新AIGC学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述
在这里插入图片描述

四、AIGC视频教程合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

若有侵权,请联系删除
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/859708
推荐阅读
相关标签
  

闽ICP备14008679号