Paper Reading / Image Creation & Editing / ICCV 2025 Workshop

ACE++.
Context as fill.

统一编辑的关键,不是再造一套大模型,而是把参考图、编辑图、mask 与噪声改写成同一种“待填内容”。

ACE++ 把 ACE 的 Long-context Condition Unit 从主要依赖序列拼接,改成先在通道维合并图像、mask 与 noisy latent,再把多个 condition unit 作为序列送入 FLUX Transformer。这个结构使 0-reference 任务能贴近现成 inpainting 模型,也让 N-reference 任务保留统一接口。

13 页 arXiv v3 完整阅读ICCV 2025 HiGen Workshop 身份核对官方仓库 f3e410b 审计定量证据缺失透明标注

Chaojie Mao · Jingfeng Zhang · Yulin Pan · Zeyinzi Jiang · Zhen Han · Yu Liu · Jingren Zhou
Tongyi Lab · ICCV 2025 Workshops (HiGen), 1979–1987 · arXiv:2501.02487v3

01 / Identity & evidence

先把 ACE++ 与几个同名对象分开

ACE++

本页对象

2025 年图像生成与编辑方法,核心是 LCU++、FLUX 后训练与 content filling。

ACE

直接前作

ICLR 2025 的 All-round Creator and Editor,提出 CU / LCU 与八类任务;ACE++ 继承其数据和任务定义。

非同名 ACE

明确排除

不是 Anti-Editing Concept Erasure,也不是其他以 ACE 为缩写的概念擦除工作。

本页以 arXiv v3 的 13 页 technical report 为方法、公式与完整尺寸图像的主证据;另逐页核对 CVF 正式 9 页版本,方法、公式、实现细节及只有 qualitative results 的证据结构一致。正式发表身份为 ICCV 2025 HiGen Workshop,页码 1979–1987。官方项目页与代码仓库用于核对公开模型、推理参数与后续实现状态。

02 / Research motivation

gap 不在任务数量,而在输入格式与生成先验错位

已有统一模型的问题

ACE、OmniGen、UniReal 等希望用一个模型接收文字、图像与 mask,覆盖生成、局部编辑、参考生成和多轮任务。但新增视觉条件往往变成额外 token sequence,改变了文本到图像基础模型已经学好的 attention 上下文,并增加序列长度与后训练成本。

已有垂直模型的问题

ControlNet、inpainting、身份保持等方法容易继承强 T2I 模型,却通常为单一任务设计。它们能低成本适配,却不能自然表达“参考物体 + 待编辑图 + 局部 mask + 指令”的组合。

核心直觉:FLUX.1-Fill-dev 已经证明,编辑图、mask 与 noisy latent 可以在通道维合并后复用强生成先验。ACE++ 将这个 fill 格式推广到每个 condition unit,再沿序列维连接多个 unit,试图同时得到“单个 unit 的低扰动适配”和“多个 unit 的长上下文组合”。

03 / ACE → ACE++

“++”发生在每个 condition unit 的内部

维度ACEACE++实际意义
基本单元文字 \(T\) 与若干 \([I;M]\),另含 noisy target \([X_t;M]\)每个 unit 将 \(I\)、\(M\)、\(X_t\) 在 channel 维组成同一 feature map把编辑看作 content filling,x-embed 直接接收完整空间上下文
多个条件视觉条件与目标常作为额外 sequenceunit 内 channel concat;unit 之间 sequence concat既保留多参考图,又减少 0-ref 的序列扰动
基础模型ACE 自有 DiT 系列FLUX.1-dev / FLUX.1-Fill-dev更直接继承强 T2I 与 inpainting 先验
训练八类任务统一训练0-ref 预训练,再以全部 ACE 任务做 multi-condition fine-tuning先学“怎样填”,再学“参考什么来填”
公开套件统一模型全量 FFT + portrait / subject / local-editing LoRA论文写四个 vertical domain,当前仓库实际列出三类 LoRA
ACE++ Figure 1 架构和 Figure 2 两阶段训练
原论文 Figure 1–2。上半部把 Creation / Editing 与 0-reference / N-reference 放在同一架构;下半部显示先 single-condition、再 multi-condition 的两阶段方案。注意图中的 Full / LoRA / Plugin 是产品形态概念,不是完整实验对照。
04 / Problem formulation

输入、输出与 LCU++ 的精确定义

