mcpField
A
aliyun-video-style-repaint

aliyun-video-style-repaint

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

关于 aliyun-video-style-repaint

通过阿里云 DashScope 异步视频生成 API 将输入视频转换为预设艺术风格,适合需要对短视频进行风格化处理的流程。可选择 8 种风格,并配置帧率、分辨率和超分辨率选项。

主要功能

  1. 01提供 8 种预设艺术风格
  2. 02支持配置输出帧率与分辨率
  3. 03支持表情优化和超分辨率选项
  4. 04异步提交任务并轮询结果

适用场景

  1. 01将视频转换为漫画或插画风格
  2. 02为短视频应用国风水墨效果
  3. 03按需调整视频帧率和输出清晰度

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/cinience/alicloud-skills --skill aliyun-video-style-repaint

安装后在 Claude Code 中输入/aliyun-video-style-repaint确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
api_reference.md
sources.md
scripts/
repaint_video.py

详细介绍

视频风格重绘

验证

mkdir -p output/aliyun-video-style-repaint
python -m py_compile skills/ai/video/aliyun-video-style-repaint/scripts/repaint_video.py && echo "py_compile_ok" > output/aliyun-video-style-repaint/validate.txt

通过标准:命令以 0 退出,并生成 output/aliyun-video-style-repaint/validate.txt。

输出与证据

  • 将任务 ID、轮询响应和最终视频 URL 保存到 output/aliyun-video-style-repaint/。
  • 至少保留一份端到端运行日志,以便排查问题。

前置条件

  • 安装 SDK(建议在 venv 中安装):
python3 -m venv .venv
. .venv/bin/activate
python -m pip install requests
  • 在环境中设置 DASHSCOPE_API_KEY,或将 dashscope_api_key 添加到 ~/.alibabacloud/credentials。
  • 此 API 仅在北京地域可用。必须使用北京地域的 API Key。

重要模型名称

  • video-style-transform -- 支持 8 种预设艺术风格

支持的风格

风格 ID名称(英文)名称(中文)
0日式漫画日式漫画
1美式漫画美式漫画
2清新漫画清新漫画
33D 卡通3D 卡通
4国风卡通国风卡通
5纸艺风格纸艺风格
6简易插画简易插画
7国风水墨国风水墨

API 端点(仅支持异步)

POST https://dashscope.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis

必需的请求头:

  • Authorization: Bearer $DASHSCOPE_API_KEY
  • Content-Type: application/json
  • X-DashScope-Async: enable

标准化接口

请求
  • video_url(字符串,必填)-- 输入视频的公开 HTTP/HTTPS URL
  • style(整数,可选)-- 风格 ID,范围为 0-7(默认值:0,日式漫画)
  • video_fps(整数,可选)-- 输出帧率,范围为 [15, 25](默认值:15)
  • animate_emotion(布尔值,可选)-- 面部表情优化(默认值:true)
  • min_len(整数,可选)-- 输出短边像素数,可为 720 或 540(默认值:720)
  • use_SR(布尔值,可选)-- 超分辨率增强(默认值:false)
视频输入限制
  • 格式:MP4、AVI、MKV、MOV、FLV、TS、MPG、MXF
  • 分辨率:每边为 [256, 4096] 像素,最大宽高比为 1.8:1
  • 时长:最多 30 秒
  • 最大大小:100MB
  • URL:包含非 ASCII 字符时必须进行 URL 编码
响应(创建任务)
  • output.task_id(字符串)-- 用于轮询,有效期为 24 小时
  • output.task_status(字符串)-- PENDING | RUNNING | SUSPENDED | SUCCEEDED | FAILED
  • request_id(字符串)
响应(任务结果)
  • output.output_video_url(字符串)-- 结果视频 URL
  • output.task_status(字符串)-- 最终状态
  • output.submit_time(字符串)-- 任务提交时间
  • output.scheduled_time(字符串)-- 任务开始执行时间
  • output.end_time(字符串)-- 任务完成时间
  • usage.duration(整数)-- 视频时长,单位为秒
  • usage.SR(整数)-- 使用的分辨率

快速开始(Python + HTTP)

import os
import json
import time
import requests

API_KEY = os.getenv("DASHSCOPE_API_KEY")
BASE_URL = "https://dashscope.aliyuncs.com/api/v1"

def create_style_repaint_task(video_url: str, style: int = 0) -> str:
    """Create a video style repaint task and return task_id."""
    payload = {
        "model": "video-style-transform",
        "input": {
            "video_url": video_url,
        },
        "parameters": {
            "style": style,
            "video_fps": 15,
        },
    }
    resp = requests.post(
        f"{BASE_URL}/services/aigc/video-generation/video-synthesis",
        headers={
            "Authorization": f"Bearer {API_KEY}",
            "Content-Type": "application/json",
            "X-DashScope-Async": "enable",
        },
        json=payload,
    )
    resp.raise_for_status()
    data = resp.json()
    return data["output"]["task_id"]


def poll_task(task_id: str, interval: int = 15) -> dict:
    """Poll until task completes. Returns final response."""
    while True:
        resp = requests.get(
            f"{BASE_URL}/tasks/{task_id}",
            headers={"Authorization": f"Bearer {API_KEY}"},
        )
        resp.raise_for_status()
        data = resp.json()
        status = data["output"]["task_status"]
        if status in ("SUCCEEDED", "FAILED", "CANCELED", "SUSPENDED"):
            return data
        time.sleep(interval)

错误处理

错误可能原因操作
401/403缺少或无效的 DASHSCOPE_API_KEY检查环境变量或凭据文件
400 InvalidParameter不支持的视频格式、尺寸错误或风格无效验证参数
“does not support synchronous calls”缺少 X-DashScope-Async: enable 请求头添加必需的请求头
429速率限制或配额限制退避后重试

输出位置

  • 默认输出:output/aliyun-video-style-repaint/videos/
  • 使用 OUTPUT_DIR 覆盖基础目录。

反模式

  • 请勿使用 video-style-transform 以外的模型名称。
  • 请勿同步调用此 API -- 必须使用异步请求头。
  • 请勿使用 0-7 范围之外的风格 ID。
  • 视频 URL 会在 24 小时后过期;请立即下载并持久化保存。
  • 请勿使用新加坡端点 -- 此 API 仅限北京地域。

工作流

  1. 确认用户意图:从 8 种预设中选择所需的艺术风格。
  2. 准备格式和尺寸均有效的视频 URL。
  3. 配置参数(风格、帧率、分辨率、超分辨率)。
  4. 创建异步任务并轮询结果。
  5. 在 URL 过期前下载并保存转换后的视频。

参考资料

  • 完整的 HTTP API 详情请参阅 references/api_reference.md。
  • 来源链接请参阅 references/sources.md。

评论

支持 Markdown