mcpField
V
video-gen

video-gen

github.com/chatcut-incクリエイティブ・メディア993150 回インストール1 日前に更新
リポジトリ

video-gen について

ChatCut の動画生成ジョブを計画・送信し、次の作業に進む前に結果を確認するスキルです。モデル選択、プロンプト入力、クリップの範囲と内容の確認を扱います。

主な機能

  1. 01対応する動画モデルの選択
  2. 02クリップの長さと内容の調整
  3. 03プロジェクト素材を参照に使用
  4. 04生成ジョブの送信と追跡
  5. 05続行前の生成結果レビュー

活用シーン

  1. 01テキストプロンプトから動画を生成
  2. 02画像や動画を参照して素材を生成
  3. 03既存動画の編集や延長

インストール

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

$npx skills add https://github.com/chatcut-inc/agent-plugin --skill video-gen

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

同梱ファイル

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

references/
kling.md
minimax-h3-max.md
minimax-h3.md
omni.md
seedance2.md
seedance25.md

詳細

動画生成

submit_video がまだ読み込まれていない場合は、呼び出す前に ToolSearch で読み込み、推測ではなく実際のパラメーターを使用してください。

1 回の呼び出しにつき動画生成ジョブを 1 件送信し、jobId を返します。ジョブのステータス確認と後続の確認は track_progress が担当します。このスキルは動画をタイムラインに自動配置しません。

使用するタイミング

ユーザーが動画クリップの生成を希望する場合はいつでも使用します。テキストからの動画生成、画像からの動画生成、最初と最後のフレーム間のトランジション、参照ベースの生成、既存動画の生成的な編集や延長(ソースクリップに基づいて新たな映像を生成すること。タイムライン上でのトリミングではありません)が対象です。

モデル

モデルリファレンス強み
seedance-2-5references/seedance25.mdデフォルト。4~30 秒、最大 50 件のマルチモーダル参照、音声のみの参照、タイムスタンプ制御、mp4/mov 出力に対応します。新規生成、編集、延長において Seedance の最有力候補です。
seedance2references/seedance2.mdSeedance 2.0 のフルモデル。4~15 秒、豊富なマルチモーダル参照、最大 1080p の出力に対応します。
seedance2fastreferences/seedance2.mdSeedance 2.0 Fast — seedance2 と同じ入力と 4~15 秒の範囲に対応し、約 10 分ではなく数分で結果を返します。価格は約 20% 安く、最大 720p です。ユーザーが反復作業をしていて、最高の忠実度よりも応答速度を重視する場合に使用します。
seedance2minireferences/seedance2.mdSeedance 2.0 mini — seedance2 と同じ入力と 4~15 秒の範囲に対応し、価格は約 50% 安く、最大 720p です。低コストの下書きや、フルモデルの忠実度が必要ない大量バッチ処理に使用します。
klingreferences/kling.mdプロンプトでカメラ制御の指示が可能です。キャラクターのショットにおける細かな感情や演技の制御に優れています。mode:"pro" で 1080p に対応します。
minimax-h3references/minimax-h3.mdMiniMax H3。4~15 秒、768p/2k、最初と最後のフレーム、最大 9 件の画像参照+3 件の動画参照+3 件の音声参照(合計 12 件)に対応します。マルチモーダル参照への追従に優れています。
minimax-h3-maxreferences/minimax-h3-max.mdMiniMax H3 Max。5~15 秒、480p/768p、テキストまたは最初と最後のフレームからの生成に対応します。参照モードと 2K 出力には対応していません。
omnireferences/omni.mdGemini Omni 1.1 Flash。continueFrom による対象を絞った編集や延長、最初と最後のフレーム、低コストの 360p 下書きに対応します。3~10 秒、デフォルトは 720p で、1080p/4k へのアップスケールが可能です。

重要: 生成する前に、選択したモデルのリファレンスを読み、機能、入力チャンネル、モード、プロンプトの構成、モデル固有の動作を確認してください。

モデルの選択

