American Dollar Bills

详情

模型描述

美国美元钞票 是我为 Flux 训练的第一个 LoRA。该项目的目标是基于 1 美元、2 美元、5 美元、10 美元、20 美元、50 美元和 100 美元这几种主要面额,生成正面和背面的逼真美元钞票图像。它最初只是一个充满好点子的实验,但最终结果并不完美。然而,得益于我对学习的热情以及提升模型创建技能的愿望,尽管起初缺乏经验,我还是明白了未来该如何改进以实现……

数据集创建

图像搜索与选择

我在网上搜索了从 1 美元到 100 美元各主要面额的美元钞票(正面和背面)图像。我总共收集了 150 张图像,其中包括一些超高清分辨率的图片,确保涵盖多样化的设计与背景。

调整尺寸

使用 Birme 网站,我快速将所有图像转换、调整大小并裁剪为 1024x1024 的正方形格式。

研究钞票设计

由于我不是美国人,也从未去过美国,我花时间研究了美元钞票的设计(虽未深入),重点关注每种面额正反两面的细节。

文本标注生成

我使用 Kohya 中的 BLIP2 为数据集中的每张图像自动生成文本标注,随后通过 Google 翻译手动审查所有标注以确保准确性。最后,在 ChatGPT 的帮助下,我对标注进行了优化,使其更加精确和多样化(例如:“一张一美元钞票”、“一张 1 美元钞票”等)。

在 Civitai 上训练

我选择使用 Civitai 平台进行训练,因为相比 Flux Gym,它对我来说更简单高效。

然而,在完成训练并使用生成的首批图像测试 LoRA 后,我意识到数据集中存在明显的不平衡问题:

  • 大部分图像为 100 美元钞票。

  • 其他面额,如 10 美元钞票,完全缺失。

这种不平衡在生成结果中清晰体现:即使使用通用提示词,LoRA 也倾向于生成 100 美元钞票。

数据集分析与脚本创建

为了理解数据集平衡的错误,我编写了一个简单的 Python 脚本来分析文本标注。该工具通过名为 yes_word.txt 的文件搜索相关关键词(如 “dollar”、“banknote” 或面额数字 1、5、10、20 等),同时使用名为 no_word.txt 的文件忽略无用词(如连词和介词)。

该脚本生成一份报告,突出显示:

  • 最常出现的 10 个单词。

  • 最频繁出现的 10 个数字。

  • yes_word.txt 文件中找到的所有关键词,按频率和字母顺序排序。

这使我确认了数据集存在不平衡问题:100 美元钞票图像过多,而某些面额(如 10 美元)完全缺失。

性能与观察

在我的测试中,我发现使用该 LoRA 配合简单正向提示时,相比未使用 LoRA 的类似生成效果有显著提升。例如:

  • 当作为纹理应用时,它能更均匀地覆盖物体,生成更精细、更可信的图案。通过指定特定特征(如材质类型或纹理),它能完美融入物体结构,使纹理看起来如同材质本身的一部分。

  • 当应用于人物时,它能生成更细致、更逼真的服装。

  • 总体而言,该 LoRA 提升了图像质量,尤其在写实场景中,能生成更精致、更具视觉吸引力的最终结果。

最终思考

美国美元钞票 是一个让我对 LoRA 创建与训练过程有了深刻理解的实验。尽管存在局限性和明显的平衡错误,它仍是我未来模型改进中的重要一步。

主要优势:

  • 在写实场景中,无论是纹理还是人物服装,都能产生高度可信且细节丰富的结果。

  • 可应用于物体与人物。

  • 文件大小仅 18.3 MB。

该 LoRA 的预期效果:

  • 旨在生成逼真的美国钞票图像,尤其侧重于 100 美元钞票(因数据集不平衡)。

  • 在 ComfyUI 中建议使用 1 至 2 的权重以获得最佳效果。

  • 你可以进一步测试它在与钞票相关的优质提示下的表现(如卷起的、成堆的、捆扎的、散乱的等)。

改进方向:

  • 未来要获得更好的版本,我必须在训练前平衡数据集,确保所有钞票面额得到更均匀的覆盖。

  • 我必须积极吸纳更有经验用户的反馈,以改进训练与分析流程。

  • 开发更强大的工具,在训练前分析数据集至关重要。

如果你曾希望生成详细的美国钞票图像,或在项目中融入逼真纹理,请尝试 美国美元钞票!你的反馈将对未来的改进至关重要。

此模型生成的图像

未找到图像。