Higgsfield Video Explainer
MCP video-explainer ワークフローをHiggsfield CLI経由で実行します。1つの視覚スタイルキーを固定し、10秒ブロックごとに1つのナレーション行と1つの対応するビジュアルプロンプトを作成し、最初にすべての音声テイクを生成し、次にすべてのビデオクリップを生成し、その後すぐにexplainer_videoで順序付けられたペアをアセンブルします。
このスキルでは、モノリシックな video_explainer ジョブを使用しないでください。
MCPからCLIへのマッピング
| MCP ワークフロー操作 | CLI 相当コマンド |
|---|---|
get_explainer_presets | higgsfield preset list video-explainer --json |
resolve_explainer_preset | higgsfield preset resolve video-explainer <preset_id> --json |
generate_image / nano_banana_pro | higgsfield generate create nano_banana_2 ... |
list_voices | higgsfield voices list --json |
generate_audio / seed_audio | higgsfield generate create seed_audio ... |
generate_video / gemini_omni | higgsfield generate create gemini_omni ... |
job_status | --wait --json または higgsfield generate wait <job_id> --json |
explainer_video | higgsfield generate create explainer_video ... |
nano_banana_2 は、MCPワークフローで使用されるNano Banana ProスタイルキーモデルのパブリックCLI IDです。
ブートストラップ
-
higgsfieldが利用できない場合は、インストールします:curl -fsSL https://raw.githubusercontent.com/higgsfield-ai/cli/main/install.sh | sh -
higgsfield account statusが失敗した場合、ユーザーにhiggsfield auth loginを実行するよう依頼し、待機します。 -
最初の提出前に、ライブ契約を確認します:
higgsfield model get nano_banana_2 higgsfield model get seed_audio higgsfield model get gemini_omni higgsfield model get explainer_video
フェーズ0 — 最初に質問する
選択肢を、この順序で2つの別々のターンで収集します。決してマージしないでください。
ターン1 — スタイルのみ
常にライブCMSカタログを読み込みます:
higgsfield preset list video-explainer --json
プリセット名とそのサムネイル/ビデオプレビューURLを表示します。ユーザーにプリセットを選ぶか、カスタムスタイルを説明するか、スタイル参照画像を添付するよう促す短い一文を言い、ターンを終了します。同じターンで制作に関する質問をしないでください。スタイルの選択は必須です。ユーザーが明示的に「あなたが選んで」と言わない限り、黙って選択しないでください。
リクエストに既に explorer preset id: <uuid> が含まれている場合のみ、このターンをスキップします。そのUUIDがライブカタログに存在することを確認し、フェーズ1のために保持します。
ターン2 — 制作設定
スタイル選択後でのみ、未解決のすべての設定を収集します:
- 尺: 1分から10分の整数。
N = 尺(分) × 6の固定10秒ブロック。 - ナレーション言語: デフォルトは英語ですが、それでも選択肢を提示します。
- キャラクター: 繰り返し登場するマスコット、またはフェイスレスなスタイリッシュなシーン。常に質問します。
- アスペクト: デフォルトは
16:9または9:16縦長。 - 字幕: デフォルトはオフ。字幕は音声ブロックごとに0.05クレジットかかることを説明します。有効にする場合、ユーザーに
patrick、caveat、marker、antonのいずれかを選択させます。決して黙って選択しないでください。
すべての選択は、ユーザーが明示的に委任しない限り、ユーザーに属します。
入力
- トピックまたは個人的/哲学的なストーリー。
- オプションのローカルソースドキュメント。スクリプト作成前に読み取り/抽出します。これらは事実上の入力であり、生成メディアではありません。
- オプションのプリセットUUID。カスタムスタイル参照画像とは相互に排他的です。
- オプションのスタイル参照画像。レンダリングスタイルとカラーグレーディングのみを使用します。特にリクエストがない限り、人物、テキスト、ロゴ、オブジェクトをコピーしないでください。
- フェーズ0からの尺、言語、キャラクターモード、アスペクト、字幕の選択。
ローカルスタイル提供者の場合は、各パスを繰り返し --image で渡します。ウェブ画像の場合は、最初にローカルにダウンロードするか、既存のアップロード済みメディアIDを使用します。
ハードルール
- すべてのビジュアルを厳密に非フォトリアリスティックに保ちます。すべてのクリッププロンプトで同じSTYLE記述子と非リアリズムの否定語を繰り返します。
- すべての音声をビデオ生成から除外します。クリップオーディオは環境音または音楽のみ。ダイアログ、リップシンク、焼き込みナレーションは禁止。
- ラベル付けされたブロックごとに、正確に1つのナレーションテイクと1つのクリップを使用します。ブロックNのオーディオは常にブロックNのビデオにマッピングされます。
- すべてのクリップに同じスタイルキー画像を添付します。
- すべての画像/ビデオプロンプトは英語で記述します。ナレーションのみが選択された言語を使用します。
- スクリプト作成前に実際のトピックを調査します。引用、日付、数値、イベントをでっち上げないでください。
- 同じ実行内で自動的にアセンブルします。バラバラのクリップを返すのは失敗です。
パイプライン
| フェーズ | 出力 | CLI |
|---|---|---|
| 0 質問 | スタイル優先。その後、尺、言語、キャラクター、アスペクト、字幕 | preset list + ユーザーへの質問 |
| R 調査 | 確認された事実とソース | 利用可能な調査ツール |
| 1 スタイルキー | 1つのユニバーサルスタイル画像 | preset resolve または nano_banana_2 |
| 2 ナレーション | N個のラベル付きナレーション行 | 推論 |
| 3 ブロックプロンプト | N個のラベル付きビデオプロンプト | 推論 |
| 4 音声 | ユーザーが1つの音声を選択。N個のテイクを生成 | voices list + seed_audio |
| 5 クリップ | N個の10秒クリップを生成 | gemini_omni |
| 6 アセンブル | 1つの最終MP4 | explainer_video |
フェーズ1〜3の前に references/prompts.md を読んでください。
フェーズR — 調査
実際のトピックの場合、利用可能なウェブ調査ツールと信頼できる情報源を使用して、すべてのブロックに十分な事実を確認します。短いソースリストを保持します。記憶だけから事実に基づく説明動画をスクリプト化しないでください。
個人のストーリーの場合、ウェブ調査をスキップし、ユーザーから提供された詳細のみを使用します。事実をでっち上げないでください。
フェーズ1 — スタイルキーの作成または解決
再利用可能なSTYLE記述子を1つ記述します: メディア、パレット、線/塗りの動作、テクスチャ/仕上げ。次に non-photorealistic, illustrated, not a photo, no live-action, no realism を追加します。
選択されたCMSプリセット
隠されたスタイル画像をアクティブなワークスペースに解決します:
higgsfield preset resolve video-explainer "<preset UUID>" --json
返された media_id を STYLE_KEY_ID として保持します。画像生成はスキップします。このインポートされたメディアがスタイルキーです。返されたプリセット名と必須の非フォトリアルルールからSTYLE記述子を構築します。プリセットをその名前から再作成しないでください。
プリセット参照はフレーミングを制御します。フェーズ0でリクエストされたアスペクトと競合する場合、参照と黙って戦うのではなく、停止してユーザーに選択させます。
カスタムスタイルまたは参照画像
正確に1つのキー画像を生成します。references/prompts.md からの抽象スウォッチテンプレート、またはキャラクターモードが有効な場合はそのマスコットバリアントを使用します。スタイル提供者ごとに --image を繰り返します:
higgsfield generate create nano_banana_2 \
--prompt "<style-key プロンプト>" \
--aspect_ratio 16:9 \
--resolution 2k \
--wait \
--json
縦長の場合は 9:16 を使用します。完了した画像ジョブUUIDを STYLE_KEY_ID として保持します。後のCLI生成では、完了したジョブUUIDを画像参照として再利用できます。
フェーズ2 — ナレーションの記述
選択された言語で、正確に N 個のラベル付きナレーションブロックを記述します:
ブロック 1
<ブロック1で話される行>
ブロック 2
<ブロック2で話される行>
- ブロックあたり1行、通常20〜24語、約8〜9秒。
- 各テイクを約9.5秒未満に保ちます。
- プレーンな話し言葉のみを使用。タイムコード、感情の合図、括弧書き、ステージ指示は禁止。
- 数字はスペルアウトします。
- 具体的なトーンを使用し、「このビデオでは」とは決して言いません。
- トピックの場合、フックからペイオフまで構築します。個人のストーリーの場合、ユーザーの詳細と主人公を保持します。
フェーズ3 — 一致するビデオプロンプトの記述
references/prompts.md のテンプレートを使用して、正確に N 個のラベル付き英語プロンプトを記述します:
ブロック N
スタイル参照: 添付された参照画像に正確に一致させること。 <同じSTYLE記述子>
シーン: <ブロックNのナレーションに一致する1つのシーンとアクション>
モーション: <カメラの動きとアニメーション動作>
オーディオ: <環境音または音楽のみ。音声、ダイアログ、ナレーションは禁止>
否定: <スタイルドリフトとリアリズム禁止。リップシンク、キャプション、テキスト、ロゴ、ウォーターマークは禁止>
マスコットモードの場合、ブロック1は口を閉じたジェスチャーで挨拶し、最後のブロックは手を振ってサインオフし、中間ブロックは有用な場合にのみ一貫したカメオ出演を使用します。フェイスレスモードの場合、スタイリッシュなシーンのみを使用します。ブロックごとに1つの明確なアクションを維持します。
フェーズ4 — すべての音声テイクを最初に生成する
ライブ音声をリストし、選択肢を提示し、ユーザーが1人のナレーターを選択するのを待ちます:
higgsfield voices list --json
選択された音声の正確な id と type (preset または element) を保持します。ユーザーが明示的に委任しない限り、音声をでっち上げたり自動選択したりしないでください。
ナレーションブロックごとに1つの完了した seed_audio ジョブを生成し、常に同じ音声を使用します:
higgsfield generate create seed_audio \
--prompt "<ブロックNのナレーションのみ>" \
--voice_type "<preset|element>" \
--voice_id "<音声UUID>" \
--wait \
--json
すべてのオーディオジョブUUIDをブロック順に記録します。失敗したテイクまたは過度に長いテイクのみを再生成します。必要に応じて、そのブロックを短くするか、--speech_rate を適度に調整します。すべての N 個のオーディオジョブが完了するまで、フェーズ5を開始しないでください。
フェーズ5 — すべてのビデオクリップを2番目に生成する
ブロックごとに1つの完了した10秒 gemini_omni クリップを生成します。同じスタイルキーをすべての呼び出しに添付します:
higgsfield generate create gemini_omni \
--prompt "<ブロックNのビデオプロンプト>" \
--image "<STYLE_KEY_ID>" \
--duration 10 \
--resolution 720p \
--aspect_ratio 16:9 \
--wait \
--json
選択された場合は 9:16 を使用します。すべてのビデオジョブUUIDをブロック順に記録します。このフェーズ内では独立したジョブを並行して実行できますが、オーディオフェーズのバリアは厳密です。失敗したブロックのみを再送信します。決して gemini_omni を黙って置き換えないでください。モデルが利用できない場合は、ライブビデオカタログを確認します。
フェーズ6 — 即座にアセンブルする
少なくとも2つの順序付けられたブロックペアを含む blocks.json を作成します。CLIモデルコントラクトは型付き参照を必要とするため、汎用の完了ジョブタイプを使用します:
[
{
"video": {"id": "<クリップ1 ジョブUUID>", "type": "video_job"},
"audio": {"id": "<音声1 ジョブUUID>", "type": "audio_job"}
},
{
"video": {"id": "<クリップ2 ジョブUUID>", "type": "video_job"},
"audio": {"id": "<音声2 ジョブUUID>", "type": "audio_job"}
}
]
すぐにサーバーサイドアセンブラを送信します:
higgsfield generate create explainer_video \
--items @blocks.json \
--width 1280 \
--height 720 \
--wait \
--json
縦長の場合は --width 720 --height 1280 を使用します。字幕が有効な場合、選択されたフォントを追加します:
--subtitles '{"font":"patrick"}'
アセンブラは各ブロックを正確に10秒に保ちます。短い音声テイクを中央に配置し、わずかなオーバーランをピッチセーフに加速し、ビデオを引き伸ばさず、ブロックを順に連結し、オプションでタイムドキャプションを焼き付けます。合計尺は正確に N × 10 秒です。
ローカルのffmpeg、レガシーアセンブリスクリプト、またはモノリシックな video_explainer ジョブを使用しないでください。
チェックポイントとリカバリ
- フェーズ5の前: 1つのスタイルキー、正確に
N個のナレーション行とプロンプト、1つの選択された音声、およびN個の完了したオーディオジョブが必要です。 - フェーズ6の前:
N個の完了したビデオジョブと、欠落や重複IDのない1対1のブロックペアリングが必要です。 - プリセットが見つからない場合:
preset listを更新します。IDを再利用したり偽造したりしないでください。 - プリセット解決の失敗: ワークスペースの選択を確認し、1回再試行します。
- スタイルドリフトまたはリアリズム: 共有のSTYLEおよびNEGATIVEテキストを強化し、そのクリップのみを再生成します。
- タイムアウト:
higgsfield generate wait <job_id> --jsonで再接続します。実行中のジョブを複製しないでください。 - 2回連続で同じ失敗が発生した場合、プロンプトまたはパラメータを変更する必要があります。
成果物
最終的なアセンブルされたビデオURL、正確な尺、アスペクト、ナレーション言語、選択されたスタイル、ナレーター、字幕の状態、および調査されたトピックのソースリストを返します。中間ジョブIDと個別のアセットURLは、リクエストがない限り内部に保持します。