news 2026/4/28 8:03:23

Flux局部重绘1——学习路线

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Flux局部重绘1——学习路线

目录

一、前言

二、Flux局部重绘学习路线

一、基础理论层(必须先掌握)

1.1 扩散模型基础

1.2 Flow Matching / Rectified Flow(FLUX 核心训练范式)

1.3 DiT (Diffusion Transformer) 架构

二、FLUX 基础模型层(模型 A)

2.1 FLUX.1 原始论文

2.2 FLUX 架构深度解析(强烈推荐)

2.3 关键架构特点

2.4 官方代码

三、LoRA 训练层(模型 A-LoRA)

3.1 LoRA 基础

3.2 Diffusers 官方 FLUX LoRA 训练代码

四、ControlNet 层(模型 B / 模型 B-trained)

4.1 ControlNet 原始论文(必读)

4.2 FLUX 时代的 ControlNet 架构演变

4.3 Diffusers 官方 FLUX ControlNet 训练代码(模型 B-trained 的直接来源)

4.4 FLUX ControlNet 模型结构代码

4.5 第三方训练实现

五、Inpainting ControlNet 层(模型 C)

5.1 FLUX.1-dev-Controlnet-Inpainting-Beta

5.2 Inpainting 基础理论

5.3 训练数据构建要点

六、Fill 模型层(模型 D)

6.1 FLUX.1-Fill-dev

6.2 架构特点

6.3 与 ControlNet Inpainting(模型 C)的核心区别

七、推荐学习路线图

八、关键资源速查表


一、前言

仅供参考,未经实验验证。

二、Flux局部重绘学习路线

比如说我用diffusers官方的flux.1-dev(简称为模型A)的lora训练代码训练出来的lora(简称为模型A-lora),这时候我可以叠加controlnet(简称为模型B)对吧,那diffusers官方应该也有一个训练controlnet的代码,训练出来的模型(简称为模型B-trained),那现在我有一个FLUX.1-dev-Controlnet-Inpainting-Beta(简称为模型C),有一个FLUX.1-Fill-dev(简称为模型 D)。 我想从零学习上面的模型是如何构建的,给出学习路线和学习资料,尤其是涉及的论文地址和Github地址

我来为你梳理一条从零学习这些 FLUX 生态模型的完整路线,涵盖你提到的模型 A(FLUX.1-dev)、A-LoRA、B(ControlNet)、B-trained、C(Inpainting ControlNet)和 D(Fill-dev)的构建原理。


一、基础理论层(必须先掌握)

1.1 扩散模型基础

论文地址为什么重要
DDPM - Ho et al., 2020arXiv:2006.11239扩散模型的奠基之作,理解前向加噪/反向去噪
LDM (Stable Diffusion) - Rombach et al., 2022arXiv:2112.10752latent 空间扩散,FLUX 也工作在 latent 空间

1.2 Flow Matching / Rectified Flow(FLUX 核心训练范式)

这是理解 FLUX 的最关键理论,FLUX 不是传统扩散模型,而是 Rectified Flow。

论文地址核心贡献
Flow Matching for Generative Modeling- Lipman et al., 2022arXiv:2210.02747Flow Matching 的奠基论文
Flow Straight and Fast- Liu et al., 2022arXiv:2209.03003Rectified Flow:学习数据到噪声的直线路径
Rectified Flow- Qiang Liu, 2022arXiv:2209.14577从最优运输角度理解 rectified flow
Flow Matching Guide and Code- Lipman et al., 2024arXiv:2412.06264最全面的 Flow Matching 教程和代码

1.3 DiT (Diffusion Transformer) 架构

论文地址说明
Scalable Diffusion Models with Transformers - Peebles & Xie, 2023arXiv:2212.09748Transformer 替代 U-Net 做扩散骨干

二、FLUX 基础模型层(模型 A)

2.1 FLUX.1 原始论文

论文地址说明
Scaling Rectified Flow Transformers for High-Resolution Image Synthesis- Esser et al. (Black Forest Labs), 2024arXiv:2403.03206FLUX.1-dev/pro/schnell 的官方技术报告

2.2 FLUX 架构深度解析(强烈推荐)

报告地址说明
Demystifying Flux Architecture, 2025arXiv:2507.09595详细拆解了 FLUX 的 19 个 Dual-Stream Blocks + 38 个 Single-Stream Blocks 结构,是理解 FLUX 内部机制的最佳资料

2.3 关键架构特点

  • 12B 参数Rectified Flow Transformer

  • 无显式 Cross-Attention:将 text 和 image feature 拼接后一起过 attention,token 级别的语义会以"heatmap"形式自然涌现

  • Frozen 文本编码器:CLIP-L/14(coarse)+ T5-XXL(fine-grained)

  • 19 个 Dual-Stream Blocks+38 个 Single-Stream Blocks

