NextFlow: Unified Sequential Modeling Activates Multimodal Understanding and Generation

Paper: arXiv:2601.02204 Code: ByteVisionLab/NextFlow Code reference: main @ 31870c2 (2026-01-09) — 公开仓库目前仅发布 README 与 demo assets,未发布 tokenizer / 训练 / 推理代码;以下所有伪代码与公式都以论文为准(commit 锁定用来锁定 README 示例与论文表述的快照)。

1. Motivation (研究动机)

NextFlow 要解决的是“多模态理解与生成是否能在一个 decoder-only Transformer 里同时被激活”这个未闭合问题。论文识别出三条现有路线的结构性短板,这些短板决定了 NextFlow 必须同时变动“理解 / 生成架构”与“视觉表示”两层。

扣住三个问题点。 (1) 扩散模型在像素保真度上占绝对优势,但本体不具备 LLM 式推理与 in-context learning;MM-LLM 多数只做感知;AR-Diffusion hybrid(Transfusion / BAGEL)虽然能同时接两件事,但依赖两套表示(文本走离散、视觉走连续),跨图文交错任务需要反复 re-encode,这是“架构股犹豆子”带来的压力。 (2) 纯自回归路线(Chameleon / EMU3 / EMU3.5)使用 raster-scan next-token,视觉 token 序列随分辨率 quadratic 增长,论文明确指出 图像在 raster-scan AR 上可能超过 10 分钟([13, 74]),靠不走交互应用。 (3) 传统 VQ tokenizer 的优化目标主要是像素重建,离散码语义密度不足,理解任务不能复用同一套视觉 token。论文反复强调:“两个 fundamental bottlenecks”决定了纯 AR 需要同时重新设计预测范式与视觉 tokenizer。

包起来看,论文要回答的具体问题是:能否用一个 decoder-only Transformer + 一套统一视觉离散表示,同时激活 multimodal understanding、text-to-image、image editing、interleaved image-text生成、以及视频式交错 frame 生成,并把 生成时间压到 5 秒以内、同时保持与顶尖扩散模型可比的视觉质量。反过来说,如果只举其中一个能力(比如只提高 T2I FID),则该 paper 的反事实贡献就不成立。

为什么这件事值得做。 一旦“理解 / 生成 / 编辑 / 交错”均指向同一个 decoder-only 语义空间,多模态 RL(例如以下会描述的 prefix-tuning GRPO)、CoT 推理、in-context 零样本编辑这些 LLM 原生能力可以不加改造地 inherit 到视觉输出。论文提供的最重要 stake 不是“又一个 t2i baseline”,而是证明在一个 7B 参数量上,纯 AR 架构可以同时走通这多条任务、推理成本仅为顶级扩散模型的 1/6 FLOPs(4 节会重提)15 并且在多个 benchmark 上与 Qwen-Image / EMU3.5 这种特化系统打平。

2. Idea (核心思想)

核心洞察:文本是严格一维顺序结构,图像却天然是多尺度层级结构;因此文本继续使用 next-token prediction,视觉则改为 next-scale prediction——从粗 spatial scale 到细 spatial scale 逐层填补。这样“下一 token”在视觉分支上被改写为“下一尺度上的一组 codebook indices”,全局版型与语义在早期尺度被决定,纹理与局部细节在后期尺度被 refine。

与现有路线的本质区别:跟 Chameleon / EMU3 纯 raster-scan AR 相比,next-scale 直接把高分辨率推理从 降到“多尺度 + 多个并发 token”的 staged 生成;跟 Transfusion / BAGEL hybrid 相比,它不需要为视觉单开一套连续 latent + 单独优化目标,所有模态在同一个 CE 损失上完成,从而让 GRPO 这类 LLM RL 算法可以原生听到视觉输出;跟 TokenFlow 单领域设计相比,本文把 TokenFlow 作为一个部件接入 Qwen2.5-VL-7B 后,加上 scale reweight / self-correction / prefix-tuning GRPO 三件稳定性学身,才能在 6T tokens 级别不同分辨率阶段上不崩。

主要创新包(1 句话总结):“统一 decoder-only 里“文本 next-token + 视觉 next-scale“、“双码表 TokenFlow + 动态分辨率”、“ scale reweight 与 residual self-correction 从训练侧填上多尺度 AR 的稳定性 + exposure bias”、“prefix-tuning GRPO 只优化粗尺度策略,重点打“布局”不打“细节””,这四件事为完整训练配方中缺一不可。生成 5s/1024² 是这个配方的副产品,不是实现股犹豆子。

3. Method (方法)

3.1 Overall framework

Figure 1 解读:NextFlow 以 decoder-only Transformer 为主干,输入是任意交错的文本 token、图像边界 token (<boi>, <eoi>) 与多尺度视觉离散 token;输出同样是交错多模态 token 序列,经由 image decoder 变回位图素、经由 text decoder 输出字符串。文本 仍然 next-token 预测;图像 token 则以多尺度量化后从粗到细逐尺度预测 codebook indices。这个架构使得交错 i2t/t2i/edit/interleaved/CoT 以及 in-context learning 任务在同一个汇总的 cross-entropy 损失上联训。

视觉什么都可以被序列化,关键在三个设计选择上:(1) tokenizer 怎么干;(2) backbone 怎么接亲;(3) 多尺度不同位置怎么编码。下面依次拆解。

3.2 Unified Tokenizer:dual-codebook + dynamic resolution

NextFlow tokenizer 在 TokenFlow 双码表架构上作例,采用 semantic branchpixel branch 双路,透过共享映射机制使两路在同一个 discrete code 上对齐。取代传统 VQ-VAE 仅依赖重建最小化的量化过程,量化过程被中心同时 受重建 fidelity 与语义 consistency 约束:

这里 是进 codebook 的连续表示, / 分别是语义躊与像素躊上的 distance。双约束使 code 同时受“语义 teacher”与“像素重建”引导,生成表示仍然能被“理解亲”使用。

