Stable Diffusion之提示词指南(三)

2024-09-01 22:20
文章标签 指南 提示 diffusion stable

本文主要是介绍Stable Diffusion之提示词指南(三),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在上一篇的文章中,我们讲解了Stable Diffusion提示词的高级用法,对于一些高级属性有了了解。如果有不记得的,可以再去看看———Stable Diffusion之提示词指南(二)。今天我们讲解一下负提示词。

负提示词

负向提示词:简单说就是告诉AI你想不要绘制什么,不要在画面中出现的内容。

1-1

可以看到在Web UI页面中负提示词也是和正提示词一样,有一个输入框,一般我们不输入也是可以的。

使用负面提示词是引导图像的另一种好方法,这里放的不是你想要的东西,而是你不想要的东西。它们不一定必须是物体,也可以是样式和不需要的属性。 (例如丑陋、变形等)

同时对于v2模型来说,使用负面提示词是必须的。如果没有它,图像看起来会远不如v1的图像。对于v1和SDXL模型来说,它们是可选的,但我经常使用它们,因为它们要么有帮助,要么无害。

比如使用通用的负提示词。

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, blurry, draft, grainy
丑陋、平铺、手画得不好、脚画得不好、脸画得不好、出框、多余的肢体、毁容、变形、身体出框、解剖结构不良、水印、签名、切断、对比度低、曝光不足、曝光过度、不好艺术、初学者、业余、扭曲的脸、模糊、草稿、颗粒状

比如生成的图片:

1-2

使用负提示词

负提示词是让Stable Diffusion输出结果更符合要求的另一种方式。与需要绘制蒙版的不同,你可以使用负提示词并享受文本输入的所有便利。事实上,有些图像只能通过使用负提示词来生成。

比如下面的例子:

Portrait photo of a man

1-3

好的,我们得到了我们所期望的。毫不奇怪。不过,这些人看上去有些太严肃了。让我们试着把他们的胡子去掉,让它们看起来更亮丽一些。我们来尝试一下提示:

Portrait photo of a man without mustache

1-4

我们这里发现有问题。我们的胡子更加突出!这是怎么回事?罪魁祸首很可能是cross-attention未能将“没有”和“小胡子”联系起来。Stable Diffusion将提示词理解为“男人”和“小胡子”。这就是为什么你会看到他们两个。

那么我们能做些什么来生成没有胡子的男人呢?这是Stable Diffusion做不到的吗?答案就是使用负提示词。如果我们使用提示:

正提示词:

Portrait photo of a man

负提示词:

mustache

1-5

我们终于可以生成一些没有胡子的男人了!同样的使用v2模型您将得到类似的结果。

本例演示了使用否定提示的原理:

如果您看到不想要的内容,请将其放入否定提示中。

负提示词如何工作的

回想一下,在文本到图像调节中,提示词被转换为嵌入向量,然后将其馈送到 U-Net 噪声预测器。在这里实际上有两组嵌入向量,一组用于正面提示,另一组用于负面提示。

正面提示和负面提示是平等的。他们都有 77 个token。您始终可以将其中之一与另一个一起使用或单独使用。

负提示是在采样器中实现的,该算法负责实现反向扩散。要了解负提示如何工作的,我们首先需要了解在不使用负提示词的情况下采样是如何工作的。

无负提示词的采样

在Stable Diffusion的采样步骤中,算法首先在文本提示词的指导下通过条件采样对图像进行一点降噪。然后,采样器通过无条件采样对同一图像进行一点去噪。这完全是无指导的,就好像您不使用文本提示词一样。请注意,它仍然会扩散到一个像样的图像,例如下面的篮球或酒杯,但它可以是任何东西。实际完成的扩散步骤是条件采样和无条件采样之间的差异。重复此过程一定数量的采样步骤。

1-6

在没有负提示词的情况下,扩散步骤是朝着提示并远离随机图像的一步。

带负提示词的采样

负提示是通过劫持无条件采样来实现的。不使用生成随机图像的空提示,而是使用负提示。

1-7

当使用负面提示词时,扩散步骤是朝向正面提示并远离负面提示的步骤。

