[AIGC] 利用 Interrogation 获得更好的结果

英文原文:https://cobaltexplorer.com/2023/07/using-interrogation-to-get-better-results/

在这里插入图片描述
在我的上一篇博客中,我谈到了通过在Stable Diffusion中制作角色表来实现角色一致性的问题。这是我第一篇关于这个主题的博客,竟然引起了几千人的浏览和大量的问题。是否有办法完善结果?身体如何?表情?如何限制变化?为什么不直接使用 ROOP?为什么不单独生成图像?

反馈显示,在使用人工智能生成图像方面,人们的经验水平参差不齐,从绝对的初学者到技术高超者都有。由于我不想让这篇博客太长,所以我做了很多假设,也少走了一些弯路,我想大家会自己去尝试和 “填补空白”。同时,社区的互动也帮助我完善了我的流程,这非常好!谢谢大家

不用说,我认为与其直接跳入像“训练 LoRA”这样具有如此广泛的经验水平的高级主题。我会创建一个我认为非常有帮助的临时主题:使用 Interrogation 来获得你想要的结果。

什么是…为什么要 Interrogation ?

审问或字幕可以帮助我们完善我们所使用的提示,让我们能够看到人工智能系统是如何标记和分类的,以及它使用了哪些术语。通过观察这些,我们可以进一步完善我们的图像,以达到我们心目中的概念,或者通过负面提示将其删除。

我们需要这样做的主要原因是 “偏见”,这是人工智能模型固有的挑战。在训练人工智能模型时,我们希望将偏差降到最低,但由于我们使用的术语具有主观性,偏差就会悄然出现。当我们使用一个负面提示的术语时,例如 “丑陋”,我们就注入了自己的偏见,并可能限制我们想要的 "粗犷性格 "的可变性。有些词语在很大程度上倾向于女性结果,而不是男性结果。这也是很多人工智能生成的图像具有相似面孔的原因。我们能提供的细节越多,对我们越有利,结果就越好,越独特。

我们知道,通过提示,我们可以告诉稳定扩散“我想要更多这个,更少这个”,但是我们如何定义“这个”是什么。这就是稳定扩散中 interrogation 工具(BLIP、CLIP、WD14、DeepBooru)的用武之地,您可以在 img2img 选项卡上找到其中两个。
在这里插入图片描述
对于本演练,我还建议从“稳定扩散扩展”选项卡安装扩展“clip-interrogator-ext”,因为这提供了一些非常有用的增强功能,我将在下面使用它。

让我们开始吧

在本教程中,我将创建一个吉卜力风格的 "雇佣兵 "角色,工作流程如下所示,我们在每个阶段都会使用 interrogation 来实现最接近输入的输出。

在这里插入图片描述
第 1 步和第 2 步实际上完成了 90% 的工作,这也是我们今天要重点关注的地方。

定义角色原型

对于这一步,我将使用 RevAnimated 作为我的基本模型。我最初的提示很简单

Portrait of a mercenary, facing camera

我现在将跳过反向提示,并从 batch 计数为 10 的所有默认设置开始:
在这里插入图片描述
我的结果:

在这里插入图片描述
幸运的是,一切都以正确的方式开始,我正朝着我的雇佣兵“理想”的大方向前进。我在这组中看到的最接近的是第一行的最后一张图像。那么让我们来质疑一下。通过询问,我们将了解经常用来描述这一点的术语。为此,我们将单击图像并“发送到 img2img”。然后在 img2img 选项卡上单击“询问 CLIP”,对于我的图像,它会出现此提示(重点是我认为积极与消极的特征):

a man with a gun and a beard wearing a uniform and a fur collar and a beard with a gun in his hand, Andor Basch, cushart krenz, a character portrait, serial art

现在点击‘Interrogate DeepBooru’,我的结果:

1boy, ak-47, assault rifle, beard, blonde hair, bullet, bullpup, coat, facial hair, finger on trigger, fur-trimmed jacket, fur collar, fur trim, gun, handgun, heckler & koch, holding gun, kalashnikov rifle, m4 carbine, machine gun, magazine (weapon), male focus, manly, pistol, revolver, rifle, scope, sling, sniper rifle, solo, stubble, submachine gun, suppressor, weapon, weapon on back

其他特征也很有用,但我主要关注的是 “外观”,而不是枪支和其他细节。现在让我们把它移到interrogator 选项卡上(正如开头提到的,这是一个附加扩展,可通过扩展面板安装:clip-interrogator-ext)。为此,右键单击 txt2img 中的图片,另存为到桌面,然后在标签页中打开。你会发现你可以从许多不同的 "CLIP "模型中进行选择,但我们将在这里使用默认模型。

