CoCo:代码即思维链——用于文生图预览与罕见概念生成 CoCo: Code as CoT for Text-to-Image Preview and Rare Concept Generation
用可执行代码作为思维链中间表示,实现精确可控的文生图生成
前置知识
Chain-of-Thought (CoT) 思维链
CoT是一种让大语言模型在给出最终答案前,先生成中间推理步骤的技术。传统CoT通过自然语言逐步推理,例如在数学题中先列出已知条件再推导。在文生图领域,CoT意味着模型先进行某种形式的规划或推理,再生成图像。然而,自然语言CoT难以精确描述空间布局和视觉结构,这正是本文要解决的核心问题。
本文的核心创新就是将CoT从自然语言形式扩展到可执行代码形式,理解传统CoT的局限性是理解本文动机的关键。
Unified Multimodal Model (UMM) 统一多模态模型
UMM是在单一架构中同时支持视觉理解和视觉生成的模型,如Bagel、EMU3、Janus等。这些模型通常采用Mixture-of-Transformer-Experts (MoT)架构,包含专门处理不同模态的分支。UMM能够处理交错的图像-文本输入,并基于复杂多模态指令合成图像,是本文方法的基础架构。
本文基于Bagel这一UMM进行改进,理解UMM的工作原理有助于把握方法的技术基础。
Rectified Flow 整流流
Rectified Flow是Bagel采用的图像解码方法,用于将VAE tokens转换为高保真图像。它是一种生成模型技术,通过学习数据和噪声之间的直线路径来实现高质量的图像生成。相比传统扩散模型,Rectified Flow在生成质量和效率方面有其独特优势,是Bagel视觉生成分支的核心技术。
理解Rectified Flow有助于理解draft图像如何通过VAE编码器被转换为tokens,以及最终图像如何从这些tokens生成。
研究动机
现有的基于CoT的文生图方法主要依赖抽象的自然语言规划,这在处理复杂空间布局、结构化视觉元素和密集文本内容时存在严重不足。具体而言,自然语言规划无法精确指定空间布局、结构约束和细粒度视觉属性。例如,当提示'2D plot of y=x²'时,当前模型经常产生结构错误或文本不可读的图像,因为在推理过程中缺乏显式的视觉锚定。实验数据表明,基础模型Bagel在LongText-Bench上仅有9.06%的代码可执行率(29/320),说明模型难以生成可靠的代码用于下游渲染。
本文的目标是本文的目标是探索可执行代码是否能作为更精确、可验证的CoT形式,生成显式的draft图像来引导结构化和文本密集型图像生成。具体来说,作者希望构建一个代码驱动的推理框架,将推理过程表示为可执行代码,实现显式且可验证的中间规划,并通过沙盒执行获得确定性的draft图像,最终通过精炼生成高保真结果。
与已有工作不同的是,本文的独特切入角度在于将推理过程从自然语言描述转变为可执行代码。与现有方法的本质区别是:代码能够显式编码空间布局、结构约束和文本位置,以确定性和可执行的方式表示。一旦执行,代码会产生一个具体实例化模型推理结果的draft图像,使得规划的结构直接可观察和可验证。这种可执行推理过程将抽象规划转化为显式的视觉支架,允许模型检查渲染的draft并进行有针对性的精炼。
核心方法
CoCo框架采用三阶段流水线:代码生成、draft图像渲染和draft引导精炼。直觉上,与其直接一步合成最终图像,不如先用代码精确描述图像的结构布局,然后执行代码获得一个'骨架'draft图像,最后在此基础上进行视觉增强。技术路线是:给定文本提示$p$,模型首先生成代码$c$,该代码确定性地指定目标图像的核心语义结构;然后在沙盒环境中执行代码$c$得到draft图像$I_d$;最后通过draft引导的精炼阶段,将$I_d$编码为VAE tokens和ViT特征,输入统一MLLM生成最终高保真图像。整个过程基于Bagel架构,利用其MoT结构分别处理理解任务和生成任务。
核心创新点是将Chain-of-Thought推理从自然语言形式转变为可执行代码形式。与已有方法的本质区别在于:(1) 代码提供精确的空间布局和结构约束,而自然语言描述本质上过于抽象;(2) 代码执行产生确定性的draft图像,使得规划结果直接可观察和可验证;(3) draft图像作为具体视觉支架,允许模型进行有针对性的精炼,而非从零开始生成。这种'先规划后精炼'的范式解决了UMM在结构化视觉合成和复杂文本渲染方面的固有不足。
方法步骤详情
方法分为三个步骤:第一步是代码生成,利用统一MLLM的语言推理能力,给定用户提示$p$,模型生成代码$c$,该代码显式描述关键视觉元素如空间布局、对象关系、文本渲染和画布配置。代码专注于指定场景的核心语义结构,细粒度视觉细节留待后续精炼。第二步是draft图像渲染,生成的代码$c$在沙盒环境中执行,产生draft图像$I_d$,沙盒通过受限操作和隔离运行时环境确保安全稳定执行,draft $I_d$捕获代码指定的核心语义布局。第三步是draft引导精炼,draft图像$I_d$使用ViT编码器和VAE编码器编码后反馈给统一MLLM,ViT编码器提取高级语义特征用于全局推理,VAE编码器保留低级视觉细节用于精确图像编辑,两者共同使模型能够增强视觉真实感同时保持draft定义的结构语义。
技术新颖性
技术新颖性体现在多个层面:首先,将CoT推理从自然语言扩展到可执行代码是全新的推理范式;其次,构建了CoCo-10K数据集,包含Text-Code对和Text-Draft Image-Final Image三元组,这是首个针对代码驱动文生图的监督数据集;第三,数据构建过程中识别了三种原子校正能力(通用编辑、科学图表、复杂文本),并为每种能力设计了专门的数据合成流水线,利用Gemini-3-Pro生成代码,利用Nano Banana进行图像精炼;第四,训练损失函数设计巧妙,仅在代码token上计算交叉熵损失,在VAE tokens上计算MSE损失,平衡了代码生成和图像精炼的学习。
实验结果
CoCo在多个基准测试上取得了显著改进。在StructT2IBench上,CoCo达到73.52%的整体准确率,比最佳基线GPT-Image (49.58%)高出23.94个百分点,在Chart (79.44%)、Graph (62.58%)、Math (69.12%)和Table (79.15%)等结构化任务上表现最佳。在OneIG-Bench上,CoCo达到0.853的整体分数(英文0.895,中文0.811),超越所有对比方法。在LongText-Bench上,CoCo达到0.754的整体分数(英文0.755,中文0.753),展示了在长文本渲染方面的强竞争力。消融研究表明,当Text-Code监督比例$r_c=0.05$时性能最佳,表明少量代码监督足以诱导结构化推理,而主要训练信号应来自draft-to-final精炼数据。代码可执行性诊断显示,经过训练后CoCo达到100%编译成功率,而基础Bagel仅有9.06%。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 结构化图像生成 (StructT2IBench) | Accuracy (%) | 73.52% | GPT-Image 49.58% | +23.94% (相对提升+48.3%) |
| 英文文本渲染 (OneIG-Bench) | Accuracy (%) | 0.895 | GPT-4o 0.857 | +0.038 (相对提升+4.4%) |
| 中文文本渲染 (OneIG-Bench) | Accuracy (%) | 0.811 | GPT-4o 0.650 | +0.161 (相对提升+24.8%) |
| 长文本渲染 (LongText-Bench) | Accuracy (%) | 0.754 | Bagel 0.342 | +0.412 (相对提升+120.5%) |
| 数学图表生成 (StructT2IBench Math) | Accuracy (%) | 69.12% | GPT-Image 63.25% | +5.87% (相对提升+9.3%) |
局限与改进
作者承认的局限性包括:训练数据固定在1024分辨率,虽然推理时模型能自适应配置画布,但这种泛化能力的边界尚不清楚。此外,CoCo在Puzzle任务上表现相对一般(49.10%),与GPT-Image的59.42%相比仍有差距,说明在某些需要复杂空间推理的任务上仍有改进空间。从我自己的观察来看,CoCo依赖于沙盒环境执行代码,这可能限制了生成图像的复杂度和风格多样性;同时,方法需要额外的代码生成和执行步骤,增加了推理时间和计算成本;此外,CoCo-10K数据集的构建依赖于外部模型(Gemini-3-Pro和Nano Banana),可能存在数据质量和多样性的瓶颈。
独立分析的弱点
独立分析的弱点包括:(1) 代码生成的表达能力受限——当前主要使用matplotlib等可视化库生成图表,对于更复杂的艺术风格图像可能缺乏足够的表达能力,改进方向是扩展代码库支持,引入更多可视化和图形编程工具;(2) 沙盒执行的安全性和效率——受限的执行环境可能限制某些高级图形操作,同时代码执行增加了推理延迟,可以探索更高效的代码执行引擎或预编译优化;(3) 数据集规模和多样性——CoCo-10K相对较小,可能无法覆盖所有图像类型,改进方向是扩大数据集规模并引入更多样化的图像类型;(4) 对基础模型的依赖——方法需要强大的UMM作为基础,对于资源受限的场景可能不适用。
未来方向
作者提出的未来方向包括探索代码作为CoT在更多视觉任务中的应用。基于当前成果可延伸的方向有:(1) 将Code-as-CoT范式扩展到视频生成,用代码描述时间序列和动态布局;(2) 探索交互式代码编辑,允许用户在代码层面调整生成结果;(3) 研究代码风格对生成质量的影响,开发更优的代码生成策略;(4) 将方法与强化学习结合,通过代码执行结果作为奖励信号优化模型;(5) 探索多模态代码生成,结合图像和文本输入生成更精确的代码。
复现评估
复现评估:代码已在GitHub开源(https://github.com/micky-li-hd/CoCo),这有助于社区复现和改进。然而,训练数据集CoCo-10K的构建依赖于外部商业模型(Gemini-3-Pro和Nano Banana),这可能影响完全复现。训练需要8块H800 GPU,计算资源要求较高。方法基于Bagel模型,需要先加载预训练的Bagel权重。代码生成和执行环境的搭建相对简单,主要是Python沙盒环境。总体而言,有开源代码和详细描述,复现难度中等,主要瓶颈在于计算资源和外部API访问。
论文图表
该图展示了五种不同的文生图推理范式:(a) 无显式推理的直接生成;(b) 文本CoT推理后生成;(c) 文本CoT加中间视觉draft;(d) 多轮推理加迭代draft;(e) CoCo方法,生成可执行代码作为结构化视觉draft。每种范式都配有简化的流程图示。
这张图对理解论文至关重要,因为它直观展示了CoCo与现有方法的本质区别,说明了为什么代码作为CoT比自然语言CoT更适合结构化图像生成。