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 综合案例-数组移位-案例需求 本文知识点:综合案例-数组移位-案例需求 说明:因为时间紧张,本人写博客 ...
随机推荐
- kettle连接mysql报Communications link failure
添加2个命名参数 1.autoReconnect=true 2.useSSL=false
- SQL Server触发器备份后还原
测试环境SQL Server 2012 select a.definition , b.name,b.is_disabled from sys.sql_modules a inner join sys ...
- Tomcat源码部署
1.下载源码 https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.54/src/apache-tomcat-9.0.54-src.zip 2.解压 3.在解压后 ...
- 九九乘法表打印记一次al面试
for (int i = 1; i <= 9; i++) { for (int j = 1; j <= i; j++) { System.out.print(i + "x&quo ...
- for in循环的坑
num本来数个数组,但是for in把数组原型上的也遍历(偶尔会)记录一下坑,数组还是for循环,for in还是用在对象上好
- redhat安装mysql8.0
redhat 安装mysql 8.0 * 看mysql官方文档 * 安装epel源 * 安装mysql源 参考文章 redhat7通过yum安装mysql5.7.17教程:https://www.jb ...
- C#软件增加混淆防止反编译
使用Visual Studio新建一个名为"test"的命令行项目输入如图所示的代码并生成项目,这个项目很简单,就是程序启动时,调用"GetGUID"函数返回一 ...
- JDMasking v0.1.0-beta 发布
JDMasking 全称是jdbc data masking,是一款零代码修改.无重启.基于JDBC的动态数据脱敏软件. JDMasking 主要对实现jdbc的驱动进行字节码的增强,支持对运行中的程 ...
- 写.jsp项目有感
本次练习了一个简单的登录界面 我觉得在写这种类型的界面的时候,需要将各个需求分开,就以这次的登录界面为例展开说说 1.登录界面 输入框的居中问题.登录按钮的跳转问题.验证码图片的随机问题.快速注册的跳 ...
- Python 爬虫入门(一)环境搭建
一.梳理图 Python是个啥.为啥学习.作用域,随便查一下什么信息都有 本人目前是Java开发,在学习爬虫时发现在爬虫方面,Python比Java简单.方便.实用很多,不是不能做,只是单纯的适合 在 ...