在这里插入图片描述
Prompt:

a painting of a man with a gun in his hand, charlie bowater character art, blonde shaggy hair, aged shaggy ex military soldier, detailed anime soft face, test subject supersoldier, blond furr, dating app icon, bloodborn, name of the character is chad, quint, behance. polished, heterochromia, joongwon jeong, caracal cyborg

这个提示反应有一些有趣的术语,谁知道“异色症”是一个有用的提示术语?我不希望我的角色有这样的情况,所以我会取消它。您还会注意到我将“detailed anime”与“soft face”分开。我知道我想要“detailed anime”,但我不确定我想要“soft face”,我更喜欢更粗糙的。

最后,我们将停留在“Stable Diffusion”选项卡上,但单击其“Analyze”子选项卡,在此处再次上传您的图像,然后单击底部的“Analyze”,这是我得到的一般结果。

在这里插入图片描述
太好了,让我们用它来收集更多术语:

正面:

  • Rugged male ranger
  • Detailed character portrait
  • Artstation
  • serial art

负面:

  • furry art

综合起来,我们现在拥有以下要添加到提示和否定提示中的特征:

在这里插入图片描述
因此,让我们测试一下,将原来的提示修改为:

新的提示词:

Portrait of an aged ex miliatry officer, mercenary with a gun and beard, black short hair, brown eyes, facing camera, facial hair, male focus, manly, detailed anime, rugged ale ranger, detailed character portrait, artstation, serial art

新的反向提示词:

fur collar, blonde, hair, fur-trimmed jacket, fur trim, blonde shaggy hair, soft face, heterochromia, furry art

上面,我还添加了黑色短发和棕色眼睛,因为这就是我想要的,并且我没有在原始提示中定义它。所以,让我们尝试一下,我将运行 20 个,再次仅使用基本设置。

在这里插入图片描述
好的,这与我的想法非常接近。从这里开始,如果模型仍然不是您想要的,您可以添加一些自己的提示术语,也许在负面提示中添加“面部疤痕,疤痕”,或者再次运行它进行询问并进行更多微调,玩它。

对我来说,一件事是我想要更多一点“吉卜力工作室”的氛围,所以我要把它添加到我的提示中。这提醒我,艺术风格确实影响输出。我建议 100% 从 GitHub 下载 Stable Diffusion Cheat Sheet,以帮助指导您的输出达到您喜欢的艺术风格,您甚至可以混合艺术风格,随心所欲地发挥创意。

这是我的最终输出:
在这里插入图片描述
我对此的最后提示是:

Portrait of an ex miliatry officer, mercenary with a gun and beard, black short hair, brown eyes, facing camera, facial hair, male focus, manly, detailed anime, rugged ale ranger, detailed character portrait, artstation, serial art, (by studio Ghibli:1.3)

最后的负面提示:

fur collar, blonde, hair, fur-trimmed jacket, fur trim, blonde shaggy hair, soft face, heterochromia, furry art , blurry

对于这组,我将选择左下角(种子:1178841349)

在这里插入图片描述
在我的工作流程中,此时我想做的是回收种子,然后再运行 20 次,使用一个较小的变化数,比如 0.15。

在这里插入图片描述
结果:
在这里插入图片描述
我可能有点挑剔,但最后一个雇佣兵似乎是最接近我所想的“原型”,他的变体是(种子:1700595277),现在将图像保存到桌面。
在这里插入图片描述

创建面板:

为什么要创建面板?好吧,如果你的意图是一次性“我得到了我的雇佣兵爆头”,而这就是你所需要的,那么你就完成了。但是,如果您的意图是“我想要一个可以摆姿势、工作、放入不同环境、服装风格等的角色……”那么创建角色表(来自此博客)是实现这一目标的一个步骤。

我们将首先使用这两个资源创建一个 3 面板:

在这里插入图片描述
在这里插入图片描述
我们暂时将保留在 txt2img 中,但我们将广泛使用 Controlnet,类似于我们在上一篇博客中的做法。

首先,我们要稍微修改一下提示,以便为人工智能提供指导: Portrait of an ex miliatry officer, mercenary with a gun and beard, black short hair, brown eyes, facing camera, facial hair, male focus, manly, detailed anime, rugged ale ranger, detailed character portrait, artstation, serial art, (by studio Ghibli:1.3)

我们只需将其更改为:A series of portraits of an ex military officer, mercenary with a gun and beard, black short hair, brown eyes, facing camera, identical, facial hair, male focus, manly, detailed anime, rugged ale ranger, detailed character portrait, artstation, serial art, (by studio Ghibli:1.3)

