【ComfyUI】P-H3-Imageの使い方|テキストから画像生成と画像編集

P-H3-Imageで3枚の参照画像から2人の女性が手をつなぐ画像に編集した結果

P-H3-Imageは、Pruna AIがMiniMax-H3をベースに作った画像生成・画像編集モデルです。

ComfyUIの公式ワークフローに、テキストから画像生成と画像編集の2種類が追加されました。

この記事では、必要なモデルの配置とワークフローの読み込み方を紹介します。

P-H3-Imageとは?

P-H3-Imageは、MiniMax-H3をベースにした、テキストから画像生成と画像編集のための画像モデルです。

CFGなしの8ステップで、8メガピクセルの画像を生成できます。

主な特徴

  • テキストから画像を生成できる
  • 元画像を短い指示文で編集できる
  • 参照画像を追加して編集できる
  • CFGなしの8ステップで生成する
  • 8メガピクセルの高解像度で出力する
PrunaAI/P-H3-Image · Hugging Face
Text-to-Image model with 33B parameters. Download, explore files and run it on Hugging Face.

ライセンス

P-H3-Imageのライセンスは「minimax-h3-community-license-agreement」です。

ComfyUI向けのファイルも、MiniMax-H3と同じこのライセンスで配布されています。

商用利用などの条件は、MiniMax-H3のライセンス本文で確認してください。

ComfyUIのインストール

ComfyUIをまだインストールしていない方は、こちらを参考にしてみてください。

ComfyUIの使い方・始め方まとめ|インストールから基本操作・カスタムノードまで
ComfyUIの導入方法はポータブル版・Desktop版・StabilityMatrixの3つがあり、初心者にはDesktop版がおすすめです。この記事では3つの違いと選び方、テンプレートを使った基本的な画像生成手順、カスタムノードの管理方法までまとめて紹介します。

あとComfyUI 0.44.0へのアップデートが必要です。

Stability Matrixならパッケージ画面、ポータブル版ならupdateフォルダのupdate_comfyui_stable.batで更新できます。

詳細は公式のドキュメントでご確認ください。

必要なモデルのダウンロードと配置

画像生成、編集どちらも以下のモデルを使用します。

種類ファイル名配置先
拡散モデルminimax_h3_fl2va_pruned_int8_convrot.safetensorsmodels/diffusion_models
テキストエンコーダーp-h3-image_text_encoder_int8_convrot.safetensorsmodels/text_encoders
プロンプトアップサンプラーp-h3-image_prompt_upsampler_w4a8.safetensorsmodels/text_encoders
VAEp-h3-image_vae_int8_convrot.safetensorsmodels/vae
LoRAp-h3-image_lora_bf16.safetensorsmodels/loras
ComfyUI/
└── models/
    ├── diffusion_models/
    │   └── minimax_h3_fl2va_pruned_int8_convrot.safetensors
    ├── text_encoders/
    │   ├── p-h3-image_text_encoder_int8_convrot.safetensors
    │   └── p-h3-image_prompt_upsampler_w4a8.safetensors
    ├── vae/
    │   └── p-h3-image_vae_int8_convrot.safetensors
    └── loras/
        └── p-h3-image_lora_bf16.safetensors
Comfy-Org/MiniMax-H3 · Hugging Face
We’re on a journey to advance and democratize artificial intelligence through open source and open science.
PrunaAI/P-H3-Image-Comfy · Hugging Face
Text-to-Image model. Download, explore files and run it on Hugging Face.

ワークフローの読み込み

ComfyUIの公式ワークフローは、2種類です。

リンク先のGitHubページからJSONファイルをダウンロードし、ComfyUIの画面へドラッグ&ドロップして読み込んでください。

または左上メニュー→テンプレート参照から選択するとワークフローを取り込めます。

ComfyUIのテンプレートからP-H3-Imageのワークフローを選ぶ画面

P-H3-Imageでテキストから画像生成

Resolution Selectorでアスペクト比や解像度を選択できます。

Resolution Selectorでアスペクト比と解像度を選ぶ画面

New Subgraphでモデルをセットして、プロンプトを入力します。

New Subgraphでモデルを設定してプロンプトを入力する画面

プロンプトはenable_prompt_upsamplingを使う場合、Aspect ratioやRequestのラベルを付けて書いた方がいいそうです。

Aspect ratioにはResolution Selectorで指定した値を入れます。

16:9ならAspect ratio: 16:9。

Requestには生成したい内容を書けばOKです。

Aspect ratioとRequestのラベルを付けたプロンプトの入力例

デフォルトでプロンプトを拡張してくれるenable_prompt_upsamplingがオンになっています。