动态分辨率设计。为了能在 native resolution / arbitrary aspect ratio 上训练、推理,NextFlow 把 TokenFlow 原本的语义 encoder 从 siglip-so400m-patch14-384 升级为 siglip2-so400m-patch16-naflex(NaFlex 允许 patch 不固定序列长度),pixel branch 仍为 CNN,两者 jointly 训练使双路表示同时达到动态分辨率。在量化侧遵循 VAR([69])的 multi-scale VQ,具体 scale schedule 在 appendix A.1(多尺度 grid 逐级升采样)。在 ImageNet-1K 512² 重建实验中,NextFlow tokenizer PSNR=25.228 / SSIM=0.820,优于 TokenFlow PSNR=23.147(+2.08 dB)。

Tokenizer 训练诀窍。论文详细记录了三阶段训练策略:(1)先独立训练 pixel branch 拿到 decent 重建;(2)再将语义 encoder + pixel encoder/decoder + codebook 全部从 pretrained checkpoints 初始化后 jointly 训练;(3)最后把 pixel decoder capacity 加倍 (参考 [8, 54]),单独 finetune。另加入一些调优细节:同时在 fp32 下做 quantization 以免数值不稳定、随机 drop 捉1/2 VAR 尺度 提高 codebook 数值 robustness、为了保证人脸细节 oversample 含脸样本。这些小但关键的稳定性推理是 tokenizer 能在 6T tokens 级别复用的前提。

Figure 8 解读:dual-branch TokenFlow 与 single-branch VQGAN 在同 protocol (40k steps, ~40M samples) 下的对比。左图 vision loss 上双路明显低;中图上 text loss 接近但双路仍靠下点;右图 Geneval score 随训练 token 上升更快,说明双码表含语义越束后 latent space “更容易被后续 AR 学习”。论文明确指出,虽然双路在 raw PSNR 上会轻微低于单路(约 0.5 dB @ 256²),但在生成代码 latent 上优势完全翻转、与 REPA / VA-VAE 发现一致。

3.3 Decoder-only Transformer:Qwen2.5-VL-7B 接亲 + shared output head

NextFlow 主干是一个 decoder-only Transformer,从 Qwen2.5-VL-7B 初始化以复用其 multimodal priors 与语言 fluency。架构作三点改造:(1)vocabulary 扩充为包含原文本 token + visual codebook indices + <boi> <eoi> 边界 token;(2)新增 visual codebook embedding 直接用 tokenizer codebook embedding 初始化,避免 random init 使语义对齐崩坏;(3)输出端采用一个 shared output head,在统一词表上同时预测文本 token 与视觉 codebook indices,CE 损失不分模态。

为什么 shared head 而不是 separate heads。论文在 5M alignment + 5M SFT 轻量型控制实验中,对比了两种设计。Alignment 阶段只 fine-tune adapter + 应务扩展的输出 head,其余参数 frozen;SFT 阶段全纱纱训练。结果 shared head 在两个 stage 的 total / vision loss 上都明显低于 dual head,且 SFT text loss 仍 comparable(Figure 9);shared head 只带一个输出层、架构 simpler。论文为主训练选 shared head。

Figure 9 解读:三个面板分别绘出 total loss / vision loss / text loss。One Head Alignment / SFT 两条曲线均低于 Two Head;vision loss 差距最明显,text loss 跟上 Two Head。这说明“词表连通”不会损害文本能力、反而在视觉表示上获益。

预测范式。文本依顺序“下一 token”预测;视觉采用“下一尺度”预测。设第 尺度大小为 ,模型在前面文本、条件图像与“更粗尺度的全部视觉 token”条件下预测当前尺度的所有 codebook indices,同一 scale 内 token 为独立 top-k/top-p 采样。直觉上,早期低分辨尺度承担 layout / semantic planning(例如 1×1 只决定“全象 vs 人像”)4×4 决定主要 region),后期高分辨尺度承担 texture / detail refinement。

3.4 Multi-Scale 3D RoPE

多尺度交错 token 需要一个能同时表达“文本顺序位置”与“视觉尺度 + 二维空间位置”的 RoPE。NextFlow 提出 Multi-Scale 3D RoPE:

  • 文本位置 被复制到三个维度:
  • 视觉 token 采用归一化的空间坐标 + 尺度索引: 其中 是当前尺度 grid 尺寸, 是一个常数范围 factor, 是让 patch 中心对齐。这个归一化定义使不同分辨率的 grid(例如 16×16 vs 32×32)共享 上的同一坐标空间,高分辨率 fine-tune 时不会遇到 unseen position。另外论文加了 learnable scale embedding 与尺度长度的 sinusoidal positional embedding(量到有多少个 scale),让模型能在尺度路径不同时明确区分“要生 256 / 512 / 1024应该跟哪个尺度路径”。

Figure 5 解读:左侧为量化后的多尺度视觉 token 联接上文本 token(例如 “Change the dog to cat”)。中间是三维 RoPE的赋值:文本位置 被赋为 、视觉 token 被赋为 拼接。最右侧又一轮同样的交错表示。注意 next-scale prediction 范式下,1×1 feature 不参与输入序列,最小低分辨以 2×2 起步。

3.5 Scale Reweight:让粗尺度 layout 不被细尺度淹没

问题诊断。在 next-scale AR 里,同一个训练样本里:粗尺度 token 数 远远少于细尺度 token 数,粗尺度却决定全局版型。均匀 token 加权会让丰富的细尺度几乎独占 loss,在 512-level、尤其 1024-level 阶段明显会出现 layout degradation:论文报告 Geneval 从 0.67 跌到 0.57,并出现结构伪影。

解决方案。论文提出 scale-aware loss reweighting,保持总视觉 loss 不变: 其中 是尺度 的 grid 大小, 是 reweight 强度超参。论文采用 。这个加权几乎抵消了 “token 数与 成正比” 的天然偏差,让粗尺度 supervision 被提上来、极上限不变的同时推高了下限。

Figure 11 解读:左侧是 256-level 与 512-level 预训的 vision loss 事实(前 9 个 VAR 尺度),在 512 阶段可见低尺度 loss 是在 上升的(被高尺度抽走 supervision)。右侧 (a)/(b) 是在 200M tokens 训练后的生成质量:不 reweight 时出现明显伪影与结构错位。加上 reweight 后上述问题被抹平。

3.6 Self-correction with Residual Features

