万字总结:Stable Diffusion_Prompt详细指南,成为SD提示词专家,看这一篇就够了

本文系统、专业、详尽地介绍了Stable Diffusion的提示词Prompt的大量专业知识。大家可以通过polychat.cn体验文中提到的Stable Diffusion的强大能力,无论移动端还是pc端,点开即可体验,支持中文输入
文末附有Stable Diffusion提示词手册,里面收纳整理了大量实用提示词,适用于广大AI绘画者,需要的文末获取:

一、什么是Prompt

Prompt,译为提示词,指的是以书面或口头语言形式向计算机系统发出的指令。这些指令可以指导网络生成更加符合要求的输出结果。在图像生成领域,Prompt 可以用来指导生成理想的图像。

在 SD(Stable Diffusion) 中,Prompt 被分为正向提示词 (Positive Prompt) 和反向提示词 (Negative Prompt)。

正向提示词是指你想要在画面中看到的东西,例如一个美丽的日落或者是一只可爱的小狗。反向提示词是指你想要避免在画面中出现的东西,例如障碍物或者是不必要的元素。

使用 Prompt 可以帮助图像生成算法更加准确地生成所需的图像,并且可以大大提高生成的图像的质量和效果。

计算机并不是直接理解文字的,为了让计算机能够理解文字,需要进行一系列处理。其中第一步就是分词,即将提示词分割为一个个词元的过程。但是有时候我们会发现,提示词的字数和 token 数并不相同。

对于 stable diffusion 采用的 CLIP 模型进行分词的情况,分词并不是简单地按照字符数量进行的。举个例子,对于单词"Dreambeach"(蓝梦岛),模型可能之前没有见到过这个单词,但是其中"dream"和"beach"两个词在之前的语言数据中频率较高,因此模型会将这个词分解成它已知的"dream"和"beach",然后分别作为两个 token 来处理,而不是将整个单词视为一个 token。这就是为什么提示词的字数和 token 数可能会不同的原因。

大多数情况下,提示词的字数和 token 数是相同的,因为分词算法通常会将提示词按照字符数量进行分割,并分别作为不同的 token 来处理。但是在某些情况下,由于语言的复杂性和模型的个体差异,可能会出现提示词的字数和 token 数不同的情况。

二、Prompt的类型

2.1单词标签 (Word Tags)

单词标签是用一个字或者一个词来表达画面中的元素,并使用特定的语法对权重进行调整。这是我们最常用的方式之一。

对于在单词标签上特化训练的模型,建议使用逗号隔开的单词作为提示词。在书写时,应避免出现拼写错误,因为模型可能会将拼写错误的单词拆分为字母处理。

需要注意的是,手一直是图像生成中的难点。如果你一直在提示词中过度强调手的缺点,比如对手的描述,那么模型会认为重点是手,可能会出现让你不满意的结果。

因此,如果整个画面不需要手的出现,建议在反向提示词中输入没有手。如果需要控制手部细节,建议使用ControlNet等技术来控制。

2.2自然语言 (Natural Language)

对于在自然语言上特化训练的模型,建议使用描述物体的句子作为提示词。自然语言是我们平常沟通所使用的语言,例如中文、英文或其他语言。例如,一个拥有金色头发带着花环,穿着白色纱裙的女孩正坐在一棵月桂树下,她的周围是粉色薰衣草草地。

可以使用英文、日文、特殊符号或一些中文,但是还是建议使用英文。支持日文主要是因为训练数据集中包含 Danbooru 等网站的内容。另外,不要使用太过于复杂的语法,语言模型可能无法理解,导致在解析上出现偏差。

2.3 Emoji和颜文字 (Emoji and emoticons)

Emoji 和 颜文字都是用于表达情感和意图的字符,由于它们只有一个字符,因此在语义理解上准确度很高。如果有需要,可以采用 Emoji 或 颜文字来表达情感或意图。例如,在表达“耶”这个表情时,使用 Emoji 字符会更加方便和准确。

2.4标点符号 (Punctuation)

标点符号是语言表达中非常重要的一部分,可以辅助文字表达不同的语义和语气。以下是一些基础的标点符号用法,更多详细信息可以参考提示词进阶部分。

【,】逗号是一种常用的标点符号,用于分割两个或多个词语或句子。在逗号的作用范围内,它有一定的权重排序功能。逗号前的词语或句子权重较高,逗号后的词语或句子权重较低。

【{ }】花括号独立使用时同样用于增加Prompt的权重,例如,【blue hair】没有数值,默认权重为1。而【{blue hair}】则表示增加默认权重,此时权重为1.05。

【()】圆括号独立使用时用于增加Prompt的权重,例如,【blue hair】没有数值,默认权重为1。而【(blue hair)】则表示增加默认权重,此时权重为1.1。

【[ ]】方括号用于减少某些词语的权重,不支持自定义数值。例如,【[blue hair]】表示【blue hair】这个词语的权重是 0.9。如果 NovelAI 使用的是在 22 年 9 月 29 号之前的版本,那么方括号的权重会减弱 0.05,即变成 0.95。

