Paper Reading · Architecture Forensics · 2025

Demystifying
Flux Architecture

从 16 通道 latent 到 64 维 packed image token,再经过 19 个双流块与 38 个单流块:这份精读把 FLUX.1 的公开推理路径拆成可核查的张量、公式与代码语义。

Or GreenbergarXiv:2507.09595v120 页 · 2025-07-13官方代码固定提交 1371b2b约 11.902B Transformer 参数
身份边界:这是 Or Greenberg 独立撰写的非官方技术报告。Black Forest Labs 没有发表、审核或背书本报告。架构事实优先依据 BFL 官方推理仓库固定提交核查;训练细节仍以“未公开”处理。
01 · Paper identity

读这篇报告时,先分清四层证据

论文的价值集中在架构讲解与源码导读。它没有提供 FLUX.1 的原始训练记录,也没有完成可复核的定量 benchmark。

代码核实作者或厂商声明本文解释证据缺口
代码核实

公开推理结构

19 个 DoubleStreamBlock、38 个 SingleStreamBlock、hidden size 3072、24 个 attention heads、head dimension 128、MLP ratio 4。固定代码提交早于论文提交日 12 天。

厂商声明

训练范式与性能

BFL 官方公告称公开 FLUX.1 模型基于 flow matching、混合 multimodal 与 parallel DiT blocks,并达到 12B 参数规模。性能排名来自厂商发布的偏好评测图。

未公开

原始训练配方

训练数据组成、清洗、采样比例、优化器、学习率、batch size、训练步数、GPU 数量、总算力、完整 loss 权重、distillation 配方均没有在本报告或基础推理仓库中公开。

阅读结论

它填补的空白

这份报告把分散在推理代码中的信息组织成可读图示,尤其解释两阶段 Transformer、AdaLN modulation、三轴 RoPE 与双文本编码器。它适合作为源码入口和架构地图;复现 FLUX.1 训练仍缺少关键条件。

论文 Figure 1 teaser
论文 Figure 1:teaser image。图片来自原 PDF。此图展示生成能力,没有对应的统计评测协议。
02 · System view

一次生成跨过三个空间

文本先进入两个冻结编码器;图像生成过程在 VAE latent 中运行;Transformer 输出每个 packed image token 的 velocity;最后由 VAE decoder 返回 RGB。

文本条件

T5-v1_1-XXL 产生逐 token 的 dense representation,官方基础代码中 dev 最大长度为 512,schnell 为 256,特征维度为 4096。CLIP ViT-L/14 产生整句 pooled vector,维度为 768。

初始噪声与 latent

目标像素尺寸 \(H\times W\) 经 VAE scale 8 映射到 16 通道 latent。官方代码为便于 \(2\times2\) packing,噪声尺寸使用 [B,16,2⌈H/16⌉,2⌈W/16⌉]。

Image token packing

每个 \(2\times2\) latent 邻域按通道展平,得到 64 维 token。空间 token 数为 \(L_I=\lceil H/16\rceil\lceil W/16\rceil\)。这一步属于重新排列,没有可训练参数。

逐步 velocity prediction

每个 sampling step 都把当前 image tokens、T5 tokens、CLIP pooled vector、timestep、guidance 和三轴 token IDs 送入同一 Transformer。网络输出与 packed image tokens 同形状的 velocity。

Euler 更新与解码

官方代码在递减时间表上执行 \(x\leftarrow x+(t_{\mathrm{prev}}-t_{\mathrm{curr}})v_{\theta}(x,t,c)\)。完成后 unpack 回 16 通道 latent,再经 VAE decoder 生成 RGB。

VAE latent 的缩放方向

\[ z=0.3611\left(z_{\mathrm{raw}}-0.1159\right), \qquad z_{\mathrm{raw}}=\frac{z}{0.3611}+0.1159 \]

