talking-head-production について
AI アバターモデルでトーキングヘッド動画を制作する belt コマンドラインスキルです。テキストや音声を使う手順、ポートレートの準備、音声とスタイルの調整、多言語や複数人物の動画制作を扱います。
主な機能
- 01台本または音声からアバター動画を生成
- 02P-Video-Avatar の内蔵 TTS
- 03ポートレートの生成と準備ガイド
- 04音声、言語、スタイルの調整
- 05複数人物とクリップ結合のワークフロー
活用シーン
- 01ナレーション付き製品デモの制作
- 02アバターによる多言語動画の制作
- 03二人の会話クリップの作成
- 04長尺動画の分割と結合
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ magentosh/ superpowers --skill talking-head-productionインストール後、Claude Code で/talking-head-productionを入力して読み込まれたか確認します。
詳細
belt CLI スキルをインストール:
npx skills add belt-sh/cli
トーキングヘッド動画の制作
inference.sh CLI を使って、AI アバターとリップシンクでトーキングヘッド動画を作成します。
クイックスタート
inference.sh CLI(
belt)が必要です。インストール手順
belt login
# Recommended: P-Video-Avatar (built-in TTS, fastest, cheapest)
belt app run pruna/p-video-avatar --input '{
"image": "https://portrait.jpg",
"voice_script": "Welcome to our product tour. Today I will show you three features that will save you hours every week.",
"voice": "Zephyr (Female)"
}'
ポートレートの要件
元となるポートレート画像は非常に重要です。ポートレートの品質が低いと、動画の仕上がりも悪くなります。
必須条件
| 要件 | 理由 | 仕様 |
|---|---|---|
| 中央にフレーミング | アバターの顔を予測可能な位置に配置する必要があります | 顔がフレームの中央にあること |
| 頭部と肩を含める | 身体が見えることで、ジェスチャーが自然になります | 胸より下をトリミング |
| カメラ目線 | 視聴者とのつながりを生み出します | 正面を直接見ること |
| 自然な表情 | アニメーションの開始点になります | 軽い笑顔は問題ありませんが、笑いすぎたり顔をしかめたりしないこと |
| 顔がはっきり見える | モデルが特徴を検出する必要があります | サングラス、濃い影、遮蔽物がないこと |
| 高解像度 | ディテールを保つため | 顔の範囲は最低512x512、できれば1024x1024以上 |
ポートレートを生成する
# Generate a professional portrait with 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分の1です。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 | なし | リアルなリップシンク |
コストと速度の比較
| モデル | 速度(動画1秒あたり) | 1秒あたりのコスト |
|---|---|---|
| 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": "Hi there! I am excited to share something with you today.",
"voice": "Puck (Male)",
"voice_language": "English (US)",
"resolution": "720p"
}'
スタイルを指定する
belt app run pruna/p-video-avatar --input '{
"image": "https://portrait.jpg",
"voice_script": "This is exciting news for our community!",
"voice": "Aoede (Female)",
"voice_prompt": "Enthusiastic and energetic tone, slightly faster pace",
"video_prompt": "The person is presenting on stage with dramatic lighting",
"resolution": "1080p"
}'
音声駆動(すべてのモデル)
独自の音声ファイルを指定します。
# P-Video-Avatar with custom audio
belt app run pruna/p-video-avatar --input '{
"image": "https://portrait.jpg",
"audio": "https://speech.mp3"
}'
# OmniHuman with custom audio
belt app run bytedance/omnihuman-1-5 --input '{
"image_url": "https://portrait.jpg",
"audio_url": "https://speech.mp3"
}'
完全なワークフロー:ポートレートとアバターを生成
# 1. Generate a portrait image
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. Create avatar video with built-in TTS
belt app run pruna/p-video-avatar --input '{
"image": "<image-url-from-step-1>",
"voice_script": "Hi there! Let me walk you through our latest features.",
"voice": "Zephyr (Female)"
}'
TTSを別途使用する(TTS非対応モデルの場合)
# 1. Generate speech
belt app run falai/dia-tts --input '{
"prompt": "[S1] Your narration script here."
}'
# 2. Create talking head
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. Generate dialogue with two speakers
belt app run falai/dia-tts --input '{
"prompt": "[S1] So tell me about the new feature. [S2] Sure! We built a dashboard that shows real-time analytics. [S1] That sounds great. How long did it take? [S2] About two weeks from concept to launch."
}'
# 2. Create video with two characters
belt app run bytedance/omnihuman-1-5 --input '{
"image_url": "https://two-person-portrait.png",
"audio_url": "<audio-url>"
}'
長尺コンテンツ(クリップを連結)
約60秒を超えるコンテンツは、セグメントに分割します。
# Generate clips with same portrait for consistency
belt app run pruna/p-video-avatar --input '{"image": "https://portrait.jpg", "voice_script": "Segment one..."}' --no-wait
belt app run pruna/p-video-avatar --input '{"image": "https://portrait.jpg", "voice_script": "Segment two..."}' --no-wait
belt app run pruna/p-video-avatar --input '{"image": "https://portrait.jpg", "voice_script": "Segment three..."}' --no-wait
# Merge all segments
belt app run infsh/media-merger --input '{
"media": ["segment1.mp4", "segment2.mp4", "segment3.mp4"]
}'
多言語コンテンツ
P-Video-Avatarは、組み込みTTSで10言語に対応しています。
# Spanish
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"
}'
# Japanese
belt app run pruna/p-video-avatar --input '{
"image": "https://portrait.jpg",
"voice_script": "こんにちは、製品デモへようこそ。",
"voice": "Leda (Female)",
"voice_language": "Japanese"
}'
既存の動画を吹き替える
# 1. Transcribe original video
belt app run infsh/fast-whisper-large-v3 --input '{"audio_url": "https://video.mp4"}'
# 2. Translate text (manually or with LLM)
# 3. Generate speech in new language
belt app run infsh/kokoro-tts --input '{"text": "<translated-text>"}'
# 4. Lipsync original video with new audio
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
言語: 英語(米国)、英語(英国)、スペイン語、フランス語、ドイツ語、イタリア語、ポルトガル語(ブラジル)、日本語、韓国語、ヒンディー語
フレーミングのガイドライン
┌─────────────────────────────────┐
│ Headroom (minimal) │
│ ┌───────────────────────────┐ │
│ │ │ │
│ │ ● ─ ─ Eyes at 1/3 ─ ─│─ │ ← Eyes at top 1/3 line
│ │ /|\ │ │
│ │ | Head & shoulders │ │
│ │ / \ visible │ │
│ │ │ │
│ └───────────────────────────┘ │
│ Crop below chest │
└─────────────────────────────────┘
よくある間違い
| 間違い | 問題 | 対処法 |
|---|---|---|
| 低解像度のポートレート | 顔がぼやけ、リップシンクの品質が低下します | 顔の領域を1024x1024以上にします |
| 横向き・斜め向きのアングル | 口をうまく追跡できず、リップシンクが乱れます | 正面、またはそれに近い向きにします |
| ノイズの多い音声 | リップシンクがずれ、不自然に見えます | 内蔵のTTSを使うか、ノイズのない音声を録音します |
| 長すぎるクリップ | 品質が低下します | セグメントに分割して、つなぎ合わせます |
| サングラス・遮蔽物 | 顔の特徴が隠れます | 顔がはっきり見える必要があります |
| 不均一な照明 | アニメーション化すると不自然に見えます | 均一で柔らかい照明にします |
関連スキル
# Dedicated P-Video-Avatar skill
npx skills add inference-sh/skills@p-video-avatar
# All avatar models
npx skills add inference-sh/skills@ai-avatar-video
# All video generation models
npx skills add inference-sh/skills@ai-video-generation
# Text-to-speech
npx skills add inference-sh/skills@text-to-speech
# Image generation (for portraits)
npx skills add inference-sh/skills@ai-image-generation
すべてのアプリを閲覧する:belt app list