mcpField
A
alicloud-ai-video-wan-video

alicloud-ai-video-wan-video

github.com/cinience创意与媒体396307 次安装11 周前更新
代码仓库

关于 alicloud-ai-video-wan-video

面向视频 Agent 流水线的视频生成技能,通过 DashScope Python SDK 调用阿里云 Model Studio Wan 模型。它统一请求与响应字段,并支持异步任务轮询。

主要功能

  1. 01统一的 video.generate 接口
  2. 02文生视频与图生视频模型
  3. 03异步任务轮询
  4. 04保存任务 ID 和视频 URL
  5. 05可配置输出目录

适用场景

  1. 01根据文本提示生成视频
  2. 02将参考图像制作成动态视频
  3. 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.yaml
references/
api_reference.md
sources.md
scripts/
generate_dancing_video.py
generate_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-t2v
  • wan2.6-t2v-us
  • wan2.2-t2v-plus
  • wan2.2-t2v-flash
  • wan2.6-i2v-flash
  • wan2.6-i2v
  • wan2.6-i2v-us
  • wanx2.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*720
  • seed(整数,可选)
  • 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 错误盲目重试;应明确处理验证失败。

工作流

  1. 确认用户意图、区域、标识符,以及操作是只读还是会产生更改。
  2. 先运行一个最小的只读查询,以验证连接和权限。
  3. 使用明确的参数和有限的范围执行目标操作。
  4. 验证结果并保存输出和证据文件。

参考资料

  • 有关 DashScope SDK 映射和异步处理的说明,请参阅 references/api_reference.md。

  • 来源列表:references/sources.md

评论

支持 Markdown