AI 绘画咒语入门 - Stable Diffusion Prompt 语法指南 【成为初级魔导士吧!】
要用好 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 的提示词支持多种写法,但是日常使用一般建议
- 以 标签语法为主,试需求使用自然语法
- 尽量使用英文而不是中文作为提示词
- 除了一些常见的提示词所有 model 都支持外,很多提示词需要 model 的支持
- 提示词一定要注意拼写,一旦拼写错误或者是用到了 AI 无法识别的提示词 AI 将会将其拆解成他可以理解的部分,甚至可能拆分成字母
- emoji 和颜文字实际测试使用效果很差,可能是我所使用的 model 的原因,一般不建议使用
- 提示词尽量越清晰越好
权重语法
除了基本语法外,我们还可以使用一些语法来调节每个提示词的权重。调节权重包含以下几种方式:
- 默认情况下越靠前的提示词权重越高
- 通过
(提示词:权重数值)手动设置权重,比如:(1cat:1.3),(1dog:0.8) - 通过
() {} []设置权重:{提示词}等价于(提示词: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 语法指南 【成为初级魔导士吧!】的更多相关文章
- 贝叶斯公式由浅入深大讲解—AI基础算法入门
1 贝叶斯方法 长久以来,人们对一件事情发生或不发生的概率,只有固定的0和1,即要么发生,要么不发生,从来不会去考虑某件事情发生的概率有多大,不发生的概率又是多大.而且概率虽然未知,但最起码是一个确定 ...
- 贝叶斯公式由浅入深大讲解—AI基础算法入门【转】
本文转载自:https://www.cnblogs.com/zhoulujun/p/8893393.html 1 贝叶斯方法 长久以来,人们对一件事情发生或不发生的概率,只有固定的0和1,即要么发生, ...
- C#快速入门笔记(1)——基础语法
C#快速入门笔记(1)——基础语法 总体框架:
- 075 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 07 综合案例-数组移位-主方法功能4的实现
075 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 07 综合案例-数组移位-主方法功能4的实现 本文知识点:综合案例-数组移位-主方法功能4的实现 说明:因为 ...
- 074 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 06 综合案例-数组移位-主方法功能3的实现
074 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 06 综合案例-数组移位-主方法功能3的实现 本文知识点:综合案例-数组移位-主方法功能3的实现 说明:因为 ...
- 073 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 05 综合案例-数组移位-主方法功能1和2的实现
073 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 05 综合案例-数组移位-主方法功能1和2的实现 本文知识点:综合案例-数组移位-主方法功能1和2的实现 说 ...
- 072 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 04 综合案例-数组移位-在指定位置处插入数据方法
072 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 04 综合案例-数组移位-在指定位置处插入数据方法 本文知识点:综合案例-数组移位-在指定位置处插入数据方法 ...
- 071 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 03 综合案例-数组移位-显示数组当中所有元素的的方法
071 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 03 综合案例-数组移位-显示数组当中所有元素的的方法 本文知识点:综合案例-数组移位-显示数组当中所有元素 ...
- 070 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 02 综合案例-数组移位-从键盘接收数据
070 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 02 综合案例-数组移位-从键盘接收数据 本文知识点:综合案例-数组移位-从键盘接收数据 说明:因为时间紧张 ...
- 069 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 01 综合案例-数组移位-案例需求
069 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 01 综合案例-数组移位-案例需求 本文知识点:综合案例-数组移位-案例需求 说明:因为时间紧张,本人写博客 ...
随机推荐
- ABPvNext修改密码强度
ABPvNext 5.0之后,一些原有的修改密码强度的办法已经被抛弃无法正确使用.目前亲测有效的办法只有通过配置管理修改密码强度. 这里配置文件设置配置的方式,更多方法,可参见官方文档中的Settin ...
- 备份linux系统日志脚本
#!/bin/bash#script_name bkup_log.sh#7 0 * * 1 cd /home/tools/;./bkup_log.sh >& /dev/nullproce ...
- sed随笔
sed [-hnV] [-e<script>][-f<script文件>] [文本文件] 参数说明: -e<script>或--expression=<sc ...
- Jenkins搭建项目过程中遇到的问题解决方法
1.运行时,报没有权限 报错: rm -rf '/root/jar/*' rm: cannot remove '/root/jar/*': Permission denied 解决方法: 将Jenki ...
- ArrayList学习
核心源码 package java.util; import java.util.function.Consumer; import java.util.function.Predicate; imp ...
- 在app中如何使weib-view不铺满全屏,自适应页面
// #ifdef APP-PLUS //自建webview var currentWebview = this.$scope.$getAppWebview(); var height = this. ...
- 《MySQL是怎样运行的》第六章小结
- 使用vCenter对ESXi主机进行补丁升级
使用vCenter 对ESXi 主机进行补丁升级 背景说明:公司内部有许多ESXi主机需要进行补丁升级,记录一下通过vCenter对ESXi主机进行补丁升级的过程,也可以使用esxcli命令行方式: ...
- DVWA-Command Injection(命令执行)
命令执行漏洞,顾名思义,服务端在进行一些网站的操作.管理的时候,需要调用系统命令,如果对传入的命令参数没有进行一些过滤,可以直接执行服务器系统的命令终端 LOW 审计源码 <?php // 判断 ...
- Spring--AOP简介+入门案例
AOP简介 面向切面编程:在不惊动原始设计的基础上,进行功能增强 各个要应用该功能的对象叫做连接点,那个功能叫做通知,表面上的代码没有发生变化,私下里发生变化的连接点,会出现切入点,切入点与通知通过切 ...