ComfyUI Flux.1でControlNet + IP-Adapterの詳しい使い方
flux.1の公開から5カ月が経とうとしていますが、周辺環境も充実してきました。今回の記事ではFlux.1でのコントロールネットについて解説していきたいと思います。去年の11月に発表された「FLUX.1 Tools」を使えばCannyやDepthを使うこともできますが、今回の記事ではコントロールネットのみの記事になります。「FLUX.1 Tools」に関してはまた、別の記事にまとめたいと思います。
玄人志向 NVIDIA GeForce RTX4060 搭載 グラフィックボード GDDR6 8GB 搭載モデル 【国内正規品】 GG-RTX4060-E8GB/SF
ASIN:B0CG69V3H6
玄人志向 NVIDIA RTX3050 搭載 グラフィックボード GDDR6 6GB 搭載モデル 【国内正規品】 GG-RTX3050-E6GB/EX/DF/DVI
ASIN:B0DN638LY8
GIGABYTE NVIDIA GeForce RTX4060Ti 搭載 グラフィックボード GDDR6 16GB【国内正規代理店品】 GV-N406TWF2OC-16GD
ASIN:B0CYYHMKMW
玄人志向 NVIDIA RTX4070 搭載 グラフィックボード GDDR6X 12GB 搭載モデル 【国内正規品】 GG-RTX4070-E12GB/DF2
ASIN:B0D7G75P4N
GIGABYTE NVIDIA GeForce RTX4060 搭載 グラフィックボード GDDR6 8GB【国内正規代理店品】 GV-N4060D6-8GD
ASIN:B0CS2B592J
MSI GeForce RTX 4070Ti SUPER 16G VENTUS 2X OC/A PCIe4.0 約3スロット厚・2ファン搭載 省スペース グラフィックスカード VD8792
ASIN:B0CSN6KW5P
MSI GeForce RTX 4070 SUPER 12G VENTUS 2X OC/A PCIe4.0 2スロット・2ファン搭載 省スペース グラフィックスカード VD8751
ASIN:B0CRZ67KXX
カスタムノードのインストール
ComfyUIでコントロールネットを使用する前提としてプリプロセッサーのカスタムノードをインストールする必要があります。ComfyUI Managerの「Custom Nodes Manager」を使ってComfyUI's ControlNet Auxiliary Preprocessors
を検索してインストールしましょう。
ComfyUIでコントロールネットを使用したことがない方は下記の記事にて基本的な使い方を解説しているので目を通しておきましょう。
コントロールネットモデルのインストール
現在コントロールネットモデルは「Xlabs」「InstantX」「Jasper AI」から公開されています。それぞれのモデルを紹介します。
Xlabs
Xlabsからは1024×1024で学習された、「Canny」「Depth」「HED」の3つのモデルとベータ版の「ip-adapter」が公開されています。はじめの3つのモデルはComfyUI\models\xlabs\controlnets
に置きましょう。
「ip-adapter」はComfyUI\models\xlabs\ipadapters
に置きましょう。
InstantX
InstantXはCanny, Depth, Tile, Blur, Pose, Gray, Low qualityがバンドルされた「ControlNet Union」と独立した「Canny」「IP-Adapter」があります。古いバージョンのComfyUIではカスタムノードが必要でしたが現在は基本ノードのみで使用可能となりました。ダウンロードしたモデルは名前がdiffusion_pytorch_model.safetensors
となっていますので自分で解りやすいようにflux-dev-controlnet-union.safetensors
の様な名前に変更して\ComfyUI\models\controlnet
に置きます。
Jasper AI
Jasper AIからは「Upscaler」「Surface-Normals」「Depth」の3つがあります。ダウンロードしたモデルは\ComfyUI\models\controlnet
に置きます。こちらもダウンロードしたモデルは名前がdiffusion_pytorch_model.safetensors
となっていますので自分で解りやすいようにjasperaiFlux.1-dev-Controlnet-Depth.safetensors
の様な名前に変更しましょう。
Flux.1のコントロールネットを使ってみる
モデルのインストールが完了したら、コントロールネットを使ってみましょう。ワークフローを見ながら解説します。
Xlabs
Xlabsのコントロールネットモデルを使う場合は専用のカスタムノードをインストールする必要があります。
カスタムノードのインストール
ComfyUI Managerを開き「x-flux-comfyui」をインストールしましょう。
「Custom Nodes Manager」を使ってx-flux-comfyui
を検索してインストールしましょう。
公式ワークフローの解説
インストールが完了したら\ComfyUI\custom_nodes\x-flux-comfyui\workflows
にワークフローがあります。今回はflux-controlnet-canny-v3-workflow.json
を解説します。
ノードについて
コントロールネットを使う場合の専用のノードを解説します。
Load Flux ControlNetXlabsのFlux.1のコントロールネットモデルを読み込みます。model_nameには適応したいFlux.1モデルを選択します。controlnet_pathには使用したいコントロールネットモデルを選択しましょう。
Apply Flux ControlNetコントロールネットモデルとモデルに適応したプリプロセッサーの画像(今回はCanny Edgeで摘出した画像)をコントロールネットコンディションとして出力します。インプットのcontrolnet_conditionは複数のコントロールネットを適応させたい時に使います。また、strengthでコントロールネットの強度を調節します。
Xlabs SamplerXLabsのコントロールネットを使用したサンプラーになります。このサンプラーでは通常のKSamplerの様にサンプラー、スケジューラータイプ等は使えないので注意しましょう。特徴として以下の3つのパラメーターがあります。
- timestep_to_start_cfg:どのステップ段階からCFGとネガティブプロンプトを適応するかを設定します。
- true_gs:CFGのスケールになります。
- image_to_image_strangth:img2imgでの使用時にオリジナル画像の強度を設定します。
InstantX
InstantXは通常のコントロールネットの構成で使用できます。Civitaiにて公式ワークフローが公開されています。
公式ワークフローはOpenPoseの使用例となっています。OpenPoseデータは「Optional: Extract Openpose from image」から摘出していますが、データのみが必要な方はDCAIのドライブに公開してます。
Jasper AI
Normal sample
Jasper AIも先ほどのInstantXとほとんど同じ構成で使用できます。違いとしては「SetUnionControlNetType」が必要ないのでモデルの「Load ControlNet Model」から直接Apply Controlnetに繋がります。コチラは公式のワークフローがないのでシンプルなワークフローをドライブに公開しました。
Upscaler sample
Upscalerモデルは他と少し設定が違うのでワークフロー例を紹介します。
ワークフローの特徴としてはプロンプトを空白のまま生成します。「Upscale Image」のupscale_methodはインプット画像によってlanczos
に切り替えた方が綺麗に生成される場合があります。
このアップスケーラーは非常に小さな画像をアップスケールするモデルなので1024ピクセル以上の画像をアップスケールするにはOOM(アウト オブ メモリー)エラーが出るか、エラーが出なくても生成にかなりの時間が掛かるうえに生成結果は使い物にならないでしょう。
コントロールネットをつかった実用的なワークフローの紹介
紹介したコントロールネットを使ったワークフローを紹介します。今回組み込んだ機能は下記の様になります。
- GGUFを使ってVRAMへの負担を軽減
- LoRAを使いイラストの方向性を決める
- IP adapterを使いキャラクターを固定
- 2ndパスを導入してスケール&ディテールアップ
ワークフローはPatreonで公開していますが、有料サポーター様のみ閲覧・ダウンロードが可能となっています。
また、ワークフローがダウンロード出来なくでも解説を見ればご自身でも構成できるので、このまま解説にお進みください。
必須カスタムノードのインストール
このワークフローを実行するには下記のカスタムノードとモデルをインストールする必要があります。すでに導入済の方もトラブルを避けるために最新版にアップデートしておきましょう。
- ComfyUI-GGUF:GGUF形式ののUnetとCLIPを読み込むためのカスタムノード
- ComfyUI-IPAdapter-Flux:InstantXが公開しているIPAdapterを実行する為のカスタムノード
必須モデルのインストール
下記のモデルをダウンロードしましょう。
GGUFモデル
この例ではベースモデルのflux1-devQ8_0.gguf
を使っています。OOM(アウト オブ メモリー)エラーで生成が出来ないときは品質は変わりますが、Q8_0からQ6_K
やQ5_K_S
に変更しましょう。
詳しくは下記の記事を参考にしてください。
ベースモデルダウンロードしたモデルは\ComfyUI\models\unet
に置きましょう。
ダウンロードしたモデルは\ComfyUI\models\clip
に置きましょう。
LoRAモデル
ダウンロードしたLoRAモデルは\ComfyUI\models\loras
に置きましょう。
IPAdapterモデル
ダウンロードしたIPAdapterモデルは\ComfyUI\models\ipadapter-flux
に置きましょう。ipadapter-fluxフォルダーがない場合は新たにフォルダーを作ってください。
グラフの解説
それでは、各グループを見ていきましょう。
IP Adapter
IP AdapterグループはIP Adapter関係のノードがまとまっています。
「Load Image」で参考画像を読み込みます。使用する参考画像はSDXLのAnimagine XL V3.1で生成した画像を使い、イラストスタイルと人物を参照します。ただし、精度はあまり高くはありません。
「Upscale Image」では、参照画像をIP Adapterに適した1024ピクセルにリサイズします。
「Load IPAdapter Flux Model」のipadapterにダウンロードしたip-adapter.bin
を読み込みclip_visionにgoogle/siglip-so400m-patch14-384
を選択します。このモデルはカスタムノードをインストールすれば自動的にインストールされます。providerは「cuda」「cpu」「mps (Multi-Process Service)」から選択できます。
「Apply IPAdapter Flux Model」でIP Adapterの適応率を調節できます。weightで強度を指定して、start_percent/end_percentで生成ステップのどの段階からIP Adapterを適応するかを設定します。執筆時のバージョンではend_percentを1.0にすると生成結果にノイズが出てしまうので0.8
位までで設定しましょう。
Load Basic Models
Load Basic Modelsグループは基本的なモデルを呼び出します。
「Unet Loader (GGUF)」でベースモデルのflux1-devQ8_0.gguf
を読み込みます。OOM(アウト オブ メモリー)エラーで生成が出来ないときは品質は変わりますが、Q8_0からQ6_K
やQ5_K_S
に変更しましょう。
「DualCLIPLoader (GGUF)」ノードでテキストエンコーダーを読み込みます。通常の「t5xxl_fp16」の代わりにt5-v1-xxl-encoder-Q8_0.gguf
を読み込みます。コチラもVRAMにあわせてQ6_K
やQ5_K_S
に設定しましょう。
2つの「LoraLoaderModelOnly」で各LoRAを読み込みます。今回は両方ともにstrength_modelは0.50
に設定しています。
Basic Info
Basic Infoグループでは生成に必要な情報がまとめられています。
ほとんどデフォルトの設定ですが、プロンプトは下記の様に記述しています。
A masterful highly intricate detailed anime.
A girl looking at viewer.
in the In the European medieval fantasy era.
生成サイズは後ほど拡大されますが720pサイズの1280x720ピクセルに設定しています。
Upscale
Upscaleグループでは、1stパスで生成されたピクセルイメージを4x-UltraSharp.pth
を使って一度4倍にしてから、「Scale Image to Total Pixels」ノードで任意のピクセルに縮小しています。今回は3.0MP
を選択していますがOOM(アウト オブ メモリー)エラーが出る場合はこの数字を小さくしましょう。
2nd Pass Info
2nd Pass Infoグループは2ndパス用の設定になります。一番重要なのはdenoiseの値でこれを下げることにより1stパスに近い結果になります。
ワークフローの使い方
基本的には「Queue」ボタンで生成できます。「RandomNoise」ノードをranomize
で1stパスの結果を素早く見たい場合は「Preview Image (2nd Pass)」ノードをミュートもしくはバイパスして「Queue」ボタンを押します。この設定では1stパスが生成された時点で止まるので好きな生成結果が出るまで続けましょう。
1stパスの結果に満足したらサイドメニューのQueueリストより気に入った結果の画像を右クリックして「Load Workflow」より呼び出します。
呼び出したら最初に「RandomNoise」ノードをfixed
に設定します。
「Preview Image (2nd Pass)」ノードのミュートもしくはバイパスを解除して「Queue」ボタンでUpscaleより生成を再開します。(メモリーから1stパスのデータが解放されている場合は初めからの生成になります。)
このワークフローでは「Save Image」ノードを使っていないのでPreview Image (2nd Pass)」を右クリックしてSave Imageで保存するかノードを「Save Image」ノードに変更してください。
最終結果
最終的に以下の様な結果がでました。Flux.1ではアニメイラストの生成が苦手(顔や目の生成が良くない)とされていますが、このワークフローの様にIP AdapterやLoRAを使ってスタイルに方向性をもたすことによってディテールのあるイラストを生成することが可能となりました。
まとめ
今回はFlux.1でコントロールネットの使い方を紹介しました。コントロールネットを使うことにより標準のFlux.1ベースモデルだけでは難しいイラストの表現可能となり、さらなる高品質なイラストが生成できるようになります。フォトリアルな画像の生成では高品質な生成が可能なFlux.1ですがイラストの表現力はSDXLの「Animagine XL」や「NoobAI-XL (Illustrious)」の方が高品質な画像を生成してくれます。しかし、コントロールネットを使えば今回紹介してワークフローの様にIP Adapterを使って高品質なイラストを生成することも可能になります。
EdoErgo オフィスチェア 椅子 テレワーク 疲れない 跳ね上げ式アームレスト コンパクト 約105度ロッキング pc 事務椅子 360度回転 座面昇降 強化ナイロン樹脂ベース 通気性メッシュ テレワーク 在宅ワーク H-WY01 (ブラック)
ASIN:B0DCVMD3ZK
EdoErgo オフィスチェア 肘つき 椅子 テレワーク 疲れない デスクチェア パソコンチェア 360度回転 無段階昇降 約105度ロッキング 通気性メッシュ コンパクト おしゃれ 在宅勤務 勉強椅子 事務椅子 OAチェア H-WY02 (黑網+黑枠+黑足)
ASIN:B0DBHTV5L7
Supzmg オフィスチェア 椅子 テレワーク 疲れない デスクチェア パソコンチェア ワークチェア 通気性メッシュ 跳ね上げ式アームレスト ロッキング機能 在宅勤務 事務椅子 勉強椅子 H-WY15 (ブラック)
ASIN:B0DG5HWQB5
Hbada 椅子 オフィス デスクチェア イス パソコン 跳ね上げ式アームレスト コンパクト 約105度ロッキング pc 事務椅子 360度回転 座面昇降 強化ナイロン樹脂ベース メッシュ テレワーク 在宅ワーク J323 グレー
ASIN:B0CD1LBSVX
Supzmg オフィスチェア 椅子 テレワーク 疲れない デスクチェア ワークチェア ロッキング機能 収納式フットレスト リクライニング 人間工学 チェア S字立体背もたれ ハイバック 高反発座面 事務椅子 通気性に優れ H-WY03 (ブラック)
ASIN:B0D3D5CYPY
EdoErgo オフィスチェア 椅子 テレワーク 疲れない 人間工学 チェア 腰が痛くならない 「ランバーサポート調整可能 通気性に優れ ロッキング機能 収納式フットレスト 約135度リクライニング」 ッシュチェア pcチェア パソコンチェア 人体工学椅 ワークチェア 事務椅子 通気性に優れ オフィス お宅 在宅ワーク H-WY18 (黑網+白枠+白足)
ASIN:B0DJQ8QQ8W
BURAYIENTA オフィスチェア デスクチェア chair パソコンチェア 椅子 おしゃれ 疲れない ワークチェア 人間工学 360度回転 座面昇降 キャスター付き テレワーク ホームオフィス 勉強 在宅勤務
ASIN:B0DJVHK225
Hbada オフィス デスクチェア 椅子 パソコンチェア 跳ね上げ式アームレスト ランバーサポート コンパクト ワークチェア 約105度ロッキング 通気性 pcチェア 事務椅子 360度回転 座面昇降 メッシュ テレワーク 強化ナイロン樹脂ベース 静音PUキャスター J301 グレー
ASIN:B0967XM6QN
[山善] オフィスチェア コンパクト メッシュ ハイバック 腰当てつき 幅51.5×奥行59×高さ85-97cm 組立品 ブラック EHL-50(BK) 在宅勤務
ASIN:B01N0XQ6X5
オフィスチェア デスクチェア パソコンチェア ワークチェア ローバック PCチェア OAチェア 昇降機能付き 座椅子 肘掛け付き 通気性 メッシュチェア 事務用椅子 テレワーク 疲れにくい オフィスチェアー (ブラック)
ASIN:B0B15J76XN