Generates high-fidelity, temporally consistent videos from text or images, with readable English and Chinese text, sound effects, and customizable aspect…
Use this file to discover all available pages before exploring further.
Try Wan2.1 14B - Text to Video in the Workbench
Run this model interactively, tune parameters, and compare outputs.
Model ID:wan-ai-wan2-1-t2v-14b-diffusersWan-AI/Wan2.1-T2V-14B-Diffusers is a 14B parameter Large Vision Model (LVM) designed for high-fidelity text-to-video and image-to-video generation, including support for readable text in English and Chinese within generated videos.It excels in generating temporally consistent videos from detailed prompts, offers customizable aspect ratios, and maintains stability at both 480p and 720p resolutions across consumer-grade hardware.Some other noteworthy features of Wan-AI/Wan2.1-T2V-14B-Diffusers include prompt enhancement for improved video quality and precision, inspiration mode for artistic visual enrichment, sound effects generation, and efficient video encoding via a variational autoencoder (VAE).
Metric
Value
Parameter Count
14 billion
Mixture of Experts
No
Context Length
Unknown
Multilingual
Yes
Quantized*
No
*Quantization is specific to the inference provider and the model may be offered with different quantization levels by other providers.
Use the Workbench as a request builder: configure parameters for this model in the UI, then open the API tab to copy the exact cURL or Python call.
Sync
Async
Async with SSE
This blocks until the video is ready (typically 5-15 minutes). Prefer Async or Async with SSE for anything beyond quick experimentation.See the video generation reference for more details.
Minimal
All parameters
curl -X POST https://hub.oxen.ai/api/ai/videos/generate \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OXEN_API_KEY" \ -d '{ "model": "wan-ai-wan2-1-t2v-14b-diffusers", "prompt": "A beautiful landscape painting of a serene lake with mountains in the background and an ox in the foreground."}'
curl -X POST https://hub.oxen.ai/api/ai/videos/generate \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OXEN_API_KEY" \ -d '{ "model": "wan-ai-wan2-1-t2v-14b-diffusers", "prompt": "A beautiful landscape painting of a serene lake with mountains in the background and an ox in the foreground.", "height": 480, "width": 832, "negative_prompt": " ", "num_inference_steps": 16, "num_frames": 81, "guidance_scale": 5.0}'
# Enqueue, capture the generation id.GEN_ID=$(curl -s -X POST https://hub.oxen.ai/api/ai/queue \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OXEN_API_KEY" \ -d '{ "model": "wan-ai-wan2-1-t2v-14b-diffusers", "prompt": "A beautiful landscape painting of a serene lake with mountains in the background and an ox in the foreground."}' | jq -r '.generations[0].generation_id')# Poll until the generation reaches a terminal status.while true; do STATUS=$(curl -s -H "Authorization: Bearer $OXEN_API_KEY" \ "https://hub.oxen.ai/api/ai/queue/$GEN_ID" | jq -r '.status') echo "Status: $STATUS" case $STATUS in succeeded|failed|cancelled) break;; esac sleep 5done# Print the result.curl -s -H "Authorization: Bearer $OXEN_API_KEY" \ "https://hub.oxen.ai/api/ai/queue/$GEN_ID" | jq .
# Enqueue, capture the generation id.GEN_ID=$(curl -s -X POST https://hub.oxen.ai/api/ai/queue \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OXEN_API_KEY" \ -d '{ "model": "wan-ai-wan2-1-t2v-14b-diffusers", "prompt": "A beautiful landscape painting of a serene lake with mountains in the background and an ox in the foreground.", "height": 480, "width": 832, "negative_prompt": " ", "num_inference_steps": 16, "num_frames": 81, "guidance_scale": 5.0}' | jq -r '.generations[0].generation_id')# Poll until the generation reaches a terminal status.while true; do STATUS=$(curl -s -H "Authorization: Bearer $OXEN_API_KEY" \ "https://hub.oxen.ai/api/ai/queue/$GEN_ID" | jq -r '.status') echo "Status: $STATUS" case $STATUS in succeeded|failed|cancelled) break;; esac sleep 5done# Print the result.curl -s -H "Authorization: Bearer $OXEN_API_KEY" \ "https://hub.oxen.ai/api/ai/queue/$GEN_ID" | jq .
# Enqueue, capture the generation id.GEN_ID=$(curl -s -X POST https://hub.oxen.ai/api/ai/queue \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OXEN_API_KEY" \ -d '{ "model": "wan-ai-wan2-1-t2v-14b-diffusers", "prompt": "A beautiful landscape painting of a serene lake with mountains in the background and an ox in the foreground."}' | jq -r '.generations[0].generation_id')# Stream the SSE channel, grab the data line that follows a# media_generation_completed event for our id, and pretty-print it.curl -sN -H "Authorization: Bearer $OXEN_API_KEY" https://hub.oxen.ai/api/events \ | awk -v id="$GEN_ID" ' /^event: media_generation_completed$/ { expect=1; next } /^data: / && expect { payload = substr($0, 7) if (index(payload, "\"generation_id\":\"" id "\"")) { print payload; exit } expect = 0 } ' | jq .
# Enqueue, capture the generation id.GEN_ID=$(curl -s -X POST https://hub.oxen.ai/api/ai/queue \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OXEN_API_KEY" \ -d '{ "model": "wan-ai-wan2-1-t2v-14b-diffusers", "prompt": "A beautiful landscape painting of a serene lake with mountains in the background and an ox in the foreground.", "height": 480, "width": 832, "negative_prompt": " ", "num_inference_steps": 16, "num_frames": 81, "guidance_scale": 5.0}' | jq -r '.generations[0].generation_id')# Stream the SSE channel, grab the data line that follows a# media_generation_completed event for our id, and pretty-print it.curl -sN -H "Authorization: Bearer $OXEN_API_KEY" https://hub.oxen.ai/api/events \ | awk -v id="$GEN_ID" ' /^event: media_generation_completed$/ { expect=1; next } /^data: / && expect { payload = substr($0, 7) if (index(payload, "\"generation_id\":\"" id "\"")) { print payload; exit } expect = 0 } ' | jq .