新規生成の場合、デフォルトは seedance-2-5 です。次のいずれかに該当する場合のみ切り替えてください。

  • ユーザーがモデルを明示的に指定した場合(「Kling を使って」「Kling を使う」、「Omni を使って」、「mini を使って」、「/kling」)— 切り替え、確認し直す必要はありません。
  • ユーザーが MiniMax H3 を明示的に希望する場合、またはオプションの 2K 出力を利用しながら、画像・動画・音声の参照を組み合わせたガイダンスが必要な場合 — minimax-h3 を使用します。
  • ユーザーが MiniMax H3 Max を明示的に希望する場合、またはマルチモーダル参照なしで、最も高精細なテキスト/フレーム生成を希望する場合 — minimax-h3-max を使用します。
  • Seedance では明らかにうまくできない、または対応できない場合 — Seedance が苦手とする既知のケースに遭遇したら、kling への切り替えを提案し、送信前に確認します。
  • ユーザーが、後で修正する予定の高速/低コストなドラフトを明示的に希望した場合 — omni(360p のドラフト、最大 10 秒、対象を絞った編集に対応)を提案し、送信前に確認します。
  • ユーザーが Seedance の出力を 1080p で必要とする場合 — seedance-2-5 を優先します。seedance-2-5 とフル版の seedance2 は 1080p に対応しています。
  • ユーザーが Seedance 2.0 の入力を低コストで利用したい、または一度に多数のクリップを作りたい場合で、720p で問題ない場合 — seedance2mini(4~15 秒、2.0 フルモデルの約 50%のコスト)を提案し、送信前に確認します。
  • ユーザーが 2.0 形式の出力を反復して作成しており、処理時間を重視する場合 — seedance2fast(480p または 720p、4~15 秒、2.0 フルモデルの約 80%のコストで、はるかに早く結果を返します)を提案し、送信前に確認します。

それ以外の場合は seedance-2-5 を使用してください。

既存のクリップを修正する場合、モデルの選択はここではなくステップ 4 で行います。修正の依頼があっても、今後の新規生成のデフォルトを変更する理由にはなりません。Omni 1.1 は以前の Omni の選択肢に置き換わります。omni エイリアスは維持し、別のレガシーな選択肢を作らないでください。

アクセスに関する注意:8 つすべてのモデルを利用するには、ChatCut の有料動画生成権限(サブスクリプションまたは有料クレジット)が必要です。サブスクリプションによる制限を回避するための無料の代替手段として、別のモデルを決して案内しないでください。無料の方法をユーザーが求めている場合は、代わりに無料の Motion Graphic アニメーションを提案してください。

ツールのパラメーター

パラメーター値デフォルト
prompt動画の説明(必須)—
modelseedance-2-5、seedance2、seedance2fast、seedance2mini、kling、minimax-h3、minimax-h3-max、omniseedance-2-5
durationSeconds秒数5
ratioモデルのドキュメントを参照16:9
resolutionモデル固有。H3:768p/2k、H3 Max:480p/768p、Seedance:480p/720p/1080p、Omni:360p/720p/1080p/4k720p(H3 モデル:768p)
outputFormatmp4、mov(seedance-2-5 のみ)mp4(生成)、mov(編集/延長)
taskModegenerate、edit、extend(seedance-2-5 または omni)generate
nameアセットの内容を表す名前(必須)—
firstFrameプロジェクトのアセット参照—
lastFrameプロジェクトのアセット参照—
continueFrom動画アセット参照 — omni のみ。編集/延長するソース—

モデル固有のパラメーター(例:Kling の mode、Seedance の refImages/refVideos/refAudios)については、モデルのリファレンスを参照してください。

入力解像度

firstFrame/lastFrame/refImages/refVideos/refAudios には、いずれもプロジェクトのアセット参照を指定します。browse_assets から取得した完全な UUID または短いプレフィックスを推奨します。asset://<id> およびアセットツールから返される同一プロジェクト内のアセット URL も使用できます。スロットごとのタイプは、フレームスロットと refImages が画像、refVideos が動画、refAudios が音声です。

外部 URL と base64 は受け付けられません。ソースが公開 URL の場合は、サンドボックスのワークスペースにダウンロードし、asset-import と push_asset を使ってローカルファイルをインポートしてから、生成されたアセット ID を指定してください。

