alicloud-ai-video-wan-video

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese
Category: provider
分类:供应商

Model Studio Wan Video

Model Studio Wan Video

Provide consistent video generation behavior for the video-agent pipeline by standardizing
video.generate
inputs/outputs and using DashScope SDK (Python) with the exact model name.
通过标准化
video.generate
的输入/输出,并使用指定模型名称的DashScope SDK(Python版),为video-agent工作流提供一致的视频生成行为。

Critical model name

重要模型名称

Use ONLY this exact model string:
  • wan2.6-i2v-flash
Do not add date suffixes or aliases.
只能使用以下精确模型字符串:
  • wan2.6-i2v-flash
请勿添加日期后缀或别名。

Prerequisites

前置条件

  • Install SDK (recommended in a venv to avoid PEP 668 limits):
bash
python3 -m venv .venv
. .venv/bin/activate
python -m pip install dashscope
  • Set
    DASHSCOPE_API_KEY
    in your environment, or add
    dashscope_api_key
    to
    ~/.alibabacloud/credentials
    (env takes precedence).
  • 安装SDK(建议在虚拟环境中安装以避免PEP 668限制):
bash
python3 -m venv .venv
. .venv/bin/activate
python -m pip install dashscope
  • 在环境变量中设置
    DASHSCOPE_API_KEY
    ,或在
    ~/.alibabacloud/credentials
    中添加
    dashscope_api_key
    (环境变量优先级更高)。

Normalized interface (video.generate)

标准化接口(video.generate)

Request

请求参数

  • prompt
    (string, required)
  • negative_prompt
    (string, optional)
  • duration
    (number, required) seconds
  • fps
    (number, required)
  • size
    (string, required) e.g.
    1280*720
  • seed
    (int, optional)
  • reference_image
    (string | bytes, required for
    wan2.6-i2v-flash
    )
  • motion_strength
    (number, optional)
  • prompt
    (字符串,必填)
  • negative_prompt
    (字符串,可选)
  • duration
    (数字,必填)秒
  • fps
    (数字,必填)
  • size
    (字符串,必填)例如
    1280*720
  • seed
    (整数,可选)
  • reference_image
    (字符串 | 字节,
    wan2.6-i2v-flash
    模型必填)
  • motion_strength
    (数字,可选)

Response

响应参数

  • video_url
    (string)
  • duration
    (number)
  • fps
    (number)
  • seed
    (int)
  • video_url
    (字符串)
  • duration
    (数字)
  • fps
    (数字)
  • seed
    (整数)

Quick start (Python + DashScope SDK)

快速开始(Python + DashScope SDK)

Video generation is usually asynchronous. Expect a task ID and poll until completion. Note:
wan2.6-i2v-flash
requires an input image; map
reference_image
to
img_url
.
python
import os
from dashscope import VideoSynthesis
视频生成通常为异步操作。会返回任务ID,需轮询直至任务完成。 注意:
wan2.6-i2v-flash
模型需要输入图片;需将
reference_image
映射至
img_url
参数。
python
import os
from dashscope import VideoSynthesis

Prefer env var for auth: export DASHSCOPE_API_KEY=...

Prefer env var for auth: export DASHSCOPE_API_KEY=...

Or use ~/.alibabacloud/credentials with dashscope_api_key under [default].

Or use ~/.alibabacloud/credentials with dashscope_api_key under [default].

def generate_video(req: dict) -> dict: payload = { "model": "wan2.6-i2v-flash", "prompt": req["prompt"], "negative_prompt": req.get("negative_prompt"), "duration": req.get("duration", 4), "fps": req.get("fps", 24), "size": req.get("size", "1280*720"), "seed": req.get("seed"), "motion_strength": req.get("motion_strength"), "api_key": os.getenv("DASHSCOPE_API_KEY"), }
if req.get("reference_image"):
    # DashScope expects img_url for i2v models; local files are auto-uploaded.
    payload["img_url"] = req["reference_image"]

response = VideoSynthesis.call(**payload)

# Some SDK versions require polling for the final result.
# If a task_id is returned, poll until status is SUCCEEDED.
result = response.output.get("results", [None])[0]

