How to Generate Multiple Different Characters, Mix Characters, and/or Minimize Color Contamination | Regional Prompt, Adetailer, and Inpaint | My Workflow
详情
下载文件
模型描述
如何生成多个不同角色、混合角色和/或最小化颜色污染 | 区域提示、Adetailer 和修复 | 我的工作流程
编辑:27.01.25
嘿,已经有一段时间了——确切地说超过六个月了。AI/SD领域变化太快,很难跟上所有可能的错误。每个人使用的WebUI和版本都不同,因此有些功能可能有效,而另一些则不行。
本教程的第1和第3部分主要关注“区域提示”扩展,该扩展在新的Forge(即自引入Flux以来)中已不再支持。旧版Forge和Reforge可能仍支持它。如果你使用的是新版Forge,建议改用 Forge Couple。
我现在新增了第四部分,介绍 SD Forge Couple。大部分基础概念已在第1和第3部分中说明,因此本新部分将专注于Forge Couple的使用方法。其底层逻辑与区域提示扩展相似,但也存在一些差异。
(第4部分中的所有图像均在IllustriousXL/PaSanctuary上生成。)
编辑:30.06.24
我新增了一个简短的安装指南,说明如何安装此扩展。我将在考试结束后尽快继续本教程的第4部分。最近事情比较多,对此造成的不便深表歉意。
0. 简介
大家好,
这是一份会不定期更新的小指南。我会在模型页面上方添加不同版本,展示一些带有元数据的图像,方便你复制粘贴到auto1111/forge中。我选择发布在模型页面而非文章中,是因为这种方式能更好地展示图像,同时也能更清晰地查看评论。无需下载我这里附带的文件。
本指南将介绍区域提示、Adetailer 和修复功能。这些功能在XL和1.5版本中有所不同,因此两者的设置并不完全相同,但相似。
我们需要什么?
SD Forge Couple(第4部分)
检查点和LoRA:
任何角色LoRA,也可用于内置角色。
模型:我使用/需要区域提示的案例:
以下是我发布过的一些模型列表,其中你可能需要或希望使用区域提示以获得最佳效果:
针对Pony:
针对1.5:
针对Illustrious:
注意:1.5版本:1.5 LoRA需要使用Latent模式,但该模式目前在Forge中不可用。本教程暂不涵盖此内容,后续会补充。它稍微复杂一些。
0.5 安装:
首先,启动我们的WebUI(本例中为Auto1111或Forge)。建议使用最新版本。打开WebUI后,进入扩展标签页 -> 从URL安装。在扩展的Git仓库URL中粘贴以下链接:https://github.com/hako-mikan/sd-webui-regional-prompter,然后点击安装。

安装完成后,重启WebUI。我建议关闭WebUI终端并重新运行它。
注意:如果你使用Colab或通过命令行参数 --listen 共享你的WebUI,你可能需要添加额外的命令行参数:--enable-insecure-extension-access。警告:仅当你自己使用WebUI时才使用此参数。如果其他人使用你的WebUI,你必须信任他们,否则你可能会丢失数据或被黑客攻击。
命令行参数文件位于你的WebUI文件夹中,名为 webui-user.bat。右键点击,用文本编辑器或记事本打开进行编辑。

如果你不共享WebUI,无需执行此步骤。仅当你使用 --listen 或使用Google Colab等类似服务时才需要。
1. 区域提示基础(矩阵)(Pony XL):
总体设置:
安装所有必要扩展后,你将在txt2img和img2img中看到“区域提示”标签页。

