mcpField
I
image-to-video

image-to-video

github.com/genmedia-labsクリエイティブ・メディア27839.1k 回インストール7 週間前に更新
リポジトリ

image-to-video について

ユーザーの意図に応じてRunComfyのモデルを選ぶ、画像から動画を生成するエージェントスキルです。人物や製品のアニメーション、音声に合わせたリップシンク、複数素材の参照生成に対応し、RunComfy CLIで実行します。

主な機能

  1. 01意図に応じたモデル選択
  2. 02HappyHorseによる画像アニメーション
  3. 03Wan 2.7による音声リップシンク
  4. 04Seedanceの複数素材参照生成
  5. 05RunComfy CLIでの実行

活用シーン

  1. 01人物の同一性を保ったアニメーション
  2. 02指定した音声に合わせたリップシンク動画
  3. 03人物・シーン・音声を組み合わせた生成

インストール

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

$npx skills add https://github.com/genmedia-labs/skills --skill image-to-video

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

詳細

画像から動画へ — RunComfy の Pro Pack

runcomfy.com · HappyHorse I2V · Wan 2.7 · Seedance 2.0 Pro · GitHub

画像から動画へ、意図に応じてルーティング。 このスキルでは、使用するモデルが1つに固定されません。ユーザーの実際の要望(ポートレートのアニメーション化、カスタム音声トラックとのリップシンク、またはマルチモーダル構成)に基づき、RunComfy のカタログから適切な i2v モデルを選択します。

npx skills add agentspace-so/runcomfy-skills --skill image-to-video -g

ユーザーの意図に合ったモデルを選ぶ

ユーザーの意図モデル理由
ポートレートをアニメーション化する — 人物の同一性を維持HappyHorse 1.0 I2VArtificial Analysis Arena で1位(Elo 1392)。顔の忠実度に優れています
商品のお披露目/360度回転/マクロ撮影の動きHappyHorse 1.0 I2V形状を保ち、カメラを滑らかに動かします
1回の処理で、同期した環境音をネイティブに生成HappyHorse 1.0 I2V処理中に音声を合成します
カスタム音声トラックに合わせてアニメーション化し、リップシンクするWan 2.7 + audio_url独自の MP3/WAV(3~30秒、≤15MB)を受け付け、それに合わせてリップシンクします
多言語の吹き替えバリエーション(同じ画像に対し、呼び出しごとに異なる音声)Wan 2.7 + audio_url同じショットで、言語ごとに audio_url を入れ替えます
マルチモーダル — 画像+参照動画+参照音声を組み合わせるSeedance 2.0 Pro画像参照は最大9枚、動画参照は最大3本(各2~15秒)、音声参照は最大3件
キャラクター参照+シーン参照+音声参照を使った、ブランドの一貫性があるストーリーSeedance 2.0 Pro画像で人物の同一性を保ち、動画でシーンを保ち、音声で声を保ちます
指定がない場合のデフォルトHappyHorse 1.0 I2V全般的に高品質で、ネイティブ音声にも対応しています

エージェントはこの表を読み、ユーザーの意図を分類して、以下の該当するサブセクションを選びます。

前提条件

  1. RunComfy CLI — npm i -g @runcomfy/cli
  2. RunComfy アカウント — runcomfy login を実行すると、ブラウザーでデバイスコード認証が始まります。
  3. CI/コンテナ — RUNCOMFY_TOKEN=<token> を設定します。
  4. ソース画像の URL — JPEG/PNG/WebP、最小300px、≤10MB。アスペクト比は1:2.5~2.5:1(HappyHorse の場合)。他のモデルも同様の仕様です。

ルート1:HappyHorse 1.0 I2V — ポートレート/商品/一般的なアニメーションのデフォルト

モデル: happyhorse/happyhorse-1-0/image-to-video · Arena ランク: 1位(Elo 1392)

スキーマ
フィールド型必須デフォルト注記
image_urlstringはい—JPEG/JPG/PNG/WEBP。最小300px。アスペクト比1:2.5~2.5:1。≤10MB。
promptstringはい—CJK 以外は最大5000文字、CJK は最大2500文字。動き/カメラ/照明の説明。
resolutionenumいいえ1080P720P または 1080P。
durationintいいえ53~15秒。
seedintいいえ0バリエーションの比較に使うシード値です。
watermarkboolいいえtrueプロバイダーのウォーターマークを切り替えます。

出力のアスペクト比は入力のアスペクト比と同じです。独立したリフレーミングには対応していません。

