构建一个优秀的Prompt

在使用Stable Diffusion AI时,构建一个有效的提示(Prompt)是至关重要的第一步。这个过程涉及到创造性的尝试和对AI行为的理解。这里我会对如何构建一个好的Prompt进行一个总结。

什么是一个好的提示词

构建有效的提示是使用Stable Diffusion AI或其他AI图像生成工具的关键。一个好的提示能够精确地指导AI生成你心中所想的图像。为了帮助你创建这样的提示,我们可以探讨不同的关键词类别,并看看如何将它们组合起来生成图像。以下是一些主要的关键词类别,以及如何使用它们来构建你的提示:

  • 主题 (Subject)

这是你的图像的核心内容。它可能是一个物体、一个人、一个地方或一个事件。例如:“孤独的灯塔”、“繁忙的市场”或“宁静的森林”。

  • 媒介 (Medium)

这里指的是图像的物理或视觉表现形式。例如:“油画”、“水彩画”、“数字绘画”或“铅笔素描”。

  • 风格 (Style)

这是指图像的整体视觉风格或艺术流派。你可以指定一个特定的艺术家、艺术时期或流行的视觉风格。例如:“印象派”、“赛博朋克”、“超现实主义”或“宫崎骏动画风格”。

  • 艺术分享网站 (Art Sharing Platforms)

有时候,你可能在艺术分享网站上看到了一些你喜欢的图像,你可以在提示中提及这些网站来获取类似的风格。例如:“Behance上的数字艺术”、“DeviantArt的幻想插画”或“Pinterest上的极简主义设计”。

  • 分辨率 (Resolution)

指定你想要的图像尺寸。虽然Stable Diffusion的标准输出是512×512像素,但你可以根据需要调整。例如:“4K分辨率”、“高清壁纸”或“社交媒体缩略图”。

  • 附加细节 (Additional Details)

这些是你希望在图像中包含的特定元素或特征。例如:“穿着中世纪盔甲的骑士”、“有瀑布的热带雨林”或“未来城市的夜景”。

  • 颜色 (Color)

指定图像的主要颜色或颜色方案。例如:“暖色调”、“冷色调”、“鲜艳的色彩”或“柔和的粉色”。

  • 灯光 (Lighting)

描述你想要的光照效果。例如:“柔和的日落光线”、“戏剧性的阴影”、“明亮的阳光”或“神秘的月光”。

在构建提示时,你可以根据需要选择使用这些类别中的一个或多个。下面是一个使用这些类别构建的示例提示:

A cyberpunk-style digital artwork, displaying neon lights and flying cars in the night scene of a future city. The image adopts 4K resolution, with bright colors and strong blue and purple tones under the light

使用这个提示,你可以在Dreamshaper模型或其他适合初学者的模型中生成图像。记得,生成图像的过程是一个迭代的过程,不断尝试和调整将帮助你获得最佳结果。在后续的实践中,你还可以探索如何使用负面提示来排除你不希望出现在图像中的元素。

主题

主题是您希望在图像中看到的内容。一个常见的错误是关于主题的描述不够。比如说,我们想生成一个施展魔法的女巫。一个新手可能只写了一个女巫的描述。

A witch

你会得到一些还不错的图像,但这个提示留下了太多想象的空间。

你希望女巫的样子是怎样的?你有没有一些关键词来更具体地描述她?她穿着什么?她施展的是什么样的魔法?她是站着、跑步还是漂浮在空中?背景是什么样的?

Stable Diffusion 无法读取我们的想法。我们必须明确地表达我们想要的。

作为演示,比如说她是一个强大而神秘的女巫,使用闪电魔法。她穿着镶有宝石的皮革服装。她坐在一个岩石上。她戴着帽子。背景是一座城堡。

A beautiful and powerful mysterious witch, smiling, sitting on a rock, lightning magic, hat, detailed leather costume complete with gems, skirt, castle background

现在,我们生成更具体的图像。服装、姿势和背景在图像间保持一致。