ワークフロー

4 ステップのループです。ユーザーの意図が変わった場合、新しい生成ごとにステップ 1 からやり直してください。

ステップ 1 — ユーザーとスコープをすり合わせる

プロンプトを書く前に、次の 3 つの観点をすり合わせます。

  1. 長さとセグメント — 全体の長さ、ショット数、1 つのクリップにまとめるか、複数のクリップに分けるか。

    ユーザーがすでに方向性(「做一段」、「in one video」、「分别生成」、「split into N shots」など)を示している場合は、それに従います。あらためて判断を問い直してはいけません。

    それ以外の場合は、次の 2 つの方法を提示して、ユーザーに選んでもらいます。

    • 1 つのクリップ内で複数のショットを構成する(モデルのリファレンスを参照) — 1 回の推論で生成し、サブショット間で被写体/照明/スタイルの一貫性を物理的に保ちます。クリップごとの長さの上限内で、まとまりのあるストーリーを描くのに適しています。
    • 複数のクリップを生成する — クリップごとに独立して調整や再生成ができますが、同一性やスタイルの一貫性を保つにはアンカーが必要です。長さが上限を超える場合や、場面を明確に切り替える場合に適しています。

    それぞれのトレードオフを提示し、ユーザーに選んでもらいます。ユーザーに代わって決めてはいけません。

  2. 内容 — 各クリップに何を描くか。理解した内容をセグメントごとに要約して伝えます。内容が曖昧な場合(例:「女の子が踊る動画を生成して」)、通常は次のうち 1 つ以上が指定されていません。

    • 被写体:主な被写体は誰/何ですか(外見、衣装、特徴的な要素)?
    • 動作:何をしていますか?(会話や感情を表すショットの場合は、どのような微表情ですか?)
    • 場面:どこですか。場所、時間帯、環境の詳細は?
    • 照明/色調:どのような雰囲気ですか?
    • カメラ:ショットサイズ/アングル/動きの希望はありますか?
    • スタイル:映像スタイルや参考イメージはありますか(映画風/アニメ/ドキュメンタリー/…)。

    この依頼で重要で、安全に推測できない項目に絞って確認します。空欄を埋めるだけの作業にしてはいけません。進める前に、理解した内容をユーザーに要約して伝えます。

  3. 一貫性を保つためのアンカー — 複数のショットで同じキャラクター、物体、または場面を再利用する場合に限り、ショット間で固定するアンカー(参照画像または動画)を特定します。参照元のルールについては、「ショット間の視覚的一貫性」の節を参照してください。

各項目について、ユーザーの言葉を確認します。

  • 明確 — そのまま進めます。
  • 曖昧または未指定 — ユーザーに質問します。推測したり、自分の解釈を既定値として適用したりしてはいけません。確認のやり取りにかかる手間は、生成を無駄にするより小さなものです。
してはいけないこと
  • 「伝えてから送信」してはいけません — 「これを 2 つのクリップにします」と宣言してすぐに送信しても、すり合わせではなく、一方的な決定にすぎません。
  • 1 本の動画の依頼を、既定で複数のクリップに分けてはいけません。 1 つのクリップ内に複数のサブショットを構成でき(モデルのリファレンスを参照)、ショット間で被写体/照明/スタイルの一貫性を物理的に保てます。トレードオフを提示し、ユーザーに選んでもらいます。
  • 答えが明白だと思っても、質問を省略してはいけません。
明示的な指示を優先する
  • 「one clip / single clip / 一条 / 一个镜头 / in 1 clip」→ 説明が客観的に長くても、絶対に分割しません。
  • 「N shots / N 段 / N 个镜头」→ 必ず指定どおり N 個生成します。
  • 「use this image / 用这张图」→ 参照として使用し、別のものに置き換えてはいけません。
ステップ 2 — プロンプトを書く