要解决两个问题。 (1) 同一 scale 内 token 独立采样,相邻位置可能采出重复语义;(2) AR 的 exposure bias:训练 teacher forcing 看的是 gold,推理只能看自己 越猜越偏。

Self-correction 机制。训练时,不是决定性地选 codebook 里“最近”索引作为输入,而是从 top-k 最近索引里采用多项式分布采样作为输入,但 target 仍是 top-1 索引。这让模型被明确训练在“上一尺度选错了”的场景下还能预测出后续“应该 是什么”。

关键变化:residual features 而非累加 features。原始 VAR 里,每个尺度的输入是以前所有尺度的 features 累加 + upsample。论文发现在 decoder-only 架构上,直接在累加 features 上加 self-correction 会反而变差。他们推测是:self-correction 让输入特征空间过于复杂,与“文本特征是直接从 codebook 取”这件事不匹配。他们把视觉输入改为“residual features” —— 每个尺度从 codebook 独立 retrieve 并 upsample 为需,不累加。这样输入 feature 空间与文本 features 一致,self-correction 才能生效:实验上在 50k step 达到 0.56 Geneval,并且减少了生成 image 的 local artifact。论文主要配置:对 100% 训练样本、在每个 scale 里对 60% tokens 进行 self-correction。

Figure 10 解读:超高可读性的 ablation。“Origin”为不加 self-correction。“cumulate features + p=1.0, 30%” 在 baseline 之下(验证上面 “输入复杂化”担忧)。换到 residual features 后,p=1.0/30% 改善到 0.485,p=1.0/60% 达到 0.56、迈进 0.06+ Geneval。如果不是 residual features 这一点,self-correction 本身成立的代价会不可接受。

3.7 Optional Diffusion Decoder:可选的细节 refiner

VQ decoder 在粗质量上是 OK 的,但离散量化必然损一部分高频。比如远距离里的人脸、小号文字会变模糊。为此论文加上一个可选 diffusion decoder,作为后置 refiner,只在需要照片级质量的场景下启用:

Figure 6 解读:输入 caption 走 text encoder、同时从 NextFlow 预测出的 vision indices 中抣出三件 condition 拼接到 diffusion model :(1) codebook embedding(2) 语义 decoder 跳出的 high-dim 语义特征(3) pixel embedding。三者过一个 linear projection 后作为 visual condition 并行送 进 diffusion model,text branch 则接 caption。

三个型号 + 训练策略。NextFlow 提出三个 diffusion decoder:(1) 1B UNet,全参 fine-tune,靠高质量 synthetic data 训练(低容量 model fit 真实分布会产生伪影,所以用 synthetic);(2) 12B Transformer、(3) 18B Transformer,两者都采用 LoRA、靠 real-world data 训练,主打 reconstruction fidelity。为了避免破坏预训练 backbone 的文本调控能力,论文明确不把 discrete token 拼到 text embedding 上,只走 visual condition branch。最后采用两阶段 curriculum:先在 base resolution 训练、再在 2×2 upsampling 任务上 fine-tune 以提高高频细节。训练 loss 仅使用标准 diffusion loss,论文明确避开使用 MSE(他们发现 MSE 在 PSNR 上好看但 perceptually 不如 diffusion loss)。

什么时候启用 diffusion decoder。论文明确记录了一个 trade-off:diffusion decoder 是生成式细节 refiner,会随机化 fine-grained structure。这在要求严格 spatial consistency 的任务上(局部编辑、人物 ID 维持)会带来剧烈影响。他们在论文主体 quantitative evaluation 与 qualitative visualization 中默认不开这个 refiner。

3.8 Training Odyssey:alignment → 6T pretraining → CT/SFT → RL

Figure 7 解读:上方是阶段标记,从 Alignment≒6 Pre-training 三个子段 (256/512/1024)┢ CT & SFT ┢ RL/GRPO。下方是 Geneval 随 cumulative tokens 变化的曲线:在 256-level pretrain 阶段从 0.5 退退上升到约 0.67;进入 512-level 一度跌到 0.57(即 scale-reweight 必须入场的那个点),加入 reweight 后重新上升到约 0.74;1024-level、CT&SFT 进一步推到 0.83 到1024 阶段顶;RL 阶段达 0.84+。同时右侧复踏上可选 diffusion decoder 点出“调高质量”分叉。这是一个取必须带上“什么阶段起于何处”说明的总架。

各阶段的训练开销(Table 2,全部数字来自论文 Table 2,公开仓库未发布对应 launch script):

StageResolutionEpochsLRTextT2II2TEditingInterleavedTrain tokens
Alignment256-level11e-3-5M5M--0.01T
Pretrain256-level11e-4662M1891M520M-147M3.4T
Pretrain512-level11e-4700M345M-20M5M1.8T
Pretrain1024-level11e-447M10M-2M0.5M0.2T
CT1024-level15e-547M9M-2M-0.2T
SFT1024-level11e-55M1M-0.1M-0.02T

关键随诀阶段点评

  • Alignment (256-level, 1e-3, 0.01T tokens):替换原 Qwen2.5-VL-7B 里的 ViT 为 NextFlow tokenizer,词表扩充 visual codes + boi/eoi。论文对比了 two-stage (先 align connector 再 fine-tune输出 head) 与 jointly train。二者后续 SFT 表现 comparable,论文选 jointly,为简洁。这阶段用 5M+5M ImageCaption + T2I 双向 alignment。
  • PT-256 (3.4T tokens):从2B 量级 T2I + 662M text + 520M I2T + 147M interleaved;不仅提供“怎么画”也提供“怎么读”、以及跨图的上下文。这段训练完成后 Geneval 在0.67。
  • PT-512 (1.8T tokens):resolution 一跳,低尺度 vision loss 上升、Geneval 后退。加入 scale reweight 后 Geneval 从坠返回 到~0.74。
  • PT-1024 (0.2T tokens):只在 40M HQ subset 上高分辨补补。
  • CT → SFT:CT 选美学佳样本提高 aesthetic;SFT 用 5M+1M 会话结构数据、loss 只加在 model response 上。
  • RL/GRPO:序言下节。

