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., 2020 arXiv:2006.11239 扩散模型的奠基之作,理解前向加噪/反向去噪 LDM (Stable Diffusion) - Rombach et al., 2022 arXiv:2112.10752 latent 空间扩散,FLUX 也工作在 latent 空间 1.2 Flow Matching / Rectified Flow(FLUX 核心训练范式)
这是理解 FLUX 的最关键理论,FLUX 不是传统扩散模型,而是 Rectified Flow。
论文 地址 核心贡献 Flow Matching for Generative Modeling- Lipman et al., 2022 arXiv:2210.02747 Flow Matching 的奠基论文 Flow Straight and Fast- Liu et al., 2022 arXiv:2209.03003 Rectified Flow:学习数据到噪声的直线路径 Rectified Flow- Qiang Liu, 2022 arXiv:2209.14577 从最优运输角度理解 rectified flow Flow Matching Guide and Code- Lipman et al., 2024 arXiv:2412.06264 最全面的 Flow Matching 教程和代码 1.3 DiT (Diffusion Transformer) 架构
论文 地址 说明 Scalable Diffusion Models with Transformers - Peebles & Xie, 2023 arXiv:2212.09748 Transformer 替代 U-Net 做扩散骨干 二、FLUX 基础模型层(模型 A)
2.1 FLUX.1 原始论文
论文 地址 说明 Scaling Rectified Flow Transformers for High-Resolution Image Synthesis- Esser et al. (Black Forest Labs), 2024 arXiv:2403.03206 FLUX.1-dev/pro/schnell 的官方技术报告 2.2 FLUX 架构深度解析(强烈推荐)
报告 地址 说明 Demystifying Flux Architecture, 2025 arXiv: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., 2021 arXiv:2106.09685 3.2 Diffusers 官方 FLUX LoRA 训练代码
路径 文件 说明 diffusers/examples/dreambooth train_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., 2023 arXiv:2302.05543 ICCV 2023 Oral,ControlNet 的奠基论文。核心思想:锁定预训练模型参数,复制其编码层作为可训练副本,用Zero Convolution(零初始化卷积)连接,确保训练初期不破坏预训练权重 4.2 FLUX 时代的 ControlNet 架构演变
论文 地址 关键洞察 Moving Things Around in Pictures, 2026 arXiv: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.md FLUX 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.py FluxControlNetModel类定义,必读源码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 condition5.2 Inpainting 基础理论
论文 地址 说明 Palette - Saharia et al., 2022 arXiv: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 Architecture arXiv:2507.09595 论文 ControlNet 原始论文 arXiv:2302.05543 论文 Flow Matching arXiv:2210.02747 论文 Rectified Flow arXiv:2209.03003 GitHub FLUX 官方 black-forest-labs/flux GitHub Diffusers 官方 huggingface/diffusers GitHub FLUX ControlNet 训练 examples/controlnet GitHub FLUX LoRA 训练 examples/dreambooth GitHub 第三方 ControlNet 训练 christopher-beckham/flux-controlnet HuggingFace FLUX.1-dev 模型页 HuggingFace FLUX.1-Fill-dev 模型页 HuggingFace XLabs ControlNet Inpainting XLabs-AI/flux-controlnet-inpainting 建议优先级:先精读Flow Matching和ControlNet 原始论文,然后对照Demystifying Flux Architecture理解 FLUX 内部结构,最后直接阅读diffusers 的
train_controlnet_flux.py和controlnet_flux.py源码——这是理解模型 B-trained 如何构建的最直接方式。
