ComfyUIを使ってFlux.1 Kontext Devを実行するためのローカル環境を構築します。Google AI Studioを使ってプロンプトを作成する方法や、TeaCasheを使った画像生成時間の短縮についても紹介します。

モデルのダウンロード
ComfyUIのテンプレートで初期設定されているモデルをダウンロードします。
チェックポイント
fp8版の「Flux.1 Kontext Dev」を使います。
fp8版以外にオリジナル、GGUF、Nunchaku高速推論版などがあります。

- Flux.1 Kontext Dev fp8版のダウンロードページにアクセスし、ダウンロードボタンをクリック

- ダウンロード完了後、「diffusion_models」フォルダに保存
テキストエンコーダー
二つのテキストエンコーダーモデルを使います。
「clip_l.safetensors」はHunyuan Videoでも使っているモデルです。
「t5xxl_fp8_e4m3fn_scaled.safetensors」に似た「umt5_xxl~」というモデルをWAN2.1で使っており、英語版か多言語版かの違いのようです。互換性があるという情報もありますが、念のため英語版を使います。

- テキストエンコーダーのダウンロードページにアクセスし、「clip_l.safetensors」と「t5xxl_fp8_e4m3fn_scaled.safetensors」のダウンロードボタンをクリック

- ダウンロード完了後、「text_encoders」フォルダに保存
1枚の画像から生成
ワークフローの作成
ComfyUIのテンプレートを使います。

- ComfyUIを立ち上げて、「ワークフロー」の「テンプレートを参照」をクリック
- 開いたウィンドウで「Flux」をクリックし、「Flux Kontext Dev(Basic)」をクリック

- バイパスされていない(紫色になっていない)「画像の読み込み(出力から)」の「アップロードするファイルを選択」で、画像ファイルを読み込む
- 「CLIP Text Encode(Positive Prompt)」に、画像を変更するためのプロンプトを入力
(プロンプト作成のコツはComfUI WikiのFlux.1 Kontextのページが参考になります。また、この記事の下の方でGoogle AI Studioを利用してプロンプト作成する方法を紹介します。)
実行結果
「小道を削除して、周りと同じ草花に置き換えて、他は維持」を指示した場合
以下のプロンプトでワークフローを実行した結果です。
「Remove the path from the image.
Replace the removed path with a field of blue flowers and grass matching the surrounding environment while keeping the woman in the exact same position, scale, and pose. Maintain identical subject placement, camera angle, framing, and perspective.」

小道が芝生に変わったものの、色が明らかに違います。
プロンプトの調整もしてみましたが、色を変えることはできても完全に合わせることはできませんでした。
「女性を歩いている状態から立って腕組している状態にして、他は維持」を指示した場合
以下のプロンプトでワークフローを実行した結果です。
「Change the woman’s pose from walking to standing still with her arms crossed. Preserve her exact facial features, purple eyes, long black hair, and her entire outfit (the black dress and the white cloak). Maintain the identical background with the stone path and blue flowers, as well as the same high-angle camera perspective.」

少し表情や顔の色味が変わっている気もしますが、結構いい感じです。
髪や服の動きを抑えられるともっと良くなりそうです。
「女性の表情を笑顔にして、他は維持」を指示した場合
以下のプロンプトでワークフローを実行した結果です。
「Change the woman’s facial expression to a soft, gentle smile. Preserve her exact facial features, identity, purple eye color, and long black hair. Keep her walking pose, outfit, and the entire background completely unchanged.」

口が変わっているだけだからか、なにか違和感がある表情になりました。
他のプロンプトも試しましたが、目を少し変化させることはできませんでした。
表情を変える場合は、顔がもっと大きい画像の方が良いかもしれません。
2枚の画像から生成
ワークフローの変更
1枚の画像から生成するワークフローを変更します。
「Image Stitch」が2枚の入力画像を並べて1枚の画像として出力する機能を持っているので、二つ目の「画像の読み込み(出力から)」を有効化すると、2枚目の画像が認識されるようになります。

- バイパスされている(紫色になっている)「画像の読み込み(出力から)」をクリックし、ノードを選択
- 「選択したノードのバイパス/バイパス解除」をクリック(またはCtrl+B)し、バイパスを解除

- 二つの「画像の読み込み(出力から)」の「アップロードするファイルを選択」で、それぞれ画像ファイルを読み込む
(主体となる画像の方を大きく、抜粋する要素を提供する画像を小さくして、主従関係を明確にすると1枚の画像で出力されやすいです。) - 「Image Stitch」の「match_image_size」を「false」に変更
- 「CLIP Text Encode(Positive Prompt)」に、画像を変更するためのプロンプトを入力
実行結果
「狐耳の少女を元の女性の右奥に座らせて、他は維持」を指示した場合
以下のプロンプトでワークフローを実行した結果です。
「Add a new character to the image: a girl with large orange fox ears, a fluffy orange fox tail, medium-length blonde hair, and blue eyes. She is wearing a black and white maid outfit. Place her in a sitting pose on the grass, to the right and slightly behind the original woman in the black dress. The new girl should be scaled smaller to fit the perspective and match the scene’s bright daylight. Ensure she is not holding a cake. It is crucial to perfectly maintain the original woman, the stone path, the blue flowers, the lighting, and the overall art style.」

座らせることはできましたが、右奥ではなく真横になりました。
画風の違いによる違和感もあり、使いこなすには入力画像の選定やプロンプトの調整が重要になりそうです。
プロンプトの作成
プロンプトの作成には、ComfUI WikiのFlux.1 Kontextのページにあるプロンプトジェネレーターのプロンプトを活用させてもらうと良いです。
プロンプトをGoogle AI StudioのChatに読み込ませ、プロンプト作成を指示します。

- ComfUI WikiのFlux.1 Kontextのページにアクセスし、プロンプトジェネレーター用のプロンプトをコピー

- Google AI Studioのページにアクセスし、「Chat」の「System instructions」をクリック
- 展開されるスペースに、コピーしたプロンプトジェネレーター用のプロンプトを貼り付け
- チャット欄に入力画像をアップロードし、プロンプト作成の指示を入力
画像生成時間の短縮
TeaCasheを使うと簡単に生成時間を40%程度減らせます。
今回の場合だと、TeaCashe無しで90s程度だった生成時間が、TeaCashe有りで50s程度になります。
必要なカスタムノードパッケージ
ID58「ComfyUI-TeaCache」
ワークフローの変更

- 「TeaCashe」を追加し、「拡散モデルを読み込む」を「TeaCashe」に、「TeaCashe」を「Kサンプラー」に繋ぐ
実行結果
入力画像やプロンプトは、2枚の画像から生成するケースと同じです。

TeaCasheを追加したことによる劣化は特に気になりませんでした。
ケーキの有無や狐耳少女の大きさ、TeaCasheの有無というよりはシード値による影響が大きいです。
以上のように、ローカル環境でFlux.1 Kontext Devを実行することができました。
画像を思い通りに変化させるのは難しいですが、画風やキャラクターを保ったままバリエーションを増やすという点に利用価値を感じます。
コメント