stable diffusion 提示词 正确使用教程

最近,发现很多人都在玩Python开发的AI绘画程序“stable diffusion”,很多群友反映stable diffusion 提示词不太理解,也不知道如何写?下面就详细的来说说。

 

相信初玩的朋友们都知道,Stable Diffusion 技术把 AI 图像生成提高到了一个全新高度,文生图 Text to image 生成质量很大程度上取决于你的提示词 Prompt 好不好。

 

一、什么是 stable diffusion 提示词?

提示词,即prompt、tag,也被戏称为咒语,分为正向提示词反向提示词。也有人叫正向关键词反向关键词,意思都是同一个,大家不用太纠结称呼。

 

下面来看一下stable diffusion 提示词 示例,如下图:stable diffusion 提示词 是什么

 

我们可以发现上图这些提示词里面,不仅仅是英语单词的简单罗列,还会有括号等符号,这些就属于“stable diffusion 提示词”。

 

注意:如遇到提示词英文不懂的,大家可以自行翻译成中文,你就能瞬间理解了。

 

二、stable diffusion 提示词 语法

注意:以下所有语法使用的符号都为英文字符!

 

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)

 

2、Prompt editing 语法

此提示词语法可以先绘制前面的提示词内容,然后再绘制后面的提示词内容。

其基本语法为:

[from:to:when]

 

举例说明:

[male:female:0.6] 代表前60%采样步数画male(男人),后40%步画female(女人)。

基本上会生成既有男性特性又有女性特征的图片。

模型:chilloutmix

模型:chilloutmix

 

注意:

另外此处以及以下所提到的步数则为Stable Diffusion中的采样迭代步数。

Stable Diffusion中的采样迭代步数

 

此外,此语法还有两个变体:

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

 

举例说明:

[tree:background:0.5] 代表前50%步画树,后50%步画背景。

[tree:0.5] 代表后50%步开始画树。

[tree::0.5] 代表前50%步画树,然后到了50%步数就结束画树。

 

3、可组合扩散Composable Diffusion 语法

此语法使用大写 AND ,以使两者权重保持一致。

这里要说明一下,默认的提示词编写是使用逗号分隔的,那种写法是有先后顺序区别的,靠前的提示词权重比较高。

这里使用AND语法可以让多个提示词权重保持一致。

a lion AND a bear
模型:realisticVisionV13 狮子

模型:realisticVisionV13

 

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

a cat :1.3 AND a dog :1.2 AND a panda :2.6
模型:realisticVisionV13 猫

模型:realisticVisionV13

 

4、交替词 语法

此提示词语法代表每隔一步换一个提示词交替绘制,此语法可以绘制出各种融合怪四不像,很有意思!

 

举个例子:

[cat|tiger]

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

虎猫兽

模型:realisticVisionV13

 

再举个例子:

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

此语法代表牛驴马斑马鹿大象交替绘制,最后能生成啥??牛驴马斑马鹿大象交替绘制

 

三、stable diffusion 提示词 使用示例

很多人在使用stable diffusion的时候只会抄网络上现有的提示词,如果需要自己DIY或者修改部分局部图像,甚至自己创作一副新的图像,需要怎么写提示词?

 

下面是从网上收集的一些提示词的总结:

 

1、提升画面质量的提示词:

  • HDR, HD,UHD, 64K (HDR、UHD、4K、8K和64K) 表示图片效果,带来的改变可以试试,不过也会影响渲染出图的时间,会根据你要求的画面质量延长时间。
  • Highly detailed 增加很多的细节,有时候描述没有那么多,随手丢进去,它会补细节。
  • Studio lighting 添加和谐的靠谱一些的灯光效果,小概率加一些纹理
  • Professional 会帮助自动调节对比度,色彩的和谐程度
  • Vivid Colors 会帮忙增加一些鲜艳的颜色,比如用画中国画高级的配色,希望用到景泰蓝,经常会出现有点雾蒙蒙的,加入后会增强颜色的纯度和饱和度。
  • Bokeh 画人像可以多尝试用这个词语,会比较突出人像
  • high quality 高品质
  • masterpiece 杰出
  • best quality 最好品质
  • photography 摄影作品
  • ultra highres 超高分辨率
  • RAW photo 原始照片
  • ultra-detailed
  • finely detail
  • highres
  • 8k wallpaper

 

