WAN 2.5 Text-to-Image turns text prompts into AI-generated images with the WAN 2.5 model for on-demand image creation. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
Idle

$0.03per run·~33 / $1

A Sumi-e Inspired Watercolor portrayal of warrior, blending traditional East Asian ink wash techniques with modern watercolor splashes. Use primarily red with accents of yellow for a minimalist yet expressive composition

A full-body shot of an Asian model with sharp, defined facial features and wet, slicked-back hair, her gaze is firm and direct. She is wearing an asymmetrical, sculptural, heavy-fabric pure white dress. The background is a minimalist concrete architecture with harsh light and shadow play. Dramatic, hard lighting, like intense afternoon sun, creates clean, long shadows. In the style of Peter Lindbergh, shot on a Hasselblad medium format camera, black and white photography, fine-grained, hyperrealistic, 8K.

A fair-skinned model with classical beauty, lounging on a velvet chaise lounge, surrounded by old books and withered roses. She is wearing a baroque-style lace gown, her expression is languid and contemplative. The scene is a dim, old library, with a single stream of Rembrandt-style light from a side window illuminating her face and figure. Composition inspired by a John William Waterhouse painting, rich in narrative. The overall tones are deep and heavy, with strong chiaroscuro, creating an oil painting texture and detail.

Close-up portrait of a model whose face is partially covered in flowing liquid metal or an iridescent, second-skin-like substance. She has otherworldly, light purple eyes and stares directly into the camera. The background is completely blurred out, leaving only a soft halo of light. The lighting is even and ethereal, as if from a bioluminescent source. Inspired by the style of Nick Knight, the image emphasizes surreal textures and subtle color gradients, exceptionally sharp, with breathtaking detail, 16K.

A group of friends laughing together at an outdoor café in the city, one wearing sunglasses, another holding a smartphone, stylish but casual outfits, natural light, authentic street photography style.

A young male model standing in front of a minimalist concrete wall, wearing oversized streetwear hoodie, cargo pants, and white sneakers, hands in pockets, casual but stylish pose, editorial fashion photography, hyper realistic details

A young businessman standing near a modern glass building, wearing a dark suit and tie, looking confident, golden hour lighting, realistic fashion photography, urban city background, professional but natural style.

A professional man in his 40s, neatly groomed beard, wearing a tailored gray suit, standing confidently in a modern office lobby, realistic corporate headshot, clean lighting, natural expression.

An astronaut in a spacesuit walking on the red desert of Mars, a giant dust storm rising behind, Earth is a tiny blue dot in the vast black sky. Cinematic, wide-angle shot, 4K, Interstellar movie style.

An exhausted ballerina in a haute couture gown, sitting in an empty subway car, her pointe shoes resting on the seat beside her. The city's nightscape rushes by outside the window. The atmosphere is quiet and lonely after a performance. In the style of candid documentary photography, lit by the carriage's fluorescent lights, cool color palette, photorealistic detail, 8K.

A fit man, mid-workout, is captured in a dynamic shot as he drinks water. Sweat glistens on his muscular physique, prominently highlighting his defined abs and biceps. The water he's drinking is dramatically rendered, showing the splash and movement as it enters his mouth, conveying refreshment and exertion.

Futuristic landmark tower with parametric façade, mirror metal + glass, sunrise above cloud sea, dramatic skyline, competition-grade visualization, realistic materials, cinematic depth