2.4 官方代码

  • GitHub: black-forest-labs/flux

  • HuggingFace: black-forest-labs/FLUX.1-dev


三、LoRA 训练层(模型 A-LoRA)

3.1 LoRA 基础

论文地址
LoRA: Low-Rank Adaptation - Hu et al., 2021arXiv:2106.09685

3.2 Diffusers 官方 FLUX LoRA 训练代码

路径文件说明
diffusers/examples/dreamboothtrain_dreambooth_lora_flux.py基础 LoRA 训练
diffusers/examples/advanced_diffusion_training-更高级的 FLUX 训练脚本

四、ControlNet 层(模型 B / 模型 B-trained)

4.1 ControlNet 原始论文(必读)

论文地址说明
Adding Conditional Control to Text-to-Image Diffusion Models- Zhang et al., 2023arXiv:2302.05543ICCV 2023 Oral,ControlNet 的奠基论文。核心思想:锁定预训练模型参数,复制其编码层作为可训练副本,用Zero Convolution(零初始化卷积)连接,确保训练初期不破坏预训练权重

4.2 FLUX 时代的 ControlNet 架构演变

论文地址关键洞察
Moving Things Around in Pictures, 2026arXiv:2506.20703清晰对比了旧 ControlNet 与新 FLUX ControlNet 的实现差异:旧版在 U-Net decoder 层添加辅助 encoder 信息;新版 FLUX ControlNet 直接将latent 和 condition 在输入端 concatenate,控制更紧密

4.3 Diffusers 官方 FLUX ControlNet 训练代码(模型 B-trained 的直接来源)

链接说明
diffusers/examples/controlnet官方训练目录
README_flux.mdFLUX ControlNet 训练说明
train_controlnet_flux.py核心训练脚本

关键训练参数

accelerate launch train_controlnet_flux.py \ --pretrained_model_name_or_path="black-forest-labs/FLUX.1-dev" \ --num_double_layers=4 \ --num_single_layers=0 \ ...
  • 默认配置:4 个 MM-DiT (DoubleStream) blocks+ 10 个 Single-DiT blocks

  • 内存需求:单卡 A100 80GB,训练时约 58GB

4.4 FLUX ControlNet 模型结构代码

链接说明
diffusers/src/diffusers/models/controlnet_flux.pyFluxControlNetModel类定义,必读源码

4.5 第三方训练实现

链接说明
christopher-beckham/flux-controlnet单卡 A100 40GB 训练 FLUX ControlNet,含量化支持

五、Inpainting ControlNet 层(模型 C)

5.1 FLUX.1-dev-Controlnet-Inpainting-Beta

  • HuggingFace: XLabs-AI/flux-controlnet-inpainting(由 XLabs-AI 社区训练)

  • 架构:基于 FLUX.1-dev 的 ControlNet 架构,输入包含noisy latent + mask + masked_image + text condition

5.2 Inpainting 基础理论

论文地址说明
Palette - Saharia et al., 2022arXiv:2111.05826经典扩散模型 inpainting 框架

5.3 训练数据构建要点

Inpainting ControlNet 的训练数据需要特殊构建:

  • 原始图像 +随机 mask(如不规则 mask、方块 mask、笔划 mask)

  • mask 区域外像素保留,区域内用噪声/ masked 图像填充

  • 配合文本描述,训练模型理解"在 mask 区域内生成符合文本描述的内容"


六、Fill 模型层(模型 D)

6.1 FLUX.1-Fill-dev

  • HuggingFace: black-forest-labs/FLUX.1-Fill-dev

  • 官方技术报告: Demystifying Flux Architecture, Section 3.2

6.2 架构特点

  • 专门用于 inpainting 和 outpainting的端到端模型

  • 基于 FLUX.1-dev 架构修改,接受text description + binary mask作为输入

  • 12B 参数(与 FLUX.1-dev 相同规模)

  • 支持"full denoising strength"下的无缝融合

6.3 与 ControlNet Inpainting(模型 C)的核心区别

维度模型 C (ControlNet Inpainting)模型 D (FLUX.1-Fill-dev)
本质在 FLUX.1-dev 上附加 ControlNet 控制模块端到端训练的专用 inpainting 模型
基础模型冻结 FLUX.1-dev,训练 ControlNet 侧网络基于 FLUX.1-dev 架构重新训练完整模型
灵活性可与不同 LoRA 叠加使用独立模型,需单独加载
训练数据需要 (image, mask, text) 三元组同样需要,但训练的是完整 transformer
参数规模ControlNet 部分约几 B 参数完整 12B 参数

七、推荐学习路线图

