logo
pub

使用单张图片和注意力掩码训练 Flux AI 模型

问题:数据集有限

有时候,你手上只有一张不错的图片。你可能觉得这样不足以训练出一个强大的模型,但其实用Flux AI,即使只有一张图片,也能搞定。关键是怎么充分利用你现有的资源。

解决方案:单图训练

用一张图片进行训练,可能没有用更多的图片那么强大,但还是能根据你的需求给出不错的结果。下面是一些简单步骤,帮助你有效利用这张单图进行模型训练。

单图数据集

优化你的标题

因为只有一张图片,所以花点时间好好优化标题很重要。标题对模型理解和表现影响很大。

注意要点:

  • 触发词: 要不要用触发词?对于风格来说,这个可以选,但对于角色数据集来说,最好总是加个触发词,这样能更好地管理不同角色。
  • 全描述: 把图片中的每一个细节都描述清楚。
  • 避免风格描述: 不需要单独描述风格。
  • 考虑使用遮罩训练: 这种方法可以帮助模型专注于主题,避免被背景元素分心。

风格数据集的建议

  • 如果风格足够独特,触发词可以省略。
  • 详细描述图片内容,但不必明确指出风格。

角色数据集的建议

  • 一定要用触发词(比如“GoWRAtreus”)。
  • 描述图片中所有元素,不要试图“蒙混过关”,省略想让模型记住的细节。

遮罩训练

遮罩技术

遮罩训练就是用透明背景或黑白图片作为遮罩。白色区域会被训练,黑色区域会被忽略,这样模型就能专注于主题。

好处

主要好处是,遮罩训练能让模型学习重要元素,而不被背景干扰。这样的方法能确保更好的泛化,尤其是只用一张图训练的时候。

训练示例:有遮罩和没有遮罩的对比

没有遮罩的训练

没有遮罩的示例图片

没有遮罩的训练导致模型学到了不必要的背景元素。

有遮罩的训练

有遮罩的示例图片

用遮罩图片训练成功地隔离了主题,得到了更好的泛化和更理想的结果。

如何制作好的遮罩

  • 自动化工具: 可以试试 Inspyrnet-Rembg
  • 手动编辑: 也可以用 Photoshop 或 Photopea 手动制作遮罩。保存最终图片为透明PNG格式。

哪里进行训练

Flux AI模型可以在各种平台上训练:

  • ComfyUI: 这个平台支持遮罩训练,很有效。我就是用它来训练我的模型的。
  • 其他: 像 OneTrainer 和 kohya_ss 的训练器,也开始支持遮罩训练。可以查一下它们的文档了解更多。

示例数据集和模型

以下是一些使用单图数据集训练的模型示例:

过拟合和问题

虽然单图训练很有用,但过拟合是个问题。为了缓解过拟合,可以关注训练时间和步骤:

  • 留意视觉伪影: 纹理问题、模糊边缘和鬼影都是过拟合的迹象。
  • 调整训练轮次: 多关注轮次,而不是重复次数,保存多个版本以找到表现最好的模型。

常见问题

我的单图模型该用什么标题?

  • 包含图片中所有可见细节。根据数据集适度使用触发词。

我的数据集图片应该用什么分辨率?

  • 通常1024x1024或512x512就很好。高分辨率不是必须的,除非你关注很细致的细节。

怎样知道我的模型是否过拟合?

  • 注意反复出现的纹理、鬼影效果和模糊边缘。这些都是模型过拟合训练图片的表现。

我可以用什么工具制作图片遮罩?

  • 像Inspyrnet-Rembg这样的自动化工具,或者使用Photoshop或Photopea等手动编辑工具。

为什么用遮罩图片而不是完全去掉背景?

  • 完全去掉背景可能会导致模型记住一个空白背景,这样会限制它生成多样化背景的能力。

用一张图片训练模型需要多长时间?

  • 在3090 GPU(24GB VRAM)上,训练400步大概需要40分钟。也可以用CivitAI或Shakker等在线训练平台。

还有其他问题吗?

  • 多图训练: 可以试试扩大数据集,用合成数据。
  • GPU规格: 3090 GPU(24GB VRAM)最理想,但其他至少16GB的也能工作。

免责声明

这篇文章是基于Reddit帖子内容的详细总结:https://www.reddit.com/r/StableDiffusion/comments/1fop9gy/training_guide_flux_model_training_from_just_1/