第一式是官方 AutoEncoder.encode 在 encoder 与 diagonal Gaussian regularizer 后的处理;第二式是 decode 在 decoder 前执行的逆变换。数值方向会影响外部 latent 与 VAE 原始 latent 的转换,不能只记录两个常数。

论文 Figure 4 FLUX.1 架构
论文 Figure 4:高层架构。报告把 prompt embedding 与 latent embedding 的联合处理画成两阶段 attention。
论文 Figure 5 sampling pipeline
论文 Figure 5:sampling pipeline。图中的 \(z_0/z_1\) 命名与正文其他位置存在时间方向冲突;本页在 flow matching 一节单独审查。
03 · Tensor ledger

以 1024×1024 为例追踪全部张量

下表依据 BFL 官方提交的 sampling.py、model.py 与 util.py 重建。\(B\) 表示 batch size。

对象进入 Transformer 前线性投影后作用
噪声 latent[B,16,128,128]先 packing1024 像素除以 VAE scale 8
packed image tokens[B,4096,64][B,4096,3072]每个 token 汇集 \(16\times2\times2=64\) 个 latent 标量
T5 tokens · dev[B,512,4096][B,512,3072]token-level prompt condition
T5 tokens · schnell[B,256,4096][B,256,3072]官方 demo 使用较短最大长度
CLIP pooled vector[B,768][B,3072]整句语义进入全局 modulation vector
timestep embedding[B,256][B,3072]正弦 embedding 经两层 MLP
guidance embedding · dev[B,256][B,3072]guidance-distilled 模型的条件;schnell 配置关闭
token IDs[B,512+4096,3]RoPE matrix文本 ID 全零;图像 ID 为 \((0,h,w)\)
velocity output—[B,4096,64]只保留 image token 部分,再执行 Euler 更新

packing 的精确重排

\[ z\in\mathbb{R}^{B\times16\times H_L\times W_L} \longrightarrow z^{\mathrm{pack}}\in\mathbb{R}^{B\times(H_LW_L/4)\times64} \]

官方实现的 einops 语义为 b c (h ph) (w pw) → b (h w) (c ph pw),其中 \(p_h=p_w=2\)。因此每个 token 保留一个 \(2\times2\) latent patch 的完整 16 通道内容。像素空间里,这个 token 对应约 \(16\times16\) 像素区域。

4,096
1024² 的 image tokens
512
dev 的 T5 tokens
4,608
联合 attention 序列长度
论文 Figure 6 Flux Transformer
论文 Figure 6:每次 sampling iteration 内的 Transformer 全貌。图中 input/output shape 可与上表逐项对应。
04 · Flow matching

训练目标学 velocity,推理阶段积分 ODE

报告用 Rectified Flow 的直线路径解释 FLUX.1。这个公式提供方法背景;BFL 基础仓库仅公开推理实现,因此无法从代码确认完整训练采样分布和 loss 细节。

论文的 diffusion 对照

\[ \mathcal{L}_{\epsilon}=\mathbb{E}_{x,\epsilon,t} \left[\left\lVert\epsilon_{\theta}(x_t,t)-\epsilon\right\rVert_2^2\right], \qquad x_t=\sqrt{\alpha_t}x+\sqrt{1-\alpha_t}\,\epsilon \]

语义:网络回归注入的噪声 \(\epsilon\)。报告用它建立传统 diffusion 与 velocity prediction 的差别。

论文 Equation 2:直线路径速度

\[ x_t=(1-t)x_0+t x_1, \qquad \mathcal{L}_{v}=\mathbb{E}_{x_0,x_1,t} \left[\left\lVert v_{\theta}(x_t,t)-(x_1-x_0)\right\rVert_2^2\right] \]

在报告第 1.4 节的记号里,\(x_0\sim\mathcal{N}(0,I)\) 是噪声,\(x_1\sim p_{\mathrm{data}}\) 是数据,目标 velocity \(x_1-x_0\) 沿直线从噪声指向数据。\(v_{\theta}\) 接收中间状态与时间,学习条件向量场。