从技术上讲,积极的提示会将扩散引向与其相关的图像,而消极的提示则会将扩散引向与其相关的图像。请注意,稳定扩散中的扩散发生在潜在空间中,而不是图像中。图像空间中的上述图形仅用于说明目的。如果您对如何在代码级别实现它感兴趣,请参阅这篇精彩的文章。

采样空间

让我们考虑以下采样空间的图示。当我们使用提示“男人的肖像照片”时,Stable Diffusion会从所有男人的整个潜在空间中采样图像,无论有没有胡子。你应该得到有和没有胡子的男人的图像。

1-8

所有男人形象的空间。

当添加负提示词“小胡子”时,“有小胡子的男人”空格被排除。实际上,我们正在对没有胡子的男性的图像进行采样。

所以我们知道负提示会以一种单独修改肯定提示无法实现的方式删除对象或样式。它的工作原理是劫持每个采样步骤中的无条件采样,以便扩散偏离了负面提示中所描述的内容。

如何使用好负提示词

你能把你不想看到的东西放在负面提示词中。它为您提供了另一种控制文本到图像生成的方法。许多人将其视为 Stable Diffusion v1.5 中的可选功能。随着 Stable Diffusion v2 的发布,情况发生了变化。负面提示变得不可或缺。

移除物体

和前面的去掉“胡子”例子类似,假设您在雨天创作了一幅巴黎的画作。正提示词如下:

autumn in paris, ornate, beautiful, atmosphere, vibe, mist, smoke, fire, chimney, rain, wet, pristine, puddles, melting, dripping, snow, creek, lush, ice, bridge, forest, roses, flowers, by stanley artgerm lau, greg rutkowski, thomas kindkade, alphonse mucha, loish, norman rockwell.

Seed种子值如下:

1923936260

生成的图片中有很多人,如下图:

1-9

如果我想生成另一个,但街道空无一人。就可以使用指定图像的相同种子值,并在负提示中添加“people”。就会得到一张删除了大多数人的图像。

1-10

假如图片中的人还没删除完,那您也可以通过上节学习的语法强调负面提示来告诉稳定扩散要更加努力(people:1.3)。这告诉Stable Diffusion,关键字“people”现在重要性提高了30%。

修改图片

您也可以让Stable Diffusion以使用负提示进行细微的更改。比如您不想删除任何内容,只想对主题进行细微的更改。

让我们处理这个悟空图像:

1-11

看起来是在草原,并且天黑了,我们调整一下。添加草原,黄昏到负提示词中。

1-12

图片中的悟空看起来有点……不成熟,像小朋友一样,我们添加“未成年”这样的负提示词中让他看起来更像成年人。

1-13

负提示中带关键字切换

我们不想看到耳朵出现在图片中,同时在负提示词添加了ear,当我们逐渐添加强度时,画面可能会直接扭曲变形。

现在,如果你确实想使用高度强调 (ear:1.9)该怎么办 ? 这里有一个窍门。

你可以使用关键字切换 ,首先使用无意义的单词作为负提示词,然后 (ear:1.9) 在稍后的采样步骤中切换。

让我们选择 the 无意义、无用的负提示词。 你可以通过将其放入负提示词来验证它的无用性。 你将获得与未放置任何内容相同的图像。

现在我们用它作为负提示词:

[the: (ear:1.9): 0.5]

比如这里我使用 20 个采样步骤,这意味着 the 在步骤 1 —10 不会产生实际效果,而步骤 11 —20 中采用负提示词 (ear:1.9)。

修改样式

负提示词不仅对修改内容有用,对修改风格也有用。为什么要用负提示词来改变风格? 有时,在正提示词中添加太多只会让扩散器感到困惑。 想象一下有人让你同时去77个地方。 如果他们告诉你应该避免哪些区域,将会很有帮助 。

Sharpening

你可以在负提示词中使用“blurry”,而不是在正提示词中使用关键字 “sharp”、“focused” 。 这也许会让图像变得更清晰。

Photorealistic

在负提示中使用“painting”, “cartoon”也会使其更像照片。

比如黑神话-悟空,我们使用特定Lora加通用负提示词生成如下:
1-14
1-15


以上便是负提示词相关内容,关于如何训练自己的Lora,如何使用高级技巧等相关知识后面博主会逐步介绍,欢迎大家关注微信公众号"壁虎说技术",更多AI新技术,新点子在公众号第一时间更新。

