talking-head-production について
inference.sh CLIでAIアバターやリップシンク動画を制作するためのクリエイティブスキルです。肖像画像の準備、モデル選択、音声の利用、長尺動画の分割・結合を案内します。
主な機能
- 01リップシンク付きアバター動画の生成
- 02内蔵TTSまたは音声ファイルの利用
- 03多言語・複数キャラクターへの対応
- 04長尺クリップの分割と結合
- 05肖像画像と音声の準備ガイド
活用シーン
- 01製品紹介やデモ動画の作成
- 02肖像画像から話すアバターを制作
- 03複数キャラクターの会話動画を作成
- 04分割したクリップで長尺動画を制作
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ inference-sh/ skills --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 | なし | 1人のキャラクター |
| 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": "https://portrait.jpg",
"audio": "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": "https://portrait.jpg",
"audio": "<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": "https://two-person-portrait.png",
"audio": "<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_files": [
{"file": "segment1.mp4"},
{"file": "segment2.mp4"},
{"file": "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": "https://video.mp4"}'
# 2. Translate text (manually or with LLM)
# 3. Generate speech in new language
belt app run falai/kokoro-tts --input '{"prompt": "<translated-text>"}'
# 4. Lipsync original video with new audio
belt app run infsh/latentsync-1-6 --input '{
"video_path": "https://original-video.mp4",
"audio_path": "<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