启用/禁用
有两种生成模式。对于XL,只有“Attention”模式重要,无论是否使用LoRA。“Latent”模式在Forge中无法正常工作,因为XL编码器的问题。关于“Latent”模式将单独开设教程章节。
基础比例用于调整基础提示的权重。如果基础值为0.2,则基础提示的权重为0.2,其余划分区域的权重为0.8。
基础、通用和负面提示:
“使用基础提示”影响整个图像,主要用于背景和/或角色,影响所有划分区域。我个人很少使用它。
“使用通用提示”将该部分的所有提示复制并粘贴到所有区域。
“使用通用负面提示”对负面提示执行相同操作。仅当你希望在特定划分区域中拥有特定负面提示时才启用,否则保持未选中,因为负面提示无论如何都会影响整个图像。
矩阵、遮罩和提示区域:我们稍后会看到它们之间的区别。目前我们专注于矩阵。
主要分割:允许你更改模板的划分方式。更改后点击“可视化并生成模板”即可更新模板。
更改宽度和高度不会影响图像,仅用于可视化模板。你可以保持默认设置。
点击“可视化并生成模板”将更新右侧的模板。
分割比例:
此比例将图像划分为多个区域。设置为1,1将得到2个区域;设置为1,1,1将得到3个区域。你甚至可以为区域设置不同大小。以下是一些示例:
- 1,1 列

- 1,1,1,1

- 0.8, 0.2, 0.8

- 1, 1; 1,1,1

- 1,1; 2, 3, 3

- 1, 1, 1; 1, 1, 1

显示当前模板格式和区域顺序。
交换“,”和“;”。基本无用。
叠加比例可能是决定一个区域及其提示和叠加效果对其他区域影响程度的重要因素。如果你需要精确提示且不希望区域间有太多交互,请降低比例;否则,保持0.5即可。
你的预设
Latent模式选项,对XL用户基本无用。
其他可能用于调试的选项。
生成多个角色:
那么,我们如何使用它?先从最基础的开始。首先启用区域提示,选择通用提示,将比例设为1,1,生成模板,然后设置你的提示:
score_9, score_8_up,score_7_up, source_anime, indoors, standing, cowboy shot, 2girls, seductive smile, from above, hoodie, jeans, looking at viewer,
BREAK yae miko,
BREAK raiden shogun,



这些提示的作用是什么?我们选择了通用提示,这意味着第一行提示将应用于所有区域。在第一个BREAK提示之后,我们进入第一个区域,区域0。这里我输入了一个已经非常稳定的内置角色,无需额外使用LoRA。本例中为 Yae Miko。之后,我添加了另一个BREAK以进入第二个区域,并输入了另一个内置角色,即 Raiden Shogun。
看,是不是很简单?
我们也可以让提示更长或更复杂。尝试相同的设置,但使用更多提示:
score_9, score_8_up,score_7_up, source_anime, indoors, standing, cowboy shot, 2girls, seductive smile, from above, hoodie, jeans, looking at viewer,
BREAK yae miko, black hoodie, waving,
BREAK raiden shogun, white hoodie, hand on hip

好的,再添加一个角色怎么样?听起来很疯狂,对吧?现在,让我们结合使用 LoRA 来引入 @holostrawberry 的 “Fubuki” 。以下是提示词和设置:
score_9, score_8_up,score_7_up, source_anime, indoors, standing, cowboy shot, 3girls, seductive smile, from above, looking at viewer,
BREAK yae miko, black hoodie, hoodie, jeans,
BREAK raiden shogun, white hoodie, hoodie, jeans,
BREAK reaching towards viewer, <lora:fubukiXL:1>, fubukibase, white blouse, detached sleeves, black shorts, blue neckerchief, thigh strap, single thighhigh, white hair, single side braid, ahoge, piercing, fox tail, pentagram,


那么,有什么变化呢?首先,我稍微调整了提示词:将 "2girls" 改为 "3girls",交换了提示词中 hoodie, jeans 的位置,并添加了另一个 BREAK 来引入新角色。在区域提示设置中,我只是添加了另一个分割比例;在这种情况下,是 1,1,1。
正如你所见,结果变得有些不稳定。加入 Cowboy shot、from above 以及生成三个人物的图像,会使维持同一场景变得复杂。然而,如果我们移除 from above,就能得到这张图:

如你所见,我们的图像变得更加稳定,并更贴近提示词。你的提示词至关重要;每一个提示词都可能并确实会引发剧烈变化。如果区域提示中出现不符合预期的情况,请尝试在提示词中更加精确。
我们再来添加一些女孩吧?改为 1344x768 的横向格式,并将采样步数从 24 增加到 30。再添加两个 LoRA:来自 @ChameleonAI 的 Frieren 和 Watame:
score_9, score_8_up, score_7_up, source_anime, 6girls, office, office lady, around table, table, food, beverage, burger, starbucks, shirt,
BREAK yae miko, smirk,
BREAK raiden shogun (genshin impact),
BREAK yoimiya \(genshin impact\),
BREAK FrierenBase, green eyes, white hair, long hair, twintails, earrings, <lora:ChamFrierenPonyXL:1>, eating burger,
BREAK keqing \(genshin impact\),
BREAK <lora:CHAR-TsunomakiWatamePonyXL:1>, TsunomakiWatame, sheep girl, long hair, ahoge, happy, sheep horns, blonde hair


很酷,对吧?在一张图中同时使用两个不同的角色 LoRA,并提示四个内置角色。这么多人物,出现图像错误的可能性很高。
现在,让我们将一些动作或概念与多个角色结合起来。和往常一样,我们从基础开始,加上“拥抱”:
score_9, score_8_up,score_7_up, source_anime, indoors, standing, cowboy shot, 2girls, seductive smile, looking at viewer, hoodie, jeans, hug,
BREAK yae miko, black hoodie,
BREAK raiden shogun, white hoodie


互相拥抱没有太多问题?这是因为我们的整体重叠比例足够高。
现在,我们尝试使用一个名为 Handshake 的概念 LoRA(来自 @justTNP)。设置相同,但使用不同的宽高比(1:1)和不同的提示词:
score_9, score_8_up,score_7_up, source_anime, indoors, standing, cowboy shot, 2girls, seductive smile, looking at another, hoodie, jeans, handshake, <lora:concept_handshake_ponyXL:0.5>,
BREAK yae miko, black hoodie,
BREAK raiden shogun, white hoodie,

如你所见,我将该 LoRA 放在通用提示词中,但权重减半(1 -> 0.5)。请根据你使用的区域数量来平均分配 LoRA 权重。例如,如果你有两个区域,则使用原权重的一半。这样调整的原因是每个区域都会继承该权重,整体图像的 LoRA 权重不应超过合理范围。
编辑:保持批量大小较低。最大批量大小应仅为 4。
此外,使用多个角色时,你需要调整 Adetailer,因为 Adetailer 不受区域分割影响,它会混合面部特征,可能导致某只眼睛的颜色占主导。
2. Adetailer
Adetailer 是一个非常有用的工具,用于检测并自动修复图像。有多种 YOLO 模型,如面部、手部、眼睛、全身、脚部、服装等,但我们将重点放在面部模型上。使用 Adetailer 有两种主要方式:一种是通过 Txt2Img,另一种是通过 Img2Img。
如果你生成一张包含一个人的图像并开启 Adetailer,它会正常工作。但如果你生成两个人的图像,无论是否使用区域提示,其属性大多时候都会混合。另一个角色的主导颜色或特征会覆盖当前区域。下面是如何修复这个问题。
设置:
首先,安装 Adetailer 后我们需要调整一个设置。进入 设置 -> Adetailer -> 按 -> 设置为 “位置(从左到右)”

目前就这些。让我们继续图像生成。
Adetailer(Txt2Img):
首先,我们生成一张不开启 Adetailer 的图像:
score_9, score_8_up, source_anime, 2girls, upper body,
BREAK white shirt, red eyes, black hair, long hair, tongue out, mole under eye,
BREAK black shirt, blue eyes, blonde hair, ponytail, smirk,


如你所见,即使没有使用 Adetailer,结果也相当清晰。这是因为我们使用的是上半身构图。大多数面部会很清晰,但当我们使用 Adetailer 时,可以看到更多细节。现在,我们启用 Adetailer。



两个面部都被 Adetailer 检测到。你也可以注意到,眼下的痣、吐舌头 和 微笑 等特征在这里混合了。这是预期现象。如何解决?简单方法:在 Adetailer 正向提示词中使用 [SEP] 标记。重新生成这张图像,结果如下:


这是一个非常简单的例子。我们尝试用一个 LoRA 来做。这里是来自《艾尔登法环》的 Ranni 和来自《鬼泣》的 Vergil:
score_9, score_8_up, source_anime, cowboy shot, standing,
BREAK 1girl, <lora:Ranni_XLPD_CAME:1>, IncrsXLRanni, wavy hair, cracked skin, blue skin, colored skin, extra arms, extra faces, doll joints, white dress, witch hat, brown cloak, waving, crying,
BREAK 1boy, <lora:dmc5_vergil_ponyXL:1>, dmc5vergil, black coat, fingerless gloves, pants, smirk,
不使用 Adetailer

