4.11 Prompt
本小节主要给大家的介绍提示词,因为提示词在整个AIGC 生成领域是非常重要。
什么是提示词
你可能没写过提示词,但是一定听说过“提示词”这几个字,也大概能知道它的重要性。没听说过也没关系,下面我就带你认识认识。提示词就是我们给AI模型下发的指令。提示词写对了,AI才能输出相应的结果,提示词写的越好,AI输出的内容质量越高、越贴近你的需求。这有点像程序代码,代码逻辑写对了,程序才能正常运行,代码写的越好,程序运行时发生的问题越少、才能解决用户的问题。比如图片的内容需要是:一个姑娘站在海滩上,最简单的提示词就是:a girl standing on the beach,这是一个语法完整的句子;我们也可以使用堆砌关键词的方式来编写提示词:a girl, standing, beach,不同的关键词之间用英文逗号分隔,不同关键词之间的空格可有可无。
提示词的结构
开发程序时,我们不是拿到需求之后,马上就开始编码的。我们首先要弄懂业务需求,然后思考通过什么样的功能和流程来满足这个需求,也就是做产品设计;然后是做程序概要设计、详细设计这些,确定要使用的技术平台、框架、中间件,以及模块的划分、接口的定义、数据表的设计等等;最后才是编码工作。我们通过这样分阶段分层次的工作,最终把系统实现出来。这种工作方法可以称为结构化方法。我们编写提示词也需要这种结构化的思维,这里分享一个常用的结构:(质量)+风格+主体+细节+其它
质量
质量就是图片整体看起来如何,相关的指标有分辨率、清晰度、色彩饱和度、对比度、噪声等,高质量的图片会在这些指标上有更好的表现。正常情况下,我们当然是想生成高质量的图片。常见的质量提示词:
best quality
最佳质量
masterpiece
杰作
ultra detailed
超精细
4K、8K
4K、8K分辨率
UHD
超高清,高分辨率
HDR
更好的曝光:风景照、弱光或背光场景
为什么要给这个“质量”加上括号呢?因为在 SDXL 中这些质量提示词对生成图片的影响很小,SDXL 模型默认就会生成高质量的图片。但是如果使用的是 SD 1.5 的模型,这些提示词还是很有必要的。你可能还会问为什么 SD 1.5 的模型就需要质量提示词呢?这可能是因为 SD 1.5 的模型训练的时候使用了各种不同质量的图片,训练时使用了大量的质量提示词,所以使用 SD 1.5 的模型生成图片时质量提示词的影响会比较大。
风格
风格就是我们想要一张什么样的图片,比如真实照片、漫画、油画、插画等等。给大家分享一些风格提示词。
comic
漫画
anime artwork
动漫作品
3d model
3d模型
line art drawing
线条画
cinematic photo
电影照片
photographic
摄影照片
oil painting
油画
illustration
插画
除了这些,我们还可以指定更具体的风格,比如:impressionist(印象派)、cubism(立体派)、abstractionism(抽象派)、pop art(波普艺术)等等,再比如指定画家:Vincent van Gogh(19 世纪印象派画家)、 John Sargent(19 世纪美国画家),注意风格和画家需要是比较知名的,因为比较小众的风格和画家可能没有被用来训练模型,模型不认识它们,提示词就没什么用。需要注意的是除了使用提示词生成风格图片,大家还喜欢通过各种风格模型(包括大模型和Lora模型)来生成指定风格的图片,这些模型一般都经过特定风格图片的训练,比如Anything比较擅长二次元风格、RealisticVision比较擅长真实照片风格,在绘制指定风格图片时,它们相比官方发布的基础模型往往有着更好的表现,特别是针对 SD 1.5 的模型。
主体
主体就是我们想要画个什么,也就是画面中的主要事物,比如:1个女孩、几座高楼、若干狗子、山山水水等等,下面是一些例子:
1girl, full body, standing
1个女孩, 全身, 站立
a pair of young chinese lovers
1对年轻的中国情侣
lakes, sky, snowy mountains
湖泊、天空、雪山
细节
如果没有细节,AI绘画很难画出我们想要的内容,这也是很多同学感觉AI比较傻的主要原因。如果我们不给它提供细节,它就会自由发挥,它发挥的方向和努力程度就得听天由命了。特别是 SD 1.5 的模型自由发挥时出图的质量往往比 SD XL 有明显的差距,就像 GPT-3.5 回答问题的质量比 GPT-4 要差一些。比如主体是:1个女孩,那么细节可能包括:人物的一些特征:脸型、头发的颜色、头发的长短、眼睛的颜色、鼻子的形状、嘴唇的颜色、上衣的款色、裤子或者裙子的款色、鞋子的款色等等。背景和周边环境:银色的海滩、白色的邮轮、蔚蓝的天空、棉花糖的白云、高高的椰子树、红色的玫瑰花等等。光照和光线:studio lighting(工作室照明)、soft lighting(柔光)、ambient lighting(环境照明)、ring lighting(环形照明)、sun lighting(阳光照片)、cinematic lighting(电影照明)等等。细节这块比较零碎,编写时要放开想象力,努力描述出你心中的画面特征。这里分享一个完整的提示词例子:
(masterpiece:1.1),(highest quality:1.1),(HDR:1.3),(top quality, best quality, official art, beautiful and aesthetic:1.2),woman,extremely detailed,(fractal art:1.1),(colorful:1.1),highest detailed,(zentangle:1.2),(dynamic),(abstract background:1.3),(shiny),(many colors:1.4),solo,coral background,yellow lightning,cinematic lighting,long hair,detailed black eyes,highest quality face,(sky aesthetic),lora:add-detail-xl:-1, Steps: 20, Sampler: DPM++ SDE, Schedule type: Karras, CFG scale: 7, Seed: 3638304036, Size: 896x1024, Model hash: 0f1b80cfe8, Model: dreamshaperXL10_alpha2Xl10, Lora hashes: "add-detail-xl: 9c783c8ce46c", Downcast alphas_cumprod: True, Script: X/Y/Z plot, X Type: Prompt S/R, X Values: "lora:add-detail-xl:-1,lora:add-detail-xl:0,lora:add-detail-xl:1", Version: v1.10.1
你提供的提示词数据详细描述了一个高质量的女性肖像生成任务,结合了许多艺术和技术元素。以下是对这些数据的详细解读:
质量和艺术风格:
(masterpiece:1.1)
,(highest quality:1.1)
,(HDR:1.3)
,(top quality, best quality, official art, beautiful and aesthetic:1.2)
:这些标签表明你希望图像具有最高的质量和艺术美感,包含高动态范围(HDR)效果。
主体:
woman
:图像的主体是一个女性。
艺术风格:
(fractal art:1.1)
,(zentangle:1.2)
,(dynamic)
,(abstract background:1.3)
,(shiny)
,(many colors:1.4)
:这些标签表明你希望图像包含分形艺术和禅绕画风格,背景是抽象且动态的,具有闪亮的效果和丰富多彩的颜色。
具体特征:
coral background
,yellow lightning
,cinematic lighting
,long hair
,detailed black eyes
,highest quality face
,(sky aesthetic)
:这些细节描述了图像的美学和具体的视觉元素。例如,背景是珊瑚色,有黄色闪电,电影般的照明,长发,详细的黑色眼睛,以及高质量的面部。
技术参数:
Steps: 20
:图像生成的步数,影响细节和质量。CFG scale: 7
:分类器自由指导比例,影响生成图像与提示词的符合程度。Sampler: DPM++ SDE Karras
:使用的采样算法。Seed: 3638304036
:随机种子,用于确保结果可重复。Size: 896x1024
:图像的尺寸。Model: dreamshaperXL10_alpha2Xl10
:使用的生成模型。Version: v1.5.1
:使用的模型或软件版本。Model hash: 82b5f664ae
:模型的哈希值,用于唯一标识。add-detail-xl: 1
,"add-detail-xl: 9c783c8ce46c"
:使用的特定模型或扩展,以增加图像细节。
总结起来,你的提示词数据描述了一个包含复杂细节和艺术元素的女性肖像图像生成任务,结合了丰富的颜色和动态的背景,并使用了多种先进的技术参数来确保图像的质量和美感。
提示词权重
使用权重
提示词的权重,也就某个提示词在生成图片时的重要程度,这是因为在使用一连串提示词时,模型可能会自动做一些取舍,这会导致生成的图片中缺少或弱化某些提示词对应的元素,如果我们要强化某个元素,就需要增加它的权重。格式是:keyword:factorkeyword是要设置权重的提示词,factor是权重,权重的默认值是1,小于1表示降低权重,大于1表示增加权重。比如我们强调红色的头发,就可以这样写:red hair:1.3
()和[]符号
权重还可以使用小括号()和中括号[]来代替,()表示1.1倍,[]表示0.9倍,括号可以叠加。(keyword) 等价于 keyword:1.1((keyword)) 等价于 keyword:1.21[keyword] 等价于 keywor:0.9[[keyword]] 等价于 keywor:0.81
关键词混合
语法格式:[keyword1 : keyword2: factor]factor 控制把 keyword1 切换到 keyword2 的步骤值,取之范围0-1。以马斯克和扎克伯格合体为例,提示词如下:best quality,ultra detailed, UHD 4K, portrait photo, [Elon Musk:Zuckerberg:0.6]不同切换步骤的效果:
反向提示词
负面提示词,即填入不想要的元素或特征,以在采样过程中避免出现。可以用来去除物体、修改特征、修改风格等。
去除物体
比如去掉胡子,我们就可以在反向提示词中输入:mustache
修改特征
比如不要蓝色眼睛,可以在反向提示词中输入:blue eyes
修改风格
比如不要动漫风格,可以在反向提示词中输入:cartoon、anime
优化图片
比如用来提升质量:blur不出现坏手、坏脸:bad fingers、bad face对于人物照片,常用的反向提示词:ugly, tiling, poorly drawn hands, poorly drawn feet, poorly drawn face, out of frame, extra limbs, disfigured, deformed, body out of frame, bad anatomy, watermark, signature, cut off, low contrast, underexposed, overexposed, bad art, beginner, amateur, distorted face
提示词工具
提示词工具的,当然我们可以使用的一些简单的方式进行的创作,使用提示词工具,我们最常用的提示词工具插件是ALL-in-One,包含常见的正向提示词以及负向的提示词,以及在这些提示词下的合理设置图形的风格,场景,服饰等多种内容的,关于提示词工具的使用可以进一步从这里获取:
原理
同时这里介绍下 Stable Diffusion 中提示词的原理:
最左侧是提示词:paradise cosmic beach,提交到 Stable Diffusion 之后,它首先通过 Text Encoder 把提示词编码为一组带有文字语义的向量(向量可以理解成1位数组),然后把这组向量投递给一个图片生成器( Image Information Creator),图片生成器根据向量的值来构建出相应语义的图片信息,这些信息还不是我们常见的图片格式,然后还需要 Image Decoder 进行图片解码处理,转换为PNG图片格式,就是肉眼可见的了。这里说下语义向量。向量就像是一条有箭头的线,它可以用来表示物体的位置、速度或方向。在机器学习中,我们用向量来描述数据的特征。比如,在三维空间里,一个像素点可以被表示为一个长度为1的向量,它有三个分量,分别代表红、绿、蓝三种颜色的强度。而带有文字语义的向量,它的维度一般都在50以上,模型可以通过在向量空间中的位置来捕捉它的语义和上下文信息,然后生成对应的图片内容。需要注意 Stable Diffusion 的提示词数量是有限制的,限制的单位是Token,有时翻译成词元,一般1个单词就是1个Token(标点符号也会计入Token数量),但是如果 Stable Diffusion 不认识这个单词,它就会拆分单词,这时候就会计算为多个Token。Text Encoder编码提示词时实际上编码是这里的Token。在提示词输入框的右上角,我们可以看到当前已经输入的Token数量和限制的最大Token数量。在基本的Stable Diffusion v1 模型中,该限制是75 个tokens。不过在 Stable Diffusion WebUI 中,你可以写75个Token以上的提示,当超过 75个Token时,WebUI 会对提示词进行分组,提交多组提示词。
Last updated