How to edit a photo by describing the change

Prompt editing is a different job from generating. You are not asking for a picture, you are asking for one change to a picture that already exists, and the model's real skill is leaving everything else alone. OpenModels runs one edit model on our own GPUs, payable in green credits, and several hosted ones that bill in gold. This is how to drive them and how to tell which is which before you press anything.

What a prompt edit is doing

An edit model takes your picture as the starting point rather than as inspiration. The attached image drives the latent the model works in, which is also why it usually decides the output size: on the local Qwen graph the first attached image sets the dimensions the result comes back at. Everything you write is applied on top of that starting point, so the picture is the constraint and the prompt is the instruction.

That is why edit prompts read differently from generate prompts. "A woman in a red coat on a bridge" is a generation. "Change the coat to red, keep the same pose, background and lighting" is an edit. The second half of that sentence does most of the work, because a model given only the change will often re-render the scene around it and hand you a different photo of a similar thing.

Which edit model to pick

The edit lane, by wallet
ModelRuns onPriceReference imagesPlan
Qwen Image Edit (Local)Our own GPUfrom ⚡10 to 3Free and up
Qwen Image EditWavespeed✦1.40 to 3Starter and up
Qwen Image Edit 2.0 ProWavespeed✦71 to 3Starter and up
Qwen Image Edit MaxWavespeed✦71 to 6Starter and up
Nano Banana ProWavespeed✦4.7, ✦8.1 at 4K0 to 6Starter and up
Seedream 4.5Wavespeed✦1.50 to 6Starter and up

What it costs: Own-GPU prices start at ⚡1 an image. They are set at runtime, can carry a demand multiplier when the render queue is deep, and when the local lane is unavailable the same model is served over a paid API and billed in ✦ gold instead. Treat ⚡1 as a floor rather than a quote.

The local model is the one to reach for first, and not only because it is cheap. Its graph exposes three image slots, all of them optional — image one normally carries the photo being edited, and images two and three carry whatever the instruction refers to. With no image attached at all it falls back to plain text-to-image on the same checkpoint, so a mixed run of edits and generations does not have to be split into two presses.

Editing a photo, start to finish

  1. Open the composer and attach the photo. Go to /image and drop the picture into the image tray. The tray holds up to six references; the first one is the base the edit works on.
  2. Tick an edit model. Qwen Image Edit (Local) is the free lane. Models your plan cannot run are shown with the plan that opens them rather than hidden, so the picker tells you the answer before you press.
  3. Write the change and the constraint. One sentence for what should be different, one clause for what must stay. "Change the sky to heavy overcast, keep the building, the people and the framing exactly as they are."
  4. Reference by slot when there is more than one image. With several images attached, say which is which — "use image 1 as the base, take the jacket from image 2". The slots are numbered in the tray and dragging them renumbers the tokens.
  5. Press Generate, then edit the edit. The cost is on the button before you press it. If the result is close but overshot, run the next instruction on the result rather than rewriting the original prompt — small steps hold the picture together better than one long instruction.

Try it on the local edit model — Fills the composer with the instruction and selects Qwen Image Edit (Local). Attach your photo and press Generate yourself.

Writing instructions that hold

One habit that pays for itself: keep the successful instruction, not just the picture. A generation card stores the full input set, and Regenerate on it restores the prompt, the attached images and the model — so an edit recipe that worked on one photo is one press away from being applied to the next.

Where this stops

Prompt editing is not masking. If you need one precise region changed and nothing else touched at all, the lightbox Inpaint tool paints a mask over exactly that area and fills it — a different, more surgical job, billed in gold. Prompt editing is the better tool when the change is semantic ("make it winter") and the worse tool when the change is spatial ("this one object, nothing else").

Two edit features on the local model are Ultra-only: the face-replace recipe, and the batch version that applies one face to up to thirty base photos in a single run. Below Ultra those chips are not rendered at all, so if you cannot see them that is the reason.

Which plan: Free and Starter output carries an OpenModels watermark, applied at save time. The switch to turn it off is a Creator entitlement and applies to new results only — it does not go back and re-save older ones.

Can I edit a photo without paying anything?

Yes. Qwen Image Edit (Local) runs on our own GPUs, is open on the free plan, and starts at ⚡1 an image against the ⚡20 a day a free account refills to. The hosted edit models are the ones that need gold credits.

How many reference images can I attach?

The composer tray holds six. What each model actually consumes differs: the local Qwen edit graph takes up to three, Nano Banana Pro and Seedream take up to six, and Qwen Image Edit 2.0 Pro requires at least one.

Why did the model change things I did not ask about?

Almost always because the instruction named the change without naming the constraint. Add the clause that lists what must not move — pose, framing, background, lighting — and re-run.

Does the edit keep my original resolution?

The first attached image drives the latent on the local graph, so the output tracks it. Very large inputs are downscaled first, and if you need the result bigger the lightbox Upscale tool takes it to 2K, 4K or 8K in gold.

What happens if the local GPU lane is busy?

The same model can be served over a paid API instead, and that run is billed in ✦ gold rather than green. This is why the price is quoted as a floor and the button shows the number before you commit.