Adetailer 检测面部:

Adetailer 无提示词:

如你所见,Vergil 获得了 Ranni 的一些特征,如“闭一只眼”和“哭泣”。我们用以下 Adetailer 提示词来修复它:


搞定。这里不再需要其他操作。
你还需要注意的一个最后问题是,某些 VAE 会在面部周围留下痕迹。我目前使用的是 flatpieceVAEXL,它有时会变得很混乱,特别是与其他颜色 VAE 搭配时。这里是一个例子:
score_9, score_8_up, source_anime, 1girl, solo, looking at viewer, cowboy shot, medieval, grass, flower field, cloudy sky, red eyes, long hair, black hair, shirt, jeans


如你所见,它留下了一个方形痕迹,看起来非常奇怪。有两种方法可以修复它。
- Adetailer -> 修复 -> 将修复去噪强度从 0.4 降低到 0.2 以下

- Adetailer -> 修复 -> 使用独立 VAE -> sdxl_Vae(默认)或更中性的 VAE

两种方法都可行。以下是结果:


让我们进入下一节。
Adetailer(Img2Img):
如果你已有图像,并且不想在 txt2img 中使用 Adetailer(以节省 VRAM),你可以将该图像移到 img2img 标签页。这样,你可以在不反复重新生成图像的情况下,更灵活地尝试不同的提示词。我们的起始图像是:

如你所见,面部有些偏差。我们现在将该图像移至 img2img,并调整设置和提示词:


重要设置:
将宽度和高度设置为 1024x1024(用于 XL)或 512x512(用于 1.5)
将去噪强度设置为 0.9(在 img2img 中)
在 Adetailer 中设置你的提示词
启用“跳过 img2img”
结果:


好的,这在两张面孔上效果相当不错。但如果是多张面孔呢?这也很简单。我们使用区域提示的初始图像:

设置提示词:

Adetailer 检测:

结果:

如您所见,Adetailer 检测到 6 个面部。我们使用 [SEP] 标记将每个面部分隔开,并从左到右依次调整每个面部。您可能会想知道,如果我直接输入两个提示词,但为 6 个面部只使用一个 [SEP] 标记会发生什么?答案是:第一个面部接收第一个提示词,其余 5 个面部接收第二个提示词。
如果您只使用一个提示词,也可以创造出有趣的效果。以下是 DIO 的面部 LoRA:


好了,本节内容到此为止。下一次更新将更多关注“区域提示遮罩”而非矩阵。
3. 区域提示(遮罩)
遮罩模式是一个非常有用的工具,可直接在您希望应用提示的区域上进行绘制。它还能更好地控制区域之间的重叠。@PotatCat 是遮罩模式的忠实粉丝,这也不难理解。如果您想尝试并看看可能实现的效果,请查看他的图片画廊。
总体设置与区域修补:
首先,让我向您介绍其总体设置。一开始可能会觉得有点复杂,但请耐心跟随。在我们的区域提示中,我们不再选择“矩阵”,而是选择“遮罩”。
我们首先需要将宽度和高度调整为我们期望生成的初始尺寸。在我的情况下,是 832x1216。之后,点击“创建遮罩区域”。这是第一步。现在我们可以开始绘制了。绘制完区域后,点击“绘制区域 + 显示遮罩”。
如您所见,区域滑块从“1”变为“2”,同时在其旁边显示了一个遮罩。如果您再绘制另一个区域并再次点击“绘制区域 + 显示遮罩”,系统将自动进入下一个区域并更新输出遮罩。
您可以通过重新选择相同的编号并像平常一样绘制,来向现有区域添加内容。在此示例中,我们选择区域 1,进行绘制,然后再次点击“绘制区域 + 显示遮罩”。

我们还可以通过在区域滑块上选择 -1 并点击“绘制区域 + 显示遮罩”,来显示遮罩区域中的所有区域。

