Communitygithub.com

SIX — スクロール没入型空間探訪

SIXは、MuAPIを用いて、スクロールに連動したカメラがシーンの外側から内側へと連続的に飛行する没入型ランディングページを生成します。業種やブランドを問わず、シームレスな「世界を飛び回る」体験を構築できます。

SIX — スクロール没入型空間探訪 とは?

SIX(Scrolling Immersive Xploration)は、Appleの製品ページで見られるような、スクロールに連動してカメラが連続的に移動する没入型ランディングページを生成するAIエージェントスキルです。MuAPIの画像・動画生成機能と、フレームワーク非依存のスクロール駆動エンジンを組み合わせることで、ユーザーは自身のビジネスや任意のテーマを、カットなしのシームレスな3Dワールドとして表現できます。本スキルの核心は、各シーンの継ぎ目をフレーム単位で完全一致させる「シーム(継ぎ目)技術」にあります。対応プラットフォームはClaude Code、Cursor、Codexなど、ファイル操作とコマンド実行が可能な環境全般です。ユーザーへのヒアリングに基づき、シーン構成、アートディレクション、ブランドキットを決定し、MuAPIパイプラインでスチル画像とカメラクリップを生成。それらをシームレスに連結し、最終的にVanilla JS製のスクラブエンジンで動作するWebページとして出力します。モバイル版の生成にもベータ対応しており、ポートレートクロップや低スペック端末でのスタッターに関する注意事項をユーザーに明示します。

対応✓Claude Code~Codex CLI~Cursor
npx skills add DeepDiveTechLab/six

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

SIX — スクロール没入型空間探訪 は何をしますか?

スクロールでカメラを制御するランディングページを生成します。シーンの外側から内側へダイブし、その後次のシーンへと飛び出し、連続的かつ目に見えるカットなしで移動します。ビジュアルはAI生成(MuAPI)で、ページはスクロール位置に応じてプリレンダリングされたビデオをスクラブするだけです。これはAppleのスクロール式プロダクトページと同じ手法です。カメラは実際に移動し、スクロールは単に時間を駆動します。

生成物: N枚のシーンスチル → N本の「ダイブイン」カメラクリップ → N-1本の連続シーンをシームレスに結合する「コネクタ」クリップ → チェーン全体を1回の飛行として再生するポータブルスクラブエンジン。

成功を左右する唯一のルール: 継ぎ目はフレーム単位で同一でなければなりません。コネクタを生成する前にシームレスチェーンをお読みください。これを誤ると、最も一般的な失敗原因となり、シーン間に目に見える「ポップ」が発生します。

フロントエンドフレームワークを想定しないでください。resources/scrub-engine.js内のスクラブエンジンは、自己完結型のVanilla JSです(独自のDOMを構築し、指定されたコンテナに独自のCSSを注入し、mountSIXとして公開します)。そのため、プレーンなHTML、Next.js、Vue、Pythonで提供されるページなど、あらゆる環境に組み込めます。このスキルの価値は、MuAPIパイプライン、プロンプト、およびシーム方法にあり、フレームワークではありません。

ファイルマップ: SKILL.md(このファイル)→ scripts/pipeline.md(生成実行全体のコピペ用bash) + scripts/knockout.py(背景除去) → references/prompts.md(インテークチェックリスト + すべてのプロンプトテンプレート) + references/muapi-model-roster.md(検証済みモデル/ティア/エンドポイントマッピング — 以下の内容に監査が必要な場合はこちらを参照) → resources/scrub-engine.js + resources/index-template.html(ドロップインエンジン + 最小限のページ)


