什么是score_9以及如何在 Pony Diffusion 中使用它_Stable Diffusion综合交流社区_Stable Diffusion专区_Qpipi

什么是score_9以及如何在 Pony Diffusion 中使用它

b494e3d39b20240328115511

 

您可能已经看到或在 Pony Diffusion 的提示中使用了它的更长版本,让我们探索一下这个标签是什么,它是如何形成的以及如何正确使用它来生成更好的图像。score_9score_9, score_8_up, score_7_up, score_6_up, score_5_up, score_4_up

 

为什么

AI 模型的(简化)生命周期包括两个阶段 – 训练和推理。

 

在训练过程中,一个不知道如何做任何事情(从头开始训练)或没有特定知识(微调)的模型被反复输入图像-标题对,教它从人类的角度来看有意义的概念。这是一个漫长的过程,对于 Pony Diffusion V6 来说,在非常强大的硬件上花了大约 3 个月的时间。

 

模型完成后,我们开始使用它来生成图像,这称为推理。

 

我们需要克服许多挑战才能真正产生一些好东西。

 

计算机不理解“漂亮”的概念,在推理过程中生成的图像通常与训练期间观察到的图像(质量)相匹配(聪明的人称之为GIGO)。

 

一个明显(不幸的是很幼稚)的选择是只在良好的数据上训练模型。首先,许多概念(即角色、对象、动作)可能没有足够的好数据来帮助模型学习它。其次,我们仍然不知道如何在源图像数据库中将好数据坏数据区分开来。

 

如果我们想要一个多样化的模型(换句话说,一个知道许多字符和其他概念的模型),我们需要尽可能多地获取数据。但是,也不要太多,因为数据越多,训练时间就越长,消耗的美元也就越多。

 

因此,我们需要一种方法来找到所有可用数据中的良好数据子集,然后对该数据集中的图像进行排名。

 

教机器知道什么是好的

幸运的是,我们有办法让机器了解人类认为好看的东西。有很多方法可以做到这一点,但PSAI正在使用一种叫做“基于CLIP的审美排名”的东西。

 

CLIP 或对比语言-图像预训练是一种配对匹配图像和字幕的方法。简单来说,它是另一个在人类创建的大型字幕数据集上训练的人工智能模型,能够接受图像和文本,测量它们之间的相关性。除了学习“狗”或“猫”等概念外,CLIP还学习了“杰作”、“最佳质量”或“高清”等概念(因为这些词在人类创建的图像标题中很常见)。

 

如果您将 Stable Diffusion 与其他模型一起使用,您可能已经使用过此类关键字/标签来提高您世代的质量。

 

那么,如果 CLIP 非常擅长测量哪些图像与“杰作”和其他类似标签相对应,为什么不直接抓住 CLIP 并在任何地方使用它呢?好吧,我们再次面临挑战需要克服。

 

CLIP 已经接受过一些训练,并且使用的字幕质量有些有限,这意味着 CLIP 不太擅长非照片逼真和不太受欢迎的内容,例如小马或卡通毛茸茸的角色(并且在动漫上效果更好)。

 

但是,我们仍然可以使用 CLIP,因为在其内部包含大量信号,这些信号可能没有必要附加一个好名字,但如果我们可以将它们浮出水面,那么我们就可以使用它们将好图像与坏图像区分开来。

 

进入数据标注地狱

为了实施我们的计划,我们仍然需要很多好的图像(但也有很多不太好的图像,还有一些非常糟糕的图像)。我们怎样才能得到一些?好吧,这一次,我们可以查看在流行的 boorus 上分配给他们的各种分数/排名来选择一些图像。

 

在这一点上,你可能会说 – “嘿,等一下。你已经有分数了!只要用它们来挑选好的图像!“,你就会部分正确。一些模型(包括早期的 Pony Diffusion 模型)使用了这样的分数元数据。

 

不幸的是,使用分数会带来两个问题——用户根据质量和内容对图像进行评分,虽然它们通常是相关的,但存在一些偏见,例如 NSFW 内容排名更高,或者特定角色获得独立于质量的优惠待遇,这些分数也受图像年龄的影响,并且在不同的元数据来源之间不匹配(即一个站点上的得分 100 可能是前 1%,而在另一个站点上则是前 1%平均分)。

 

