デジタルヒューマン動画 · エージェントスキル
目標
トピックまたは準備されたスクリプトを受け取り、縦型AIデジタルヒューマン口パク動画を生成します:スクリプト → MiniMax TTS → HeyGen デジタルヒューマン口パク → FFmpeg(字幕、タイトル、AI識別表示、オプションのピクチャーインピクチャー/BGM追加)→ MP4 + 公開用文案。初回は個人のデジタルヒューマンLook IDと音声クローンVoice IDのみを作成し、以降の呼び出しではこれらを再利用し、再作成は行いません。コストがかかる15秒のHeyGenプレビューを提供します。デフォルトではユーザーがプレビューを確認した後にのみ本番動画を生成します。ユーザーが明示的に自動承認を選択した場合にのみ、プレビューと本番を連続して実行します。
インストールと確認
- Skillを
~/.codex/skills/digital-human-videoまたは~/.claude/skills/digital-human-videoに配置し、SKILL.mdがフォルダのルートにあることを確認します。 - Python 3.10+、
pip install -r requirements.txt、システムにffmpeg/ffprobe(libassおよび H.264 エンコーダーを含む)がインストールされていること。日本語フォントが利用可能な場合に最適な結果が得られます。 .env.exampleを.envにコピーし、ローカルの安全な方法でKeyを設定します。ユーザーにKeyや本人の写真・音声をチャットに貼り付けるよう要求しないでください。.envをGitに含めないでください。- 最初に以下を実行します:
python scripts/dhv.py doctor、次にpython scripts/dhv.py run --topic '...' --out ./outputs/example --dry-run。
操作フロー(順序通り)
- 許可と素材の確認。 本人または十分な権限を持つ実在人物の肖像・音声のみを受け付けます。同意なく複製、なりすまし、または視聴者を誤解させる行為を禁止します。実在人物の写真/動画および音声について、それぞれ権限を確認します。AI合成動画には明確な識別表示を残します。音楽、ピクチャーインピクチャー素材には許可が必要です。
- 一度だけのプロファイル作成。 音声サンプルは30~60秒のクリーンな録音が最適です(MiniMax公式は10秒~5分、≤20MB、mp3/m4a/wavを受け付け)。動画/写真はHeyGen v3にアップロードしてAvatarを作成します。写真は正面高解像度が推奨され、動画トレーニングには個別の実在人物の同意/確認が必要で、これを完了しなければならず、トレーニングは非同期で行われます。
avatarsを使用してトレーニングが完了したLook IDを照会します。MINIMAX_VOICE_ID、HEYGEN_AVATAR_IDを後続のパイプラインに提供します。 - 先に口パク用スクリプトを作成。 ユーザーが本文を提供しない場合、LLMが自動的に「3秒のフック → 2~3つの論点 → まとめ」を書き、対象視聴者、プラットフォーム、予想秒数を明確にします。検証不可能なデータを捏造してはいけません。構成/編集のクリエイティブはClaude Opus 5.5が処理することも、Codexが処理することもできます。モデルはスクリプトとスケジューリングを担当し、実際のメディア処理はFFmpegが実行します。
- プレビュー。
run --mode preview:state.jsonとscript.txtの再利用を優先します。最初の約55文字(約15秒相当)に対して音声を合成し、デジタルヒューマンを駆動してpreview_final.mp4を生成します。異なる話速の場合、プレビューの秒数は厳密に15秒であるとは限りません。 - ディレクター/編集プラン。 現在のAgentがClaude Opus 5.5であるか、Opusに委任できる場合、
script.txt、トピック、ブランド、素材リストを渡し、edit-plan.jsonを出力させます。これはexamples/edit-plan.jsonのJSONキーに厳密に従います:headline、brand、key_points[{text,start,end}]、pip_start/end、subtitle_font_size、music_volume(0~0.3)。開始/終了時間は完成動画の長さの範囲内でなければなりません。--edit-planによりFFmpegがキーワードカードアニメーション/ピクチャーインピクチャーのタイムライン、字幕スタイル、BGM音量を実行します。Opusがない場合、Codex/現在のAgentが同じJSONを生成します。モデルは決定のみを行い、自ら動画をレンダリングしたふりをしてはいけません。 - レビューと実行。 ユーザーが口パク、明瞭さ、著作権、字幕、リアリティを確認します。承認後、
run --mode full --approveを実行します。既に許可を得ており、明示的に人間によるレビューなしを選択した場合は、run --mode full --auto-approveで自動的に2本の動画(プレビュー+本番)を生成します。許可なく直接ソーシャルプラットフォームに公開してはいけません。 - 検証と成果物の引き渡し。
full_final.mp4の長さ、音声と映像の同期、字幕、タイトルの重なり、音楽音量、AI合成識別表示を確認し、publish.mdを成果物として提供します。外部公開前に事実確認と各プラットフォームのAIGCルールの確認を要求します。
CLIの使用法(Skillルートディレクトリで)
# 初期化:自身の肖像および音声、既知の正当な許可がある場合のみ consent フラグを使用可能
python scripts/dhv.py avatar --file ./myself.mp4 --kind digital_twin --name 'My Presenter' --i-own-the-likeness
python scripts/dhv.py avatars # トレーニングには待機と公式確認の追加が必要な場合があります
python scripts/dhv.py clone --file ./myvoice.wav --voice-id MyBrandVoice2026 --i-own-the-voice
# プレビュー:デフォルトではMiniMaxテキストモデルがスクリプトを作成。--script-file でLLMをバイパス可能
python scripts/dhv.py run --topic 'AI如何帮助企业减少重复流程' --out ./outputs/ai-workflow --mode preview --edit-plan ./examples/edit-plan.json
# ユーザーレビュー後に本番実行
python scripts/dhv.py run --topic 'AI如何帮助企业减少重复流程' --out ./outputs/ai-workflow --mode full --approve
# 無人運転を明示的に同意した場合、1コマンドでプレビュー+本番(API動画呼び出しは2本分個別に課金)
python scripts/dhv.py run --topic '一分钟讲明白数字人' --out ./outputs/demo --mode full --auto-approve
# オプション素材
python scripts/dhv.py run --script-file ./script.txt --out ./outputs/manual --mode preview --music ./licensed-bgm.mp3 --broll ./owned-broll.mp4
Agentの実行ガイドライン
--dry-runやユニットテストの合格を「HeyGen/MiniMaxが実際に動作した」と説明してはいけません。有効な有料Keyと許可された素材がない場合、オフラインレンダリング/リクエスト形式の検証のみ可能です。- API非同期呼び出しがタイムアウトした場合、
state.json内のvideo_idを表示して再利用し、直接再構築して二重課金を引き起こさないでください。 - 音声クローンにはMiniMaxの実名認証が必要です。
voice_idが7日間TTSに使用されなかった場合、無効になる可能性があります。既存の音色を優先的に試し、黙って再クローンしないでください。 - プラットフォームが提供する字幕ファイルは逐語的に正確ではない場合があります。使用可能なSRTが返されない場合、ツールは推定時間の字幕を生成し、
state.jsonにapproximateとマークします。納品前に再確認が必要であり、逐語的な正確さを求める場合は別途ASRによるアライメントを推奨します。 - 動画サイズ/トレーニングポリシー/認証/クォータ制限に遭遇した場合、具体的なエラーを報告し、全自動で完了したと主張してはいけません。
- 抖音、快手、视频号、小红书、Bilibiliなどに自動ログインまたは直接公開することはありません。各プラットフォームの認証APIに接続していないためです。
publish.mdのみを生成し、レビュー後の公開に備えます。 - API Key、録音原稿、類似音色、生成されたアセットを公開コードリポジトリに含めないでください。
参照
- APIインターフェースと地域設定の詳細は
references/api.mdを参照。 - 成果物の引き渡しとトラブルシューティングの詳細は
README.mdを参照。