一次请求可包含指令 \(T\)、待编辑图 \(I^{\mathrm{edit}}\)、编辑区域 \(M^{\mathrm{edit}}\)、零到多张参考图 \(I^{\mathrm{ref}}_i\),以及目标画布上的 noisy latent \(X^o_t\)。输出是去噪后的目标图 \(I^o\)。mask 指定哪些位置需要生成;无待编辑图的 reference generation 可把目标底图设为全零。

\[ \mathrm{CU}=\{T,V\},\qquad V=\{[I^1;M^1],\ldots,[I^N;M^N],[X_t;M^N]\} \]ACE 的 CU:分号表示特征组合,论文在此阶段主要把各视觉条件展开成序列。
\[ V^{++}_{0\text{-ref}}=[I^{\mathrm{in}};M^{\mathrm{in}};X_t] \]ACE++ 的 0-ref unit:输入图、mask、噪声沿 channel 维连接。若是纯 T2I,\(I^{\mathrm{in}}\) 与 \(M^{\mathrm{in}}\) 可省略;若是 inpainting,则三者都存在。
\[ \mathrm{LCU}^{++}=\bigl\{\{T_1,\ldots,T_m\},\{V^{++}_1,\ldots,V^{++}_m\}\bigr\}, \qquad V^{++}_i=[I^i;M^i;X^i_t] \]多个 unit 先各自 channel concat,经 x-embed 变成 token,再在 sequence 维连接进 Transformer。这里采用浏览器安全且语义明确的重写;原论文式 (5) 存在花括号与方括号不配对的排版错误。

交互:切换条件数量

参考图 1
\([I^1;M^1;X^1_t]\)
参考图 2
\([I^2;M^2;X^2_t]\)
目标 unit
\([I^{\mathrm{edit}};M;X^o_t]\)
x-embed
unit → tokens
FLUX full attention
→ velocity

0-reference:没有独立参考图;待编辑图、mask 与 noisy target 在同一个 unit 内完成 channel 拼接。

05 / Objective

同时重建参考图,是 context-aware 的训练信号

ACE++ 采用 FLUX 的 rectified-flow / velocity prediction 形式。论文以线性插值从起点样本 \(x_0\) 构造到数据样本 \(x_1\) 的路径;在时间 \(t\) 上,模型预测速度 \(v_t\),监督速度为 \(u_t=\mathrm{d}x_t/\mathrm{d}t\)。

\[ x_t=(1-t)x_0+t x_1,\qquad u_t=\frac{\mathrm{d}x_t}{\mathrm{d}t}=x_1-x_0 \]论文只明确写“linear interpolation”与 velocity 定义;此处展开为标准线性路径,便于理解,不把额外 scheduler 细节冒充论文公式。
\[ \mathcal{L}=\mathbb{E}_{t,x_0,x_1}\left[\lVert v_t-u_t\rVert_2^2\right] =\sum_{i=1}^{N-1}\mathcal{L}^{i}_{\mathrm{ref}}+\mathcal{L}_{\mathrm{tar}} \]前 \(N-1\) 个分量要求网络重建 reference samples,最后一个分量生成 target。0-ref 时 \(\mathcal{L}_{\mathrm{ref}}=0\)。参考重建损失迫使 token 不只是被“看见”,还要保留足够内容供目标生成使用。

对 editing,最后一个输入样本 \(I^N\) 是待编辑图;对 reference generation,最后一个输入样本是全零画布。mask 决定需要填充的区域,因此局部编辑与整图再生成可由同一采样过程表达。

06 / Training

两阶段训练:先兼容 fill,再学习多参考组合

FLUX.1-dev
T2I prior
→
Stage 1
0-ref tasks
→
single-condition model
→
Stage 2
ACE 全任务数据
  1. Stage 1:在 controllable generation、inpainting、single-image editing 等 0-ref 数据上适配 channel-concatenated 输入。垂直 LoRA 可直接从 FLUX.1-Fill-dev 初始化,相当于复用已完成的 fill 预训练。
  2. Stage 2:混合 0-ref 与 N-ref 的 ACE 数据,做全量 fine-tuning,使模型支持 portrait、subject、local editing 与开放式 manipulation。

论文明确给出的优化设置

项目论文值解释与边界
BaseFLUX.1-dev;垂直模型以 FLUX.1-Fill-dev 初始化参数量沿用 FLUX,论文没有单列总参数和可训练参数数
OptimizerAdamWweight decay \(10^{-2}\),gradient clip 的 L2 threshold 为 \(1.0\)
Learning rate\(10^{-3}\)论文未区分 FFT 与 LoRA;当前 FFT config 实为 \(5\times10^{-5}\)
Guidance during training\(\omega=1.0\)配合 FLUX guidance distillation;conditional prediction 不再额外放大
Unconditional probability(0.1)混合 unconditional / conditional training
未公开数据量 / split / GPU / 时长 / batch / steps不能从正文推断;仓库默认只能视为后续参考实现
\[ v_t=v_t(\varnothing)+\omega\bigl(v_t(c)-v_t(\varnothing)\bigr), \qquad \omega=1 \Rightarrow v_t=v_t(c) \]\(c\) 是条件,\(\varnothing\) 是无条件分支。该式解释训练时为什么用 guidance scale 1,而不是报告一个性能增益。
07 / Inference