示例:

 

正向提示词:

(8k, best quality, masterpiece, ultra highres:1.2) Photo of Pretty Japanese woman in the (style of paul rubens and rebecca guay:1.1) (melancholy winter snow:1.4)

反向提示词:

(worst quality:2.0)

Photo of Pretty Japanese woman

 

正向提示词:

( (8k:1.27), best quality, masterpiece, ultra highres:1.2) Photo of Pretty Japanese woman (beautiful:1.1) (sci-fi warrior woman:1.1) space soldier, (beanie:1.61) (leather jacket:1.21) intricate elegant, fantasy, detailed, ometric by greg rutkowski and alphonse mucha, gradient lighting

反向提示词:

(worst quality:2.0)

Photo of Pretty Japanese woman (beautiful:1.1)

 

2、常用的反向提示词:

  • worst quality
  • bad quality
  • low quality
  • normal quality
  • lowres
  • normal quality

 

示例可以见1上的反向提示词。

 

3、括号用法

注意:一般小括号用的比较多,可以用数字表示权重,这样就不需要中括号和大括号,比如Exquisite Crown:1.331)=(((Exquisite Crown)))

  • 小括号用法:小括号代表的是1.1倍,比如Exquisite Crown(精美的皇冠),加上(Exquisite Crown)就代表皇冠这个词语的权重变成1.1倍,(((Exquisite Crown))),代表1.1x1.1x1.1,1.331倍。
  • 中括号用法:中括号代表的是降权,因为初始化的权重是1,用[Exquisite Crown]代表的是0.952倍。
  • 大括号用法:大括号代表的是1.05倍,展示方式{Exquisite Crown}。

 

示例:

 

正向提示词:

masterpiece, illustration,best_quality, rosaria_\(genshin_impact\), , nun, fishnet, shoulder_gloves, bare_shoulder, bangs, (pray:1.2), hands together, sitting on floor, church, looking up, crying with eyes open, looking up,, , , red hair, red eyes, headdress, short hair, skinny, crown, [after]{zoom_enhance mask="fingers" replacement="closeup hand" max_denoising_strength=0.2 precision=80}[/after], white gloves,

反向提示词:

wrinkles Deformed eyes, ((disfigured)), ((bad art)), ((deformed)), ((extra limbs)), (((duplicated))), ((morbid)), ((mutilated)), out of frame, extra fingers, mutated hands, poorly drawn eyes, ((poorly drawn hands)), ((poorly drawn face)), (((extra legs))), (fused fingers), (too many fingers), (((long neck))), tiling, poorly drawn, mutated, cross-eye, canvas frame, frame, cartoon, 3d, weird colors, blurry, ((old)), ((ugly)), ((child)),, NG_DeepNegative_V1_75T, (extra hand:1.4),

生成图:

修女,渔网,肩手套,光肩,刘海,(祈祷:1.2),双手合十,坐在地板上,教堂,抬头看,睁开眼睛哭泣,抬头看

 

4、元素的融合:

 

方法1:中括号表示法

[pink|blond]long hair,beautiful girl, gothic dress, clear details, Gothic architecture interior

在这个里面的[pink|blond]long hair,用中括号将颜色隔开,渲染的时候,是一步粉红一步金色,最后出来的是调节过后的粉金色。中括号起到了混合的作用,同理,我们还可以用在服装材质、款式、背景玄幻...除了用中括号,另外还可以用and来连接,这是更细致的写法,可以用来规定某一个你想要混合的色彩的权重。

 

方法2:AND

pink long hair AND blond long hair,beautiful girl, gothic dress, clear details, Gothic architecture interior

 

方法3:此方法被称作为元素渐变。

可以通过混合两个关键词来实现更有趣效果,使用语法为“[keyword1 : keyword2: factor]”,其中factor值控制了把keyword1切换到keyword2的步骤值,是一个介于0到1之间的数字。

 

举个例子,输入提示词“Oil painting portrait of [Joe Biden: Donald Trump: 0.5]”,采样步数设置为30。这里指的是,第1~15步,提示词为“Oil painting portrait of Joe Biden”;第16~30步,提示词为“Oil painting portrait of Donald Trump”。解释一下,factor值决定了关键词的切换节点,设置为0.5时指的是在30*0.5 = 15步时切换。

 

示例:

 

正向提示词:

