Web向けi2vループ動画生成
原則
- 元画像の構図、比率、文字、ロゴ、UI、余白、色を優先して維持する。
- ループ用途では同じ画像を開始・終了フレームへ指定する。
- 生成ジョブは必ず1件ずつ実行し、完了・保存後に次を送信する。
- 最終動画から音声ストリームを除去する。
- Web素材では4Kを使用せず、実表示サイズに必要な最低限の解像度を選ぶ。
- 生成providerは、ユーザー指定がなければKamui MCPにする。ユーザーがMagnific利用を明示した場合だけMagnificへ切り替える。
- Kamuiでユーザーがモデルを指定しない場合は、カタログ上で有効なモデルのうち、最低解像度で推定単価が最も安いモデルを1件だけ選ぶ。
Kamuiを使う場合、モデル選択、MCP設定、逐次生成、再開、音声除去、検査、比較HTML、基本出力契約は kamui-i2v-core を読む。モデル名、MCP URL、ツール名、価格、解像度は models.json だけで管理する。モデル更新時にこのスキルのスクリプトへ値を直接追加しない。
Magnificを使う場合だけ magnific-i2v-core を読み、専用のAPIスクリプトで実行する。APIで扱えない条件や明示された画面操作はcoreのUI fallbackに従う。Kamui用scripts/generate.pyへMagnificを渡さない。
実行手順
1. 入力を確認する
入力画像を表示し、寸法と比率を確認する。元画像がない場合は、先に目的に合う画像作成スキルで静止画を作る。LP、記事LP、企業サイト、サービスサイト向けのアイソメ画像なら generate-t2i-web-isometric を読む。
<task>: 今回の目的を表す小文字英数字とハイフンの名前
- 動かす既存要素: 1〜3種類
- 動かさない要素: 文字、ロゴ、UI、主要な輪郭
- 長さ: ループは原則4秒
- 比率: 入力画像と同じ比率
詳細は quality-guide.md を読む。Web上の表示幅から必要解像度を決める場合は web-delivery.md も参照する。
2. モデルを決める
まずproviderを決める。
- 指定なし: Kamui MCP。
Magnificの明示指定、または選択されたサイトがMagnificであることを確認できる場合: Magnific。モデル名だけでproviderを推測せず、指定モデルを既定経路で扱えるか確認する。
Kamuiの場合、ユーザー指定がなければ、モデルを指定せず実行する。共通JSONカタログから動的に選択させ、モデル名をこの本文へ固定しない。<skill>/scripts/generate.pyはKamui互換ラッパーで、内部では ../kamui-i2v-core/scripts/generate.py --mode loop を実行する。
python3 <skill>/scripts/generate.py INPUT_IMAGE \
--task TASK_NAME \
--mode loop \
--prompt-file PROMPT_FILE
モデル指定時は--modelを繰り返す。
python3 <skill>/scripts/generate.py INPUT_IMAGE \
--task TASK_NAME \
--mode loop \
--model kling-o3-standard \
--model seedance-2.0-fast \
--prompt-file PROMPT_FILE
利用可能モデルは次で確認する。
python3 <skill>/scripts/generate.py --list-models
Magnificのモデル、秒数、解像度、比率、費用確認は専用coreのカタログと--dry-runを使う。UI経路を使う場合だけ画面の設定・消費表示を確認する。要求条件と許可済み費用に収まることを確かめ、高価なモデルや比較候補を無断追加しない。
3. プロンプトを作る
prompt-guide.md のテンプレートを基準に、入力画像の内容へ合わせて英語で具体化する。
- カメラ完全固定を明記する。
- 動かす既存要素だけを列挙する。
- 文字を生成・再描画・変形しないよう明記する。
- 開始と終了で元画像へ完全に戻すよう明記する。
- 大きな移動、場面転換、追加物を禁止する。
モデル比較では全モデルに同じpositive promptを渡す。モデル固有のnegative promptは、比較条件を変えるため既定では追加しない。
4. 生成providerごとに設定する
Kamuiの場合、MCP設定は kamui-i2v-core の手順に従う。generate.pyは../kamui-i2v-core/scripts/setup_mcp.pyを通じて、対象プロジェクトに.mcp.jsonがなければ初期配置元からコピーし、実行対象モデルの設定をマージする。
python3 <skill>/scripts/setup_mcp.py --project PROJECT_ROOT --model MODEL_SLUG
設定だけ行う場合は上記を使う。.mcp.jsonの初期配置、既存設定とのマージ、KAMUI_CODE_PASS_KEYの扱いはこのスキル側で再定義しない。
詳細は mcp-setup.md を読む。
Magnificの場合、MCP設定は不要。専用coreのAPI経路、または条件に合うUI fallbackを使う。
5. 逐次生成する
Kamuiの場合、generate.pyへ複数モデルを渡しても、内部では次をモデルごとに直列実行する。
- MCP初期化
submit
statusをポーリング
resultを取得
- 動画をダウンロード
- 音声を除去
- 出力を検査
- 次のモデルへ進む
中断後は同じコマンドを再実行する。保存済みMP4はスキップし、送信済みrequest_idがあるジョブは再課金せずポーリングから再開する。意図的に再生成する場合だけ--overwriteを使う。
課金前の計画確認には--dry-runを使う。
Magnificも専用coreで1件ずつ実行・保存する。終了画像を扱えるAPIモデルまたはUIでは開始と終了に同じ画像を指定する。未対応の場合はプロンプトで一致を指定し、制御上の制限を記録する。出力をffprobeとループ再生で確認する。
6. 検査する
Kamuiでは生成後、generate.pyがinspection.jsonと_inspection/内の5点コンタクトシートを作成する。MagnificではMP4を出力契約に合わせて保存した後、同じ検査スクリプトを手動実行する。必要に応じて再検査する。
python3 <skill>/scripts/inspect_videos.py output/TASK_NAME
次を確認する。
- 音声ストリームが0件
- 長さが要求値に近い
- 入力と出力の比率差が1%以内
- 文字、ロゴ、UIが全フレームで安定
- カメラ移動やクロップがない
- 先頭・末尾フレームが十分近い
- 境界で動きの速度や方向が急変しない
- コンタクトシート上で文字、ロゴ、主要オブジェクトが変形していない
- 急な場面変化が検出されていない
SSIMは静止フレームの近さだけを測る補助指標であり、シームレスループを保証しない。必ずindex.htmlで複数回ループ再生して目視確認する。
7. 比較ページを作る
複数モデル時は自動作成する。単一モデルでも必要なら実行する。
python3 <skill>/scripts/build_comparison.py output/TASK_NAME
HTMLは comparison-template.html を使い、全動画にautoplay muted loop playsinlineを設定する。全体の再生、停止、先頭から再生、速度変更を提供する。
8. 採用動画をWeb配信用に仕上げる
比較と検査で採用動画を決めた後、元動画を上書きせず_delivery/へ配信用成果物を作る。
python3 <skill>/scripts/postprocess.py output/TASK_NAME \
--model MODEL_SLUG \
--repair none
既定ではループ補修を加えず、H.264 MP4、VP9 WebM、WebP posterへ変換する。目視で境界問題がある場合だけtrim、crossfade、pingpongを選ぶ。補修方式の判断は loop-repair.md、HTML実装と配信解像度は web-delivery.md に従う。
文字やロゴの変形、カメラ移動、構図変化は後処理で隠さず再生成する。後処理条件を変更する場合は--overwriteを明示する。
出力
基本出力はKamuiの場合 kamui-i2v-core、Magnificの場合 magnific-i2v-core の出力契約に従い、このスキル側で再定義しない。
Web配信用の後処理を行った場合だけ、タスク出力ディレクトリ内の_delivery/へH.264 MP4、VP9 WebM、WebP poster、delivery-manifest.jsonを追加する。
ユーザーへは動画、比較HTML、主要な検査結果、未解決の品質問題を報告する。生成料金の概算と実課金が一致するとは断定しない。
必要環境
- Python 3.9以上。外部Pythonパッケージは不要。
- 選択providerの認証情報。KamuiならKamui Code Pass Key、Magnificなら専用coreの認証条件。
ffmpegとffprobe。無音化と検査に使う。
- インターネット接続。
依存コマンドがない場合は課金ジョブ開始前に停止する。