--- name: ai-video-gen description: "AI 视频生成:文生视频 / 图生视频 / 数字人首帧驱动。通过可插拔 provider(通义万相 Wan / 火山 Seedance / 快手可灵 / OpenAI 兼容)异步生成视频,用户自备 API key。当用户说 AI 视频生成、文生视频、图生视频、AI 生成视频、AI 短视频、让图片动起来、数字人视频、生成一段视频 时使用。与 video-strategy(选型/策略)、video-editing(剪辑处理)、clipify(切片)区别:本 SKILL 是从 0 用 AI 生成新视频。" layer: produce --- # AI 视频生成 > 文生视频 / 图生视频 / 数字人首帧驱动。封装 `shared/scripts/ai_video.py`,多 provider 可插拔、异步提交→轮询→下载。**用户自备 API key**(在 `.env` 配置)。 ## 前置:配置 API key > **配置检查路径铁律**:先 `cd` 到 `AGENTS.md` 末尾给出的 Easel 项目根,确认当前目录有 `.env` 和 `skills/shared/scripts/`,再运行注册表、`check` 或生成命令。不得改用 workspace 的 `./shared/scripts/...`,也不得以 `env` / `printenv` 没显示变量为由判断未配置。 先选 provider 并在 `.env` 填对应 key,然后 `check` 离线校验: ```bash python skills/shared/scripts/ai_video.py check --provider dashscope ``` | provider | 服务 | 需在 .env 配 | |----------|------|-------------| | `dashscope` | 阿里通义万相 Wan | `DASHSCOPE_API_KEY`(可选 `DASHSCOPE_VIDEO_MODEL`/`DASHSCOPE_BASE_URL`;兼容旧名 `DASHSCOPE_MODEL`) | | `ark` | 火山引擎 Seedance | `ARK_API_KEY`(可选 `ARK_MODEL`/`ARK_BASE_URL`) | | `kling` | 快手可灵 | `KLING_ACCESS_KEY` + `KLING_SECRET_KEY`(JWT 鉴权) | | `openai-compatible` | 通用 /videos 端点 | `VIDEO_API_KEY` + `VIDEO_BASE_URL`(可选 `VIDEO_MODEL`) | | `xhs-maas` | 小红书内网 MaaS(happyhorse 文/图生视频)| `XHS_MAAS_API_KEY`(可选 `XHS_MAAS_VIDEO_BASE`/`XHS_MAAS_T2V_MODEL`/`XHS_MAAS_I2V_MODEL`)。DashScope 风格异步 + api-key 头,内网直连 | | `agnes` | Agnes(agnes-video-2.5-flash)| `AGNES_API_KEY`(可选 `AGNES_BASE_URL`/`AGNES_MODEL`/`AGNES_SIZE`)。OpenAI Videos 兼容创建 + 自定义端点轮询;**默认带原生音频**(prompt 描述声音);外网走代理 | 也可设 `VIDEO_PROVIDER` 免去每次 `--provider`。 执行前先跑 `model_registry.py configured --group video --env-file .env`:只有一个可用就显式选它;多个可用且用户没点名时,列出 provider/模型询问本次使用哪个,不按默认值擅自选择。 ## 输入 > **画幅确认硬门**:用户或上游任务未明确横版/竖版(或 16:9/9:16/具体比例)时,任何生成/付费调用前必须追问并等确认;不得从平台、Profile 或脚本默认值静默推断。已明确则不重复问。 - 文生视频:画面/镜头/风格描述(prompt) - 图生视频:一张输入图(本地路径或 URL)+ 可选运动描述 - 可选:时长 `--duration`、画幅 `--ratio`(16:9 / 9:16 / 1:1)、模型 `--model`、原生音频 `--audio auto|on|off` ## 输出 生成的视频文件;必须用 `-o` 指定到 `outputs/主题名/`。异步任务自动轮询到完成再下载。 ## 执行步骤 1. **确认配置与能力**:先运行 `check`,再运行 `capabilities --provider
--model --model