【:】冒号是一种常用的标点符号,用于表示后面的语句是前面语句的扩展或补充。例如,【(blue hair:1.5)】表示【(blue hair)】这个词语的权重是 1.5。在自定义权重数值时,冒号后面的数字表示该词语在整体语句中的权重值。

三、如何撰写Prompt

一般来说,可以按照以下格式来:主题(Subject) + 媒介(Medium) + 风格(Style) + 艺术家(Artist) + 网站(Website) + 质量(Quality) + 附加细节(Additional details) + 色彩色调(Color) + 灯光(Lighting) +反向提示词(Negative Prompt),撰写时不需要把所有的类别都写上,只选择自己最需要的来就行。

3.1主题 (Subject)

主题是画面的灵魂,是锚定画面内容的关键。在生成画面时,必须详细准确地描述主题,以便模型能够理解我们的需求。例如,如果我们想生成一个女孩子,我们不能只写“1girl”,而是需要描述这个女孩子的外貌、穿着、动作等细节,例如她长发还是短发、穿什么衣服、站在哪个地方、做什么样的动作等。只有这样,模型才能准确地理解我们的需求,并生成出符合我们期望的画面。

3.2 媒介 (Medium)

媒介和材料是Prompt中非常重要的一部分,它们可以直接影响到整个作品的风格。例如,手绘作品通常具有独特的纹理和色彩,而摄影则更加注重构图和光线的运用。此外,3D 渲染则可以创造出更加逼真的视觉效果,满足不同创作需求。

3.3 风格 (Style)

不同的艺术风格具有不同的特点和表现形式。例如,野兽派强调色彩和形状的夸张表现,印象派则注重对光影和色彩的变化捕捉,超现实主义则强调梦境和现实的融合,达达主义则强调对传统的颠覆和破坏,波普艺术则更加注重大众文化和消费品的表现形式。

3.4艺术家 (Artist)

艺术家是一个非常强大的修饰词,使用它可以让模型直接参考特定艺术家的风格来进行创作。例如,穆夏是一位非常著名的艺术家,他的作品风格非常富有时代感,使用这个修饰词后,模型可以直接使用穆夏的风格来进行创作,而无需过多地调整。需要注意的是,只有当艺术家的数据被模型学习过,这个修饰词才能生效。

3.5网站 (Website)

在提示词中加入网站信息,比如 Artstation 和 Deviant Art,可以让图像看起来像在这些网站上找到的一样。模型训练的时候抓取了很多网站的数据,因此使用它们作为提示词,可以让模型更好地掌握这些艺术风格和设计趋势,从而生成更加逼真的图像。

3.6质量 (Quality)

画面品质是一个非常重要的因素,使用高质量的词汇,如“masterpiece”或“best quality”,可以提高图像的品质和吸引力。这些词汇可以让模型更好地理解你对图像的要求,从而生成更加逼真、高质量的图像。

3.7附加细节 (Additional details)

使用附加信息可以为图像增加氛围,比如使用科幻、赛博朋克或蒸汽朋克等词汇,可以让图像看起来更加具有时代感和科技感。这些词汇可以让模型更好地理解你对图像的要求,从而生成更加逼真、有氛围的图像。

3.8色彩色调 (Color)

使用颜色可以创建不同的视觉风格和氛围。例如,暖色调的颜色可以营造出温馨、热情和亲密的感觉,而冷色调的颜色可以营造出冷静、清爽和疏远的感觉。中性色则可以为其他颜色提供一个稳定的背景,帮助构建视觉平衡。

3.9 灯光 (Lighting)

灯光在Prompt中也扮演着非常重要的角色,它可以影响画面的整体效果和氛围。灯光可用于创造不同的效果和氛围,例如照亮人物面部的细节、增强物体的纹理和阴影等等。

3.10反向提示词 (Negative Prompt)

负向提示词通常是指那些不希望出现在设计中的元素或属性。这些元素或属性可能包括低质量图像(Low-quality images)、丑陋的样式(ugly style)、水印(watermarks,)、标志(logos)、不适当(nsfw)等等。

四、Prompt进阶

4.1长度 (length)

在默认状态下,输入框写着 “0/75”,但这并不意味着只能输入 75 个 token。 Stable Diffusion并没有这方面的限制,但 CLIP 算法每组不能超过 75 个 token。当每组超过75个token 时,将会形成一个新的 token 组,输入框变成"75/150",并且这个过程会一直持续下去,直到内存耗尽。

在提示词的长度方面,需要与你的画面的分辨率以及采样步数相匹配。如果不匹配,例如你将分辨率和采样步数设置得非常高,但结果你的描述词很短,比如只有一个女孩,那么模型很可能没有地方发挥,会给你生成多头或多手等不自然的表达方式。

4.2词序 (word order)

