Scalable Minimal-Change Learning for Controllable Image Editing
Organizations: Sydney AI Centre, The University of Sydney
Abstract
Image editing should change only the attributes specified by an instruction while preserving everything else, yet current methods often make unintended changes. We treat this minimal-change principle as an optimization objective for instruction-based editing. Latent L1 regularization is a poor proxy for output locality in modern nonlinear generators and often requires supervision unavailable at scale. We instead optimize edit outcomes with reinforcement learning. An agentic vision-language reward model audits each source image, instruction, and edited image for two failure types: unimplemented requested changes and unintended changes. A group-level rubric merges and verifies these issues to provide consistent rewards across candidate edits without per-instruction human annotations. On FLUX.1 Kontext-dev, ARRO raises average EditScore from 5.21 to 5.88 across MinEval, MagicBrush, AnyBench, and Emu-Edit. On 600 evaluation examples, it reduces off-target pixel change by 8.4% relative to the base editor. Reward and SFT controls, blinded human evaluations, and transfer to OmniGen2 provide complementary evidence. Code: https://github.com/Showwwwwwwww/ARRO
Figures & tables
| Avg | ES per benchmark | ||||||
|---|---|---|---|---|---|---|---|
| Method | ES | HPS | IR | MinEval | MagicBr. | AnyBench | Emu-Edit |
| FLUX.1 Kontext-dev (Base, 12B, 2025) | 5.21 ±0.34 | 0.215 ±0.007 | 0.67 ±0.14 | 4.72 | 5.25 | 5.46 | 5.40 |
| InstructPix2Pix ( 1B, 2022) | 2.43 ±0.34 | 0.211 ±0.009 | 0.89 ±0.17 | 1.93 | 2.50 | 2.63 | 2.65 |
| MagicBrush model ( 1B, 2023) | 3.53 ±0.63 | 0.207 ±0.006 | 0.90 ±0.07 | 3.25 | 4.45 | 3.04 | 3.38 |
| OmniGen2 ( 7B, 2025) | 5.08 ±0.30 | 0.214 ±0.006 | 0.72 ±0.10 | 5.15 | 5.03 | 4.71 | 5.44 |
| UniWorld-v1 ( 20B, 2025) | 3.43 ±0.26 | 0.202 ±0.004 | 0.92 ±0.05 | 3.38 | 3.40 | 3.78 | 3.15 |
| Method | Edit type | |||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| act. | add | app. | bg. | color | count | impl. | mat. | move | outp. | rel. | rem. | repl. | resize | rot. | style | text | tone | |
| Base | 5.76 ∗ | 7.88 | 5.74 | 6.29 | 5.62 | 4.51 ∗ | 5.09 ∗ | 4.18 | 2.51 | 4.71 ∗ | 3.80 | 5.85 ∗ | 5.87 | 3.98 ∗ | 7.10 | 5.37 ∗ | 8.34 | 5.74 |
| Arro | 6.69 | 8.33 ∗ | 6.45 ∗ | 6.77 | 6.25 | 5.03 | 6.39 | 4.57 ∗ | 4.09 | 4.89 | 4.60 | 5.62 | 6.41 ∗ | 5.00 | 7.47 ∗ | 5.92 | 8.25 ∗ | 6.53 ∗ |
| IP2P | 1.48 | 4.62 | 3.02 | 2.89 | 4.99 | 0.42 | 2.72 | 2.61 | 1.95 | 2.48 | 2.35 | 1.46 | 2.50 | 2.19 | 3.02 | 3.42 | 0.08 | 5.06 |
| MagicBr. | 2.39 | 6.98 | 4.78 | 3.06 | 3.78 | 1.79 | 3.77 | 2.15 | 3.29 | 1.20 | 3.31 | 3.45 | 3.61 | 1.55 | 2.43 | 2.22 | 0.86 | 4.18 |
| OmniGen2 | 2.56 | 7.18 | 5.93 | 6.72 ∗ | 6.46 | 2.32 | 4.42 | 3.98 | 2.16 | 4.62 | 4.02 ∗ | 6.30 | 6.74 | 1.61 | 2.70 | 4.55 | 6.78 | 5.71 |
| Avg | MinEval | MagicBrush | AnyBench | Emu-Edit | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Variant | Reward | ES | HPS | IR | ES | HPS | IR | ES | HPS | IR | ES | HPS | IR | ES | HPS | IR |
| (1) Base (no RL) | 5.21 ±0.34 | 0.215 ±0.007 | 0.67 ±0.14 | 4.72 | 0.212 | 0.80 | 5.25 | 0.224 | 0.51 | 5.46 | 0.215 | 0.58 | 5.40 | 0.208 | 0.78 | |
| (2) Merged scalar | 4.35 ±0.37 | 0.211 ±0.006 | 0.75 ±0.10 | 3.89 | 0.209 | 0.82 | 4.23 | 0.219 | 0.62 | 4.75 | 0.212 | 0.72 | 4.52 | 0.205 | 0.85 | |
| (3) Efficacy only | 4.09 ±0.45 | 0.203 ±0.007 | 0.87 ±0.17 | 3.46 | 0.197 | 1.05 | 4.09 | 0.212 | 0.65 | 4.49 | 0.204 | 0.83 | 4.33 | 0.197 | 0.94 | |
| (4) Locality only [reward-hacked] | ES 0.00 HPS 0.011 IR across all four benchmarks (degenerate noise output) | |||||||||||||||
| (5) Arro (full, ours) | + per-channel adv. | 5.88 ±0.15 | 0.222 ±0.008 | 0.51 ±0.16 | 5.73 | 0.220 | 0.63 | 5.80 | 0.233 | 0.29 | 6.07 | 0.221 | 0.49 | 5.91 | 0.214 | 0.62 |
| Comparison | Win | Tie | Loss |
|---|---|---|---|
| ARRO vs. EditScore(PF, Cons)-GDPO | 366/600 (61.0%) | 94/600 (15.7%) | 140/600 (23.3%) |
| OmniGen2 + ARRO vs. OmniGen2 | 321/600 (53.5%) | 107/600 (17.8%) | 172/600 (28.7%) |
| Benchmark | OmniGen2 | OmniGen2 + ARRO | ES gain |
|---|---|---|---|
| MagicBrush | 5.03 | 5.58 | +0.55 |
| AnyBench | 4.71 | 5.22 | +0.51 |
| Emu-Edit | 5.44 | 5.99 | +0.55 |
| Average | 5.06 | 5.59 | +0.53 |
Appendix figures & tables13 assets
Supplementary material from the paper’s appendix.
Appendix
| Method | OffTarget-L1 | Improvement vs. Base |
|---|---|---|
| FLUX.1 Kontext-dev (Base) | 0.20366 | — |
| EditScore-Top1-SFT | 0.19952 | 2.0% |
| EditScore(PF, Cons)-GDPO | 0.18975 | 6.8% |
| ARRO | 0.18659 | 8.4% |
| Method | PF | Cons. | PQ | ES | HPSv2 | IR |
|---|---|---|---|---|---|---|
| Base | 5.9920 | 8.1573 | 6.3393 | 4.7237 | 0.2120 | |
| Raw audit counts | 5.0843 | 7.0832 | 4.0630 | 3.2779 | 0.1911 | |
| EditScore Top-10 SFT | 5.7700 | 8.2827 | 6.2713 | 4.5529 | 0.2091 | |
| ARRO Top-10 SFT | 5.7893 | 8.3240 | 6.3933 | 4.6289 | 0.2082 | |
| ARRO-GDPO | 7.1113 | 8.1700 | 6.5693 | 5.6690 | 0.2196 |
| Reward | MinEval | MagicBrush | AnyBench | Emu-Edit | Average |
|---|---|---|---|---|---|
| EditScore(PF, Cons) | 3.566 | 3.233 | 4.379 | 3.932 | 3.777 |
| ARRO verified issue counts | 5.730 | 5.800 | 6.070 | 5.910 | 5.880 |
| Requested modifications | 5 | 10 | 15 | 20 | 25 | 30 | 35 | 40 | 45 | 50 |
| ARRO unintended count | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| EditScore Consistency | 9.200 | 8.333 | 8.867 | 8.467 | 8.733 | 8.667 | 8.533 | 9.240 | 8.867 | 9.000 |
| VLM + LLM | GT=0 | GT=1 | GT=2 | GT=3 | MAE | Exact acc. |
|---|---|---|---|---|---|---|
| Qwen3 4B + 4B | 0.80 | 1.40 | 1.80 | 3.40 | 0.75 | 0.40 |
| Qwen3 8B + 8B | 0.80 | 1.00 | 2.00 | 2.80 | 0.55 | 0.50 |
| Qwen3 32B + 30B | 0.40 | 1.20 | 1.80 | 3.00 | 0.30 | 0.70 |
| Check | No error confirmed by both | Error confirmed by both |
|---|---|---|
| Repeated issues merged correctly | 560/565 (99.1%) | 5/565 (0.9%) |
| Final issue visually supported | 553/565 (97.9%) | 12/565 (2.1%) |
| No evident issue omitted | 58/60 (96.7%) | 2/60 (3.3%) |
| Benchmark | Model | ES | HPSv2 | ImageReward |
| MagicBrush | OmniGen2 | 5.03 | 0.221 | |
| OmniGen2 + ARRO | 5.58 | 0.228 | ||
| AnyBench | OmniGen2 | 4.71 | 0.215 | |
| OmniGen2 + ARRO | 5.22 | 0.221 | ||
| Emu-Edit | OmniGen2 | 5.44 | 0.207 | |
| OmniGen2 + ARRO | 5.99 | 0.213 |
| MinEval | MagicBrush | AnyBench | Emu-Edit | Avg | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Method | PF | Cons | PQ | PF | Cons | PQ | PF | Cons | PQ | PF | Cons | PQ | PF | Cons | PQ |
| FLUX.1 Kontext-dev (Base) | 6.00 | 8.12 | 6.39 | 6.74 | 8.50 | 6.57 | 6.64 | 8.48 | 6.70 | 7.03 | 8.33 | 6.15 | 6.60 | 8.36 | 6.45 |
| InstructPix2Pix | 2.31 | 6.13 | 6.24 | 3.24 | 6.65 | 6.20 | 3.34 | 6.98 | 6.39 | 3.34 | 6.60 | 6.06 | 3.06 | 6.59 | 6.22 |
| MagicBrush model | 4.05 | 5.94 | 4.82 | 5.63 | 7.22 | 5.29 | 4.44 | 5.63 | 4.37 | 4.73 | 6.13 | 5.02 | 4.71 | 6.23 | 4.87 |
| OmniGen2 | 6.03 | 8.77 | 7.13 | 6.11 | 9.04 | 7.22 | 6.03 | 8.46 | 6.76 | 6.78 | 8.54 | 6.49 | 6.24 | 8.70 | 6.90 |
| UniWorld-v1 | 5.08 | 5.56 | 3.95 | 5.12 | 6.18 | 3.97 | 5.27 | 5.97 | 4.67 | 5.14 | 5.64 | 3.80 | 5.15 | 5.84 | 4.10 |
| MinEval | MagicBrush | AnyBench | Emu-Edit | |||||
|---|---|---|---|---|---|---|---|---|
| Method | HPS | IR | HPS | IR | HPS | IR | HPS | IR |
| FLUX.1 Kontext-dev (Base) | 0.212 | 0.80 | 0.224 | 0.51 | 0.215 | 0.58 | 0.208 | 0.78 |
| InstructPix2Pix | 0.220 | 0.67 | 0.213 | 0.96 | 0.212 | 0.85 | 0.199 | 1.08 |
| MagicBrush model | 0.211 | 0.84 | 0.211 | 0.86 | 0.205 | 0.88 | 0.199 | 1.00 |
| OmniGen2 | 0.211 | 0.83 | 0.221 | 0.59 | 0.215 | 0.68 | 0.207 | 0.77 |
| UniWorld-v1 | 0.203 | 0.92 | 0.206 | 0.90 | 0.204 | 0.87 | 0.196 | 0.99 |
| Method | Edit type | |||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| act. | add | app. | bg. | color | count | impl. | mat. | move | outp. | rel. | rem. | repl. | resize | rot. | style | text | tone | |
| Base | 0.266 ∗ | 0.266 ∗ | 0.245 ∗ | 0.210 | 0.223 | 0.177 | 0.240 | 0.221 | 0.210 | 0.191 ∗ | 0.215 | 0.169 | 0.234 ∗ | 0.221 | 0.183 ∗ | 0.191 | 0.233 | 0.177 |
| Arro | 0.269 | 0.268 | 0.255 | 0.218 | 0.234 | 0.182 | 0.251 | 0.227 | 0.219 ∗ | 0.193 | 0.219 | 0.165 | 0.241 | 0.226 ∗ | 0.184 | 0.202 | 0.231 | 0.187 |
| IP2P | 0.247 | 0.229 | 0.222 | 0.198 | 0.230 | 0.203 | 0.226 | 0.230 ∗ | 0.221 | 0.170 | 0.218 ∗ | 0.207 | 0.222 | 0.230 | 0.173 | 0.190 | 0.227 | 0.166 |
| MagicBr. | 0.233 | 0.240 | 0.228 | 0.222 ∗ | 0.221 | 0.181 | 0.216 | 0.217 | 0.211 | 0.165 | 0.203 | 0.193 ∗ | 0.217 | 0.216 | 0.161 | 0.175 | 0.208 | 0.190 ∗ |
| OmniGen2 | 0.261 | 0.252 | 0.242 | 0.222 | 0.235 ∗ | 0.172 | 0.247 ∗ | 0.234 | 0.187 | 0.188 | 0.205 | 0.173 | 0.229 | 0.217 | 0.176 | 0.200 | 0.236 | 0.190 |
| Method | Edit type | |||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| act. | add | app. | bg. | color | count | impl. | mat. | move | outp. | rel. | rem. | repl. | resize | rot. | style | text | tone | |
| Base | 0.42 ∗ | 0.79 | 0.27 ∗ | 0.81 | 0.15 | 1.33 | 0.05 | 0.79 | 0.46 | 1.12 | 0.49 | 1.76 | 0.66 | 0.44 | 1.57 ∗ | 1.15 | 0.09 | 1.18 |
| Arro | 0.56 | 0.78 ∗ | 0.42 | 0.59 | 0.08 ∗ | 1.21 | 0.32 | 0.54 ∗ | 0.35 | 0.99 ∗ | 0.40 | 1.80 | 0.76 ∗ | 0.47 ∗ | 1.55 | 1.02 | 0.21 | 1.07 |
| IP2P | 0.43 | 0.61 | 0.86 | 1.16 | 0.50 | 0.81 | 0.53 | 0.74 | 0.38 ∗ | 1.44 | 0.44 ∗ | 1.10 | 1.18 | 0.55 | 1.73 | 1.19 | 0.02 | 1.61 |
| MagicBr. | 0.36 | 0.14 | 0.49 | 0.58 ∗ | 0.60 | 1.22 | 0.55 | 1.01 | 0.67 | 1.43 | 0.63 | 1.34 ∗ | 1.12 | 0.81 | 1.88 | 1.27 | 0.62 | 1.15 ∗ |
| OmniGen2 | 0.05 | 0.34 | 0.02 | 0.54 | 0.02 | 1.48 | 0.05 | 0.51 | 1.05 | 0.99 | 0.61 | 1.91 | 0.94 | 0.59 | 1.70 | 1.06 ∗ | 0.07 ∗ | 1.15 ∗ |
| Parameter | Setting |
|---|---|
| Optimizer | |
| Optimizer | AdamW |
| Learning rate | |
| Weight decay | |
| Gradient-norm clip | |
| PPO ratio clip | |
| Parameter | Setting |
|---|---|
| Reward | |
| Channel-1 weight | |
| Channel-2 weight | |
| Auditor VLM | Qwen3-VL-30B-A3B-Instruct [ Qwen Team, 2025 ] |
| Aggregator LLM | Qwen3-30B-A3B-Instruct-2507 [ Qwen Team, 2025 ] |
| Compute | |