呼び出し
runcomfy run happyhorse/happyhorse-1-0/image-to-video \
  --input '{
    "image_url": "https://.../portrait.jpg",
    "prompt": "Gentle camera drift around the subject'\''s face, subtle breathing motion, identity-stable features, soft natural light."
  }' \
  --output-dir <absolute/path>
プロンプトのヒント
  • 動きを表す動詞から始める:「漂う」「ドリーイン」「旋回する」「上にチルトする」「明らかにする」「まばたきする」「呼吸する」など。何が動くかを最初に書きます。
  • 画像の内容を言い換えない — モデルは画像を認識します。変化する要素にトークンを使います。
  • 維持する要素を明示する:「人物の同一性を保つ」「パッケージは変更しない」「背景の形状を安定させる」など。
  • 照明の変化:「リムライトが強まる」「カメラが上昇するにつれて影が短くなる」など。
  • 1クリップにつき1つの動き — 主な動きは1つに絞ります(旋回またはドリー、チルト、キャラクターの動作)。

ルート 2:Wan 2.7 + audio_url — ユーザーがカスタムのナレーション音声を用意している場合

モデル:wan-ai/wan-2-7/text-to-video(/image-to-videoではありません。Wan 2.7 の t2v エンドポイントは、リップシンクを制御するaudio_urlを受け付けます)

Wan 2.7 での i2v に関する注意:Wan 2.7 の主要な i2v アニメーションは、ここでは専用のエンドポイントでは提供されていません。モーションプロンプトだけで画像をアニメーション化する純粋な i2v には、HappyHorse i2v を推奨します。Wan 2.7 は、生成したトーキングヘッド動画にリップシンクさせたいカスタム音声トラックがユーザーにある場合に使用します。

スキーマ(音声付き Wan 2.7 t2v)
フィールド型必須デフォルト備考
promptstringはい—約 5000 文字まで。トーキングヘッドのショットについて、フレーミング、照明、動きを記述します。
audio_urlstringはい(リップシンクの場合)—WAV/MP3、3~30 秒、≤15MB。リップシンクを制御します。
aspect_ratioenumいいえ16:916:9、9:16、1:1、4:3、3:4。
resolutionenumいいえ1080p720p または 1080p。
durationenumいいえ52~15(整数秒)。音声の長さに合わせます。
negative_promptstringいいえ—避けるべき具体的な問題(例:「字幕なし、ちらつきなし」)。
seedintいいえ—再現性。
呼び出し
runcomfy run wan-ai/wan-2-7/text-to-video \
  --input '{
    "prompt": "Medium close-up of a confident spokesperson in a softly-lit recording booth, leaning slightly toward the camera, locked tripod, shallow DOF, warm key light from camera-left.",
    "audio_url": "https://.../voiceover-en.mp3",
    "duration": 12,
    "aspect_ratio": "9:16"
  }' \
  --output-dir <absolute/path>
プロンプトのヒント
  • トーキングヘッドのショットを記述する — フレーミング、照明、レンズの雰囲気を指定します。音声がリップシンクを制御し、プロンプトがその周囲のビジュアルを構築します。
  • durationを音声の長さに合わせる — 長すぎると、音声の終了後はクリップが無音になります。
  • 問題の指定にはnegative_promptを使う:"no subtitles, no flicker, no distorted hands"。
  • 多言語吹き替えの場合 — 同じプロンプトを使い、呼び出しごとにaudio_urlを差し替えます。言語間でビジュアルの一貫性を保つには、seed を固定します。

ルート 3:Seedance 2.0 Pro — マルチモーダルアニメーション(画像 + 参照動画 + 参照音声)

モデル:bytedance/seedance-v2/pro

ユーザーが被写体の画像 + 参照動画のシーン + 参照音声の声のトーンを組み合わせた単一のクリップを求めている場合に使用します。

