mcpField
A
ai-podcast

ai-podcast

github.com/qu-skills创意与媒体441 次安装12 周前更新
代码仓库

关于 ai-podcast

这项技能通过 inference.sh 工作流制作多说话人的播客视频,流程涵盖角色图像、语音、头像视频片段和最终合并。面向播客、演示和宣传对话的创作者,并提供角色一致性与制作检查指南。

主要功能

  1. 01生成角色肖像与身份档案
  2. 02为每段发言生成语音
  3. 03根据图像和音频生成说话头像视频
  4. 04合并片段为最终视频
  5. 05提供画面质检与脚本指导

适用场景

  1. 01制作多说话人播客视频
  2. 02制作说话头像演示短片
  3. 03制作宣传对话视频
  4. 04保持真人角色在不同镜头中的外观一致

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/qu-skills/superpowers --skill ai-podcast

安装后在 Claude Code 中输入/ai-podcast确认已加载。

详细介绍

AI 播客生成器

使用 inference.sh 流水线创建多人对话播客视频:肖像生成 → TTS 音频 → 虚拟形象视频 → 合并。支持真人(通过 Phota)、3D 吉祥物、插画角色以及混合阵容。

当用户想要制作播客、对话视频、演示短片、宣传对话或任何多人视频内容时使用。

流水线概览
Characters (images) → TTS (audio per turn) → Avatar (video per turn) → Merge (final video)
流程
步骤 1:角色创建

根据每种角色类型选择合适的工具:

角色类型工具说明
真人(新角色)pruna/p-image16:9,prompt_upsampling: true。生成速度快,无需训练,但多次生成之间无法保持身份一致。
真人(一致身份)phota/generate,搭配 [[profile_id]]所有镜头中的身份保持一致。需要先训练 Phota 配置文件(见下文)。
品牌吉祥物 / Logo 角色google/gemini-3-pro-image-preview将 Logo 和角色设定图作为参考图传入
插画 / 风格化角色google/gemini-3-pro-image-preview将风格参考图作为输入图像传入

训练 Phota 身份(可选,但建议真人使用):

如果你需要一个能在多个角度和镜头中保持身份一致的真人角色,请先训练 Phota 配置文件:

infsh app run phota/train --input '{
  "images": ["url1.jpg", "url2.jpg", ...],
  "wait": true
}' --save profile.json
  • 需要该人物的 30-50 张面部图像
  • 使用 wait: true 时,训练需要几分钟
  • 返回一个 profile_id,随后在 phota/generate 的提示词中通过 [[profile_id]] 使用
  • 配置文件可永久重复使用——训练一次,即可生成不限数量的镜头

如果不需要跨镜头保持一致(例如单人视频,且只有一个角度),pruna/p-image 更简单、成本更低。

先制作角色设定图,再制作播客画面:

  1. 为每个角色生成一张角色设定图(纯白背景,包含多个角度)
  2. 然后将角色放入播客录制室场景中,并将设定图作为参考

对于品牌角色(服装上带有 Logo):

  1. 先生成穿着无 Logo 服装的角色
  2. 将 Logo 作为第二张参考图,通过 phota/edit 添加 Logo
  3. 生成新角度时,始终将 Logo 图像与角色参考图一同传入
步骤 2:生成不同角度

为每个角色至少生成 2 个角度,以丰富画面变化:

角度使用场景
正面 / 中景建立镜头、开场、结尾
特写反应、情绪时刻、有力的台词

生成特写时,提示词使用“紧凑构图,胸部以上,浅景深”——不要用“转向一侧”(这只会让角色看向别处)。

身份一致性规则:

  • 对于有 Phota 配置文件的真人:使用 phota/generate 或 phota/edit 生成新角度——Gemini 无法保持面部身份一致,会生成另一个人
  • 对于没有 Phota 配置文件的真人:尽量一次性使用 pruna/p-image 生成所有需要的角度;如果需要许多镜头,可考虑训练 Phota 配置文件
  • 对于吉祥物 / 插画:Gemini 3 Pro 效果不错,将已确定的画面作为参考传入

构图规则: 对单个发言者使用紧凑构图。多人座位的广角镜头在画面中只有一个人时会显出空椅子。

步骤 3:检查画面

继续之前,请目视检查所有画面,确认没有以下问题:

  • 背景中出现多余的人物
  • 出现多个麦克风(每个镜头应只有一个麦克风)
  • Logo 错误或变形
  • 不同角度之间的角色身份不一致
  • 奇怪的瑕疵(多余肢体、物体融合)

生成视频之前先修复问题——重新渲染视频是整个流水线中成本最高的一步。

步骤 4:编写脚本

自然对话规则:

  • 写得像真实对话,而不是轮流念广告词
  • 加入反应(“等等,先等一下”“这也太离谱了”)、打断和追问
  • 轮次长短要有变化——短促的反应(1 句话)与较长的解释(2-3 句话)交替出现
  • 主持人应该提出真实的问题,而不是刻意引出显而易见的话题
  • 牢记目标总时长:按 1.05 倍语速进行自然口播时,每秒约 2.5 个词

