Chroma:一个开源的8.9B文生图模型

Chroma 模型讲解

一、模型概述

Chroma 是一个基于 FLUX.1-schnell 的 8.9B 参数模型。它采用了 Apache 2.0 许可证,完全开源,允许任何人使用、修改和在其基础上进行开发,不存在企业限制。该模型目前正在训练中,训练数据集从 20M 样本中精心挑选出 5M 数据,涵盖动漫、兽类、艺术作品和照片等多种类型。Chroma 模型完全未经过审查,重新引入了缺失的人体解剖学概念,旨在成为一个可靠且开放的开源选择。

二、相关链接

三、模型目标与支持

Chroma 致力于成为一个开源、未经过审查且为社区打造的模型。目前的预训练运行已经使用了 6000+ H100 小时,长期维持成本较高。

四、如何运行模型

(一)ComfyUI

1. 要求
  • Chroma 检查点(在此仓库中选择最新版本)

  • 替代选项:FP8 缩放量化(ComfyUI 使用的格式,可能提高推理速度)

  • 替代选项:GGUF 量化(需要安装 ComfyUI-GGUF 自定义节点)

  • T5 XXL 或 T5 XXL fp8(两者均可)

  • FLUX VAE

  • Chroma_Workflow

2. 安装步骤

(1) 进入 ComfyUI 的 ComfyUI/custom_nodes 文件夹。

(2) 克隆仓库:git clone https://github.com/lodestone-rock/ComfyUI_FluxMod.git

(3) 重启 ComfyUI。

(4) 如果 ComfyUI 已经在运行,刷新浏览器。

(5) 将 T5_xxl 放入 ComfyUI/models/clip 文件夹。

(6) 将 FLUX VAE 放入 ComfyUI/models/vae 文件夹。

(7) 将 Chroma 检查点放入 ComfyUI/models/diffusion_models 文件夹。

(8) 加载 chroma workflow 至 ComfyUI。

(9) 运行 workflow。

(二)diffusers [WIP]

简要技术报告、架构修改等内容正在完善中。

五、架构修改

(一)12B → 8.9B

FLUX 有 3.3B 参数用于编码一个输入向量。通过简单实验发现,将这些池化向量置零后,模型输出几乎不变。因此,用 250M 参数替换这些参数成为可能。这些参数原本用于在去噪过程中告知模型所处的时间步,并接收池化 CLIP 向量的信息。由于这些向量被置零后影响不大,所以用简单的前馈神经网络(FFN)替换后,模型大小成功缩减至 8.9B。

(二)MMDiT Masking

在预训练过程中,BFL 忽略了对 T5 和 MMDiT 令牌的掩蔽。例如,短句 “a cat sat on a mat” 在 T5 和 MMDiT 中表示为 <bos> a cat sat on a mat <pad><pad>...<pad><pad><pad>。模型会过度关注填充令牌,从而淹没实际提示信息。解决方法是掩蔽,使模型不与填充令牌关联。但全部掩蔽填充令牌会导致模型分布外,生成模糊图像。因此,解决方案是仅保留一个填充令牌的掩蔽,其余掩蔽。这样,MMDiT 只需关注 <bos> a cat sat on a mat <pad>

(三)Timestep Distributions

在训练扩散/流模型时,会随机采样时间步,但并非均匀采样。因为经验表明,更多地训练某些时间步可使模型更快收敛。FLUX 使用 “lognorm” 分布,优先训练中间时间步。但这种方法存在缺陷:尾部(高噪声和低噪声区域)训练极为稀疏。如果训练时间很长(例如 1000 步),几乎不可能接触到这些尾部区域。当模型最终接触到这些区域时,损失会剧烈波动,即使使用很大的批量大小也会扰乱训练。解决方法是使用 -x² 函数更频繁地采样和训练尾部时间步。这使得分布在 0 和 1 附近更厚,确保更好的覆盖范围。

(四)Minibatch Optimal Transport [WIP]

FLUX 实际上并不是在 “去噪” 图像,而是在训练一个矢量场,将一个分布(噪声)映射到另一个分布(图像)。一旦矢量场被学习,就可以通过它将噪声转换为图像。通过数学方法选择更好的配对,可以减少 “路径模糊性”,从而加速训练。

六、核心技术汇总

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值