Minimax H3の動画プロンプト生成をComfyUIのWorkflowだけで完結させてみた

カテゴリー
アーカイブ
ブログランキング

最近、Minimax H3を触っていて思ったことがあります。

プロンプト、結構めんどくない?

Minimax H3のような最近の動画生成AIは、単純に

「女の子が歩く」

と書いて終わり、という感じではありません。

  • カメラをどう動かすのか。
  • 被写体がどう動くのか。
  • 動画の何秒目で何が起きるのか。
  • 音声や効果音をどうするのか。

みたいなことを細かく指定しようと思えば、かなり複雑なプロンプトになります。もちろん、細かく指示できるのはありがたいですが、動画を作るたびに、

「えーっと、カメラワークはこう書いて……」

とプロンプトを組み立てるのは、正直不可能です。そこで最初は、ChatGPTなどのLLMに、プロンプトのガイドラインを教えて、プロンプトを書いてもらっていました。

これはこれで便利。画像を見せて、

「このキャラクターが魔法を撃って最後に顔のアップになる動画にしたい」

みたいに伝えれば、Minimax H3向けのプロンプトを作ってくれます。ただ、その後にコピー&ペーストが待っています。これを何度もやるのは面倒。

だったら、

「プロンプトを作るところまでWorkflowに入れればいいんじゃね?」

ということで、やってみました。


スポンサーリンク

1. 今回やりたいこと

今回の目標はシンプルです。

画像と日本語の指示をWorkflowに入れるだけで、Minimax H3用の動画プロンプトを自動生成する。

イメージとしては、

画像
  ↓
日本語の指示
  ↓
ローカルLLM
  ↓
Minimax H3用プロンプト生成
  ↓
動画生成

という流れです。

つまり、自分が考えるのは、

「この画像をこういう動画にしたい」

という部分だけ。プロンプトの細かい構成はLLMに任せます。

そして今回は、この処理を全部ComfyUIのWorkflowの中で完結させることを目指しました。


2. 今回使ったもの

今回の環境はこんな感じです。

  • ComfyUI
  • Minimax H3
  • LM Studio
  • LM Studioで動かすローカルLLM
  • comfyui-lmstudio-image-to-text-node(ComfyUIのカスタムノード)
  • Minimax H3用のプロンプトガイド
  • ComfyUIから取得したMinimax H3のテンプレート(Workflow)

今回のポイントは、LM StudioとComfyUIをつなぐためにカスタムノードを使ったことです。
使用したのが、

comfyui-lmstudio-image-to-text-node

というカスタムノード。これを使うことで、ComfyUIのWorkflowからLM Studioで動いているローカルLLMに画像を渡して、テキストを生成させることができます。

つまり、

ComfyUI → LM Studio → ローカルLLM → ComfyUI

という連携ができるわけです。


3. 公式Workflowをベースにする

今回、ゼロからWorkflowを作ったわけではありません。まずはMinimax H3の公式Workflowを用意しました。

ここに、今回用意したカスタムノードを追加します。これならMinimax H3の動画生成部分は、基本的に公式Workflowをそのまま利用できます。

ざっくり説明すると、

【元の公式Workflow】

画像
 ↓
プロンプト
 ↓
Minimax H3
 ↓
動画

だったものを、

【今回のWorkflow】

画像
 ↓
LM Studio用カスタムノード
 ↓
ローカルLLM
 ↓
Minimax H3用プロンプト
 ↓
Minimax H3
 ↓
動画

という形にします。次からやり方を説明します。


4. やりかた

公式Workflowを用意

ComfyUIを起動して、テンプレートから下記のようにしてWorkflowを取得します。Minimax H3で高速化のために色々試しましたが、このFastH3が導入しやすい上に爆速になるのでオススメです。

Workflowを開いたら、モデルがないなどエラーが出ると思うので、必要なものを指示に従ってインストールしてください。

カスタムノードのインストール

ComfyUIのカスタムノードのマネジャーを開いて、カスタムノード「comfyui-lmstudio-image-to-text-node」をインストールします。「LM」と検索するだけで見つかると思います。

インストール後、ComfyUIを再起動。すると、LM Studioと連携するためのノードが使えるようになります。

Workflowにカスタムノードを追加する

再起動後、取得したWorkflowを開いたら下記のようにカスタムノードを追加して下記のように配線します。

今回、このノードが画像をLLMに渡す橋渡し役になります。

Minimax H3用の「プロンプトの書き方」をLLMに教える

