EditAgent

Rethinking Agentic Image Editing

Haiyang Xu1* Tianyu Wang2 Jialu Li2 Jiteng Mu2 Yuanjun Xiong2 Jianming Zhang2 Zhuowen Tu1 Mingze Xu2

1UC San Diego · 2Adobe Research*Work done during an internship at Adobe Research

Action space: one tool retried, or many methods at onceTop: a typical agent says let me try again and retries its one tool three times, each try editing the last result, and every try fails because it uses the same tool every round. Bottom: EditAgent plans, locates and picks methods, then the General, Local, Tone and Style methods each produce a candidate from the same source at the same time. Typical agentic editingEditAgent 1Action space “Let me try again…” Each retry editsthe last result Try 1 Try 2 Try 3 Same tool every round Plan Locate Pick methods Source GeneralLocalToneStyle Different ways, all at once Observation space: judged by eye, or with evidenceTop: a typical judge looks at one output by eye and says it looks fine, or trusts a reward model's score, judging one output at a time. Bottom: EditAgent's judge gets evidence for every candidate (a change map, a before and after close-up, color and tone stats, geometry checks, facts checked by code and what is left to judge) and compares candidates A to D in one call, accepting C. Typical agentic editingEditAgent 2Observation space “Looks fine?” Judge by eye or “Trust my score!” Reward model Judged by eye, one at a time “Now I see!” Off-the-shelfVLM judge Evidence Change map Before | after close-up Color & tone stats Geometry checks Checked by code Left to judge Compared in one call: ABCD Evidence for every candidate Result: what goes wrong, and what EditAgent getsTop: the typical agent asks what went wrong: a good edit is never generated, or not recognized, and judge calls pile up. Bottom: EditAgent gets an accepted edit; an off-the-shelf VLM with evidence judges better than finetuned reward models; and it doubles as a data engine whose good edits train an editing model. Typical agentic editingEditAgent 3Result ? “What went wrong?” A good edit is … Never generated Not recognized Judge calls pile up Accepted edit Off-the-shelf VLM + evidence judges better than Finetuned reward models Doubles as a data engine trains Editing model

An editing agent is bounded by its action space and its observation space.

EditAgent expands both.

Measured on 600 requests · 30 edit types · 5 professional retouchers

01 · Action spaceWhat the agent can do

  1. 1What others do, and why

    One editor, tried again and again

    One general editor per step. Rejected? Edit the last result again.

    Why: one editor can do almost anything, and step-by-step refinement works in image generation.

    One editor, tried again and again Asked to straighten a tilted horizon, a single general editor retries three times, each try editing the previous try, so the horizon stays tilted while the sun is erased and the colors drift: errors can pile up. “Straighten the tilted horizon” Source edits the last result Try 1 Try 2 Try 3 Still tilted Sun erased Drifting Errors can pile up General editor
  2. 2What we found

    One editor is not enough

    Who produces a usable edit, by edit group, as a share of expert-labeled candidate sets. Only the general editor / both / only specialists / neither: style and effects 73.8 / 17.5 / 2.5 / 6.2; content 52.8 / 18.9 / 7.2 / 21.1; scene 51.0 / 13.0 / 17.0 / 19.0; photometric 26.2 / 23.8 / 42.5 / 7.5; geometry 19.2 / 4.2 / 66.7 / 10.0; enhancement 12.5 / 12.5 / 72.5 / 2.5; all 30 edit types 42.3 / 15.0 / 29.2 / 13.5.
    Who makes a usable edit, by edit group (% of expert-labeled sets)
    Three requests where the general editor fails — it turns the bear around, puts the snow on the TV screen, and oversaturates the field — while an object-move editor, localized editing and a sharpening operator succeed.
    Only a specialist gets these right.
  3. 3Our fix

    Race many methods at once, all from the source

    • General editor
    • Masked local editing
    • Object removal
    • Object movement
    • Subject scaling
    • Photometric operators
    • Style transfer
    • Flips & rotations
    • Zoom-in crop
    • Canvas extension
    • Exact by construction — flips, 90° rotations, pixels outside a mask
    • Every try starts from the source — no drift
    • One judge call for the whole batch
    Race many methods at once, all from the source The tilted source photo goes in parallel to two general-editor runs and a rotation tool; one judge call compares all three candidates, rejecting the still-tilted one and the one with the sun erased, and picking the rotation tool's level horizon. “Straighten the tilted horizon” Source General editor General editor Rotation tool Rotation tool All from the same source 1 judge call Still tilted Sun erased Level horizon
  4. 4The proof

    Parallel beats sequential — more methods beat more samples

    Parallel vs. sequential · same editor

    78.5% of decided expert comparisons favor parallel — with at most half the judge calls.

    More samples vs. more methods · EdiVal-O

    Turn 3 · Qwen-Image-Edit-2511