3.9 Reinforcement Learning:GRPO + Prefix-tuning

NextFlow 是纯 AR,所以不需要像 BAGEL / Transfusion 那样在两种表示上拼 loss,可以直接上 Group Reward Policy Optimization(GRPO, [60])。论文把 VAR 序列生成读为一个 multi-step MDP,每一步动作 的意思是“谈下一个分辨率 grid 的全部 token”。策略定义为: 其中 是位置 的 token, 是 prefix。换句话:在同一 scale 内 token 独立决策、跨 scale 都是顺序依赖。

Group Advantage(Eq.4)。给定 condition (可能含参考图),roll out 一组 张生成图 ,每个以 reward model 打分,group-normalized advantage: GRPO loss(Eq.5)。 Prefix-tuning 是这一节的重点创新。multi-scale VAR 上直接上 GRPO 会出事。原因是粗尺度 token 数少、决定全局结构;细尺度 token 数多、只决定局部细节。均匀采样 + GRPO 会让细尺度 token 以仿佛不可能包面 在 RL signal 上提供主要梯度,让粗尺度的重要决策被 high-variance 动东。论文提出:只优化前 个尺度的策略(文中举 为典型值),后面 个细尺度策略 frozen。这让 RL 梯度集中在“决定布局 / 全局语义”的 prefix 上,避免“在只调纹理的细尺度上下赌”。

Figure 12 解读:Reward 随训练步变化。Vanilla GRPO(全尺度)在150 steps 后该状 靠近 1.10,并在 1.13 处 saturate;GRPO with prefix 64 / 128 / 256 / 512 复出话越小越低,prefix=64与prefix=128 在300 steps 后明显超过 vanilla 并以更高 reward 稳住 。这个动东说明“只走粗尺度”不只是 convergence 并且使最终 reward 上限更高。同时论文补证 prefix-tuning + scale reweight 联手调使训练更稳。

Reward 与设置补充。论文 RL 阶段主要调 multi-modal preference reward(完整选择与多 reward 粒度 未在主体公开详细,赋予 K型多 reward 细节以 附录为限)、beta 与 clip ratio 为标准 GRPO 量级。

3.10 Infrastructure:workload balance + fused kernels + pre-extract indices

训练架构是 1024 GPUs、DeepSpeed ZeRO + gradient checkpointing。NextFlow 在工程侧为 6T tokens 带了三件随藎实验,论文明确报告了加速比。

Workload balance。训练需求包含 interleaved / edit / t2i / i2t / pure text、且分辨率不同,GPU 间极易走不齐。论文采用 “fixed max computation budget packing”:按预计算 TFLOPS 为各长度 sequence 均衡得 packing。与 batch padding 、fixed length packing 对比,后者在 512-level pretraining 上拿到 4.1× 加速(620.3 → 2517.4 tokens/s/GPU),3.4× 与 batch padding 相比(Table 3)。

Figure 13 解读:(a) fixed max length packing 会让间隐间隔变长、其实仍有未充分使用的 GPU 间隐。(b) fixed max computation budget packing 会把“一个 long t2i 另加几个 short i2t/text”拼到同一个 budget,理论上接近充分越过 inter-GPU idle。事实上调起后 Table 3 有为 4.1×。

High-Performance Kernel。大 codebook 使 output logits 占内存多;论文采用 FusedLinearCrossEntropy ([26]) 将最后 linear projection 与 CE loss 融在一个 kernel 中,避充全量 logit tensor 资位,每张 GPU 节省~20GB。另外 RoPE、RMSNorm、Flash-Attention 都 有补一步 fuse:中间结果放在寄存器 / shared memory 中,减少重复内存访问、提高 arithmetic intensity。

Pre-extract image indices。为避免训练过程中 encoder online 跳动,论文预先离线抽出每张图像的 codebook indices 并与原始顺序一起存下。这样训练时 encoder 可以 offload 出 GPU,进一步减内存。为了支持 self-correction,他们同时预置 self-correction 概率 (100% sample / 60% tokens per scale),译出输入 vs target 两套索引位。

3.11 Pseudocode(基于论文表述,公开仓库未发布训练 / 推理代码)

代码查证说明:公开仓库 ByteVisionLab/NextFlow 主分支 main @ 31870c2 (2026-01-09) 仅发布 README 与 demo assets,未包含 training / tokenizer / inference 代码。以下伪代码以论文 §2 / §3 为准,不带行号级代码映射;如需逐行移植请另行考虑 paper-to-skill skill。

组件 1:Dual-Codebook 量化

class DualCodebookQuantize(nn.Module):
    def __init__(self, num_codes, sem_dim, pix_dim, sem_weight=1.0, pix_weight=1.0):
        super().__init__()
        self.sem_codebook = nn.Embedding(num_codes, sem_dim)
        self.pix_codebook = nn.Embedding(num_codes, pix_dim)
        self.sem_weight = sem_weight
        self.pix_weight = pix_weight
 
    def forward(self, z_sem, z_pix):
        d_sem = torch.cdist(z_sem, self.sem_codebook.weight, p=2.0)
        d_pix = torch.cdist(z_pix, self.pix_codebook.weight, p=2.0)
        joint_dist = self.sem_weight * d_sem + self.pix_weight * d_pix
        idx = joint_dist.argmin(dim=-1)
        with torch.cuda.amp.autocast(enabled=False):
            q_sem = self.sem_codebook(idx).float()
            q_pix = self.pix_codebook(idx).float()
        return idx, q_sem, q_pix

组件 2:Multi-Scale 3D RoPE 位置赋值

def build_msrope_positions(text_token_ids, vision_grids, scale_index, C: float = 1.0):
    positions = []
    t = 0
    for tok in text_token_ids:
        positions.append((t, t, t))
        t += 1
    for s, (H, W) in enumerate(vision_grids):
        norm = C / math.sqrt(H * W)
        for i in range(H):
            for j in range(W):
                p_x = norm * (i + 0.5)
                p_y = norm * (j + 0.5)
                p_s = float(scale_index[s])
                positions.append((p_x, p_y, p_s))
    return positions

组件 3:Scale-aware Loss Reweight