词序对于画面生成结果具有重要的影响。在默认情况下,每个提示词的权重都是 1,并且从前面到后面依次减弱。这意味着,如果你将人物标签放在前面,那么人物将成为核心,场景将变得相对较小;如果你将场景标签放在前面,那么人物将变得相对较小。

因此,选择正确的词序可以帮助我们更有效率地炼丹。例如,如果我们想要创建一个较大的场景,我们可以将场景标签放在前面,而将人物标签放在后面。这样可以确保人物在场景中变得较小,但场景本身变得较大。

4.3 权重 (weight)

模型会依照概率来选择性执行,如提示词之间有冲突,系统会根据权重确定的概率来随机选择执行哪个提示词。

权重系数是可以改变提示词特定部分的比重。

  • (black hair) - 将权重提高 1.1 倍。
  • ((black hair)) - 将权重提高 1.21 倍 (= 1.1 * 1.1),乘法的关系,叠加权重。
  • [black hair] - 将权重降低 0.9 倍。
  • [[black hair]]- 将权重降低 0.81 倍,乘法的关系,叠加权重。
  • (black hair:1.5) - 将权重提高 1.5 倍。
  • (black hair:0.25) - 将权重减少为原先的 0.25 倍。
  • (black hair) - 在提示词中使用字面意义上的 () 字符,不具有权重作用。

需要注意的一个事情就是权重增加通常会占一个提示词位,应当避免加特别多括号,可选中指定权重值。

4.4 提示编辑 (Prompt editing)

提示编辑允许你开始先使用一个提示词,但在生成过程中间切换到其他提示词。基本语法包含以下几种:

  • [to:when] 在指定步数后添加 to 到提示词。
  • [from::when] 在指定步数后从提示词中删除 from。
  • [from:to:when] 在指定步数后将 from 替换为 to。

其中 from 与 to 是替换前后的提示词,when 表示替换时机。如果 when 是介于 0 和 1 之间的数字,则它指采样周期步数的百分比。如果它是一个大于零的整数,那么这代表它进行切换之前的步数。
举个例子:

  • [mouse:10] 在第 10 步之后开始渲染老鼠。
  • [cat::10] 在第 10 步之后不再渲染猫,其他元素继续渲染。
  • [cat🐭10] 假定采样步数为 30,在前 10 步渲染猫,在后面 20 步渲染老鼠。
  • [cat🐭0.5] 假定采样步数为 30,在前 15 步渲染猫,在后面 15 步渲染老鼠。

4.5 交替渲染 (Alternating rendering)

每隔一步就更换渲染对象的方式,可添加多个对象,不局限于2个对象
基本语法:

  • [A|B] 第一步渲染A,第二步渲染B,第三步渲染A,依次循环
  • [A|B|C] 第一步渲染A,第二步渲染B,第三步渲染C,第四步渲染A依次循环

举个例子:

输入 [red|blue] hair,对发色进行融合

4.6 可组合扩散 (Composable diffusion)

AND,此处一定要谨记,是全部大写,不要小写,小写没有这个作用。
举个例子:a girl AND a cat

需要注意是,如果你的某个提示词权重低于0.1,那么该提示词对应的要素就很难产生影响,a cat AND a mouse:0.03 将产生与 a cat 基本相同的输出

参考论文:
https://energy-based-model.github.io/Compositional-Visual-Generation-with-Composable-Diffusion-Models/

4.7 提示矩阵 (prompt matrix)

使用 | 分隔多个 Tag,程序将为它们的每个组合生成一个图像,并将所有的结果最后拼成矩阵图的形式方便我们观察对比效果。

例如,如果使用 “a busy city street in a modern city|illustration|cinematic lighting”,则可能有四种组合:

“a busy city street in a modern city” - 这是一种仅包含第一个 Tag 的组合。
“a busy city street in a modern city, illustration” - 这是一种包含第一个和第二个 Tag 的组合。
“a busy city street in a modern city, cinematic lighting” - 这是一种包含第一个、第二个和第三个 Tag 的组合。
“a busy city street in a modern city, illustration, cinematic lighting” - 这是一种包含第一个、第二个、第三个和第四个 Tag 的组合。

4.8 提示词相关性 (CFG Scale)

CFG 是一种无分类器引导的生成技术,其前身是分类器引导。CFG Scale 是用来调整图像与提示词的相关性。值越高,提示词对最终生成结果的影响越大,相关性越高,但也可能会降低图像质量。因此,可以通过增加采样步骤来抵消这种影响。过高的 CFG Scale 可能会导致粗犷的线条和过锐化的图像,而较低的值则可能产生更有创意的结果。一般来说,我通常会将 CFG Scale 设置在 7-12 之间。

五、Prompt(提示词)手册

在文末给新人准备了一份OpenArt整理的Stable Diffusion提示词手册,里面收纳整理了大量实用提示词,适用于广大AI绘画者,需要的文末获取:

在这里插入图片描述
在这里插入图片描述

篇幅有限,这里就不一一展示了,有需要的朋友可以点击下方的二维码进行领取!

在这里插入图片描述

  • 23
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值