もしオフにするならプロンプトもラベルなしで、普通の自然言語にしてください。

enable_prompt_upsamplingの設定画面

結果:

RTX4060Ti(VRAM16GB/RAM64GB)、enable_prompt_upsamplingオフで約1分6秒でした。

・二次元(アニメ調)

P-H3-Imageでアニメ調の少女を生成した例(enable_prompt_upsamplingなし)
Aspect ratio: 4:3
Request: anime illustration of a girl with short silver hair and a navy school blazer sitting on the windowsill of an empty classroom at sunset, warm orange light streaming through the window, dust particles floating in the air, rows of wooden desks fading into soft shadow, cherry blossom petals drifting in from outside, gentle smile, looking out the window, clean line art, cel shading, vibrant colors, high detail

enable_prompt_upsamplingありだと約1分17秒でした。

P-H3-Imageでアニメ調の少女を生成した例(enable_prompt_upsamplingあり)
A single frame from a Japanese anime TV series, hand-drawn cel animation with clean ink line art and flat cel shading. A girl with short silver hair and a navy school blazer sits on a windowsill in an empty classroom at sunset, looking out the window with a gentle smile. Warm orange light pours through the window and catches dust particles floating in the air. Pale pink cherry blossom petals drift in from outside. Rows of wooden desks fade into soft shadow in the background.

・三次元(実写調)

enable_prompt_upsamplingなしで約1分。

P-H3-Imageで実写調の老漁師を生成した例(enable_prompt_upsamplingなし)
Aspect ratio: 4:3
Request: photograph of an elderly fisherman mending a net on a wooden pier at dawn, weathered face with deep wrinkles, knitted wool cap, calm misty harbor with small boats in the background, soft pink and blue morning light, shallow depth of field, shot on 85mm lens, natural skin texture, documentary style, high detail

enable_prompt_upsamplingありで約1分15秒。

P-H3-Imageで実写調の老漁師を生成した例(enable_prompt_upsamplingあり)

なおenable_prompt_upsamplingを使用して、Aspect ratio、Requestのラベルなしで生成するとこんな感じになります。

どちらもsitting on the windowsill(窓辺に座る)が効いてないので、enable_prompt_upsamplingありでラベルなしの場合は、若干プロンプトの追従性が下がるのかも?しれません。

P-H3-Imageで画像編集

Modelsグループでモデルをセットします。

画像編集ワークフローのModelsグループでモデルを設定する画面

Text (Prompt)にどう編集したいかを入力します。

Resolution Selectorはないですが、t2iと同じくenable_prompt_upsamplingを使う場合はラベルを付けるようです。

Text (Prompt)に編集の指示を入力する画面

Load Imageに編集したい画像を読み込みます。

Load Imageに編集したい画像を読み込む画面

アップサンプラーに画像を渡しているので、大きい画像だと処理が重くなります。

その場合は、Upsampler vision sizeのbypassを解除して、画像を縮小してからアップサンプラーに渡してみてください。

Upsampler vision sizeノードの画面

If/Else Switchでアップサンプラーのオン/オフを切り替えられます。

アップサンプラーのオン/オフを切り替えるIf/Else Switch

Generate Textでアップサンプラーの調整が可能です。

  • max_length(1536):アップサンプラーが書く文章の長さの上限
  • Sampling Mode(off):文章の書き方にランダム性を入れるかどうか
    • off:毎回いちばん確率の高い言葉を選ぶので、同じ依頼なら毎回同じ文章
    • Pruna AIの配布ページでも、offで使う前提と書かれている
    • on:temperatureなどの項目が現れ、同じ依頼でも毎回少し違う文章になる
  • thinking(true):アップサンプラーが文章を書く前に、依頼内容を考える段階を挟む
  • use_default_template(true):モデルに最初から入っている指示文と入力の型を使うかどうか
    • 「Aspect ratio・Requestを受けて画像用の文章を書く」という指示がここに入っている可能性があるため、falseにするとアップサンプラーが正しく動かないかもしれない
  • mtp(auto):文章を書く処理を速くする仕組み

結果:

t2iで作った3360×2496の画像で、黒板の掲示に文字を入れるという指定をしてみました。

アップサンプラーオン、Upsampler vision sizeオフで約3分22秒。

黒板の掲示に文字を入れた編集結果(アップサンプラーオン、Upsampler vision sizeオフ)

アップサンプラーオフ、Upsampler vision sizeオフで約2分30秒。

黒板の掲示に文字を入れた編集結果(アップサンプラーオフ、Upsampler vision sizeオフ)

アップサンプラーオン、Upsampler vision sizeオンで約37秒。

黒板の掲示に文字を入れた編集結果(アップサンプラーオン、Upsampler vision sizeオン)