((extreme detail)),(ultra-detailed), extremely detailed CG unity 8k wallpaper, (anime screencap:1.2), marin kitagawa, school uniform, plaid skirt, black choker, smile, teeth, looking at viewer, sitting, crossed legs, night sky, stars, outdoors,

反向提示词:

sketches, (worst quality:2), (low quality:2), (normal quality:2), lowres, normal quality, ((monochrome)), ((grayscale)), skin spots, acnes, skin blemishes, bad anatomy,(fat:1.2), lowres,bad anatomy,bad hands, text, error, missing fingers,extra digit, fewer digits, cropped, worstquality, low quality, normal quality,jpegartifacts,signature, watermark, username,blurry,bad feet,cropped,poorly drawn hands,poorly drawn face,mutation,deformed,worst quality,low quality,normal quality,jpeg artifacts,signature,watermark,extra fingers,fewer digits,extra limbs,extra arms,extra legs,malformed limbs,fused fingers,too many fingers,long neck,cross-eyed,mutated hands,polar lowres,bad body,bad proportions,gross proportions,text,error,missing fingers,missing arms,missing legs,extra digit, extra arms, extra leg, extra foot,

MarinKitagawa:0.7坐着,跷二郎腿动漫女

 

5、元素的精细控制:

使用[keyword:number]方式表示

[flower:5],long blond hair, beautiful girl, gothic dress, clear details, Gothic architecture interior

[flower:5]的意思是从第5步开始画花花,直到结束,以降低画的步数来达到弱化的效果。

但是这也有个局限,在我们画画步数本来就不高的情况下,很容易画不出来,它没办法只用10步或15步给画出来的时候,往往不理你。

此外,还有一些采样会不太搭理这种写法,可以探索看看。

[flower:5] 代表从第5步开始直到结束

[flower::10] 代表从开始就一起画,但是画到第10步就不画了

[[flower::30]:5] 代表从第5步开始画,到30步结束

长呼一口浊气,试想一下,如果我们在画画的时候,写tag能够这样精细控制,熟练掌握各个元素出现的轻重,出来的画面能多细致。

 

6、画面的比重控制:

上面是控制某一个东西的比重,下面来扒画面的比重。

但是这是需要很长的步数来表现的,我今天用的不画那么多步,就写一下怎么表示。

 

比如说:我们将步数设定在100,前面50步用来画人,后面50步用来画花花。

第一种方法:

[girl:flower:0.5]

这样就表示前面的50%步数是画人的,后面的用来画花,人就会画到50步就结束了;

 

第二种方法:

另外一种就是直接写步数,据说可以这样用,但是我觉得并不好用,写法:

[girl:flower:50]

在总步数100的时候,前面50用来画人,后面的画花。

 

只是两种写法不一样,亲测后面的不如前面的写法好用。

 

7、元素随机选择:

这个在批量生成的时候会好用一些,一张两张的体现不出。

这里用到的是大括号。

 

之前的tag:

Long blond hair, beautiful girl, gothic dress, clear details, Gothic architecture interior

之后的tag:

CrownCorolla|Hairpin|Bowknot,long blond hair, beautiful girl, gothic dress, clear details, Gothic architecture interior

 

8、词汇顺序/数量/位置影响

早期的标记具有更一致的位置,因此神经网络更容易预测它们的相关性。而且由于attention机制的特殊性,每次训练时,开始的标记和结束的标记总会被注意到(attention)。而且由于标记越多,单个标记被被注意到的概率越低。

 

基于以上特性,有以下几点需要注意:

  • 开头与结尾的词往往作用性更强。
  • 提示词数量越多,单个提示词的作用性越低。
  • 开头的数个提示词的作用较强,有更强的相关。
  • 关于数量,你可能已经注意到了,当你写prompt时会有数量限制。
  • 但是在stable diffusion webui中,你是可以写 75 个词汇以上的提示的。webui会自动通过对提示词进行分组。当提示超过 75 个 token(可以理解token代表你的提示词),提交多组 75 个 token。单个token只具有同一组中其他内容的上下文。
  • 每一组都会被补充至(1,77,768)的张量,然后进行合并,比如俩组就会合并为(1,154,768)的张量,然后被送入U-Net。
  • 值得注意的是:为了避免将你的短语分成俩组,webui在分组时会查看附近是否有,来尽量还原你想要的输入。然后你还能通过输入BREAK来快速分组,BREAK必须为大写。

 