プロンプトの構成やパラメーターの組み合わせについては、選択したモデルのリファレンスを参照します(例:Seedance の 8 要素構成やモード、Kling のプロンプトのヒント)。送信前に、次の点を確認します。

  • name は、アセットの内容が伝わる具体的な名前です。ユーザーや後のターンでの自分が、プロジェクトライブラリ内でこのアセットを識別できる名前にします。「Untitled」や「clip 1」のような曖昧な名前は避けます。
  • パラメーターの組み合わせがユーザーの意図に合っています。モデルのリファレンスにある モード の節を参照してください。
  • 生成動画の音声はツールのパラメーターではありません。Seedance と Kling は、バックエンドによって音声が有効な状態で送信されます。
  • 検証に失敗した場合は、エラーを読み取って入力を修正します。同じ無効な引数をやみくもに再送信してはいけません。
ステップ 3 — 1 件送信し、完了を待って確認する

生成ジョブは一度に 1 件ずつ送信してください。 ユーザーが複数のクリップを並行して処理するよう明示的に依頼した場合を除き、現在のジョブが完了し、ユーザーが確認するまで次のクリップを送信しないでください。並行して送信すると問題が見えにくくなります。最初のショットで動きがずれたり、フレーミングが間違っていたりした場合、ユーザーは位置のずれたショットを複数破棄するより、一度だけ作り直すことを望みます。

  • submit_video.ratio が制御するのは生成されるアセットのみで、プロジェクトのタイムラインキャンバスは変更されません。ユーザーが最終出力のアスペクト比(たとえば「9:16 の縦向き」や「16:9 の横向き」)を指定した場合は、完成したアセットを配置する前に、manage_timelines の action=update を使ってタイムラインキャンバスも同じ比率に設定してください(例:ratio:"9:16")。ユーザーが黒帯なし/フルブリードを求めた場合は、キャンバスの設定時、またはビジュアルアイテムの更新/追加時に fit:"cover" を設定してください。
  • ジョブの管理にこのスキルを使わないでください。すぐにステータスを確認するには track_progress を使い、その後の再確認方法については案内に従ってください。
  • 送信後、後続タスクがすでにキューに入っていない限り、ターンを終了してください(ジョブが作成されたことをユーザーに伝えてください)。
  • ジョブが完了したら、次のショットに進む前に結果をユーザーに提示して確認してもらってください。
  • Omni のソース編集では、依頼された変更が成功したと断言する前に、参照資料の最初・中間・最後のフレームを確認してください。
  • モデル固有の失敗への対処については、該当モデルのリファレンスを参照してください。
ステップ 4 — 反復

ユーザーが次のクリップ、修正、または続きの作成を希望した場合、まず次の呼び出しで既存のクリップが何に当たるかを判断します。

既存のクリップが…パス
変更対象 — 対象を絞った変更であり、完全なピクセル単位の保持は不要omni + continueFrom
再生成元 — 新しい動き/カメラ、クリップ全体のスタイル変更、延長、つなぎseedance-2-5 + refVideos;編集/延長には taskMode を設定
再利用不可 — 意図が変わった再生成し、ステップ 1 からやり直す

局所的な変更では、デフォルトで omni + continueFrom を使用します。 Omni による続きの作成を明示的に選択する場合は、taskMode:"extend" + continueFrom を使用します。2 枚の画像間のトランジションには firstFrame + lastFrame を使用します。それ以外は、汎用的な編集/延長パスとして Seedance 2.5 を使用します。ユーザーが「ほかはすべてそのまま」と言うのを待ってはいけません。「气球改成黄色」/「隅のテキストを削除して」は、それをすでに意味しています。変更に再推論(動き、カメラ、長さ、クリップ全体のスタイル)が本当に必要な場合に限り、seedance-2-5 に振り分けます。Seedance のほうが慣れているという理由で振り分けてはいけません。

omni によるソース編集/延長では、10 秒以下のプロジェクト動画が必要です。ソースがそれより長い場合は、seedance-2-5 + refVideos を使用するか、先にトリミングするよう依頼してください。この連携はステートレスです。上流の 40 秒のマルチターンワークフローを約束してはいけません。

