要用好 Stable Diffusion,最最重要的就是掌握 Prompt(提示词)。由于提示词对于生成图的影响甚大,所以被称为魔法,用得好惊天动地,用不好魂飞魄散 。

因此本篇整理下提示词的语法(魔法咒语)、如何使用(如何吟唱)、以及一些需要注意的细节问题(避免翻车)。

基础语法

在提示词中我们使用 , 对提示词进行分割,而每个部分的提示语可以有不同类型,比如:自然语法、标签语法、emoji 或者是颜文字。

自然语法

Stable Diffusion 的提示词支持自然语法,比如告诉它 a girl is touching a cat 可以得到如下图片:

也支持一定程度的中文、日文,比如 睡觉的狗

但是中文理解力支持十分有限,所以一般都会使用英文来作为提示词。

标签语法/Tag

除了自然语法外, 提示词中最常用的是标签语法,以单词或短语来给 AI 做提示,比如 masterpiece, best quality, 1dog, 1cat, sun, grass

会得到一张有狗、猫、太阳和草坪的图片。

emoji

除了一般语言外,我们还可以使用 emoji 来作为提示词,比如使用 可以让 Stable Diffusion 画出这样的表情:

使用 可以得到这样的图:

想要使用 emoji 的可以参考 这个 wiki 查看各个 emoji 代表的意思。

颜文字

此外 Stable Diffusion 还支持使用颜文字来作为提示词,比如可以使用 XD 来让人物笑起来:

T_T 让人物表现伤心:

如果想要用颜文字可以参考 这个 wiki 查看颜文字代表的意思。

虽然 Stable Diffusion 的提示词支持多种写法,但是日常使用一般建议

  1. 标签语法为主,试需求使用自然语法
  2. 尽量使用英文而不是中文作为提示词
  3. 除了一些常见的提示词所有 model 都支持外,很多提示词需要 model 的支持
  4. 提示词一定要注意拼写,一旦拼写错误或者是用到了 AI 无法识别的提示词 AI 将会将其拆解成他可以理解的部分,甚至可能拆分成字母
  5. emoji 和颜文字实际测试使用效果很差,可能是我所使用的 model 的原因,一般不建议使用
  6. 提示词尽量越清晰越好

权重语法

除了基本语法外,我们还可以使用一些语法来调节每个提示词的权重。调节权重包含以下几种方式:

  1. 默认情况下越靠前的提示词权重越高
  2. 通过 (提示词:权重数值) 手动设置权重,比如: (1cat:1.3),(1dog:0.8)
  3. 通过 () {} [] 设置权重:
    • {提示词} 等价于 (提示词:1.05)
    • (提示词) 等价于 (提示词:1.1)
    • [提示词] 等价于 (提示词:0.952)1/1.05

() {} [] 语法可嵌套使用,比如 (((提示词))) 就等价于 (提示词:1.331)

一般情况下建议使用 (提示词:权重数值) 语法,可读性、可控性更高。

注意一般情况下权重不建议超过 1.5,不然会对画面造成巨大影响。

模型引用语法

除了基础提示语外,类似于 Lora 模型也是需要使用提示语来饮用的,语法: <lora:模型⽂件名:权重>

比如如果要使用知名的模型墨心,提示词是这样的 <lora:MoXinV1:1>

需要注意模型的名称会按照实际的文件名来,可直接使用 WebUI 中的 Lora 面板来生成。

进阶语法

OR

OR 语法一般用于提示词的混合,比如在绘制头发时通过 [purple|sliver|green]_hair 可以绘制出这样的混色的发色:

也可以搭配 multicolor hair 生成这样的头发:

也可以使用 [horse|bird] 来生成长翅膀的马,不过细节很难控制:

AND

AND 语法和 OR 语法十分类似,实战下来效果也差不多,可能是我姿势不对。

比如 purple hair AND sliver hair AND green hair 可以生成这样的发色:

此外 AND 语法还支持为某个片段增加权重,比如 gold hair :1.2 AND sliver hair :0.8 AND green hair 可以让发色更多金色:

使用 bird AND lion AND horse 可以生成:

emm,不知道为啥鸟飞一边去了。

不过据说 DDIM 采样 不支持 AND 语法。

步骤控制语法

Stable Diffusion 还支持通过步骤控制语法来让某些元素从第几步开始绘制,到第几步结束。

比如 [cat:10] 指从第十步开始画猫,而 [cat::20] 表示在第二十步结束画猫。也可以组合使用,比如: [[cat::20]:10] 代表从第十步开始第二十步结束。

关键字占比控制

此外还有通过占比语法控制关键字的绘制占比的。

比如 [dog:girl:0.9] 表示总绘制步骤的前 90% 画狗,后面画女孩,而 [dog:girl:30] 则表示前三十步画狗,后面画女孩。