基础提示的特殊情况:
现在,我们来讨论基础提示。在遮罩模式下同时使用基础提示和通用提示是有利的,因为基础提示会填充所有未被遮罩的区域。
当基础提示关闭时,任何未上色的区域将被添加到第一个遮罩中(因此应由第一个提示填充)。当基础提示开启时,所有未上色的区域将完全接收基础提示,而上色区域则接收通常的基础权重。
在这种情况下,基础比例可以设置为 0,以避免背景与遮罩区域之间的渗色。或者,您可以将权重设置得更高,例如 0.2 的比例。在此场景中,修补区域的影响比例为 0.8。我建议保持在 0 或 0.2,不要更高。
遮罩中的提示:
现在我们使用带有基础提示的遮罩模式,需要略微调整我们的提示方式。从小处开始,我们启用“基础提示”和“通用提示”,遮罩我们的区域,并输入:
score_9, score_8_up,score_7_up, source_anime,
BREAK forest, grass,
BREAK yae miko, from behind, sitting, full body, kneeling,
BREAK moon, full moon,
BREAK hill,

发生了什么?
第一个提示:score_9, score_8_up,score_7_up, source_anime 会应用于所有区域,因为这是我们的通用提示。
第一个 BREAK 描述了我们的基础提示,本例中为 BREAK forest, grass,。
我们的第一个区域为浅蓝色遮罩,提示为 yae miko, from behind, sitting, full body, kneeling。
第二个区域为绿色,提示为 BREAK moon, full moon。
最后一个区域为紫色,提示为 BREAK hill。
我们的三个区域分别接收各自的提示,而基础提示则填充所有未绘制的区域。
让我们再试一个例子,这次使用 LoRA:
score_9, score_8_up,score_7_up, source_anime,
BREAK burning kitchen, messy, flames,
BREAK <lora:Doro_X_PDXL_V1:1>, doro, burning, cooking, creature, :3, chibi, pink hair, purple eyes, hair bun, hair bow, no humans, white skin, four legs, solid circle eyes, no pupils,
BREAK <lora:elie-pdxl-nvwls-v1:1>, zeroElie screaming, horrified, arms up, hands behind head, standing, black hairband, hair ribbon, long hair, ascot, uniform, long red sleeves, white dress, pencil skirt, belt, white hair,

如您所见,两个区域都接收了我们指定的提示。这相当简单。我们还能做什么?我们可以创建交叉区域。以下是一个例子:
score_9, score_8_up, score_7_up, source_anime, 2girls, princess carry,
BREAK cherry blossoms, outdoors, day,
BREAK raiden shogun, expressionless, holding person, black shirt, jeans,
BREAK yae miko, happy, black pantyhose, pencil skirt, white shirt, office lady,


我们还需要像之前学过的那样调整 Adetailer。如您所见,如果交互跨越区域,我们可以重叠两个区域。不幸的是,矩阵模式无法实现这一点,但遮罩模式可以轻松做到。
这不仅仅是重叠;元素也可以共存于单个内部区域中。再举一个例子:
score_9, score_8_up,score_7_up, source_anime,
BREAK cherry blossom,
BREAK 1girl, red eyes, black hair, white shirt, long hair, seductive smile, holding creature, holding pikachu,
BREAK pikachu, pokemon (species), smile, open mouth,
BREAK bird, flying bird

这使得持有动物或物体变得相当容易。但有时,您希望捕捉物体的印记,而 SD 并未完全捕捉到。您也可以在遮罩模式中实现这一点。
如果我们不使用区域提示进行提示:
score_9, score_8_up, score_7_up, source_anime, 1girl, cherry blossoms, shirt, watermelon, watermelon print, jeans, yae miko,
它往往会生成这样的结果:
如果我们不使用区域提示,它往往会生成物体被手持的效果,即使我们提示的是“图案”。如果我们加入区域提示,情况就不同了:
score_9, score_8_up, score_7_up, source_anime, 1girl,
BREAK cherry blossoms,
BREAK shirt, watermelon, watermelon print,
BREAK jeans,
BREAK yae miko,