Scandinavian living room, pale wood floor, off-white walls, furniture: a light gray sectional sofa, a minimalist round coffee table, and a simple black floor lamp, large window natural light, balanced composition, architectural wide-angle render, tidy styling, cozy and airy
![[High-end Wireless Headphones], centered on pure white background, studio high-key lighting, crisp hard shadow, commercial packshot, 35mm perspective, ultra-sharp details, subtle floor reflection, dust-free, 8k, realistic product photography](https://static.wavespeed.ai/media/images/1783681778795063984_XsdrAJS2.webp)
[High-end Wireless Headphones], centered on pure white background, studio high-key lighting, crisp hard shadow, commercial packshot, 35mm perspective, ultra-sharp details, subtle floor reflection, dust-free, 8k, realistic product photography
![Lookbook photo of a model wearing a [dark leather bomber jacket], minimalist studio, soft side light, confident pose, magazine cover aesthetic, clean backdrop, subtle film grain, high fashion. With a "Fashion Magazine" book name in art word style at the bottom](https://static.wavespeed.ai/media/images/1783681780467325196_42q0ajsC.webp)
Lookbook photo of a model wearing a [dark leather bomber jacket], minimalist studio, soft side light, confident pose, magazine cover aesthetic, clean backdrop, subtle film grain, high fashion. With a "Fashion Magazine" book name in art word style at the bottom

A high-impact and cinematic push-in shot of a Tyrannosaurus Rex roaring ferociously on a chaotic battlefield. The camera dollys in rapidly, slightly tilting up to emphasize the creature's immense size and power. The T-Rex stomps the ground, causing a violent screen shake, while its deafening roar sends a shockwave through the air. As it moves, debris from explosions fall down around it, with fires flickering and growing in the background. Dramatic sunlight rays pierce through the stormy clouds, casting a powerful lens flare, and dust particles float in the air as a raw and chaotic atmosphere envelops the entire scene. A dynamic shot of a lone samurai warrior running at high speed through a field of cosmos flowers. The camera, in a fast-paced tracking shot, follows the subject from behind, getting low to the ground. The warrior's hair and clothes are whipping dramatically in the wind. As they run, the flowers and their petals fly up and swirl around the character, creating a dreamy and chaotic visual. The sun is setting behind them, casting a warm glow and lens flare that enhances the epic and cinematic feel of the scene.
WAN 2.5 is a cutting-edge text-to-image model on Cloud’s DashScope. It generates high-quality, detailed images directly from text prompts and supports multiple output resolutions.
Grab a WaveSpeedAI API key, then call POST https://api.wavespeed.ai/api/v3/alibaba/wan-2.5/text-to-image with your input as JSON. The endpoint returns a prediction id. Start polling the result endpoint around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. On completed, read output values from data.outputs. Examples for Wan 2.5 Text To Image below.
set -euo pipefail
: "${WAVESPEED_API_KEY:?Set WAVESPEED_API_KEY}"
REQUEST_BODY=$(cat <<'JSON'
{
"prompt": "A cinematic shot of a city at sunset, soft golden light",
"size": "1024*1024",
"enable_prompt_expansion": false,
"seed": -1
}
JSON
)
# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
-X POST "https://api.wavespeed.ai/api/v3/alibaba/wan-2.5/text-to-image" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $WAVESPEED_API_KEY" \
-d "$REQUEST_BODY")
TASK=$(printf '%s' "$SUBMIT_RESPONSE" | jq 'if has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "$TASK" | jq -r '.id')
if [ -z "$PREDICTION_ID" ] || [ "$PREDICTION_ID" = "null" ]; then
printf 'Submission response did not contain a prediction id
' >&2
exit 1
fi
RESULT_URL=$(printf '%s' "$TASK" | jq -r '.urls.get // empty')
if [ -z "$RESULT_URL" ]; then
RESULT_URL="https://api.wavespeed.ai/api/v3/predictions/$PREDICTION_ID/result"
fi
# 2. Poll until the prediction finishes.
while true; do
RESPONSE=$(curl --silent --show-error --fail-with-body "$RESULT_URL" \
-H "Authorization: Bearer $WAVESPEED_API_KEY")
RESULT=$(printf '%s' "$RESPONSE" | jq 'if has("data") then .data else . end')
STATUS=$(printf '%s' "$RESULT" | jq -r '.status')
case "$STATUS" in
completed) printf '%s\n' "$RESULT" | jq '.outputs'; break ;;
failed|cancelled|timeout) printf '%s\n' "$RESULT" | jq . >&2; exit 1 ;;
created|processing) sleep 2 ;;
*) printf 'Unexpected status: %s
' "$STATUS" >&2; exit 1 ;;
esac
doneconst submitUrl = "https://api.wavespeed.ai/api/v3/alibaba/wan-2.5/text-to-image";
const apiKey = process.env.WAVESPEED_API_KEY;
if (!apiKey) throw new Error('Set WAVESPEED_API_KEY');
async function requestJson(url, options = {}) {
const response = await fetch(url, options);
if (!response.ok) throw new Error(await response.text());
return response.json();
}
// 1. Submit the prediction.
const body = await requestJson(submitUrl, {
method: "POST",
headers: {
"Authorization": `Bearer ${apiKey}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"prompt": "A cinematic shot of a city at sunset, soft golden light",
"size": "1024*1024",
"enable_prompt_expansion": false,
"seed": -1
}),
});
const task = body.data ?? body;
if (!task.id) throw new Error("Submission response did not contain a prediction id");
const resultUrl = task.urls?.get ||
`https://api.wavespeed.ai/api/v3/predictions/${task.id}/result`;
// 2. Poll until the prediction finishes.
while (true) {
const resultBody = await requestJson(resultUrl, {
headers: { "Authorization": `Bearer ${apiKey}` },
});
const result = resultBody.data ?? resultBody;
if (result.status === "completed") {
console.log(result.outputs);
break;
}
if (["failed", "cancelled", "timeout"].includes(result.status)) throw new Error(JSON.stringify(result));
if (!["created", "processing"].includes(result.status)) throw new Error("Unexpected status: " + result.status);
await new Promise(resolve => setTimeout(resolve, 2000));
}import json
import os
import time
from urllib.request import Request, urlopen
api_key = os.environ["WAVESPEED_API_KEY"]
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
payload = {
"prompt": "A cinematic shot of a city at sunset, soft golden light",
"size": "1024*1024",
"enable_prompt_expansion": False,
"seed": -1
}
def request_json(url, data=None):
request = Request(url, data=data, headers=headers, method="POST" if data else "GET")
with urlopen(request) as response:
return json.load(response)
# 1. Submit the prediction.
body = request_json("https://api.wavespeed.ai/api/v3/alibaba/wan-2.5/text-to-image", json.dumps(payload).encode())
task = body.get("data", body)
if not task.get("id"):
raise RuntimeError("Submission response did not contain a prediction id")
result_url = task.get("urls", {}).get("get") or f"https://api.wavespeed.ai/api/v3/predictions/{task['id']}/result"
# 2. Poll until the prediction finishes.
while True:
result_body = request_json(result_url)
result = result_body.get("data", result_body)
status = result.get("status")
if status == "completed":
print(result.get("outputs", []))
break
if status in {"failed", "cancelled", "timeout"}:
raise RuntimeError(result)
if status not in {"created", "processing"}:
raise RuntimeError(f"Unexpected status: {status}")
time.sleep(2)Wan 2.5 Text To Image is a Alibaba model for image generation, exposed as a REST API on WaveSpeedAI. WAN 2.5 Text-to-Image turns text prompts into AI-generated images with the WAN 2.5 model for on-demand image creation. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing. You can call it programmatically or try it from the playground above.
POST your input parameters to the model's REST endpoint (shown in the API tab of this playground) with your WaveSpeedAI API key in the Authorization header. Submission returns a prediction ID. Poll the result endpoint starting around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. The playground generates production-oriented Python, JavaScript, and cURL examples with timeouts, transient-error handling, and safe GET retries. Full request/response shape is documented at https://wavespeed.ai/docs/docs-api/alibaba/alibaba-wan-2.5-text-to-image.
Wan 2.5 Text To Image starts at $0.030 per run. That figure is the base price — the final charge scales with the parameters you set in the form (output size, length, count, references, or whatever knobs this model exposes), so a higher-quality or larger output costs more than a minimal one. The exact cost for your current input is shown live next to the Generate button before you submit, and the actual per-call charge is recorded on the prediction afterwards.
Key inputs: `prompt`, `size`, `seed`, `negative_prompt`, `enable_prompt_expansion`. The full JSON schema (types, defaults, allowed values) is rendered above the Generate button and mirrored in the API reference at https://wavespeed.ai/docs/docs-api/alibaba/alibaba-wan-2.5-text-to-image.
Median end-to-end generation time on WaveSpeedAI is around 11 seconds per request, based on recent successful runs. Queue time varies with global demand; live status is visible in the prediction record.
Commercial usage rights depend on the model's license, set by its provider (Alibaba). The license summary appears on the model card above; see WaveSpeedAI's Terms of Service for platform-level conditions.