AI绘图:使用Stable Diffusion Prompt(提示词)语法

2023年11月6日 904点热度 1人点赞 0条评论

前言

Stable Diffusion 的 Prompt分为两种:

  1. Prompt 正面提示,用于描述图像中需要渲染的内容
  2. Negative Prompt 负面提示,用于描述图像中禁止出现的内容

在编写Prompt 和Negative Prompt的时候,需要知道Stable Diffusion在消化提示词的时候会根据提示词中的标签权重来区分那些标签是重要的,哪些标签是其次的,这篇文章会记录一些用于调整权重和渲染步骤的语法。

分隔符

描述一幅图像时可能会从图像的多个角度去描述,比如背景,画中的人物,动作,天气等等。Stable Diffusion无法理解自然语言,它只接受一个个标签,这些标签需要用英文的逗号分割,这就是分隔符。

被分割的标签,从左到右,在最左边的标签会获得更高的权重。然后依次向右递减。

比如你的提示词前面的标签都是描述背景的,而描述人物的提示词放在了后面,那么AI在生成图片的时候会着重的刻画图片的背景。

并且左边的标签可能使右边的标签无效,有的时候单独调节标签的权重不起作用,这个时候就可以调整标签在Prompt中的位置。

连接符

  1. and 使用and连接的标签他们的权重是一致的。
  2. +加号
  3. |表示混合,比如想生成一个头发颜色为红色和白色混合的发色,那么可以使用|连接两个发色的标签
  4. _下划线

不同的连接符会生成不同的效果,具体效果比较难形容,可以在使用的时候具体测试。

权重运算符

权重表示标签在整个Prompt中的重要性,Stable Diffusion 会对重要的标签着重描述

  • 格式 (tag:权重值) 给标签设置一个固定的权重值
  • 格式 (tag) 给标签纸增加0.1的权重
  • 格式 {tag} 给标签增加0.05的权重
  • 格式 [tag] 给标签减掉0.1的权重
  • 格式 (((tag))) 大括号和中括号也可以使用相同的格式,这个格式表示权重相乘,三层括号表示标签的权重为 1.11.11.1

使用LoRA 或者 Hypernetworks 模型

使用尖括号包裹

格式为\<类型:模型名称:权重>

示例:\ 表示使用名称为xxxxLora_name的模型,并且给予0.1的权重。

交替渲染

使用方框号 [] 可以是使标签分步骤的交替渲染

  • [A:B:step] 代表渲染A效果到多少进度,然后开始渲染B。例如[red hair:yellow hair:0.2],渲染红色到20%进度渲染黄色。需要注意的是step > 1 时表示该组合在前多少步时做为 A 渲染,之后作为 B 渲染。step < 1 时表示迭代步数百分比。
  • [A:0.5] 这样写的含义是从50%进度开始渲染A
  • [A::step] 渲染到多少进度的时候去除A

分步绘制

从左到右依次是

  1. yellow hair
  2. [red hair:yellow hair:0.2]
  3. [red hair:yellow hair:0.4]
  4. red hair

可以看出渲染步骤对图像生成的影响。

大脸猫

这个人虽然很勤快,但什么也没有留下!

文章评论