Skip to content
Docs

Using Qwen-Image-Edit-2511 on Chutes

Qwen-Image-Edit-2511 is the Qwen team's December 2025 instruction-based image editing model: send one to three reference images plus a natural-language edit instruction, get back the edited image. On Chutes it runs on a dedicated host with a flat-JSON POST /generate endpoint tuned for fast 4-step edits.

Overview

Qwen-Image-Edit-2511 upgrades Qwen-Image-Edit-2509. Per the model card, the release focuses on: mitigating image drift, improved character consistency (edits preserve the identity of people in the input), stronger multi-person consistency (fusing separate portraits into one coherent group photo), popular community LoRA effects integrated into the base model (lighting enhancement and novel-view generation work without extra adapters), and better industrial design and geometric reasoning, including material replacement on components and drawing auxiliary construction lines.

Architecturally it is a diffusion transformer (QwenImageTransformer2DModel: 60 layers, 24 attention heads, head dimension 128) driven by a Qwen vision-language text encoder that reads both the instruction and the reference images. In diffusers it runs as QwenImageEditPlusPipeline with a list of input images, which is what enables multi-image composition. Instructions work in English and Chinese.

Model specifications

PropertyValue
Upstream repoQwen/Qwen-Image-Edit-2511
TaskInstruction-based image editing (image-to-image)
TransformerQwenImageTransformer2DModel, 60 layers, 24 heads, head dim 128
Pipelinediffusers QwenImageEditPlusPipeline (multi-image input)
Instruction languagesEnglish, Chinese
Modalitiestext + 1-3 images in, image out (JPEG on this chute)
LicenseApache-2.0
ReleaseDecember 2025

Quick start

The chute is served on https://vonkaiser-qwen-image-edit-2511.chutes.ai. Base64-encode your input image(s) into the image_b64s array and describe the exact edit in prompt. The response body is image/jpeg bytes.

# Replace the placeholder with real base64 image data first.
curl -X POST "https://vonkaiser-qwen-image-edit-2511.chutes.ai/generate" \
  -H "Authorization: Bearer $CHUTES_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "make the background a tropical beach scene",
    "image_b64s": ["<base64-encoded image>"],
    "width": 1024,
    "height": 1024,
    "true_cfg_scale": 1,
    "num_inference_steps": 4,
    "seed": 42
  }' \
  --output output.jpg
import base64
import os
import requests

with open("input.jpg", "rb") as f:
    image_b64 = base64.b64encode(f.read()).decode()

resp = requests.post(
    "https://vonkaiser-qwen-image-edit-2511.chutes.ai/generate",
    headers={"Authorization": f"Bearer {os.environ['CHUTES_API_KEY']}"},
    json={
        "prompt": "make the background a tropical beach scene",
        "image_b64s": [image_b64],
        "true_cfg_scale": 1,
        "num_inference_steps": 4,
        "seed": 42,
    },
    timeout=180,
)
resp.raise_for_status()
with open("output.jpg", "wb") as f:
    f.write(resp.content)
import { readFile, writeFile } from "node:fs/promises";

const imageB64 = (await readFile("input.jpg")).toString("base64");

const resp = await fetch("https://vonkaiser-qwen-image-edit-2511.chutes.ai/generate", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.CHUTES_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    prompt: "make the background a tropical beach scene",
    image_b64s: [imageB64],
    true_cfg_scale: 1,
    num_inference_steps: 4,
  }),
});
if (!resp.ok) throw new Error(`HTTP ${resp.status}`);
await writeFile("output.jpg", Buffer.from(await resp.arrayBuffer()));

Parameters and tuning

FieldTypeChute defaultNotes
promptstring"make the background a tropical beach scene"Describe the exact edit, not the whole final image.
image_b64sstringrequired in practice1-3 raw base64 images. Multi-image enables subject composition.
num_inference_stepsinteger4Fast profile. The model card's example uses 40; raise for fidelity.
true_cfg_scalenumber1Model-card example uses 4.0. Higher values follow the instruction more strongly.
negative_promptstring""Short exclusions only.
width / heightinteger1024 / 1024Keep at 1024 while testing; larger costs more and is slower.
seedintegernullSet for reproducible edits.

The chute's 4-step / cfg 1 defaults are a latency-optimized serving profile. The upstream model card demonstrates 40 steps with true_cfg_scale 4.0; both are per-request fields here, so you can move toward the card's settings when edit fidelity matters more than speed.

What it's best at

The model card's showcase maps directly to practical work: background swaps and precise color edits for e-commerce imagery; identity-preserving edits of people, including merging separate portraits into a group shot; relighting and novel viewpoints via the integrated LoRA effects; and industrial design tasks like batch product variations, material replacement on components, and geometric annotation. Instructions can be written in English or Chinese.

It is not a text-to-image generator: at least one reference image is expected (use Qwen-Image-2512 or Z-Image Turbo for generation from scratch). And while 2511 specifically reduces drift, diffusion editing regenerates the entire frame, so regions you did not mention are visually preserved rather than byte-identical — don't use it where untouched pixels must be exact.

How Chutes serves this model

The chute (owner vonkaiser) serves the model on its own host with a single POST /generate endpoint. Requests are flat JSON with base64 image inputs, authenticated with Authorization: Bearer $CHUTES_API_KEY; responses are raw image/jpeg bytes. Defaults are the fast 4-step profile described above. In the web playground, large reference images are uploaded through temporary Blob storage automatically; over the API you always send raw base64.

FAQ

How many input images can I send?

One to three reference images per request, as raw base64 strings in the image_b64s array. Multi-image input is how you compose subjects from separate photos, such as merging two portraits into one group shot.

Why does the chute default to 4 steps when the model card uses 40?

The chute is configured as a low-latency serving profile: 4 inference steps with true_cfg_scale 1. The model card's example uses 40 steps with true_cfg_scale 4.0. Both fields are request parameters, so you can raise them for higher-fidelity edits at the cost of latency and compute.

Does it keep the parts of the image I didn't ask to change?

That is the design goal, and the 2511 release specifically targets reduced image drift and improved consistency versus 2509. It is still a generative model, though: the whole frame is regenerated, so untouched regions are visually preserved rather than byte-identical.

What license is Qwen-Image-Edit-2511 under?

Apache-2.0, per the model card's license section and the Hugging Face repo metadata. Commercial use, modification, and redistribution are permitted under standard Apache terms.

Can I write edit instructions in Chinese?

Yes. The model is trained for English and Chinese instructions, and the model card demonstrates bilingual editing.

How do I call it from code?

POST flat JSON to https://vonkaiser-qwen-image-edit-2511.chutes.ai/generate with an Authorization: Bearer header. Base64-encode your input image(s) into image_b64s, set prompt to the edit instruction, and save the response body as a JPEG.

Is this a text-to-image model?

No, it is an editing model: it expects at least one reference image and an instruction describing the change. For generation from scratch use a text-to-image chute such as Qwen-Image-2512 or Z-Image Turbo.

Sources