GGUF モデルを読み込んだFlux.1 fill dev Outpainting複数画像対応ComfyUIワークフロー

2025年12月2日

はじめに

Stable Diffusionで、Outpainting mk2またはPoor man’s outpaintingを使用できますが滑らかに対応できません。そこで次のように対応します

Poor man’s outpainting

FLUX

Flux Fill ワークフロー ステップバイステップガイド | ComfyUI Wiki

このComfyUIワークフローは、inpainting(画像の一部を補完)とoutpainting(画像の外側を拡張)を組み合わせた画像生成フローです。GGUF モデルを読み込みとフォルダーにある画像を読み込む機能とランダムシートを使用する機能追加。以下に、主要なノードの役割と接続関係をわかりやすく説明

🌟全体の流れ

  1. CLIPとテキストから条件付けを生成
  2. 画像とマスクを読み込み、拡張(outpaint)
  3. モデルとVAEをロード
  4. 条件付けと画像を使ってinpainting処理
  5. 生成画像を保存

🌟 使用されているモデル名とノード配置

モデルの種類ノード名モデルファイル名ノードID
テキストエンコーダー(CLIP)DualCLIPLoaderclip_l.safetensors, t5xxl_fp8_e4m3fn_scaled.safetensors34E:\EasyWan22\Model\clip
VAE(潜在空間復元)VAELoaderae.safetensors32E:\EasyWan22\Model\vae
GGUFモデル(推論用)LoaderGGUFflux1-fill-dev-Q4_K_S.gguf45E:\EasyWan22\Model\diffusion_models

🔄 モデルの流れ

  1. LoaderGGUF (ID: 45)flux1-fill-dev-Q4_K_S.gguf を読み込み。
  2. それが DifferentialDiffusion (ID: 39) に渡されて、KSampler (ID: 3) に接続。
  3. テキストプロンプトは DualCLIPLoader (ID: 34)CLIPTextEncode (ID: 23, 7)FluxGuidance (ID: 26)InpaintModelConditioning (ID: 38) に流れる。
  4. VAEは VAELoader (ID: 32)InpaintModelConditioning (ID: 38)VAEDecode (ID: 8) で画像生成に使われる。

🧠ノードと接続の詳細

① テキストエンコード(プロンプト)

  • Node 23: CLIPTextEncode (Positive Prompt)
    • 入力: clip(Node 34から)
    • 出力: CONDITIONING → Node 26へ
  • Node 7: CLIPTextEncode (Negative Prompt)
    • 入力: clip(Node 34から)
    • 出力: CONDITIONING → Node 38へ
  • Node 34: DualCLIPLoader
    • 出力: CLIP → Node 23とNode 7へ

② ガイダンス調整

  • Node 26: FluxGuidance
    • 入力: Positive条件(Node 23)
    • 出力: 調整済みCONDITIONING → Node 38へ
    • guidance値: 30

③ モデルとVAEの準備

  • Node 45: LoaderGGUF
    • モデルロード → Node 39へ
  • Node 39: DifferentialDiffusion
    • モデル変換 → Node 3へ
  • Node 32: VAELoader
    • VAEロード → Node 8とNode 38へ

④ 画像とマスクの準備

  • Node 53: LoadImageSetFromFolderNode
    • フォルダから画像読み込み → Node 44へ
  • Node 44: ImagePadForOutpaint
    • 入力: 画像(Node 53)
    • 出力: 拡張画像とマスク → Node 38へ

⑤ Inpainting条件生成

  • Node 38: InpaintModelConditioning
    • 入力:
      • Positive(Node 26)
      • Negative(Node 7)
      • VAE(Node 32)
      • 画像(Node 44)
      • マスク(Node 44)
    • 出力:
      • Positive → Node 3
      • Negative → Node 3
      • Latent → Node 3

⑥ 画像生成とデコード

  • Node 58: Seed (rgthree)
    • 出力: シード値 → Node 3へ
  • Node 3: KSampler
    • 入力: モデル、条件付け、潜在画像、シードなど
    • 出力: 潜在画像 → Node 8へ
  • Node 8: VAEDecode
    • 入力: 潜在画像(Node 3)、VAE(Node 32)
    • 出力: 画像 → Node 9へ

⑦ 画像保存

  • Node 9: SaveImage
    • 入力: 画像(Node 8)
    • 保存ファイル名: %date:yyyy-MM-dd%/%date:MMdd_hhmmss%_Generated

💡補足

  • Node 17 は画像アップロード用だけど、今回は未接続。
  • Node 57 はターゲットサイズ指定のoutpaintノードだけど、こちらも未接続。

ワークフロー

1枚の画像やサイズを指定しての拡大アウトペインティングは接続先を変更して対応してください

参考

https://pcniki.com/flux1-inpainting-outpainting

ComfyUI

Posted by eightban