Logo
Published on

AI图像生成之Prompt解析-简明版

AI图像生成之Prompt解析-简明版

Authors

Authors
  • avatar
    Name
    Astar
    Twitter
    @bilibili
    “万事皆虚,万事皆允” 大家都喜欢把简单的事情理论化、复杂化。什么都不看遵从自己的本心也许未必是坏事,花几分钟浏览下此文也可,毕竟我们中大多数只是过往的看客。

说明

前提条件

本文只涉及Prompt的书写规则,因此我假设你已经配置好了stable diffusion webui或者其他类似应用,并且至少成功跑出过一张图。

本文无任何技巧性内容,只介绍能让你随心所欲出图的最基本规则。

本文只展示结果,省略了大多数分析过程,还请大家多多包含。

本文确实参照许多大佬的文献和作品,非常感谢这些大佬在AI图像方面的贡献。

如果你跑过图,你应当知道下面这些最基础的概念:

Prompt:提示词,顾名思义你写什么AI就可能生成什么,常用英文。

Negative Prompt:负面提示词,你写什么AI就避免生成什么,常用英文。

权重:一个小数,表示提示词的重要程度。

除Prompt的其他参数

这部分是为了方便你复现本文内容,如果你相信作者没粘错图可以跳过

本文所有的图都是在按照如下参数跑出来的

Steps: 20, Sampler: DPM++ 2M Karras, CFG scale: 8, Seed: 2484682528, Size: 512x384, Model hash: 56be194f47, Model: cetusMix_cetusVersion2Fp16, Denoising strength: 0.7, Hires upscale: 2, Hires upscaler: Latent

Time taken: 18.62sTorch active/reserved: 6878/9184 MiB, Sys VRAM: 11616/12288 MiB (94.53%)

另外本文所有负面Prompt都是一致的,即

worst quality, low quality, malformed hands,poorly drawn hand,mutated fingers,extra limbs,poorly drawn face, monochrome, zombie,word

Prompt书写规则

基本用法

先看一段示例

Prompt:

masterpiece, best quality, ultra-detailed,detailed background,beautiful detailed face,high quality,extremely detailed,1girl,hood,upper body,blood,(red eye) AND (black hair),sad,A girl who is using magic and creates a magic circle,highest quallity, black light particles,illustration, cinematic light,

Negative prompt:

worst quality, low quality, malformed hands,poorly drawn hand,mutated fingers,extra limbs,poorly drawn face, monochrome, zombie,word

非常普通的描述,没有任何花哨的语法,通过这些描述跑出的图这样的

sampleimg1

瑕疵有不少,但是还算符合个人审美,接下来我们对上述Prompt进行分析,以正面Prompt为例:

Prompt: masterpiece, best quality, ultra-detailed,detailed background,beautiful detailed face,high quality,extremely detailed,1girl,hood,upper body,blood,(red eye) AND (black hair),sad,A girl who is using magic and creates a magic circle,highest quallity, black light particles,illustration, cinematic light,

因为是简明版,就不一句一句分析了,直接上结论:

语言:一般用英语,没什么好纠结的,有关Prompt的工具也有不少了,实在不行上百度翻译啊

构成:英文单词/短语/句子+逗号

语句长短:一个词、一个短语、几个AND相连的短语(用AND相连的词语推荐带小括号)和一个句子均可

顺序:一般来说越靠前优先级越高,但也不绝对

距离:这里指的是Prompt与Prompt的距离,如果我们想让一些Prompt有所关联,那么应该把他们放在一起

加权Prompt

不公是常态,哪怕对于文字。

每一个提示词可以有不同的权重,权重是跟在提示词一个小数,他的默认值(不写的情况)是1,越大越重要,越小越不重要。

请查看示例:

masterpiece, best quality, ultra-detailed,detailed background,beautiful detailed face,high quality,extremely detailed,1girl,(hood:1.2),upper body,(blood:1.4),(red eye) AND (black hair),sad,A girl who is using magic and creates a magic circle,highest quallity, black light particles,illustration, cinematic light,

相比于之前只改了两处:hood -> (hood:1.4) , blood -> (blood:1.4) , 之前明明写了blood却没什么效果,接下来我们把他增强一些,以下结果:

sampleimg1

结论如下:

推荐语法: (提示词 :权重)

非常简单,只要在小括号里写提示词、冒号和权重就行了。

其他语法:括号嵌套,比较麻烦,感兴趣的看一下吧

