Skills video-generation
install
source · Clone the upstream repo
git clone https://github.com/wulaosiji/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/wulaosiji/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/video-generation" ~/.claude/skills/wulaosiji-skills-video-generation && rm -rf "$T"
manifest:
video-generation/SKILL.mdsource content
视频生成技能 (Video Generation)
使用 WaveSpeed AI 平台生成和处理视频,包括图生视频、视频续写、视频链生成和 4K 超分。
When to Use
适用于以下场景:
- 从图片生成动态视频(图生视频)
- 视频超分到 4K/2K/1080p
- 创建视频链(多段视频拼接)
- Hero 背景视频制作
- 视频续写和扩展
Do NOT use this skill if:
- 只需要简单的自拍视频(使用 zhuoran-video-selfie 或 clawra-video-selfie)
- 需要实时视频生成(API 是异步的)
- 没有参考图片或视频素材
- 网络条件极差(需要上传/下载大文件)
触发关键词 / Trigger Phrases:
- AI视频生成 / AI video generation
- 图生视频 / image to video
- 视频超分 / video upscaling
- 4K视频 / 4K video
- 视频续写 / video continuation
- 视频链 / video chain
- 视频处理 / video processing
- 生成视频 / generate video
Workflow
1. 图生视频 (Image-to-Video)
import requests import time API_KEY="***" BASE_URL = "https://api.wavespeed.ai/api/v3" HEADERS = {"Authorization": f"Bearer {API_KEY}"} JSON_HEADERS = {**HEADERS, "Content-Type": "application/json"} # 1. 上传图片 def upload_image(image_path): with open(image_path, 'rb') as f: r = requests.post( f"{BASE_URL}/media/upload/binary", headers=HEADERS, files={"file": f} ) return r.json()["data"]["download_url"] # 2. 提交视频生成任务 def submit_i2v_task(image_url, prompt, model="wavespeed-ai/wan-2.2/i2v-480p"): payload = { "image": image_url, "prompt": prompt, "duration": 5, # 5 或 8 秒 "enable_prompt_expansion": False } r = requests.post(f"{BASE_URL}/{model}", headers=JSON_HEADERS, json=payload) return r.json()["data"] # 3. 轮询结果 def poll_result(task_id, get_url=None): poll_url = get_url or f"{BASE_URL}/predictions/{task_id}" while True: r = requests.get(poll_url, headers=HEADERS) data = r.json()["data"] if data["status"] == "completed": return data["outputs"][0] elif data["status"] == "failed": raise Exception(f"Task failed: {data}") time.sleep(5) # 4. 下载视频 def download_video(video_url, output_path): r = requests.get(video_url, stream=True) with open(output_path, 'wb') as f: for chunk in r.iter_content(chunk_size=8192): f.write(chunk)
2. 视频超分到 4K
# 1. 上传视频 video_url = upload_video(video_path) # 同 upload_image # 2. 提交超分任务 payload = { "video": video_url, "target_resolution": "4k" # 可选: 720p, 1080p, 2k, 4k } r = requests.post( f"{BASE_URL}/wavespeed-ai/video-upscaler-pro", headers=JSON_HEADERS, json=payload ) task_data = r.json()["data"] # 3. 轮询并下载(同上)
3. 视频链生成
视频链是指通过视频续写技术,将多个短视频连接成一个连贯的长视频。
核心概念:
- 首帧提取: 使用 FFmpeg 提取视频最后一帧作为下一段的起始
- 视频续写: 使用相同的 prompt 风格生成连贯的续集
- 视频拼接: 使用 FFmpeg 无损拼接
# 提取最后一帧 def extract_last_frame(video_path, output_path): import subprocess cmd = [ "ffmpeg", "-y", "-sseof", "-0.1", "-i", video_path, "-vframes", "1", "-q:v", "2", output_path ] subprocess.run(cmd, check=True) # 生成视频链 def generate_chain(initial_image, prompt, num_segments=4): videos = [] current_image = initial_image for i in range(num_segments): # 上传当前图片 image_url = upload_image(current_image) # 生成视频 task = submit_i2v_task(image_url, prompt) video_url = poll_result(task["id"], task["urls"]["get"]) # 下载视频 video_path = f"v{i+1}.mp4" download_video(video_url, video_path) videos.append(video_path) # 提取最后一帧用于下一段 current_image = f"v{i+1}_last_frame.jpg" extract_last_frame(video_path, current_image) return videos # 拼接视频 def concat_videos(video_list, output_path): import subprocess # 创建文件列表 with open("concat_list.txt", "w") as f: for v in video_list: f.write(f"file '{v}'\\n") cmd = [ "ffmpeg", "-y", "-f", "concat", "-safe", "0", "-i", "concat_list.txt", "-c", "copy", output_path ] subprocess.run(cmd, check=True)
Supported Models
图生视频 (Image-to-Video)
| 模型 | API 路径 | 时长 | 特点 |
|---|---|---|---|
| Wan-2.2 | | 5s/8s | 高质量、支持长视频 |
| Wan-2.2 720p | | 5s/8s | 更高分辨率 |
| Hailuo 2.3 | | 6s | 快速、效果好 |
| Kling 1.6 | | 5s/10s | 稳定、细节丰富 |
视频超分 (Video Upscaling)
| 模型 | API 路径 | 分辨率选项 |
|---|---|---|
| Video Upscaler Pro | | 720p, 1080p, 2k, 4k |
Guardrails
Prompt 编写建议
好的 prompt 结构:
[动作描述], [氛围/风格], [细节], [效果]
示例:
"Gentle flowing motion with glowing particles moving slowly across the scene, subtle pulsing neon light effects, ethereal and dreamy atmosphere, smooth ambient movement, futuristic cyberpunk feeling"
注意事项
- 避免过度后处理: 不要用 FFmpeg 强制拉伸分辨率,使用原生 4K 输出
- 保持风格一致: 视频链各段使用相同的 prompt 风格
- 预留缓冲: 超分任务可能需要 10-15 分钟,设置足够的轮询超时
- 备份原始文件: 超分前备份原始视频
常见问题
| 问题 | 解决方案 |
|---|---|
| 超分后边缘发虚 | 使用 原生输出 |
| 视频链不连贯 | 确保提取的是真正的最后一帧 |
| 任务超时 | 增加 或检查 API 状态 |
| 上传失败 | 检查文件大小限制(通常 500MB) |
API 密钥配置
将 API 密钥存储在环境变量或
.env 文件中:
# .env WAVESPEED_KEY=your_api_key_here
注意: 不要将 API 密钥硬编码在脚本中或提交到版本控制。
Project Scripts
| 脚本 | 功能 |
|---|---|
| 从海报图生成 Hero 背景视频 |
| 将视频超分到 4K |
| 生成完整视频链 |
~ | Wan 模型单段生成 |
| Intro 视频超分 |
| Loop 视频超分 |
Related Skills
| 技能 | 关系 | 说明 |
|---|---|---|
| zhuoran-video-selfie | 专用版本 | 卓然角色的自拍视频生成 |
| clawra-video-selfie | 专用版本 | Clawra角色的自拍视频生成 |
| voice-clone | 配套 | 可为视频添加克隆语音 |
| zhuoran-selfie | 参考 | 照片生成技能 |
About UniqueClub
Part of UniqueClub toolkit - AI-powered creative tools for professional video generation. Learn more: https://uniqueclub.ai
最后更新:2026-02-07