条件 velocity 与 Euler sampler

\[ \frac{d x(t)}{dt}=v_{\theta}\!\left(x(t),t,c\right), \qquad x_{k+1}=x_k+\Delta t_k\,v_{\theta}(x_k,t_k,c) \]

条件集合 \(c\) 包含 T5 token embeddings、CLIP pooled embedding、guidance、image IDs 与 text IDs。官方推理代码使用 \(t_{\mathrm{curr}}\) 到 \(t_{\mathrm{prev}}\) 的显式 Euler 步进。

时间记号审查:报告第 1.4 节采用 \(t=0\) 为噪声、\(t=1\) 为数据;官方代码从噪声开始,却让 schedule 从 1 递减到 0,并使用负的 \(\Delta t\)。Figure 5 caption 又把最终 clean latent 写成 \(z_0\),第 2.2.2 节末尾则写成 \(z_1\)。这些符号不能混在同一推导中。复现官方推理时应遵循代码约定:初始噪声对应 schedule 的 1,最终 latent 对应 0。
\[ \tau=1-t,\qquad x_{\mathrm{code}}(\tau)=x_{\mathrm{report}}(1-\tau),\qquad v_{\mathrm{code}}=\frac{d x_{\mathrm{code}}}{d\tau}=-v_{\mathrm{report}} \]

这给出两套约定的显式转换:报告的正向参数 \(t:0\rightarrow1\) 从噪声走向数据;代码参数 \(\tau:1\rightarrow0\) 也从噪声走向数据。代码预测的是关于 \(\tau\) 的导数,且 Euler 的 \(\Delta\tau\lt0\),所以更新方向仍然指向 clean latent。实际推理依然需要多次网络求值与 Euler 积分;报告背景中“消除 iterative reverse denoising”的措辞只能理解为采用确定性 ODE velocity formulation,不能理解成单次前向生成。

官方 schedule shift

\[ s_{\mu,\sigma}(t)=\frac{e^{\mu}}{e^{\mu}+\left(t^{-1}-1\right)^{\sigma}}, \qquad \mu(L_I)=0.5+\frac{1.15-0.5}{4096-256}(L_I-256) \]

dev 对基础线性时间表应用此 shift,image sequence 越长,时间点越偏向高噪声区间。schnell 的官方入口把 shift 关闭。报告只写“Flow-Matching Euler Discrete sampler”,没有给出这段分辨率相关公式。

inputs: prompt, H, W, seed, steps, guidance noise ← Normal(0, I) with shape [B, 16, 2⌈H/16⌉, 2⌈W/16⌉] img, img_ids ← pack_2x2(noise) txt ← T5(prompt); vec ← CLIP(prompt); txt_ids ← zeros times ← schedule(1 → 0, steps, image_sequence_length) for (t_curr, t_prev) in adjacent(times): pred ← FLUX(img, img_ids, txt, txt_ids, t_curr, vec, guidance) img ← img + (t_prev - t_curr) · pred latent ← unpack_2x2(img) rgb ← VAE.decode(latent)
05 · Transformer core

先分流专门化,再合流深度融合

两类 block 都允许文本与图像双向交互。差异集中在参数共享方式、attention 与 MLP 的组合方式,以及 modulation 的数量。

论文 Figure 7 per-iteration preprocessing
论文 Figure 7:每一步内部预处理。T5、image tokens、timestep、guidance 与 CLIP pooled vector 均投影到 3072 维;三轴 IDs 生成 RoPE。

全局 conditioning vector

\[ c_{\mathrm{vec}}= f_{t}\!\left(\gamma(t)\right)+ f_{y}(y)+ \mathbb{1}_{\mathrm{guidance}}f_g\!\left(\gamma(g)\right) \in\mathbb{R}^{B\times3072} \]

