Stable Diffusion——文生图界面参数讲解与提示词使用技巧

Clip终止层数

在这里插入图片描述

什么是Clip

CLIP(Contrastive Language-Image Pretraining)是由OpenAI于2021年开发的一种语言图像对比预训练模型。其独特之处在于,CLIP模型中的图像和文本嵌入共享相同的潜在特征空间,这使得模型能够直接在图像和文本之间进行对比学习。

CLIP模型通过训练使相关的图像和文本在特征空间中更紧密地结合在一起,同时将不相关的图像在特征空间中分开。这种对比学习的方式使得CLIP模型能够理解图像和文本之间的语义关系,并在各种视觉和语言任务上取得优异的表现,如图像分类、文本检索、图像生成等。CLIP的出现对于促进图像和文本之间的跨模态理解和交互具有重要意义。

Clip的作用

CLIP模型的作用是建立标签(关键词)和图像之间的关系,可以理解为SD数据库中的处理模块。当调整CLIP模型中的参数值时,会影响标签和图像之间的关系,具体地说,如果参数值较高,标签和图像之间的关系就会变得越来越低,反之亦然。这种关系是反比例的,因此一般不建议将参数值调得过高。

举例来说,当参数值在0到4之间时,图像的细节已经相当不错了;当参数值增加到6时,图像仍然是可以接受的。然而,当参数值增加到8时,图像可能会变得奇怪,整体标签和图像之间的关系会降低。,当增加到最大的12时,整体生成的图像与标签的关联性会降到最低。在这种情况下,模型可能会更多地依赖于其自身的理解,而忽略输入的标签,导致生成的图像与标签不相符。

可以看下面的例子,正向提示词:1girl,pink hair,upper_body,green_shirt,sky blue eyes

Clip = 1时:
在这里插入图片描述
Clip = 4时:
在这里插入图片描述
Clip = 8时:
在这里插入图片描述
Clip =12时:
在这里插入图片描述

因此,建议将CLIP模型的参数值保持在较低的范围内,通常选择1到4之间的数值即可。在大多数情况下,这个范围已经能够满足需求,不需要调整得太高。

提示词

什么是提示词

提示词通常指的是在生成模型中用于指导生成过程的输入信息,它可以是一段文本、一个单词、一个短语,或者是一些标签或关键词。在生成任务中,提示词通常用于定义所需生成内容的方向、主题或特征。提示词的选择和质量直接影响生成结果的准确性和合理性。

举例来说,在图像生成任务中,提示词可以是描述图像内容的关键词或短语,如“树木”、“夏天”、“海滩”等。在文本生成任务中,提示词可以是一段描述待生成文本的开头部分,或者是一个特定主题的关键词列表。在绘画任务中,提示词可以是描述绘画主题、色彩、风格等的关键词或短语。

提示词语的性质

在Stable Diffusion中提示词可以分为两类:正向提示词和反向提示词。正向提示词用于指定希望在生成图片或文本时出现的内容或特征,而反向提示词则用于指定不希望出现的内容或特征。

举例来说,如果您想要生成一张有女孩的图片,那么您可以将“girl”作为正向提示词;同时,如果您不想让图片中出现男孩,您可以将“boy”作为反向提示词。

在AI绘画中,常常会出现一些单人多头,多手指,多脚的现象,这时候,就可以在反向提示词里加“extra hand”“extra leg”以避免生成多头多手指、多脚多腿的情况,或者把手画成脚的,如下图:
在这里插入图片描述
在这里插入图片描述

标签格式

标签(tag)的格式可以直接影响到生成结果的质量和准确性。关于标签格式的说明:

  1. 语言:目前大多数提示词只支持英文,因此英文是必备的。尽管有一些能够将中文转换为英文的插件。如我之前博客里面提到的 “prompt-all-in-one”

  2. 格式:标签可以以单词、短语或句子的形式输入。推荐使用短句,因为短句更具有上下文和语境,可以帮助模型更准确地理解需求。

  3. 分割符号:标签之间使用逗号进行分割。这样做有助于区分不同的标签,并告诉系统如何解析和理解标签。

  4. 关键词顺序:将重要的关键词放在前面,因为它们的权重会更高,系统会优先识别和处理这些关键词。这尤其适用于描述图像主体或重要元素的标签。

  5. 调整标签顺序:如果发现某些关键词没有得到充分识别,可以尝试将其提前放置,以提高其识别概率。