Medium

Medium是制作艺术作品所使用的材料。一些例子包括插画、油画、3D渲染和摄影。Medium具有强大的影响力,因为一个关键词就能极大地改变风格。

让我们加入关键词 数字艺术

A beautiful and powerful mysterious witch, smiling, sitting on a rock, lightning magic, hat, detailed leather costume complete with gems, skirt, castle background, Digital Art

这些图像从逼真的绘画风格转变为更像是计算机图形。那么还能不能做更多的修改呢?

风格

风格指的是图像的艺术风格。例如印象派、超现实主义、波普艺术等。

在提示中添加超写实、幻想、黑暗艺术

A beautiful and powerful mysterious witch, smiling, sitting on a rock, lightning magic, hat, detailed leather costume complete with gems, skirt, castle background, Digital Art,Hyperrealistic, fantasy, dark art

现在,场景变得更加阴暗和忧郁。

艺术分享网站

像Artstation和Deviant Art这样的细分图形网站汇聚了许多不同风格的图片。在提示中使用它们是将图片引向这些风格的一种方式。

让我们在提示中加入artstation

A beautiful and powerful mysterious witch, smiling, sitting on a rock, lightning magic, hat, detailed leather costume complete with gems, skirt, castle background, Digital Art,Hyperrealistic, fantasy, dark art
artstation

这个变化并不大,但这些图片看起来确实像你在Artstation上找到的内容。

分辨率

分辨率代表着图像的清晰度和细节程度。让我们添加关键词高度详细清晰焦点

A beautiful and powerful mysterious witch, smiling, sitting on a rock, lightning magic, hat, detailed leather costume complete with gems, skirt, castle background, Digital Art,Hyperrealistic, fantasy, dark art
artstation,Highly detailed,clear focus

嗯,效果并不是很明显,也许是因为之前的图像已经相当清晰和详细了。但添加一些也无妨。

附加细节

附加细节是用来修改图像的“甜味剂”。我们将添加科幻反乌托邦来为图像增添一些氛围。

A beautiful and powerful mysterious witch, smiling, sitting on a rock, lightning magic, hat, detailed leather costume complete with gems, skirt, castle background, Digital Art,Hyperrealistic, fantasy, dark art
artstation,Highly detailed,clear focus,Science fiction, dystopia

颜色

通过添加颜色 关键词,您可以控制图像的整体颜色。您指定的颜色可能会以色调或对象的形式出现。

让我们用关键词闪光金向图像添加一些金色。

A beautiful and powerful mysterious witch, smiling, sitting on a rock, lightning magic, hat, detailed leather costume complete with gems, skirt, castle background, Digital Art,Hyperrealistic, fantasy, dark art
artstation,Highly detailed,clear focus,Science fiction, dystopia,Glitter gold

金色在一些地方表现得非常出色!

灯光

任何摄影师都会告诉你,灯光对于创造成功的图像至关重要。灯光关键词对图像的外观有很大影响。让我们添加一些工作室灯光,使其看起来像是工作室拍摄的照片。

A beautiful and powerful mysterious witch, smiling, sitting on a rock, lightning magic, hat, detailed leather costume complete with gems, skirt, castle background, Digital Art,Hyperrealistic, fantasy, dark art
artstation,Highly detailed,clear focus,Science fiction, dystopia,Glitter gold,Studio lighting

备注

您可能已经注意到,这些图片只需添加一些关键词就已经相当不错了。在构建提示时,并不总是越多越好。通常情况下,您并不需要太多关键词来获得好的图片。

使用负面提示

使用负面提示是另一种引导图像的好方法,但与其输入你想要的,不如输入你不想要的。它们不一定是物体,也可以是风格和不想要的属性(例如丑陋,畸形)。

对于v2模型来说,使用负面提示是必不可少的。没有它,图像看起来会远远逊色于v1的。对于v1和SDXL模型来说,它们是可选的,但是最好添加上去,因为万一有效果呢?