推理是一次统一填充,不是多模块编排

文字指令
+
编辑图 / mask
可选
+
参考图
可选
→
LCU++ 采样
目标图

官方脚本把 reference image、edit image、edit mask、prompt 统一传入 pipeline。当前仓库默认输出 \(1024\times1024\),采用 flow_euler、28 steps、guidance scale 50;seed 为 \(-1\) 时由 pipeline 选择。LoRA 推理还暴露 repainting_scale,默认 1.0,并要求从 portrait、subject、local_editing 三个 task type 选择 adapter。

这些是提交 f3e410b 的公开实现默认值,不是论文实验节完整报告。论文没有说明 temperature、top-k、beam、reranking、样本数或 best-of-N;这些语言模型式参数也不适用于其 flow sampler。

任务必需输入目标 unit公开模型建议
Portrait generation人脸参考图 + 指令全零 target + 全图 maskPortrait LoRA
Subject generation物体 / logo 参考图 + 指令全零 targetSubject LoRA
Local editing编辑图 + 局部 mask + 指令保留非 mask 区域,生成 mask 区域Local Editing LoRA
Local reference editing参考图 + 编辑图 + mask + 指令以参考身份填入指定区域Subject / Portrait LoRA 或 FFT
General editing编辑图 + 指令,可带 mask局部或全局再生成FFT,仓库同时警告其稳定性较弱
08 / Results

Figures 3–7 展示覆盖面,却无法给出胜率

ACE++ Figure 3 subject-driven generation
Figure 3 · Subject-driven generation。狐狸、图标、玩偶与 logo 在不同场景保持可辨识外观。它支持“模型能处理多类 subject”的存在性判断,不能测量 identity fidelity。
ACE++ Figure 5 local editing
Figure 5 · Local editing。覆盖删除、文字替换、涂鸦到照片、上色与内容添加。样例中的非编辑区域大体保留,但论文没有 background preservation metric。
ACE++ Figure 7 local reference editing
Figure 7 · Local reference editing。展示 face swap、logo 粘贴、virtual try-on 与物体放置;作者称部分任务 zero-shot,但没有与专用模型比较。
ACE++ Figure 4 portrait consistency
Figure 4 · Portrait consistency。同一人跨服装与场景生成。它展示身份线索可传递,但没有 ArcFace、DINO、CLIP 或人评一致性数值。

能得出的结论

09 / Paper vs. implementation

公开实现补齐了参数,也削弱了论文最乐观的叙述

项目论文仓库提交 f3e410b审计结论
模型形态general FFT + 四个 vertical domainFFT + portrait / subject / local-editing 三类 LoRAimage variation 没有独立 adapter;论文与公开产品枚举不完全一致
FFT 输入LCU++ 的 channel concat在 FLUX-Fill 384 channels 上额外增加 64 channels,变为 448;用于区分 repainting 与 editing,并容纳 edit-image latent这是 README 才写清的关键实现细节
学习率\(10^{-3}\)FFT \(5\times10^{-5}\);LoRA \(10^{-3}\)复现时应按所选 config,不能把论文单值直接用于 FFT
训练默认大量细节未报100k steps、batch 1、bf16、FSDP、cosine、zero warmup、max sequence 2048、seed 1999是当前代码默认,不证明原论文实验使用完全相同 recipe
LoRAlightweight strategyrank 64、alpha 64、dropout 0;目标覆盖 double / single blocks 的 attention、MLP 与 modulation公开配置允许训练,但没有公开原训练数据
数据ACE 收集的全任务数据train.csv/eval.csv 仅各含 6 个演示样例,字段为 edit_image、edit_mask、ref_image、target_image、prompt、data_type示例 CSV 不是论文数据集,无法从仓库独立重现报告模型
FFT 质量定性称表现优越README 后续公告称异质数据使 FLUX post-training 高度不稳定,蒸馏模型 negative prompt 影响不明;FFT 在多任务上弱于 LoRA,推荐 LoRA作者自己的后续披露,应视为论文结论的重要限制
已知失败正文未单列 limitation物体删除 / 添加的 instruction following 有缺陷;手部常有 artifact对开放式编辑的可靠性不能只看成功样例
10 / Reproduction guide