def scale_reweighted_vision_loss(logits, targets, scales, alpha: float = 0.9):
    losses = []
    weights = []
    for s, (h_s, w_s, scale_logits, scale_targets) in enumerate(scales):
        ce = F.cross_entropy(scale_logits, scale_targets, reduction="sum")
        k_s = 1.0 / ((h_s * w_s) ** alpha)
        losses.append(ce * k_s)
        weights.append(k_s * (h_s * w_s))
    total = sum(losses) / max(sum(weights), 1e-8)
    return total

组件 4:Self-Correction with Residual Features

def self_correct_inputs(z_sem, z_pix, codebook_sem, codebook_pix, top_k=8, prob=1.0,
                        token_ratio=0.6):
    d_sem = torch.cdist(z_sem, codebook_sem.weight, p=2.0)
    d_pix = torch.cdist(z_pix, codebook_pix.weight, p=2.0)
    joint_dist = d_sem + d_pix
    topk_idx = (-joint_dist).topk(top_k, dim=-1).indices
    sample_logits = -joint_dist.gather(-1, topk_idx)
    sample_probs = sample_logits.softmax(dim=-1)
    sampled_relative = torch.distributions.Categorical(probs=sample_probs).sample()
    sampled_idx = topk_idx.gather(-1, sampled_relative.unsqueeze(-1)).squeeze(-1)
 
    apply_mask = (torch.rand_like(sampled_idx.float()) < token_ratio) & (
        torch.rand_like(sampled_idx.float()) < prob
    )
    target_idx = joint_dist.argmin(dim=-1)
    input_idx = torch.where(apply_mask, sampled_idx, target_idx)
 
    feat_sem = codebook_sem(input_idx)
    feat_pix = codebook_pix(input_idx)
    return input_idx, target_idx, feat_sem, feat_pix

组件 5:Prefix-tuning GRPO 优化

def prefix_grpo_step(policy, policy_old, ref_policy, sample_fn, reward_model, conds,
                     num_groups=8, num_prefix_scales=8, beta=0.04, eps=0.2):
    losses = []
    for c in conds:
        rollouts = [sample_fn(policy_old, c) for _ in range(num_groups)]
        rewards = torch.tensor([reward_model(x, c) for (x, _) in rollouts])
        advantage = (rewards - rewards.mean()) / (rewards.std() + 1e-8)
 
        for (x, traj), A in zip(rollouts, advantage):
            for t, (s_t, a_t) in enumerate(traj):
                if t >= num_prefix_scales:
                    continue
                logp_new = policy.token_log_probs(s_t, a_t, c)
                logp_old = policy_old.token_log_probs(s_t, a_t, c).detach()
                ratio = (logp_new - logp_old).exp()
                clipped = torch.clamp(ratio, 1.0 - eps, 1.0 + eps)
                surrogate = -torch.min(ratio * A, clipped * A).mean()
                kl = (policy.dist(s_t, c).log() - ref_policy.dist(s_t, c).log()).mean()
                losses.append(surrogate + beta * kl)
    loss = torch.stack(losses).mean()
    loss.backward()

组件 6:Optional Diffusion Decoder 推理 wiring

def diffusion_decoder_refine(diff_model, sem_codebook, pix_codebook, sem_decoder,
                              text_encoder, sem_indices, pix_indices, caption):
    sem_emb = sem_codebook(sem_indices)
    pix_emb = pix_codebook(pix_indices)
    decoded_sem_feat = sem_decoder(sem_emb)
    visual_cond = torch.cat([sem_emb, pix_emb, decoded_sem_feat], dim=-1)
    visual_cond = diff_model.visual_projection(visual_cond)
    text_cond = text_encoder(caption)
    refined_image = diff_model(visual_cond=visual_cond, text_cond=text_cond)
    return refined_image

3.12 Code-to-paper mapping

Code reference: main @ 31870c2 (2026-01-09) — 公开仓库 ByteVisionLab/NextFlow 仅含 README.md 与 demo assets(framework/training_pipeline/demo_t2i 等示例图片)。训练 / tokenizer / inference 源码均未开源,所以以下表格是论文概念 → 论文所在节节/公式的映射,不是与 source file/class 的映射。如果外部者需要复现,必须依靠论文 + Sec.参考实现(例如 VAR / TokenFlow / Qwen2.5-VL 各自的开源仓库)。

Paper ConceptPaper Section / EquationAnchoring Public Repo (不是 NextFlow 仓库本身)
Dual-codebook tokenizer§2.1, Eq. “联合距离”TokenFlow (byteflow-ai/TokenFlow)
siglip2-so400m-naflex semantic encoder§2.1google/siglip2-so400m-patch16-naflex
Multi-Scale 3D RoPE 位置赋值§2.2 “Positional Encoding”, Eq. (1)VAR 参考 (FoundationVision/VAR)
Scale-aware Loss Reweight§2.2 “Scale Reweight”, Eq. (2)(论文仅描述、未使用 third-party 现成 implementation)
Self-correction with Residual Features§2.2 “Self Correction”VAR 里有 self-correction 原型,但 residual variant 为 NextFlow 提出
Optional Diffusion Decoder§2.3, Figure 6(closed; 论文描述三个型号 1B/12B/18B + LoRA)
Decoder-only Transformer backbone§2.2, §3.2.2–3.2.3Qwen2.5-VL (QwenLM/Qwen2.5-VL)
FusedLinearCrossEntropy kernel§4 “High-Performance Kernel”linkedin/Liger-Kernel (论文引文 [26])
Workload-balanced packing§4 “Workload Balance”, Figure 13, Table 3(论文仅描述)
Pre-extract image indices§4(论文仅描述)
GRPO + prefix-tuning§3.2.5, Eq. (3)(4)(5), Figure 12DeepSeek GRPO (deepseek-ai/DeepSeek-Math) 为 base GRPO、prefix-tuning 为 NextFlow 提出

4. Experimental Setup (实验设置)

4.1 Datasets

