Skip to main content

Qwen Image Edit Spicy edits a single source image from one plain-English instruction, with no mask, strength dial or aspect ratio to set. It is uncensored, and an optional seed keeps two edits comparable.

From $0.038/image5% below the Spicy list price

Workbench

Input

Image editing
One instruction carrying both halves of the edit. Name the change, then name the pose, framing, lighting and grade that must stay identical — anything unmentioned is open to being redrawn. at least 1 characters
1/1

Drop files or media links, paste, or browse · 1 file · Max 10 MB · JPG · PNG · WEBP · GIF

  • 1
1 / 1 files
A public, directly downloadable link to an image you hold the rights to. Viewer pages and short-lived signed URLs fail; the source also caps the detail the result can have. at least 1 characters
Seed
Pass the same seed with the same image and instruction to keep the draw identical between two edits, so the only difference is what you changed; it is a comparison tool, not a promise of the same edit back. 0, or leaving it out, asks for a random one, which is what you want while trying wordings. no lower than 0 · no higher than 2147483647
Safety checkerOff

SpicyAPI does not run a safety checker on this model. Your prompt and media go to the model as written, and the model itself decides what comes back.

Checking your account before enabling submission and pricing.

Output

Ready for a new run
example-boudoir-i2iExample result

Related models and next tasks

Missing the model you need?

Tell us what to add and where you would use it. Requests go to the people who decide what gets onboarded next.

These previews show selected examples. Try your own prompt and settings in the Playground.

A three-field edit endpoint with no mask and no content declaration

Qwen Image Edit Spicy is an image editing API that takes one source image and one written instruction and returns one edited image. The whole request is three fields (image_url, prompt and seed): no mask, no strength value, no aspect ratio and no per-request content declaration. The prompt field declares no character cap, and the task runs asynchronously, so the result arrives after polling.

Open the playground
A three-field edit endpoint with no mask and no content declaration
Source image
Exactly one, passed as image_url (a string, not an array)
Instruction length
No character cap declared on prompt; one character is the minimum
Controls
prompt plus an optional seed; no mask, strength, ratio or resolution field
Output
One edited image per call, billed per output image
Content declaration
None: no maturity flag, no platform filter in front of the model
Base model line
Alibaba's Qwen-Image-Edit, open-sourced August 2025 under Apache 2.0
Schema
Three fields, and undeclared ones are rejectedimage_url, prompt and seed are the entire request. Alibaba's later Qwen-Image-Edit editions accept one to three pictures referenced by position in the instruction, so a prompt written for that shape has to be folded back into a single frame before it runs here.
Sourcing
Compose the source frame before the call, not inside itThere is no second or third reference slot. The instruction can restyle, relight and rewrite what is already in the frame, and anything else has to be described in words instead of supplied as a picture, which makes the choice of source image most of the work.
Declaration
No field decides whether a request is allowedNothing in the schema flags a request as mature or asks for a policy exception, and SpicyAPI adds no content filter of its own in front of this endpoint. Wording another editor would turn away is handled here as an ordinary edit, with the model's own boundaries deciding the result.

Working with the Qwen Image Edit Spicy API

Migrating from a masked inpainting tool

Migrating from a masked inpainting tool

A mask array and a strength value have no equivalent field here. The region you would have painted becomes a clause naming what changes, and the region you would have protected becomes a clause naming what stays, so the whole edit travels inside prompt, with no second payload to assemble.

One image per call, whatever the instruction weighs

One image per call, whatever the instruction weighs

Billing is per output image and the schema declares no batch or count field, so a request returns one edited image. An instruction that lists five preserved elements quotes the same as one that lists two, which makes over-specifying preservation the cheap side of the trade.

  • Seed belongs in your log, next to the wording

    seed takes an integer from 0 to 2147483647, and 0 or an omitted value asks for a random draw. Recording the seed beside the exact wording that produced a keeper is what lets a later call rerun that draw against a reworded instruction and see what the wording alone moved.

  • A set of frames is a set of requests

    There is no array of source images to loop over inside one call, so ten shots from a shoot become ten requests, each with its own image_url, prompt and optional seed. A failure then stays with the one frame that failed instead of taking the batch down with it.

  • Text inside the frame goes through the same prompt field

    Changing wording already visible in the photograph uses prompt like any other edit, since there is no typography parameter: the old string and the new one are quoted inside the sentence. Alibaba describes the base Qwen-Image-Edit model as adding, deleting and modifying text while preserving the original font, size and style.

  • Wardrobe work uses the same three fields

    Uncensored image edits travel through image_url, prompt and seed like any other request. There is no separate endpoint they get routed to, no maturity flag to set and no second code path to keep alive in your integration; the only thing that changes from one wardrobe pass to the next is the sentence.

