Z-Image Turbo.

z-image-turbo implements image.generate on Windpaint. Fast text-to-image. Open-source, Apache-2.0, from $0.004 per image.

Portrait of a weathered older surfer holding a longboard on a windy beach, overcast sky, honest candid expression, 50mm lens
Portrait of a weathered older surfer holding a longboard on a windy beach, overcast sky, honest candid expression, 50mm lensZ-Image Turbo · seed 11
Status
Live
Model id
z-image-turbo
Capability
image.generate
Input
Prompt
Output
1 to 4 images
From
$0.004 per image
Developer
Alibaba (Tongyi-MAI)
Parameters
6B
Licence
Apache-2.0
Released
November 2025

Text to image, open source.

The catalog describes it as “Z-Image Turbo. Fast, 8-step text to image.” Up to 4 images per request (num_outputs), PNG, JPEG or WebP.

Text in, image out

Send a prompt and get back PNG, JPEG or WebP. There are no input images; the prompt is the whole request.

image.generate

Up to four per job

Set num_outputs from 1 to 4 for variations of one prompt. You pay per image delivered, not per request.

num_outputs

Repeatable with a seed

The same prompt, resolution, aspect ratio and seed give the same image, so you can change one setting and compare.

seed

What it costs.

Prices are fixed per output at the tier you ask for, and locked when you submit. One credit costs $0.05.

$0.004
per image at 1k1024 px long edge · 0.08 credits

Price per output. 1 credit = $0.05. Aspect ratio and output format don't change the price.

A request with num_outputs set costs the per-image price times the images delivered. If the model delivers fewer than you asked for, the rest of the hold is released.

Failed, refused and canceled jobs aren't charged. Pricing covers credits, top-ups and storage.

Request fields.

Submit to POST /v1/generation/capabilities/image.generate. A prompt. No input media. Anything outside these values returns 422.

Fields z-image-turbo accepts on image.generate.
FieldValuesDefaultNotes
prompt
string
none
Required. Sent to the model as written.
resolution
1k
1k
Sets the long edge: 1024 px.
aspect_ratio
any of the ten
1:1
Sets the short edge from the long edge.
num_outputs
1 to 4
1
Images in one job, billed per image delivered.
seed
integer
random
Same seed and same request give the same image.
output_format
png, jpeg, webp
png
Re-encoded on the server.
output_quality
1 to 100
90
jpeg and webp only.
preset
preset slug
none
Wraps your prompt in a Windpaint template.
webhook_url
https URL
none
Signed POST when the job finishes.

Pixels per tier.

The tier sets the long edge and the aspect ratio sets the other, rounded to a multiple of 16. Portrait ratios swap the edges.

Output width × height for each aspect ratio. Default 1:1.
Aspect ratio1k
1:11024 × 1024
4:31024 × 768
3:4768 × 1024
3:21024 × 688
2:3688 × 1024
16:91024 × 576
9:16576 × 1024
21:91024 × 432
4:5816 × 1024
5:41024 × 816

Call it.

Most images finish within a few seconds of being picked up, so you can send Prefer: wait and get the finished job back in the submit response instead of polling.

image.generatebash
curl -X POST https://api.windpaint.ai/v1/generation/capabilities/image.generate \  -H "Authorization: Bearer $WINDPAINT_API_KEY" \  -H "Content-Type: application/json" \  -H "Prefer: wait" \  -d '{    "model": "z-image-turbo",    "prompt": "a ceramic teapot on a linen tablecloth, soft window light",    "resolution": "1k",    "aspect_ratio": "3:2",    "seed": 7  }'
By model: /v1/generation/models/z-image-turbobash
curl -X POST https://api.windpaint.ai/v1/generation/models/z-image-turbo \  -H "Authorization: Bearer $WINDPAINT_API_KEY" \  -H "Content-Type: application/json" \  -d '{"prompt": "a ceramic teapot on a linen tablecloth", "num_outputs": 4}'
outputs[0]json
{  "id": "d77a4c1e-9b2f-4a3d-8e6f-7a8b9c0d1e2f",  "url": "https://api.windpaint.ai/v1/generation/assets/d77a4c1e-.../content",  "content_type": "image/png",  "width": 1024,  "height": 688,  "duration_s": null}

The submit returns 202 with a request_id and a status_url. Send an Idempotency-Key header so a retried submit returns the first job instead of billing a second. Each output is an asset in your project; its id can go straight into another job's inputs, for example as the start frame of a video.

Z-Image Turbo prompt guide.

Windpaint sends your prompt to the model as written. There's no prompt rewriting and no negative prompt field. Plan to try a few seeds.

  1. Subject first

    Start with what the image is of, then the setting, then lighting, camera and style. The model pays most attention to what comes early.

  2. Name the medium

    Say "studio product photo", "35mm film photo" or "flat vector icon". Without it, the model picks one.

  3. Say what you want

    There's no negative prompt, and writing "no people" can make people more likely. Describe the scene you want instead.

  4. Quote any text

    Put words in quotes and say where they go. Short text works better than long text; check the letters in the result.