02 · Observation spaceWhat the judge can see

  1. 1What others do, and why

    One output at a time, judged by eye

    One edit at a time: pass or fail by eye — or a reward-model score.

    Why: it fits any pipeline, and reward models like EditScore learn from large sets of human preferences.

    One output at a time, judged by eye A judge bot looks at one edited photo, the first of three in a queue, says it looks fine and stamps it PASS; a close-up of where the shirt patch was removed then shows blurred checks, so the pass is struck out as a miss. “Remove the patch from the shirt” Candidate 1 of 3 Looks fine PASS Up close Missed: blurred checks
  2. 2What we found

    No judge is reliable across edit types

    The best judge changes with the edit type — some fall below random.

    Accuracy (Winner-Set Hit@1, %) of picking a usable edit, one output at a time, by edit group, for EditScore-72B / EditReward-7B / CLIP-I / Qwen3.8-27B, with random in brackets: style and effects 82.3 / 77.3 / 58.7 / 84.4 (71.8); content 79.6 / 78.9 / 76.8 / 81.7 (69.5); scene 74.8 / 69.1 / 67.9 / 67.5 (58.3); photometric 75.3 / 63.9 / 80.6 / 54.2 (49.0); geometry 63.2 / 60.4 / 49.1 / 66.4 (50.0); enhancement 73.1 / 82.1 / 84.6 / 65.0 (44.7); all groups 74.8 / 71.5 / 68.2 / 71.6 (59.3). Cells are colored by rank within each group, best to worst.
    Picking a usable edit, one output at a time · Winner-Set Hit@1 (%)
  3. 3Our fix

    Show every candidate, with evidence, in one call

    • Change map
    • Before | after close-up
    • Tone & color stats
    • Geometry checks
    • Facts checked by code
    • Side by side — see what each one changed
    • Measured — the subtle becomes visible
    • History check — earlier turns are re-checked after each turn
    Every candidate, with evidence, in one call Three candidate edits of the shirt photo sit side by side, each with a verification record (a before and after close-up, a change map and a verified code check); one judge call compares them all, rejects the removal specialist for blurred checks and the third candidate because the patch remains, and accepts the general editor's clean result. “Remove the patch from the shirt” Removal specialist General editor General editor VERIFIED VERIFIED VERIFIED Blurred checks Patch remains Accepted 1 call · all candidates · with evidence

    Compare · the only clean removal wins

    Measured tone: which edit brightened gently A dim room photo is brightened by the general editor and by the photometric operator; each result's record measures brightness, clipped highlights and color shift, showing the general editor went to 0.80 with 13.0% clipped and a warmer cast while the operator went gently from 0.23 to 0.45 with colors unchanged, so one judge call rejects the first and accepts the second. “Brighten the photo gently; keep the colors unchanged” Input General editor Photometric operator Brightness 0.23 Clipped 0.0% Brightness Brightness 0.80 0.45 Clipped 13.0% Clipped 0.1% Warmer +9.3 Colors unchanged VERIFIED 1 call Too bright, warmer Gentle, colors kept

    Measure tone · which edit brightened gently

    Measured framing: which zoom-out kept the original A close crop of a building facade is zoomed out by the general editor and by canvas extension; the framing check searches each result for the source, finds nothing in the general editor's redrawn facade but locates the exact source inside the canvas extension's wider view, so one judge call rejects the first and accepts the second. “Zoom out to show the whole facade” Input Source General editor Canvas extension Match Match Source not found Source inside VERIFIED 1 call Facade redrawn Wider, source kept

    Measure framing · which zoom-out kept the original

  4. 4The proof

    Off-the-shelf judges now beat finetuned ones

    Qwen3.8-27B judge · accuracy (%)

    Finetuned EditScore-72B: 74.8

    Every judge we tried · with vs. without evidence

    Winner-Set Hit@1 (%) of seven off-the-shelf VLM judges comparing candidates side by side, without and with evidence: Qwen3.8-Flash-Next 74.6 to 82.8 (+8.2), Qwen3.8-27B 73.6 to 81.3 (+7.7), Qwen3.5-397B-A17B 72.0 to 81.2 (+9.3), Gemma-4-31B 71.1 to 79.8 (+8.7), Qwen3.5-27B 69.4 to 77.5 (+8.1), Qwen3.5-122B-A10B 68.3 to 76.6 (+8.3), Qwen3.5-35B-A3B 69.3 to 75.6 (+6.3); finetuned models: EditScore-72B 74.8, EditScore-8B 73.2, EditScore-4B 71.7, EditReward-7B 71.5.