就这样。这一部分比较简短,因为大部分内容之前已经解释过了。我现在将离开三周,所以下一次更新可能会晚一些。下一部分将包含“修补”部分,讲解如何修正错误并减少模糊。
4. Forge Couple - 高级
(Forge Couple 适用于 ComfyUI。参见:链接1 & 链接2)
总体设置:
安装所有必要扩展后,您将在 txt2img 和 img2img 界面中看到一个名为 “Forge Couple” 的标签页。


启用/禁用
启用时: 该扩展在高分辨率修复(Hires Fix)过程中将不生效,以提高与其他扩展的兼容性。
基础、高级和遮罩:
基础: 将图像划分为多个图块。您可以在该标签页中配置方向。我很少使用,因此这里不作介绍。
高级: 允许您手动指定每个区域。
遮罩: 类似于本教程第 3 节,您可以遮罩特定区域,而不是使用矩阵。
分隔符: 留空时,默认为“\n”(即按回车键创建新行)。建议保持默认。
默认映射: 重置当前矩阵。
主分割: 允许您更改模板的分割方式。更改后,模板将相应更新。
模板: 显示当前分割和映射的可视化表示。
从 img2img 导入图像: 从 img2img 导入图像。
预设: 允许您选择或保存自己的预设。
通用提示: 允许您选择通用提示的语法。
调试: 启用调试模式。
SD Forge Couple - 高级:
映射可能一开始看起来令人眼花缭乱。我们从默认配置开始:
启用 Forge Couple,进入 高级 部分。第一行已包含一个提示词;这是您在生成标签页中使用的提示词:
当您添加新行时,它将显示为第二行。您也可以直接在 Forge Couple 中编辑提示词——任选其一即可。

右侧的颜色表示每个提示词适用的区域。点击某个提示词,将在模板中高亮显示对应的区域。


您可以通过 x1, x2, y1, y2 调整区域大小。
“w” 设置权重(保持 1 完全没问题)。
水平轴为 X,垂直轴为 Y,数值范围从 0 到 1。
确保不要留下空隙,否则生成可能会失败。
当你点击一个提示词时,你会看到两到三个新按钮:
新建:创建另一个区域。
X:删除当前选中的区域。
调整 X 和 Y 值也会改变模板。以下是一些示例:

你还可以直接在模板中编辑区域。只需在提示词列表中高亮对应的区域并进行修改即可。PS:区域也可以重叠。




以上是“矩阵”部分的基本内容。下面是一些带有对应区域和元数据的示例图像:
masterpiece, best quality, newest, absurdres, highres, 1girl, yae miko, back-to-back, anime,
masterpiece, best quality, newest, absurdres, highres, 1girl, raiden shogun, back-to-back, realistic,


Forge Couple 的一个便捷功能是使用 LATENT,它允许你为每个区域分离风格——这是区域提示扩展无法实现的。以下是一个示例:
masterpiece, best quality, newest, absurdres, highres, indoors, 1girl, SplitScreen, split screen, upper body, <lora:SplitScreen_illusXL_Incrs_v1:1>, pa-san, purple colored inner hair, ear piercing, hime cut, choker, black dress, long dress, shoulder cutout, seductive smile, green eyes, <lora:FEGBA-PortraitsV2-illus_Fp:1> portrait, pixel art,
masterpiece, best quality, newest, absurdres, highres, indoors, 1girl, SplitScreen, split screen, upper body, <lora:SplitScreen_illusXL_Incrs_v1:1>, pa-san, purple colored inner hair, ear piercing, hime cut, choker, black dress, long dress, shoulder cutout, <lora:MinimalismStyle-Illustrious-V2:1> flat color, limited palette, no lineart, no eyes,

以下是一个更复杂的设置:
masterpiece, best quality, newest, absurdres, highres, color wheel challenge, multiple girls, yae miko, close-up,
masterpiece, best quality, newest, absurdres, highres, color wheel challenge, multiple girls, raiden shogun, close-up,
masterpiece, best quality, newest, absurdres, highres, color wheel challenge, multiple girls, yoimiya \(genshin impact\), close-up,
masterpiece, best quality, newest, absurdres, highres, color wheel challenge, multiple girls, yelan \(genshin impact\), close-up,

目前就这些。在下一节中,我们将重点介绍 Forge Couple 的 Mask 部分。

