mcpField
L
lanshu-create-ai-presenter-video

lanshu-create-ai-presenter-video

github.com/cclankクリエイティブ・メディア2.8k41 回インストール2 週間前に更新
リポジトリ

lanshu-create-ai-presenter-video について

トピックまたは台本と使用許可済み画像から、AIプレゼンター動画を制作するクリエイター向けスキルです。ナレーション、映像生成、編集、納品確認を管理し、記録された状態と機械・目視のQAに基づいて完了を判定します。

主な機能

  1. 01トピックまたは台本から制作を開始
  2. 02確定したナレーションをタイムラインの基準に設定
  3. 03生成タスクと制作状態を記録
  4. 04映像・音声・字幕を確認
  5. 05マスター版と共有版を検証

活用シーン

  1. 01AIプレゼンターによる解説動画を制作
  2. 02確定したナレーションから分割生成を計画
  3. 03未完了の動画制作ジョブを再開
  4. 04納品前に動画ファイルを確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/cclank/lanshu-create-ai-presenter-video --skill lanshu-create-ai-presenter-video

インストール後、Claude Code で/lanshu-create-ai-presenter-videoを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

.gitignore
LICENSE
README.md
README.zh-CN.md
.github/workflows/
validate.yml
agents/
openai.yaml
assets/
job.template.json
references/
generation.md
qa-recovery.md
editing.md
scripts/
check_state.py
finalize_delivery.sh
init_job.py
preflight.py
plan_segments.py
tests/
smoke.sh

詳細

Lanshu AI プレゼンター動画を作成する

最小限の入力から、検証済みのプレゼンター主導動画を制作します。最終ナレーションを、プレゼンターの動き、字幕、グラフィック、カット、動画の長さを同期させる基準として使用します。

必須の成果物

  • トピックまたはスクリプトと、成人のプレゼンターが一人、はっきりと写っている許可済みの画像一枚から開始します。
  • 完全にデコードできるマスター動画、小容量の共有用動画、字幕、制作記録、機械検査と目視検査それぞれのQAメモを作成します。
  • プロバイダー、モデル、アスペクト比、言語、動画の長さを変えても、このワークフローを利用できるようにします。

運用ルール

  • 関連するリモート操作を行う前に、画像の権利、成人であること、リモートへのアップロード許可、音声クローンの許可を確認します。
  • リモート生成には料金が発生する可能性があるものとして扱います。最初の有料リクエストを送る前に、アップロードするアセット、リクエストする秒数または単位、判明している費用、パイロットの規模、再試行の上限、想定される出力を明示します。その計画に対してすでに承認を得ている場合は、その承認を再利用します。
  • 画像から実在の人物の声を推測してはいけません。許可済みの音声サンプルを使用するか、選択したストックボイスを録音します。
  • プレゼンター生成、字幕のタイミング設定、最終シーンの区切りを決める前に、ナレーション全体を確定します。
  • プレゼンター画像一枚、声の識別情報一つ、ビジュアル処理一つ、連続したプレゼンター映像一つを優先します。
  • 最終合成では動画ソースをミュートします。承認済みの外部ナレーションと、意図したミックストラックのみを出力に使用します。
  • 認証情報や有効期限付きURLを除き、プロバイダーへのリクエスト本文とタスクIDを保持します。中断された作業は、再送信を検討する前にポーリングします。
  • 技術的な不具合は数値チェックで確認し、本人の識別、口の動きのタイミング、まばたき、ジェスチャー、手、照明、連続性は通常速度で目視確認します。
  • 有料候補を3つ却下した時点、または費用、プライバシー、音声、外見、プロバイダーに重大な影響を与える変更を行う前に停止します。
  • 最終ファイルが完全にデコードでき、コンタクトシートまたは全編再生を確認し、check_state.py が verified を報告するまで、完了したと主張してはいけません。

ジョブの開始または再開

新しいジョブの場合は、generation.mdを読んでください。SKILL_DIR に、このファイルを含むディレクトリを設定します。場所はハーネスによって異なります。その後、次を実行します。

SKILL_DIR=/path/to/lanshu-create-ai-presenter-video

python3 "$SKILL_DIR/scripts/init_job.py" \
  --job-dir ~/Videos/my-presenter-video \
  --presenter-image ~/Pictures/presenter.png \
  --topic "用一分钟讲清楚上下文工程"

既存のスクリプトファイルには --script を使用します。任意のフラグには、--voice-sample、--supporting-media、--duration、--aspect、--width、--height、--fps、--watermark、--cta があります。初期化時にすべての入力がジョブ内にコピーされ、ジョブからの相対パスが記録されるため、ジョブディレクトリは単独で完結します。後続の成果物パスも、ジョブからの相対パスにしてください。

元画像を実際に確認し、音声サンプルがあれば聞きます。手動レビューと承認を job.json に記録してから、次を実行します。

python3 "$SKILL_DIR/scripts/preflight.py" ~/Videos/my-presenter-video/job.json

既存のジョブの場合は、job.json、現在の成果物、タスクID、QAレポートを読み込み、次に check_state.py(以下を参照)を実行して、最も早い未完了の状態を特定します。受け入れ済みの作業を再生成せず、その状態から再開します。

制作ステートマシン

必要な証拠が存在する場合にのみ、ジョブを次の状態に進めます。

intake
→ content_locked       passing preflight report, script, beat sheet
→ audio_locked         decodable final audio, ASR report
→ visual_plan_locked   timeline, storyboard, plan.status "approved"
→ presenter_generated  recorded main_presenter capability, selected video, visual review
→ composition_checked  composition report
→ rendered             decodable render with video and audio
→ verified             master, share, delivery report with passing output loudness