标签的描述顺序

内容性的tag通常用于描述图像内容特征,具体的描述内容会根据不同的场景和需求而定。例如,在描述人物写实的场景中,可以按照以下顺序进行描述:

  1. 人物和表情:人物的外貌特征、面部表情等。
  2. 服装特征:人物所穿着的服装样式、颜色等。
  3. 场景环境:人物所处的场景背景、环境特征。
  4. 镜头:图像的拍摄角度、视角等。
  5. 灯光:图像的光线照射情况。
  6. 画面细节:画面质量、自动提取的细节(auto details in instant details)。
  7. 渲染器引擎:Octane Render、Unity的CG渲染。
  8. 画面的风格:插画风格、油画风格、写实风格
  9. 其他元素细节:描述与人物或场景相关的其他细节,如道具、背景元素等。

关于tag的中英对照,有国内大神做了个详细的表,对AI绘画或者想要对照表的都可以加:566929147 企鹅群一起学习讨论。
在这里插入图片描述

标签权重

在生成图像时可以通过调整不同标签的权重来影响生成结果的内容和特征。每个tag的权重初始值都为1,但越靠前的tag权重相对高一些,以下是关于更改权重的几种常见用法:

  1. 括号法则:使用大括号、中括号和小括号来调整权重。在标签周围添加括号可以增加其权重。例如,使用一个括号会使权重增加1.1倍,两个括号会使权重增加1.1的平方倍,依此类推。不过,添加过多的括号可能会使权重变得难以控制和理解,因此建议谨慎使用。
    () :增加1.1倍
    {} :增加1.05倍
    [] : 减少1.1倍(0.9)
    例子:当减少tag的权重“halfling”没有减少时,生成的图像:
    1girl,pink hair,(sky blue eyes),{face the lens},white shirt,jeans,halfling
    在这里插入图片描述
    当减少tag的权重"[[halfling]]"减少时,生成的图像时会减少半身一个tag的权重,如下图,它已差不多画出全身:
    1girl,pink hair,(sky blue eyes),{face the lens},white shirt,jeans,[[halfling]],
    在这里插入图片描述

  2. 数字法则:使用数字来表示权重。在标签后面加上一个数字(例如1.3)可以增加其权重,而使用小于1的数字可以减少其权重。这种方法相对简单明了,更容易掌握和调整。
    (tag:1.2):增加1.2倍
    (tag:0.6):减少0.6倍

  3. AND方法:通过使用AND连接不同的标签来实现它们的混合。例如,将“girl”和“boy”用AND连接起来,生成的图像会混合展现男生和女生的特征。这种方法能够产生有趣的混合效果,但需要注意保持标签的适度和协调。
    **tag1 AND tag2 ** : 不同元素与主体混合
    例子:生成中性的人物,注意AND必须是大写的
    girl AND boy,pink hair,(sky blue eyes),{face the lens},white shirt,jeans,halfling,
    在这里插入图片描述

  4. 混合:使用中括号和竖线来指定标签的交替渲染顺序。通过在标签之间使用中括号和竖线“|”,可以实现不同标签在渲染过程中的交替出现,从而实现标签的混合效果。这种方法能够产生更加复杂和多样化的图像效果。
    [tag1 | tag2 ] : 会隔一步渲染tag
    例子:生成狐狸女孩
    [girl | fox],pink hair,(sky blue eyes),{face the lens},white shirt,jeans,halfling,
    在这里插入图片描述
    5.BREAK隔开Tag
    使用BREAK来隔绝提示词之间的相互污染,特别是颜色之间的污染。

1 girl,green hair,white skirt,

这里会出现衣服的颜色与头发的颜色互相污染的问题如下图:
在这里插入图片描述
这里可以使用BREAK隔开提示词:

1 girl,green hair BREAK white skirt,
在这里插入图片描述

  1. 下划线
    下划可以将两个Tag连成一个tag来理解。

迭代步数

