Anything to WeChat
将文件、链接或想法一键转换并发布为微信公众号草稿。
基于阿里云DashScope的AI视频创作与编辑技能,支持文生视频、图生视频等功能。
openclaw skills install @sdk-team/alibabacloud-bailian-video-creator命令、参数、文件名以原文为准
支持文本生成视频、图像生成视频、视频编辑与视频理解的专业级 AI 视频创作技能,基于阿里云 DashScope API 构建。
高质量视频提示词的核心公式:[场景概览] + [镜头设计] + [摄像机运动] + [光影与氛围] + [视觉风格]
关键要素:摄影语言(镜头大小、运动方式、角度)、镜头节奏设计、光影与氛围控制、视觉风格参考。对于多镜头视频,请使用镜头列表格式 Shot N [起始-结束时间] 镜头描述。
负面提示词模板:模糊、低质量、失真、故障、不自然的运动、跳跃剪辑、光照不一致、伪影、水印、文字叠加、画面静止、帧冻结、诡异谷效应
有关详细的摄影语言参考表、镜头列表模板、光影风格及完整提示词示例,请参阅 [references/prompt-guide.md](references/prompt-guide.md)
v2.1.0 (2026-03-10)
| 功能 | 模型 | 状态 | 说明 |
|---|---|---|---|
| 视频理解 | qwen3.5-plus | ✅ | 支持可配置帧提取率的视频内容分析 |
| 文本生成视频(多镜头) | wan2.6-t2v | ✅ | 从文本描述生成多镜头视频 |
| 图像生成视频 | wan2.6-i2v | ✅ | 从图像 + 音频生成视频 |
| 参考素材生成视频 | wan2.6-r2v-flash | ✅ | 通过多个参考素材(视频/图像)合成多角色视频 |
| 视频编辑(重绘) | wanx2.1-vace-plus | ✅ | 在保留原始动作与结构的前提下进行视频重绘 |
| 视频区域编辑 | wanx2.1-vace-plus | ✅ | 对视频特定区域进行精细化编辑 |
注意:DashScope qwen3.5-plus 模型的 image_url 类型仅支持静态图像分析,不支持直接上传视频文件。若需分析视频,请先提取关键帧,再使用图像分析功能。
在执行任何任务前,必须完成以下检查:
from api_key import get_api_key; api_key = get_api_key()。若 get_api_key() 抛出异常(包括“配额超限”、“AuthenticationError”、“InvalidApiKey”、“401”等),必须立即停止执行,并将错误信息展示给用户——不得跳过 API 调用,不得继续后续步骤,不得伪造执行结果。api_key.py 模块或环境变量 os.environ.get("DASHSCOPE_API_KEY") 读取。调试时显示应为掩码形式(如 sk-***xxx)。本技能中所有 API 均通过 阿里云 DashScope(百炼) 调用;不涉及其他云产品。
| 组件 | 用途 |
|---|---|
scripts/api_key.py | 统一管理 API Key(从 ~/.aliyun/config.json 或环境变量读取) |
| DashScope 视频生成 API | 文本生成视频、图像生成视频、参考素材生成视频、视频编辑(异步) |
| DashScope 多模态对话 API | 视频理解(同步) |
| FFmpeg(本地工具) | 视频格式转换、关键帧提取及其他预处理/后处理操作(可选) |
根据用户的 输入材料 和 意图 选择对应功能:
用户请求
│
├─ 用户有现有视频需要分析/理解?
│ └─ 是 → 视频理解(video_understanding.py, qwen3.5-plus)
│
├─ 用户有现有视频需要修改?
│ ├─ 修改局部区域(有掩码)?
│ │ └─ 是 → 视频区域编辑(video_local_edit.py, wanx2.1-vace-plus)
│ └─ 整体风格重绘?
│ └─ 是 → 视频编辑(video_edit.py, wanx2.1-vace-plus)
│
├─ 用户有多份参考素材(角色视频/图像)需要合成?
│ └─ 是 → 参考素材生成视频(reference_to_video.py, wan2.6-r2v-flash)
│
├─ 用户有一张图片需要生成视频?
│ └─ 是 → 图像生成视频(image_to_video.py, wan2.6-i2v)
│
└─ 用户仅有文本描述?
└─ 是 → 文本生成视频(text_to_video.py, wan2.6-t2v)| 用户输入 | 功能 | 脚本 | 模型 |
|---|---|---|---|
| 视频链接 + 分析问题 | 视频理解 | video_understanding.py | qwen3.5-plus |
| 纯文本描述 | 文本生成视频 | text_to_video.py | wan2.6-t2v |
| 图像链接(± 音频链接) | 图像生成视频 | image_to_video.py | wan2.6-i2v |
| 多份参考素材(视频/图像混合) | 参考素材生成视频 | reference_to_video.py | wan2.6-r2v-flash |
| 视频链接 + 新风格描述 | 视频编辑 | video_edit.py | wanx2.1-vace-plus |
| 视频链接 + 掩码图 + 编辑描述 | 视频区域编辑 | video_local_edit.py | wanx2.1-vace-plus |
**必须直接运行 scripts/ 目录中的现有脚本完成任务。禁止从零创建新脚本作为替代。** 每个功能对应一个可执行脚本(见快速参考表)。只需传入正确参数并运行即可。脚本内部封装了完整的流程:API Key 获取、API 调用、轮询等待、结果输出。
所有功能共享统一调用模式,分为两类:
同步调用(视频理解):
from dashscope import MultiModalConversation
response = MultiModalConversation.call(model="qwen3.5-plus", messages=[...])
# 直接返回分析结果异步调用(所有视频生成/编辑任务):
步骤 1 —— 创建任务(获取 task_id):
response = requests.post(
"https://dashscope.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis",
headers={"Authorization": f"Bearer {api_key}", "X-DashScope-Async": "enable"},
json={"model": "wan2.6-t2v", "input": {"prompt": prompt}, "parameters": {...}}
)
task_id = response.json()["output"]["task_id"]步骤 2 —— 轮询任务状态(直到 SUCCEEDED 或 FAILED):
import time
for _ in range(60): # 最多轮询 60 次,每次间隔 10 秒
result = requests.get(
f"https://dashscope.aliyuncs.com/api/v1/tasks/{task_id}",
headers={"Authorization": f"Bearer {api_key}"}
).json()
status = result["output"]["task_status"]
if status == "SUCCEEDED":
video_url = result["output"]["video_url"]
break
elif status == "FAILED":
raise RuntimeError(result["output"].get("message", "任务失败"))
time.sleep(10)步骤 3 —— 验证结果:确认已获取有效的 video_url 或分析结果。在任务完成前不得提前结束执行。
get_api_key()。若未获取到有效 Key,则立即抛出错误,不发起任何 API 请求。poll_result() 轮询并等待任务完成。 - 文本转视频、图像转视频场景下,建议设置 prompt_extend=True,让模型自动优化提示词;
- 视频编辑或区域编辑场景下,应设为 False,避免模型重写偏离原始意图。
- 用户提供了掩码图像 → 使用区域编辑(Region Edit)
- 用户仅描述了新风格但未提供掩码 → 使用视频编辑(重绘,Repainting)
- 需保留面部表情 + 身体动作 → 选择 posebodyface
- 仅保留身体动作,更换面部 → 选择 posebody
- 保留构图和运动轨迹 → 选择 depth(默认值,最通用)
- 保留线稿结构 → 选择 scribble
所有任务必须通过 DashScope 远程 API 完成。禁止使用本地工具(如 OpenCV、PyTorch、Stable Diffusion、FFmpeg 分析等)替代 DashScope API 进行视频生成或内容分析;禁止使用第三方替代服务(如 Pollinations.ai、RunwayML、Pika、Luma 等)替代 DashScope API。禁止声称“无视频生成能力”或“缺少工具”——只要 API Key 有效,本技能具备完整的远程视频生成与理解能力。
get_api_key() 验证 API Key 已配置。若 get_api_key() 失败(包括“配额超限”、401、InvalidApiKey 等情况),必须立即停止并报告错误——不得跳过 API 调用,不得伪造后续结果。| 功能 | 必须使用的模型 | 错误示例(禁止使用) |
|---|---|---|
| 文本转视频 | wan2.6-t2v | wanx2.6-t2v, wanx2.1-t2v-plus, wanx-video-generation-v1 |
| 图像转视频(HTTP API) | wan2.6-i2v | - |
| 图像转视频(SDK) | wan2.6-i2v-flash | - |
| 参考图转视频 | wan2.6-r2v-flash | - |
| 视频编辑/区域编辑 | wanx2.1-vace-plus | - |
| 视频理解 | qwen3.5-plus | qwen-vl-plus, qwen-vl-max-latest |
task_status,直至返回 SUCCEEDED 或 FAILED。不得在任务完成前提前结束。若任务创建失败(如 401 错误),必须清晰报告错误,并提示用户检查 API Key——不得静默终止。video_url(视频生成)或分析文本(视频理解)。不得返回空结果。若 API 调用失败或未实际执行,必须如实报告错误。严禁伪造分析结果或虚构视频 URL。❌ 禁止行为(以下方式均不允许):
api_key = "sk-abc123..." # 禁止硬编码
headers = {"Authorization": "Bearer sk-abc123..."} # 禁止明文传递 export DASHSCOPE_API_KEY="sk-abc123..." # 禁止在脚本中明文导出✅ 正确做法(必须采用以下方式):
from api_key import get_api_key
api_key = get_api_key() # 通过模块安全获取
# 或
api_key = os.environ.get("DASHSCOPE_API_KEY") # 通过环境变量获取api.json 为空时声称任务已完成。编写包含 API 调用代码 ≠ 实际执行 API 调用。判断标准:只有当脚本被实际运行,并且 DashScope API(例如 MultiModalConversation.call 或 dashscope.aliyuncs.com/api/v1/...)返回真实结果时,才能声称任务完成。API Key 管理类调用(如 ListWorkspaces、CreateApiKey)不视为任务完成。video_analysis_result.txt、下载的视频文件等)。如果文件不存在或为空,必须报告失败。scripts/ 目录中的现有脚本(例如 python scripts/video_understanding.py)。禁止从零开始创建新脚本作为替代。脚本必须实际执行(python scripts/xxx.py),并以真实的 stdout/stderr 输出作为结果依据。若脚本执行出错,必须显示真实的错误信息。FFmpeg 用于视频格式转换、关键帧提取、视频剪辑/拼接等本地处理操作。
# macOS (Homebrew)
brew install ffmpeg
# Ubuntu/Debian
sudo apt update && sudo apt install ffmpeg
# Windows (Chocolatey)
choco install ffmpeg
# Windows (Scoop)
scoop install ffmpeg验证安装:
ffmpeg -versionpip install -r scripts/requirements.txt| 包名 | 版本约束 | 用途 |
|---|---|---|
dashscope | >=1.25.0,<2.0.0 | 基于 SDK 的图像转视频、视频理解 |
requests | >=2.20.0,<3.0.0 | 基于 HTTP API 的视频生成/编辑 |
API Key 通过统一的 scripts/api_key.py 模块管理,采用三级检索逻辑:
~/.aliyun/config.json 当前配置文件中 dashscope.api_key → 若存在则返回DASHSCOPE_API_KEY → 若存在则返回generate_api_key() 创建 Key 并保存至配置 → 返回# 所有脚本均采用此统一方式
from api_key import get_api_key
api_key = get_api_key()手动配置环境变量:
export DASHSCOPE_API_KEY=sk-xxx| 项目 | 说明 |
|---|---|
| Key 格式 | sk-xxx(标准 DashScope API Key) |
| 不可用 | sk-sp-xxx(仅限 Coding Plan 使用的 Key,不支持视频生成) |
| 获取地址 | https://bailian.console.aliyun.com/cn-beijing/?tab=app#/api-key |
本技能的 scripts/api_key.py 使用 aliyun modelstudio 命令自动创建和删除 API Key。使用前请完成以下配置:
1. 启用 AI 模式并更新插件
# 启用 AI 模式(允许 Agent 调用 CLI)
aliyun configure ai-mode enable
# 设置 User-Agent
aliyun configure ai-mode set-user-agent --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-bailian-video-creator"
# 更新插件至最新版本
aliyun plugin update2. 安装 ModelStudio 插件(如尚未安装)
aliyun plugin install --names aliyun-cli-modelstudio --enable-pre3. 任务完成后禁用 AI 模式
aliyun configure ai-mode disable涉及的 CLI 命令:
| 命令 | 用途 | 调用位置 |
|---|---|---|
aliyun modelstudio list-workspaces | 获取 Bailian 工作空间 ID | api_key.py: _get_workspace_id() |
aliyun modelstudio create-api-key | 创建 DashScope API Key | api_key.py: generate_api_key() |
aliyun modelstudio delete-api-key | 删除云端 API Key | api_key.py: delete_api_key() |
alibabacloud-bailian-video-creator/
├── scripts/ # 示例代码(7 个核心功能 + API Key 管理)
│ ├── requirements.txt
│ ├── api_key.py
│ ├── video_understanding.py
│ ├── text_to_video.py
│ ├── image_to_video.py
│ ├── image_to_video_sdk.py
│ ├── reference_to_video.py
│ ├── video_edit.py
│ └── video_local_edit.py
├── references/ # 参考资料
│ ├── prompt-guide.md
│ ├── api-docs.md
│ ├── models.md
│ └── error-codes.md
└── SKILL.md说明:
scripts/ - 仅包含官方示例代码,每个功能对应一个文件references/ - 包含提示词指南、API 文档、模型列表、错误码等参考资料直接运行任意脚本即可查看详细参数说明(python scripts/<脚本名称>.py)。
| 功能 | 脚本文件 | 关键参数 |
|---|---|---|
| 视频理解 | video_understanding.py | video_url, prompt, fps |
| 文本生成视频 | text_to_video.py | prompt(含镜头列表), duration, size |
| 图像生成视频(HTTP) | image_to_video.py | prompt, img_url, audio_url, resolution |
| 图像生成视频(SDK) | image_to_video_sdk.py | prompt, img_url, audio_url, duration |
| 参考图像生成视频 | reference_to_video.py | prompt(含角色参考), reference_urls |
| 视频编辑 | video_edit.py | prompt, video_url, control_condition |
| 视频局部编辑 | video_local_edit.py | prompt, video_url, mask_image_url, mask_type |
不同区域的 API 地址不同,请根据实际需求选择:
| 区域 | 地址 |
|---|---|
| 北京 | https://dashscope.aliyuncs.com/api/v1 |
| 弗吉尼亚 | https://dashscope-us.aliyuncs.com/api/v1 |
| 新加坡 | https://dashscope-intl.aliyuncs.com/api/v1 |
按成功生成视频的时长(秒)计费,请求失败不计费。
| 分辨率 | 单价 |
|---|---|
| 720P | ¥0.6/秒 |
| 1080P | ¥1.0/秒 |
计费示例:
| 分辨率 | 视频类型 | 单价 |
|---|---|---|
| 720P | 带音频 | ¥0.3/秒 |
| 720P | 无音频 | ¥0.15/秒 |
| 1080P | 带音频 | ¥0.5/秒 |
| 1080P | 无音频 | ¥0.25/秒 |
注意:参考生成视频按输入 + 输出总时长计费,输入视频最多按 5 秒计费。
| 分辨率 | 单价 |
|---|---|
| 720P | ¥0.72/秒 |
查看账单:https://usercenter2.aliyun.com/finance/expense-center/overview
新用户激活 Bailian 后可获得:
已收录 6 个 Skill