预训练语料 (§5)。NextFlow 训练语料总量~6T tokens,跨多个模态:

  • Visual Understanding: 开源 image-caption + text-rich (scene text/document/table/chart/plot) + world knowledge。所有 caption 被 VLM 重写。
  • Image Generation (T2I): B 量级。开源补充源:Megalith ([4])、CommonCatalog ([22])、以及字节自有 image gallery。处理管道:启发式过滤 + aesthetic model;SigLip2 zero-shot topic classifier 分赋“keke人物 / 动植物 / 食物”等主题,在分布偏斜 source 上重采样使训练集均衡。CT 阶段加少量 synthetic data 提高美感。

Figure 14 解读:外环为二级 sub-categories(家人 / 人物动作 / 动物 / 微型、屋内、生活场景、Architecture、Vehicles…),内环为 primary categories(主要点:General Objects 28.3%, Person 38.7%, Art and Styles 16.7%, Document 3.3%, Chart 3.1%, Fine Art 与 Illustration)。右侧展示 Top 10 visual examples,grid 三行三列,覆盖从 Group/Action 到 Mixed Layout。选择这张图的原因是论文明确报告在平衡分布上走了 SigLip2 + topic classifier,在 t2i benchmarks 上需要这个平衡分布才能避免生成 prior 偏在某个子类。

  • Image Editing: 分 traditional editing 与 subject-driven generation。Traditional 启发于 UniWorld-V1 / RealEdit / ShareGPT-4o-Image,面向 mismatched resolution 、 5%+ bad edit subset 、 sample-level VLM 评估三重过滤;为补 long-tail加 synthetic editing。Subject-driven 从实世界重现中带 VLM 找 “同一主体多视角” 图对,以代替 workflow 合成。

Figure 15 解读:左侧 traditional editing 、顶部为高层 semantic types (Local / Global / View / Text / Style) 上下环状,拼出 Add / Remove / Replace / Modify / Change/ Convert / Transform/ Swap 等仔细操作。右侧 subject-driven 则由 ID Keep / Common Object / Abstract Content / Visual Style 四大型拼出,反映了“与主体保持一致”这类任务的多样性。这与训练配方中 §3.2.3 提到的 20M editing tokens (PT-512 阶段) 与 2M (PT-1024 阶段) 对应。

  • Interleaved Generation: video-text 语料。源面 OmniCorpus-CC, OmniCorpus-YT, Koala36M。过滤:clip > 20s 丢、aesthetic > 4.3 仅留 top30%、清晰度 > 0.7 留 top50%、motion score > 4 以避免静态伪动 —— 合计去除~75% raw。5.3M 干净 clips。再靠 SigLIP 为各种场景重采样。Frame 选择用 RAFT optical flow 跳静态/全局镜头摇,max 5 frames @ 512 或 3 frames @ 1024;Transition text 由 VLM 生成。
  • Pure Text: NemotronCC HQ + MegaMath。

4.2 Baselines

论文跨多个 benchmark 跨 baseline 多。主要参与对比的是:Diffusion 侧:SDXL、DALL-E 3、SD3-Medium、FLUX.1-dev、GPT Image 1 [High]、HiDream-I1-Full、Seedream 3.0、Qwen-Image;AR-Diffusion hybrid侧:Transfusion / BAGEL / Bagel-CoT;纯 AR侧:Chameleon、Emu3-Gen、TokenFlow-XL、Show-o、NextStep-1、Janus-Pro-7B、Infinity-8B、EMU3.5;编辑限 定 baselines:MagicBrush、Instruct-Pix2Pix、AnyEdit、UltraEdit、OmniGen / OmniGen2、ICEdit、Step1X-Edit、UniWorld-V1、FLUX.1 Kontext [Pro/dev]、GPT-Image-1、Gemini-2.0、Nano-Banana 等。

4.3 Evaluation Metrics

  • GenEval ([21]): T2I 提示跟随能力,6 个维度 (Single Obj./Two Obj./Counting/Colors/Position/Color Attribution)。
  • DPG ([28]): T2I 提示本身质量,5 个维度 (Global/Entity/Attribute/Relation/Other)。
  • WISE ([48]): 世界知识 + 复杂语义理解,6 个维度 (Cultural/Time/Space/Bio./Phys./Chem.)。
  • PRISM-Bench ([18]): T2I 创作质量,Imagination/Entity/Text Rendering/Style/Affect/Composition/Long Text/Overall 八项 (GPT-4.1 评分)。
  • ImgEdit ([83]): 编辑任务全 spectrum (Add/Adjust/Extract/Replace/Remove/Background/Style/Hybrid/Action)。
  • OmniContext ([76]): 编辑与主体保持,拆 SINGLE/PAIR/SCENE;Prompt Following (PF) + Subject Consistency (SC)。
  • GEdit-Bench ([45]): G_SC (语义一致) / G_PQ (感知质量) / G_O (两者几何平均)。
  • EditCanvas (论文提出): 56 仔仔叶任务 × 5000+ 高质量样本,Traditional Editing 与 Subject-Driven Generation 两大友 隆,项项均由 GPT-4.1 打分 (PF/PQ/SC/Overall)。
  • Tokenizer reconstruction: ImageNet-1K val + in-house benchmark,PSNR 与 SSIM。
  • Multimodal understanding: MMStar / ChartQA / OCRBench / MME / MME-P / MMB / MMMU / TextVQA。

4.4 Training config

  • 1024 GPUs (§4)、DeepSpeed ZeRO + grad checkpointing。
  • Total tokens: 6T+ (alignment 0.01T + PT 5.4T + CT 0.2T + SFT 0.02T)。LR 调度:alignment 1e-3 → PT 1e-4 → CT 5e-5 → SFT 1e-5。
  • Optimizer / batch / weight decay etc. 论文主体未列举,以“论文未详细说明”记录。
  • Tokenizer: 从 pretrained checkpoints 初始化 + jointly + double pixel decoder finetune,fp32 quantization,50% scale dropout。
  • Self-correction: 100% 样本、每个 scale 里 60% tokens。
  • RL: GRPO,prefix m=8 尺度 (Figure 12 例示的 prefix=64/128/256/512 为 token 数量表述,对应 m 在 8 左右)。

5. Experimental Results (实验结果)

5.1 Text-to-Image 提示跟随与世界知识

