关于 aliyun-wan-video
通过 DashScope Python SDK 标准化 Wan 模型的视频生成请求与输出,适用于需要文本或图像条件生成及异步任务处理的视频 Agent 流程。
主要功能
- 01支持文生视频和图生视频模型
- 02统一请求与响应字段
- 03通过轮询处理异步任务
- 04记录任务 ID 和生成的视频 URL
适用场景
- 01根据提示词和设置生成视频
- 02创建图像条件视频
- 03跟踪异步生成任务
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ cinience/ alicloud-skills --skill aliyun-wan-video安装后在 Claude Code 中输入/aliyun-wan-video确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlreferences/api_reference.mdsources.mdscripts/generate_dancing_video.pygenerate_video.py详细介绍
Category: 提供方
Model Studio Wan Video
验证
mkdir -p output/aliyun-wan-video
python -m py_compile skills/ai/video/aliyun-wan-video/scripts/generate_video.py && echo "py_compile_ok" > output/aliyun-wan-video/validate.txt
通过标准:命令退出码为 0,且生成 output/aliyun-wan-video/validate.txt。
输出与证据
- 将任务 ID、轮询响应和最终视频 URL 保存到
output/aliyun-wan-video/。 - 保留一份端到端运行日志,以便排查问题。
通过标准化 video.generate 的输入/输出,并使用 DashScope SDK(Python)和准确的模型名称,为视频 Agent 流水线提供一致的视频生成行为。
关键模型名称
使用以下准确的模型字符串之一:
wan2.6-t2vwan2.6-t2v-uswan2.2-t2v-pluswan2.2-t2v-flashwan2.6-i2v-flashwan2.6-i2vwan2.6-i2v-uswanx2.1-t2v-turbo
先决条件
- 安装 SDK(建议在 venv 中安装,以避免 PEP 668 限制):
python3 -m venv .venv
. .venv/bin/activate
python -m pip install dashscope
- 在环境中设置
DASHSCOPE_API_KEY,或将dashscope_api_key添加到~/.alibabacloud/credentials(环境变量优先)。
标准化接口(video.generate)
请求
prompt(字符串,必填)negative_prompt(字符串,可选)duration(数字,必填),单位为秒fps(数字,必填)size(字符串,必填),例如1280*720seed(int,可选)reference_image(字符串 | bytes,对于 t2v 可选,对于 i2v 系列模型必填)motion_strength(数字,可选)
响应
video_url(字符串)duration(数字)fps(数字)seed(int)
快速入门(Python + DashScope SDK)
视频生成通常是异步的。请等待任务 ID,并持续轮询直至任务完成。
注意:Wan i2v 模型需要输入图像;wan2.6-t2v 等纯 t2v 模型可以省略 reference_image。
import os
from dashscope import VideoSynthesis
# Prefer env var for auth: export DASHSCOPE_API_KEY=...
# Or use ~/.alibabacloud/credentials with dashscope_api_key under [default].
def generate_video(req: dict) -> dict:
payload = {
"model": req.get("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"),
}
异步处理(轮询)
import os
from dashscope import VideoSynthesis
task = VideoSynthesis.async_call(
model=req.get("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")
操作指南
- 视频生成可能需要几分钟;应显示进度,并允许取消/重试。
- 按
(prompt, negative_prompt, duration, fps, size, seed, reference_image hash, motion_strength)缓存。 - 将视频资源存储在对象存储中,并在元数据中仅保存 URL。
reference_image可以是 URL 或本地路径;SDK 会自动上传本地文件。- 如果出现
Field required: input.img_url,则说明缺少参考图像或未正确映射。 - 根据官方文档,
wan2.6-t2v和wan2.6-t2v-us支持多镜头叙事,并可选择输入音频。
尺寸说明
- 使用
WxH格式(例如1280*720)。 - 优先使用常见尺寸;不支持的尺寸可能会返回 400。
输出位置
- 默认输出:
output/aliyun-wan-video/videos/ - 使用
OUTPUT_DIR覆盖基础目录。
反模式
- 不要臆造模型名称或别名;只能使用官方 Wan i2v 模型 ID。
- 不要在没有进度更新的情况下阻塞 UI。
- 不要在遇到 4xx 错误时盲目重试;应明确处理验证失败。
工作流
- 确认用户意图、区域、标识符,以及操作是只读还是会修改数据。
- 先运行一条最小化只读查询,以验证连接和权限。
- 使用明确的参数和受限的范围执行目标操作。
- 验证结果并保存输出/证据文件。
参考资料
-
DashScope SDK 映射和异步处理说明请参阅
references/api_reference.md。 -
来源列表:
references/sources.md
评论
支持 Markdown