VYBE Image-to-Motion
I = node <this skill>/scripts/i2m.mjs。単体で動作するか、/vybeのステージ4~5として動作します(その場合、作曲ディレクトリはVYBEプロジェクトのcomposition/です)。
正直ルール
プログラム的モーションは、カメラ、レイヤー、ライト、パーティクルを元のピクセルの周りで動かします。人を歩かせたり、笑わせたり、顔を向けさせたり、水を流したり、製品の裏側を見せたりすることはできません。プログラム的出力を「人が歩いている」とか「リアルな動き」と説明してはいけません。リクエストにピクセルレベルの動きが必要で、AIプロバイダーが実行されなかった場合は、そのことを率直に伝え、カメラモーションバージョンをそのまま提供してください。AIクリップには.provenance.jsonが付与され、常にAI生成とラベル付けされます。
1 · 分析
I analyze <image> # サイズ、アスペクト → 推奨フォーマット、トーンキー、パレット
次に画像を(視覚的に)見て、sources/image-analysis.mdを作成します:主要被写体と境界、前景/中景/背景、遠近法と地平線、光源の方向、動く可能性のある領域、顔(同一性を維持する必要あり)。
2 · 計画と手法の選択
I classify "<ユーザーのモーションリクエスト>" [--method programmatic|ai]
I providers # 設定されているAIプロバイダー(存在確認のみ)
| リクエストの内容 | 手法 |
|---|---|
| ズーム、押し込み、引き出し、パン、オービット感、パララックス、深度 | プログラム的 |
| パーティクル、ダスト、雪、雨、フォグ、ライトスイープ、グロー、フレア | プログラム的 |
| 被写体が安定したまま背景が漂う | プログラム的(レイヤー) |
| 分離されたオブジェクトの優雅な浮遊/揺れ | プログラム的(レイヤー、subjectSway) |
| 人/動物の動き、表情、手の動き | AI |
| 髪/布/葉/炎の動き、水/煙の流れ | AI |
| 変形(溶ける、咲く、爆発する)、360°回転 | AI |
ユーザーの明示的な--methodが常に優先されます。ハイブリッド(AIクリップ+プログラム的オーバーレイとカメラ)が最適な場合が多いです:有機的なモーションを生成し、HyperFramesでVYBEのカメラ、ライト、タイポグラフィ、サウンドを追加します。
sources/motion-plan.mdを作成します:カメラの動き、オブジェクト/背景の動き、ライト、パーティクル、持続時間、強度、手法とその理由、そして動かないもの。
3a · プログラム的
I scaffold --image <img> --prompt "<リクエスト>" --composition <dir> [--mode layers|depth] [--format f] [--duration s]
cd <dir> && npx hyperframes check && npx hyperframes snapshot --frames 5 -o ../previews/i2m
- layers(デフォルト):
npx hyperframes remove-backgroundで被写体と背景プレートを切り抜きます。被写体の穴はぼかしたコピーで埋められます。プレート、フォグ、被写体、パーティクル、ライトが深度スケーリングされたパララックスで動きます。明確な被写体がある場合に最適です。 - depth:Three.jsシェーダーが深度マップ(被写体マスク+地面グラデーション)で画像を変位させ、仮想カメラの動きに応じて真の2.5Dパララックスをフレーム全体に提供します。風景、室内、単一被写体のないシーンに最適です。顔には
intensity≤ 1を推奨(強すぎるオフセットは顔を歪めます)。 index.html内の#i2m-configJSONで調整します(カメラ:プッシュ・プル・パンレフト・パンライト・ライズ・オービット、強度0.5~1.5、エフェクト:パーティクル・スノー・レイン・フォグ・ライトスイープ、subjectSway)。- カットアウトが利用できない場合は単一レイヤーモーションに劣化します——その旨を報告してください。
3b · AI 画像-to-ビデオ
I generate --provider <p> --image <img> --prompt "<モーションプロンプト>" --out sources/clip.mp4 --duration 5 --aspect 16:9 --dry-run # リクエストを検査(キーは秘匿)
I generate --provider <p> --image <img> --prompt "<モーションプロンプト>" --out sources/clip.mp4 --duration 5 --aspect 16:9
I compose --clip sources/clip.mp4 --composition <dir> [--title "…"]
| プロバイダー | モデル | 備考 |
|---|---|---|
runway | gen4.5(デフォルト)、gen4_turbo、veo3.1、veo3.1_fast、kling3.0_pro、kling3.0_standard | 1つのキーでRunway、Google Veo 3.1、Kling 3.0にアクセス可能;持続時間2~10秒(Veo 4/6/8、Kling 3~15) |
luma | ray-3.2 | 5秒、開始フレーム付き;公開--image-urlを優先、小ファイルはインラインデータも可 |
gemini | gemini-omni-1.1-flash | Interactions API、16:9または9:16;Veo 3.1 プレビューモデルは2026-10-22に廃止 |
kling | kling-v2-1(直接) | 実験的アダプター(セカンダリドキュメントのエンドポイント);runway + kling3.0_proを推奨 |
モーションプロンプトはショットの説明のように記述します:被写体+アクション+カメラ+ムード+「被写体の同一性と構図を維持」。生成にはコストがかかります:エージェントが開始した有料通話の前に、ユーザーがAIモーションを明示的に要求していない限り、ユーザーに確認してください。失敗した有料生成は、許可なく1回以上再試行しないでください。エラー(認証、クォータ、モデレーション、タイムアウト)はそのまま報告されます。
詳細、ソース、注意点:references/providers.md。
4 · 納品
作曲は通常のVYBE処理を受けます:vybe audio(音楽/SFX/ボイス;マーカーあり)、vybe render、vybe qc、vybe finalize。単体の場合は作曲ディレクトリでnpx hyperframes render --output out.mp4を実行します。ソース画像、レイヤー、深度マップ、i2m-plan.json、および該当する.provenance.jsonを保持してください。