03EditAgent: Both Spaces, One Loop

Plan the steps, race methods in parallel, compare with evidence in one call. Each accepted image is the next step’s source.

EditAgent, one step of the loop: (A) plan and route Animated overview of EditAgent on the request “Make the candle look freshly extinguished”: (A) a planner orders three steps, an analyzer names the flame as the target and what to keep, and a router sends step 1 to two general-editor runs and the removal specialist; (B) the three candidates are generated in parallel from the same source, each with a close-up and a change map; (C) one off-the-shelf VLM compares them all in one call, finds the unburnt wick and the leftover glow, and accepts #3 with the charred wick, or retries with feedback if none is acceptable; below, each accepted result becomes the source of the next step, through adding one clean wisp of smoke to the final state. APlan and route Input “Make the candle lookfreshly extinguished” Planner 1Remove the flame 2Add smoke 3Adjust the lighting 1Remove the flameNow Step analyzerTarget: the flameKeep: wick, candle, table, wall Router General editor ×2 Removal specialist ×1 (B) Generate candidates in parallel BGenerate candidates in parallel Capability poolChosenGeneraleditorsMasked localeditorRemovalspecialistMovespecialistPhotometricoperatorCanvasextension GeneraleditorsRemovalspecialist Same sourcein parallel #1General editor#2Removal specialist#3General editor Close-up · change map 5.9% 0.2% 4.8% (C) Verify and compare CVerify and compare Off-the-shelf VLMOne call, all candidates Judgment#1#2#3Flame removedGlow goneCharred wick #3 Accept #3Source of the next step None acceptable?Retry with feedback Step chain: each accepted result is the source of the next step Input Step 1: Remove the flame GeneralRemovalGeneral Unburnt wickGlow left behindCharred wick Step 2: Add smoke GeneralGeneralGeneral Too slightToo heavyOne clean wisp Step 3: Adjust the lighting Photometric Final state Step chain: each accepted result is the source of the next step Input Step 1: Remove the flame GeneralRemovalGeneral Unburnt wickGlow left behindCharred wick Step 2: Add smoke GeneralGeneralGeneral Too slightToo heavyOne clean wisp Step 3: Adjust the lighting Photometric Final state

04Results

Two open-weight backbones · one off-the-shelf VLM (Qwen3.8-27B) in every agent role

Strong backbones get much stronger

