ai-short-film-producer

AI短剧制作助手 | AI Short Film Producer — 低成本AI短剧/短片全流程制作技能。使用Grok Imagine生成视频镜头、TTS生成配音,配合FFmpeg+Python本地合成。适用于从零制作AI短片、短视频、短剧EP、预告片等场景。包含完整的分镜脚本创作、视频生成、配音生成、音频驱动剪辑、字幕叠加、最终合成、成本核算的全套SOP。

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "ai-short-film-producer" with this command: npx skills add hitjcl/ai-short-film-producer

AI短剧制作助手 | AI Short Film Producer

概述

本Skill提供一套完整的低成本AI短剧制作流程,从脚本创作到最终成片,总成本仅需**¥30-50/部**(128秒短片)。核心思路:用AI API生成素材 → 本地FFmpeg合成 → WorkBuddy编排调度。

适用场景:

  • 用户说"帮我做一个短片/短剧/预告片"
  • 用户说"把这段文案做成视频"
  • 用户说"生成一个XX题材的短视频"
  • 用户需要从零到一完成AI视频制作

核心成本优势:

  • 视频生成:Grok Imagine(速创API,按秒计费)
  • 配音生成:TTS(速创API,按字计费)
  • 合成剪辑:本地FFmpeg免费
  • AI编排:WorkBuddy Lite版

制作流程总览

Step 1: 脚本创作
  ├── 确定主题/时长/风格
  ├── 编写分镜脚本(镜头×台词×角色)
  └── 输出:分镜表 + TTS文本清单