生成編集でロスレスなものはありません。 Omni 1.1 はアップスケールした 1080p/4k に対応していますが、解像度が高くてもディテールやピクセルが変わらないことは保証されません。タイムラインの項目を置き換える前に結果を確認してください。元のアセットは引き続き利用できます。

そのうえで、以下の基本ルールを適用します。

  • マルチショットシーケンスの次のショットの場合 — 確立済みのアンカーを再利用します(原則については「ショット間の視覚的一貫性」を参照し、フラグの詳細についてはモデルリファレンスを参照してください)。
  • ユーザーのフィードバックが曖昧な場合(「しっくりこない」など)— 再生成する前に、具体的に何を変更するか尋ねます。
  • 同じテキストプロンプトの調整が 2 回失敗した場合 — テキストの調整をやめます。参照画像に切り替えるか、編集パスに切り替えます(対象を絞った変更には omni continueFrom、再生成には seedance refVideos)。
  • 新しい生成を始めるたびにループをステップ 1 からやり直します — 対象範囲が変わった場合は認識を合わせ直します。
  • submit_video は omni の編集ラウンドを報告します。チェーンの深さに関する警告が出た場合は、そのまま続けるのではなく、提案をユーザーに伝えます。

ショット間の視覚的一貫性

テキストだけではショット間の視覚的な同一性を確実に維持できません。視覚的な参照は、言葉よりもはるかに正確に出力を制約します。

アンカー:一貫性の要

アンカーとは、同じキャラクター、オブジェクト、またはスタイルを共有するすべてのショットに固定する参照画像または動画です。視覚要素が繰り返し登場するマルチショットシーケンスにはアンカーが必要です。テキストだけで再現しようとしてはいけません。

アンカーの選定

参照素材を意識してください。ユーザーのリクエストに繰り返し登場するキャラクター/オブジェクト/シーンが含まれている場合は、プロンプトを書く前に使用するアンカーを検討します。

  • まずプロジェクトを確認します。 ユーザーがすでに提供または承認したものは何でしょうか。アップロードされた画像、以前に生成され承認されたショット、過去のプロジェクトアセットはいずれもアンカーとして使用できます。
  • ユーザーの意図に合わせます。 ユーザーが特定のアセットを指定した場合(「この写真を使って」、「前の場面のように」など)は、それを使用します。キャラクターを言葉だけで説明している場合、アンカーはまだないため、確立する必要があります。
  • 迷ったらユーザーに尋ねます。 どのアセットを固定するか推測したり、ユーザーがすでに念頭に置いている可能性があるのに、黙って新しいアンカーを生成したりしてはいけません。
新しいアンカーを設定する(ユーザーの同意を得る)

既存のアセットが適合せず、新たに生成する必要がある場合は、まずユーザーに提案してください。クレジットを消費し、その後のすべてのショットに影響するためです。モデル固有の手順については、選択したモデルのリファレンスを参照してください。

アンカーを使用する
  • 同じキャラクター/オブジェクト/スタイルを共有するすべてのショットでアンカーを渡してください。使用するフラグはモデルによって異なります。モデルのリファレンスを参照してください。
  • プロンプトでは名前ではなく、見た目でアンカーを説明してください。「Fleetmaster」よりも、「クロームの排気管を備えた黒いレーシングカー」のほうが、はるかに強く条件を指定できます。役割の混同が起こりそうな場合は、明示的な否定表現を加えてください。「そのバイクは変形しません」など。
  • 「前と同じ車」のような曖昧な表現ではなく、プロンプト内でアンカーを @Image1 / @Video1 として参照してください。
  • ショットが前回の生成結果に依存する場合は、track_progress の action=wait で完了を待ち、結果に示される手順(対応していれば自動の後続ターン、そうでなければ後から再確認)に従って、完了状態になるまで確認してください。その後、outputAssetId をアンカー参照として使用します。どちらのアクションも処理をブロックしません。依存するショットを並行して送信しないでください。
複数キャラクターのプロジェクト