我将使用一个简单的通用负面提示,它不会修改风格。

Misshapen, misshapen, ugly

构建一个优秀promot的过程

在计算机科学领域,一个好的提示是提高用户体验的关键。下面是构建一个良好提示的一般步骤:

  1. 明确提示的目的:首先要明确提示的目的是什么,它是为了引导用户完成某个操作,还是为了提供必要的信息。只有明确了目的,才能更好地构建提示内容。

  2. 选择合适的时机:提示的时机非常重要,过早或过晚的提示都会影响用户的体验。要根据用户操作的上下文,选择合适的时机进行提示。

  3. 简洁明了的内容:提示内容要简洁明了,避免使用过于晦涩的专业术语,让用户能够快速理解并作出相应的反应。

  4. 考虑用户反馈:在构建提示时,需要考虑用户的反馈,尤其是之前类似提示的反馈。通过用户反馈,及时对提示进行修改和优化。

  5. 测试和优化:构建完提示后,需要进行测试,观察用户对提示的反应,并根据反馈进行相应的优化和修改。

通过以上步骤,我们可以构建出一个良好的prompt,提高用户体验,促进用户完成操作。

迭代式prompt构建

构建有效的提示确实是一个迭代的过程,需要通过不断的试验和调整来完善。以下是一些策略和建议,可以帮助你在构建Stable Diffusion AI的提示时更加高效和有目的性:

1. 从简单开始

开始时,创建一个包含主题、媒介和风格的简单提示。这将为AI提供一个基本的框架来生成图像。例如:“中世纪城堡的水彩画”。

2. 批量生成和评估

每次生成至少4张图像,这样可以更好地评估提示的效果。由于AI生成的图像可能存在差异,生成多张图像可以让你有一个统计上的理解,哪些元素在提示中是有效的。

3. 逐步添加关键词

在每次迭代中,尝试添加一两个新的关键词到提示中。再次生成至少4张图像来评估新关键词的影响。这种方法可以帮助你理解每个关键词如何影响最终的图像。

4. 使用负面提示

负面提示是指导AI避免生成某些元素的强大工具。如果你发现某个模型在渲染特定对象或身体部位时存在问题,比如手部,可以在负面提示中加入这些关键词,如“无手”或“不显示手”。

5. 迭代过程中的关键词细化

随着你对模型的了解越来越深入,你可以开始将更具体的关键词添加到负面提示中。这可以帮助你更精细地控制生成的图像,避免不想要的特征或细节。

6. 记录和回顾

在整个迭代过程中,记录你的提示和生成的图像结果。这不仅有助于你追踪哪些关键词有效,哪些无效,还可以帮助你在未来的项目中更快地构建有效的提示。

通过遵循这些策略,你可以逐步完善你的提示,最终生成满足你要求的高质量图像。记住,每个AI模型都有其独特的特点和限制,因此投入时间来了解和适应你正在使用的特定模型是非常重要的。不断实践,你将能够更加熟练地使用Stable Diffusion AI来创造出令人印象深刻的视觉作品。

prompt技巧

在特定的采样步骤中,您可以通过切换到不同的关键词来修改关键词的重要性。

以下语法适用于AUTOMATIC1111 GUI。

关键词权重

此语法适用于AUTOMATIC1111 GUI。

您可以通过语法(关键词: 因子)来调整关键词的权重因子是一个数值,小于1表示不太重要,大于1表示更重要。

例如,我们可以调整以下提示中关键词dog的权重:

(Dog:1),mist,smoke,fire,chimney,rain,damp,primitive,puddle,melting,dripping water,snow,stream,lush,ice,bridge,forest,rose,flower,Stanley Artgerm Lau,Greg Rutkowski,Thomas Kincade,Alphonse Mucha,Loish,Norman Rockwell.,


增加dog的权重倾向于生成更多的狗。减少它倾向于生成更少。对于每张图片来说并不总是正确的,但从统计意义上来说是正确的。

这种技术可以应用于主题关键词和所有类别,比如风格和光线。