ステップ 0 — ブートストラップ

  1. MuAPI CLI。 muapiが$PATHにない場合は、環境の通常のパッケージフローに従ってインストールし、muapi auth configureを実行します(MUAPI_API_KEY/その設定ファイルを書き込みます — インタラクティブで、ブラウザが必要な場合は認証フロー自体を実行できません)。muapi auth statusで動作確認を行ってください。CLIのクレジット残高確認コマンドは文書化されていません。バッチがクレジット関連のエラーで停止した場合は、muapi.aiダッシュボードを直接確認してください。
  2. ffmpeg / ffprobe を$PATHに配置します(フレーム抽出 + エンコーディング)。
  3. 画像ツール(背景ノックアウト用、シーンを浮かせたい場合): PIL(python3 -c "import PIL")、またはcwebp/sips。オプション — ステップ3を参照。
  4. jq を$PATHに配置します — パイプライン全体で--output-jsonレスポンスの解析やアップロードされたアセットURLの抽出に使用されます。
  5. 注意事項: macOSはbash 3.2を搭載しています(declare -Aなし)。スクリプトで連想配列を使用しないでください。MuAPIの生成には数分かかります — 常にデタッチ(バックグラウンド)で実行し、ポーリング(--async + muapi predict wait <request_id>)を行い、フォアグラウンドでブロッキング呼び出しをしないでください。MuAPIのビデオ/画像エンドポイントは、ローカルファイルパスではなく、ホストされたURLを受け取ります — これはHiggsfieldの慣例とは逆であり、最も移行バグが発生しやすい点です。すべてのローカル参照画像(シーンスチル、抽出された境界フレーム)は、最初にmuapi upload file <path> --output-json --jq '.url'を実行し、返されたURLを--start-image/--end-image/--image-urlsに渡す必要があります。正確なフラグ名や解像度/品質オプションは、すべてのモデルで統一して文書化されているわけではありません。バッチ処理の前にmuapi video from-image --help / muapi image generate --helpで確認し、すでにクロスチェック済みのものについてはreferences/muapi-model-roster.mdを参照してください。

ステップ 1 — ユーザーへのヒアリング

主題はユーザー自身が述べるものです — プレーンテキストでオープンクエスチョンとして質問し、決して架空の選択肢を用意しないでください。 でっち上げの業界リストはユーザーにバイアスをかけ、あなたがユーザーのビジネスを決めつけているように読まれます。ユーザーに自分の言葉で答えさせてください(実際のビジネス、クライアントのもの、または任意のアイデア)。真に列挙可能で重要度の低い選択肢 — アートディレクションとブランドキットのアプローチ — については、構造化された多肢選択(Claude CodeのAskUserQuestion、それ以外の環境ではプレーンな二者択一の質問)を予約し、そこでも「その他」の選択肢があることを示してください。適切にデフォルト化できないことだけを質問してください。以下をカバーします:

  1. 主題(オープンに質問し、多肢選択にしない) — 「この世界を何についてにしますか?あなたのビジネス、クライアントのもの、または任意のアイデア — 一言や一文で構いません。」業界/製品 + 一行のピッチ(例:「バブルティー会社、葉から最後の一口まで」)、およびブランド名があればそれを取得します。ない場合は以下で提案します。
  2. ブランドキット — 3つのパスを提供し、1つを選んでもらいます:
    • URLからインポート: ページを自分でフェッチし(ウェブフェッチ)、表示されているパレット、名前、トーンを読み取ります — 専用のMuAPIブランドキットインポーターは文書化されていないため、このステップはあなたが自分で抽出を行うものであり、CLI呼び出しではありません。ユーザーがワンコマンドインポートを期待している場合は、その旨を明確に伝えてください。
    • ユーザーがパレット + 名前 + トーンを直接提供する。
    • あなたがパレット + 名前を提案し、ユーザーに承認してもらう。 4~6個の名前付き16進数値、表示名、および1~2語のトーンワードを取得します。
  3. アートディレクション — デフォルトは「ソフトマットなローポリクレイジオラマ、アイソメトリック、ティルトシフトミニチュア、暖かい光」です。代替案を提供します(フラットなペーパークラフト、光沢のあるおもちゃ、クレイメーション、ネオンナイト、フォトリアリスティックな建築)。選択されたものが、すべてのシーンプロンプトで再利用される共有スタイルプリアンブルになります(これが世界を統一します)。
  4. ジャーニー(セクション) — カメラが飛行する順序付けられたシーン。主題自身のバリューチェーンから導出したセットを提案し、ユーザーに編集させます。5~7が適切です。タピオカの例: 農園 → パールキッチン → フラッグシップショップ → デリバリー → コミュニティプラザ → ヒーロー製品。各セクションには、短い主題の説明(ジオラマの中に何があるか)、アイブロウ、ヘッドライン、1行の本文、および0~3個のタグピルが必要です。最後のセクションは通常、ヒーロー製品 + CTAです。
  5. モバイル版(ベータ) — 常にこれを質問してください。決して黙って両方を生成しないでください。 2つの選択肢として質問します(Claude CodeではAskUserQuestion、それ以外ではプレーンな質問): 「モバイル最適化版も必要ですか?モバイルサポートはベータ版です — スクロールスクラブメカニズムはデスクトップネイティブです。スマートフォンでは軽量エンコードとエンジンの堅牢化が適用されますが、ポートレートは16:9フレームをクロップし、ローエンドデバイスではスタッターが発生する可能性があります。」 選択肢: 「デスクトップのみ」 / 「デスクトップ + モバイル(ベータ)」。ベータ版の免責事項は、暗示するだけでなく、ユーザーに明示的に伝える必要があります。回答によって制御される内容:
    • はい → モバイルエンコード(ステップ6)を生成し、clipMobile/connectorsMobile(ステップ7)を配線し、完全なモバイルQA(ステップ8)を実行します。いずれかのシーンのフォーカルサブジェクトが中央から外れている場合は、9:16ヒーローバリアントの脱出口(追加のMuAPIクレジットが必要 — その旨を伝える)を提供します。
    • いいえ → モバイルエンコードと配線を完全にスキップします。エンジンのスマートフォン向け堅牢化(シーク合体、iOSプライミング、セーフエリアCSS)は常に有効です — それは「モバイル版」ではなく、単に電話でアクセスしたときにページが壊れないようにするためのものです — そのため、デスクトップのみのビルドでもグレースフルデグラデーションが行われます。

