把一只杯子从桌面左侧拖到右侧,看起来只是平移几个像素,实际上需要同时解决四件事:杯子不能变形,原位置要补出此前被遮挡的桌面,新位置要处理前后遮挡,阴影、反射和光照也要跟着变化。
传统“抠图、粘贴、修补”很容易留下悬浮感。RoPEMover 提出了一条很有意思的路线:不直接搬像素,而是修改扩散 Transformer 眼中物体 token 的空间地址,让模型重新生成一张“物体本来就在新位置”的图片。
本文解读论文《RoPEMover: Depth-Aware Object Relocation via Positional Embeddings》。作者来自 Bilkent University、Adobe Research 和 Brown University。
- 论文:https://arxiv.org/abs/2606.27332
- 项目页:https://ipekoztas.github.io/RoPEMover/
- GitHub:https://github.com/ipekoztas/RoPEMover
截至 2026 年 8 月 3 日,GitHub 仓库仍主要是项目说明页,推理代码、权重和在线 Demo 尚未公开。以下内容依据 arXiv v1 和项目页整理。
一句话理解
RoPEMover 把 RoPE 从“告诉模型每个 token 在哪里”的静态位置编码,变成了一个可以被人为修改的空间控制接口:
原图 + 物体 mask + 拖拽参数 │ ├─ 修改 mask 内 token 的二维 RoPE 地址 ├─ 把单目深度写入原本闲置的 temporal RoPE 轴 ▼ 扩散 Transformer 重新生成完整场景 │ ├─ 物体出现在目标位置 ├─ 原位置自动补背景 └─ 重新推断遮挡、阴影和反射它的关键不是“把物体特征复制过去”,而是让注意力机制认为:这些描述物体的 token 现在位于另一个空间地址。
1. 为什么移动物体比想象中困难
单图物体移动至少包含三类问题。
第一类是内容保持。移动之后的物体必须还是原来的物体,不能换造型、少部件或纹理漂移。
第二类是反遮挡。物体移走后,原位置会露出训练图像中从未出现过的背景,模型必须合理补全。
第三类是场景关系。物体靠近、远离或移动到另一个物体后方时,大小、遮挡顺序、接触阴影、镜面反射和局部照明都应重新计算。
已有方法通常走两条路线:
- 几何搬运加 inpainting:位置准,但容易像剪贴画,阴影与反射不自然;
- 视频扩散先验:能利用运动规律,但数据制作和训练成本较高。
直接对通用图像编辑模型说“把杯子移到右边”也不够,因为自然语言适合描述语义,不擅长给出精确空间坐标。
RoPEMover 的选择是:既然 DiT 内部已经用位置编码组织图像空间,为什么不直接改它的空间表示?
2. RoPE 为什么能成为“物体地址”
RoPE,即 Rotary Positional Embedding,会根据 token 的位置旋转 Query 和 Key。其重要性质是,注意力分数能够自然表达相对位置:
(R(pi)qi)T(R(pj)kj)=qiTR(pj−pi)kj (R(p_i)q_i)^T(R(p_j)k_j) =q_i^TR(p_j-p_i)k_j(R(pi)qi)T(R(pj)kj)=qiTR(pj−pi)kj
直观地说,每个图像 token 都携带两类信息:
- 内容:这里是杯子、桌面还是背景;
- 地址:它位于图像的哪一行、哪一列。
如果只改杯子区域 token 的地址,而不直接改其内容特征,相当于对模型说:“杯子还是这个杯子,但请把它当成位于新位置的内容。”
这就是 RoPEMover 最核心的观察:位置编码不只是被动标签,也可以成为生成控制量。
3. 二维 RoPE Warp:先解决平移和缩放
方法输入包括原图、源物体 mask,以及用户指定的拖拽信号(dx, dy, s):
dx, dy控制水平和垂直位移;s控制等比缩放。
对源 mask 内的 token,论文以物体中心为基准变换其坐标,可写成下面的直观形式:
p′=s(p−c)+c+Δp p' = s(p-c)+c+\Delta pp′=s(p−c)+c+Δp
其中p是原坐标,c是物体中心,Δp=(dx,dy)。经过变换后,mask 内 token 在注意力中的 RoPE 不再对应源位置,而对应拖拽和缩放后的目标位置。
这里有两个值得注意的设计。
3.1 只改物体区域
背景 token 保持原地址,因此模型仍能利用完整场景上下文。需要移动的只是 mask 内的物体表示。
3.2 只在前 20 个去噪步启用
论文把 RoPE warp 限制在前 20 个 denoising steps。原因是扩散模型通常在早期确定布局和大结构,后期主要恢复纹理与细节。
warp 时间太短,物体搬不彻底;持续太久,又会损伤最终画质。论文的消融实验最终统一采用 20 步。
4. Depth-Aware 3D RoPE:不仅要知道“在哪”,还要知道“在谁前面”
只改二维坐标仍然无法表达遮挡顺序。例如,把杯子移动到花瓶附近时,它究竟应该挡住花瓶,还是被花瓶挡住?二维(x,y)不能回答。
Qwen-Image 的图像 token 使用分解式三维 RoPE,位置索引为(t,h,w)。对于单张目标图像,t轴并没有真正承担视频时间含义,因此论文把它重新利用为深度通道。
具体流程如下。
4.1 用 MoGe-2 估计深度
训练阶段分别对源图和目标图估计 metric depth,并通过场景级仿射对齐减小单目深度在不同图片间的尺度与偏移误差。
深度随后被归一化到[1,2],再下采样到 DiT token 网格。Qwen-Image 的 RoPE 轴维度为[16,56,56],论文把每个 token 的深度写入 temporal 轴的第一个复频率分量,其余位置结构保持不变。
这是一处很巧妙的工程选择:没有重新设计整套位置编码,而是借用了预训练模型在单图任务中闲置的一小段坐标容量。
4.2 推理时合成目标深度
推理时没有真实目标图,只有源图深度。论文先在源物体区域求解带边界条件的 Laplace 方程,生成平滑的背景深度,避免原物体深度残留;再把源物体深度按(dx,dy,s)搬到目标位置,并加入用户给出的每物体深度偏移Δz。
因此,完整控制实际上不仅包含平移和缩放,还需要一个深度方向的指示。最后通过深度排序构造目标深度,使模型知道新物体应位于其他表面的前方还是后方。
需要特别澄清:论文标题里的“Depth-Aware”不等于完整三维重建。它使用的是单目深度场和用户提供的Δz,并没有从一次二维拖拽自动恢复真实相机、支撑平面和世界坐标运动。
5. 为什么阴影、反射和背景也会变化
RoPEMover 没有单独实现阴影渲染器,也没有把旧阴影做几何变换。它做的是把物体的位置和深度条件注入生成模型,让预训练 DiT 根据全局场景重新合成结果。
这解释了它与“抠图粘贴”的本质区别:
- 粘贴方法只改变局部像素;
- RoPEMover 改变生成过程中的空间关系;
- 阴影、反射和光照由模型结合新空间条件重新推断。
因此,它有机会生成此前不可见的背景,并让场景相关效果随物体一起变化。不过这些效果仍来自生成先验,而不是严格的物理光照计算,复杂镜面、多光源或透明物体仍可能出错。
6. 它不是 training-free:两阶段 LoRA 训练同样关键
单纯在预训练模型上随意修改 RoPE,并不能保证模型理解这些异常地址。RoPEMover 使用 Qwen-Image-Edit-2511,并通过 rank-16 LoRA 做参数高效微调;文本编码器和 VAE 保持冻结。
训练采用两阶段课程:
- Stage 1:合成数据。使用 CLEVR 构造物体移动配对,最终模型选择 5K 配对场景作为合成初始化;
- Stage 2:真实数据。作者在固定视角和匹配光照下拍摄 166 组真实配对,每组包含移动前、移动后和空背景图,再进行真实域微调。
训练分辨率为512×512,使用 4 张 NVIDIA A100、BF16、DeepSpeed ZeRO-2。LoRA 不只进入 Q/K/V 投影,也覆盖部分 MLP 和 modulation 层。
论文消融显示:
- 只有 LoRA、没有 RoPE warp,空间控制明显较弱;
- 加入二维 warp 后提升显著;
- 再加入深度条件,遮挡和空间准确性进一步改善;
- 合成训练后继续加入真实配对,外观保持与真实场景效果最好。
所以更准确的表述是:RoPE warp 提供了明确的几何控制接口,LoRA 训练则教会模型如何响应这个新接口。
7. 实验结果怎么看
论文在 ObjMove-A、ObjMove-B 等物体移动基准上,与 ChronoEdit、ObjectMover、FreeFine、Inpaint4Drag、MagicFixup、GeoDiffuser、Qwen-Image、FLUX Kontext 等方法比较。
以项目页公开的 ObjMove-A 结果为例:
| 指标 | RoPEMover | 解读 |
|---|---|---|
| Target DINO ↑ | 87.40 | 目标物体身份保持最好 |
| Background DINO ↑ | 97.57 | 背景一致性最好 |
| Target DreamSim ↓ | 0.1180 | 感知差异最低 |
| Background DreamSim ↓ | 0.0292 | 背景改动最小 |
| PSNR ↑ | 24.97 dB | 全表最高 |
Target CLIP 为 91.74,略低于 Inpaint4Drag 的 92.08,但在 DINO、DreamSim、背景保持和 PSNR 等多数指标上取得最好结果。
论文还进行了 20 名参与者、15 个随机样本的用户研究,在编辑忠实度、真实感和背景一致性三个维度上,RoPEMover 总体获得 83.4% 的选择票。
此外,作者展示了两类扩展:
- 将方法迁移到 FLUX.1 Kontext 等其他 DiT 编辑器;
- 通过先粗略复制物体、再让模型整体融合,实现 object addition。
8. 这篇论文真正新在哪里
我认为它最重要的贡献不是“用了深度模型”,而是重新定义了位置编码的角色。
过去我们通常把 RoPE 当作模型结构中的固定组件;RoPEMover 表明,RoPE 可以被视为一张可编程的空间场:
- 改二维地址,可以控制物体去哪;
- 改局部地址尺度,可以控制物体大小;
- 借用第三个轴写入深度,可以控制前后关系;
- 把干预限制在早期去噪,可以分离布局控制和纹理恢复。
这比额外画框、注入 ControlNet 特征或先做像素 warp 更直接,因为它修改的是注意力内部“内容应当出现在哪里”的关系。
9. 局限性
这项工作仍有清晰边界。
- 不是免训练方法。最终效果依赖 rank-16 LoRA 和两阶段配对数据。
- 控制参数仍需人工提供。输入需要物体 mask、
dx/dy/s,深度变化还依赖Δz。 - 变换类型有限。目前主要是平移与等比缩放,旋转、透视、关节运动和非刚性变形没有被统一建模。
- 深度不是完整 3D。单目深度可能在反射、透明物体和复杂室内结构上失效。
- 物理一致性来自生成先验。阴影和反射看起来合理,不代表满足严格的光照或几何约束。
- 高分辨率能力仍待验证。论文训练设置为 512×512,小物体细节和大图编辑可能受到 VAE 与 token 分辨率限制。
- 复现条件暂不完整。截至本文发布时,官方代码和预训练权重尚未开放。
10. 总结
RoPEMover 给出了一种很有启发性的单图物体移动范式:不在像素层强行搬运物体,而是在扩散 Transformer 内部修改物体 token 的空间地址,再让生成模型重新解释整个场景。
它把问题从:
“怎样把这块像素粘到另一处?”
改写为:
“怎样告诉模型,同一个物体现在位于新的二维和深度坐标?”
二维 RoPE warp 负责平移与缩放,depth-aware temporal RoPE 负责前后关系,两阶段 LoRA 则让模型学会响应这种新的空间语言。这个思路不仅适用于物体搬移,也提示了一个更广泛的方向:未来的图像编辑控制器,可能不再只依赖 prompt、mask 或像素条件,而是直接编程 Transformer 内部的坐标系统。
参考资料
- İpek Öztaş, Duygu Ceylan, Aybars Buğra Aksoy, Ayşegül Dündar.RoPEMover: Depth-Aware Object Relocation via Positional Embeddings. arXiv:2606.27332, 2026.
- Su et al.RoFormer: Enhanced Transformer with Rotary Position Embedding.
- Wang et al.MoGe-2: Accurate Monocular Geometry with Metric Scale and Sharp Details.
- Qwen Team.Qwen-Image Technical Report.