关于 alicloud-ai-video-wan-video
面向视频 Agent 流水线的视频生成技能,通过 DashScope Python SDK 调用阿里云 Model Studio Wan 模型。它统一请求与响应字段,并支持异步任务轮询。
主要功能
- 01统一的 video.generate 接口
- 02文生视频与图生视频模型
- 03异步任务轮询
- 04保存任务 ID 和视频 URL
- 05可配置输出目录
适用场景
- 01根据文本提示生成视频
- 02将参考图像制作成动态视频
- 03跟踪耗时较长的生成任务
MCP 相关
该技能未说明 MCP 集成。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ cinience/ alicloud-skills --skill alicloud-ai-video-wan-video安装后在 Claude Code 中输入/alicloud-ai-video-wan-video确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlreferences/api_reference.mdsources.mdscripts/generate_dancing_video.pygenerate_video.py详细介绍
Category: provider
Model Studio Wan 视频
验证
mkdir -p output/alicloud-ai-video-wan-video
python -m py_compile skills/ai/video/alicloud-ai-video-wan-video/scripts/generate_video.py && echo "py_compile_ok" > output/alicloud-ai-video-wan-video/validate.txt
通过标准:命令以状态码 0 退出,并生成 output/alicloud-ai-video-wan-video/validate.txt。
输出与证据
- 将任务 ID、轮询响应和最终视频 URL 保存到
output/alicloud-ai-video-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(整数,可选)reference_image(字符串 | 字节,可选;对于 t2v 模型,可不提供;对于 i2v 系列模型,必需)motion_strength(数字,可选)
响应
video_url(字符串)duration(数字)fps(数字)seed(整数)
快速入门(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/alicloud-ai-video-wan-video/videos/ - 使用
OUTPUT_DIR覆盖基础目录。
反模式
- 不要臆造模型名称或别名;仅使用官方 Wan i2v 模型 ID。
- 不要在没有进度更新的情况下阻塞 UI。
- 不要对 4xx 错误盲目重试;应明确处理验证失败。
工作流
- 确认用户意图、区域、标识符,以及操作是只读还是会产生更改。
- 先运行一个最小的只读查询,以验证连接和权限。
- 使用明确的参数和有限的范围执行目标操作。
- 验证结果并保存输出和证据文件。
参考资料
-
有关 DashScope SDK 映射和异步处理的说明,请参阅
references/api_reference.md。 -
来源列表:
references/sources.md
评论
支持 Markdown