GenEval (Table 5)。NextFlow 0.83、NextFlow-RL 0.84 ;RL 后 Single Obj. 满分 1.00,Two Obj. 0.92,Counting 0.75,Colors 0.90,Position 0.76,Color Attribution 0.70。Hybrid baselines 的顶上是 BAGEL† 0.88;diffusion 最高 Qwen-Image 0.87。NextFlow-RL 超过了 SD3-Medium (0.74), FLUX.1-dev† (0.82), HiDream-I1-Full (0.83), GPT Image 1 [High] (0.84) (持平)。同型号 AR 中只输 EMU3.5† (0.86) 。

DPG (Table 4)。NextFlow-RL 88.32 (Global 92.09 / Entity 93.48 / Attribute 91.92 / Relation 92.08 / Other 93.22)——与 Qwen-Image 88.32 持平,超 EMU3.5 (88.26)、FLUX.1-dev (83.84)。NextFlow w/o RL = 86.00,超 Janus-Pro-7B (84.19) 与 NextStep-1 (85.28)。RL 会为 Entity / Other 维度带来明显提升。

WISE (Table 6)。NextFlow-RL 0.62 (Cultural 0.63, Time 0.63, Space 0.77, Bio. 0.58, Phys. 0.67, Chem. 0.39)。与 Qwen-Image 0.62 持平;远超同类 AR 中 Show-o 0.30、Janus-Pro-7B 0.35。未 RL 版本 0.59 也已超过所有同型 AR baselines。

PRISM-Bench (Table 7)。NextFlow 74.7、NextFlow-RL 78.8 (Imagination 87.1, Entity 79.3, Text Rend. 49.8, Style 83.8, Affect 88.8, Composition 90.5, Long Text 72.4)。这个总分跟 SEEDream 3.0 (79.6) 与 Qwen-Image (79.9) 同量级,AR 中远超 JanusPro-7B (60.7)。“Text Rendering” 是 NextFlow 相对较弱项目,论文以 RL 后 49.8 与 diffusion 顶级 64.3 存在 14 分差距作记。

5.2 Image Editing

ImgEdit (Table 8)。NextFlow-RL 4.49达总分顶,超过 Qwen-Image 4.27、Emu3.5 4.41、GPT Image 1 [High] 4.20;亚项 Adjust 4.68 / Remove 4.67 / Action 4.77,表示“在局部动东调整不破坏全局”是 NextFlow 的明显优势。NextFlow w/o RL 为 4.44 仍顶。

OmniContext SINGLE (Table 9)。NextFlow-RL Character SC 9.22 / Object SC 8.76 / Average SC 8.99,Average Overall 8.67。超 OmniGen2 7.81、超 GPT-4o 8.95 量级。SC > GPT-4o 8.88 是主要亮点 ——论文提供证据证明 interleaved pretraining 在 ID 保持上能带来 closed-model-level 表现。

GEdit-Bench (Table 10)。NextFlow-RL G_SC 8.37 / G_PQ 8.10 / G_O 7.87,超 EMU3.5 7.59 / Qwen-Image 7.56。NextFlow w/o RL G_O 7.60 仍超 二者。RL 在 G_SC 上提供主要增量。

EditCanvas (Table 11)。NextFlow-RL Overall 8.04; Edit Task PF 8.11 / PQ 7.26 / Ov. 7.31;Subject-Driven PF 9.17 / SC 8.47 / Ov. 8.78。顶上是闭源走全类的 GPT-Image-1 (Overall 8.67) 与 Emu3.5 (8.37);NextFlow-RL 在开源 / 可复现型 AR 中是顶,同时在 PF / SC 上都以 8.0+ 馆位,表示其在主体驱动编辑上与传统编辑两友都能胜任。

Figure 4 解读:EditCanvas benchmark 几个代表性编辑任务示例。包含背景补填与变天、人物年龄修改、颜色 / 服装 / 拍携视角 / 颜色咨询、涵盖 Local Edit / Global Edit / Style Edit / View Edit / Text Edit 几大型。帮助读者直观看到“56 仔仔叶任务”是怎么被覆盖的。

上图解读:NextFlow 在主体驱动编辑 + 局部编辑 的可视化 case,覆盖“Extract 主体 + 重新背景”与“Replace style/material”代表性任务。

5.3 Interleaved Generation

Figure 18 解读:三件 case:storytelling (希伊君为牙鸭变为美丽鸥主题 5 帧 stages)、菜谱指导(从原材料 → 划切 → 烹饪 → 拌銭 → 装盘)、动态场景(银汽车沿海岸 5 帧)。该架构使双向 alignment 与 text+vision 生成能在一走 unfiltered AR 成为可能;论文未量化表状该能力,但定性 case 表现 figure 越部该能力仅远远超 BAGEL 的 baseline (§6.3 论述)。

5.4 CoT Reasoning

Figure 19 解读:定性对比有 / 无 reasoning 下的生成。左侧为 baseline 宜接生成 (例如 “Australia 国寶动物” 误生为 Red Panda);中间是 reasoning trace,模型 “think” 在不同社会/生物背景下说明“需要 重设 Australia=Kangaroo, China=Giant Panda, Maple Leaf in summer = green leaf with veins”;右侧为根据 reasoning 结果重生成。在 WISE intermediate ckpt 的控制实验下,加 CoT 使 WISE 分从 0.60 提到 0.70,是一个顶推进幅。论文明确提醒这是中间 ckpt 的探索型实验,并不是最终 model 后后的最终数字。

5.5 In-Context Learning

Figure 20 解读:给定两对 example image 变换 (e.g. 变色 / 变封装 / 变背景),模型需推 “transformation pattern”并应用到 target 图。NextFlow 能复现 in-context-style 零样本编辑。这是 decoder-only AR 架构原生能力,是其跨 hybrid AR-Diffusion 、跨 diffusion-only 的位紧 超点,论文以这 case 为 interleaved + reasoning 三项能力多点互思的证据。

5.6 Image Reconstruction

定量 (Table 12)。ImageNet-1K@512: NextFlow PSNR 25.228 / SSIM 0.820 (vs Original TokenFlow 23.147 / 0.761,+2.08 dB);1024@in-house: PSNR 28.038 / SSIM 0.900,说明高分辨下 tokenizer 仍能提供准広重建。

