安装 belt CLI 技能:
npx skills add belt-sh/cli
发言人视频制作
通过 inference.sh CLI 使用 AI 虚拟形象和唇形同步创建发言人视频。
快速开始
需要 inference.sh CLI(
belt)。安装说明
belt login
# 推荐:P-Video-Avatar(内置 TTS,最快,最便宜)
belt app run pruna/p-video-avatar --input '{
"image": "https://portrait.jpg",
"voice_script": "欢迎来到我们的产品之旅。今天我将向您展示三项功能,它们每周能为您节省数小时。",
"voice": "Zephyr (Female)"
}'
肖像要求
源肖像图像至关重要。糟糕的肖像 = 糟糕的视频输出。
必须满足
| 要求 | 原因 | 规格 |
|---|---|---|
| 画面居中 | 虚拟形象需要面部位于可预测位置 | 面部在画面中央 |
| 头部和肩部 | 身体可见,实现自然手势 | 裁剪至胸部以下 |
| 眼睛看向镜头 | 与观众建立联系 | 正对镜头 |
| 中性表情 | 动画起始点 | 可带轻微微笑,不要大笑/皱眉 |
| 清晰面部 | 模型需检测特征 | 无墨镜、浓重阴影或遮挡物 |
| 高分辨率 | 保留细节 | 面部区域至少 512x512,理想为 1024x1024 以上 |
生成肖像
# 使用 P-Image 生成专业肖像
belt app run pruna/p-image --input '{
"prompt": "professional headshot portrait of a friendly business person, soft studio lighting, clean grey background, head and shoulders, direct eye contact, neutral pleasant expression, photorealistic",
"aspect_ratio": "9:16"
}'
背景选项
| 类型 | 使用场景 |
|---|---|
| 纯色 | 专业、干净、易于合成 |
| 柔和虚化 | 自然、生活方式感 |
| 办公室/工作室 | 商务场景 |
| 动态(P-Video-Avatar) | 使用 video_prompt 设置背景 |
模型选择
从 P-Video-Avatar 开始——它比备选方案快18倍、便宜6倍,并内置 TTS。
| 模型 | 应用 ID | 内置 TTS | 最佳用途 |
|---|---|---|---|
| P-Video-Avatar | pruna/p-video-avatar | 是(30种声音,10种语言) | 整体最佳:速度、成本、质量 |
| OmniHuman 1.5 | bytedance/omnihuman-1-5 | 否 | 多角色、手势 |
| OmniHuman 1.0 | bytedance/omnihuman-1-0 | 否 | 单角色 |
| Fabric 1.0 | falai/fabric-1-0 | 是 | 图像说话带唇形同步 |
| PixVerse Lipsync | falai/pixverse-lipsync | 否 | 逼真的唇形同步 |
成本与速度对比
| 模型 | 速度(每秒钟视频) | 每秒成本 |
|---|---|---|
| P-Video-Avatar | 约1.83秒/秒 | $0.025 |
| OmniHuman 1.5 | 约28秒/秒(慢15倍) | $0.16(贵6.4倍) |
| Fabric 1.0 | 约34秒/秒(慢18倍) | $0.14(贵5.6倍) |
生产工作流程
简单:文本脚本 -> 视频(P-Video-Avatar)
无需单独的 TTS 步骤——P-Video-Avatar 内置语音:
belt app run pruna/p-video-avatar --input '{
"image": "https://portrait.jpg",
"voice_script": "嗨!今天我很兴奋与您分享一些内容。",
"voice": "Puck (Male)",
"voice_language": "English (US)",
"resolution": "720p"
}'
带风格控制
belt app run pruna/p-video-avatar --input '{
"image": "https://portrait.jpg",
"voice_script": "这对我们的社区来说是一个激动人心的消息!",
"voice": "Aoede (Female)",
"voice_prompt": "充满热情和活力的语气,语速稍快",
"video_prompt": "该人物在舞台上进行演示,带有戏剧性灯光",
"resolution": "1080p"
}'
音频驱动(任何模型)
提供您自己的音频文件:
# P-Video-Avatar 配合自定义音频
belt app run pruna/p-video-avatar --input '{
"image": "https://portrait.jpg",
"audio": "https://speech.mp3"
}'
# OmniHuman 配合自定义音频
belt app run bytedance/omnihuman-1-5 --input '{
"image_url": "https://portrait.jpg",
"audio_url": "https://speech.mp3"
}'
完整工作流程:生成肖像 + 虚拟形象
# 1. 生成肖像图像
belt app run pruna/p-image --input '{
"prompt": "professional headshot portrait of a young woman, neutral background, looking at camera, studio lighting, photorealistic",
"aspect_ratio": "9:16"
}'
# 2. 使用内置 TTS 创建虚拟形象视频
belt app run pruna/p-video-avatar --input '{
"image": "<step-1-image-url>",
"voice_script": "嗨!让我为您介绍我们的最新功能。",
"voice": "Zephyr (Female)"
}'
配合独立 TTS(用于不支持 TTS 的模型)
# 1. 生成语音
belt app run falai/dia-tts --input '{
"prompt": "[S1] 您的解说脚本在此。"
}'
# 2. 创建发言人视频
belt app run bytedance/omnihuman-1-5 --input '{
"image_url": "https://portrait.jpg",
"audio_url": "<audio-url-from-step-1>"
}'
多角色对话
OmniHuman 1.5 支持最多2个角色:
# 1. 生成两个说话者的对话
belt app run falai/dia-tts --input '{
"prompt": "[S1] 跟我说说新功能。 [S2] 当然!我们构建了一个显示实时分析数据的仪表板。 [S1] 听起来不错。花了多长时间? [S2] 从概念到发布大约两周。"
}'
# 2. 创建两个角色的视频
belt app run bytedance/omnihuman-1-5 --input '{
"image_url": "https://two-person-portrait.png",
"audio_url": "<audio-url>"
}'
长视频(拼接片段)
对于超过约60秒的内容,拆分为多个片段:
# 使用相同肖像生成片段以确保一致性
belt app run pruna/p-video-avatar --input '{"image": "https://portrait.jpg", "voice_script": "片段一..."}' --no-wait
belt app run pruna/p-video-avatar --input '{"image": "https://portrait.jpg", "voice_script": "片段二..."}' --no-wait
belt app run pruna/p-video-avatar --input '{"image": "https://portrait.jpg", "voice_script": "片段三..."}' --no-wait
# 合并所有片段
belt app run infsh/media-merger --input '{
"media": ["segment1.mp4", "segment2.mp4", "segment3.mp4"]
}'
多语言内容
P-Video-Avatar 通过内置 TTS 支持10种语言:
# 西班牙语
belt app run pruna/p-video-avatar --input '{
"image": "https://portrait.jpg",
"voice_script": "Bienvenidos a nuestra demostración de producto.",
"voice": "Kore (Female)",
"voice_language": "Spanish"
}'
# 日语
belt app run pruna/p-video-avatar --input '{
"image": "https://portrait.jpg",
"voice_script": "こんにちは、製品デモへようこそ。",
"voice": "Leda (Female)",
"voice_language": "Japanese"
}'
为现有视频配音
# 1. 转录原始视频
belt app run infsh/fast-whisper-large-v3 --input '{"audio_url": "https://video.mp4"}'
# 2. 翻译文本(手动或使用大语言模型)
# 3. 用新语言生成语音
belt app run infsh/kokoro-tts --input '{"text": "<translated-text>"}'
# 4. 将新音频与原始视频进行唇形同步
belt app run infsh/latentsync-1-6 --input '{
"video_url": "https://original-video.mp4",
"audio_url": "<new-audio-url>"
}'
音频质量(适用于非 TTS 工作流程)
当您提供自己的音频时,音频质量直接影响唇形同步的准确性。
| 参数 | 目标 | 原因 |
|---|---|---|
| 背景噪音 | 无/极少 | 噪音会干扰唇形同步时机 |
| 音量 | 全程一致 | 防止同步漂移 |
| 采样率 | 44.1kHz 或 48kHz | 标准质量 |
| 格式 | MP3 128kbps+ 或 WAV | 与所有工具兼容 |
可用语音(P-Video-Avatar)
女性: Zephyr, Kore, Leda, Aoede, Callirrhoe, Autonoe, Despina, Erinome, Laomedeia, Achernar, Gacrux, Pulcherrima, Vindemiatrix, Sulafat
男性: Puck, Charon, Fenrir, Orus, Enceladus, Iapetus, Umbriel, Algenib, Algieba, Schedar, Achird, Zubenelgenubi, Sadachbia, Sadaltager, Alnilam, Rasalgethi
语言: 英语(美国)、英语(英国)、西班牙语、法语、德语、意大利语、葡萄牙语(巴西)、日语、韩语、印地语
画面构图指南
┌─────────────────────────────────┐
│ 头顶空间(最小) │
│ ┌───────────────────────────┐ │
│ │ │ │
│ │ ● ─ ─ 眼睛位于1/3处 ─ ─│─ │ ← 眼睛位于上三分之一线
│ │ /|\ │ │
│ │ | 头部和肩部可见 │ │
│ │ / \ │ │
│ │ │ │
│ └───────────────────────────┘ │
│ 裁剪至胸部以下 │
└─────────────────────────────────┘
常见错误
| 错误 | 问题 | 解决方法 |
|---|---|---|
| 低分辨率肖像 | 面部模糊,唇形同步差 | 面部区域使用 1024x1024 以上 |
| 侧面/侧面角度 | 唇形同步无法良好追踪嘴巴 | 使用正面或接近正面的角度 |
| 有噪音的音频 | 唇形同步漂移,看起来不自然 | 使用内置 TTS 或录制干净的音频 |
| 片段过长 | 质量下降 | 拆分为片段,然后拼接 |
| 墨镜/遮挡物 | 面部特征被隐藏 | 需要清晰面部 |
| 光线不一致 | 动画时显得不自然 | 均匀、柔和的光线 |
相关技能
# 专用 P-Video-Avatar 技能
npx skills add inference-sh/skills@p-video-avatar
# 所有虚拟形象模型
npx skills add inference-sh/skills@ai-avatar-video
# 所有视频生成模型
npx skills add inference-sh/skills@ai-video-generation
# 文字转语音
npx skills add inference-sh/skills@text-to-speech
# 图像生成(用于肖像)
npx skills add inference-sh/skills@ai-image-generation
浏览所有应用:belt app list