使用以下设置:
在这里插入图片描述
在 controlnet 中,我们将使用 3 个 controlnet 控制来获得输出: 姿势、线形、参考。如果只显示一个控制网,也没关系。跳转到 “Settings”->“Controlnet”,然后更改 "Multi ControlNet: 最大模型数量(需要重新启动)"改为你想要的数量,我的设置是 4。

面板 1:
在这里插入图片描述
面板2:
在这里插入图片描述
面板3:
在这里插入图片描述
在这里,我们很可能不需要使用 interrogation 功能,但如果您的面板开始显示一些无法在底片提示中描述的异常情况,请使用上面的询问工具。这里需要注意的一点是,由于每个肖像面板都小于 512×512,这将会降低细节和精确度,但实际上这并没有问题。我们在这里不需要精确,只要接近 "公平呈现 "即可。想想 “头型”、"眼睛位置 "等…非常笼统的特征。一旦有了正确的基础,我们就可以把它放到 img2img 中进行最后的步骤。
在这里插入图片描述
这是一个例子,其中两个面板非常接近。我通常会做的是保存它,然后裁剪并保存第一张图像并询问它。其中出现了“1girl, young woman”,所以我添加了这些。

在查看输出结果时还发现了其他一些问题:我的角色脸部比较 “厚重”、"圆润 "或 “宽阔”,这样出来的效果有点太窄了,所以我添加了(heavy and round face:1.1),我还意识到我在正常提示中从未明确说过 “男性”(这是一个很好的偏差例子,模型在很大程度上推断我指的是男性),所以我在这里添加了这一点。我在否定提示中添加的另一个提示变化是 “眯眼,眯眼”。

最终提示词:

A series of portraits of an ex military officer, mercenary with a gun and beard, (man:1.3), black short hair, brown eyes, open eyes, facing camera, (identical:1.3), (wide and round face:1.2), (grey background:1.3), full cheeks, facial hair, male focus, manly, detailed anime, rugged ale ranger, detailed character portrait, artstation, serial art, (by studio Ghibli:1.3)

反向提示词:

fur collar, blonde, hair, fur-trimmed jacket, fur trim, blonde shaggy hair, soft face, heterochromia, furry art , blurry, child, boy, girl, woman, youth, (young man), (young woman), (1girl), squint, squinting, gaunt, ghailan!, caleb from critical role, ponytail hair

本阶段最终结果:
在这里插入图片描述

转向 IMG2IMG:

专业提示:我发现了一个超级有价值的东西,不知道大家是否都知道。如果你看过我之前的博客,你会发现我描述过灰色背景。原因是背景会影响图片的效果。它会让人工智能产生偏差,产生一种特定的风格,偏离你想要达到的效果。因此,此时我会做两件事:(1)通过扩展程序使用稳定扩散中可用的移除背景扩展程序;(2)使用 Photoshop、Gimp 或其他任何可以让你用中性灰色填充现在空的图像背景的程序(我发现这样做效果最好),然后添加 8 像素宽的边框,同样作为护栏。有时我还会在背景中添加一些噪点,下一步我就会在这张基础图片上这样做。这部分内容我会留到以后的博客中再谈,基本上就是 “如何使用噪点来修改效果”。

也就是说,如果您想跳过该部分,只需单击“发送到 img2img”,然后使用以下设置即可。 YMMV 在设置上,当涉及到 CFG 和去噪时,有些图像需要更多,有些则需要更少。

我的最后提示:

A series of portraits of an ex military officer by (Studio Ghibli:1.3), mercenary with a gun and beard, (man:1.1), (wearing a green shirt:1.2), black short hair, (brown eyes:1.4), open eyes, (identical:1.3), (wide and round face:1.2), (grey background:1.3), animation, facial hair, male focus, manly, detailed anime, rugged ale ranger, artstation, serial art

反向提示:

fur collar, blonde, hair, fur-trimmed jacket, fur trim, blonde shaggy hair, soft face, heterochromia, furry art , blurry, child, boy, girl, woman, youth, (young man), (young woman), (1girl), squint, squinting, gaunt, ghailan!, caleb from critical role, ponytail hair

设置:
请注意,我删除了背景,用一些嘈杂的灰色替换它,然后重新添加了条形。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在几个样本之后我稍微调整了一下设置,主要是使用 CFG,我的最终结果:

如果我没有添加任何线条或添加噪音,则输出如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
您会注意到,在上面的第二张图片中,我为输出添加了一些噪点,这有助于增加整体 Ghibli 效果。

总结

至此,我们完成了本教程,了解了如何在稳定扩散中使用询问并获得接近概念的结果。我计划在下一篇文章中介绍如何将人体添加到我们已经生成的图像中。为此,我们需要使用 Python 脚本对图像进行后处理,这将减轻大量的手动工作。