四、stable diffusion 提示词 原理

由于原理很复杂,内容也挺多,我就放在最后面来讲解了,有兴趣的想深入研究的朋友们可以看一下。

 

Stable Diffusion 是一种文生图 AI 模型,由互联网上数百万图像和文本描述对训练而来,通过理解文本描述与图像信息的内在关联,不断利用扩散过程进而得到满意的生成“图片1”。

 

比如,通过一串提示词,midjourney 会输出这样的情侣合照:

A pair of young Chinese lovers, wearing jackets and jeans, sitting on the roof, the background is Beijing in the 1990s, and the opposite building can be seen —v 5 —s 250 —q 2.
一对年轻的中国情侣,穿着夹克和牛仔裤,坐在屋顶上,背景是20世纪90年代的北京,可以看到对面的建筑
一对年轻的中国情侣,穿着夹克和牛仔裤,坐在屋顶上,背景是20世纪90年代的北京,可以看到对面的建筑

图1 用 midjourney v5 生成的情侣图

 

没错,这两位并不是真人,而是由 AI 一键生成的,毫无违和感!

你可能会想这有什么了不起的,随手一搜就有好几 G 嘛。这项技术的有趣之处在于,还可以让模型生成一些先前不存在具有组合元素的高质量图像。

 

比如说,你可以生成不同画家风格的明星照片,下面以 19 世纪印象派画家 Vincent van Gogh 和 19 世纪美国画家画家 John Sargent 风格来画下 Emma Watson 肖像画(Emma Watson 是《哈利波特》中赫敏的饰演者)

提示词1: Vincent van Gogh’s painting of Emma Watson; 
提示词2: John Sargent’s painting of Emma Watson
图2 不同画家风格下的Emma Watson肖像

图2 不同画家风格下的Emma Watson肖像

 

从图 2 可以看到,生成图片对面部和阴影控制得比较好,整体艺术风格还是比较协调的,能把画师风格和具体人物以一种比较和谐的方式融合到一起。

 

那计算机是如何理解输入文字呢?

图 3 给出了 stable diffusion 整体结构示意图,利用文本编码器 text encoder(蓝色模块),把文字转换成计算机能理解的某种数学表示,它的输入是文字串,输出是一系列具有输入文字信息的语义向量。有了这个语义向量,就可以作为后续图片生成器 image generator(粉黄组合框)的一个控制输入。

图3 Stable Diffusion组成结构

图3 Stable Diffusion组成结构

 

要想生成出满意照片,输入合适提示词就变得非常重要,接下来就从“如何写好提示词”出发,对文生图的提示词输入方法进行归纳总结。

 

如何写好提示词?

写出一份比较好的提示词是文生图技术的关键。但是,写出一份好的 prompt 并不容易,下面针对“如何写好提示词”这个问题,从提示词构成、调整规则等角度,来介绍下如何优化输入提示词。

 

1、正面提示词

要写好一份提示词,遵循原则为尽可能详细并且具体,从不同角度进行详细描述。下面从 9 个角度来介绍输入关键词。

 

常用的关键词类别包括如下:

(1) 主体 subject

(2) 媒介 medium

(3) 风格 style

(4) 画家 artist

(5) website

(6) 分辨率 resolution

(7) 额外细节 additional details

(8) 色调 color

(9) 光影 lighting

 

当然,输入提示词时,不需要包括到每个类别,只需作为一个列表检查下哪些可以用到。下面通过添加每个类别的关键字来生成一些图像,来说明和介绍下每个类别。为单独观察提示词效果,实验时不会使用负面提示词(在下个模块会更详细介绍)。

 

(1) 主体

主体 subject,是指想在图像中看到的主体,要尽可能详细描述以避免出现描述不足的问题。假如要生成一个在施法的女巫,新手可能会这么写:

A sorceress

这个描述词也太简单了吧,要提到女巫长什么样,增加她形象相关的描述词,比如说她穿了什么?在施什么魔法?是站着,跑着,或者飘浮在天上?主体背景在哪里?

 

Stable diffusion 并不能猜到这些内容,我们要更详细地表达各个元素信息。画人物对象的一个常用技巧是使用名人的名字,名人由于在训练集中出现频次较大而训练充分,是控制生成人物形象的一种好办法。

 