アップサンプラーオフ、Upsampler vision sizeオンで約40秒。

黒板の掲示に文字を入れた編集結果(アップサンプラーオフ、Upsampler vision sizeオン)

この結果見るとアップサンプラーより画像サイズが生成速度にかなり影響するようなので、大きい画像のときはUpsampler vision sizeを使った方が良さそうです。

その他いろいろな編集を試してみました。

全てアップサンプラーオン、Upsampler vision sizeオンです。

・別の人物を追加する

窓辺の少女の隣に男子生徒を追加した編集結果
Aspect ratio: 4:3
Request: add a boy in the same school uniform standing next to the girl by the window, talking to her

・表情だけ変える

少女の表情を泣き顔に変えた編集結果
Aspect ratio: 4:3
Request: make the girl cry with tears on her cheeks, keep everything else the same

・ポーズを変える(背景はそのまま)

少女が立って腕を組むポーズに変えた編集結果
Aspect ratio: 4:3
Request: make the girl stand up and lean against the window with her arms crossed, keep the background the same

・服装を変える

制服を白い夏服のセーラー服に変えた編集結果
Aspect ratio: 4:3
Request: change the girl’s school uniform to a white summer sailor uniform

・時間帯・天気を変える

教室の照明がついた雨の夜に変えた編集結果
Aspect ratio: 4:3
Request: change the scene to a rainy night with the classroom lights on

複数参照画像を使った編集方法

Load Image増やしてGenerate Textとp-h3-image Conditioningそれぞれにつなげば複数参照画像を使って編集もできます。

それぞれ参照画像が大きい場合はUpsampler vision sizeを挟んでください。

またAIに聞くと、デフォルトのワークフローだとUpsampler vision sizeをp-h3-image Conditioningにつないでますが、p-h3-image Conditioningはノード内で縮小しているそうです。

なので生成速度への影響は小さく、Upsampler vision sizeはGenerate Textだけでもいいとのことでした。

3枚の参照画像をUpsampler vision size経由でGenerate Textとp-h3-image Conditioningにつないだワークフロー

また任意のサイズにしたい場合は、Get Image Sizeを削除して、p-h3-image Conditioningで直接指定も可能です。

p-h3-image Conditioningのwidthとheightで出力サイズを指定する画面

プロンプトの書き方はアップサンプラーオンオフで変わります。

アップサンプラーを使わない場合は、MiniMax-H3のように<Picture 1>などでその画像を指定し、どう編集したいかを書きます。

The woman in <Picture 1> and the woman in <Picture 2> are holding hands and expressing joy, with <Picture 3> in the background.
<写真1>の女性と<写真2>の女性は手を取り合って喜びを表現しており、背景には<写真3>が写っている。

これだとこんな結果になりました。

アップサンプラーなしで3枚の参照画像から2人の女性が手をつなぐ画像に編集した結果

アップサンプラーありの場合、Pruna AI(モデルの配布元)の公式ワークフローだとこんな風に書いてました。

<|im_start|>user
<Picture 1>: <|vision_start|><|image_pad|><|vision_end|><Picture 2>: <|vision_start|><|image_pad|><|vision_end|><Picture 3>: <|vision_start|><|image_pad|><|vision_end|>Edit <Picture 1>. The woman in <Picture 1> and the woman in <Picture 2> are holding hands and expressing joy, with <Picture 3> in the background.<|im_end|>
<|im_start|>assistant
<think>

<|im_start|>userは固定でその後に画像枚数分<Picture N>: <|vision_start|><|image_pad|><|vision_end|>を入力します。

Edit以降が上の自然言語で書いた指示文です。

それを<|im_end|><|im_start|>assistant<think>で閉じてます。

正直これが正解なのか分かりませんが、アップサンプラーを使う場合はこういう書き方するみたいです。

サイズを1920×1080、アップサンプラーオンにして生成するとこんな感じでした。

髪飾りとかはアップサンプラー使った方が再現できてると思います。

P-H3-Imageで3枚の参照画像から2人の女性が手をつなぐ画像に編集した結果

まとめ

画像生成も編集もかなり扱いやすいと思います。

元々MiniMax-H3 R2Vの生成能力が良かったので、SNSでも画像編集に使えたらという声が多くいろんな方が試行錯誤してましたが、それが形になったようなモデルに感じました。

編集のプロンプトがちょっとまだ慣れないんですが、qwen image 2.1並みに使えるような印象です。

qwen image 2.1は未だにライセンスの変更・追加など進展が一切ないので、そういうの考えるとP-H3-Imageの方が扱いやすいように感じました。

以上P-H3-Imageの使い方について紹介しました。

参考になれば幸いです。

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