Skip to main content

CLI tool for Tongyi Wansiang AI Video Generation via AceDataCloud API

Project description

Wan CLI

PyPI version PyPI downloads Python 3.10+ License: MIT

A command-line tool for AI video generation using Tongyi Wansiang through the AceDataCloud API.

Generate AI videos directly from your terminal — no MCP client required.

Features

  • Video Generation — Generate videos from text prompts with multiple models
  • Image-to-Video — Create videos from reference images
  • Multiple Models — wan2.6-t2v, wan2.6-i2v, wan2.6-i2v-flash, wan2.6-r2v
  • Task Management — Query tasks, batch query, wait with polling
  • Rich Output — Beautiful terminal tables and panels via Rich
  • JSON Mode — Machine-readable output with --json for piping

Quick Start

1. Get API Token

Get your API token from AceDataCloud Platform:

  1. Sign up or log in
  2. Navigate to the Wan API page
  3. Click "Acquire" to get your token

2. Install

# Install with pip
pip install wan-cli

# Or with uv (recommended)
uv pip install wan-cli

# Or from source
git clone https://github.com/AceDataCloud/WanCli.git
cd WanCli
pip install -e .

3. Configure

# Set your API token
export ACEDATACLOUD_API_TOKEN=your_token_here

# Or use .env file
cp .env.example .env
# Edit .env with your token

4. Use

# Generate a video from text
wan generate "Astronauts shuttle from space to volcano"

# Generate from reference image
wan image-to-video "Animate this scene" -i https://example.com/photo.jpg

# Check task status
wan task <task-id>

# Wait for completion
wan wait <task-id> --interval 5

# List available models
wan models

Commands

Command Description
wan generate <prompt> Generate a video from a text prompt
wan image-to-video <prompt> -i <url> Generate a video from a reference image
wan task <task_id> Query a single task status
wan tasks <id1> <id2>... Query multiple tasks at once
wan wait <task_id> Wait for task completion with polling
wan models List available Wan models
wan resolutions List available resolutions
wan config Show current configuration

Global Options

--token TEXT    API token (or set ACEDATACLOUD_API_TOKEN env var)
--version       Show version
--help          Show help message

Most commands support:

--json                        Output raw JSON (for piping/scripting)
--model TEXT                  Wan model version (default: wan2.6-t2v)
--resolution TEXT             Output resolution: 480P, 720P, 1080P
--duration TEXT               Duration in seconds: 5, 10, 15
--shot-type TEXT              Shot type: single, multi
--audio/--no-audio            Whether the video has sound
--prompt-extend/--no-prompt-extend  Enable prompt intelligent rewriting

Available Models

Model Type Notes
wan2.6-t2v Text-to-Video Text-to-video generation (default)
wan2.6-i2v Image-to-Video Image-to-video generation
wan2.6-i2v-flash Image-to-Video Flash Fast image-to-video generation
wan2.6-r2v Reference-to-Video Reference video-to-video generation

Configuration

Environment Variables

Variable Description Default
ACEDATACLOUD_API_TOKEN API token from AceDataCloud Required
ACEDATACLOUD_API_BASE_URL API base URL https://api.acedata.cloud
WAN_DEFAULT_MODEL Default model wan2.6-t2v
WAN_REQUEST_TIMEOUT Timeout in seconds 1800

Development

Setup Development Environment

git clone https://github.com/AceDataCloud/WanCli.git
cd WanCli
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev,test]"

Run Tests

pytest
pytest --cov=wan_cli
pytest tests/test_integration.py -m integration

Code Quality

ruff format .
ruff check .
mypy wan_cli

Docker

docker pull ghcr.io/acedatacloud/wan-cli:latest
docker run --rm -e ACEDATACLOUD_API_TOKEN=your_token \
  ghcr.io/acedatacloud/wan-cli generate "Astronauts shuttle from space to volcano"

Project Structure

WanCli/
├── wan_cli/                # Main package
│   ├── __init__.py
│   ├── __main__.py            # python -m wan_cli entry point
│   ├── main.py                # CLI entry point
│   ├── core/                  # Core modules
│   │   ├── client.py          # HTTP client for Wan API
│   │   ├── config.py          # Configuration management
│   │   ├── exceptions.py      # Custom exceptions
│   │   └── output.py          # Rich terminal formatting
│   └── commands/              # CLI command groups
│       ├── video.py           # Video generation commands
│       ├── task.py            # Task management commands
│       └── info.py            # Info & utility commands
├── tests/                     # Test suite
├── Dockerfile                 # Container image
├── deploy/                    # Kubernetes deployment configs
├── .env.example               # Environment template
├── pyproject.toml             # Project configuration
└── README.md

License

This project is licensed under the MIT License — see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wan_cli-2026.4.5.0.tar.gz (13.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wan_cli-2026.4.5.0-py3-none-any.whl (13.9 kB view details)

Uploaded Python 3

File details

Details for the file wan_cli-2026.4.5.0.tar.gz.

File metadata

  • Download URL: wan_cli-2026.4.5.0.tar.gz
  • Upload date:
  • Size: 13.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for wan_cli-2026.4.5.0.tar.gz
Algorithm Hash digest
SHA256 ba317b02b73d2f58af547f147fb534885c9f9cebd424db646ec91c3985732c72
MD5 05749ea422b045db69e196f51cb53074
BLAKE2b-256 e8071317a1e253f18255327aec559f59c66c5b2668df9d5e933f32f946d05b83

See more details on using hashes here.

File details

Details for the file wan_cli-2026.4.5.0-py3-none-any.whl.

File metadata

  • Download URL: wan_cli-2026.4.5.0-py3-none-any.whl
  • Upload date:
  • Size: 13.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for wan_cli-2026.4.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 913ea8a0edb66ee66f59f41290e1c0a23113e6577a6c3fca785374e80a017e5a
MD5 f05b9182425f3231632c6ff85a2b6ae4
BLAKE2b-256 61453184b2eae2263e43fa3396e8079558094d7df4021ba8a312b0960eff1771

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page