作为演示,把女巫形象设置成 Emma Watson 的样子,她因饰演《哈利波特》中的赫敏一角红遍全球,也是 stable diffusion 里最常使用的一个关键词。把她想象成一个会使用闪电的神秘女巫,并增加一些形象要求,提示词如下:

Emma Watson as a powerful mysterious sorceress, casting lightning magic, detailed clothing

对应的生成图如下:

图4 Emma Watson女巫图

图4 Emma Watson女巫图

 

利用名人名字来控制人物形象,直接原因就是训练时用到了一定量样本,包括不同角度和不同场景,使 Emma Watson 得到了充分训练。要是使用更早些或者小众点的演员,效果就不一定这么好了。

 

(2) 画风

画风 medium,是指生成图片的画风,包括插画 illustration、油画 oil painting 或摄影风 photography 等。这类描述词影响力很大,单独一个画风描述词就能很大程度地改变风格。比如添加下关键字“digital painting(数字绘画)”,

Emma Watson as a powerful mysterious sorceress, casting lightning magic, detailed clothing, digital painting

对应的生成图如下:

图5 Emma Watson女巫图+画风

图5 Emma Watson女巫图+画风

 

可以看到,这些图像的画风从普通照片变成了数字绘画风。这里也列出一些常用画风,

关键词 说明
Portrait 肖像画风,用于生成脸部或者头像
Digital painting 数字艺术风格
Concept art 2D 插图风格
Ultra realistic illustration 画风真实和逼真,用于生成人物
Underwater portrait 模拟水下的人物特写,头发会飘起来

 

(3) 风格

风格 style,是指主体形象的艺术风格,比如印象派、超现实主义、波普艺术等。

通过添加一些风格描述词"hyperrealistic, fantasy, surrealist, full body",

Emma Watson as a powerful mysterious sorceress, casting lightning magic, detailed clothing, digital painting, hyperrealistic, fantasy, Surrealist, full body

对应的生成图如下:

图6 Emma Watson女巫图+风格

图6 Emma Watson女巫图+风格

 

这里感觉又多了一些变化,前面关键字已经包含了部分风格关键字导致变化不大,但是保留这些风格提示词也可以。这里也列出一些常用风格。

关键词 说明
hyperrealistic 超现实主义,会增加细节和分辨率
pop-art 波普艺术风格
Modernist 现代派,色彩鲜艳和高对比度
art nouveau 新艺术风格,追求平面化

 

(4) 画家

画家 artist,类似于强修饰符,是指用特定画家作为参考来生成他们风格的图像。当然也可以使用多个画家名字来生成混合风格。

 

继续在提示词里再加上 19 世纪的超级英雄漫画家 Stanley Artgerm Lau 和肖像画家 Alphonse Mucha

Emma Watson as a powerful mysterious sorceress, casting lightning magic, detailed clothing, digital painting, hyperrealistic, fantasy, Surrealist, full body, by Stanley Artgerm Lau and Alphonse Mucha

对应的生成图如下:

图7 Emma Watson女巫图+不同画家

 

这里看到,把两位画家的风格融合到一起,效果还不错。这里也列出一些常用画家,

关键词 说明
John Collier 19 世纪肖像画家
Stanley Artgerm Lau 偏写实和现代风格
John Singer Sargent 擅长女性肖像,偏印象派
Alphonse Mucha 擅长画平面肖像

 

(5) 网站

有一些小众图片网站,比如说Artstation和 Deviant Art 这样的网站收集了许多画风独特的图像。在提示词中添加网站名称,也可以把图像引向这些风格。

 

试下在提示词里再加上“artstation ”,

Emma Watson as a powerful mysterious sorceress, casting lightning magic, detailed clothing, digital painting, hyperrealistic, fantasy, Surrealist, full body, by Stanley Artgerm Lau and Alphonse Mucha, artstation

对应的生成图如下:图7 Emma Watson女巫图+网站

 

图片变化不是很大,但看起来有点像 Artstation 网络下载下来的了。

 

(6) 分辨率

分辨率 Resolution,表示生成图像的清晰度和细节程度。

继续添加这方面关键字“highly detailed, sharp focus”,

Emma Watson as a powerful mysterious sorceress, casting lightning magic, detailed clothing, digital painting, hyperrealistic, fantasy, Surrealist, full body, by Stanley Artgerm Lau and Alphonse Mucha, artstation, highly detailed, sharp focus