Step 2: 视频镜头生成
  ├── 调用速创API Grok Imagine
  ├── 25个镜头批量异步生成
  └── 输出:ep1_shots/*.mp4

Step 3: TTS配音生成
  ├── 调用速创API audio_tts
  ├── 多角色多音色
  └── 输出:ep1_tts/*.mp3

Step 4: 音频驱动剪辑
  ├── 逐段按TTS时长裁剪/循环镜头
  ├── 短镜头自动stream_loop填充
  └── 输出:分段seg_*.mp4

Step 5: 字幕生成
  ├── Python Pillow生成透明PNG字幕
  ├── FFmpeg overlay叠加(因FFmpeg 8.x无drawtext)
  └── 输出:带字幕的分段视频

Step 6: 最终合成
  ├── concat拼接25段视频
  ├── concat拼接25段音频
  ├── 音视频合并
  └── 输出:最终成片.mp4

Step 7: 素材导出
  ├── 结构化桌面文件夹
  ├── 矩阵表 + JSON
  └── 成本核算

详细步骤

Step 1: 脚本创作

输入: 用户需求(主题、风格、时长、参考素材) 输出: 分镜脚本文档 + TTS台词清单

工作流程:

  1. 与用户确认主题方向(科幻/悬疑/科普/剧情等)
  2. 编写分镜脚本,包含:
    • 镜头编号、画面描述、时长
    • 配音台词、角色分配、音色选择
    • 音效说明
  3. 输出TTS台词清单(25段以内,每段2-20字最佳)
  4. 角色音色分配表:
角色类型推荐音色ID说明
旁白/叙述者male-qn-jingying精英青年男声,通用
男主角male-qn-jingying精英青年男声
霸道/硬汉male-qn-badao霸道男声
反派/俊朗junlang_nanyou俊朗男声
成熟女性female-chengshu成熟女声
少女female-shaonv少女音
研究员/学生male-qn-daxuesheng大学生男声
醇厚长辈male-chunhou醇厚男声

Step 2: 视频镜头生成(速创API Grok Imagine)

API平台: 速创API(详见 references/sucuang_api.md) 模型: Grok Imagine(xAI Aurora引擎) 价格: 按秒计费(具体见平台)

API调用方式:

  • 鉴权:Authorization Header 传API Key(不带Bearer前缀)
  • 接口:POST /api/async/video/grok_imagine
  • 参数格式:扁平JSON
  • 结果查询:GET /api/async/detail?id=xxx(轮询直到status=2)

批量生成策略:

  1. 25个镜头同时提交(用ThreadPoolExecutor)
  2. 每个镜头约10秒,生成耗时约30-60秒
  3. 失败自动重试(平均重试3次)
  4. 注意:Sora2接口已不可用(持续400错误),全部使用Grok Imagine

Prompt编写要点:

  • 英文Prompt效果更稳定
  • 包含:场景描述、光线、构图、镜头运动
  • 示例:"Deep space, Milky Way galaxy slowly rotating, cinematic wide shot, photorealistic, 4K quality"

Step 3: TTS配音生成(速创API audio_tts)

API接口: POST /api/async/audio_tts 价格: 按字计费(具体见平台) 参数格式(重要): 扁平JSON,不要嵌套

{
  "text": "台词内容",
  "voice_id": "male-qn-jingying",
  "speed": 1.0
}

注意事项(踩坑经验):

  • ❌ 不要传 format 参数(会报500"存在未绑定的参数")
  • ❌ 不要嵌套成 {"model":"audio_tts","params":{...}}
  • ✅ 状态码判断:status=2 完成,status=0/1 处理中
  • ⚠️ 部分任务会卡住(status一直=0),重试可换IP节点
  • ✅ 返回tar包,需解压获取mp3

Step 4: 音频驱动剪辑(核心节奏控制)

核心理念: 画面长度由语音旁白决定,而非固定时长。先录制/生成TTS配音,再让每段视频精确匹配对应配音的时长。这样保证音画天然同步,且节奏由配音自然驱动。

4.1 节奏控制逻辑

每段(镜头, TTS)的处理流程:

1. 获取TTS音频实际时长 tts_dur(用ffprobe精确到毫秒)
2. 获取源视频时长 src_dur
3. 对比决策:
   ├── src_dur >= tts_dur + 0.5s  → 直接裁剪到tts_dur(视频多出的部分舍弃)
   ├── src_dur ≈ tts_dur(差<0.5s)→ 直接裁剪,不做额外处理
   └── src_dur < tts_dur           → stream_loop循环播放填满tts_dur
4. 输出:seg_NNN.mp4(时长=tts_dur,精确匹配配音)

为什么用"音频驱动"而非"视频驱动":

  • 传统剪辑:先定视频长度,再往里塞配音 → 配音节奏被画面绑架
  • 音频驱动:先定配音节奏,再裁剪画面适配 → 叙事节奏由台词自然决定
  • 效果:观众听到的每句话都有对应的画面时长,不会出现"话没说完画面就切了"

4.2 短镜头循环填充(stream_loop)

当源视频时长不够时,用FFmpeg的stream_loop让视频循环播放:

# 循环播放直到填满tts_dur
/opt/homebrew/bin/ffmpeg -y -stream_loop -1 -i shot.mp4 -t {tts_dur} -c:v libx264 -preset fast seg.mp4

实战经验(三体EP1):

  • 25个镜头中有3个需要循环填充
  • 最大修复:pan_han_02火鸡演讲(源视频10s → TTS需要19s,循环补9s)
  • 循环填充的视觉重复感在1-2次循环内不明显,超过3次建议换镜头

4.3 逐段精确裁剪避免累积漂移

# 关键:每段独立裁剪,不整体缩放
cumulative = 0.0
for i, (tts_file, shot_file) in enumerate(segments):
    tts_dur = get_duration(tts_file)  # ffprobe获取
    # 精确裁剪到tts_dur,不依赖前一段的结束时间
    trim_video(shot_file, tts_dur, f"seg_{i:03d}.mp4")
    cumulative += tts_dur

# 最终验证:所有seg时长之和 ≈ audio_concat时长 ≈ 最终成片时长

FFmpeg路径(Mac mini M4): /opt/homebrew/bin/ffmpeg

已知限制:

  • FFmpeg 8.x 未编译drawtext/libass/freetype滤镜 → 不能直接加字幕
  • anullsrc语法用 cl=stereo 而非 c=stereo
  • shell转义用Python subprocess list模式避免zsh问题

Step 5: 字幕生成

方案: Pillow生成透明PNG → FFmpeg overlay叠加

from PIL import Image, ImageDraw, ImageFont

# 创建透明PNG
img = Image.new('RGBA', (1920, 160), (0,0,0,0))
draw = ImageDraw.Draw(img)
font = ImageFont.truetype('/System/Library/Fonts/PingFang.ttc', 48)

# 白色大字 + 黑色描边
draw.text((960, 80), "台词文本", fill='white', font=font, 
          anchor='mm', stroke_width=3, stroke_fill='black')

# FFmpeg overlay叠加
ffmpeg -i seg.mp4 -i sub.png -filter_complex "overlay=0:H-h" output.mp4

字幕设计规范:

  • 底部居中,距底部约60px
  • 白色大字 + 3px黑色描边
  • 字号48-56px(PingFang SC字体)
  • 可加角色标签(如"旁白:"、"汪淼:")

Step 6: 最终合成

拼接视频:

# 生成file list
for f in seg_*.mp4; do echo "file '$f'" >> video_list.txt; done
ffmpeg -f concat -safe 0 -i video_list.txt -c copy video_concat.mp4

拼接音频:

for f in audio_*.mp3; do echo "file '$f'" >> audio_list.txt; done
ffmpeg -f concat -safe 0 -i audio_list.txt -c copy audio_concat.aac

音视频合并:

ffmpeg -i video_concat.mp4 -i audio_concat.aac -c:v copy -c:a aac final.mp4

Step 7: 素材导出与成本核算

桌面文件夹结构:

~/Desktop/项目名称/
├── 01_字幕/     → 字幕PNG文件
├── 02_配音/     → TTS音频MP3
├── 03_主图/     → 镜头缩略图JPG
├── 04_视频/     → 分段视频MP4
├── 05_矩阵表/   → 矩阵表.html + 素材结构.json
└── 最终成片.mp4

成本核算模板:

项目计算方式说明
Grok Imagine视频总秒数 × 重试次数 × 单价按秒计费
TTS配音总字数 × 单价按字计费
WorkBuddy算力对话轮次 × 单价按轮计费
硬件折旧Mac mini ¥3,999/3年寿命¥3.65/天
电费16h × 65W × ¥0.6/度¥0.62/天

速创API平台速查

平台地址: 详见 references/sucuang_api.md 文档中心: 详见 references/sucuang_api.md

常用模型及价格:

模型/接口价格说明
Grok Imagine 视频生成按秒计费文生视频/图生视频,6-15秒
audio_tts 配音按字计费多音色TTS
video_digital_humans 数字人按次计费需公网音频URL+视频URL
Sora2(已弃用)持续400错误,不可用

API Key传递:

  • ✅ Authorization Header(推荐,不带Bearer前缀)
  • ❌ URL参数 ?key=xxx(会返回403)

三体EP1实战参考

项目规模: 25个镜头,127秒成片,8个角色 总成本: ¥44.17(含重试+硬件折旧) 工具链: Grok Imagine × 25 + TTS × 25 + FFmpeg + Python Pillow 迭代版本: v5min → v6 → v7 → v7.1 → v8(5个版本迭代)

关键经验:

  1. Sora2不可用,全部切Grok Imagine
  2. 源视频短于TTS时用stream_loop循环填充
  3. FFmpeg 8.x无drawtext,用Pillow生成PNG替代
  4. TTS部分任务卡住需重试
  5. 逐段精确裁剪避免累积漂移

专业审核与迭代流程

AI生成的第一版通常不是最终版。必须经过"制作→审核→修改"的迭代循环才能达到交付标准。

审核维度

维度检查内容常见问题
音画同步画面内容是否匹配配音台词角色A说话但画面是角色B
时长匹配每段视频是否完整覆盖TTS短镜头被截断,话没说完画面就切
视觉重复循环播放是否超过3次火鸡演讲循环9s,观众能看出重复
字幕准确字幕文本是否与TTS一致错别字、标点错误
节奏感整体叙事节奏是否流畅某段太长拖沓,某段太短仓促
画面质量是否有明显AI生成瑕疵人物变形、闪烁、分辨率低

迭代流程

V1(初版合成)
  ↓
专业审核(逐段检查以上6个维度)
  ↓
问题清单 → 按严重程度排序
  ├── P0(必须修):音画不匹配、字幕错误、画面截断
  ├── P1(建议修):节奏拖沓、视觉重复感强
  └── P2(可优化):画面质量、色调统一
  ↓
V2(修复P0问题)
  ↓
再次审核
  ↓
V3...(逐轮修复,直到P0=0、P1≤2)
  ↓
最终交付

实战案例:三体EP1迭代记录

版本问题修复方案
v5min252秒成片,但TTS只有127秒,大量空白重新按TTS时长裁剪
v6音频驱动剪辑,但3个短镜头被截断修复中
v7短镜头截断(火鸡演讲缺9s)stream_loop循环填充
v7.1循环修复完成,但无字幕加字幕
v8字幕+音画同步修复+矩阵表✅ 最终交付

审核工具:

  • 逐段对比:ffprobe 获取每段TTS和视频的精确时长
  • 偏差检查:每段TTS vs 视频时长差 > 0.5s 即标记为问题段
  • 画面检查:播放时逐段确认画面内容与台词匹配

资源文件

references/

  • sucuang_api.md — 速创API完整接口文档和踩坑经验
  • production_workflow.md — 制作流程详细参考

scripts/

  • (按需添加:批量提交脚本、合成脚本模板等)

assets/

  • (按需添加:字幕模板、片头片尾素材等)

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

CLI-Hub Tools

CLI-Hub工具箱 - 100+ CLI工具一键安装。浏览器自动化、视频编辑、知识管理、AI模型、云服务等。源自HKUDS CLI-Anything项目。

Registry SourceRecently Updated
720Profile unavailable
Coding

Pixshop Creative API — Developer REST Endpoints

Pixshop 开发者 REST API — 图片生成/编辑、视频制作、提示词库、应用市场、社区 / Pixshop Developer REST API — image generation/editing, video, prompts, apps, community endpoints. Use when...

Registry SourceRecently Updated
3800Profile unavailable
Coding

Pixshop CLI — AI Image & Video Generation

Pixshop CLI 命令行工具 — AI 图片/视频生成、编辑工具、应用市场、提示词库 / Pixshop CLI — command-line AI image/video generation, editing tools, apps, prompts. Use when user wants to ge...

Registry SourceRecently Updated
3800Profile unavailable
General

Arch Video Cut

自动合并建筑视频,生成字幕和背景音乐,输出横屏与竖屏双版本,支持自学习优化剪辑偏好。

Registry SourceRecently Updated
3240Profile unavailable