探索AIGC领域的体验设计师
对体验过AI绘画的朋友们来说,提示词可以说是耳熟能详了,目前市面上的AI绘图工具基本都是围绕着文生图的基本功能展开的。不过相较于其他工具,Stable Diffusion的在咒语编写上会具有技巧性,相信大家在学习过程中都遇到过类似问题:复制别人的咒语但效果却很差、咒语的控图效果不理想、加了关键词但绘图结果却没有体现等。
历史文章地址:
01、Stable Diffusion学习指南【初识篇】
02、Stable Diffusion学习指南【安装篇】
在Stable Diffusion中,有文生图和图生图2种绘图模式,今天我们先来看看如何使用文生图来绘制我们想要的图片。下面是Stable Diffusion文生图界面的基础板块布局,如果你此前更换过主题相关的扩展插件,界面的功能布局可能会有所区别,但主要操作项都是相同的。
关于模型需要讲解的内容有很多,我会在后面的文章中单独进行介绍,今天我们重点关注提示词的写法以及各种设置参数的功能和含义,准备好了吗,下面让我们正式开始吧~
大家都知道,如今的AI工具大多是通过提示词来控制模型算法,那究竟什么是提示词?
对于人类而言,在经过多年的学习和使用后,我们只需简单的几句话便能轻松的沟通和交流。但如今的人工智能还是基于大模型的数据库进行学习,如果只是通过简单的自然语言描述,没有办法做到准确理解。为了更好的控制AI,人们逐渐摸索出通过反馈来约束模型的方法,原理就是当模型在执行任务的时候,人类提供正面或负面的反馈来指导模型的行为。而这种用于指导模型的信息,就被统称为Prompt提示词。
如今的AI工具都是基于底层大模型进行使用的,提示词的本质其实是对这个大模型的深入挖掘和微调,我们可以将它简单理解为人类和AI沟通的桥梁,因为模型反馈结果的质量在很大程度上取决于用户提供的信息量。当然这个问题主要还是底层大模型训练不够充分的缘故,像现在很多针对特定风格训练的应用级绘图模型,即使只有寥寥几个词也能绘制出优美的画作。如今很多企业为此还设立了单独的提示工程师岗位,在人工智能领域也有单独的一门学科叫做Prompt Engineering 提示词工程。
微软官方在最近也推出了一份完整的提示工程操作指南,感兴趣的朋友可以去深入学习一下:
如今,大部分模型都是基于英文训练,因此输入的提示词大多只支持英文,中间也会夹杂了各种辅助模型理解的数字和符号。由于AI绘图无需经历手绘、摄影等过程就能凭空生成图片,国内最早一批AI爱好者贴切的将AI绘画过程比作施展魔法,提示词就是我们用来控制魔法的咒语,参数就是增强魔法效果的魔杖。
相较于简单易上手的Midjourney,Stable Diffusion的咒语上除了prompt(正向关键词)外,还有Negative prompt反向关键词。顾名思义,正向提示词用于描述想要生成的图像内容,而反向关键词用于控制不想出现在图像中的内容,比如目前很多模型还无法理解的手部构造,为了避免出现变形,我们可以提前在反向关键词中输入手部相关的提示词,让绘图结果规避出现手的情况。不过目前很多反向提示词都已经集成到Embedding模型中,使用时只需输入模型触发词即可,在后续的文章中我会详细介绍。
但如果想成为专业的魔法师,遵循一套标准的书写规范还是很有必要的:一方面完整且内容丰富的提示词可以让我们更好的控制最终出图效果,另一方面在后期微调过程中,也可以快速修改和验证特定关键词对出图结果的影响。
下面我会为大家介绍如何编写一段优雅的魔法咒语。
一段能被模型清楚理解的好咒语首先应该保证内容丰富充实,描述的内容尽可能清晰。这个过程就像是甲方给我们布置任务,如果只说设计一张图,不说图中放什么,也不提图片是用来干嘛,我们会一脸懵逼无从下手。同理,Stable Diffusion在绘制图片时需要提供准确清晰的引导,提示词描述的越具体,画面内容就会越稳定。
需要注意的是,公式只是参考,并非每次编写咒语我们都要包含所有内容,正常的流程应该是先填写主体内容看看出图效果,再根据自己的需求来做优化调整。
下面我们具体看下每个部分的信息,先说主体内容
,这里是用于描述画面的主体内容,比如说是人或者动物,人物的着装、表情,动物的毛发、动作等,物体的材质等。一般同一画面中的主体内容不要超过2个,Stable Diffusion对多个物体的组合生成能力较弱,如果对画面内容有特定要求,可以先挨个生成主体素材进行拼合,然后用controlNet插件约束进行出图。
其次是环境背景
,这个很好理解,就是设定周围的场景和辅助元素,比如天空的颜色、四周的背景、环境的灯光、画面色调等,这一步是为了渲染画面氛围,凸显图片的主题。
构图镜头
主要用来调节画面的镜头和视角,比如强调景深,物体位置等,黄金分割构图、中全景、景深。
图像设定
是增强画面表现力的常用词汇,我们经常在一些惊艳的真实系AI图片中看到比如增加细节、摄影画质、电影感等词,可以一定程度上提升画面细节。但注意最终图像的分辨率和精细度主要还是由图像尺寸来决定的,而本地运行的Stable Diffusion支持的绘图尺寸很大程度决定于显卡性能。如果电脑显卡算力跟不上,再多的关键词也弥补不了硬件差距,当然在Stable Diffusion中也有一些实现高清修复的小技巧,我会在后面的文章中为大家介绍。
最后就是参考风格
,用于描述画面想呈现的风格和情绪表达,比如加入艺术家的名字、艺术手法、年代、色彩等。其实参考风格关键词在Stable Diffusion中使用的并不多,平时我们出图,多数情况下都是先选好特定风格的模型,然后根据模型作者提供的触发词强化风格。因为在Stable Diffusion中,图像风格基本是由模型决定的,如果此前该模型并没有经过艺术风格关键词的训练,是无法理解该艺术词含义的。
因此,大家如果对图像风格有要求,最好还是直接使用对应风格的模型来绘图,会比单纯使用提示词有效的多。
看到这里,你已经掌握了Stable Diffusion提示词的基础书写规则。但WebUI的强大并不止于此,作者“贴心”的为我们预设了很多更加高阶的玩法,掌握这些技巧可以让你更高效的控制模型出图,下面就是本篇文章的高能部分,记得做好笔记哦~
其中有些字符平时使用频率不高,这里也给大家提供键盘上对应字符按键的位置标注,以作参考。
先来看看强调关键词,这应该是使用最为频繁的语法了。强调关键词是依赖括号和数值来控制特定关键词的权重,当权重数值越高,说明模型对该关键词更加重视,在运行过程中模型就会着重绘制该部分的元素,在最终成像时图片中就会体现更多对应信息。反之数值越低,则最终图片中对应内容会展示的更少。
这里还有个快捷操作的小技巧,就是选中对应关键词后,按住ctrl+⬆️ / ⬇️,可以快速增加和减少权重数值,默认每次修改0.1,可以在设置中修改默认数值。
分步绘制在官方文档中的称呼是渐变绘制,但实际体验下来感觉叫做分步绘制会更好理解。该语法的原理是通过参数来控制整个绘制过程中用于绘制特定关键词的步数占比,语法格式如下:
分布绘制可以控制画面中不同元素的融合比例,在上面的图片中可以看到,随着沙漠在采样迭代步数中占比的提升,接着绘制的森林元素已很难影响画面主体内容,基本都是沙漠元素。
停止绘制和分步绘制的原理相同,都是控制模型运行时绘制特定内容的步数占比。两者的区别在于:停止绘制只针对画面中单个关键词,并且是先绘制特定元素再移除,字符用的是2个冒号。
因此,对于需要优先展示的重要内容,大家尽量控制在迭代前期便开始绘制,否则后续很难在画面中体现。
打断的语法非常简单,也很好理解,就是在提示词之间加上关键词【BREAK】,它的作用时打断前后提示词的联系,在一定程度上减少提示词污染的情况。
融合语法和打断正好相反,是将前后提示词的内容联系起来,模型在绘制时就会关联前后的元素特征,最终呈现出具备融合图像的特征。它的关键词是【AND】
我们都知道黄色和绿色融合会呈现出草绿色,而模型在训练时有针对该内容进行深度学习,因此当【AND】链接前后关键词后就会将其以草绿色来理解,最终呈现出融合颜色的效果。
融合语法是非常强大的功能,颜色混合是其中一个方面的应用,大家在日常使用时可以灵活尝试。
除了融合外,还有一种语法也可以实现关键词融合的效果,那就是交替绘制。语法格式如下:
虽然同样是融合元素特征,但在原理上交替绘制和融合有本质区别:【交替】每步绘制时只理解单独的关键词,而【融合】是将前后的关键词一起来理解,因此交替最终呈现的效果更多是融合主体内容的画面特征,而无法像融合一样深度理解关键词之间的联系。我们平时在使用时一般主要也是使用融合语法【AND】居多,交替绘制更多是用于绘制比较猎奇的克苏鲁风格图像等。
最后就是矩阵排列的语法,该语法主要用于实现批量出图的效果,提高绘图效果。语法格式如下:
最后,我们再来看看文生图板块另一个十分重要的部分:参数设置。前面有提到参数的主要作用是设置图像的预设属性,这里的意思是WebUI作者将原本Stable Diffusion代码层常用于控制图像的参数进行了提取,通过滑块等可视化表单的方式来进行操控,这样就无需靠输入提示词来进行控制,使用起来更加便捷高效。
需要注意的是控制图像的参数其实有很多,这里只是作者预设的常用控制项,还有一些控图方法要装载其他脚本插件才能使用,我会在后面的教程中为大家介绍。
下面就跟我一起来看看这些预设项的功能和使用技巧吧~
首先就是我们前面提到的采样迭代步数,在【初识篇】中我们有介绍扩散模型的绘制原理是逐步减少图像噪音的过程,而这里的迭代绘制步数就是噪音移除经过的步数,每一步的采样迭代都是在上一步的基础上绘制新的图片。
理论上来说,迭代步数越高表示去噪的过程越长,最终呈现的图像效果也就越精细,但实际上我们通常将步数都控制在40步以内。首先步数过小会导致图像内容绘制不够完整,很容易出现变形、错位等问题,而步数在迭代到一定次数时画面内容已基本确定(30步左右),后续再增加步数也只是优化微小细节,此外过高的步数也会占用更多资源,影响出图速度。
因此建议大家平时使用时,将采样迭代步数控制在20~30的范围内即可。
在之前的文章里我们知道Stable Diffusion模型的图像生成器里包含了 U-Net神经网络 和 Scheduler采样算法 2个部分,其中采样算法就是用来选择使用哪种算法来运行图像扩散过程,不同的算法会预设不同的图像降噪步骤、随机性等参数,最终呈现的出图效果也会有所差异。
下面的图中罗列了同一组提示词下所有的不同采样算法生成的图像对比,可以发现整体出图效果并没有太大差异,在实际使用时,给大家提供以下参考建议:
- 优先使用模型作者推荐的算法,比如深渊橘的作者最推荐使用的就是 DPM++ SDE Karras。
- 优先使用带加号的算法,作为优化算法会比不带加号的更加稳定
- 有选择恐惧症的小伙伴可以优先使用这几个推荐算法:
Euler A
、DPM+ +2S a Karras
、DPM++ 2M Karras
、DPM++ SDE Karras
该设置项用于修复绘制过程中经常出现的面部扭曲问题,开启后模型会加强人物脸部的识别效果,因为二次元动漫人物的五官画风多样,算法的识别效果并不明显,该功能主要用于真实摄影类或偏写实的2.5D风格人像绘制。
实际上如今大多模型中已加强针对人脸的训练,反而开启面部修复或会对图像生成有一定干扰,所以在模型介绍页有的作者会特意加上避免开启面部修复的备注。
平铺类似Midjourney中的tile参数,用于绘制重复的花纹或图案纹理,平时用的不多。
我们都知道,在分辨率恒定的情况下,图片的尺寸越大,可以容纳的信息就越多,最终体现的画面细节就越丰富。如果图片尺寸设置的较小,画面内容往往会比较粗糙,这一点在Stable Diffusion绘制真实人像、复杂纹理等元素时会格外明显。下面这张图可以看到,同一张图在放大尺寸重新绘制后,画面细节得到了显著提升。
这也是旧版模型的缺点之一,但在最近刚发布的SDXL官模中,已经对该问题进行了优化,相信再过段时间就能直接绘制大图了。
高清修复,也叫做高分辨率修复、超分(超分辨率),它是我们平时放大图片使用最频繁的功能之一。平时我们绘制图像,一般都是采用低分辨率先绘制,再开启高清修复进行放大。不同于我们平时的增加图像分辨率,高清修复的本质是进行了一次额外的绘图操作。该功能开启后会出现额外的操作栏,下图是简单的操作项介绍。
关于绘制高清大图的方法有很多,我会在后面的文章里进行统一介绍,这里就不再赘述了。
总批次数和单批数量可以放在一起来看,总批次数可以理解为同一提示词和设置项下触发几次生成操作,而每单批数量则表示每个批次绘制几张图片,因此总的图片生成数量=总批次数 x 单批数量。该功能主要是为了解决出图效率的问题,类似Midjourney中的repeat参数。由于模型绘图的结果存在很大的不确定性,想获取一张满意的图片往往要尝试多次,所以通过调整生成批次和数量,可以实现Stable Diffusion自动跑图,这样就无需每次绘图结束后再手动点击生成按钮。
其中,单批数量平时很少会修改,默认都是1张,更多时候是设置总批次数。因为每批生成的图片越多,相当于同一时间Stable Diffusion要绘制多张图片,其原理等同于绘制了一张大图,对显卡的要求会比较高,还不如每次只生成一张,然后用提高次数的方法来解决。
值得一提的是,调整多批次后,除了正常绘制的每张图,Stable Diffusion还会生成一张拼在一起的格子图,和Midjourney默认的四格图一样。
CFG Scale是用来控制提示词与出图相关性的参数,数值越高,则Stable Diffusion绘图时会更加关注提示词的内容,发散性会降低。
该功能支持的数值范围在0~30之间,但大多数情况下我们使用的数值会控制在7~12之间,正常情况下保持7不动即可。如果CFG数值过低或过高,都可能会导致出图结果不佳的情况。
AI在绘图过程中会有很强的不确定性,因为每次绘制时都会有一套随机的运算机制,而每次运算时都对应了一个固定的Seed值,也就是我们俗称的种子值。在Midjourney中,种子值的随机性达到了42亿种可能,也就是说同一套提示词我们会获得42亿种随机结果,当然这和Midjourney本身庞大的训练数据库有关系。
而通过固定种子值可以锁定绘图结果的随机性,比如我们绘制了一张比较满意的图片时,可以将调用其种子值填写在这里,可以最大程度的保证原图的画面内容。
在右侧有2个按钮,点击骰子可以将seed重置为默认的-1,也就是随机的状态。回收♻️按钮则是将最后绘制的图片seed值固定在这里。
到这里本篇教程就全部结束啦,在今天的文章里我给大家介绍了提示词的基本语法和书写规则以及一些更高阶的语法技巧,关于文生图的各类参数也进行了介绍。因为里面的不少知识点加入了我自己的理解,可能在表述上有一定差异,如果你有其他建议或想法的话,也欢迎在评论区给我留言~
本篇文章中的提示词库大家可在公众号回复【关键词宝典】获取,也欢迎加入我的AIGC交流群,和大家一起学习探讨AI设计知识。
有小伙伴很好奇我是如何学习AIGC知识的,秘诀都在我整理的2套AI设计知识库中,扫描下方的二维码了解详细内容
探索AIGC领域的体验设计师
关注我 学习更多AI设计知识~
回复【软件】获取Mac必备软件
回复【字体】获取200+免费可商用中英文字体
回复【PPT】获取keyonte精品封面和模板
回复【书籍】获取100+必读设计书籍
回复【素材】获取3D元素、样机
回复【PS安装】获取PS安装包资源
那就点个在看吧~
⬇️ ⬇️ ⬇️