+7.82Qwen-Image-Edit-2511 + EditAgent
+6.25FLUX.2-klein-9B + EditAgent
62.58Best overall: Qwen-Image-Edit-2511† + EditAgent
59.76Best closed-source: Seedream 4.0

EdiVal-O at turn 3

EdiVal, turns 1 / 2 / 3 · IF: instruction following · CC: content consistency · O: overall. †Generates at 1024 px.
EdiVal-IFEdiVal-CCEdiVal-O
ModelT1T2T3T1T2T3T1T2T3
Closed-source
FLUX.1-Kontext-max†69.4946.8931.8393.9390.9088.4080.7965.2953.04
GPT-Image-1†73.1254.8938.3581.0077.7875.5076.9665.3453.81
Nano Banana†70.7050.6635.3593.9190.4889.4881.4867.7056.24
FLUX.2-max75.5555.2739.3692.9188.3085.7883.7869.8658.10
Nano Banana 2†73.8954.1738.6193.5490.5288.6183.1470.0258.49
GPT-Image-1.5†75.1955.9240.0894.4991.2088.4984.2971.4159.55
Seedream 4.0†75.9355.5841.5992.5188.0385.8683.8169.9559.76
Open-source
AnyEdit41.0716.327.2286.4278.9170.1059.5835.8922.50
UltraEdit51.3717.706.3686.8084.5082.4066.7838.6722.89
OmniGen54.7224.4810.6693.0088.4283.9271.3446.5229.91
FLUX.1-Kontext-dev†59.9732.6916.6195.3292.2490.2275.6154.9138.71
Step1X-Edit61.8934.9717.8392.7688.5285.2175.7755.6438.98
Qwen-Image-Edit†72.9044.0622.5584.2280.5277.9878.3659.5641.93
Qwen-Image-Edit-251175.3552.9739.1676.5964.7957.9575.9758.5847.64
+ EditAgent75.3557.6941.6186.2977.8773.9280.6467.0255.46
FLUX.2-klein-9B69.7648.0831.8294.9191.4288.9481.3766.3053.20
+ EditAgent75.3555.7740.2194.6790.6587.9084.4671.1059.45
Qwen-Image-Edit-2511†76.2257.3441.0893.9589.5587.0584.6271.6659.80
+ EditAgent†76.0557.8744.9393.8089.7787.1584.4672.0862.58

Both spaces add up

Better on every benchmark

Backbone → + EditAgent, higher is better. The two Complex benchmarks are scored by Qwen3.8-27B, also EditAgent’s judge; Gemma-4-31B as scorer agrees.
BackboneEdiVal-O, turn 3ComplexBench-EditComplex-Edit
Qwen-Image-Edit-251147.64→55.46+7.8254.40→60.83+6.437.371→7.445+0.074
FLUX.2-klein-9B53.20→59.45+6.2561.45→64.51+3.067.677→7.713+0.036

Best among agentic editors

With FLUX.2-klein-9B, EditAgent leads too (59.45 vs. 58.42). †Re-implemented.

Bonus: a data engine for better editors

Its fully accepted sessions become training data — finetuning on them improves both editors on every benchmark.

Before → after finetuning on EditAgent data (one epoch; EdiVal prompts rewritten, so baselines differ from above)
EditorEdiVal-O, turn 3Complex-EditComplexBench-Edit
Qwen-Image-Edit-251149.66→51.61+1.957.371→7.435+0.06454.40→57.57+3.17
FLUX.2-klein-base-9B54.53→56.53+2.007.517→7.615+0.09857.84→59.98+2.14

BibTeX

@article{editagent2026,
  title={EditAgent: Rethinking Agentic Image Editing},
  author={Xu, Haiyang and Wang, Tianyu and Li, Jialu and Mu, Jiteng and Xiong, Yuanjun and Zhang, Jianming and Tu, Zhuowen and Xu, Mingze},
  journal={arXiv preprint arXiv:2610.39664},
  year={2026}
}