可以复现代码路径,不能复现论文证据强度

  1. 准备 FLUX.1-Fill-dev,并遵守其模型许可;选择现成 portrait / subject / local adapter,或准备自己的六字段 CSV。
  2. 把参考图、编辑图、mask、target 与 prompt 对齐。reference generation 可留空 edit image / mask;pure editing 可留空 ref image。
  3. LoRA 训练按公开 config 约需 38–40 GB 显存,max sequence 2048 对应单图 token 上限 \(H/16\times W/16\)。开启 gradient checkpoint 会省显存但降低速度。
  4. 推理用 28-step flow Euler 与 1024 方图起步。对局部添加 / 替换优先走 local repainting;记录 seed,而不是只保留成功样例。
  5. 真正评测时补齐论文缺失的 protocol:固定数据 split、每指令多 seed、报告 identity similarity、CLIP / instruction adherence、LPIPS background preservation、局部 mask 外误差与人评。
不可复现部分

论文没有公开 ACE++ 所用数据规模、构造流程细节、完整 prompt 模板、两阶段各自步数、GPU 数、训练时长、随机种子、评测集或定量指标。官方仓库提供训练框架与示例行,但不含原训练 corpus,因此不能声称端到端复现了论文。

11 / Reviewer commentary

一个强工程抽象,配上一套过弱的实验论证

Strengths

  • LCU++ 把 0-ref 与 N-ref 的差异压缩到同一输入抽象,结构简单且容易迁移到强 inpainting backbone。
  • reference reconstruction 与 target generation 共用 velocity objective,给 context preservation 一个直接训练信号。
  • 全量模型与任务 LoRA 并存,贴近真实部署:常用垂直任务无需承担全量多任务退化。
  • 代码、模型、ComfyUI workflow 与训练入口公开,工程可访问性明显高于只发布 demo 的系统。

Weaknesses

  • 没有数值、baseline、ablation 或成本对照,无法验证标题之外的核心主张。
  • “universal”主要由样例覆盖支持;零样本 local reference editing 没有定义训练分布或失败率。
  • 数据沿用 ACE,却没有在本篇重新给出数据规模、比例与许可,读者难以判断任务平衡和泛化来源。
  • 官方后续承认 FFT 不稳定且多任务表现弱于 LoRA,说明通用模型的 negative transfer 没有解决。

最需要的消融

比较应测什么它能回答什么
sequence concat vs channel concat训练 FLOPs、显存、收敛步数、编辑质量LCU++ 是否真降低适配成本,而非只换了接口
无 \(\mathcal{L}_{\mathrm{ref}}\)identity / subject similarityreference reconstruction 是否带来 context awareness
single-stage vs two-stage同预算下多任务平均与最差任务阶段设计是否优于直接混合训练
FFT vs task LoRA每任务质量、训练成本、吞吐通用性与垂直稳定性的真实 trade-off
0 / 1 / N references随参考数增加的 fidelity 与干扰LCU++ 是否能扩展长上下文,而不发生条件冲突
12 / Research extensions

从“统一填充”继续走向可验证的条件组合

Condition routing

为每个 unit 学习 relevance gate,避免多参考图在 full attention 中互相污染;用 counterfactual mask 验证每个 reference 是否真正被使用。

Test-time search

按 mask 外保持、身份相似、文字一致性建立组合 reward,对 seed 与 repainting scale 做低成本搜索;这直接针对仓库承认的不稳定性。

Execution-aware editing

把 segmentation、OCR、pose 或 depth verifier 放入闭环:发现文本拼写、手部或结构失败后,仅重采样相应区域。

13 / Sources

一手资料与核查快照

  1. Mao et al., ACE++,arXiv:2501.02487:v3 technical report,方法、公式、训练描述与 Figures 1–7。
  2. CVF Open Access · ICCV 2025 Workshops:正式 venue、作者顺序与页码 1979–1987。
  3. ACE++ 官方项目页:任务样例与项目材料。
  4. ACE++ 官方仓库:核查提交 f3e410b835920c9b2d254a1ebba471db79c92ec6;模型公告、训练与推理配置、公开限制。
  5. Han et al., ACE:CU / LCU 与八类任务的直接前作;只用于澄清继承关系。

核查日期:2026-09-26。本文所有性能判断均按论文证据强度标注;未独立下载模型权重或运行 FLUX 推理,未把官方挑选样例当成独立复现。