时长参考:

目标词数
15s~38 词
30s~75 词
60s~150 词
步骤 5:生成 TTS 音频

每轮使用 inworld/text-to-speech-2。

infsh app run inworld/text-to-speech-2 --input '{
  "text": "...",
  "voice_id": "...",
  "speaking_rate": 1.05,
  "audio_encoding": "MP3"
}' --save output.json

语音选择:

  • 确定语音前,先用同一句台词生成不同候选语音的样本
  • 让用户试听并确认语音
  • 适合播客的语音:Tyler、Nate、Lauren、Kelsey、Naomi、Anjali(EN_US)
  • 使用 inworld/text-to-speech-2:voices 列出所有可用语音

语速:

  • 自然的播客节奏默认使用 1.05
  • 短促有力的反应使用 1.1
  • 绝不要低于 1.0——听起来会很慢,让人失去兴趣
  • 同一角色的所有轮次都要保持语速一致

所有 TTS 轮次都可以并行运行(成本低、速度快,每轮约 2-8s)。

步骤 6:生成视频片段

每轮使用 pruna/p-video-avatar。

infsh app run pruna/p-video-avatar --input '{
  "image": "<character_frame_url>",
  "audio": "<tts_audio_url>",
  "resolution": "720p",
  "video_prompt": "..."
}' --save output.json

**关键:按顺序运行片段,不要并行运行。**并行运行会争用同一块 GPU,导致 CUDA OOM 错误。每个片段耗时 15-90s,具体取决于音频长度。

**镜头角度分配方案:**在不同轮次间交替使用正面和特写镜头,让画面更丰富。6 轮的示例:

T1: Speaker A — front
T2: Speaker B — front
T3: Speaker C — front (or close-up)
T4: Speaker A — close-up
T5: Speaker B — close-up
T6: Speaker A — front
步骤 7:合并

使用 infsh/media-merger 将所有片段拼接成最终视频。

# Build input JSON
{
  "media_files": [
    {"file": "<clip1_url>"},
    {"file": "<clip2_url>"},
    ...
  ],
  "fps": 24,
  "output_format": "mp4"
}

infsh app run infsh/media-merger --input merger_input.json --save final.json

合并工具免费,耗时 2-6 分钟,具体取决于总时长。

规则
  1. Gemini 无法保留真人面部身份——使用 Gemini 生成真人的其他角度时,会生成一个不同的人。若要生成身份一致的真人镜头,请使用带有已训练 profile_id 的 Phota,或在一次批处理中生成所有角度。这是因为 Gemini 曾为本应与正面镜头匹配的特写生成了一张完全不同的脸。

  2. 绝不要并行运行 p-video-avatar 片段——它们会争用 GPU 内存,导致 CUDA OOM 错误。请按顺序运行。此前 3 次并行运行中有 2 次失败,得出了这一经验。

  3. 绝不要将 speaking_rate 设为低于 1.0——听起来不自然,也会让人失去兴趣。默认使用 1.05。用户反馈说 0.9 的语速“感觉很奇怪,也让人失去兴趣”。

  4. 生成视频前务必检查画面——视频生成是整个流程中成本最高的步骤。在图像阶段发现麦克风重复或 Logo 错误,修复成本很低;等视频生成后才发现,就意味着要重新渲染整个片段。

  5. 单人发言镜头务必采用紧凑构图——广角或全景镜头会拍到其他发言者应该坐着的空座位。画面应从腰部或胸部以上取景,避免出现空椅子。

  6. 生成带品牌标识的角色时,务必将 Logo 作为参考图像提供——仅用文字描述 Logo 会生成错误结果。请将实际的 Logo 文件作为第二张图像输入。

  7. 正式制作前务必先让用户确认语音——使用同一句台词生成 5-8 种候选语音的样本,并在确定完整脚本前让用户挑选。

  8. 脚本应读起来像对话,而不是广告——轮流念广告词会显得很假。要加入反应、打断、长短不一的轮次和真诚的问题。主持人应有自己的个性,而不是只负责引出话题。

应用参考
应用用途
pruna/p-image根据文本生成肖像
phota/train使用 30-50 张人脸图像训练身份档案
phota/generate通过 [[profile_id]] 使用已训练的身份生成图像
phota/edit编辑图像,同时保留已知人物的身份特征
google/gemini-3-pro-image-preview图像生成/编辑、吉祥物、风格迁移
inworld/text-to-speech-2文本转语音,支持 100 多种语言和语音控制
pruna/p-video-avatar肖像 + 音频 → 说话头像视频
infsh/media-merger将多个视频片段合并为一个视频

使用 belt task cost <task-id> 查看任意单项任务的费用。

评论

支持 Markdown