ビデオモデルはヒアリングの質問ではありません — デフォルトでseedance-2-first-last-frame(ティアglobal)を使用します。ユーザーが好みを指定した場合、それがシームをフレームロックできる場合にのみ尊重します — つまり、開始画像を受け入れ、コネクタの場合は終了画像も受け入れます(references/muapi-model-roster.mdに検証済みのロスターがあります)。このスキルはシームレスな出力のみを提供するため、フレームロックできないモデルは理由を一行で説明して辞退し、代わりにロスター内のモデルを使用します。

スクロールメカニズムは固定(連続フライスルー)に保ちます — それがこのスキルのポイントです。インテークチェックリストとコピー構造についてはreferences/prompts.mdを参照してください。


ステップ 2 — シーンスチルの生成

セクションごとに1枚の画像、すべて同じスタイルプリアンブルを共有して統一感を出します。デフォルトモデルは**gpt-image-2-text-to-image**(鮮明で、アイソメトリックイラストに最適。無地/白背景を返すため、浮遊するジオラマ「アイランド」に最適)。キャラクター/漫画が中心の場合はnano-banana-pro、フォトリアリスティックな建築スタイルの場合はgoogle-imagen4-ultraを使用します(完全な画像モデルテーブルはreferences/muapi-model-roster.mdを参照)。

プロンプトの形状(完全なテンプレートはreferences/prompts.md):

<スタイルプリアンブル、毎回同一>. On a plain solid <bg> background with a soft contact shadow. <パレット16進数>. No text, no letters, no logos, centered, 3:2.
Subject: <このジオラマの中にあるもの>.
  • すべてのN個を並行してデタッチで実行します。シーンごとのコマンド:
    muapi image generate --model gpt-image-2-text-to-image --prompt "$(cat scene_i.txt)" \
      --aspect-ratio 3:2 --async --output-json scene_i.job.json
    id=$(jq -r '.request_id' scene_i.job.json)
    muapi predict wait "$id" --json > scene_i.json
    
  • 結果のURLは、ポーリング出力の.result_url(または.output_url/.url — 正確なキーは統一して文書化されていないため、1つのレスポンスを検査して調整)にあります。curlでダウンロードします。
  • 生成が一時的に失敗することがあります — その1つだけを個別にリトライし、バッチ全体を再開しないでください。
  • 続行する前にスチルを確認してください。 一貫性のある世界として読める必要があります(同じアングル、パレット、光)。スタイルがずれているものがあれば、muapi image generateで再生成します(新しい呼び出し、同じプリアンブル) — スタイルを「固定」するために以前のスチルを参照としてmuapi image editを使用しないでください。編集モードは、参照の実際の部屋を融合/クローンするため、スタイルを一致させるだけではありません。

