AI绘画 | stable diffusion Prompt从基础到提高,一起来施放魔咒

在这一篇文章中,我将再具体讲解一下Prompt/Negative Prompt参数,Prompt作为文字方式为stable diffusion描述了将要生成的景观或者人像等,它是stable diffusion的一个重要功能

1、概述

在这一篇文章中,我将再具体讲解一下Prompt/Negative Prompt参数,Prompt作为文字方式为stable diffusion描述了将要生成的景观或者人像等,它是stable diffusion的一个重要功能。

通常我们喜欢把写Prompt的过程,称之为“施放魔咒”,而对于它的整个生成过程,我们又称之为“炼丹”。今天,在这里,我主要带大家先从浅及深,从最基础的语法格式,到提示词的一般组成,以及利用一些扩展或者脚本,帮助我们去更好的完成提示词的生成,做一个相对简单又不算特别深入的探讨。

2、Prompt语法

2.1 prompt基础语法

prompt(或咒语),由多个以英文逗号进行分割的标签组成,标签越前,权重越大,反之越小。每一个标签,可以使用以下几种格式:

自然语法,也就是和我们日常聊天一样的方式,通常为一段句子。如我想画一个伤心的女孩坐在教室里,stable diffusion目前仅支持少量中文、日文,通常我们以英文方式表达,翻译为英文为"a sad girl sits in a classroom", 我们用它去进行生成一下,看看效果:自然语法

a sad girl sits in a classroom

【AI作画】stable diffusion Prompt从基础到提高

Tag语法通常是把你想表达的东西关键词或者短语方式去表达,它也是我们平常用得最多的一种方式。针对上一个例子,换成Tag语法,我们的Prompt可以写成"a girl, sad, in classrom", 生成一下,我们同样来看看效果:Tag语法

a girl, sad, in classrom

【AI作画】stable diffusion Prompt从基础到提高

emoji也就是表情符号的意思,通过表情符号,我们可以为人物生成对应的表情,继续以上一个例子为例,我们用emoji来表示的话,Prompt将改写为"1girl, ,in classroom", 效果如下:emoji

1girl, , in classroom

【AI作画】stable diffusion Prompt从基础到提高

