如何在没有经过稳定扩散的额外培训的情况下介绍新主题?

问题描述 投票:0回答:1

假设我有一个包含 1000 个口袋妖怪的数据集,我有 10 张皮卡丘图像,10 张 Bulbasaur 图像等。 我还有一个元数据,准确指定了每个口袋妖怪的名称。所以从元数据中,我可以知道哪个图像是皮卡丘,哪个图像不是。 我想微调一个稳定的扩散模型来绘制宠物小精灵,提示如下“[name] 的绘图”,其中 name 是我想要绘制的宠物小精灵的名称。在数据集中绘制任何具有众所周知名称的神奇宝贝应该没问题。我什至应该能够以口袋妖怪的风格画出唐纳德特朗普,因为基础模型已经知道唐纳德特朗普。

问题是当我想画一个全新的口袋妖怪时,模型不知道它的名字。假设我的口袋妖怪叫做“Megachu”,它基本上是一个厚实的皮卡丘,有红色的身体和翅膀。 我想通过自己绘制 Megachu 来向 Megachu 介绍模型,并以某种方式向模型展示图像。常见的方法有 Dreambooth、Textual Inversion、DreamArtist 等,但它们都需要我训练模型,耗时长且成本高。

所以我想要的是以某种方式提供模型 Pokemon 嵌入向量,以便模型知道如何根据其嵌入而不是其名称来绘制任何 pokemon。 给定一个像 Megachu 这样的新口袋妖怪,我只想通过嵌入提取过程运行 Megachu 图像并将嵌入提供给模型,以便它可以绘制我的 Megachu。 我觉得应该和face embedding的训练过程大致相似

总的来说,我对稳定扩散架构非常陌生。请给我一个方法

  1. 从 1000 张图像训练 Pokemon 的嵌入向量(最好使用 Stable Diffusion 的现有权重来辅助该过程,以便它可以在少量数据下准确)。我应该修改哪个模型层?我应该只将这个向量表示为标记吗?
  2. 从任何图像中提取口袋妖怪嵌入。嵌入的模型是否应该与扩散模型本身分开?

我尝试了稳定的扩散变化,但它没有保留角色。例如,如果我给它 Megachu,它会改变我的口袋妖怪的颜色,改变翅膀形状或身体厚度。

deep-learning computer-vision embedding word-embedding stable-diffusion
1个回答
0
投票

我已经详细研究了稳定扩散架构所以让我自己回答:

  1. 分别训练嵌入模型,类似于人脸嵌入模型或 CLIP 模型。然后将嵌入向量连接到 UNet 的每一层并对其进行训练。
  2. 是的。研究 Stable Diffusion 的模型架构,您将了解如何注入这种特殊的嵌入作为图像生成的指导。这称为调节模型。
© www.soinside.com 2019 - 2024. All rights reserved.