魔法宝典

网上有很多整理好的提示词字典,可以用于快速创建出不同的风格,有需要的可以进行参考。

AI 绘画咒语入门 - Stable Diffusion Prompt 语法指南 【成为初级魔导士吧!】的更多相关文章

  1. 贝叶斯公式由浅入深大讲解—AI基础算法入门

    1 贝叶斯方法 长久以来,人们对一件事情发生或不发生的概率,只有固定的0和1,即要么发生,要么不发生,从来不会去考虑某件事情发生的概率有多大,不发生的概率又是多大.而且概率虽然未知,但最起码是一个确定 ...

  2. 贝叶斯公式由浅入深大讲解—AI基础算法入门【转】

    本文转载自:https://www.cnblogs.com/zhoulujun/p/8893393.html 1 贝叶斯方法 长久以来,人们对一件事情发生或不发生的概率,只有固定的0和1,即要么发生, ...

  3. C#快速入门笔记(1)——基础语法

    C#快速入门笔记(1)——基础语法 总体框架:

  4. 075 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 07 综合案例-数组移位-主方法功能4的实现

    075 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 07 综合案例-数组移位-主方法功能4的实现 本文知识点:综合案例-数组移位-主方法功能4的实现 说明:因为 ...

  5. 074 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 06 综合案例-数组移位-主方法功能3的实现

    074 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 06 综合案例-数组移位-主方法功能3的实现 本文知识点:综合案例-数组移位-主方法功能3的实现 说明:因为 ...

  6. 073 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 05 综合案例-数组移位-主方法功能1和2的实现

    073 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 05 综合案例-数组移位-主方法功能1和2的实现 本文知识点:综合案例-数组移位-主方法功能1和2的实现 说 ...

  7. 072 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 04 综合案例-数组移位-在指定位置处插入数据方法

    072 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 04 综合案例-数组移位-在指定位置处插入数据方法 本文知识点:综合案例-数组移位-在指定位置处插入数据方法 ...

  8. 071 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 03 综合案例-数组移位-显示数组当中所有元素的的方法

    071 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 03 综合案例-数组移位-显示数组当中所有元素的的方法 本文知识点:综合案例-数组移位-显示数组当中所有元素 ...

  9. 070 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 02 综合案例-数组移位-从键盘接收数据

    070 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 02 综合案例-数组移位-从键盘接收数据 本文知识点:综合案例-数组移位-从键盘接收数据 说明:因为时间紧张 ...

  10. 069 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 01 综合案例-数组移位-案例需求

    069 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 01 综合案例-数组移位-案例需求 本文知识点:综合案例-数组移位-案例需求 说明:因为时间紧张,本人写博客 ...

随机推荐

  1. css卡片样式

    .view-1-user-card { margin: 20px 5% 10px 5%; height: 124px; width: 90%; background: linear-gradient( ...

  2. springBoot的全局异常处理

    GlobalException.java package com.bank.util; import com.bank.exception.ContentEmpyException; import c ...

  3. gstreamer样例

    #!/bin/bash xrandr -s 0 --output DSI-1 xrandr -s 0 --output HDMI-1 xrandr --fb 1024x600 --output DSI ...

  4. 让VMWARE ESXI 虚拟机开机进入BIOS设置

    VMware vSphere Client 里面选中需要从光驱启动的客户机,单击右键选择 "编辑设置", 在虚拟机属性的窗口里面选择 "选项 "选项卡 ,单击& ...

  5. BlenderGIS记录

    blender GIS 的插件名:"3Dview:blenderGIS" 具体使用方法看文档. 选择地图时选择bing地图会快一点.如果能挂梯子可以选择google地图 shift ...

  6. WordPress标题分隔符”-“被转义为“&#8211”怎么办?

    按照百度搜索资源平台<百度搜索网页标题规范:让标题回归标题本身>百度官方文档参考,如果WordPress标题里出现不规范"– 2.停止wptexturize转义任何字符 add_ ...

  7. PHP 二维按照某个字段对数组排序

    function arraySort($arr, $keys, $type = 'asc') {//二维按照某个字段对数组排序 $keysvalue = $new_array = array(); f ...

  8. Go_day03

    Go基础语法 数组 数组是具有相同唯一类型的一组以编号且长度固定的数据项序列.类型可以是任意基本类型或者自定义类型. 数组一旦被定义后,大小不能被改变 func main() { //定义一个数组 v ...

  9. mysql对汉字排序

    问题: 编写order by排序时,如果字段是汉字的话,排序会失效. 如: SELECT * FROM user ORDER BY age ASC,username DESC 此时按照username ...

  10. NameNode启动问题:Failed to load an FSImage file!

    NameNode启动问题:Failed to load an FSImage file! 2022-01-23 13:35:53,807 FATAL org.apache.hadoop.hdfs.se ...