# Linkfox Aigc Videogen

> AI生视频工具（首尾帧/单图模式），根据原图和提示词生成视频，支持可选尾帧图控制结束画面。支持模型KLING可灵/WAN万相/SEED豆包/SEED_FAST/HAILUO海螺。用户说"生成视频"、"AI视频"、"图生视频"、"做个视频"、"video generation"、"generate video"、"图片转视频"、"动态视频"时触发。

- Skill: `ahang1598/linkfox-aigc-videogen` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add ahang1598/linkfox-aigc-videogen`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ahang1598/linkfox-aigc-videogen/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ahang1598 (https://skillmd.com/u/ahang1598)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/ahang1598/linkfox-aigc-videogen

---


# AI 生视频（首尾帧/单图模式）

根据原图（首帧）和可选尾帧图生成视频，支持多种 AI 视频模型，异步创建任务后轮询获取结果。

## 核心特点

- **5 种模型选择**：覆盖不同风格和时长需求。
- **首尾帧控制**：可选尾帧图控制视频结束画面。
- **丰富参数**：支持 Pro 模式、声音生成、运镜控制、宽高比等。
- **异步模式**：创建任务立即返回 taskId，脚本自动轮询直到完成（超时 20 分钟）。

## 模型说明

| 模型（videoType） | 说明 | 支持时长       |
|------|------|------------|
| KLING | 可灵 | 5秒/10秒     |
| WAN | 万相 | 5秒/10秒/15秒 |
| SEED | Seedance/豆包 | 5秒/10秒/15秒 |
| SEED_FAST | Seedance 2.0 Fast | 5秒/10秒/15秒 |
| HAILUO | 海螺 | 6秒/10秒     |

## 参数概览

- **必填字段**：`imageUrl`、`videoType`、`videoTime`
- **可选核心**：`lastFrameImageUrl`（尾帧图）、`prompt`（2000字以内）

完整参数表、响应字段结构与错误码，见 [`references/api.md`](references/api.md)。

## 调用方式

- **创建任务**：`POST /aigc/videoGenAsync` → 返回 `{taskId}`
- **轮询结果**：`POST /aigc/taskQuery` → 传入 `{taskId}` → 返回状态和结果
- **Python 脚本**：`python scripts/aigc_videogen.py '<JSON 参数>'`（脚本内部自动完成创建+轮询）
- **查询已有任务**：`python scripts/aigc_videogen.py --query-task '<taskId|task记录JSON路径>'`

**异步流程**：
1. 脚本调用 `/aigc/videoGenAsync` 创建任务，获得 `taskId`
2. 创建成功后立即把 `taskId`、`memberId`、`costToken`、请求参数、创建/查询端点写入会话 `data/linkfox-aigc-videogen-task-<timestamp>.json`
3. 等待 2 分钟后开始轮询 `/aigc/taskQuery`，每 10 秒一次，最长等待 20 分钟
4. 成功后自动下载视频到会话 `media/` 目录

**输出策略（脚本默认行为）**：
- 脚本会自动把生成的视频**下载转存**到会话 `media/` 目录，stdout 输出一行 `Saved full response: <路径数组>`。
- 任务记录会落盘到会话 `data/`；无视频产物或手动查询无媒体结果时，响应 JSON 也会落盘并在 stdout 提示路径。

**读数据建议**：**禁止** Read 转存的视频文件内容。直接把 `Saved full response:` 后的本地路径提供给用户即可。

## 进度查询与防重复扣费

- 用户询问“进度 / 状态 / 是否完成 / 结果 / 失败原因 / 继续看看刚才那个视频”时，**禁止**重新调用生成接口或重新运行普通生成命令。
- 先在 workspace 的 `<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/` 查找 `linkfox-aigc-videogen-task-*.json`；找到后用 `--query-task '<task记录JSON路径>'` 查询。
- 若用户直接提供 `taskId`，用 `--query-task '<taskId>'` 查询；如需要 `memberId`，追加 `--member-id '<memberId>'`。
- 查询模式只调用 `/aigc/taskQuery`，不会调用 `/aigc/videoGenAsync`，因此用于进度查询和恢复中断任务。
- 查询返回 `PROCESSING` 时告诉用户仍在生成；返回 `SUCCESS` 时下载并展示本地视频路径；返回 `FAILED` 时读取 `errorMsg` 并说明失败原因，不要自动重建任务。

## 使用指引

1. **模型选择**：一般商品视频用 `KLING`；长时长用 `WAN`/`SEED`。
2. **首尾帧**：传 `imageUrl`（首帧，必传）+ 可选 `lastFrameImageUrl`（尾帧），支持模型：KLING仅Pro / WAN / SEED。
3. **时长匹配**：必须传模型支持的时长值，否则报错。
4. **提示词**：可选，2000 字以内，描述期望的动态效果。

### 示例

**1. KLING — 商品展示**
```json
{"imageUrl": "https://example.com/product.jpg", "videoType": "KLING", "videoTime": 10, "prompt": "商品展示视频"}
```


**3. WAN 万相 — 带声音和运镜**
```json
{"imageUrl": "https://example.com/scene.jpg", "videoType": "WAN", "videoTime": 15, "voice": true, "camera": "single"}
```

**4. SEED — 高分辨率**
```json
{"imageUrl": "https://example.com/scene.jpg", "videoType": "SEED", "videoTime": 10, "resolution": "1080p", "aspectRatio": "16:9"}
```

## 展示规则

- **只展示转存后的本地路径**：把 `Saved full response:` 后的本地视频路径告诉用户，例如「视频已保存至：xxx/a.mp4」。
- **禁止** Read 视频文件、**禁止**展示 base64 内容。
- **禁止**把原始 API 返回的临时 URL 直接给用户（带签名、会过期）。

## 限制

- 提示词最大 2000 字符。
- 生成时间较长，通常 100-600 秒。脚本自动轮询，超时 20 分钟。
- KLING 尾帧图仅 Pro 模式下支持。
- 本接口仅支持单图/首尾帧模式。多参考图请使用 `linkfox-aigc-videogen-multi`。
- 失败时不重试（仅尝试 1 次）。
- 查询已有任务时只能使用 `--query-task`，不得再次创建任务。

## 不适用
**不适用**：
- 多参考图生视频 → `linkfox-aigc-videogen-multi`
- 图片生成 → `linkfox-aigc-imagegen`
- 文本生成 → `linkfox-aigc-textgen`

## 反馈

参见 `references/api.md`。