スキーマ(Seedance 2.0 Pro、i2v 関連フィールド)
フィールド型必須デフォルト備考
promptstringはい—中国語は ≤500 文字、または英語は ≤1000 単語。
image_urlarrayはい(i2v の場合)[]画像 0~9 枚。最初の画像が主な被写体です。
video_urlarrayいいえ[]参照クリップ 0~3 本(MP4/MOV)、各 2~15 秒。
audio_urlarrayいいえ[]参照音声 0~3 本(WAV/MP3)、2~15 秒、各 < 15MB。
aspect_ratioenumいいえadaptiveadaptive、16:9、9:16、4:3、3:4、1:1、21:9。
durationintいいえ54~15(整数秒)。
resolutionenumいいえ720p480p または 720p。
generate_audioboolいいえtrue生成時に同期する音声、効果音、音楽。
seedintいいえ—再現性。
呼び出し
runcomfy run bytedance/seedance-v2/pro \
  --input '{
    "prompt": "Subject from image 1 walks through the café in video 1, voice tone matches audio 1. Medium close-up, slow push-in, warm light, gentle ambience.",
    "image_url": ["https://.../subject.jpg"],
    "video_url": ["https://.../cafe-locked-shot.mp4"],
    "audio_url": ["https://.../voice-tone.mp3"],
    "duration": 8
  }' \
  --output-dir <absolute/path>
プロンプトのヒント
  • 画像とテキストの役割分担 — 安定させたい要素(顔、衣装、ブランド)にはimage_urlを使い、変化させたい要素(動作、雰囲気、照明)にはpromptを使います。
  • プロンプト内で参照素材に番号を付ける:「画像 1 の被写体、動画 1 の照明、音声 1 の声」のように指定します。Seedance は指示を正しく振り分けます。
  • 参照メディアの仕様 — 動画と音声は 2~15 秒である必要があります。音声は < 15MB です。
  • 大きく異なる美的スタイルを混在させない — 画像 1 が水彩画で動画 1 がフォトリアルの場合、出力のスタイルにブレが生じます。

制限事項

  • 各ルートには、それぞれのモデルの制限が適用されます。 HappyHorse:上限 15 秒、出力のアスペクト比は入力と同じ。Wan 2.7:上限 15 秒、音声は 3~30 秒/15MB。Seedance:このテンプレートでは上限 720p、上限 15 秒。
  • 複数ルートのブレンドには対応していません。 このスキルでは、呼び出しごとにモデルを 1 つ選択します。ユーザーが同じクリップ内で HappyHorse のアニメーションと Wan 風のリップシンクを求める場合は、2 回呼び出してから結合する必要があります(ここでは対象外です)。
  • ブランド固有の上書き — ユーザーが一覧にない特定のモデルバリアント(例:Wan 2.6、Seedance 1.5)を指定した場合は、ここで無理に処理せず、該当するブランドスキル(wan-2-7、seedance-v2)に振り分けます。

終了コード

code意味
0成功
64CLI 引数が不正です
65入力 JSON が不正です/スキーマが一致しません
69上流で 5xx が発生しました
75再試行可能です:タイムアウト/429
77サインインしていないか、トークンが拒否されました

詳細なリファレンス:docs.runcomfy.com/cli/troubleshooting。

仕組み

このスキルはユーザーの意図に基づいて HappyHorse 1.0 I2V/Wan 2.7 t2v+audio/Seedance 2.0 Pro のいずれかを選び、一致する JSON 本文を指定して runcomfy run <model_id> を実行します。CLI は Model API に POST し、リクエストをポーリングして結果を取得した後、.runcomfy.net/.runcomfy.com の URL があれば --output-dir にダウンロードします。Ctrl-C を押すと、終了前にリモートリクエストをキャンセルします。

セキュリティとプライバシー

  • トークンの保存:runcomfy login は API トークンをモード 0600(所有者のみ読み取り/書き込み可能)で ~/.config/runcomfy/token.json に書き込みます。CI/コンテナでファイルを完全に回避するには、環境変数 RUNCOMFY_TOKEN を設定してください。
  • 入力境界:ユーザーのプロンプトは --input を介して JSON 文字列として CLI に渡されます。CLI はプロンプトをシェル展開せず、JSON 本文を HTTPS 経由で Model API に直接送信します。プロンプトの内容によるシェルインジェクションのリスクはありません。
  • サードパーティコンテンツ:指定した画像/マスク/動画の URL は、手元の CLI ではなく RunComfy モデルサーバーによって取得されます。外部 URL は信頼できないものとして扱ってください。画像ベースのプロンプトインジェクションは、あらゆる画像編集/動画編集モデルに既知のリスクです。
  • 送信先エンドポイント:model-api.runcomfy.net(リクエストの送信)および *.runcomfy.net/*.runcomfy.com(生成された出力のダウンロード許可リスト)のみです。テレメトリもコールバックもありません。
  • 生成ファイルのサイズ上限:悪意のある出力や、モデルが予期せず生成した出力によるディスク容量の枯渇を防ぐため、CLI は 2 GiB を超える単一のダウンロードを中止します。

コメント