Example prompts from the Windpaint prompting guide.
UsePromptSettings
Product shot
“A matte black ceramic coffee mug on a pale oak table, studio product photo, soft light from the left, plain light grey background, shallow depth of field”
1k, 1:1
Editorial photo
“A fisherman mending a green net on a wooden dock at dawn, low fog over the water, muted colors, 35mm film photo, natural light”
1k, 3:2
Illustration
“Flat vector illustration of a bicycle courier riding through a city at night, limited palette of navy, orange and cream, clean shapes, no outlines”
1k, 4:5
Cinematic still
“A paper boat floating on a rain-soaked city street at dusk, puddles reflecting warm shop lights, low camera angle, cinematic photo”
1k, 16:9

From Alibaba (Tongyi-MAI)'s own prompt tooling and examples. Their prompt enhancer isn't applied on Windpaint, but you can follow the same advice when you write the prompt.

  • The official prompt-enhancer template copies any text to render word for word and wraps it in English double quotes. For posters, menus and UI it writes out all of the text along with its font and layout. Z-Image-Turbo demo Space, pe.py
  • The same template keeps the user's core elements (subject, count, action, state, named IPs, colours, text) and adds composition, lighting, materials, colour scheme and spatial layering. It writes objective, concrete descriptions with no metaphors and no meta tags such as "8K" or "masterpiece". Z-Image-Turbo demo Space, pe.py
  • The card lists bilingual text rendering (English and Chinese). Its example prompt is a run of short, concrete visual phrases covering subject, clothing, props, lighting and background. Z-Image-Turbo model card

Ready-made styles.

A preset wraps your prompt in a Windpaint template and fills settings you leave out. Add "preset": "product-shot", or pin a version with @1. The price is the same as without one. Each swatch is a real output of its preset, with the subject that was sent.

  • A matte mint-green ceramic pour-over coffee set

    Product shot on seamlessA matte mint-green ceramic pour-over coffee setproduct-shot 1:1 · seed 42

  • Two astronauts sharing a thermos on a dusty red ridge

    Cinematic stillTwo astronauts sharing a thermos on a dusty red ridgecinematic-still 16:9 · seed 11

  • A tiny rooftop greenhouse cafe

    Isometric illustrationA tiny rooftop greenhouse cafeisometric-illustration 1:1 · seed 11

  • A boy waiting at a rural bus stop in the rain beside a giant moss-covered stag spirit

    Anime key artA boy waiting at a rural bus stop in the rain beside a giant moss-covered stag spiritanime-key-art 2:3 · seed 202

  • A ceramicist in her studio with clay on her hands

    Editorial portraitA ceramicist in her studio with clay on her handseditorial-portrait 4:5 · seed 42

  • A city park on a sunny Sunday

    Flat vector illustrationA city park on a sunny Sundayflat-illustration 4:3 · seed 11

  • A bowl of spicy miso ramen with soft eggs

    Overhead food photoA bowl of spicy miso ramen with soft eggsfood-overhead 4:5 · seed 42

Z-Image Turbo limitations.

Current limits on Windpaint, as the docs state them, then the ones the developer states for the model itself.

  • No input images. Sending inputs, duration or quality returns 422.
  • No negative prompt field. Describe what you want in the frame instead.
  • One tier, 1k. Any other resolution returns 422.
  • The seed is not reported when you leave it out, so send one if you might want the image again.

From the developer:

  • The comparison table on the Z-Image card marks Turbo with no CFG, no negative prompting, low diversity and no fine-tunability. The undistilled Z-Image is the one meant for fine-tuning. Z-Image model card

Where it runs.

z-image-turbo is an open-source model licensed Apache-2.0.

Windpaint runs it on our own GPUs. Your prompts and inputs aren't sent to a third-party model API to make these outputs, and Windpaint doesn't train on your prompts, inputs or outputs.

Outputs are stored as assets in your project for your organization's retention period, 7 days by default. See Trust for moderation, data use and retention.

Is Z-Image Turbo licensed for commercial use?

Licence: Apache-2.0.

Yes. Apache-2.0 allows commercial use, including running the model behind a paid API, with no revenue or user caps.

  • Apache-2.0 for the weights (card metadata) and the code (the repo LICENSE is the unmodified Apache 2.0 text). No extra terms are added. Z-Image repo, LICENSE

This is our reading of the licence, not legal advice. Read the licence text before you rely on it.

Z-Image Turbo VRAM requirements.

Published by Alibaba (Tongyi-MAI) for running the weights yourself. These aren't Windpaint's figures: Windpaint runs z-image-turbo on its own GPUs, so you don't need any of this to call it.

