用生成AI生成漫画人物
关于项目
这是我们在巴塞罗那经济学院(BSE)的数据科学MSC计划的最后一篇论文。目的是创建由艺术家使用计算图像生成设计的新角色的变体。我们与Jordane Meignaud(Instagram:@surunnuagecreation)合作,后者发明了角色,并提供了六个独特的图像。关于图像的所有权利属于乔丹·米尼奥德(Jordane Meignaud),这些图像的任何其他用途都必须得到她的批准。使用这六个图像(或更少)和各种模型,尤其是扩散模型,我们表明微调是解决数据稀缺并为角色生成新姿势的最佳方法。






联系作者
对于任何其他问题,请随时与该项目的作者联系:
- MaëlysBoudier(maelys.boudier@bse.eu)
- NataliaBeltrán(natalia.beltran@bse.eu)
- Arianna Michelangelo(arianna.michelangelo@bse.eu)
一般设置
拥抱面的设置模型和数据集:为了促进节省模型权重,我们创建了一个关于拥抱面(免费)的帐户,并创建了一个以我们选择的名称的“新模型”。每当我们运行代码时,我们都可以手动将权重上传到此模型空间,有时直接将其保存在拥抱面目录中,而不是本地目录。我们还在培训图像中设置了一个“新数据集”,这是使用本地目录上的图像的有用替代方法,因为我们测试了许多运行代码的方法(Google Colab,不同的本地计算机,Kaggle)。在拥抱脸上拥有一个数据集意味着我们也可以直接访问数据集而无需更新文件路径。
拥抱面孔的秘密钥匙:我们选择在拥抱脸上有私人模型和数据集。因此,我们能够在拥抱面上的帐户参数中使用一个称为“访问令牌”的秘密键访问它们。如果您打算将模型直接保存到拥抱面的模型目录中,请确保使用类型的“写”令牌。
注意:您还可以将密钥保存在Kaggle中,以隐藏的用户秘密并秘密地加载它们,以免意外地共享私人秘密密钥。
from kaggle_secrets import UserSecretsClient user_secrets = UserSecretsClient() secret_value_0 = user_secrets.get_secret(\"HF_TOKEN\")
Kaggle上的GPU:在使用GPU使用量之后,我们决定在Kaggle上运行计算要求的代码,这使每个用户每周使用30个小时的GPU使用情况。我们主要使用了P100 GPU,该p100 GPU使我们的洛拉和梦想摊位代码比在笔记本电脑上运行时快10倍。
基线模型
GAN模型
我们探索了可用的文献,并发现了对漫画人物的产生的有限研究,尤其是往年的稀缺数据。尽管已使用生成的对抗网络(GAN)进行图像生成(请参阅Marnix Verduyn的纸张),但它们面临着少于100K图像的巨大挑战。具体而言,鉴别器倾向于在发电机不足的同时(如NVIDIA博客论文中讨论)。
-
漫画艺术生成IR的gans 。 Marnix Verduyn
2021 – 2022学年
阅读论文 -
Nvidia Research使用有限的数据集实现了AI培训突破
2020年12月7日,伊莎·萨利安(Isha Salian)
阅读博客
我们尝试使用只有6张图像的GAN生成基线的尝试表明了这种方法的不足。该模型未能收敛,突出了替代方法或更大数据集的必要性。


扩散模型
我们下一个建立基线的尝试涉及培训一个完整的扩散模型,该模型通过尖锐和降低的过程运作。尽管这种方法也未能获得结论性的结果,但偶尔会产生一些与我们训练图像中颜色相似的蓝色像素。这表明一些潜力但没有定论。


稳定扩散模型
我们的最终尝试建立基线涉及使用经过全面训练的稳定扩散模型,并使用一些精心制作的提示来近似我们的培训图像。这种方法使我们能够评估我们可以实现的潜在视觉质量,即使生成的图像并不能完美地捕获培训数据的所有特定功能。

微调模型
Dreambooth模型
我们首先实施Dreambooth培训技术,该技术使我们能够通过微调传授一个新概念为稳定的扩散模型。这种方法需要调整完整扩散模型的权重,同时在文本嵌入的一小群图像上训练它。从本质上讲,该方法通过将提示转换为文本嵌入,向图像引入噪声,并根据提供的概念将其引导以将其定性化。通过迭代的完善过程,磨练了模型的结构,直到有效地掌握关联为止。最终,这使该模型能够通过关联的图像数据从提示中识别并链接唯一的标识符“ UnicornGirl”。


洛拉模型
此外,我们实施了低级适应技术(LORA),该技术是为了应对微调大语言模型的挑战。当在稳定扩散的背景下应用时,该技术着重于调整神经网络的某些部分。 Lora被应用于将我们的图像数据与文本提示联系起来的跨注意层。这使我们的扩散模型可以识别新单词是不同的概念,在不改变其潜在结构和现有知识的情况下增强其性能,而无需每次重新训练。


Dreambooth + Lora模型
最后,我们通过Lora微调实施了一个梦幻架,通过在不改变原始重量的情况下将其他可训练的层纳入Dreambooth型号,从而提供了显着的优势。在微调过程中,Dreambooth和Lora重量都经过迭代调整,以更好地与目标概念保持一致。 Dreambooth的权重可以提高,以增强模型在将概念与所提供的提示和图像数据相关联时的能力。同时,洛拉权重有选择性地调整模型中各种特征的重要性,从而使其能够更有效地专注于特定概念的细微差别。通过这个组合的训练过程,该模型逐渐提高了其降级图像并将唯一标识符与代表概念相关联的能力。


调整Dreambooth + Lora模型
训练步骤

学习率

推理步骤

漫画书


有关上述任何技术和发现的复杂性的更多信息,我们邀请您阅读我们的全面报告。在此处访问我们的文档:5。文档
如何导航存储库
├── 1. Data ├── 2. Descriptive Statistics │ ├── Image_DataOverview.ipynb │ ├── Image_ColorBreakdown.ipynb │ └── Image_HSV.ipynb ├── 3. Baseline Models │ ├── GAN Models │ │ ├── GAN_Model_Version1.ipynb │ │ └── GAN_Model_Version2.ipynb │ ├── Diffusion Models │ │ ├── Diffusion_32x32.ipynb │ │ └── Diffusion_256x256.ipynb │ └── Stable-Diffusion-XL-Prompt.ipynb ├── 4. Fine Tuning Models │ ├── DreamBooth │ │ ├── DreamBooth.ipynb │ │ ├── DreamBooth_Inference.ipynb │ │ └── DreamBooth_GoogleColab.ipynb │ ├── LoRA │ │ ├── LoRA-Inference.ipynb │ │ └── LoRA.ipynb │ └── DreamBooth-LoRA │ │ ├── DreamBooth-LoRA.ipynb │ │ └── DreamBooth-LoRA-Inference.ipynb ├── 5. Documents │ ├── Comic Story Board │ ├── Comic Strip │ ├── Presentation │ └── Report ├── 6. Generated Images │ ├── DreamBooth │ ├── DreamBooth-LoRA │ └── LoRA └── README.md