正確なバッチスクリプトについてはscripts/pipeline.mdを参照してください。


ステップ 3 —(オプション)シーンを浮かせる

ジオラマを無地のボックス内に配置する代わりに、大気のある背景の上に浮かせたい場合は、scripts/knockout.py(境界接続フラッドフィル — 背景に一致する内部色、例えばクリーム色の壁を保持)でフラットな背景を透明にノックアウトします。その後、webpにエンコードします。シンプルにしたい場合は、ページの背景をシーン背景と同じ色にして、これをスキップしてください。

これらのスチルはビデオポスターとレイジーロードフォールバックとしても機能するため、保持してください。


ステップ 4 — カメラアーキテクチャ(1つ選択 — これが体験の質を左右します)

シーン間のカメラの動き方は、品質を左右する最大のレバーです。2つの形状があります。美的感覚で選択してください。

ビデオモデル — チェーン全体で1つを選択

このスキルはシームレスな出力のみを提供するため、使用可能なモデルはシームをフレームロックできるものだけです。すべてのチェーンクリップは--start-imageを受け入れ、コネクタには--end-imageも必要です。その機能 — 好みではなく — が選択ルールです。完全な証拠のトレイルはreferences/muapi-model-roster.mdにあります。以下に要約します:

モデルティア開始/終了画像備考
seedance-2-first-last-frame(デフォルト)global✓ / ✓--mode first-last — 画像1枚=レッグ/ダイブ(終了なし)、画像2枚=コネクタ。同じモデルが両方の役割をカバーします。
seedance-2-first-last-frame-fastglobal✓ / ✓同じモデル、高速キューバリアント — 安価なプレビズティア。フルレンダリングにクレジットを消費する前に、まずここでチェーン全体を実行してシームを検証します。
seedance-2-vip-first-last-framevip✓ / ✓NSFW/コンテンツフィルターフォールバック — VIPのフィルターバンドは異なり、グローバル/チャイニーズとは異なり、参照内のリアルな人間の顔を許容することが文書化されています。特定の頑固なクリップに使用しますが、デフォルトのチェーンとしては使用しません。

chineseティアはロスターに含まれていません: first-last(2画像コンディショニング)は利用できず、単一画像のi2vのみです — そのためシームを保持できません。同じ理由で、メディア入力が単一画像のみのものはスキップします(それらは生成をコンディショニングすることはできても、ショットを継続することはできません)。

ルール:

  • チェーンクリップ全体で1つのモデル+ティア。 各レンダラー/ティアには独自のモーション/カラー/グレイン特性があります。チェーン途中で混在させると、位置の連続性は維持されます(フレームは引き継がれます)が、レンダリング特性の変化が微妙なポップとして認識されます。唯一認められる例外は、単一の頑固なクリップに対するNSFWフォールバック(注意点)です — 5秒のコネクタ1本でわずかな特性変化が生じても、コネクタがないよりはましです。
  • デフォルトはseedance-2-first-last-frame(globalティア)。ユーザーの明示された好みは、モデルが条件を満たす場合(フレームロック)にのみ尊重します。満たさない場合はその旨を伝え、サポートされているモデルを使用します — モデルリクエストを満たすために、シームレスでないビルドを決して提供しないでください。
  • パイプラインスクリプトは、モデル/ティアを$VMODEL/$VTIERとして受け取り、ティアごとのフラグはすでに場合分けされています(scripts/pipeline.md)。

A)連続フォワードテイク — 接地/リアル/ウォークスルーに推奨