上記で作ったWorkflowには、中央あたりに文字列ボックスが上下に2つ並んでいると思いますが

上の文字列ボックスには、ユーザの指示を入力します。
下の文字列ボックスにMinimax H3のプロンプトを作成するためのガイドを入力します。

これがLLMへの指示です。単純に、

「この画像を動画にするプロンプトを書いて」

だけでは、こちらが期待している形式になるとは限りません。そこで、Minimax H3用のプロンプトガイドをシステムプロンプトとしてLLMに渡します。

つまり、

「あなたはMinimax H3用の動画プロンプトを作る役割です。このルールに従ってプロンプトを作ってください」

という状態にしておきます。

例えば、

  • 被写体の動き
  • カメラワーク
  • 時間軸
  • シーンの変化
  • 音声や効果音
  • 5秒間の動作

などを考慮してプロンプトを作るようにします。

ここまで設定しておけば、Workflowから画像と簡単な日本語の指示を渡すだけで、LLM側でMinimax H3用のプロンプトに変換できます。自分の場合はこんな感じにしました。
※音楽も生成してくれますが、効果音だけになるようにしてます

Role:
You are an expert Video Prompt Engineer for MiniMax H3.
Your task is to convert the reference image and the user's requested motion into a production-ready MiniMax H3 video prompt.

Strict Constraints:

Duration:
The target video duration is exactly 5.00 seconds.

Priority:
Prioritize specific physical actions and chronological changes over abstract moods or vague descriptions.

Mode:
I2VA.
The reference image is fully established at 0.00 seconds.
Develop the video forward from this initial state.

Structure:

Part One:
Start with a mandatory alignment instruction:
"For the target video, at 0.00 seconds into the target video, <Picture 1> (from [Shot 1]) is fully referenced."

Then provide:

integrated_multimodal_description:
Describe the subject, specific actions, interactions, camera motion, environmental motion, and synchronized physical sounds in chronological order.

overall_soundscape:
Describe ambient and physical sounds.

non_diegetic_music:
Describe appropriate background music, or state that there is no non-diegetic music.

Writing Standards:

Camera Motion:
Describe camera movement using:
[Motion Type] + [Amplitude] + [Speed]

Subject Consistency:
Strictly preserve the identity, appearance, clothing, hairstyle, colors, proportions, and important visual details of subjects in the reference image.

Motion:
Describe concrete physical movements rather than abstract concepts.
Break complex actions into a plausible sequence within the 5-second duration.

CRITICAL RULE FOR DIALOGUE:

You MUST NOT translate the user's provided spoken content.
If the user provides Japanese text (e.g., "やってやる!"), you MUST keep it exactly as "やってやる!" inside the <d> tags.
The format must be: <d>[Japanese] やってやる!</d>
NEVER convert Japanese input into English unless the user explicitly asks for a translation.
Preserve every original word and punctuation mark verbatim.

Image Fidelity:
Do not introduce major objects, characters, clothing, colors, or environmental elements that are not supported by the reference image unless explicitly requested by the user.

Output:
Provide ONLY the final MiniMax H3 prompt.
Do not include explanations, analysis, headings, or conversational filler.

User Intent:
Follow the user's requested video action and translate it into precise physical movements, camera movement, and timing.

Describe the action as a chronological sequence across the 5-second duration. Avoid packing too many major actions into 5 seconds.

5. LM StudioとComfyUIを接続する

次にLM Studio側です。LM StudioではローカルLLMを起動し、Serverを有効にしておきます。れで外部からアクセスできる状態になります。

今回使ったモデルは、

lmgoogle/gemma-4-12b-qat

です。そしてComfyUI側のLM Studioノードから、このLM Studioのサーバーへ接続します。
その際に上記で追加したカスタムノードにモデル名を入力する必要があります。
今回私が使ったlmgoogle/gemma-4-12b-qatだとこんな感じ。

google/gemma-4-12b-qat@q4_0

間違っているとエラーが出るので、その時はChatgptとかにエラー内容を教えるなどして聞いてみてください。これで、

ComfyUIのWorkflowからローカルLLMを呼び出せる状態

になります。ここまでできれば、もうChatGPTなどを別に開く必要はありません。


6. 実際に作って見る

では、実際に試してみます。今回作るために用意した画像はこちら。

入力した内容はこちら。

「右手に力を貯めた魔法を撃ち、カメラは撃たれた魔法を追いかけて最後に爆発する。最後にカットが変わり彼女の顔アップになりにやりと笑う」