所以,至少我们可以用分数来挑选一些像样的图像分布,现在让我们回顾一下它们,并根据质量手动对它们进行排名,我个人决定做一个 1 到 5 分的范围。尽管如此,仍然存在两个问题——我们需要多少张图片以及谁来对它们进行排名。

 

我们确实需要很多图像,我们希望每种“类型”都有相当数量的图像,一些 3d,一些草图,一些半写实,等等……错过了一些风格,模特将无法学会如何正确判断它们。

 

在 V6 的情况下,这个数字是 ~20k 手动标记的图像。现在,我们需要一个能够观察图像并利用他们的艺术评论技巧来判断我们发明的尺度的人。谁是那个公正的人,不偏不倚和中立,能够根据客观标准而不是个人感受、利益或偏见做出决定或判断?显然是我。因此,在花了数周时间在数据标记洞穴中有条不紊地对每张图像进行排名后,我能够生成足够大的美学数据集,以使其有用。

 

我们现在可以训练一个新模型,该模型将采用 CLIP 的图像表示(我们称之为嵌入)和人工评级,并从中学习如何对新图像进行排名。然后,我们将这个模型用于我们遇到的每张图片的嵌入,并得到 1 到 5 的排名(实际上现在是 0 到 1 的排名,因为计算机更喜欢这个范围)。

 

我们现在解决了两个大问题,首先,我们可以使用这个新模型只选择一组图像来训练新模型,并使用特殊标签注释标题。

 

因此,最好的图像会得到标题喜欢和稍微不太好的图像。score_9, a cute ponyscore_8, maybe not so cute pony

 

现在是培训时间

我们现在有了带注释的数据,终于可以训练实际的 Pony Diffusion。让我们继续显示模型图像和包含乐谱标签的标题,以便它了解哪些乐谱标签对应于好图像,从而为我们提供更可控的“杰作”和朋友版本。

 

但是等等,原来我搞砸了一点!我上面描述的是 PD V5.X 曾经做过一些事情,在 V6 中我也希望能够说——“嘿,给我任何 80% 好的东西”。但是标签只会给我们 80% 到 90% 范围内的图像。也许同时使用两者并且会起作用,但我想验证这一点,所以我将标签形式从简单更改为更冗长的内容,例如 和 .在现实中,我让自己接触到了聪明的汉斯效应的变体,其中模型了解到整个长字符串与“好看”的图像相关,而不是它的单独部分。不幸的是,当我意识到这一点时,我们已经过了训练的中点,所以我只是顺其自然(在发现后我确实尝试使用较短的标签,但由于我们的训练方式,它没有那么强的效果)。score_8score_8score_9score_9score_9, score_8_up, score_7_up, score_6_up, score_5_up, score_4_upscore_8score_8, score_7_up, score_6_up, score_5_up, score_4_up

 

我将在 V7 中修复此问题。

 

TLDR:我们使用一个根据人类偏好训练的模型,用特殊标签标记所有数据,然后在这些标签上训练一个文本到图像模型,允许我们通过使用这些标签向模型询问“好”图像

 

我需要照顾吗?

或。。。在某些情况下。

 

PSAI discord bot 等一些工具会自动添加标签,但在其他 UI 中,您需要自己添加长版本。在某些 UI (Auto1111) 中,您可以将其保存为样式,在其他 UI 中,只需将其复制粘贴到所有提示的开头即可。score_9, ...

 

分数标签有一些偏差,所以如果你使用的是风格/艺术家 LoRA,有时排除标签并查看模型的反应是有意义的。我没有很好的建议在训练中使用它们,因为我自己不做 LoRA。

 

哦,还有一个重要的注意事项 – 这些标签在负数中不太有用,因为你只能低至 4,理想情况下,我们应该将质量一直训练到 1,但这会使训练变得更加昂贵。因此,您仍然可以在负片中使用 score_4/5,但它们不会让您远离非常糟糕的图像。

请登录后发表评论

    没有回复内容