Published VRAM
Fits within 16 GB
Applies to
16GB-VRAM consumer devices, bf16 weights. CPU offload shown for memory-constrained devices.
  • The card says Z-Image-Turbo fits within 16GB-VRAM consumer devices. Z-Image-Turbo model card
  • The card's example loads the weights in bfloat16 (its comment: use bf16 on supported GPUs). For memory-constrained devices it shows CPU offload with pipe.enable_model_cpu_offload(). Z-Image-Turbo model card
  • Optional settings in the card's example: a Flash-Attention-2 or Flash-Attention-3 attention backend, and compiling the DiT with pipe.transformer.compile(). The card notes the first compiled run takes longer. Z-Image-Turbo model card
  • The official README's Community Works section says stable-diffusion.cpp, a third-party C++ engine, can run Z-Image on machines with as little as 4GB of VRAM, and that DiffSynth-Studio supports low-VRAM inference for Z-Image. These are community tools, not Tongyi-MAI releases, and the README doesn't say which Z-Image checkpoint each was tested with. Z-Image repo

Z-Image Turbo native resolution.

What the developer's own code and examples use. On Windpaint, the tiers and aspect ratios in output sizes apply instead.

  • The repo's inference config defaults to 1024 × 1024, as does the card's example. Z-Image repo, inference.py
  • The official demo Space has three size categories (1024, 1280, 1536), each with 1:1, 9:7, 7:9, 4:3, 3:4, 3:2, 2:3, 16:9, 9:16, 21:9 and 9:21 presets. Examples: 1024 × 1024, 1280 × 720, 1344 × 576 (21:9), 1536 × 1536, 2048 × 1152 (16:9), 1152 × 2048 (9:16). Z-Image-Turbo demo Space, app.py

Recommended settings for Z-Image Turbo.

Steps, guidance and defaults from the developer's card and code. The Windpaint API doesn't take steps or guidance; these are for running the weights yourself.

  • num_inference_steps=9 (the card's comment says this gives 8 DiT forward passes, matching its 8 NFEs) and guidance_scale=0.0. The card says guidance should be 0 for the Turbo models. Z-Image-Turbo model card
  • Repo inference defaults: 1024 × 1024, 8 steps, guidance 0.0, cfg truncation 1.0, max sequence length 512. Z-Image repo, inference.py
  • The official demo uses a FlowMatchEulerDiscreteScheduler with time shift 3.0, and its steps slider is fixed at 8. Z-Image-Turbo demo Space, app.py

Questions.

How much does z-image-turbo cost?

0.08 credits ($0.004) per image at 1k. Aspect ratio and output format don't change the price. A request with num_outputs set costs the per-image price times the images delivered. The 200 signup credits cover 2,500 images at 1k.

Is z-image-turbo open source?

Yes. Z-Image Turbo's weights are licensed Apache-2.0, an OSI-approved open-source licence. Windpaint runs it on its own GPUs; your prompts and inputs are not sent to a third-party model API, and Windpaint does not train on them.

Am I charged if a job fails?

No. The price is held when you submit and captured only if the job completes. A failed, refused (nsfw) or canceled job releases the hold in full.

Can I pass a reference image or edit an image?

No. On Windpaint z-image-turbo is text-to-image only and takes no input assets; sending inputs returns 422. Image editing is defined in the API as image.edit but has no model yet.

Why does a different aspect ratio change the image with the same seed?

The model starts from noise the size of the output, so a different aspect ratio is a different starting point. Keep the ratio fixed while you work on the prompt.

Can I get an exact pixel size?

The tier sets the long edge and the aspect ratio sets the other, rounded to a multiple of 16, so some sizes are slightly off the exact ratio. Crop afterwards if you need an exact size. POST /v1/generation/estimate returns width and height before you pay.

How much VRAM does Z-Image Turbo need?

The model card says it fits within 16GB-VRAM consumer devices. It also shows a CPU-offload option for memory-constrained devices. That's for running the weights yourself. On Windpaint the model runs on Windpaint's GPUs.

Is Z-Image Turbo free for commercial use?

Yes. It's released under Apache-2.0, which allows commercial use.

What resolution should I use with Z-Image Turbo?

The card's example uses 1024x1024. The official demo has presets in three size tiers (1024, 1280 and 1536) across eleven aspect ratios, from 1024x1024 up to 1536x1536 and 2048x1152. On Windpaint, the 1k tier sets the long edge to 1024 px, in ten aspect ratios.

Does Z-Image Turbo have a prompt enhancer?

Yes. The official demo ships a prompt-enhancer template that expands a short prompt into a detailed visual description and puts any text to render in double quotes. Windpaint sends your prompt to the model as written, with no rewriting.

Does Z-Image Turbo support negative prompts?

No. The comparison table on the Z-Image card lists negative prompting and CFG as unsupported for Turbo. The undistilled Z-Image supports both.

Start yours.

Request early access. We’ll email you when your account is approved, with 200 free credits to spend in the first 30 days.