という動き。最初の指示だと、生成された動画がちょっといまいちだったので少しだけ詳しく書きました。
つまり下記を少しだけ補足したという感じです。

「最初はどういう状態なのか」
「いつカメラを掴むのか」
「カメラはどう動くのか」
「最後はどこまでアップになるのか」

あとはWorkflow側で、

画像 → LM Studio → LLM → Minimax H3用プロンプト

と処理してくれます。そして、その生成されたプロンプトをそのまま動画生成側へ渡します。

ここでようやく、

「あ、コピペいらないじゃん」

となりました。またこのカスタムノードは、「auto_unload」をTrue(デフォルト設定)にしておくと使ったLLMモデルを自動で解放してくれるのでVRAMの節約にもなります。


7. 実際に生成されたプロンプトと動画

ここでは実際に生成されたプロンプトを掲載します。

LLMに入力した指示

右手に力を貯めた魔法を撃ち、カメラは撃たれた魔法を追いかけて最後に爆発する。最後にカットが変わり彼女の顔アップになりにやりと笑う

LLMが生成したMinimax H3用プロンプト

For the target video, at 0.00 seconds into the target video, <Picture 1> (from [Shot 1]) is fully referenced.

integrated_multimodal_description:
At 0.00 seconds, the girl stands in a wide stance, her long blue hair billowing in the wind. She focuses intensely on her right hand, where a glowing blue magical sphere pulse with energy. From 0.00 to 1.5 seconds, she thrusts her right arm forward with a powerful motion, launching the sphere as a projectile. The camera executes a [Tracking Shot] + [High Amplitude] + [Fast Speed], rapidly following the blue orb as it streaks across the white, ruined landscape towards the background. At 2.5 seconds, the orb impacts a distant structure, triggering a massive, bright white and blue explosion that fills the screen with light and debris. At 3.5 seconds, there is a sharp cut to a close-up of the girl's face. Her expression shifts from intense focus to a confident, mischievous smirk. At 4.5 seconds, she tilts her head slightly and lets out a small, triumphant laugh, her blue eyes sparkling.

overall_soundscape:
A low hum of magical energy, a high-pitched "whoosh" as the projectile is fired, a deafening "boom" of the explosion, and the sound of wind whistling through ruins.

non_diegetic_music:
No non-diegetic music.

実際の生成結果

今回のような複雑なカメラワークでも、画像の内容を確認したうえで、LLMが動画用のプロンプトに変換してくれました。

もちろん、毎回完璧に意図通りになるわけではありません。

動画生成AIなので、

「いや、そうじゃないんだよなw」

という結果も普通にあります。ただ、今回重要なのはそこではありません。

プロンプトを考えて、別のAIに投げて、コピーして、ComfyUIに戻って貼り付ける。

この作業を省略できたことです。


8. 今回やってみて思ったこと

今回の実験は、最初から壮大な「AIエージェント」を作ろうとしていたわけではありません。単純に、

「毎回プロンプトをコピーするの面倒だな」

というところから始まりました。そこで、

「じゃあWorkflowの中でLLMに作らせればいいんじゃね?」

と考えて、ComfyUIとLM Studioをつないでみた。やってみると、思ったより普通に動きました。こういうところが、ローカルAIをいじっていて面白いところです。単体のAIを使うだけではなく、

画像を扱うComfyUIと、文章を考えるLLMをつないで、自分が使いやすい作業環境にしてしまう。

今回やったのは、まさにそれです。


まとめ

今回は、Minimax H3の公式Workflowをベースに、

comfyui-lmstudio-image-to-text-node

を追加して、LM StudioのローカルLLMと連携させてみました。最終的な流れは、

画像
 ↓
日本語で動画の指示
 ↓
ComfyUI
 ↓
LM Studio
 ↓
ローカルLLM
 ↓
Minimax H3用プロンプト生成
 ↓
Minimax H3
 ↓
動画生成

という形です。

これなら、動画を作るたびに別のAIを開いてプロンプトを作り、コピー&ペーストする必要がありません。何より、

「こういう動画にしたい」

という発想から、そのまま動画生成まで持っていける。今回のように、ちょっとした「面倒くさい」を見つけて、それをローカルAIとWorkflowで潰していく。

個人的には、こういう使い方こそローカルAIの面白さなんじゃないかなと思っています。

コメント

タイトルとURLをコピーしました