\(\gamma(\cdot)\) 是 256 维正弦 embedding,\(f_t,f_y,f_g\) 都是 Linear–SiLU–Linear MLP。\(y\in\mathbb{R}^{B\times768}\) 来自 CLIP pooled output。这个向量不会作为序列 token 参加 attention;每个 block 用它产生 shift、scale 与 gate。

\[ \gamma(u)= \left[ \cos\!\left(1000u\,\omega_0\right),\ldots,\cos\!\left(1000u\,\omega_{127}\right), \sin\!\left(1000u\,\omega_0\right),\ldots,\sin\!\left(1000u\,\omega_{127}\right) \right], \qquad \omega_j=\exp\!\left(-\frac{j}{128}\log 10000\right) \]

固定代码的 timestep_embedding 对 timestep 与 guidance 都先乘 1000,再生成 128 个 cosine 与 128 个 sine 分量,总维度为 256。两者随后分别经过自己的 256→3072→3072 MLP。

19 × Double-Stream Block

\[ \widetilde{x}_m=(1+s_m)\odot\mathrm{LN}(x_m)+b_m, \qquad m\in\{\mathrm{img},\mathrm{txt}\} \]

image 与 text 使用各自的 modulation、LayerNorm、QKV、attention output projection 与 MLP。每个模态的 modulation 一次产生六组 3072 维向量:attention 的 shift / scale / gate,以及 MLP 的 shift / scale / gate。

gate 的准确语义:报告称其为 alpha-blend,代码实际执行 \(x+g\odot\mathrm{branch}(x)\)。\(g\) 来自无 sigmoid 的线性层,可以小于 0 或大于 1,因此它是无界 residual gate,没有 convex alpha blending 的 \([0,1]\) 约束。
\[ Q=[Q_{\mathrm{txt}};Q_{\mathrm{img}}],\quad K=[K_{\mathrm{txt}};K_{\mathrm{img}}],\quad V=[V_{\mathrm{txt}};V_{\mathrm{img}}] \]

QKV 投影分别完成,随后沿 token 轴拼接,一次 scaled dot-product attention 同时包含 text↔text、image↔image、text→image 与 image→text 四类关系。attention 输出再按序列边界拆回两个流。