在这里插入图片描述
采样步数指的是在生成图像时模型所进行的迭代步数。这个值的范围通常是从1到150。调整这个值会影响生成图像的细节程度以及生成速度。

  • 增加采样步数:增加采样步数会增加生成图像的细节,使其更加清晰和精细。然而,这也会导致生成过程变慢,因为模型需要更多的迭代来生成更精细的图像。如果采样步数设置得太高,生成图像可能需要较长的时间,特别是对于性能较低的设备。

  • 减少采样步数:减少采样步数会降低生成图像的细节,可能导致图像模糊或含有噪点。然而,生成速度会更快,因为模型需要较少的迭代来生成图像。

一般建议在制作图像时将采样步数控制在20到40之间,这样可以在保持一定细节的同时,保持生成速度较快。如果采样步数设置得太高,可能会导致生成时间过长,因此需要根据设备性能和需求来进行调整。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
观察生成图像的不同采样步数所带来的效果变化,可得看出:

  1. 第二步到第八步:在这个阶段,图像经历了一个去噪的过程。这意味着模型在这些步骤中尝试去除图像中的噪点,使图像变得更清晰、更干净。

  2. 第十步:在第十步时,图像已经成型,意味着在此时点图像已经具备了基本的清晰度和可用性。虽然一些细节可能还不够完善,但整体效果已经可以接受。

  3. 第25步到第40步:在这个阶段,细节变化开始变得更加显著。采样步数在这个范围内通常足以生成具有足够细节的图像。

通常情况下,采样步数在20左右已经足够生成具有合理细节的图像。如果希望图像更加清晰和精细,可以将采样步数适度增加到40左右。然而,超过40步可能会带来较小的收益,但会增加生成时间,因此需要权衡时间和图像质量之间的关系。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/700611.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

thinkphp5.1 phpexcel 批量导入导出