对应的生成图如下:

图8 Emma Watson女巫图+分辨率

图8 Emma Watson女巫图+分辨率

 

看起来变化不大,因为前面生成图片已经非常清晰了,但补充一下也无妨。

 

(7) 额外细节

额外细节 additional details,可以继续用来修改图片。

继续添加这方面关键字“sci-fi, stunningly beautiful, dystopian”,

Emma Watson as a powerful mysterious sorceress, casting lightning magic, detailed clothing, digital painting, hyperrealistic, fantasy, Surrealist, full body, by Stanley Artgerm Lau and Alphonse Mucha, artstation, highly detailed, sharp focus, sci-fi, stunningly beautiful, dystopian

对应的生成图如下:

图9 Emma Watson女巫图+额外细节

图9 Emma Watson女巫图+额外细节

 

(8) 色调

色调 color,是指通过添加颜色关键字来控制图像整体颜色,可以把颜色应用到某个物品上或者是整体色调。

利用关键字"iridescent gold"让整张图片黄一点,

Emma Watson as a powerful mysterious sorceress, casting lightning magic, detailed clothing, digital painting, hyperrealistic, fantasy, Surrealist, full body, by Stanley Artgerm Lau and Alphonse Mucha, artstation, highly detailed, sharp focus, sci-fi, stunningly beautiful, dystopian, iridescent gold

对应的生成图如下,看起来就很黄了!

图10 Emma Watson女巫图+色调

图10 Emma Watson女巫图+色调

 

(9) 光照

光照 lighting,是指图像里的光照描述,改变光照可以对图像效果产生巨大影响。

试试添加关键字“cinematic lighting, dark”,

Emma Watson as a powerful mysterious sorceress, casting lightning magic, detailed clothing, digital painting, hyperrealistic, fantasy, Surrealist, full body, by Stanley Artgerm Lau and Alphonse Mucha, artstation, highly detailed, sharp focus, sci-fi, stunningly beautiful, dystopian, iridescent gold, cinematic lighting, dark

对应的生成图如下,影视光照就出来了!

图11 Emma Watson女巫图+光照

图11 Emma Watson女巫图+光照

 

总结下,图片生成时针对主体添加一些关键字,就能够得到比较不错的图片;通常不需要填写很多提示词来获得高质量图片,比如画家、网站和风格在一定程度上是有些重合的。也可以借助一些 stable diffusion 提示词网站来获取更多灵感,例如:Ai 画廊 - AI 关键词生成器网址:https://www.aigallery.top/?engine=stable

 

2、负面提示词

负面提示词和正面提示词是同等重要的,使用负面提示词也是生成迭代过程的一个重要环节。要解释负面提示词的工作原理,这里需要先理解不使用负面提示词时采样是如何工作的

 

不使用负面提示词的采样过程

在 stable diffusion 采样阶段,① 首先用文本提示词作为指导条件,利用条件采样对图像进行去噪;② 采样器使用无条件采样对同一图像进行去噪,这里不使用文本指导,但它仍然会扩散到某一个图像,比如说下面的篮球或者红酒杯(它可以是任何随机主体);③ 扩散过程中实际上是计算条件采样和无条件采样的差异,并按照采样步数重复这个过程。不使用负面提示词的采样过程

 

使用负面提示词的采样过程

负面提示词是通过影响无条件采样实现的。利用负面提示词,在上面第 ② 步里就不是使用空提示来生成随机对象了。从技术上说,正面提示词会引导采样过程生成与文本相关的图像,负面提示词则会在采样过程来引导远离相关图像。需要说明,扩散过程是发生在隐空间 latent space 里,而不是图像空间,这里仅作为技术示意。使用负面提示词的采样过程

 

负面提示词,即填入不想要的主体或者身体部位,以在采样过程中避免出现。比如说,sd v1 版本不擅长生成手,就可以在负向提示词里输入“hand”或者“extra limbs”来隐藏或修正。下面会从 4 个角度来介绍可以使用负面提示词的应用场景,分别是:

(1) 移除物体 removing things

(2) 修改图片 modifying images

(3) 关键词切换 keyword switching

(4) 修改风格 modifying styles

 

(1) 移除物体

