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 综合案例-数组移位-案例需求 本文知识点:综合案例-数组移位-案例需求 说明:因为时间紧张,本人写博客 ...
随机推荐
- Matlab %伍
第五章:初级绘图进阶 Special Plots loglog semilogx semilogy plotyy hist bar pie polar Logarithm Plots x = lo ...
- centos安装k8s
1.确保每台机器上有docker http://get.daocloud.io/#install-docker 2.关闭 每台机器上的swap,selinux swapoff -a setenforc ...
- SpringSecurity登录验证,多个用户表
在开始之前我想感叹一句,技术久了不回头看看真的会忘记的,这次公司让我重新开发一个程序,项目架构为单体多模块开发,其中有个需求就是需要不同用户表进行登录,且不同表的用户名.手机号都可以重复. 这样的需求 ...
- Mongodb between 时间范围
db.getCollection("Order").find({ "Supplier.ServiceCode": "CNI", " ...
- 基于Centos7 minimal 加固
一.用户帐号和环境-----------------------. 2 二.系统访问认证和授权--------------------- 3 三.核心调整--------------------- 4 ...
- Nodejs 发送 TCP 消息的正确姿势
最近使用 NODE-RED 跟 TCP 打交道.NODE-RED 里内建了一个节点叫"tcp-out",看文档呢使用这个节点可以很方便的把 payload 用 TCP 协议发送出去 ...
- Javaweb学习笔记第四弹
JDBC API详解 1.DriverManager作用: 1.注册驱动 registerDriver 2.获取数据库连接 getConnection 参数:1.url jdbc:mysql://lo ...
- java 中文繁简体转换工具 opencc4j 使用介绍 1.8.0
Opencc4j Opencc4j 支持中文繁简体转换,考虑到词组级别. 在线体验 Features 特点 严格区分「一简对多繁」和「一简对多异」. 完全兼容异体字,可以实现动态替换. 严格审校一简对 ...
- svn提交规范
本文档参考了Git提交规范,旨在规范使用SVN进行代码版本管理时的提交操作. 提交前的准备 1. 检查代码 在提交代码前,请先进行必要的代码检查,确保代码的正确性.可读性和可维护性.可以使用代码质量管 ...
- CF1801B题解
CF1801B题解 传送门 更好的阅读体验 简化题意:有 n 个商店,每个商店卖 a,b 两种商品,价格分别为 \(a_i,b_i\),你需要在每个商店买一个商品,并且不能在所有商店都买同一种商品,最 ...