AUTOBUY購物中心

ComfyUI教學 - 使用 FLUX Redux 圖文生圖

  • 2026-06-22 17:08:17

    在前面的文章中,我們已經介紹了 FLUX 文生圖的基本操作,接下來將進一步介紹 FLUX Redux。透過參考圖片與提示詞的結合,讓 AI 不僅能夠「從零生成」,更能夠基於既有圖像進行高品質的重繪與創作。

    FLUX Redux 簡介

    FLUX Redux 是由 Black Forest Labs 推出的 FLUX 系列延伸模型,主要用於參考圖像重繪(Image Variation)與風格轉換等應用。與傳統的文生圖模型不同,FLUX Redux 能夠根據使用者提供的參考圖片,保留原始構圖、主體特徵或整體氛圍,同時結合新的提示詞(Prompt)重新生成具有不同風格或細節的圖像。

    透過 FLUX Redux,使用者可以輕鬆實現照片風格轉換、角色重繪、產品情境圖生成,以及將草圖或概念圖轉換為高品質成品等應用。相較於單純使用文生圖模型,FLUX Redux 在維持原始圖像特徵方面表現更加出色,能夠有效降低角色走樣或構圖偏移的情況。

    本篇將介紹如何在 ComfyUI 中安裝 FLUX Redux 所需模型,並透過工作流快速建立以圖片為基礎的 AI 生成流程,讓讀者能夠運用現有圖片作為創作起點,產生更符合需求的高品質圖像作品。

    需要下載的模型

    1. FLUX 主模型(Diffusion Model)

    檔案名稱:

    flux1-dev-fp8.safetensors

    放置目錄:

    ComfyUI\models\diffusion_models\

    2. FLUX Text Encoder(T5 XXL)

    檔案名稱:

    t5xxl_fp8_e4m3fn.safetensors

    放置目錄:

    ComfyUI\models\text_encoders\

    3. FLUX CLIP-L

    檔案名稱:

    clip_l.safetensors

    放置目錄:

    ComfyUI\models\text_encoders\

    4. FLUX VAE

    檔案名稱:

    ae.safetensors

    放置目錄:

    ComfyUI\models\vae\

    5. FLUX Redux 模型

    檔案名稱:

    flux1-redux-dev.safetensors

    放置目錄:

    ComfyUI\models\style_models\

    6. SigLIP Vision 模型

    檔案名稱:

    sigclip_vision_patch14_384.safetensors

    放置目錄:

    ComfyUI\models\clip_vision\

    模型放置位置總整理

    模型檔案 放置目錄
    flux1-dev-fp8.safetensors models\diffusion_models
    t5xxl_fp8_e4m3fn.safetensors models\text_encoders
    clip_l.safetensors models\text_encoders
    ae.safetensors models\vae
    flux1-redux-dev.safetensors models\style_models
    sigclip_vision_patch14_384.safetensors models\clip_vision

    模型下載來源

    FLUX.1 Dev

    可至 Black Forest Labs 的 Hugging Face 頁面下載:

    • flux1-dev-fp8.safetensors

    FLUX Redux

    可至 FLUX.1 Redux Dev Repository 下載:

    • flux1-redux-dev.safetensors

    SigLIP Vision

    可至 ComfyUI SigLIP Vision Models 頁面下載:

    • sigclip_vision_patch14_384.safetensors

    T5 XXL、CLIP-L 與 VAE

    可至 ComfyUI FLUX Models Repository 下載:

    • t5xxl_fp8_e4m3fn.safetensors
    • clip_l.safetensors
    • ae.safetensors

    完成所有模型下載並放置至正確目錄後,重新啟動 ComfyUI,再載入 FLUX Redux 工作流即可開始使用。如遇到模型遺失提示,可依照提示訊息確認模型名稱與存放路徑是否正確。

    工作流 json 檔內容如下:

    {
      "id": "e6ff03d3-cbe2-49b0-bf23-6cd596b8dade",
      "revision": 0,
      "last_node_id": 18,
      "last_link_id": 18,
      "nodes": [
        {
          "id": 2,
          "type": "CLIPVisionLoader",
          "pos": [
            -720,
            -640
          ],
          "size": [
            320,
            90
          ],
          "flags": {},
          "order": 0,
          "mode": 0,
          "inputs": [],
          "outputs": [
            {
              "name": "CLIP_VISION",
              "type": "CLIP_VISION",
              "slot_index": 0,
              "links": [
                2
              ]
            }
          ],
          "properties": {
            "cnr_id": "comfy-core",
            "ver": "0.21.1",
            "Node name for S&R": "CLIPVisionLoader",
            "ue_properties": {
              "widget_ue_connectable": {},
              "version": "7.8",
              "input_ue_unconnectable": {}
            }
          },
          "widgets_values": [
            "sigclip_vision_patch14_384.safetensors"
          ]
        },
        {
          "id": 3,
          "type": "CLIPVisionEncode",
          "pos": [
            -340,
            -420
          ],
          "size": [
            320,
            130
          ],
          "flags": {},
          "order": 11,
          "mode": 0,
          "inputs": [
            {
              "name": "clip_vision",
              "type": "CLIP_VISION",
              "link": 2
            },
            {
              "name": "image",
              "type": "IMAGE",
              "link": 1
            }
          ],
          "outputs": [
            {
              "name": "CLIP_VISION_OUTPUT",
              "type": "CLIP_VISION_OUTPUT",
              "slot_index": 0,
              "links": [
                3
              ]
            }
          ],
          "properties": {
            "cnr_id": "comfy-core",
            "ver": "0.21.1",
            "Node name for S&R": "CLIPVisionEncode",
            "ue_properties": {
              "widget_ue_connectable": {},
              "version": "7.8",
              "input_ue_unconnectable": {}
            }
          },
          "widgets_values": [
            "center"
          ]
        },
        {
          "id": 4,
          "type": "StyleModelLoader",
          "pos": [
            -340,
            -230
          ],
          "size": [
            320,
            90
          ],
          "flags": {},
          "order": 1,
          "mode": 0,
          "inputs": [],
          "outputs": [
            {
              "name": "STYLE_MODEL",
              "type": "STYLE_MODEL",
              "slot_index": 0,
              "links": [
                4
              ]
            }
          ],
          "properties": {
            "cnr_id": "comfy-core",
            "ver": "0.21.1",
            "Node name for S&R": "StyleModelLoader",
            "ue_properties": {
              "widget_ue_connectable": {},
              "version": "7.8",
              "input_ue_unconnectable": {}
            }
          },
          "widgets_values": [
            "flux1-redux-dev.safetensors"
          ]
        },
        {
          "id": 5,
          "type": "UNETLoader",
          "pos": [
            -720,
            120
          ],
          "size": [
            330,
            110
          ],
          "flags": {},
          "order": 2,
          "mode": 0,
          "inputs": [],
          "outputs": [
            {
              "name": "MODEL",
              "type": "MODEL",
              "slot_index": 0,
              "links": [
                5,
                6
              ]
            }
          ],
          "properties": {
            "cnr_id": "comfy-core",
            "ver": "0.21.1",
            "Node name for S&R": "UNETLoader",
            "ue_properties": {
              "widget_ue_connectable": {},
              "version": "7.8",
              "input_ue_unconnectable": {}
            }
          },
          "widgets_values": [
            "flux1-dev-fp8.safetensors",
            "default"
          ]
        },
        {
          "id": 6,
          "type": "DualCLIPLoader",
          "pos": [
            -720,
            300
          ],
          "size": [
            330,
            130
          ],
          "flags": {},
          "order": 3,
          "mode": 0,
          "inputs": [],
          "outputs": [
            {
              "name": "CLIP",
              "type": "CLIP",
              "slot_index": 0,
              "links": [
                7
              ]
            }
          ],
          "properties": {
            "cnr_id": "comfy-core",
            "ver": "0.21.1",
            "Node name for S&R": "DualCLIPLoader",
            "ue_properties": {
              "widget_ue_connectable": {},
              "version": "7.8",
              "input_ue_unconnectable": {}
            }
          },
          "widgets_values": [
            "t5xxl_fp8_e4m3fn.safetensors",
            "clip_l.safetensors",
            "flux",
            "default"
          ]
        },
        {
          "id": 7,
          "type": "VAELoader",
          "pos": [
            -720,
            500
          ],
          "size": [
            330,
            80
          ],
          "flags": {},
          "order": 4,
          "mode": 0,
          "inputs": [],
          "outputs": [
            {
              "name": "VAE",
              "type": "VAE",
              "slot_index": 0,
              "links": [
                8
              ]
            }
          ],
          "properties": {
            "cnr_id": "comfy-core",
            "ver": "0.21.1",
            "Node name for S&R": "VAELoader",
            "ue_properties": {
              "widget_ue_connectable": {},
              "version": "7.8",
              "input_ue_unconnectable": {}
            }
          },
          "widgets_values": [
            "ae.safetensors"
          ]
        },
        {
          "id": 11,
          "type": "BasicGuider",
          "pos": [
            680,
            50
          ],
          "size": [
            260,
            110
          ],
          "flags": {},
          "order": 14,
          "mode": 0,
          "inputs": [
            {
              "name": "model",
              "type": "MODEL",
              "link": 5
            },
            {
              "name": "conditioning",
              "type": "CONDITIONING",
              "link": 11
            }
          ],
          "outputs": [
            {
              "name": "GUIDER",
              "type": "GUIDER",
              "slot_index": 0,
              "links": [
                12
              ]
            }
          ],
          "properties": {
            "cnr_id": "comfy-core",
            "ver": "0.21.1",
            "Node name for S&R": "BasicGuider",
            "ue_properties": {
              "widget_ue_connectable": {},
              "version": "7.8",
              "input_ue_unconnectable": {}
            }
          },
          "widgets_values": []
        },
        {
          "id": 12,
          "type": "RandomNoise",
          "pos": [
            680,
            220
          ],
          "size": [
            260,
            100
          ],
          "flags": {},
          "order": 5,
          "mode": 0,
          "inputs": [],
          "outputs": [
            {
              "name": "NOISE",
              "type": "NOISE",
              "slot_index": 0,
              "links": [
                13
              ]
            }
          ],
          "properties": {
            "cnr_id": "comfy-core",
            "ver": "0.21.1",
            "Node name for S&R": "RandomNoise",
            "ue_properties": {
              "widget_ue_connectable": {},
              "version": "7.8",
              "input_ue_unconnectable": {}
            }
          },
          "widgets_values": [
            117836712274652,
            "randomize"
          ]
        },
        {
          "id": 13,
          "type": "KSamplerSelect",
          "pos": [
            680,
            370
          ],
          "size": [
            260,
            80
          ],
          "flags": {},
          "order": 6,
          "mode": 0,
          "inputs": [],
          "outputs": [
            {
              "name": "SAMPLER",
              "type": "SAMPLER",
              "slot_index": 0,
              "links": [
                14
              ]
            }
          ],
          "properties": {
            "cnr_id": "comfy-core",
            "ver": "0.21.1",
            "Node name for S&R": "KSamplerSelect",
            "ue_properties": {
              "widget_ue_connectable": {},
              "version": "7.8",
              "input_ue_unconnectable": {}
            }
          },
          "widgets_values": [
            "euler"
          ]
        },
        {
          "id": 14,
          "type": "BasicScheduler",
          "pos": [
            680,
            510
          ],
          "size": [
            300,
            120
          ],
          "flags": {},
          "order": 9,
          "mode": 0,
          "inputs": [
            {
              "name": "model",
              "type": "MODEL",
              "link": 6
            }
          ],
          "outputs": [
            {
              "name": "SIGMAS",
              "type": "SIGMAS",
              "slot_index": 0,
              "links": [
                15
              ]
            }
          ],
          "properties": {
            "cnr_id": "comfy-core",
            "ver": "0.21.1",
            "Node name for S&R": "BasicScheduler",
            "ue_properties": {
              "widget_ue_connectable": {},
              "version": "7.8",
              "input_ue_unconnectable": {}
            }
          },
          "widgets_values": [
            "simple",
            30,
            1
          ]
        },
        {
          "id": 15,
          "type": "EmptySD3LatentImage",
          "pos": [
            240,
            520
          ],
          "size": [
            315,
            110
          ],
          "flags": {},
          "order": 7,
          "mode": 0,
          "inputs": [],
          "outputs": [
            {
              "name": "LATENT",
              "type": "LATENT",
              "slot_index": 0,
              "links": [
                16
              ]
            }
          ],
          "properties": {
            "cnr_id": "comfy-core",
            "ver": "0.21.1",
            "Node name for S&R": "EmptySD3LatentImage",
            "ue_properties": {
              "widget_ue_connectable": {},
              "version": "7.8",
              "input_ue_unconnectable": {}
            }
          },
          "widgets_values": [
            832,
            1472,
            1
          ]
        },
        {
          "id": 16,
          "type": "SamplerCustomAdvanced",
          "pos": [
            1040,
            240
          ],
          "size": [
            340,
            270
          ],
          "flags": {},
          "order": 15,
          "mode": 0,
          "inputs": [
            {
              "name": "noise",
              "type": "NOISE",
              "link": 13
            },
            {
              "name": "guider",
              "type": "GUIDER",
              "link": 12
            },
            {
              "name": "sampler",
              "type": "SAMPLER",
              "link": 14
            },
            {
              "name": "sigmas",
              "type": "SIGMAS",
              "link": 15
            },
            {
              "name": "latent_image",
              "type": "LATENT",
              "link": 16
            }
          ],
          "outputs": [
            {
              "name": "output",
              "type": "LATENT",
              "slot_index": 0,
              "links": [
                17
              ]
            },
            {
              "name": "denoised_output",
              "type": "LATENT",
              "slot_index": 1,
              "links": null
            }
          ],
          "properties": {
            "cnr_id": "comfy-core",
            "ver": "0.21.1",
            "Node name for S&R": "SamplerCustomAdvanced",
            "ue_properties": {
              "widget_ue_connectable": {},
              "version": "7.8",
              "input_ue_unconnectable": {}
            }
          },
          "widgets_values": []
        },
        {
          "id": 17,
          "type": "VAEDecode",
          "pos": [
            1440,
            260
          ],
          "size": [
            230,
            90
          ],
          "flags": {},
          "order": 16,
          "mode": 0,
          "inputs": [
            {
              "name": "samples",
              "type": "LATENT",
              "link": 17
            },
            {
              "name": "vae",
              "type": "VAE",
              "link": 8
            }
          ],
          "outputs": [
            {
              "name": "IMAGE",
              "type": "IMAGE",
              "slot_index": 0,
              "links": [
                18
              ]
            }
          ],
          "properties": {
            "cnr_id": "comfy-core",
            "ver": "0.21.1",
            "Node name for S&R": "VAEDecode",
            "ue_properties": {
              "widget_ue_connectable": {},
              "version": "7.8",
              "input_ue_unconnectable": {}
            }
          },
          "widgets_values": []
        },
        {
          "id": 8,
          "type": "CLIPTextEncode",
          "pos": [
            -330,
            150
          ],
          "size": [
            520,
            270
          ],
          "flags": {},
          "order": 10,
          "mode": 0,
          "inputs": [
            {
              "name": "clip",
              "type": "CLIP",
              "link": 7
            }
          ],
          "outputs": [
            {
              "name": "CONDITIONING",
              "type": "CONDITIONING",
              "slot_index": 0,
              "links": [
                9
              ]
            }
          ],
          "title": "Positive Prompt",
          "properties": {
            "cnr_id": "comfy-core",
            "ver": "0.21.1",
            "Node name for S&R": "CLIPTextEncode",
            "ue_properties": {
              "widget_ue_connectable": {},
              "version": "7.8",
              "input_ue_unconnectable": {}
            }
          },
          "widgets_values": [
            "realistic asian woman,\nnatural facial proportions,\nreal human skin,\nauthentic portrait photography,\nnatural eyes,\nnatural eyelashes,\nsubtle skin texture,\nvisible pores,\nprofessional photography,\n85mm lens,\nf/2.0,\nRAW photo,\nhigh dynamic range,\ncinematic lighting,\nA beautiful Asian cosplay model with long black hair and soft bangs, wearing a pink cat-ear gaming headset and a blue and pink futuristic pilot bodysuit with white armor details and a cute rabbit emblem on the chest. She has a cute delicate face, large expressive eyes, long eyelashes, natural makeup, glossy lips, huge breasts, and realistic skin texture. Professional cosplay portrait photography, slightly high angle camera view, looking directly at the camera, soft studio beauty lighting, shallow depth of field, dark clean background, detailed costume fabric, glossy leather and armor materials, photorealistic anime aesthetic, sharp focus."
          ],
          "color": "#232",
          "bgcolor": "#353"
        },
        {
          "id": 9,
          "type": "FluxGuidance",
          "pos": [
            240,
            150
          ],
          "size": [
            220,
            70
          ],
          "flags": {},
          "order": 12,
          "mode": 0,
          "inputs": [
            {
              "name": "conditioning",
              "type": "CONDITIONING",
              "link": 9
            }
          ],
          "outputs": [
            {
              "name": "CONDITIONING",
              "type": "CONDITIONING",
              "slot_index": 0,
              "links": [
                10
              ]
            }
          ],
          "properties": {
            "cnr_id": "comfy-core",
            "ver": "0.21.1",
            "Node name for S&R": "FluxGuidance",
            "ue_properties": {
              "widget_ue_connectable": {},
              "version": "7.8",
              "input_ue_unconnectable": {}
            }
          },
          "widgets_values": [
            3.5
          ]
        },
        {
          "id": 10,
          "type": "StyleModelApply",
          "pos": [
            240,
            -290
          ],
          "size": [
            330,
            160
          ],
          "flags": {},
          "order": 13,
          "mode": 0,
          "inputs": [
            {
              "name": "conditioning",
              "type": "CONDITIONING",
              "link": 10
            },
            {
              "name": "style_model",
              "type": "STYLE_MODEL",
              "link": 4
            },
            {
              "name": "clip_vision_output",
              "type": "CLIP_VISION_OUTPUT",
              "link": 3
            }
          ],
          "outputs": [
            {
              "name": "CONDITIONING",
              "type": "CONDITIONING",
              "slot_index": 0,
              "links": [
                11
              ]
            }
          ],
          "title": "Apply Flux Redux",
          "properties": {
            "cnr_id": "comfy-core",
            "ver": "0.21.1",
            "Node name for S&R": "StyleModelApply",
            "ue_properties": {
              "widget_ue_connectable": {},
              "version": "7.8",
              "input_ue_unconnectable": {}
            }
          },
          "widgets_values": [
            0.15,
            "multiply"
          ]
        },
        {
          "id": 1,
          "type": "LoadImage",
          "pos": [
            -720,
            -420
          ],
          "size": [
            320,
            420
          ],
          "flags": {},
          "order": 8,
          "mode": 0,
          "inputs": [],
          "outputs": [
            {
              "name": "IMAGE",
              "type": "IMAGE",
              "slot_index": 0,
              "links": [
                1
              ]
            },
            {
              "name": "MASK",
              "type": "MASK",
              "slot_index": 1,
              "links": null
            }
          ],
          "properties": {
            "cnr_id": "comfy-core",
            "ver": "0.21.1",
            "Node name for S&R": "LoadImage",
            "ue_properties": {
              "widget_ue_connectable": {},
              "version": "7.8",
              "input_ue_unconnectable": {}
            }
          },
          "widgets_values": [
            "z-image-base_00005_.png",
            "image"
          ]
        },
        {
          "id": 18,
          "type": "SaveImage",
          "pos": [
            1720,
            260
          ],
          "size": [
            500,
            520
          ],
          "flags": {},
          "order": 17,
          "mode": 0,
          "inputs": [
            {
              "name": "images",
              "type": "IMAGE",
              "link": 18
            }
          ],
          "outputs": [],
          "properties": {
            "cnr_id": "comfy-core",
            "ver": "0.21.1",
            "Node name for S&R": "SaveImage",
            "ue_properties": {
              "widget_ue_connectable": {},
              "version": "7.8",
              "input_ue_unconnectable": {}
            }
          },
          "widgets_values": [
            "flux_redux_usable"
          ]
        }
      ],
      "links": [
        [
          1,
          1,
          0,
          3,
          1,
          "IMAGE"
        ],
        [
          2,
          2,
          0,
          3,
          0,
          "CLIP_VISION"
        ],
        [
          3,
          3,
          0,
          10,
          2,
          "CLIP_VISION_OUTPUT"
        ],
        [
          4,
          4,
          0,
          10,
          1,
          "STYLE_MODEL"
        ],
        [
          5,
          5,
          0,
          11,
          0,
          "MODEL"
        ],
        [
          6,
          5,
          0,
          14,
          0,
          "MODEL"
        ],
        [
          7,
          6,
          0,
          8,
          0,
          "CLIP"
        ],
        [
          8,
          7,
          0,
          17,
          1,
          "VAE"
        ],
        [
          9,
          8,
          0,
          9,
          0,
          "CONDITIONING"
        ],
        [
          10,
          9,
          0,
          10,
          0,
          "CONDITIONING"
        ],
        [
          11,
          10,
          0,
          11,
          1,
          "CONDITIONING"
        ],
        [
          12,
          11,
          0,
          16,
          1,
          "GUIDER"
        ],
        [
          13,
          12,
          0,
          16,
          0,
          "NOISE"
        ],
        [
          14,
          13,
          0,
          16,
          2,
          "SAMPLER"
        ],
        [
          15,
          14,
          0,
          16,
          3,
          "SIGMAS"
        ],
        [
          16,
          15,
          0,
          16,
          4,
          "LATENT"
        ],
        [
          17,
          16,
          0,
          17,
          0,
          "LATENT"
        ],
        [
          18,
          17,
          0,
          18,
          0,
          "IMAGE"
        ]
      ],
      "groups": [
        {
          "id": 1,
          "title": "Flux Redux Reference",
          "bounding": [
            -760,
            -680,
            1380,
            600
          ],
          "color": "#3f789e",
          "flags": {}
        },
        {
          "id": 2,
          "title": "Flux Model / Prompt",
          "bounding": [
            -760,
            80,
            1380,
            620
          ],
          "color": "#3f789e",
          "flags": {}
        },
        {
          "id": 3,
          "title": "Sampling / Output",
          "bounding": [
            640,
            0,
            1640,
            780
          ],
          "color": "#3f789e",
          "flags": {}
        }
      ],
      "config": {},
      "extra": {
        "ds": {
          "scale": 0.4665073802097333,
          "offset": [
            978.5244242666672,
            1148.5379877416667
          ]
        },
        "notes": "Stable Redux-only version. No IPAdapter custom nodes. Required files: flux1-dev-fp8.safetensors, t5xxl_fp8_e4m3fn.safetensors, clip_l.safetensors, ae.safetensors, flux1-redux-dev.safetensors, sigclip_vision_patch14_384.safetensors.",
        "ue_links": [],
        "links_added_by_ue": [],
        "frontendVersion": "1.43.18",
        "VHS_latentpreview": false,
        "VHS_latentpreviewrate": 0,
        "VHS_MetadataImage": true,
        "VHS_KeepIntermediate": true
      },
      "version": 0.4
    }

    完成模型安裝與工作流設定後,建議讀者嘗試使用不同類型的參考圖片與提示詞組合,體驗 FLUX Redux 在風格轉換、角色重繪以及創意發想上的多元應用。隨著參數與提示詞技巧的累積,相信您能夠充分發揮 FLUX Redux 的潛力,打造出更具個人特色的 AI 圖像作品。