A focused Python SDK and MCP server for the Wan 3.0 API on MuAPI. It supports text-to-video, image-to-video, multimodal reference-to-video (up to 10 reference images, 5 reference videos, and 5 reference audios), synchronized audio, file upload, and asynchronous job polling.
▶ Watch: How to Access Wan 3.0 API - Best Uncensored Alternative to Seedance 2
- Wan 3 on MuAPI — Model landing page for Wan video-generation workflows.
- MuAPI video-generation docs — Unified API request and polling patterns.
- awesome-ai-video-models — compare AI video models by API, price, and speed.
- Open-Generative-AI — open-source AI media studio for image and video workflows.
- Seedance-2-API — Python SDK for ByteDance Seedance video generation.
- Veo-4-API — Python SDK for Google Veo AI video generation.
- Flux-3-Dev-API — Python SDK for FLUX 3 image and video generation.
- Generative-Media-Skills — agent-ready skills for automated media workflows.
- muapi-cli — command-line access to MuAPI image, video, and audio models.
- wan-3.0-comfyui — ComfyUI custom nodes for Wan 3.0 text-to-image, image edit, text-to-video, and image-to-video via MuAPI.
git clone https://github.com/Anil-matcha/Wan-3.0-API.git
cd Wan-3.0-API
pip install -r requirements.txt
cp .env.example .envSet MUAPI_API_KEY in .env. Set WAN_API_BASE_URL only if you use a compatible provider other than the default MuAPI base URL.
from wan_api import WanAPI
api = WanAPI()
job = api.text_to_video(
"A cinematic tracking shot of a red fox crossing a snowy forest at sunrise",
resolution="720p",
aspect_ratio="16:9",
duration=5,
)
result = api.wait_for_completion(job["request_id"])
print(result)job = api.image_to_video(
prompt="The subject turns toward camera as a gentle breeze moves their hair.",
image_url="https://example.com/reference.jpg",
aspect_ratio="9:16",
duration=5,
)job = api.reference_to_video(
prompt="The person from the reference image walks into the room shown in the reference video.",
images_list=["https://example.com/character.jpg"],
videos_list=["https://example.com/room.mp4"],
resolution="720p",
duration=5,
)| Method | Purpose |
|---|---|
text_to_video() |
Create a video with synchronized audio from a text prompt. |
image_to_video() |
Animate a source image, with optional end-frame guidance via last_image. |
reference_to_video() |
Condition a video on up to 10 reference images, 5 reference videos, and 5 reference audios. |
upload_file() |
Upload a local reference file. |
get_result() / wait_for_completion() |
Retrieve an asynchronous job's output. |
Every method also accepts resolution (480p, 720p, 1080p), duration (2-30 seconds), thinking_mode (deeper reasoning for complex prompts), enable_audio, and seed.
Expose Wan tools to MCP-capable clients:
python mcp_server.pyThe server provides text_to_video, image_to_video, reference_to_video, and get_task_status tools.
The client uses the wan3.0-text-to-video, wan3.0-image-to-video, and wan3.0-reference-to-video paths beneath WAN_API_BASE_URL. If your provider names its endpoints differently, pass that provider's compatible base URL or adapt the small client module before use.