Phase 1: 理论基础(2-3周) ├─ DDPM → LDM → DiT(理解扩散模型演进) ├─ Flow Matching / Rectified Flow(理解 FLUX 训练范式) └─ LoRA 原理 Phase 2: FLUX 基础(2周) ├─ 精读 FLUX 论文 (Esser et al., 2024) ├─ 精读 Demystifying Flux Architecture(架构拆解) ├─ 跑通 FLUX.1-dev 推理代码 └─ 理解 Dual-Stream / Single-Stream Block 的代码实现 Phase 3: LoRA 训练实践(1-2周) ├─ 使用 diffusers 官方 LoRA 脚本训练 └─ 理解 LoRA 在 FLUX 上的叠加机制 Phase 4: ControlNet 理论与训练(2-3周) ├─ 精读 ControlNet 原始论文 (Zhang et al., 2023) ├─ 理解 FLUX ControlNet 的架构差异(concatenate vs. auxiliary encoder) ├─ 研读 diffusers 官方 train_controlnet_flux.py 源码 ├─ 对比 SD-ControlNet vs FLUX-ControlNet 实现差异 └─ 尝试训练自己的 ControlNet Phase 5: Inpainting 专题(2周) ├─ 理解 inpainting 训练数据构建(mask 策略) ├─ 研究 XLabs-AI flux-controlnet-inpainting-beta 的推理代码 ├─ 研究 FLUX.1-Fill-dev 官方实现 └─ 对比 ControlNet-Inpainting vs Fill-dev 的生成差异 Phase 6: 进阶研究 ├─ 阅读 Moving Things Around in Pictures(深度条件 inpainting) ├─ 研究 FLUX-Kontext / FLUX-Redux 等多模态扩展 └─ 尝试从零训练 Inpainting ControlNet 或 Fill 风格模型

八、关键资源速查表

类型名称链接
论文FLUX.1 技术报告arXiv:2403.03206
论文Demystifying Flux ArchitecturearXiv:2507.09595
论文ControlNet 原始论文arXiv:2302.05543
论文Flow MatchingarXiv:2210.02747
论文Rectified FlowarXiv:2209.03003
GitHubFLUX 官方black-forest-labs/flux
GitHubDiffusers 官方huggingface/diffusers
GitHubFLUX ControlNet 训练examples/controlnet
GitHubFLUX LoRA 训练examples/dreambooth
GitHub第三方 ControlNet 训练christopher-beckham/flux-controlnet
HuggingFaceFLUX.1-dev模型页
HuggingFaceFLUX.1-Fill-dev模型页
HuggingFaceXLabs ControlNet InpaintingXLabs-AI/flux-controlnet-inpainting

建议优先级:先精读Flow MatchingControlNet 原始论文,然后对照Demystifying Flux Architecture理解 FLUX 内部结构,最后直接阅读diffusers 的train_controlnet_flux.pycontrolnet_flux.py源码——这是理解模型 B-trained 如何构建的最直接方式。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/28 7:58:21

JSP、EL 表达式、JSTL

一、什么是 JSP1. 概念JSP(Java Server Pages)是由Sun公司推出的一种动态网页开发技术,它允许在HTML页面中嵌入Java代码,运行在服务器端(依赖Tomcat等Web服务器),最终被服务器编译成Servlet&…

作者头像 李华
网站建设 2026/4/28 7:55:06

Cadence ADE实战:手把手教你仿真LC VCO的寄生电阻与振荡频率(附脚本)

Cadence ADE实战:LC VCO寄生电阻与振荡频率的精确仿真指南 在射频集成电路设计中,LC压控振荡器(VCO)的性能直接影响整个系统的相位噪声和频率稳定性。作为一名长期奋战在IC设计一线的工程师,我深知理论计算与EDA工具仿真之间的鸿沟常常让初学…

作者头像 李华
网站建设 2026/4/28 7:53:23

开源AI代码补全平台Code4Me V2架构解析

1. Code4Me V2项目概述Code4Me V2是一个面向研究的开源代码补全平台,专为JetBrains系列IDE设计。这个项目由荷兰代尔夫特理工大学的研究团队开发,旨在解决当前AI代码补全领域的一个关键痛点:商业工具(如GitHub Copilot&#xff09…

作者头像 李华
网站建设 2026/4/28 7:46:25

PhaseNO:基于神经算子的地震监测技术创新与应用

1. 地震监测技术演进与PhaseNO的创新价值地震监测技术在过去几十年经历了从人工到自动化的革命性转变。早期的地震学家需要像老练的侦探一样,在纸带记录仪上手工标记P波和S波的到达时间。这种传统方法不仅效率低下(一个熟练的分析师每天最多只能处理几十…

作者头像 李华