()和[]语法

(此语法适用于 AUTOMATIC1111 GUI。)

调整关键字强度的等效方法是使用 ()[]

  • (关键字)将关键字的强度增加1.1倍,与(关键字:1.1)相同。
  • [关键字]将关键字的强度减少0.9倍,与(关键字:0.9)相同。

你可以像在代数中一样使用多个(),效果是乘法:

  • (关键字) 等同于 (关键字: 1.1)
  • ((关键字)) 等同于 (关键字: 1.21)
  • (((关键字))) 等同于 (关键字: 1.33)

同样,使用多个 [] 的效果是:

  • [关键字] 等同于 (关键字: 0.9)
  • [[关键字]] 等同于 (关键字: 0.81)
  • [[[关键字]]] 等同于 (关键字: 0.73)

AUTOMATIC1111 提示:您可以使用 Ctrl + 上/下箭头(Windows)或 Cmd + 上/下箭头来增加/减少关键字的权重。

关键词混合

此语法适用于 AUTOMATIC1111 GUI。

您可以混合两个关键词。正确术语是提示调度。语法是

[keyword1 : keyword2: factor]

factor 用来控制关键词1何时切换到关键词2。它是一个介于0和1之间的数字。例如,如果我使用提示

Oil painting portrait of [Joe biden: donald trump: 0.5]

进行30个采样步骤。

这意味着步骤1到15的提示是

Oil painting portrait of Joe biden

而步骤16到30的提示变为

Oil painting portrait of donald trump

因子确定了关键词何时改变。

改变因子的效果是以不同程度混合两位总统。

第一个关键词决定了全局构图。早期扩散步骤确定了整体构图。后续步骤完善细节。

混合面孔

一个常见的用例是创建一个具有特定外表的新面孔,借鉴演员和女演员的特点。例如,[Emma Watson: Amber heard: 0.85]:

当仔细选择两个名字并调整因子时,我们可以精确地得到想要的外表。

另外,你可以使用多个名人的名字和关键词权重来调整面部特征。例如:

(Emma Watson:0.5), (Tara Reid:0.9), (Ana de Armas:1.2)

从提示到提示

通过关键词混合,你可以实现类似于提示到提示的效果,生成一对高度相似的图像并进行编辑。以下两幅图像是使用相同的提示生成的,除了一个地方不同,那就是使用了apple 和fire混合。种子和步数保持不变。

拿着一个[apple: fire: 0.3]

这背后的理论是图像的整体构图是由早期的扩散过程设定的。一旦扩散被困在一个小空间里,交换任何关键词对整体图像的影响不会很大。它只会改变一个小部分。

保持一致的面孔

使用多个名人的名字是混合两个或更多面孔的简单方法。混合在不同的图片上都是一致的。当你使用多个名字时,Stable diffusion会理解为生成一个人,但具有这些面部特征。

下面的短语使用多个名字来混合三个具有不同权重的面孔。

(Emma Watson:0.5), (Tara Reid:0.9), (Ana de Armas:1.2)

我们试下这种方式的效果,提示是:

(Emma Watson:0.5), (Tara Reid:0.9), (Ana de Armas:1.2),Photo of a young lady, prominent hair, sitting outside a restaurant, wearing a dress, edge lighting, studio lighting, looking into the lens, DSLR camera, Ultra High quality, Clear focus, depth of field, film grain, Fujifilm XT3, Crystal clear, 8K Ultra HD, Highly detailed shiny eyes, Highly detailed skin, skin pores

以下是具有相同提示的图片:

看到这张脸在不同的图片上重复出现了吧!

使用多个名人的名字和关键词权重来精心调整你想要的面部特征。你还可以在负面提示中使用名人的名字来避免你不想要的面部特征。

提示可以有多长?

根据您使用的Stable Diffusion服务不同,提示中可以使用的关键词数量可能会有限制。在基本的Stable Diffusion v1模型中,这个限制是75个token。

请注意,token与单词不同。

