当前位置: 首页 > news >正文

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

Chroma 模型讲解

一、模型概述

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

二、相关链接

  • Hugging Face 调试仓库:链接

  • 实时 AIM 训练日志:链接

  • 训练代码:链接

  • CivitAi 画廊:链接

  • CivitAi 模型:链接

三、模型目标与支持

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

六、核心技术汇总

在这里插入图片描述

相关文章:

  • 【LunarVim】CMake LSP配置
  • 人协同的自动化需求分析
  • 【SQLSERVER】Ubuntu 连接远程 SQL Server(MSSQL)
  • 搭建和优化CI/CD流水线
  • [人机交互]设计,原型建立和构造
  • 数字化驱动下的智慧物流与零售创新:全流程无人仓与定制开发开源AI智能名片S2B2C商城小程序的协同实践
  • RHEL8搭建FOU隧道
  • 【redis】集群模式
  • 【Linux】Linux工具(1)
  • easyexcel导出动态写入标题和数据
  • 【开源解析】基于Python的智能文件备份工具开发实战:从定时备份到托盘监控
  • 为了摸鱼和吃瓜,我开发了一个网站
  • es 里的Filesystem Cache 理解
  • 使用thymeleaf模版导出swagger3的word格式接口文档
  • 视觉图像处理及多模态融合初探
  • SpringBoot 讯飞星火AI WebFlux流式接口返回 异步返回 对接AI大模型 人工智能接口返回
  • leetcode 242. Valid Anagram
  • 【前端基础】9、CSS的动态伪类(hover、visited、hover、active、focus)【注:本文只有几个粗略说明】
  • 四、Hadoop 2.X vs 3.X:特性、架构与性能全解析
  • ubuntu yolov5(c++)算法部署
  • 呼和浩特推进新一轮国企重组整合:杜绝一项目一公司、一业务一公司
  • 巴基斯坦军方:印度导弹袭击巴首都附近空军基地
  • 游客称在网红雪山勒多曼因峰需救援被开价2.8万,康定文旅:封闭整改
  • 美众议院通过法案将“墨西哥湾”更名为“美国湾”
  • 硅料巨亏后弘元绿能割肉求生:逾12亿元内蒙古公司股权转让协鑫
  • 经济日报头版刊文:为什么贸易战没有出路