state を手動で編集してはいけません。成果物を job.json に記録し、チェッカーに状態を判定させます。

python3 "$SKILL_DIR/scripts/check_state.py" ~/Videos/my-presenter-video/job.json --write

--write を指定しない場合、チェッカーは報告のみを行います。記録された状態が証拠で裏付けられる範囲を超えていると、ゼロ以外の終了コードを返し、次の状態に進むために不足している項目を一覧表示します。

1. コンテンツと音声を確定する

generation.mdを読んでください。

  1. トピックを一貫した一つの話し言葉の構成にまとめるか、事実上の意味を黙って変えずに、提供されたスクリプトを磨き上げます。
  2. 制作用スクリプト、ビートシート、発音、ナレーションの各セクションを保存します。
  3. 承認済みの音声設定一つを使用して、ナレーション全体を生成します。
  4. セクションごとに一貫した方法で音量を正規化し、最終音声にASRを実行して、重要な欠落、追加、数字、名前、繰り返し発話を修正します。
  5. 実際の長さを記録します。この長さをタイムラインの基準とします。
2. プレゼンターを計画して生成する

プレゼンター主導、画面デモ、または解説との組み合わせを選びます。話される内容を実証または明確化する場合にのみ、補助メディアを使用します。

プロバイダーがリクエスト時間または参照音声の長さをナレーションより短く制限している場合は、推測せず、固定した音声のASRタイミングに基づいて分割を計画します。

python3 "$SKILL_DIR/scripts/plan_segments.py" \
  --timings ~/Videos/my-presenter-video/qa/asr/sentences.json \
  --audio ~/Videos/my-presenter-video/assets/audio/final/narration.wav \
  --cap 15 --whole-seconds \
  --output ~/Videos/my-presenter-video/qa/requests/segment-plan.json

プランのパスを plan.segment_plan に保存します。すべてのセグメントを、同じ画像、シード、フレーミング、照明、モーションの制約から生成します。

本番の前に、短く低コストのパイロットを生成します。メイントラックでは、人物の同一性と口のタイミングを優先します。動きのある導入または締めくくりには、制御されたジェスチャーを1つ使用します。身体の動きは許容できても口のタイミングに問題がある場合は、モーションプレートを維持し、固定した音声を使って専用のリップシンク修正を適用します。

プロンプト、パラメーター、プロバイダー/モデル/バージョン、リージョン、タスクID、要求した秒数、受け入れ時のメモをアーカイブします。

3. 動画を編集する

editing.md を読みます。

固定した音声に基づく決定的なタイムラインを作成します。設定した開始位置、長さ、ソースオフセットはそれぞれ独立させます。音声と選定したメディアが確定してから、キャプションとキーワードのコールアウトを追加します。

HyperFramesを使用する場合は、最新の hyperframes、general-video、および関連するドメインの手順を読み込みます。プロジェクトのチェックを実行し、トランジションと強調フレームを確認して、Studioのプレビューを開きます。レンダリングの前に、最終的な映像の承認を待ちます。

4. 検証して納品する

qa-recovery.md を読みます。

納品品質でレンダリングし、動画全編を視聴してから、最終処理を行います。

bash "$SKILL_DIR/scripts/finalize_delivery.sh" \
  ~/Videos/my-presenter-video/renders/rendered.mp4 \
  ~/Videos/my-presenter-video/outputs \
  my-video

最終処理では、入力のアスペクト比を維持し、2パスの番組ラウドネス正規化を行い、マスター版と共有版のエンコードを作成し、それらを完全にデコードして、納品時のラウドネスを測定し、黒画面と静止画イベントの数を数え、9フレームのコンタクトシートを生成します。すべてを一時ディレクトリ内で構築し、すべてのチェックに合格しない限り何も公開しません。目標値はデフォルトで -16 LUFS です。納品先で別の値が必要な場合は、PROGRAM_LUFS を設定します(例:PROGRAM_LUFS=-14)。

コンタクトシートを確認し、フリーズイベントが意図的な静止ショットかどうかを見直します。出力と納品レポートを job.json に記録し、check_state.py --write を実行して verified にします。

入力が最小限の場合のデフォルト動作

  • リクエストから言語を推定します。
  • 想定されるプラットフォームで別の形式が適切な場合を除き、9:16、1080×1920、30fpsを使用します。
  • 提供されたスクリプトの自然な長さを保ちます。トピックの場合は、45~75秒を目標にします。
  • 使用許可のある音声サンプルがない場合は、適切なストック音声を使用します。
  • デザインされたフック、役立つ2~4つの要点、簡潔な締めくくりを備えた、プレゼンター主導のレイアウトを使用します。
  • 依頼されている場合、または明確な理由がある場合を除き、音楽と宣伝用CTAは省きます。
  • 適用先のプラットフォームにふさわしい、信頼感があり、現代的で、読みやすく、安全なスタイルにします。

必須のジョブ成果物

job.json
docs/{SCRIPT,BEAT_SHEET,TIMELINE,STORYBOARD}.md
assets/source/
assets/audio/{reference,raw,final}/
assets/video/{candidates,selected,render}/
assets/captions/
qa/{requests,asr,contacts,reports}/
renders/
outputs/

参照先の使い分け

  • 受付、コンテンツ、音声、ツールの選定、プレゼンター用プロンプト、有料生成、またはプロバイダーの変更については、generation.md を読みます。
  • タイムラインの作成、画面デモのレイアウト、導入、締めくくり、キャプション、キーワードのコールアウト、プレビュー、書き出しについては、editing.md を読みます。
  • メディアや納品を受け入れる前、およびリップシンク、人物の同一性、手、露出、フリーズ、キャプション、音声、リモートジョブに問題が発生した場合は、qa-recovery.md を読みます。

コメント