例如,dream是一个token,beach是另一个token。但dreambeach是两个token,因为这个模型不认识这个单词,所以模型会将这个单词分解成dreambeach,它认识这两个单词。

AUTOMATIC1111中的提示限制

AUTOMATIC1111没有token限制。如果一个提示包含超过75个token,也就是CLIP分词器的限制,它将开始一个新的另外75个token的块,所以新的“限制”变成了150。这个过程可以无限延续,或者直到您的计算机内存用尽。

每个75个token的块都是独立处理的,处理后的表示会在输入到Stable diffusion的U-Net之前进行连接。

在AUTOMATIC1111中,您可以通过查看提示输入框右上角的小框来检查令牌的数量。

开始一个新的提示块

如果你想在达到75个token之前开始一个新的提示块怎么办?有时候你想这样做是因为提示块开头的标记更有效,而且你可能想将相关关键词分组在一个提示块中。

你可以使用关键词BREAK来开始一个提示块。下面的提示使用了两个提示块来指定帽子是白色的,裙子是蓝色的。

A picture of a woman in a white hat
BREAK
Blue skirt

如果没有使用BREAK,Stable Diffusion更有可能混淆帽子和裙子的颜色。

名人姓名的关联

每个关键词都会有一些意想不到的关联。这在名人姓名中尤其如此。一些演员喜欢摆特定的姿势或穿特定的服装拍照,这也会出现在训练数据中。如果你想想,模型训练本质上就是通过关联学习。如果 Taylor Swift(在训练数据中)总是交叉双腿,模型会认为交叉双腿也是 Taylor Swift。

当你在提示中使用 Taylor Swift 时,你可能本意是使用她的脸。但是主题的姿势和服装也会产生影响。可以通过仅使用她的名字作为提示来研究这种影响。

姿势和服装是全局构图。如果你想要她的脸但不要她的姿势,你可以使用关键词混合来在后续采样步骤中替换她。

点我查看更多精彩内容:www.flydean.com