\[ x'_m=x_m+g^{\mathrm{attn}}_m\odot\mathrm{Proj}_m(A_m), \qquad x''_m=x'_m+g^{\mathrm{mlp}}_m\odot \mathrm{MLP}_m\!\left((1+s^{\mathrm{mlp}}_m)\odot\mathrm{LN}(x'_m)+b^{\mathrm{mlp}}_m\right) \]
论文 Figure 8a double stream
论文 Figure 8a:两个模态保留独立参数,attention 后接各自 MLP。
论文 Figure 8b joint attention
论文 Figure 8b:独立 QKV 在 attention 前合并。
论文 Figure 9 AdaLN
论文 Figure 9:AdaLN modulation。官方代码实现包含 residual gate,且 Double-Stream 对 attention 和 MLP 各使用一套 modulation。

38 × Single-Stream Block

完成 19 个双流块后,代码按 [txt; img] 拼成单一序列。所有 token 共享同一组权重。一次 fused linear1 同时生成 QKV 与 MLP hidden,attention 和 GELU 分支并行计算,连接后经 linear2 返回 3072 维。

\[ [Q,K,V,M]=W_1\widetilde{x}, \qquad o=W_2\left[\mathrm{Attn}(Q,K,V),\mathrm{GELU}(M)\right], \qquad x'=x+g\odot o \]

Single-Stream modulation 只产生一组 shift、scale、gate。它没有第二次 LayerNorm,也没有独立的 MLP residual gate。报告把它描述成 parallel attention + MLP,这与固定代码吻合。

论文 Figure 10a single stream
论文 Figure 10a:attention 与 MLP 从同一个 modulated input 并行分支。
论文 Figure 10b fused qkv
论文 Figure 10b:拼接后的 multimodal sequence 共用 QKV。
属性Double-StreamSingle-Stream
层数1938
模态参数image / text 各自独立拼接序列共享
attention独立 QKV 后联合 attention单一 fused QKV
MLP 位置attention residual 后顺序执行与 attention 从同一输入并行执行
modulation每个模态 6 组向量全序列 3 组向量
固定提交参数量约 6.457B约 5.381B

QK normalization 与三轴 RoPE

hidden size 3072 除以 24 heads,得到每头 128 维。Q 和 K 在每个 head 内先做带可训练 scale 的 RMSNorm;V 保持原值。随后对 Q/K 施加 RoPE,最后调用 scaled dot-product attention。

\[ \mathrm{RMSNorm}(q)= \frac{q}{\sqrt{\frac{1}{d_h}\sum_{j=1}^{d_h}q_j^2+10^{-6}}}\odot a_q, \qquad d_h=128 \]
\[ \mathrm{Attention}(Q,K,V)= \mathrm{softmax}\!\left(\frac{\mathrm{RoPE}(Q)\mathrm{RoPE}(K)^{\mathsf T}}{\sqrt{128}}\right)V \]

三轴 RoPE 的维度分配为 \([16,56,56]\),总和正好等于 128。基础 text-to-image 的 image IDs 为 \((0,h,w)\),text IDs 全为 \((0,0,0)\)。第一轴在基础模型中保持零;在后续 Kontext 代码里可区分条件图像序列,这也说明三轴设计为扩展保留了位置。

\[ \omega_j=\theta^{-2j/d},\qquad R(p,\omega_j)= \begin{bmatrix} \cos(p\omega_j)&-\sin(p\omega_j)\\ \sin(p\omega_j)&\cos(p\omega_j) \end{bmatrix}, \qquad \theta=10{,}000 \]

最后只读出 image tokens

38 个单流块完成后,代码裁掉前面的 text token 部分。LastLayer 使用 \(c_{\mathrm{vec}}\) 产生最终 shift 与 scale,对 image states 做 AdaLN,再线性映射到 64 维 velocity。基础配置的 patch size 参数为 1,因为 \(2\times2\) packing 已在模型外完成。

06 · Version boundaries

同一骨架,两个蒸馏版本具有不同推理接口

报告主体常以“FLUX.1”统称模型。固定提交能直接核实 open-weight 的 dev 与 schnell;pro 权重和内部训练实现没有公开。

项目FLUX.1 [dev]FLUX.1 [schnell]证据性质
Transformer 主干19 双流 + 38 单流,3072 hidden,24 heads相同官方代码
guidance embedding开启,guidance 数值进入 256→3072 MLP关闭,传入 guidance 被 Identity 忽略官方代码
T5 最大长度512256官方 demo
默认步数504官方 CLI
schedule shift开启,依赖 image sequence length关闭官方 CLI
来源描述由 pro guidance-distilled面向少步推理的 distilled variantBFL 公告与报告
权重许可FLUX.1-dev Non-Commercial LicenseApache 2.0官方仓库
训练数据与优化器未公开未公开证据缺口
代码版本限制:本页核查提交为 1371b2bc70ac80e1078446308dd5b9a2ebc68c87,提交日期 2025-07-01。论文提交于 2025-07-13。仓库后续加入 Krea、Kontext 及更多工具;这些更新不能自动投射回报告所分析的基础 FLUX.1。

约 12B 的组成

6.457B
19 个双流块
5.381B
38 个单流块
11.902B
dev Transformer 总参数

参数量依据固定提交中的层定义与 dev 配置逐项计算,包含 embedding projections、QK RMSNorm scale 与 final layer,不包含 T5、CLIP 和 VAE。

07 · Evaluation evidence

图很多,benchmark 证据仍然有限

正文 Figure 2–3 转载 BFL 官方发布材料。附录由报告作者展示 FLUX.1[dev] 与 SD 2.1 的汽车场景定性比较,参数有说明,评测协议不足以支撑广泛排名。

论文 Figure 2 BFL evaluation
论文 Figure 2:来自 BFL 公告的总体偏好结果。报告没有重新运行此评测。
论文 Figure 3 ELO
论文 Figure 3:五个维度的 ELO 图,来源同为 BFL 公告。报告未提供配对数量、评审者构成、置信区间或原始记录。

附录真正做了什么

设置FLUX.1[dev]SD 2.1
采样步数5050
guidance scale2.57.5
分辨率512×512512×512
微调没有额外微调没有额外微调
场景汽车前向 dashcam 视角;天气、稀疏 prompt、罕见概念、复杂 prompt
Appendix Figure 3 · Placeholder

稀疏 prompt

原图比较“adverse weather”“difficult viewing conditions”“blurry”等宽泛或简短条件,作用是展示模型对抽象描述与直接视觉属性的响应。页面保留编号说明,原 PDF 第 19 页可查。

Appendix Figure 4 · Placeholder

罕见概念

原图包含 boat-trailer 与 upside-down crashed car,作用是支持作者关于长尾汽车概念词汇覆盖的定性观察。没有量化稀有度或成功率。

Appendix Figure 5 · Placeholder

复杂 prompt

原图考察同一 prompt 内多个描述元素的遵循情况。作者把表现归因于 T5 dense embeddings;报告没有通过移除 T5 或替换 encoder 验证因果。

Appendix Figure 6 · Placeholder

分辨率与宽高比

原图展示多种尺寸与 aspect ratio 的生成结果,作用是说明 FLUX.1 的可变 token grid 推理能力。它没有给出各尺寸的质量指标、速度或显存消耗。

附录 Figure 1 quality comparison
附录 Figure 1:不同天气与光照的定性图。可观察展示质量,无法计算总体胜率。
附录 Figure 2 prompt sensitivity
附录 Figure 2:轻雪、重雪与雪后晴天的 prompt 敏感性示例。
Paper Verified

可确认

  • 附录明确给出两个模型的步数、guidance 与分辨率。
  • 展示样例覆盖质量、文本细微差别、稀疏 prompt、罕见概念、复杂 prompt 与多宽高比。
  • 报告作者确实给出 FLUX.1[dev] 与 SD 2.1 的定性对照。
Evidence Gap

无法确认

  • 没有完整 prompt 清单、随机种子、生成候选数量与挑图规则。
  • 没有人工评测协议、定量指标、误差条或显著性检验。
  • 没有与 Midjourney、DALL·E 3、SD3、SDXL 的作者自建复现实验。
  • 附录只比较 SD 2.1,无法单独支持摘要中的全面超越声明。
08 · Reproduction ledger

能复现推理结构,无法复现原训练

项目公开状态可获得内容
Transformer 结构公开完整 inference module、层数、维度、RoPE、modulation、QK normalization
sampling loop公开noise shape、packing、schedule shift、Euler update、unpack
文本编码器公开T5-v1_1-XXL 与 CLIP ViT-L/14 型号和最大长度
VAE 配置与权重公开16 latent channels、scale factor 0.3611、shift factor 0.1159、公开权重
基础模型训练代码未公开官方仓库自述为 minimal inference code
训练数据未公开数据来源、规模、去重、过滤、caption 生成、许可分布均未知
优化器与预算未公开optimizer、LR、scheduler、batch、steps、hardware、训练时长均未知
distillation部分声明dev 为 guidance-distilled、schnell 为快速蒸馏版本;具体目标与 teacher sampling 未公开
原始 benchmark报告未复现只转载厂商图与加入作者定性对照
可执行的推理复现路径:固定仓库提交与模型权重版本,记录 prompt、seed、尺寸、步数、guidance、精度和设备;按官方 packing 与 schedule 执行;分别报告 dev 和 schnell,避免共享参数之外的设置混写。
09 · Reviewer commentary

作为源码地图很强,作为技术报告还缺实验闭环

Strengths

  • 把复杂推理代码整理成 Figure 4–10,降低阅读门槛。
  • 准确抓住双流专门化与单流共享参数的核心差别。
  • 覆盖 T5、CLIP、VAE、RoPE、AdaLN 与 flow sampling 的完整推理链。
  • 开头明确声明非官方身份,避免把作者解释当成 BFL 技术文档。
  • 附录公开基本采样参数,定性样例集中在具有实际意义的汽车场景。

Weaknesses

  • Flow Matching、Rectified Flow 与 diffusion 的关系讲得过度简化,部分“消除迭代”“更稳定”措辞没有在本报告中验证。
  • (z_0/z_1) 和时间方向在正文、Figure 5 caption 与官方代码之间冲突。
  • 对 QK RMSNorm、fused single-block projection、schedule shift、VAE scale/shift 的说明不够完整。
  • 关于 shared weights 的泛化收益、parallel MLP 的效率动机属于推测,没有 ablation。
  • 性能结论大量依赖厂商图,附录没有定量 protocol。

Author Claim

报告认为双流与单流组合在专门化、融合、效率之间取得平衡,并把 FLUX.1 的高表现与 rich vocabulary、heavy pre-training、T5 dense embeddings 联系起来。这些解释具有合理性,缺少组件消融和训练记录支持。

Our Interpretation

双流阶段让两种模态在进入共享表示前保留不同变换;单流阶段把计算预算集中到统一序列内的深层融合。数量上 19+38 也表明共享阶段承担更多深度。这个结构解释来自代码形态,无法单独证明性能因果。

值得继续研究的实验

  1. 层数与切换点:在总参数和 FLOPs 匹配条件下比较 0/57、19/38、38/19、57/0,测 prompt adherence、视觉质量、训练稳定性与跨分辨率泛化。
  2. 三轴 RoPE:改变 ([16,56,56]) 维度分配与第一轴语义,测宽高比外推和多图条件扩展。
  3. QK normalization:移除或替换 RMSNorm,记录 attention logit、梯度和长序列稳定性。
  4. schedule shift:跨 image sequence length 评估固定 schedule 与长度自适应 shift,报告少步与多步误差。
  5. conditioning attribution:独立干预 T5 tokens、CLIP pooled vector 和 guidance embedding,测其对文字排版、组合关系、风格与 diversity 的影响。
  6. 公开评测重建:固定 prompt 集、seed 集、候选数与人评协议,公布配对记录和置信区间。
10 · Sources

来源与代码固定点

  1. Or Greenberg. Demystifying Flux Architecture. arXiv:2507.09595v1, 2025. 本页逐页读取的主论文,共 20 页。
  2. Black Forest Labs FLUX official inference repository,commit 1371b2bc70ac80e1078446308dd5b9a2ebc68c87. 本页所有代码事实限定于此提交。
  3. model.py:输入投影、19/38 blocks、条件向量、最终 image token 输出。
  4. layers.py:QKNorm、RMSNorm、modulation、DoubleStreamBlock、SingleStreamBlock、LastLayer。
  5. sampling.py:noise shape、packing、IDs、schedule shift、Euler denoise 与 unpack。
  6. util.py:dev/schnell 参数、VAE 配置、T5 与 CLIP 型号。
  7. Black Forest Labs. Announcing Black Forest Labs, 2024-08-01. 模型家族、12B、flow matching、parallel blocks、RoPE、guidance distillation 和厂商评测声明。
  8. Lipman et al. Flow Matching for Generative Modeling, ICLR 2023;Liu et al. Flow Straight and Fast, 2022;Esser et al. Scaling Rectified Flow Transformers for High-Resolution Image Synthesis, ICML 2024。
发布日期核对:arXiv 只有 v1,提交时间为 2025-07-13。作者署名 Or Greenberg,机构列为 Hebrew University of Jerusalem 与 General Motors R&D, SDVR。论文没有 venue 录用声明。