最初のシーンから最後まで、単一のテイクとして前進のみを行う1台のカメラ。レッグを順次生成します: レッグ0はシーン0のスチルから(前方にグライドイン)。その後、各レッグの--start-image = 前のレッグの実際の最終フレーム(ffmpegで抽出し、アップロード)、プロンプトは*"continue gliding smoothly FORWARD into [scene i], never pulling back"*(またはモーションハンドオフ契約の下での表現力豊かなミッドレッグムーブ — 以下のカメラ文法を参照)、そして**--end-imageなし** — ワイドなエスタブリッシングショットの終了画像はカメラを後退させるため、スタッターの最大の原因です。各レッグの最終フレームを抽出して次のレッグに供給します。結果: すべての継ぎ目はフレーム同一であり**、かつカメラは決して後退しません。コネクタはありません(ステップ5をスキップ) — レッグ自体がジャーニーです。各レッグをセクションクリップとしてconnectors: []と小さなcrossfade(約0.08)で配線します。--end-imageがなくても、レッグは異なる部屋に到着します(プロンプトがコンテンツを誘導します)。コスト: 厳密に順次**(並列化不可)であり、遅くなります。インテリアはコンテンツフィルターに引っかかる可能性が高いため、リトライを組み込んでください(レッグあたり3試行)。

B)ダイブイン + 空中コネクタ — ジオラマ/ミニチュア/神の目線の世界のみ

各シーンへの「ダイブイン」クリップ + コネクタ。コネクタは上と外に引き出し、次のシーンへと飛行します(ステップ5)。引き出しはすべての継ぎ目でカメラの方向を反転させます(前方ダイブ → 後方引き出し)。ミニチュア/ジオラマの世界では、これは意図的な「ズームアウト → パン → ズームイン」として読まれ、素晴らしい効果を発揮します。リアルな世界(オフィスツアーなど)では気が散ります。これが選択ルールです。コネクタのプロンプトは常に次のような形状になります: "Continue flying backward and up, pulling out of the [scene_i] set to reveal the wider world, then swoop forward and down toward [scene_i+1]"。

このアーキテクチャは実際に機能させるためにステップ5を必要とします。コネクタのないBアーキテクチャは、異なるシーンに突然ワープするだけです — それはSIXではありません。


ステップ 5 — コネクタ(アーキテクチャBのみ)

これを正しく行うことが、シームレスな出力と壊れた出力の違いです。 コネクタは、シーンiの最後のフレームからシーンi+1の最初のフレームへのブリッジであり、カメラがプルアウト → パン → ダイブインする様子を示します。