支持的emoji, 详细可以参见here(https://unicode.org/emoji/charts/full-emoji-list.html#1f600)

颜文字是随着互联网的兴起,一种用字符表达人物表情的表达方式,仍然以上一个例子为例,我们用颜文字来表示的话,Prompt将改写为"1girl, :-<, in classroom", 效果如下:颜文字

1girl, :-<;,in classroom

【AI作画】stable diffusion Prompt从基础到提高

支持的颜文字,详细可以参见here(zh.m.wikipedia.org)

2.2 Prompt权重语法

上面提过,标签越靠前,权重越重。在实际应用中,除了默认权重以外,我们还可以通过权重语法来对标签进行加减或者手动设置权重。它主要有以下几种格式:

通过()、[]、{}等方式设置权重手动设置权重:格式:(提示词: 权重值), 示例:(sad: 1.1), 表示对伤心程度设置权重为1.1{提示词]等价于(提示词:1.05)[提示词]等价于(提示词:0.952](提示词)等价于(提示词:1.1)), {{{{提示词}}}}等价于(提示词:1.05x1.05x1.05x1.05)。0.952x0.952x1.1), [[[提示词]]]等价于(提示词:0.952x通过()、[]、{}进行嵌套,实现权重加权。除了可以使用上面的方式进行加权或者指定权重,我们还可以对上面的权重表示符号进行嵌套加权,每多一重嵌套,相当于在原来的权重基础上,再进行了一次迭代。比如((提示词))等价于(提示词:1.1

一般情况下,我们建议采用(提示词: 权重)这种方式,可读、控制性高。

2.3 Prompt高阶语法

OR语法,通常用"|"表示。这里我们还是以上面的女孩为例,给它添加上具有red、yellow、green多彩颜色头发,Prompt词:"1girl, (red hair:1.1) | (yellow hair:1.2)| (green hair:1.4), in classroom", 直接上图看效果:

1girl, (red hair:1.1) | (yellow hair:1.2)| (green hair:1.4), in classroom

【AI作画】stable diffusion Prompt从基础到提高

AND语法,在多个单词或者短语之间添加"and"来实现。还以刚才的例子为例,改为and语法,Prompt为"1girl, 1girl, (red hair:1.1) and (yellow hair:1.2) and (green hair:1.4), in classroom,in classroom", 效果如下:

1girl, (red hair:1.1) and (yellow hair:1.2) and (green hair:1.4), in classroom

【AI作画】stable diffusion Prompt从基础到提高

"+"联接语法,通过在多个单词或者短语间添加"+"实现,把上个例子我们改成"+"语法来看看效果,Prompt: "1girl, (red hair:1.1) + (yellow hair:1.2) + (green hair:1.4), in classroom", 效果见下图:

1girl, (red hair:1.1) + (yellow hair:1.2) + (green hair:1.4), in classroom

【AI作画】stable diffusion Prompt从基础到提高

"_"联接语法,通过在多个单词或者短语间添加"_"实现,把上个例子我们改成"+"语法来看看效果,Prompt: "1girl, (red hair:1.1) _(yellow hair:1.2)_(green hair:1.4), in classroom", 效果见下图:

1girl, (red hair:1.1) _(yellow hair:1.2)_(green hair:1.4), in classroom

【AI作画】stable diffusion Prompt从基础到提高

","联接语法, 其实只是为了和上面的做比较,不属于特殊语法。Prompt: "1girl, (red hair:1.1) ,(yellow hair:1.2),(green hair:1.4), in classroom", 效果见下图:

1girl, (red hair:1.1) ,(yellow hair:1.2),(green hair:1.4), in classroom

【AI作画】stable diffusion Prompt从基础到提高

直接拼接语法,不使用任何符号,在标签之间进行连接。Prompt: "1girl, (red hair:1.1)(yellow hair:1.2)(green hair:1.4), in classroom", 效果见下图:

1girl, (red hair:1.1)(yellow hair:1.2)(green hair:1.4), in classroom

【AI作画】stable diffusion Prompt从基础到提高

[提示词: 数值]表示从多少步或者多少百分比开始渲染前面的提示词,我还以上面的女孩为例,我们从第10步开始画红头发, Prompt: "1girl, [red hair:10], (yellow hair:1.2), (green hair:1.4), in classroom", 效果如下:交替渲染语法,格式为[提示词: 数值]、[提示词::数值]、[提示词1:提示词2:数值]等,其中的数值大于1,表示从多少步开始,小于1,表示在多少百分比开始。

1girl, [red hair:10], (yellow hair:1.2), (green hair:1.4), in classroom

【AI作画】stable diffusion Prompt从基础到提高

[提示词::数值]表示在多少步或者多少百分比结束再画前面的提示词,把上面的例子,我们改一下,在第10步结束开始画红头发,Prompt: "1girl, [red hair::10], (yellow hair:1.2), (green hair:1.4), in classroom", 效果如下:

1girl, [red hair::10], (yellow hair:1.2), (green hair:1.4), in classroom

【AI作画】stable diffusion Prompt从基础到提高

[提示词1:提示词2:数值]表示在前面多少步或者多少百分比画提示词1,后面的画提示词2。把上面的例子,我们改成前面10步画红头发,后面画黄头发。Prompt: "1girl, [red hair:yellow hair:10], (green hair:1.4), in classroom", 效果如下:

1girl, [red hair:yellow hair:10], (green hair:1.4), in classroom

【AI作画】stable diffusion Prompt从基础到提高

我们还可以对交替渲染语法做嵌套,比如[[提示词::20]:10],表示从第10步开始到20步结束画提示词。仍然以上面的例子为例,我们改为从10步开始,到20步结束画红头发。Prompt: "1girl, [[red hair::20]:10], (yellow hair:1.2), (green hair:1.4), in classroom", 效果如下:

1girl, [[red hair::20]:10], (yellow hair:1.2), (green hair:1.4), in classroom

【AI作画】stable diffusion Prompt从基础到提高

[提示词1|提示词2]表示交替渲染。仍然以上面的例子为例,我们让红发和黄发交替渲染,Prompt: "1girl, [(red hair:1.1)|(yellow hair:1.2)], (green hair:1.4), in classroom", 效果如下:

1girl, [(red hair:1.1)|(yellow hair:1.2)], (green hair:1.4), in classroom

【AI作画】stable diffusion Prompt从基础到提高

总结:

少使用emoji表情和颜文字,有些model支持较差使用model对应的trigger word, 否则有可能效果不尽人意尽量使用英文,其他语言支持能力有限以Tag语法,配合少量自然语法

3、Prompt组成

通过上面的讲解,我们已经对Prompt的写法有了些基础了解,但不知道各位朋友有没有发现,上面生成的图像过于简单,没有画质感,画的结构组成层次不清晰,没有光影效果。

在这节,我主要给大家讲述,如何去画好一幅画。这里以人物画做例进行介绍,一幅好的人物画,除了要有人物以及场景的简单介绍之外,还需要有以下几部分:

其他细节,诸如主体视角、某某艺术家、分辨率及色调等光线,特别重要,可以让你的画更有艺术感场景,主体所处的环境描述主体细节,画人的话,包括人物的发饰、上下身衣物、动作造型等主体,你如果画人,通常可能会有1girl、1boy等画风,Portraits、Landscape、Anime、Photography等画质,如best quality、UHD、highres、ultra-detailed, masterpiece等

这里简单给一个示例,对上面的女孩用例,增加上相关的描述,Prompt: "best quality,UHD,highres,ultra-detailed, masterpiece, realistic, photo-realistic, 1girl, [(red hair:1.1)|(yellow hair:1.2)], (green hair:1.4), elgant dress, high steel, in classroom, professional light, 8k wallpaper, (full body:1.3), looking at viewer", 效果见下:

【AI作画】stable diffusion Prompt从基础到提高

4、Prompt高阶技巧

Stable diffusion webui本身提供了丰富的扩展能力,帮助我们完成文生图或者图生图。以下功能都是利用它的脚本扩展能力。

4.1 利用Prompt Matrix判断某些Tag对图像的影响

通过修改上面的案例,我们可以看看在加与不加画质词,对整体画的影响,Prompt: "1girl, elgant dress, high steel, in classroom | best quality | highres", 它将生成4张画,分别表示全部画质词不加,以及加其中任意一个和全部都加的情况下,详细效果见下:

1girl, elgant dress, high steel, in classroom | best quality | highres

【AI作画】stable diffusion Prompt从基础到提高

4.2 利用X/Y/Z Plot脚本中的Prompt S/R选项进行智能换装

这里面我将继续使用脚本扩展能力,来对前面的女孩用例,对它进行换装,Prompt: " best quality, highres, UHD, 1girl, elgant dress, high steel, in classroom", 选中"X/Y/Z plot"脚本项,X轴我们用CFG Scale, 值为"7, 10", Y轴选prompt s/r,值填入"elgant dress,business suit,hanfu", 一共将生成6幅画,效果详细见下:

best quality, highres, UHD, 1girl, elgant dress, high steel, in classroom

【AI作画】stable diffusion Prompt从基础到提高

4.3 利用X/Y/Z Plot脚本中的Prompt Order交换Tag顺序,查看图像的变化

通过这项扩展,我们可以验证tag交换后,对整体图像生成的影响,也可以用于验证是否tag越靠着,权重是否越大。仍然以上面的为例,我们这次对主体(1girl)、场景(in classroom)以及画质(best quality)进行交换,看看相应图像会有什么变化。Prompt: "best quality, 1girl, in classroom", 选中"X/Y/Z plot"脚本项,X轴我们用CFG Scale, 值为"7, 10", Y轴选prompt order,值填入"1girl, best quality, in classroom"详细效果见下:

best quality, 1girl, in classroom

【AI作画】stable diffusion Prompt从基础到提高

5、参考与引用

词图PromptTool - www.prompttool.com/NovelAI魔咒百科词典 (aitag.top)魔咒百科宝典 - 咒语生成器 - tag.redsex.cc

0+1

评论0