当前位置:AIGC资讯 > AIGC > 正文

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视频教程合集

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

五、实战案例

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

若有侵权,请联系删除

总结

### 文章总结
**主题概述**:
本文深入探讨了AI绘画中至关重要的能力——提示引导(Prompting),特别是针对Stable Diffusion(SD)模型的应用。文章通过实操测试和理论分析,详细阐述了如何通过详细且明确的提示词来引导AI生成理想的画作。
**主要内容**:
1. **提示引导的作用与构成**:
- 提示引导分为正向和反向两种,分别用于指定图像应包含的内容和不应包含的内容。
- 提示词可归类为主题、介质、风格、艺术分享网站、分辨率、附加细节、色彩和照明等,以构建完整的提示引导。
2. **实操演示**:
- 使用Dreamshaper模型,通过逐步添加各类提示词(如主题、介质、风格等),展示了如何逐步优化生成的图像。
- 强调了逐步迭代的重要性,即每次添加少量提示词并生成图像以评估效果。
3. **反向提示引导**:
- 介绍了反向提示引导的作用,即排除不想要的图像元素或属性,以提升生成图像的质量。
4. **提示引导进阶技术**:
- **提示词权重**:通过调整提示词的权重来控制其在图像中的效果程度。
- **使用括号和方括号**:控制关键词的权重,实现更精细的调整。
- **提示词混合**:通过混合两个或多个提示词来生成具有混合特征的图像。
- **面容混合与一致性**:展示了如何通过混合不同面容来生成新面容,并保持面容的一致性。
5. **提示词的数量限制与检查**:
- 解释了SD模型中的Token限制,并介绍了如何通过BREAK命令来新启提示块。
- 强调了检查提示词有效性的重要性,避免使用无效或反作用的提示词。
6. **定制化模型的影响**:
- 介绍了定制化模型的概念,即基于SD基础模型进行再训练或微调以生成特定风格和主题的图像。
- 强调了模型选择的重要性,并建议根据需求选择适合的模型。
**总结要点**:
- 提示引导要详细明确,避免宽泛的描述。
- 提示词宜精不宜多,逐步迭代以优化图像。
- 掌握提示词的权重和混合技术,以实现更精细的调整。
- 检查提示词的有效性,避免使用无效或反作用的词汇。
- 根据需求选择合适的定制化模型,以提升生成图像的稳定性和质量。
**未来展望**:
文章最后展望了AIGC技术的未来发展前景,强调了其在游戏、计算领域以及与其他人工智能技术结合应用的广阔前景。同时,提供了AIGC学习路线、必备工具、学习笔记、视频教程合集和实战案例等资源,帮助读者深入学习和实践AIGC技术。

更新时间 2024-08-20