CoCo: Code as CoT for Text-to-Image Preview and Rare Concept Generation¶
日期: 2026-03-09
arXiv: 2603.08652
代码: GitHub
领域: 图像生成
关键词: Text-to-Image, Chain-of-Thought, 代码推理, 统一多模态模型, 结构化生成
一句话总结¶
提出 CoCo 框架,将可执行代码作为 Chain-of-Thought 中间表示,先生成代码渲染结构化草图,再精细化编辑生成最终高质量图像,在结构化 T2I 生成任务上大幅超越现有方法。
研究背景与动机¶
- 现状:统一多模态模型(UMM)在文本到图像生成中取得显著进展,Chain-of-Thought 推理已被引入 T2I 任务以提升复杂场景生成质量
- 痛点:现有 CoT-based T2I 方法主要依赖抽象的自然语言规划,缺乏精确描述复杂空间布局、结构化视觉元素和密集文本内容的能力。例如输入 "2D plot of y=x²" 这样的提示词时,模型常生成错误结构或不可读文字
- 矛盾:自然语言 CoT 天然具备模糊性和不确定性,而结构化图像生成需要精确的空间坐标、元素关系和文本放置,两者之间存在根本性的表达力鸿沟
- 切入角度:代码天然具备精确性、可执行性和确定性,可以显式编码空间布局、结构约束和文本位置。执行后的代码会产生可观察、可验证的中间结果
- 核心idea:将推理过程表示为可执行代码(Code-as-CoT),先生成代码在沙盒中渲染确定性草图图像,再基于草图进行精细编辑得到最终高保真图像
方法详解¶
整体框架¶
CoCo 包含三个阶段的流水线: 1. 代码生成 (Code Generation):给定文本提示,模型生成可执行代码,显式编码目标图像的结构语义 2. 草图渲染 (Draft Image Rendering):在沙盒环境中执行代码,生成确定性的草图图像 3. 草图引导精修 (Draft-Guided Refinement):基于草图进行精细化图像编辑,保留结构同时提升视觉保真度
关键设计¶
模块 1:代码生成阶段
- 做什么:利用 UMM 的语言推理能力,根据用户 prompt 生成可执行代码
- 核心思路:代码聚焦于描述场景的核心语义结构(空间布局、对象关系、文本渲染、画布配置),将视觉细节留给后续精修
- 设计动机:代码本质上是一种精确且可验证的推理形式,能够将抽象规划转化为可观察的视觉脚手架
模块 2:沙盒执行渲染
- 做什么:在受限的沙盒环境中执行生成的代码,渲染出draft图像
- 核心思路:沙盒确保安全稳定的执行,生成的草图捕获代码指定的核心语义布局
- 设计动机:将程序化推理实例化为具象的视觉表示,使模型可以检查渲染结果并进行有针对性的改进
模块 3:草图引导精修
- 做什么:草图图像通过 ViT 编码器和 VAE 编码器编码后送回 UMM 进行精修
- 核心思路:ViT 提取高层语义特征用于全局推理,VAE 保留底层视觉细节用于精确编辑,两者协同实现"保结构、提质量"
- 设计动机:程序化渲染的草图视觉外观简单,需要在保持语义对齐的同时增强视觉真实感
损失函数 / 训练策略¶
基于 Bagel 进行有监督微调,损失函数由两部分组成:
- 代码损失:token 级交叉熵 \(\mathcal{L}_{\text{code}} = -\frac{1}{|v|}\sum_{i=1}^{|v|}\log(v_i)\)
- 图像损失:VAE token 上的 MSE(Rectified Flow 目标)\(\mathcal{L}_{\text{final}} = \mathbb{E}_{t,x_0,x_1}[\|m(t,x_t)-(x_1-x_0)\|^2]\)
训练细节:冻结 ViT、VAE 编码器及其连接器;全参数微调 16K 步;学习率 2×10⁻⁵,warmup 2K 步;使用 EMA 权重评估;8 × H800 GPU
CoCo-10K 数据集¶
构建了包含 10K+ 结构化监督实例的训练数据集,涵盖三种原子纠正能力: - 编辑数据集:基于 StructVisuals 的图表编辑对(保持结构感知) - 合成数据集:使用 Gemini-3-Pro 生成代码 + Nano Banana 精修,覆盖科学图表和密集文本场景 - 数据组织为 Text-Code 对和 Text-Draft-Final 三元组两种格式
实验关键数据¶
主实验:StructT2IBench 结构化生成精度 (%)¶
| 模型 | Chart | Graph | Math | Puzzle | Science | Table | Overall |
|---|---|---|---|---|---|---|---|
| GPT-Image | 37.09 | 57.00 | 63.25 | 59.42 | 60.94 | 83.31 | 49.58 |
| Qwen-Image | 32.23 | 48.05 | 46.98 | 48.90 | 53.51 | 73.65 | 41.03 |
| Bagel | 4.66 | 3.61 | 4.02 | 4.46 | 8.60 | 5.74 | 4.69 |
| Bagel-Think | 4.81 | 15.33 | 13.89 | 15.22 | 19.05 | 8.97 | 9.03 |
| CoCo | 79.44 | 62.58 | 69.12 | 49.10 | 58.81 | 79.15 | 73.52 |
文本渲染能力对比¶
| 方法 | OneIG-Bench (En/Zh/Overall) | LongText-Bench (En/Zh/Overall) |
|---|---|---|
| BAGEL | 0.244/0.365/0.305 | 0.373/0.310/0.342 |
| GPT-4o | 0.857/0.650/0.754 | 0.956/0.619/0.788 |
| CoCo | 0.895/0.811/0.853 | 0.755/0.753/0.754 |
消融实验:训练混合比例¶
| 方法 | r_c 比例 | English | Chinese |
|---|---|---|---|
| Bagel | – | 0.373 | 0.310 |
| CoCo | 0.20 | 0.724 | 0.667 |
| CoCo | 0.10 | 0.733 | 0.671 |
| CoCo | 0.05 | 0.755 | 0.753 |
关键发现¶
- CoCo 在 StructT2IBench 上整体精度 73.52%,比最强 baseline GPT-Image (49.58%) 高出 +23.94%,比直接生成提升 +68.83%
- 在 OneIG-Bench 上 CoCo 整体得分 0.853,超越 GPT-4o 的 0.754,提升 +54.8%(相对 Bagel)
- 在 LongText-Bench 上取得 0.754 整体得分,提升 +41.23%(相对直接生成)
- 降低 Text-Code 监督比例(r_c 从 0.20→0.05)反而提升性能,说明少量代码监督即可激活代码推理能力
- CoCo 的代码可执行率远高于 Bagel,验证了专门训练的必要性
亮点与洞察¶
- 代码作为推理范式的创新性:首次将可执行代码作为 T2I 任务的 CoT 表示,将推理从"模糊描述"升级为"精确编程",这一思路具有广泛的启示意义
- 两阶段生成策略的实用性:先代码渲染草图、再精修的流程将困难的端到端生成分解为两个更简单的子问题
- 数据工程的精心设计:CoCo-10K 数据集的构建对齐了两阶段生成范式,为模型同时学习代码生成和草图精修提供了高质量监督
- 中文文本渲染的突破:在中文文本渲染上(0.811)大幅超越所有 baseline,展示了代码驱动方法在多语言场景中的优势
局限性 / 可改进方向¶
- 依赖沙盒环境执行代码,代码的执行成功率和渲染质量直接影响最终结果
- 目前主要在结构化/文本密集型场景验证,对于自然场景(人物、风景等)的效果未充分探索
- CoCo-10K 数据集规模相对有限(10K),扩大数据规模和多样性可望进一步提升效果
- 推理链条较长(生成代码→执行→渲染→精修),推理速度和效率是实际部署的挑战
- 基于 Bagel 构建,迁移到其他 UMM 架构的泛化性有待验证
相关工作与启发¶
- Bagel:CoCo 的基座模型,展示了 UMM 在"thinking before generating"方面的潜力
- Image-Gen-CoT:使用奖励模型评估早期解码步骤,CoCo 通过代码推理提供更精确的引导
- IRG (Interleaving Reasoning Generation):采用多轮"文本-图像-文本-图像"工作流进行后验修正,CoCo 改为先验代码规划
- 启发:可执行中间表示(代码)作为 CoT 的范式可推广到其他需要精确控制的生成任务
评分¶
- ⭐⭐⭐⭐⭐ 新颖性:代码作为视觉推理的 CoT 是全新的范式,idea 非常清晰有力
- ⭐⭐⭐⭐ 实验充分度:三个 benchmark 全面验证,消融实验到位,但缺乏自然场景评估
- ⭐⭐⭐⭐ 写作质量:结构清晰,图表丰富,动机阐述有说服力
- ⭐⭐⭐⭐⭐ 价值:对结构化 T2I 生成有重大推动,代码驱动推理的思路有广泛启发意义