Who calls the Qwen Image Edit Spicy API

  • Replace the mask payload with two clauses

    Teams porting a mask-based pipeline

    Replace the mask payload with two clauses

    An integration that sends a mask polygon and a strength float ports mechanically: the polygon's intent becomes a sentence naming the change, and the strength value's intent becomes a sentence naming what has to stay identical. The rest of the call shrinks to one URL and one optional integer.

  • Run one seed log per shoot, not per image

    Campaign and catalog production

    Run one seed log per shoot, not per image

    Keep a running record of source image, instruction and seed for every frame in a series. When a client asks for one more variant of a look that was already signed off, the log says which wording and which seed produced it, which beats reconstructing the prompt from the picture.

  • Decide by reference count before writing prompts

    Integrators choosing between this catalog's Qwen editors

    Decide by reference count before writing prompts

    Reference count settles this before prompt style does. When an element has to come from a second or third photograph, the Qwen Image 3.0 editors take image_urls as an array of up to three and cap the instruction at 5,000 characters; this endpoint takes one image_url and declares no cap at all.

  • Vary only the text between otherwise identical calls

    Localization and signage teams

    Vary only the text between otherwise identical calls

    Hold the source image and every non-text clause constant across calls and change only the quoted old and new strings. The prompt becomes a template with one variable in it, which is what makes a market-by-market batch predictable to review.

How to integrate the Qwen Image Edit Spicy API

  1. Host the one source image you will send

    image_url has to resolve to a direct, public download. A viewer page, or a link that expires before the task runs, fails at fetch time. That frame also sets the ceiling on detail, since everything the edit works from is already inside it.

  2. Write the change and the preservation as separate clauses

    One clause for what changes, one for what stays recognizably the same: pose, framing, lighting and colour grade. Anything the instruction never names is open to being redrawn, because no mask is fencing off the rest of the frame.

  3. Leave seed unset for the first few passes

    A fresh draw on every call shows what the wording alone is doing. Fix a seed once a direction is chosen, so the next comparison isolates the clause you rewrote instead of a new random pass.

  4. Submit the task and poll for a terminal state

    Submitting the task returns a handle; the pixels arrive later. Poll until the task reaches a terminal state, then read the edited image from the result, which is served from platform storage.

  5. Log the winning seed against its exact wording

    Save the seed together with the instruction that produced an approved result. That pairing is what a later rerun needs; the seed on its own, against reworded text, lands somewhere else.

  6. Split compound requests into one call each

    A wardrobe change, a relight and a text retype asked for in one instruction compete for the same single pass, and one of them usually drifts. Run them as separate calls, and return to the original frame whenever identity has to survive a long chain.

Qwen Image Edit Spicy integration patterns

  • Porting a mask-based edit to an instruction

    A prior integration painted a mask over the jacket and set strength to 0.6. The same intent here is two clauses: name the jacket's new material, then state that the face, pose, background and lighting hold.

    Change the woman's denim jacket to a fitted black leather jacket with silver zippers, keep her face, hair, pose, the background and the lighting exactly as they are
  • A signage retype reused as a template

    The source frame, the lighting clause and the preservation clause stay fixed across calls, and only the quoted storefront text changes. That is what makes the pattern reusable across a localization batch.

    Keep the storefront, the window display and the afternoon light exactly as they are, repaint only the awning text so it reads OPEN LATE instead of the current wording
  • Two changes split into two calls

    The wardrobe change goes first and its result becomes the source for the relight, so the two edits never compete inside one instruction. Keep chains like this short: identity drifts as they lengthen, and the original frame is the safer starting point once it has to hold.

    Change the time of day to early evening with warm streetlights coming on, keep her outfit, pose, the storefront and the framing from this image exactly as they are

Qwen Image Edit Spicy integration questions

Writing the instruction

Treat prompt as two lists sharing one field: what changes, and what a mask would have protected. Name pose, framing, lighting and colour grade outright when they have to survive, since nothing left out is protected by default. Keep the log a later rerun needs: every seed you kept, paired with the exact wording behind it. One source frame per call, so a whole series becomes a queue of requests you drive yourself.