return {
    "video_url": None if not result else result.get("url"),
    "duration": response.output.get("duration"),
    "fps": response.output.get("fps"),
    "seed": response.output.get("seed"),
}
undefined
def generate_video(req: dict) -> dict: payload = { "model": "wan2.6-i2v-flash", "prompt": req["prompt"], "negative_prompt": req.get("negative_prompt"), "duration": req.get("duration", 4), "fps": req.get("fps", 24), "size": req.get("size", "1280*720"), "seed": req.get("seed"), "motion_strength": req.get("motion_strength"), "api_key": os.getenv("DASHSCOPE_API_KEY"), }
if req.get("reference_image"):
    # DashScope expects img_url for i2v models; local files are auto-uploaded.
    payload["img_url"] = req["reference_image"]

response = VideoSynthesis.call(**payload)

# Some SDK versions require polling for the final result.
# If a task_id is returned, poll until status is SUCCEEDED.
result = response.output.get("results", [None])[0]

return {
    "video_url": None if not result else result.get("url"),
    "duration": response.output.get("duration"),
    "fps": response.output.get("fps"),
    "seed": response.output.get("seed"),
}
undefined

Async handling (polling)

异步处理(轮询方式)

python
import os
from dashscope import VideoSynthesis

task = VideoSynthesis.async_call(
    model="wan2.6-i2v-flash",
    prompt=req["prompt"],
    img_url=req["reference_image"],
    duration=req.get("duration", 4),
    fps=req.get("fps", 24),
    size=req.get("size", "1280*720"),
    api_key=os.getenv("DASHSCOPE_API_KEY"),
)

final = VideoSynthesis.wait(task)
video_url = final.output.get("video_url")
python
import os
from dashscope import VideoSynthesis

task = VideoSynthesis.async_call(
    model="wan2.6-i2v-flash",
    prompt=req["prompt"],
    img_url=req["reference_image"],
    duration=req.get("duration", 4),
    fps=req.get("fps", 24),
    size=req.get("size", "1280*720"),
    api_key=os.getenv("DASHSCOPE_API_KEY"),
)

final = VideoSynthesis.wait(task)
video_url = final.output.get("video_url")

Operational guidance

操作指南

  • Video generation can take minutes; expose progress and allow cancel/retry.
  • Cache by
    (prompt, negative_prompt, duration, fps, size, seed, reference_image hash, motion_strength)
    .
  • Store video assets in object storage and persist only URLs in metadata.
  • reference_image
    can be a URL or local path; the SDK auto-uploads local files.
  • If you get
    Field required: input.img_url
    , the reference image is missing or not mapped.
  • 视频生成可能需要数分钟时间;需展示进度并支持取消/重试。
  • (prompt, negative_prompt, duration, fps, size, seed, reference_image哈希值, motion_strength)
    进行缓存。
  • 将视频资产存储至对象存储服务,仅在元数据中保留URL。
  • reference_image
    可以是URL或本地路径;SDK会自动上传本地文件。
  • 若收到
    Field required: input.img_url
    错误,说明参考图片缺失或未正确映射。

Size notes

尺寸说明

  • Use
    WxH
    format (e.g.
    1280*720
    ).
  • Prefer common sizes; unsupported sizes can return 400.
  • 使用
    宽*高
    格式(例如
    1280*720
    )。
  • 优先使用常见尺寸;不支持的尺寸会返回400错误。

Output location

输出位置

  • Default output:
    output/ai-video-wan-video/videos/
  • Override base dir with
    OUTPUT_DIR
    .
  • 默认输出路径:
    output/ai-video-wan-video/videos/
  • 可通过
    OUTPUT_DIR
    环境变量修改基础目录。

Anti-patterns

反模式

  • Do not invent model names or aliases; use
    wan2.6-i2v-flash
    only.
  • Do not block the UI without progress updates.
  • Do not retry blindly on 4xx; handle validation failures explicitly.
  • 请勿自行创建模型名称或别名;仅使用
    wan2.6-i2v-flash
  • 请勿在无进度更新的情况下阻塞UI。
  • 请勿在收到4xx错误时盲目重试;需显式处理验证失败。

References

参考资料

  • See
    references/api_reference.md
    for DashScope SDK mapping and async handling notes.
  • Source list:
    references/sources.md
  • 有关DashScope SDK映射及异步处理说明,请查看
    references/api_reference.md
  • 来源列表:
    references/sources.md