1.批量导入 public function importExcel(){$authority $this->getUserAuthority(order_input, batch_import);if ($authority[code] ! 0) {return json($authority);}$file request()->file(files);if(empty($file)){return printMsg(-1, "请上传文件");}/…

开发技术-Java 获取集合中元素下标并移动至指定位置

1. 说明 某些业务需要特定的元素在列表的最后或者指定位置展示。 2. 代码 import lombok.AllArgsConstructor; import lombok.Data;import java.util.*; import java.util.stream.Collectors; import java.util.stream.IntStream;Data AllArgsConstructor class Student {St…

CMNet:Contrastive Magnification Network for Micro-Expression Recognition 阅读笔记

AAAI 2023的一篇文章,东南大学几位老师的工作,用于做微表情识别中的运动增强工作, 以下是阅读时记录的笔记。 摘要: However,existing magnification strategies tend to use the features offacial images that include not onl…

喝多少瓶汽水

喝多少瓶汽水 题目描述:解法思路:解法代码:运行结果: 题目描述: 水已知1瓶汽水1元,2个空瓶可以换⼀瓶汽水,输入整数n(n>0),表示n元钱,计算可以多少汽水&a…

【Vuforia+Unity】AR06-空间环境识别功能(AreaTargets)

Vuforia原理:把被识别的物体转成图、立体图、柱形图,3D模型、环境模型,然后模型生成Vuforia数据库-导入Unity-参考模型位置开始摆放数字内容,然后参考模型自动隐藏-发布APP-识别生活中实物-数字内容叠加上去! 不论你是否曾有过相关经验,只要跟随本文的步骤,你就可以成功…

mybatis-plus 基础使用

1、mybatis-plus 简介 MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 2、特性 1)、无侵入&#xff1a…

Nginx知识笔记

一、前言 首先,我们来看一张关于正向代理和反向代理的图片 简单理解正向代理和反向代理的概念: 正向代理:在客户端配置代理服务器(和跳板机功能类似,比如公司很多机器需要通过跳板机才允许登录,正向代理的典型用途是…

【MySQL】数据类型——MySQL的数据类型分类、数值类型、小数类型、字符串类型

文章目录 MySQL数据类型1. 数值类型1.1 tinyint类型1.2 bit类型1.3 小数类型1.3.1 float1.3.2 decimal 2.字符串类型2.1 char2.2 varchar2.3 char和varchar比较2.4 日期和时间类型2.5 enum和set MySQL 数据类型 MySQL 是一个流行的开源关系型数据库管理系统。它支持多种数据类型…

数字滚动实现

介绍 vue-countup-v3 插件是一个基于 Vue3 的数字动画插件,用于在网站或应用程序中创建带有数字动画效果的计数器。通过该插件,我们可以轻松地实现数字的递增或递减动画,并自定义其样式和动画效果。该插件可以用于许多场景,例如展…

展锐S8000安卓核心板参数_紫光展锐5G核心板模块定制方案

展锐S8000核心板模块是基于八核S8000平台开发设计的,采用了先进的6nm EUV制程技术。搭载了全新的智能Android 13操作系统,展现出超强的画面解析能力和高性能双通道MIPI,拥有120Hz高刷新率,独立NPU和3.2TOPS Al算力,同时…

【机器学习】特征工程之特征选择

🎈个人主页:豌豆射手^ 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:机器学习 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进…

数字化转型导师坚鹏:政府数字化流程管理

政府数字化流程管理 课程背景: 很多政府存在以下问题: 不清楚数字化对流程有什么影响? 不知道政府业流程如何进行优化? 不知道政府业流程优化的具体案例? 课程特色: 有实战案例 有原创观点 …

【README 小技巧】在项目README.md 中展示发布到maven 仓库版本

在项目README.md 中展示发不到nexus 的快照版本 <p align"center"><a target"_blank" href"https://search.maven.org/search?qwu-lazy-cloud-network%20wu-lazy-cloud-network"><img src"https://img-home.csdnimg.cn/ima…

【最新Dubbo3深入理解】Dubbo3源码中的一些小技巧

欢迎关注公众号&#xff08;通过文章导读关注&#xff1a;【11来了】&#xff09;&#xff0c;及时收到 AI 前沿项目工具及新技术的推送&#xff01; 在我后台回复 「资料」 可领取编程高频电子书&#xff01; 在我后台回复「面试」可领取硬核面试笔记&#xff01; 文章导读地址…

“点击查看显示全文”遇到的超链接默认访问的问题

今天在做一个例子&#xff0c;就是很常见的点击展开全文。 我觉得这是一个很简单的效果&#xff0c;也就几行代码的事&#xff0c;结果点击了以后立刻隐藏不见&#xff0c;控制台代码也不报错&#xff0c;耽误了我很长时间&#xff0c;最后才发现问题出在超链接身上。 “展开全…

太阳能光伏电池模型参数辨识模型介绍

一、太阳能光伏电池模型参数辨识模型介绍 由于传统化石能源短缺问题日益严重&#xff0c;我国对新能源发展的重视提到了前所未有的高度。太阳能作为一种可再生能源&#xff0c;不会对环境造成污染&#xff0c;受到了越来越多的关注太阳能由于其储量丰富,无污染和无地域限制等优…

Clickhouse系列之连接工具连接、数据类型和数据库

基本操作 一、使用连接工具连接二、数据类型1、数字类型IntFloatDecimal 2、字符串类型StringFixedStringUUID 3、时间类型DateTimeDateTime64Date 4、复合类型ArrayEnum 5、特殊类型Nullable 三、数据库 一、使用连接工具连接 上一篇介绍了clickhouse的命令行登录&#xff0c…

【大厂AI课学习笔记NO.52】2.3深度学习开发任务实例(5)需求采集考虑维度

今天来学习&#xff0c;怎么做需求分析&#xff0c;如何明确数据采集需求。 我把自己考试通过的学习笔记&#xff0c;都分享到这里了&#xff0c;另外还有一个比较全的思维脑图&#xff0c;我导出为JPG文件了。下载地址在这里&#xff1a;https://download.csdn.net/download/g…

软件设计师软考题目解析02 --每日五题

想说的话&#xff1a;要准备软考了。0.0&#xff0c;其实我是不想考的&#xff0c;但是吧&#xff0c;由于本人已经学完所有知识了&#xff0c;只是被学校的课程给锁在那里了&#xff0c;不然早找工作去了。寻思着反正也无聊&#xff0c;就考个证玩玩。 本人github地址&#xf…

C++之std::async

std::async是C提供的一个异步处理函数。 函数原型&#xff1a; template<typename _Fn, typename... _Args> future<__async_result_of<_Fn, _Args...>> async(launch __policy, _Fn&& __fn, _Args&&... __args); 参数说明: int thFun(in…