提示词的权重=11.1小括号嵌套层数0.91中括号嵌套层数提示词的权重 = 1 * 1.1^{小括号嵌套层数 } * 0.91^{中括号嵌套层数}

范围:一般写0-2之间,当然你写100也是可以的

特效

适当加一些描述画面的词能达到意想不到的效果,并且之前的描述中已经包含不少特效了,我们加一个镜头(注意最后的逗号,加不加结果不同),再跑一下:

masterpiece, best quality, ultra-detailed,detailed background,beautiful detailed face,high quality,extremely detailed,1girl,(hood:1.2),upper body,(blood:1.4),(red eye) AND (black hair),sad,A girl who is using magic and creates a magic circle,highest quallity, black light particles,illustration, cinematic light,close up,

效果如下:

sampleimg1

​人物靠近了,而上面的有很多特效相关的描述,总结如下:

  • 质量:masterpiece, best quality, ultra-detailed,detailed background,beautiful detailed face,high quality,extremely detailed,highest quallity
  • 镜头:close up
  • 光影:black light particles, cinematic light
  • 画风:illustration

原来上面的图全是特效的功劳啊,大家可以自己试一试其他特效的描述词

下面的参考文献里有更多更详细的介绍,建议大家都去看看。

融合Prompt

将两种物体融为一体(创造新生物?)

请查看示例:

masterpiece, best quality, ultra-detailed,detailed background,beautiful detailed face,high quality,extremely detailed,[1girl:10|rabbit:10],(hood:1.2),upper body,(blood:1.4),(red eye) AND (black hair),sad,A girl who is using magic and creates a magic circle,highest quallity, black light particles,illustration, cinematic light,medium view

结果如下:

sampleimg32

头(兜帽)上确实有了兔耳朵一样的物体。

语法如下:

  • 基础:[a | b] 先画a,再画b
  • 带权重:[a : a的权重 | b : b的权重]
  • 多步:[a | b | c | ...]
  • step:据说小于1时表示总的步数的百分比,大于1时表示步数

分步Prompt

规定了AI绘制的先后顺序,比如示例中我希望AI先绘制黑发少女,然后在把黑发绘制成红发

请查看示例:

masterpiece, best quality, ultra-detailed,detailed background,beautiful detailed face,high quality,extremely detailed,1girl,(hood:1.2),upper body,(blood:1.4),(red eye) AND ([black hair:red hair:5]),sad,A girl who is using magic and creates a magic circle,highest quallity, black light particles,illustration, cinematic light,medium view

效果如下:

sampleimg1

嗯,头发多了些红色。

语法如下:

  • 基础:[a: b : step] Prompt的值初始时为a,在step之后变成b
  • 嵌套:[a: [b : c : step] : step]
  • 省略:[a: : step] ,[ : b : step]
  • step:据说小于1时表示总的步数的百分比,大于1时表示步数

基于模型训练的猜测

大家都应该知道,sd模型使用现实中的作品训练出来的(造成版权问题的根源),所以训练数据会对模型的效果产生很大的影响。

占位符

并不是所有文字都能被AI理解,比如说“+++++++------”,我们看这段符号无法看出任何意义,机器也一样,这意味着我们可以用这些符号作为占位符,把相邻的一些Prompt分隔。

适当地使用现实的经验

为何不把你在现实中看到的景象如实地告诉AI呢,画面里有些元素总是一起出现的,例如天空和白云、无头和学姐,画师是这么画的,AI是这么学的,你把这些告诉AI之后大概率可以得到满意的结果。

关于逗号

多输入一个逗号都会导致生成不同的图,这可以理解,机器并不会过滤某些词,而是把所有词都编码、然后一起喂给AI模型,Prompt结尾的逗号虽然没什么意义但也有某些事物也被作为描述输入到模型(没看代码不知道输入的是否为逗号本身),其中的转换过程不得而知,但从结论上来说,逗号起到了添加噪声的效果。

模板?

个人很反感模板,但不得不承认,用起来是真香。

参考《元素同典:确实不完全科学的魔导书》

分为三个步骤

前置:质量+画风+镜头+光照

主要内容:主要景物+次要景物+镜头和光照

全局效果:光照+镜头+画风

初一看,woc,这什么玩意儿,看懂了但不会弄呀,说了等于什么也没说呀。我在此强烈建议同学们去把大神们出图的Prompt抄下来,自己分析一遍,然后照猫画虎写一写。千万不要排斥模仿,创新本来就是无意识的模仿加一点灵感(随机种子)。

参考文献

《元素法典》

《元素同典确实不完全科学的魔导书》