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.6.19.0.tar.gz (13.8 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.6.19.0-py3-none-any.whl (14.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: wan_cli-2026.6.19.0.tar.gz
  • Upload date:
  • Size: 13.8 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.6.19.0.tar.gz
Algorithm Hash digest
SHA256 c48754efa121a05f006cf0baf2701ee6bf0a8c1cae16a295044df27d510c2b19
MD5 f249ea6e577a3787807eea834ac86605
BLAKE2b-256 90bf82e8efca3e6af3d3061431908b41f07a26e3736016486565d76b29451cd6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: wan_cli-2026.6.19.0-py3-none-any.whl
  • Upload date:
  • Size: 14.0 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.6.19.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7aa4c60b92b1454f769fcdf7b393384b76fdf0dcef10cf53383b5b7b9d8cb710
MD5 1fee5f29e99c018ec588738d83436cee
BLAKE2b-256 b20af4f29b411ce767ff49d5d683221c1cab506cbce177e64df8e8ff204eafaf

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