壁虎说技术

参考

prompt-guide
how-to-use-negative-prompts

这篇关于Stable Diffusion之提示词指南(三)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1128202

相关文章

CentOS7更改默认SSH端口与配置指南

《CentOS7更改默认SSH端口与配置指南》SSH是Linux服务器远程管理的核心工具,其默认监听端口为22,由于端口22众所周知,这也使得服务器容易受到自动化扫描和暴力破解攻击,本文将系统性地介绍... 目录引言为什么要更改 SSH 默认端口?步骤详解:如何更改 Centos 7 的 SSH 默认端口1

SpringBoot多数据源配置完整指南

《SpringBoot多数据源配置完整指南》在复杂的企业应用中,经常需要连接多个数据库,SpringBoot提供了灵活的多数据源配置方式,以下是详细的实现方案,需要的朋友可以参考下... 目录一、基础多数据源配置1. 添加依赖2. 配置多个数据源3. 配置数据源Bean二、JPA多数据源配置1. 配置主数据

python中各种常见文件的读写操作与类型转换详细指南

《python中各种常见文件的读写操作与类型转换详细指南》这篇文章主要为大家详细介绍了python中各种常见文件(txt,xls,csv,sql,二进制文件)的读写操作与类型转换,感兴趣的小伙伴可以跟... 目录1.文件txt读写标准用法1.1写入文件1.2读取文件2. 二进制文件读取3. 大文件读取3.1

SpringBoot中配置Redis连接池的完整指南

《SpringBoot中配置Redis连接池的完整指南》这篇文章主要为大家详细介绍了SpringBoot中配置Redis连接池的完整指南,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以... 目录一、添加依赖二、配置 Redis 连接池三、测试 Redis 操作四、完整示例代码(一)pom.

Linux内核参数配置与验证详细指南

《Linux内核参数配置与验证详细指南》在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要,本文主要来聊聊如何配置与验证这些Linux内核参数,希望对大家有一定的帮助... 目录1. 引言2. 内核参数的作用3. 如何设置内核参数3.1 临时设置(重启失效)3.2 永久设置(重启仍生效

Python列表去重的4种核心方法与实战指南详解

《Python列表去重的4种核心方法与实战指南详解》在Python开发中,处理列表数据时经常需要去除重复元素,本文将详细介绍4种最实用的列表去重方法,有需要的小伙伴可以根据自己的需要进行选择... 目录方法1:集合(set)去重法(最快速)方法2:顺序遍历法(保持顺序)方法3:副本删除法(原地修改)方法4:

Python运行中频繁出现Restart提示的解决办法

《Python运行中频繁出现Restart提示的解决办法》在编程的世界里,遇到各种奇怪的问题是家常便饭,但是,当你的Python程序在运行过程中频繁出现“Restart”提示时,这可能不仅仅是令人头疼... 目录问题描述代码示例无限循环递归调用内存泄漏解决方案1. 检查代码逻辑无限循环递归调用内存泄漏2.

C#TextBox设置提示文本方式(SetHintText)

《C#TextBox设置提示文本方式(SetHintText)》:本文主要介绍C#TextBox设置提示文本方式(SetHintText),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录C#TextBox设置提示文本效果展示核心代码总结C#TextBox设置提示文本效果展示核心代

PyInstaller打包selenium-wire过程中常见问题和解决指南

《PyInstaller打包selenium-wire过程中常见问题和解决指南》常用的打包工具PyInstaller能将Python项目打包成单个可执行文件,但也会因为兼容性问题和路径管理而出现各种运... 目录前言1. 背景2. 可能遇到的问题概述3. PyInstaller 打包步骤及参数配置4. 依赖

Nginx中配置HTTP/2协议的详细指南

《Nginx中配置HTTP/2协议的详细指南》HTTP/2是HTTP协议的下一代版本,旨在提高性能、减少延迟并优化现代网络环境中的通信效率,本文将为大家介绍Nginx配置HTTP/2协议想详细步骤,需... 目录一、HTTP/2 协议概述1.HTTP/22. HTTP/2 的核心特性3. HTTP/2 的优