WAN 2.2 generates super-detailed images from text prompts and supports custom LoRAs for fine-grained style and subject control. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
대기 중

$0.025실행당·~40 / $1

An ethereal female elf with long platinum-blonde hair and pointed ears, wearing an elegant dress made of leaves and vines. She stands barefoot in an ancient forest illuminated by magical light spots, one hand gently touching a glowing mushroom. Her expression is otherworldly and curious. Dreamy soft focus, Tyndall effect light beams filtering through the canopy, magical realism photography.

photo of a young chinese woman in her 20s, with shoulder-length wavy black hair and light makeup, sitting by the window in a vintage coffee shop, wearing a cozy beige sweater, holding a latte with both hands, gazing outside with a serene and focused expression, afternoon sunlight streams through the blinds creating soft light and shadow on her face, close-up shot, shallow depth of field, warm and healing mood, hyperrealistic, shot on Sony A7IV, 50mm f/1.8 lens.

a powerful close-up portrait of an 80-year-old Tibetan grandmother, her face is a canvas of deep wrinkles, weathered tan skin, her eyes are deep-set and kind, with a gentle smile, wearing a traditional Tibetan hat, dramatic Rembrandt lighting from the side, highlighting the texture and contour of her face against a dark, plain background, emotionally rich, hyper-detailed skin texture.

a capable 45-year-old female scientist, with her hair in a bun, wearing safety goggles and a white lab coat, standing in a modern, high-tech laboratory, holding a test tube and observing the liquid inside with a sharp, focused gaze, sophisticated instruments and data screens in the background, bright and clean lighting, professional and technological mood.

Wide-angle shot of a determined middle-aged male mountaineer standing on a snowy summit at sunrise, with a magnificent sea of clouds in the background. He is wearing professional climbing gear, his face is weathered, and his beard has frost on it, but his eyes show immense joy and accomplishment. He holds a trekking pole, gazing into the distance. Warm, epic, and holy lighting.

Documentary black and white street photography, **in the style of Henri Cartier-Bresson**. An elderly newspaper vendor is leaning against his stand, **lighting a cigarette in a fleeting moment between crowds**. He wears an old newsboy cap, **his weathered face has deep wrinkles**, his eyes are tired but sharp. The background shows a blurred New York street with pedestrians.

B0x13ng Boxing Video,Two male professional boxers in a brightly lit ring. The boxer on the left, an African man, throws a **powerful right hook**, his glove **making solid impact** with the Caucasian boxer's cheek. The impacted boxer's **facial muscles are distorted from the force**, with **sweat and spit flying from his mouth in a visible spray**. The **harsh overhead stadium lights** create **dramatic, high-contrast shadows**, highlighting the glistening muscle definition and sweat beads. The crowd in the background is blurred with camera flashes.

f4nt4sy_sc3n3 fantasy landscape,Epic landscape photography, a masterpiece. View from the summit of a high peak in the Swiss Alps, overlooking a **sea of rolling clouds** that fills the valley below. The **first light of sunrise** is breaking from behind a distant peak, casting **golden rays that rim-light the edges of the clouds** and create **dramatic crepuscular rays (Tyndall effect)**. The air is crisp and clear, with the sky graduating from deep blue to fiery orange. In the foreground, snow-dusted rocks add a sense of scale and depth.

l3g0_5ty13 Lego animation style, A cute 3D artwork. In a softly lit child's bedroom, a felt-textured teddy bear, a plush bunny rabbit, and a small wool felt lamb are sitting around a miniature table, having a tea party. Tiny teacups and cookies are on the table. Afternoon sunlight streams through a sheer curtain, casting warm light spots on the floor. The scene is filled with a dreamy and heartwarming feeling.
Wan-2.2-LoRA builds upon the acclaimed Wan 2.2 text-to-image model by introducing full LoRA (Low-Rank Adaptation) compatibility — empowering creators to fine-tune visuals with personalized styles, characters, or aesthetics. It combines Wan’s signature cinematic rendering and world-class detail synthesis with the flexibility of custom-trained LoRAs.
.safetensors LoRA weights directly from Civitai, Hugging Face.<owner>/<model-name> or direct .safetensors URLs-1 = random)..safetensors format.Grab a WaveSpeedAI API key, then call POST https://api.wavespeed.ai/api/v3/wavespeed-ai/wan-2.2/text-to-image-lora 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.2 Text To Image Lora 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",
"seed": -1,
"output_format": "jpeg"
}
JSON
)
# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
-X POST "https://api.wavespeed.ai/api/v3/wavespeed-ai/wan-2.2/text-to-image-lora" \
-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/wavespeed-ai/wan-2.2/text-to-image-lora";
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",
"seed": -1,
"output_format": "jpeg"
}),
});
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",
"seed": -1,
"output_format": "jpeg"
}
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/wavespeed-ai/wan-2.2/text-to-image-lora", 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.2 Text To Image Lora is a WaveSpeedAI model for AI inference, exposed as a REST API on WaveSpeedAI. WAN 2.2 generates super-detailed images from text prompts and supports custom LoRAs for fine-grained style and subject control. 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/wavespeed-ai/wan-2.2-text-to-image-lora.
Wan 2.2 Text To Image Lora starts at $0.025 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`, `enable_base64_output`, `enable_sync_mode`, `high_noise_loras`. 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/wavespeed-ai/wan-2.2-text-to-image-lora.
Median end-to-end generation time on WaveSpeedAI is around 10 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 (WaveSpeedAI). The license summary appears on the model card above; see WaveSpeedAI's Terms of Service for platform-level conditions.