各コネクタミッション:

  1. シーンiから最後のフレームを抽出します。
  2. シーンi+1から最初のフレームを抽出します。
  3. それらを--start-imageと--end-imageとして渡します。
  4. プロンプトは常にプルアウト → パン → ダイブインを記述します。
  5. 比較的一般的な障害(#!/fail): コネクタは--end-imageを尊重しなければなりません。そうでない場合、--start-imageから始まり、--end-imageで終わることを強制するモデルが必要です。seedance-2-first-last-frameがこれを行います。--end-imageをフレームロックできないモデルでは、コネクタとレッグの両方を生成することはできません — その場合、モデルを除外します(選択ルール)。

コネクタのプロンプト(毎回のベース):

Continue flying backward and up, pulling out of the [scene_i] set to reveal the wider surroundings, then sweep forward and down toward [scene_i+1], never stopping.

抽出された境界フレームは両方とも、muapi upload fileでホストされたURLを介して画像として渡されます。

コネクタのジオメトリに関する重要な仕様:

  • 持続時間: 2〜3秒(48〜72フレーム@24fps)。短すぎるとぎくしゃくします。長すぎるとカメラの動きが薄まります。
  • 出力解像度はレッグと一致します(通常は1344x768、または16:9の場合は1920x1080。必要に応じてscripts/pipeline.mdを参照)。

注意/既知の問題:

  • コネクタは--end-imageが尊重されない場合があります(まれに、モデルがそれをガイダンスとして扱い、ハードストップとして扱わない)。コネクタを検査して、適切に終了していることを確認してください。そうでない場合は、強い動きの手がかりで再生成するか、--end-imageをアンカーする代替モデルにフォールバックします。
  • コネクタとレッグの間のコンテンツフィルターの不一致: seedance-2-vip-first-last-frame(vip)は、NSFWと判定された単一のコネクタに対する避難ハッチです。1本のコネクタで使用しても、位置の連続性は維持されますが、レンダリングの飛びが生じます。多くのコネクタで必要な場合は、チェーン全体をvipで再実行することを検討してください。

ステップ 6 — ビデオレッグとコネクタのエンコード + モバイル版

各レッグとコネクタを、エンジンが期待する正確な形式でレンダリングします。各レッグのコマンド:

muapi video from-image --model $VMODEL --tier $VTIER \
  --start-image "$(cat scene_i_boundary.txt)" \
  $( [[ -n $END_IMAGE ]] && echo "--end-image $(cat scene_i+1_boundary.txt)" ) \
  --prompt "$PROMPT" \
  --aspect-ratio 16:9 --fps 24 --frames 72 \
  --mode first-last --output-json leg_i.job.json

コネクタコマンド(アーキテクチャBの場合):

muapi video from-image --model $VMODEL --tier $VTIER \
  --start-image "$(cat scene_i_end.txt)" \
  --end-image "$(cat scene_i+1_start.txt)" \
  --prompt "$CONNECTOR_PROMPT" \
  --aspect-ratio 16:9 --fps 24 --frames 60 \
  --mode first-last --output-json conn_i.job.json

ダウンロード後、ffmpegで期待されるコーデックとコンテナに再エンコードします:

ffmpeg -i leg_i_download.mp4 -c:v libx264 -preset slow -crf 18 -pix_fmt yuv420p leg_i.mp4

モバイル版(ベータ): ユーザーが「デスクトップ + モバイル(ベータ)」を選択した場合にのみ:

ffmpeg -i leg_i.mp4 -vf "crop=ih*9/16:ih" -c:v libx264 -preset medium -crf 23 -pix_fmt yuv420p leg_i-m.mp4

モバイルエンコードには接尾辞-mを付けます(例: leg_0-m.mp4、conn_0-m.mp4)。エンジン設定オブジェクトは、キーclipMobileとconnectorsMobileを介してこれらを自動的に参照します。


ステップ 7 — エンジンを配線する

resources/scrub-engine.jsをコピーします。エンジンはmountSIX関数を公開し、次のような設定オブジェクトを受け取ります:

mountSIX('six-container', {
  clips: [
    {
      id: 'section-0',
      src: 'leg_0.mp4',
      srcMobile: 'leg_0-m.mp4',         // モバイル版がある場合のみ
      headline: '農園から',
      body: '最高級の茶葉を世界中から調達',
      eyebrow: '01 — 起源',
      tags: ['オーガニック', 'フェアトレード'],
      poster: 'scene_0.webp',
      crossfade: 0.08,
      connectors: []
    },
    // ... セクション1、2など
  ],
  // アーキテクチャBの場合のみ:
  connectors: [
    {
      id: 'conn-0-1',
      src: 'conn_0.mp4',
      srcMobile: 'conn_0-m.mp4',
      poster: 'conn_0_poster.webp',
    },
    // ...
  ],
  // アーキテクチャAの場合はconnectors: []
  // connectors: []
  // アーキテクチャAの場合はcrossfadeが重要です
  theme: 'dark',
  accentColor: '#FFD700',
  logo: 'logo.svg',
  cta: {
    text: '詳細を見る',
    link: '/product',
  }
});

resources/index-template.htmlは最小限のラッパーを提供します。テーマカラー、フォント、CTAを調整するだけです。

結果のHTMLがfile://プロトコルでも開くことを確認してください — CORSエラーがないこと(すべてsrc相対パスを使用)。


ステップ 8 — 品質保証

少なくとも以下を確認します:

  • すべてのスチルが一貫した世界として読める
  • すべてのレッグがスムーズに開始/終了する(フレームロックテスト)
  • コネクタ(アーキテクチャB)がシームレスにブレンドされる — 出力をエクスポートし、ffplayまたはブラウザでフルスクリーンで視聴します
  • スクロールの応答性が滑らか — ラグがない、飛びがない
  • モバイルビルド(該当する場合):
    • ポートレートモードでクロップがフォーカルポイントを保持している
    • スマートフォンでスクロールのタッチ応答性が良好
    • バッテリー消費が過剰でない(ループ時間に注意)
  • すべてのテキストプレースホルダーが実際のコピーで上書きされている
  • 性能: ハイエンドデスクトップで60fps、ミッドレンジラップトップで30fpsを目標に。品質設定を調整するにはscripts/pipeline.mdのエンコードフラグを変更します。

カメラ文法(表現力豊かな動きのためのリファレンス)

基本形(デフォルトで使用):

  • グライド: 「滑らかに前方にグライド」/「着実に前進」 — 最も一般的で安全な動き。
  • ダイブ: 「下向きに弧を描いて*/dive into the scene*」 — 入口に適しています。
  • プルアウト: 「後方および上方に飛行して*/pull out of the scene*」 — コネクタに使用。

バリエーション:

  • スイープ: 「ワイドアークでスイープ」 — よりドラマチックな動き。
  • ズーム: 「そのまま拡大」 — ニュートラル、フレームロックジオメトリを維持。
  • パン: 「右から左にパン」 — 単独では使用しないでください。レッグ全体にわたる場合のみ、より大きな動きと組み合わせて使用します。
  • ブームアップ: 「上方にブームアップ」 — 高さを増すのに適しています。

動きは常にスムーズで一定の速度に保ちます。急な方向転換は避けてください。カメラは優雅に移動する必要があります。


トラブルシューティング / 既知の神話

  • 神話: 「--end-imageフレームロックは正確である」 — 現実: 意図されたフレームから1〜5フレームずれることがよくあります。常に出力を検査し、必要に応じて再生成します。
  • 神話: 「より高い解像度 = より良い品質」 — 現実: このパイプラインでは、1344x768は24fpsで良好に見えます。2560x1440はフレームロックの安定性を低下させ、生成時間を大幅に増加させます。プロダクションでは16:9の1920x1080を超えないでください。
  • 神話: 「すべてのMuAPIモデルは同じAPI契約を持つ」 — 現実: 各モデルは--image-urls、--start-image、--end-imageを異なる方法で処理します。references/muapi-model-roster.mdを確認し、バッチを開始する前に常に1つのリクエストでテストしてください。
  • 神話: 「レッグを並列化できる」 — アーキテクチャAでのみ真実です。同一のプロンプトでレッグを独立して生成できる場合(各レッグは独自の開始フレームから開始)。アーキテクチャBのコネクタは、前のレッグが終了するまで開始できません(開始フレームを知る必要があるため)。

付録 — MuAPIモデルロスター(抜粋)

検証済みモデルと能力のクイックリファレンス。完全なテーブルはreferences/muapi-model-roster.mdにあります。

モデルタイプ開始画像終了画像ティア備考
gpt-image-2-text-to-image画像N/AN/Aglobalデフォルトのスチル画像生成器。3:2でアイソメトリックに最適。
seedance-2-first-last-frameビデオ✓✓globalデフォルトのビデオモデル。レッグとコネクタの両方をサポート。
seedance-2-first-last-frame-fastビデオ✓✓global低品質、高速。プレビズに最適。
seedance-2-vip-first-last-frameビデオ✓✓vipVIPティア。より高い制限、コンテンツフィルターフォールバックに使用。
nano-banana-pro画像N/AN/Aglobalキャラクター/漫画に適しています。
google-imagen4-ultra画像N/AN/Aglobalフォトリアリズムに適しています。

非対応モデル(シーム不可能): 単一画像条件付けのみ(例えば、終了画像のないi2v)のモデルは、このスキルでは使用できません。シームをロックするには2つの条件付け画像が必要です。


付録 — リソース

  • resources/scrub-engine.js: ポータブルVanilla JSスクラブエンジン。
  • resources/index-template.html: エンジンを使用するための最小限のHTMLテンプレート。
  • scripts/pipeline.md: ステップ2〜7のコピペ可能なバッシュスクリプト。
  • scripts/knockout.py: MuAPI生成画像用の背景除去スクリプト。
  • references/prompts.md: すべてのプロンプトテンプレートとインテークチェックリスト。
  • references/muapi-model-roster.md: 各MuAPIモデルとその能力の詳細なカタログ。

関連スキル