UniWorld-V1: High-Resolution Semantic Encoders for Unified Visual Understanding and Generation
Paper: arXiv:2506.03147 Code: PKU-YuanGroup/UniWorld-V1 Code reference:
main@2124cd68(2025-12-23) Models: LanguageBind/UniWorld-V1 Data: LanguageBind/UniWorld-V1 dataset
1. Motivation(研究动机)
现有 unified multimodal model 已经能把 vision-language understanding 和 text-to-image generation 放进同一个系统里,但 UniWorld-V1 关注的缺口更窄也更实际:用户常要的不是“看图回答”或“从文本画图”这两端任务,而是 image perception 与 image manipulation 这类 image-to-image 能力。例如 detection、segmentation、depth prediction、sketch/edge/depth map 生成属于感知型任务;add、remove、replace、style transfer、virtual try-on、product extraction 属于编辑/操控型任务。GPT-4o-Image 让社区看到一个通用图像模型可以同时处理这些任务,但其内部结构不开源;开放模型如果只复刻 text-to-image 或 VQA,很难回答“参考图像应该用什么表示注入到生成模型中”这个核心问题。
论文把 unified image manipulation/perception 的难点拆成三种能力:第一,文本与视觉的统一理解能力,用来解析用户 instruction 与 reference image;第二,pixel-level information maintaining ability,用来保持重建和局部编辑的空间细节;第三,semantic extraction ability,用来在 detection、segmentation、depth、cross-domain perception 等任务中抓住语义概念。传统编辑模型 Step1X-Edit、FLUX-Kontext 等通常用 VAE features 作为 reference control。VAE 的好处是保留低频结构和重建信息,坏处是当任务不只是“照着参考图局部重建”,而是要把参考图解释成语义条件再跨任务输出时,VAE 过强的 low-level bias 可能反而拖累多任务泛化。
UniWorld-V1 的动机不是简单宣称“semantic encoder 比 VAE 更好”,而是先用 GPT-4o-Image 做行为观察,再由观察反推合适的开放结构。论文设计了两组实验。第一组是局部编辑:要求 GPT-4o-Image 把公交车背后的广告改成蓝色。若模型主要依赖 VAE-style reference features,未编辑文字的位置通常应强保持;但结果里黄标和绿标文字位置发生不一致移动,说明 GPT-4o-Image 并没有强绑定原图低频布局。第二组是 denoising:对狗图加入 与 噪声后让 GPT-4o-Image 去噪。低噪声能正常恢复,高噪声却被恢复成 deer;进一步用 GPT-4o 和 Qwen2.5-VL caption 该高噪图时,理解模型也把它识别为 deer。这支持一种推断:GPT-4o-Image 更可能沿用 semantic encoder / understanding model 的语义判断,而不是像 VAE 那样保留足够低频结构来保证“狗仍然是狗”。
Figure 1 解读:这张 showcase 把 UniWorld-V1 的定位放在一起看:左侧展示 image perception 与 image manipulation 的输出,右侧强调它用 2.7M 训练样本达到接近或超过更大数据规模模型的效果。这里的重点不是单项 SOTA,而是同一个开放框架同时覆盖理解、生成、编辑、感知四类能力。
Figure 2 解读:Figure 2 是整篇论文的推理起点。局部编辑实验说明 GPT-4o-Image 不像强 VAE 控制那样保持所有低频布局;去噪实验说明高噪声输入会被 semantic understanding 误导成 deer。作者据此把 reference-image control 从 VAE 特征迁移到 high-resolution semantic encoder,而不是从工程习惯出发继续堆 VAE/ControlNet 类条件。
这个动机也解释了为什么论文强调 open-source。GPT-4o-Image 的现象很强但不可复现;如果 UniWorld-V1 能把“VLM 负责语义与历史状态 + high-resolution contrastive encoder 负责 reference image control + diffusion/DiT 负责生成”的组合跑通,并公开模型、训练脚本、评测脚本和数据,那么它提供的不只是一个模型,而是一条可验证的 unified image model 设计路线。
2. Idea(核心想法)
UniWorld-V1 的核心 insight 可以概括为三句话:第一,image manipulation/perception 的 reference control 不一定需要 VAE 低频重建特征,semantic encoder 在多任务统一场景下可能更合适。第二,单一 VLM token 仍不够,因为 autoregressive understanding tokens 容易丢失 reference image 的局部细节,所以需要高分辨率 contrastive encoder 补充 reference image features。第三,把这些语义特征映射进 FLUX 的 text branch,让 DiT/flow-matching 生成器把“用户指令、历史状态、参考图语义局部信息”当作统一条件,比重新训练一个端到端巨型模型更省数据。
具体地说,UniWorld-V1 由 frozen Qwen2.5-VL-7B、SigLIP2-so400m/14 512-resolution semantic encoder、FLUX.1-dev DiT、以及若干 MLP connector 组成。Qwen2.5-VL 提供 high-level semantics、instruction following 和历史状态;SigLIP2 提供 reference image 的高分辨率 contrastive features;MLP connector 把 VLM/SigLIP 的 hidden states 对齐到 FLUX text branch 的上下文维度;FLUX 继续用 flow matching 训练生成端。这样一来,understanding part 保留 autoregressive VLM 的能力,generation part 仍利用 diffusion/flow model 的图像质量,而两者之间的桥接由 semantic feature injection 完成。
这个想法与 VAE-based editing 的根本差别是 control signal 的语义层级。VAE reference features 更像“请尽量重建这张图的 latent”,在局部编辑或 image variation 中很自然;但对于 detection map、segmentation mask、depth map、edge/sketch、跨域 style/product extraction,模型需要理解 reference image 的对象、关系、区域和任务语义,而不只是重建像素。SigLIP2 512-resolution features 既经过 image-text contrastive training,又保留比普通全局 CLS embedding 更丰富的 patch-level 信息,因此作者把它作为 low-level image features 的 semantic substitute。这里的“low-level”不是 VAE 像素低频,而是相对 VLM 全局/语言语义而言更靠近 image patch 的 reference information。
另一个关键想法是数据效率。论文反复对比 BAGEL:BAGEL 训练数据约 2665M samples,UniWorld-V1 使用约 2.7M samples,数量级只有约 1%。作者没有把这解释为模型能力绝对更强,而是强调 architecture prior:冻结强 VLM 继承理解能力、继承 FLUX 生成先验、只学习语义特征到生成上下文的连接与部分 image branch。这样的路线减少了从零学习统一多模态表征的负担,也让训练数据主要用于“如何用 reference semantic features 驱动生成/编辑/感知”,而不是用于重建所有底层能力。
3. Method(方法)
3.1 Overall architecture:VLM + SigLIP + FLUX + MLP connector
Figure 3 解读:模型由四块组成。VLM 是 Qwen2.5-VL-7B,用 frozen autoregressive path 处理文本、图像和历史上下文;SigLIP 是 high-resolution semantic encoder,用 512 fixed resolution 提取 reference image features;MLP connector 把 VLM/SigLIP hidden states 投到 FLUX text branch 的上下文空间;DiT/FLUX 接收 noisy latent、timestep、VLM/SigLIP 条件并预测 flow-matching target。图中 T5 是 FLUX 原始条件源,但论文与 released config 都强调 early stage 不推荐使用 T5 features。
架构的 forward 逻辑可以按信息流理解。给定 instruction 和可能的 reference image,Qwen2.5-VL 的 vision tower 先把 image token 对应位置替换成 visual embeddings,然后 autoregressive backbone 输出上下文 hidden states。SigLIP2 对同一 reference image 产生 patch-level hidden states,经 siglip_projector 映射到 FLUX context dimension。生成端不是让 Qwen2.5-VL 直接吐 image tokens,而是把这些 encoder hidden states 当作 FLUX text branch 的 condition:FLUX 在 latent space 中执行 flow matching,预测从 noisy latent 到 target image latent 的速度/残差。
这种结构的直觉是分工清晰。VLM 适合处理语言、指令、对象关系和多轮上下文,但 VLM 的 image features 不是为 reference-consistent generation 优化;SigLIP 的 contrastive patch features 更适合作 reference cue,但单靠 SigLIP 又缺少 instruction following;FLUX 有强生成先验,却原本依赖 T5 text encoder 而不是 VLM/SigLIP。UniWorld-V1 的 MLP connectors 相当于把 VLM/SigLIP 接到 FLUX 已经会用的条件接口上,使系统能利用各模块预训练能力,而不是强行让一个模块承担所有功能。
3.2 Training recipe:两阶段语义对齐与一致生成
论文训练分两阶段。Stage 1 是 Semantic Alignment。由于 VLM representations 与 FLUX text branch 存在 feature gap,作者只训练 VLM-to-FLUX 的 MLP mapping,其余参数冻结;并且因为 Stage 1 只对齐 VLM semantic features,SigLIP features 不参与。论文描述里 Stage 1 的目标是把 VLM features 对齐到 T5 features;
released config 中对应 scripts/denoiser/flux_qwen2p5vl_7b_vlm_stage1_512.yaml,关键开关是 only_tune_mlp2: true、with_tune_mlp2: false、pretrained_siglip_name_or_path 未设置、drop_t5_rate: 1.0。
训练脚本 train_denoiser.py 在 drop_t5_rate == 1.0 时删除 text encoders,并在每步把 t5_prompt_embeds 设为 None,所以 released code 更像是“用 diffusion denoising loss 训练 VLM-to-FLUX connector”,而不是一个显式 T5-feature regression。
Stage 2 是 Consistent Generation Fine-Tuning。论文说加载 Stage 1 的 VLM-to-FLUX MLP,以及来自 FLUX-Redux 的 SigLIP-to-FLUX MLP;然后 unfreeze FLUX image branch 的可学习参数,同时保持 text branch 冻结。released config scripts/denoiser/flux_qwen2p5vl_7b_vlm_stage2_512.yaml 对应 with_tune_mlp2: true、with_tune_siglip_mlp: true、only_tune_image_branch: true、flux_train_layer_idx: [0..56]、pretrained_siglip_name_or_path: /mnt/data/checkpoints/google/siglip2-so400m-patch16-512。论文还指出 Stage 2 前 5,000–10,000 steps 容易走 shortcut,即直接重建 reference image;之后模型才学会把 SigLIP features 当作 reference cue,并按 instruction 生成目标图。
论文公式与 released code 实现差异:论文把 Stage 1 叙述为“aligning VLM features to T5 features”,但 released training path 在两个 YAML 中均设置 drop_t5_rate: 1.0,train_denoiser.py 会释放 T5 text encoders 并不给 FLUX prefix 注入 T5 prompt embeds;因此笔记中所有训练超参按 released YAML/脚本记录,不把 Stage 1 解释成显式 T5 feature distillation。另外,Stage 2 YAML 里的 pretrained_siglip_mlp_path 是 path/to/stage1/siglip_projector.bin 占位符;README 明确要求下载 flux-redux-siglipv2-512.bin 并填入该字段,所以复现实验时不能把 YAML 默认占位路径当成真实来源。
3.3 Adaptive editing region weighting
Figure 4 解读:Figure 4 对应 adaptive editing region weighting。左到右是 mask 生成:reference/target 做 pixel-wise differencing,经过 dilation 合并邻近区域,connected component filtering 删除孤立噪点,再用 max-pooling downsampling 去掉编辑区域内部孔洞;右下角比较四种随编辑区域变小而增大的权重函数。最终采用 logarithmic weighting,因为它比 linear/exponential 更稳,不会在极小编辑区域上把 loss 放大到不稳定。
编辑任务的 loss imbalance 很明显:大多数像素是不变背景,真正变化的 object/region 只占小部分。如果对整图 latent 均匀计算 MSE,模型会优先学习“背景不变”,而忽略用户真正要求添加、删除、替换的区域。UniWorld-V1 因此先根据 reference image 与 target image 的差异估计 edited area ,再定义面积比:
候选权重函数包括 linear 、exponential root 、logarithmic 、quadratic root 。四者都满足 ,即整图都被编辑时退化成 uniform weighting;当编辑区域变小,,权重上升。最终采用 ,因为它在增强小区域梯度与避免极端放大之间更平衡。released code 在 train_denoiser.py 中先通过 compute_loss_weighting_for_sd3 得到 flow-matching timestep weighting,再把 area_mask_weights 与 weight_mask 乘到 per-pixel/latent MSE 上,最后用 mask-normalized mean 计算 loss。
3.4 ZeRO-3 EMA
Figure 5 解读:EMA model 不是每张卡都复制完整 FP32 权重,而是用 ZeRO-3 sharding 分片。训练模型可运行在 ZeRO-2,EMA 模型在每个 step 只更新本 GPU 持有的 shard;若模型约 20B 参数,FP32 额外副本从每卡 GiB 下降到 GiB。这个设计的意义是让 EMA 的稳定性收益不以巨大显存冗余为代价。
EMA 的作用是平滑训练权重波动、提高收敛和泛化。对 UniWorld-V1 这种把 VLM、SigLIP、FLUX、MLP connectors 拼在一起的大模型,直接保存完整 FP32 EMA copy 会严重挤压 batch size 与 resolution。released configs 两阶段都设置 ema_deepspeed_config_file: scripts/accelerate_configs/zero3.json 和 ema_decay: 0.999;train_denoiser.py 通过 create_ema_model 修改 DeepSpeed config,使 train_micro_batch_size_per_gpu、gradient_accumulation_steps 和 train_batch_size 与当前 distributed setup 一致,并在训练循环中每步 ema_model.step(lvlm_model.parameters())。
3.5 Training data
训练数据在两阶段几乎相同,来自 open-source high-quality data、self-generated data 与 filtered open-source data,总量约 2.7M。Image Perception 数据约 1.4M,任务包括 canny、mlsd、hed、depth、sketch、segmentation mask、detection bounding box,主要来自 Graph200k 与 COCO2017;
perception map 常能到 ,但超过 90% reference images 只有较低分辨率如 ,且 perception map 与 reference image 差异较大,因此这部分不需要编辑区域 mask weighting。Image Manipulation 数据约 1M,来源包括 ImgEdit 高分子集 724k、SEED-X part 3 中分辨率至少 的样本、Graph200k style transfer、virtual try-on、product extraction 等;大多数开源编辑数据没有 mask,因此用 §3.3 的流程自动生成。
Text-to-Image Generation 数据约 300k,来自 BLIP3-o 与 Open-Sora Plan 内部图片,后者由 Qwen2-VL-72B 生成 dense captions,图片分辨率至少 且 aesthetic score 至少 6.0。
3.6 Released code grounding and pseudocode
Code reference:
main@2124cd68(2025-12-23) — pseudocode and mapping based on this commit
| Paper Concept | Source File | Key Class/Function |
|---|---|---|
| VLM + SigLIP + denoiser wrapper | UniWorld-V1/univa/models/modeling_univa.py | UnivaQwen2ForCausalLM, prepare_inputs_for_multimodal, forward |
| SigLIP vision tower | UniWorld-V1/univa/models/modeling_univa_vision_tower.py | UnivaVisionTower.forward, mm_projector, shortcut_projector |
| FLUX/SD3 denoise tower and projectors | UniWorld-V1/univa/models/modeling_univa_denoise_tower.py | UnivaDenoiseTower, _init_denoise_projector, _init_siglip_projector, forward |
| Flow-matching training loop | UniWorld-V1/train_denoiser.py | main, get_sigmas, vae_encode, loss block |
| Stage 1 launch/config | scripts/denoiser/flux_qwen2p5vl_7b_vlm_stage1_512.sh/.yaml | accelerate launch train_denoiser.py, YAML training/model/dataset config |
| Stage 2 launch/config | scripts/denoiser/flux_qwen2p5vl_7b_vlm_stage2_512.sh/.yaml | accelerate launch train_denoiser.py, YAML training/model/dataset config |
代码级 forward pseudocode 如下,反映 released code 的主要控制流而非论文抽象图:
def uniworld_forward(input_ids, pixel_values, output_type, denoiser_kwargs):
input_embeds = qwen.embed_tokens(input_ids)
if pixel_values is not None:
image_embeds, shortcut_embeds = vision_tower(pixel_values) # SigLIP/Qwen vision path
assert count(input_ids == image_token_id) == image_embeds.num_tokens
input_embeds = masked_scatter(input_embeds, image_token_mask, image_embeds)
outputs = qwen_model(inputs_embeds=input_embeds, output_denoise_embeds=True)
if shortcut_embeds is not None and config.shortcut_image_embeds:
outputs = blend(outputs, shortcut_embeds, scale=config.shortcut_image_embeds_scale)
if output_type == "denoise_embeds":
return denoise_tower.denoise_projector(outputs)
if output_type == "denoise_model_pred":
return denoise_tower(encoder_hidden_states=outputs, **denoiser_kwargs)
return lm_head(outputs)训练循环 pseudocode 更直接对应 train_denoiser.py:
for batch in train_dataloader:
prompts = batch["prompts"]
t5_prompt_embeds = encode_t5(prompts) if drop_t5_rate <= random.random() else None
siglip_hidden_states = siglip_model(batch["siglip_pixel_values"]).last_hidden_state if siglip_enabled else None
model_input = vae_encode(batch["generated_image"])
noise = randn_like(model_input)
sigmas = sample_or_shift_flow_sigmas(model_input.shape)
noisy_model_input = (1.0 - sigmas) * model_input + sigmas * noise
packed_latents = FluxPipeline._pack_latents(noisy_model_input)
model_pred = lvlm_model(
input_ids=batch["input_ids"],
pixel_values=batch["pixel_values"],
output_type="denoise_model_pred",
hidden_states=packed_latents,
timestep=sigmas * 1000.0,
prefix_prompt_embeds=t5_prompt_embeds,
siglip_hidden_states=siglip_hidden_states,
)
model_pred = FluxPipeline._unpack_latents(model_pred)
target = noise - model_input
weighting = timestep_weighting * area_mask_weights * optional_weight_mask
loss = mean_or_mask_normalized(weighting * (model_pred - target) ** 2)
accelerator.backward(loss)
optimizer.step()
lr_scheduler.step()
ema_model.step(lvlm_model.parameters())这段代码说明 UniWorld-V1 的训练目标仍是 FLUX-style flow matching:构造 ,模型预测 ,并在目标区域上加权 MSE。论文没有给出一套新 diffusion objective;创新主要在 reference semantic features 的注入、训练阶段划分、mask weighting 和大模型 EMA 工程上。
4. Experimental Setup(实验设置)
Benchmarks. 论文把实验分成 understanding、generation、editing、perception 四组。Understanding 使用 MMBench-Video(表中记作 MMB)、MMBench-Image(MMB)、MMMU、MM-Vet。Text-to-image generation 使用 GenEval 和 WISE;GenEval 衡量组合生成,WISE 衡量复杂语义理解与 world knowledge。Image manipulation 使用 ImgEdit-Bench 与 GEdit-Bench;ImgEdit-Bench 报告 Overall 以及 Add、Adjust、Extract、Replace、Remove、Hybrid 等子任务,GEdit-Bench 使用 GPT-4.1 评估 G_SC、G_PQ、G_O。Image perception 暂无合适统一量化 benchmark,作者用 sampled qualitative comparison 与 GPT-4o 对比 detection、segmentation、depth 等任务。
Baselines. Understanding 侧比较 LLaVA-1.5、LLaVA-NeXT、Video-LLaVA、LLaVA-OV、BLIP3-o、MetaQuery、BAGEL、GPT-4o 等。Generation 侧比较 SDXL、SD3/SD3.5-large、PixArt-Alpha、FLUX.1-dev、DALL-E 3、Janus、Show-o、Janus-Pro-7B、Emu3、MetaQuery-XL、BAGEL、GPT-4o-Image。Editing 侧比较 InstructPix2Pix、AnyEdit、UltraEdit、Step1X-Edit、BAGEL、GPT-4o-Image 等。论文特别标注带 的方法使用 LLM rewriter;这会影响 GenEval 等文本生成 benchmark 的公平性,所以 UniWorld-V1 同时报无 rewrite 与 rewrite prompt 的 GenEval 结果。
Training config from released launch/config, not defaults. released repository 的实际训练入口是 scripts/denoiser/flux_qwen2p5vl_7b_vlm_stage1_512.sh 与 scripts/denoiser/flux_qwen2p5vl_7b_vlm_stage2_512.sh,均通过 accelerate launch --config_file scripts/accelerate_configs/multi_node_example_zero*.yaml train_denoiser.py <stage_yaml> 启动。
Stage 1 YAML 设置 max_train_steps: 500000、optimizer: adamw、learning_rate: 1e-3、mixed_precision: bf16、lr_scheduler: constant、lr_warmup_steps: 0、gradient_accumulation_steps: 1、batch_size: 1、min_pixels=max_pixels=200704、num_workers: 16、ema_decay: 0.999、ema_deepspeed_config_file: scripts/accelerate_configs/zero3.json。
Stage 2 YAML 同样是 max_train_steps: 500000、batch_size: 1、bf16、gradient_accumulation_steps: 1、ema_decay: 0.999,但 learning_rate: 1e-6,scheduler 改为 constant_with_warmup,lr_warmup_steps: 5000,gradient_checkpointing: true,并启用 SigLIP2 与 image-branch tuning。
Reproducibility caveats. README 还给出工程显存经验:512×512、batch size 1 的 Stage 1 约消耗 74G in 1 node (8 GPUs),Stage 2 约 78G in 1 node (8 GPUs);训练更高分辨率或更大 batch 时可将 ema_pretrained_lvlm_name_or_path: null 节省显存,更多节点也能因 ZeRO-2/ZeRO-3 sharding 分摊显存。注意 README 推荐 Stage 1 可用 optimizer: prodigy 和 learning_rate: 1.0,但 released YAML 当前写的是 AdamW 和 1e-3;本笔记所有训练超参以 YAML 为准。
5. Experimental Results(实验结果)
Main table. 总表显示 UniWorld-V1 在统一能力上很强:MMB 为 1.79,MMB 为 83.5,MMMU 为 58.6,MM-Vet 为 67.1;GenEval 使用 LLM rewriter 时为 0.84,WISE 为 0.55;ImgEdit-Bench Overall 为 3.26,Add 3.82,Adjust 3.64,Extract 2.27,Replace 3.47,Remove 3.24,Hybrid 2.96。对比 BAGEL,BAGEL 的 MMB 为 85.0、MMMU 55.3、MM-Vet 67.2、GenEval 0.88、WISE 0.52、ImgEdit Overall 3.20。也就是说 UniWorld-V1 在纯综合数值上并非每项都压过 BAGEL,但在仅 2.7M 数据规模下,把 understanding、generation、editing 同时做到了接近或超过更大数据模型。
GenEval. 无 LLM rewrite 时,UniWorld-V1 的 GenEval overall 为 0.80,单项为 single object 0.99、two object 0.93、counting 0.79、colors 0.89、position 0.49、color attribution 0.70。使用 BLIP3-o 的 rewrite prompt 后,UniWorld-V1 overall 达到 0.84,具体为 0.98、0.93、0.81、0.89、0.74、0.71;这与 GPT-4o-Image 报告的 0.84 持平,也高于 BAGEL 的 0.82(表中 BAGEL 无 dagger row)和 Janus-Pro-7B 的 0.80。需要注意 position 从 0.49 到 0.74 的提升很大,说明 prompt rewriting 对 GenEval 的影响不可忽略。
WISE. 在 WISE 上,UniWorld-V1 overall 为 0.55,与 MetaQuery-XL 的 0.55 并列开放 unified model 的较高水平,高于 BAGEL 的 0.52、Emu3 的 0.39、Janus-Pro-7B 的 0.35,但低于 GPT-4o-Image 的 0.80。细分项中 UniWorld-V1 的 Cultural/Time/Space/Biology/Physics/Chemistry 分别是 0.53、0.55、0.73、0.45、0.59、0.41;Space 0.73 是最突出的子项,接近 GPT-4o-Image 的 0.89,也超过 BAGEL 的 0.68。这个结果支持作者关于“semantic encoder + VLM context 能保留 world knowledge 与语义结构”的说法,但 chemistry/biology 仍有明显差距。
ImgEdit-Bench. 在 ImgEdit-Bench 上,UniWorld-V1 Overall 3.26,是表中最好的 open-source 结果,高于 BAGEL 3.20 和 Step1X-Edit 3.06;GPT-4o-Image 仍以 4.20 明显领先。子任务上 UniWorld-V1 的 Add 3.82、Adjust 3.64、Extract 2.27、Replace 3.47、Remove 3.24、Hybrid 2.96;它在 Adjust、Extract、Replace、Remove 上优于 BAGEL,在 Add 上略低于 Step1X-Edit 的 3.88,在 Hybrid 上低于 Step1X-Edit 的 4.63 和 BAGEL 的 4.17。这说明 UniWorld-V1 的编辑能力整体稳定,但复杂组合编辑与更强闭源模型仍有差距。
GEdit-Bench. GEdit-Bench 更暴露 instruction generalization。UniWorld-V1 的 G_SC/G_PQ/G_O 为 4.93/7.43/4.85;BAGEL 是 7.36/6.83/6.52,Step1X-Edit 是 7.09/6.76/6.70。UniWorld-V1 的 perceptual quality(G_PQ)较高,但 semantic consistency / instruction following(G_SC)偏低。论文解释为编辑数据主要来自 ImgEdit,数量与 instruction diversity 都低于 BAGEL 和 Step1X-Edit;这与 conclusion 里的 limitation 一致:模型需要更特定的 instruction template 才能稳定优于 BAGEL。
Visual understanding and perception. Visual understanding 单表中,UniWorld-V1 的 MMB/MMB/MMMU/MM-Vet 为 1.79/83.5/58.6/67.1。它在 MMMU 上与 MetaQuery 并列 58.6,MMB 低于 BAGEL 85.0 但与 BLIP3-o/MetaQuery 83.5 持平,MM-Vet 只略低于 BAGEL 67.2。Image perception 方面,论文没有量化总 benchmark,而是在 Figure 6 中展示与 GPT-4o 的 qualitative comparison,并用 green/red boxes 标出正确与偏差输出。这个部分更像能力展示,能说明 unified architecture 可以覆盖 detection、segmentation、depth 等任务,但不能替代严格的 perception benchmark。
Figure 6 解读:Figure 6 展示 detection、segmentation、depth 等 perception output,与 GPT-4o 作随机样例对比。绿色框表示正确,红色框表示偏差。它的价值在于证明 UniWorld-V1 不是只会编辑或文生图,也能把 reference image 映射为结构化视觉输出;局限是 qualitative sample 不能给出全局统计显著性。
Limitations and failed attempts. 作者列出的限制很具体:一是 instruction generalization 不足,有限训练数据且没有 joint VLM fine-tuning,使模型需要特定 instruction templates 才能超过 BAGEL;二是 reference-image consistency 不足,reference image 以 分辨率处理,不足以支撑 生成的全部细节;
三是 benchmark 不完整,DPG-Bench、GenAI-Bench、GenEval、ImgEdit-Bench、GEdit-Bench 都有与人类偏好或 reference-region sensitivity 不完全一致的问题。失败尝试也有启发:用 DINOv2 或 RADIO v2.5 替换 SigLIP 不成功;直接使用 Qwen2.5-VL visual output 作为 reference-image control signal 也导致 reference consistency 差。
作者认为这来自训练目标差异:contrastive learning 更强调全局语义且随分辨率增长易饱和,VLM training 需要全局和局部语义,但其视觉输出并不天然适配生成模型的 reference control。
综合来看,UniWorld-V1 最有价值的结论不是“SigLIP 永远优于 VAE”,而是给出一条可复现的架构假设:在 unified visual understanding and generation 中,reference image control 应从低频重建特征转向 high-resolution semantic features;VLM、semantic encoder 与 flow-matching generator 可以通过轻量 connectors 和两阶段训练组合起来;只要数据覆盖 perception/manipulation/generation 的关键任务,少量高质量数据也能让开放模型达到接近大规模统一模型的综合能力。