Flux Depth Control
この章では、Flux Depth Control を使用して、元の画像と同様のコンテンツ位置深度を持つ画像を生成する方法を紹介します。
この画像は AI によって生成されました
エッジを制御基準として使用するのと同様に、深度マップを使用して制御する方法もあります。この制御方法は、モデルにコンテンツ位置の深度情報を提供し、元の画像と同様のコンテンツ位置深度を持つ画像を生成することができます。
例えば、以下の図のように、Fluxモデルに画像を入力し、Fluxモデルによって元の画像と同様のコンテンツ位置を持つ画像を生成しました。生成された画像は、表情のわずかな変化を除いて(主に私のプロンプトが良くないため)、キャラクターの位置関係と姿勢が元の画像とほぼ同じであることがわかります。
1. Flux Depth モデルのダウンロード
Cannyと同様に、現在は2種類のFlux Depthモデルがあります。1つはFlux公式によるFlux Depth LoRAの実装で、もう1つは他のオープンソース組織によるFlux Depth Controlnetの実装です。前者はControl LoRA技術に基づいており、後者はControlNet技術に基づいています。
どちらもダウンロードして試してみることができます:
- Flux公式は2つのDepth LoRAモデルファイルを提供しています。要件に応じて選択できます:
- 現在、Flux Depth Controlnetモデルを実装している2つのオープンソース組織があり、要件に応じて選択できます:
- 最初は、Shakker-LabsとInstantXが共同で開発したDepth ControlNetモデルです。このモデルをダウンロードし、
models/controlnet/
フォルダに配置する必要があります。また、ダウンロード時にファイル名をinstantx_flux_depth.safetensors
に変更すると、その後の使用が容易になります。 - もう1つは、XLabsが開発したFlux Depth controlnet v2モデルです。このモデルもダウンロードし、
models/controlnet/
フォルダに配置する必要があります。
- 最初は、Shakker-LabsとInstantXが共同で開発したDepth ControlNetモデルです。このモデルをダウンロードし、
2. Flux Depth LoRA ワークフロー
もし、モデルをダウンロードしたバージョンがLoRAとDevモデルを組み合わせたものであれば、前の章のFlux Edge Controlをベースにしてワークフローを修正するだけです。または、Comflowyからこのワークフローをダウンロードして使用します。
メソッドは非常に簡単です。① Diffusionノードグループ内のflux Canny
をDepthモデルに置き換え、②Canny
ノードを任意のDepth
ノード(お気に入りのDepthノードを使用できます)に置き換え、最後にDepth
ノードとLoad Image
ノードを接続します。Depthノードの効果をプレビューしたい場合は、Depth
ノードとPreview Image
ノードを接続して、Depthノードによって出力された深度マップを確認できます。
もし、別のFlux Depth LoRAモデルをダウンロードした場合は、Load Diffusion Model
ノード(図①)の後にLoraLoaderModelOnly
ノード(図②)を追加するだけです。そして、Diffusionノードグループ内のflux dev depth
モデルをflux dev
に置き換え、LoraLoaderModelOnly
ノードでダウンロードしたFlux Depth LoRAモデルを選択します。
2つのバージョンの効果はほぼ同じです。
3. Flux Depth Controlnet ワークフロー
3.1 InstantX バージョン
まず、ControlNetモデルを実行すると余分なGPUメモリを占有するため、Flux ComfyUIワークフローでGGUFバージョンのFluxワークフローをロードし、それをベースにしてワークフローを修正します。または、Comflowyからこのワークフローをダウンロードして使用します。
このバージョンでは、以下の手順を実行します:
Apply ControlNet with VAE
ノード(図①)を追加します。それをLoad VAE
(図②)、Load ControlNet Model
(図②)、および任意のDepth
ノード(図③)に接続します。Load ControlNet Model
ノードでダウンロードしたFlux Depth Controlnetモデルを選択します。- 生成された画像のサイズが入力された深度マップのサイズと同じであることを確実にするため、
Get Image Size
ノード(図④)を追加し、それをSD3LatentImage
ノード(図⑤)に接続します。そのため、生成された画像のサイズは入力された深度マップのサイズと同じになります。
また、GGUFバージョンを使用したくない場合は、ComfyUIが提供するFP8バージョンを使用することもできます。その場合は、Load VAE
ノードとDualCLIPLoader
ノードを削除し、Load Checkpoint
ノードに置き換えるだけです。そして、FluxモデルのFP8バージョンを選択します。
個人的には、Flux公式のDepth LoRAモデルが好きです。その効果はより優れています。
3.2 XLabs バージョン
XLabsバージョンのFlux Depth Controlnetモデルを使用するには、XLabsが開発したプラグインを使用する必要があります。そのGithubアドレスはこちらです。ComfyUIのComfyUI-Managerを通じてこのプラグインをインストールできます。詳細なインストール方法はComfyUIプラグインのインストールの記事を参照してください。
インストール後、Shakker-Labsバージョンのワークフローを修正できます。または、Comflowyからこのワークフローをダウンロードして使用します。
修正はそれほど難しくありません:
図 | 説明 |
---|---|
① | KSamplerノードをXlabs Samplerノードに置き換えます。このノードには追加のcontrolnet_condition 入力があります。 |
② | CLIPTextEncode ノードをCLIPTextEncodeFlux ノードに置き換えます。このノードには追加のcontrolnet_condition 入力があります。 |
③ | Apply ControlNet VAE ノードをApply Flux ControlNet ノードに置き換えます。 |
④ | Load ControlNet Model ノードをLoad Flux ControlNet ノードに置き換えます。そして、ダウンロードしたFlux Depth Controlnetモデルを選択します。 |
⑤ | Depth ノードを追加します。お気に入りのDepthノードを使用できます。 |
⑥ | SD3LatentImage ノードを使用します。これは、SD3バージョン以外にも最も基本的なバージョンで使用できることを示すためです。 |
4. Flux Depth API ワークフロー
もしコンピューターの性能が十分でなく、Flux Depth モデルを実行できない場合は、ComfyUI で Comflowy の Depth API ノード を使用してみることもできます。もちろん、Comflowy で直接 Flux Depth API ノードを使用することもでき、リンク方法は非常に簡単で、1つのノードを使用するだけです。また、Flux Pro バージョンと Dev バージョンもサポートしています。