教你构建一个优秀的SD Prompt的更多相关文章

  1. 手把手教你用vue-cli构建一个简单的路由应用

    上一章说道:十分钟上手-搭建vue开发环境(新手教程)https://www.jianshu.com/p/0c6678671635 开发环境搭建好之后,那么开始新添加一些页面,构建最基本的vue项目, ...

  2. NHibernate构建一个ASP.NET MVC应用程序

    NHibernate构建一个ASP.NET MVC应用程序 什么是Nhibernate? NHibernate是一个面向.NET环境的对象/关系数据库映射工具.对象/关系数据库映射(object/re ...

  3. 一个优秀的Unity3d开发者必备的几种设计模式

    Unity脚本编程 众所周知,unity的编程属于脚本化,脚本没有一个具体的概念跟架构, 导致在项目过程中,经常出现哪里需要实现什么功能,就随便添加脚本, 结果,就造成了一片混乱,不好管理. 更有甚者 ...

  4. 构建一个用于产品介绍的WEB应用

    为了让用户更好地了解您的产品功能,您在发布新产品或者升级产品功能的时候,不妨使用一个产品介绍的向导,引导用户熟悉产品功能和流程.本文将给您介绍一款优秀的用于产品介绍的WEB应用. 就像微博或邮箱这类W ...

  5. 如何做好一个优秀的web项目心得

    最近利用空余的时间(坐公交车看教程视频),想了很多自己做的做果项目的优缺点,重新了解了前后端分离,前端工程化等概念学习,思考如何打造好一个优秀的web前端项目. 前端准备篇 前端代码规范:制定前端开发 ...

  6. Vue.js:安装node js到构建一个vue并启动它

    ylbtech-Vue.js:从安装node js到构建一个vue并启动它 1.返回顶部 1. 1.安装node js 下载地址:http://nodejs.cn/download/2.安装完成后运行 ...

  7. 构建一个简单的基于MVC模式的JavaWeb

    零晨三点半了,刚刚几个兄弟一起出去吼歌,才回来,这应该是我大学第二次去K歌,第一次是大一吧,之后每次兄弟喊我,我都不想去,因为我还是很害怕去KTV,或许是因为那里是我伤心的地方,也或许是因为我在那里失 ...

  8. 10步成为一个优秀的Java开发!

    1.拥有坚实的基础并理解面向对象原则 Java开发人员必须深刻理解面向对象编程.如果没有面向对象编程的坚实基础,就无法感受到像Java这样的面向对象编程语言的美感. 如果你不太了解现象对象编程是什么, ...

  9. [计算机视觉]从零开始构建一个微软how-old.net服务/面部属性识别

    大概两三年前微软发布了一个基于Cognitive Service API的how-old.net网站,用户可以上传一张包含人脸的照片,后台通过调用深度学习算法可以预测照片中的人脸.年龄以及性别,然后将 ...

  10. 构建一个基本的前端自动化开发环境 —— 基于 Gulp 的前端集成解决方案(四)

    通过前面几节的准备工作,对于 npm / node / gulp 应该已经有了基本的认识,本节主要介绍如何构建一个基本的前端自动化开发环境. 下面将逐步构建一个可以自动编译 sass 文件.压缩 ja ...

随机推荐

  1. nginx设置访问账号密码

    第一:为kibana加上了用户登陆访问 第二:不暴露服务器上5601端口,只开放80端口即可.这对服务器的安全也是一个很大的保护. 接下来我们就开始配置nginx与kibana. 一.配置nginx ...

  2. Java中枚举配合switch语句用法-2022新项目

    一.业务场景 项目开发中经常会遇到多条件判断的情况,如果判断条件少的话使用if/elseif/else还比较好处理,如果判断条件多的话,则在使用这种语句就不太合适. 如果是自定义的一些内容,比如不同的 ...

  3. Centos挂在U盘的时候无法挂载

    网上的教学视频大部分全是以centos为教材底子--没办法更换系统了,这样方便麻! 我参考的文章: https://blog.csdn.net/shengjie87/article/details/1 ...

  4. Navicat 15 最新破解版下载_永久激活注册码(附图文安装教程)

    Navicat 15 最新破解版下载_永久激活注册码(附图文安装教程) 欢迎关注博主公众号「java大师」, 专注于分享Java领域干货文章, 关注回复「资源」, 免费领取全网最热的Java架构师学习 ...

  5. 今日学习:位运算&中国剩余定理

    -2^ 31的补码是-0.也就是 1000 0000 0000 0000 0000 0000 0000 0000 补码是原码取反加1 x&(-x) 是最低位为1的位为1,其余位为0. 中国剩余 ...

  6. Spring Boot学习日记11

    学习静态资源,和统一打包 WebJars是将web前端资源(js,css等)打成jar包文件然后借助Maven工具,以jar包形式对web前端资源进行统一依赖管理 拿到静态资源 http://loca ...

  7. django(web框架推导、简介、数据库初识)

    一 web框架推导 1 软件开发架构 cs架构bs架构bs本质是也是cs # HTTP协议:无状态,无连接,基于请求,基于tcp/ip的应用层协议 # mysql:c/s架构,底层基于soket,自己 ...

  8. C#的窗体防闪烁解决方案 - 开源研究系列文章

    昨天编码的时候想到了关于无边框窗体的闪烁问题,主要是改变窗体大小的时候会闪烁,默认的窗体没这个问题.而现在无边框窗体的应用比较多,所以就找了度娘,然后结合自己的经验进行了测试,得到了这个例子,简单有效 ...

  9. 记录--JS 的垃圾回收机制

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前言 垃圾回收(Garbage Collection)是一种内存管理机制,用于检测和清理不再被程序使用的内存,这些不再被使用的内存就被称为 ...

  10. 记一起rust悬垂引用解决

    最初要写一段从redis的hash获取json字符串,转化为结构体,代码逻辑如下 use redis::{Client, Commands, Connection, Iter}; use serde: ...