Figure 21 解读:肶面 / 小字 场景下重建的对比。左为 Input,中为 VQ decoder,右 为 1B/12B/18B 三型号 diffusion decoder。零是 VQ 足够“看出是什么”,但在人脸、报贴小字上:diffusion 12B/18B 充充能补上详细 高频。

Figure 22 解读:T2I 场景下三个型号 diffusion decoder 制 他出什么 不同。随参数增量细节 fidelity 升。

Figure 23 解读:编辑场景下重启 diffusion decoder 反而可能带来变化 (e.g. ID 、身体姿态、几何位置)。这是“不要在 strict spatial 任务上启 diffusion decoder”的证据。主表中 quantitative + visualization 默认 VQ-only 是合理选择。

5.7 Multimodal Understanding

(Table 13)。7B base + 0.7M LLaVA-1.5 SFT 跨 LLaVA-1.5 13B baseline 处 comparable (MMStar 44.0 vs 36.7;ChartQA 18.7 vs 20.4;OCRBench 35.6 vs 36.2;MME 1752.1 vs 1826.7)。能提高 21M LLaVA-OneVision 能充充启脸上 doc-style 任务 (ChartQA 50.4, OCRBench 44.8)。加 19M HQ caption mid-train + 21M SFT (总 40M) 后 MMStar 53.0 / ChartQA 57.7 / OCRBench 55.1 / MME 1897.7 / TextVQA 58.9,跨表是同价位上主要增量。作者谈论 7B 参数下“同时走理解 与生成” 在 dense 架构中反而决定了 capacity bottleneck。

5.8 推理效率

上图解读:NextFlow 与 raster-scan AR / MMDiT diffusion 在 1024² 推理上的耗时与 FLOPs 对比。raster-scan AR 在同分辨率下 token 数随 quadratic 涨,单图推理可能在 10 分钟以上;NextFlow 利用 next-scale prediction 把多 scale 内的 token 拉成同一步并行预测,得到 ~5 秒/张 1024² 的吞吐,并把 FLOPs 压到 MMDiT 的 1/6。这一图同时说明对比 hybrid AR-Diffusion,NextFlow 不需要在每个推理步交叉切换”扩散去噪 ↔ AR 解码”两套子图,调度更直接。

论文估计:在 1024² 下,NextFlow 推理 FLOPs 为 MMDiT-based diffusion 的 1/6,生成一张 1024² 在 5 秒内完成;对照 raster-scan AR (Chameleon / EMU3 / EMU3.5) 在同 分辨率上可能需 10 分钟,这是 orders of magnitude 加速。next-scale 跨尺度 stop 能在 7B 参数下走到交互可用、是论文仅依赖架构、不需 hidden trick 的量另位结果。

5.9 Limitations

论文 §7 明确记录三项限制:

  1. 离散 VQ 占词带有上限。即使双码表 + 动态分辨率,量化 inevitably 损高频。对照 continuous latent space 的模型,NextFlow 仍需要 optional diffusion decoder 作为 hyper-realistic refiner。这一点同时作为 tokenizer 取开发的主要限制点。
  2. 7B 多任务 capacity bottleneck。同时要走“理解 与 生成”使 7B dense 架构在底层例如 OCR / chart 上必需 仍不是顶位(§6.7)。论文谈论该点为“底层 capacity不足” 而非 algorithm 问题。
  3. 训练 corpus 里高质量理解 数据不多。§7 明确说“dense reasoning data 是低上叠”,是今后该 升级的主要点。

5.10 Future Directions

论文 §7 提出四个看点,是其后续路线图:

  • 数据扩展:丰富 dense reasoning — 针对理解与复杂 reasoning chain,类似 LLM 训练中“质鱼包拼接”的设置。事实上论文貌似表说 NextFlow base 在 understanding 类 benchmark 仍是底位,主因 是训练语料中这部分比重低。
  • 模型扩展:dense → MoE — 论文提及一个 toy 实验验证 transition 到 MoE 如何明显提高生成质量。
  • 下一代 tokenization — variable-rate quantization 与 semantic-aware compression,使高分辨率下 sequence length 进一步裁减,与 next-scale prediction 叠加加速。
  • Native multimodal CoT 与 Unified RL — 一个 decoder-only AR 架构天然能带“边生边推理 / 边生边 reasoning”的额外参者,与 Transfusion 带 disjoint 优化目标的架构不同,NextFlow 能以 LLM RL 原生 tools 跨模态上 RL、以“美与错” 、“ID”、“text”、“semantic plausibility”多 reward 粒度联调。

6. 总结 (Summary)

NextFlow 是一篇 “在一个 7B decoder-only Transformer 上同时走理解 / 生成 / 编辑 / 交错 / 零样本 的收头性论文”。他们用三件事跨过了同型 AR 走不走通的碑颗:(1) dual-codebook + dynamic resolution tokenizer 赋予离散 token “understanding-friendly” 语义密度;(2) next-scale prediction 把 1024² 推理 从 10+ 分钟加速到 5 秒内,同时以 scale reweight + residual self-correction 保证训练可运行;(3) prefix-tuning GRPO 是“多尺度 AR 上 RL 如何不被细尺度 token 压碎”的一条干净路。

从表设看,论文在 GenEval / DPG / WISE / PRISM-Bench / ImgEdit / OmniContext / GEdit-Bench / EditCanvas 八个 benchmark 上都走到了「与 Qwen-Image / EMU3.5 / GPT Image 1 同量级 or 最高」,跨 understanding 类表 仍看到“以 7B 处 13B baseline 同价位”这种反事实表现。他们随后不启 diffusion decoder 是主表选择,同时保留“仅需 hyper-realistic 时启 diffusion refiner”的选项。

从代码 发布看,公开仓库 ByteVisionLab/NextFlow 在 commit 31870c2 (2026-01-09) 上仅发布 README + demo assets ,未发布 tokenizer / training / inference代码。本笔记中的伪代码与 mapping 表 皆以论文为准,变底重现需要结合 TokenFlow / VAR / Qwen2.5-VL 三个仓库。未来有望开源 NextFlow tokenizer 与训练 launcher。