異なる属性を持つ名前付きキャラクターが複数登場するプロジェクト(例:炎のエネルギーを持つ Faz、氷のエネルギーを持つ Kev)では、各キャラクターを個別のアンカーとして扱ってください。キャラクターごとに参照アセットを1つ用意します。各プロンプトでは、次のようにしてください。

  • 登場するキャラクターの名前を明記し、その特徴的な属性を指定します(「Kev は青い氷の電気エネルギーをまとっています」)。
  • 属性の混同を防ぐため、ほかのキャラクターについて明示的な否定表現を加えます(「赤い炎のエネルギーではない。Faz の見た目ではない」)。
  • 正しいキャラクターのアンカーを指定します(モデル固有のフラグについては、モデルのリファレンスを参照してください)。誤って別のキャラクターのアンカーを使わないでください。

属性の明示または否定のどちらかが欠けると、キャラクター間で属性が混ざる原因になります。

同じフレームに複数のキャラクターが登場する場合。 複数のキャラクターが一緒に登場するショット(特にカメラに正対する場合)では、モデルは顔の入れ替わりや体のクリッピングを起こしやすくなります。各キャラクターに位置と衣装を明確に指定するアンカーを加え、そのショットでは固定カメラを優先してください。

  • 「左側のキャラクターは、グレーブルーのタクティカルジャケットを着用し、短いあごひげを生やし、銀のイヤリングを着けている」
  • 「右側のキャラクターは、金の縁取りがある赤いマントを着用し、長い髪を編み込んでいる」
  • 「固定カメラ、ミディアムショット、2人のキャラクターをはっきり離して配置」

左/右/前景/背景といった位置を示す語に、特徴的な衣装の色を組み合わせることで、キャラクターを区別するために必要な情報をモデルに与えられます。

テキストの調整で解決しない場合はエスカレーションする

視覚的な同一性の問題(キャラクター違い、ブレ、色の不一致)が、同じショットで2回テキストプロンプトを調整した後も続く場合は、テキストの調整をやめてください。テキストはアンカーの代わりにはなりません。次の方法に切り替えてください。

  • アンカーを追加する、または別のアンカーに切り替える。
  • モデルが対応している場合は編集モードを使う(起動方法についてはモデルのリファレンスを参照してください)。

同じ一貫性の問題に対し、テキストだけで3回目の再試行を行わないでください。

アンカーを省略する場合

単純な依頼、1回限りの依頼、または試行的な依頼ではアンカーは不要です。そのまま生成してください。

実行

// Text-to-video (Seedance 2.5 default)
submit_video({
  model: "seedance-2-5",
  prompt: "A cat walks across a sunny windowsill",
  name: "Cat on windowsill",
});

// Image-to-video with Seedance 2.5 — pass the project asset id directly
submit_video({
  model: "seedance-2-5",
  prompt: "The scene comes to life, gentle breeze rustles the curtains",
  firstFrame: "abc12345",
  name: "Living room animation",
});

// Kling text-to-video — only after Model Selection check
submit_video({
  model: "kling",
  prompt: "A sports car drifts around a wet corner",
  name: "Car drift shot",
});

送信後は jobId を返し、通常はそこでターンを終了してください。track_progress を呼び出すのは、ユーザーがステータスを尋ねた場合(action=status)、または後続のステップで完了したアセットが必要な場合(action=wait。その後、結果に示される手順に従ってください)に限ります。どちらもすぐに返るため、ループしないでください。

設定モード

複雑なマルチモーダルジョブでは、引数オブジェクト全体をあらかじめ作成し、1回の呼び出しで渡してください。

submit_video({
  model: "seedance-2-5",
  prompt: "...",
  name: "...",
  refImages: ["def67890", "ghi24680"],
  refVideos: ["abc99999"],
  refAudios: ["jkl55555"],
  durationSeconds: 8,
  ratio: "9:16",
});

ルール

  • アセットを説明する名前を name に必ず指定してください。
  • デフォルトでは送信のみ行います。後続タスクがキューに入っていない限り、送信後にターンを終了してください。
  • ジョブを管理するために submit_video を使わないでください。ステータスの確認や後からの再確認には track_progress を使用します。
  • 生成にはクレジットが必要です。送信前に、何を生成する予定かをユーザーに簡潔に伝えてください。

コメント