负面提示词的第一个直接用法是移除任何不想在图片中看到的内容。

比如,在提示词输入“Portrait photo of a man”,得到下面两张图片,都看起来比较严肃。

图14 提示词输入“Portrait photo of a man”的生成图片

图14 提示词输入“Portrait photo of a man”的生成图片

 

接下来试着去掉他们胡子,看起来更年轻一点,因此在负向提示词里输入“mustache”,就可以生成一些没有胡子的男人,如图 15 所示。当然,要想完全去除右边男人的胡子,可通过增强负向提示词“(mustache:1.3)”来告诉采样过程去除胡子操作的重要度提高 30%。

图15 在负向提示词里添加“mustache”的生成图片

图15 在负向提示词里添加“mustache”的生成图片

 

(2) 修改图片

负向提示词也可以用于在得到较满意图像时,利用负面提示词进行微调。这里不需要移除任何东西,而只需要对主体做一些细微修改。

比如,利用下面提示词得到一张比较满意的唯美照片后,发现可能由于刮风导致头发都飘起来了,就可以添加负面提示词“windy”让头发正常下垂。

正面提示词输入如下,

emma watson as nature magic celestial, top down pose, long hair, soft pink and white transparent cloth, space, D&D, shiny background, intricate, elegant, highly detailed, digital painting, artstation, concept art, smooth, sharp focus, illustration, artgerm, bouguereau
图16 添加负面提示词“windy”后的左右变化,右边为修改后图片

图16 添加负面提示词“windy”后的左右变化,右边为修改后图片

 

要是不想调整头发,而是想让头发遮住耳朵呢?通过添加带有不同强度的负面提示词“ear”来调整隐藏强度。下面是强度分别为 1.3、1.6 和 1.9 的效果,由于 ear 在强度为 1 时已被大比例遮住,继续增大时变化不多。但负面强度设置为 1.9 时,图像组成也发生了变化,这说明负面提示词对扩散过程的影响是比较大的。

图17 负面提示词“ear”不同强度的生成图片

图17 负面提示词“ear”不同强度的生成图片

 

(3) 关键词切换

要是真的想使用强度为 1.9 的负向提示词,有什么不改变图片总体结构的方法呢?用关键词切换技术,先使用一个无意义的单词作为负面提示词,再在后面的采样步骤里切换到(ear:1.9)。

 

比如,使用“the”作为无意义的负面提示词,可以把它放在负面提示词里先验证下它的无用性。在验证添加“the”的生成图像跟没有添加时几乎一样后,就可以使用这个“the”单词作为负面提示词,

the: (ear:1.9): 0.5

 

由于采样步数设置了 20,意味着在第 1~10 步时使用负面提示词“the”,第 11~20 步使用负面提示词“(ear:1.9)”。这是因为,扩散过程的初始阶段是确定图片主体结构,后面步骤只是在对细节进行更精细调整,比如用头发遮住耳朵。

图17 负面提示词“the: (ear:1.9): 0.5”的生成图片

图17 负面提示词“the: (ear:1.9): 0.5”的生成图片

 

通过这种方式,就对负面提示词使用更大强度 1.9,且不改变图片组成,得到了接近原始图像的微调图像,并且把耳朵用头发遮得更严实。

 

(4) 修改风格

负面提示词不仅能用来修改图片内容,也可以用来修改图片风格。为什么要用负面提示词来修改图片风格?在正面提示里添加过多单词也会混淆扩散过程,把一部分信息放在负面提示词里的效果会更明显。

 

操作 1 Sharpening。

为了让图片更清晰,除了在正面提示词里使用关键字“sharp”或者“focused”,也可以在负面提示词里使用“blur”,来让图片更为清晰。

图18 添加负面提示词“blurry”的生成图片

图18 添加负面提示词“blurry”的生成图片

 

操作 2 “Photorealistic”。

使用负面提示词“painting”或者“cartoon”,使生成图片更倾向写实主义。当然,要是想保持原有图片结构,可继续使用前面提到的关键词切换,使用负面提示词“the: (painting cartoon:1.9): 0.3”,可得到图 19 中更接近原始图像但增加了写实主义风格的生成图像。

图19 负面提示词“the: (painting cartoon:1.9): 0.3”的生成图片

图19 负面提示词“the: (painting cartoon:1.9): 0.3”的生成图片

 

下面给出了一份通用的负面提示词,可以复用到你的场景,这些负面提示词可以让图片主体更突出,具有层次感。

ugly, tiling, poorly drawn hands, poorly drawn feet, poorly drawn face, out of frame, extra limbs, disfigured, deformed, body out of frame, bad anatomy, watermark, signature, cut off, low contrast, underexposed, overexposed, bad art, beginner, amateur, distorted face, blurry, draft, grainy

 

总结下,负面提示词也扮演着十分重要的作用,用负面提示词在采样过程引导远离相关图像。如上面介绍,可以用来微调生成图片,如移除物体、修改图片,或者修改风格等一系列操作。

 

3、微调提示词

利用正面和负面提示词还不能生成很满意的照片,还需要做进一步细节调整?还有一些提示词调整技巧,下面会从 3 个用法角度来介绍如何微调提示词,

(1) 关键词权重

(2) ()和[]语法

(3) 关键词混合

 

(1) 关键词权重

关键词权重,是指通过语法“(keyword: factor)”来调整关键词权重,其中 factor 为权重值,小于 1 表示减低重要度,大于 1 表示增大重要度。

 

下面这个例子调整了关键字“dog”的权重值。如下图所示,增大“dog”权重一般会生成更多狗,减少权重则降低了生成狗的数量。这种技术也可以应用到风格 style 或者光照 lighting 调整。

dog, autumn in paris, ornate, beautiful, atmosphere, vibe, mist, smoke, fire, chimney, rain, wet, pristine, puddles, melting, dripping, snow, creek, lush, ice, bridge, forest, roses, flowers, by stanley artgerm lau, greg rutkowski, thomas kindkade, alphonse mucha, loish, norman rockwell.
图20 不同权重提示词“dog”的生成图片

图20 不同权重提示词“dog”的生成图片

 

(2) ()和[]符号

调整关键词强度的另一种等效方法是使用()和[]符号。(keyword)把关键词强度增加到 1.1 倍,与“(keyword:1.1)”效果一致;[keyword]把关键词强度降低到 0.9 倍,与“[keyword:0.9]”效果一致。

 

这里可以使用多个,跟数学里的连乘操作是一样的。

(keyword): 1.1
((keyword)): 1.21
(((keyword))): 1.33

 

(3) 关键词混合

这里还可以通过混合两个关键词来实现更有趣效果,使用语法为“[keyword1 : keyword2: factor]”,其中 factor 值控制了把 keyword1 切换到 keyword2 的步骤值,是一个介于 0 到 1 之间的数字。

 

举个例子,输入提示词“Oil painting portrait of [Joe Biden: Donald Trump: 0.5]”,采样步数设置为 30。这里指的是,第 1~15 步,提示词为“Oil painting portrait of Joe Biden”;第 16~30 步,提示词为“Oil painting portrait of Donald Trump”。解释一下,factor 值决定了关键词的切换节点,设置为 0.5 时指的是在 30*0.5 = 15 步时切换。

图21 关键词混合的生成图片

图21 关键词混合的生成图片

 

通过关键词融合技术可以把两个主体容易在一起。要注意的是,Trump 穿着白色西装(这好像是 Biden 的打扮),是因为第 1 个关键词(即早期扩散过程)决定了总体组成,后面步骤只会微调细节。

 

用关键词混合技术还能用于生成高度相似的图片编辑。下面是使用相同提示词生成了两张图片,随机种子和迭代步数保持不变,只修改了[apple: fire: factor]里的 factor 权重。这背后的工作理论是,生成图片的总体组成是由早期扩散过程决定的,后面的一些关键词调整不会对图像整体产生很大影响,只会改变一小部分。

图22 关键词混合[apple: fire: factor]的生成图片

图22 关键词混合[apple: fire: factor]的生成图片

 

五、本文总结

AI 绘画各种技术和应用不断涌现,也很大程度上提高了不少行业产出效率。这篇文章主要介绍 stable diffusion 里的提示词 prompt,从提示词构成、调整规则等角度出发,介绍如何更好地输入提示词,才能更好地控制 AI 绘画生成。

付杰
  • ¥ 68.0元
  • 市场价:98.0元
  • ¥ 99.0元
  • 市场价:159.0元
  • ¥ 198.0元
  • 市场价:398.0元
  • ¥ 69.0元
  • 市场价:69.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: