FLUX.2-klein-base-9b-nvfp4与ComfyUI集成:可视化工作流搭建

张开发
2026/4/11 8:27:47 15 分钟阅读

分享文章

FLUX.2-klein-base-9b-nvfp4与ComfyUI集成:可视化工作流搭建
FLUX.2-klein-base-9b-nvfp4与ComfyUI集成可视化工作流搭建如果你已经部署了FLUX.2-klein-base-9b-nvfp4模型并且正在寻找一种更直观、更灵活的方式来使用它那么把它集成到ComfyUI里绝对是个值得尝试的方向。ComfyUI那种节点拖拽式的可视化工作流特别适合需要串联多个步骤的创作过程比如先让一个模型生成草图再用FLUX进行风格转换最后交给另一个节点做细节优化。今天要聊的就是怎么把你手头那个功能强大的FLUX模型变成一个ComfyUI里的自定义节点。这样一来你就能在一个可视化的画布上自由地把它和其他图片生成、处理工具连接起来搭建出属于你自己的智能创作流水线。整个过程听起来有点技术但跟着步骤走其实没那么复杂。1. 为什么要把FLUX集成到ComfyUI在深入具体操作之前我们先看看这么做到底能带来什么好处。毕竟多学一个工具总得图它点什么。最直接的好处就是可视化编排。你不用再对着命令行或者写一堆脚本去调用模型。在ComfyUI里FLUX会变成一个带有输入输出接口的“盒子”节点。你想怎么用就用连线把这些“盒子”连起来。图片从上一个节点流过来经过FLUX处理再流向下一个节点整个过程一目了然。这对于设计复杂、多步骤的图片处理流程来说效率提升不是一点半点。其次是工作流的可复用性。当你费心搭建好一个包含FLUX风格转换的完美流程后——比如“文生图 → FLUX动漫化 → 高清修复” ——你可以把这个流程保存为一个模板。下次需要的时候一键加载所有节点和参数都原封不动直接就能用。这特别适合需要批量处理或者固定风格生产的场景。最后它打破了工具的壁垒。ComfyUI的生态里有很多现成的优秀节点比如各种基础的文生图模型、图片放大算法、面部修复工具、ControlNet控制网等等。把FLUX集成进来意味着你可以让它和这些工具并肩作战取长补短创造出单靠任何一个模型都无法实现的效果。2. 准备工作理清集成思路开始动手前我们需要明确两件事FLUX模型以什么形式提供服务以及ComfyUI如何与它对话。通常部署好的FLUX.2-klein-base-9b-nvfp4模型会提供一个API接口。这个接口就像是一个餐厅的后厨窗口你按照规定的格式比如发送一个包含图片和风格指令的JSON数据包把需求递进去后厨模型处理完后再把成品处理后的图片从窗口递出来。我们的目标就是在ComfyUI内部创建一个“服务员”自定义节点。这个服务员懂得如何向后厨点餐构造API请求也知道怎么把做好的菜端给客人接收并解析API响应输出图片。所以集成的核心步骤就清晰了封装API调用写一个Python函数负责与FLUX模型的API进行通信。创建ComfyUI节点将这个函数包装成ComfyUI能识别的节点类并定义好它的输入参数如图片、风格强度和输出类型如图片。安装与配置将写好的节点文件放到ComfyUI的正确目录下并在界面上启用它。接下来我们就一步步实现它。3. 第一步封装FLUX模型的API调用假设你的FLUX模型部署在本地的http://localhost:8000并且有一个用于风格转换的接口/api/v1/flux-style。我们需要先创建一个独立的Python脚本来测试和封装这个调用。创建一个名为flux_client.py的文件内容如下import requests import json import io from PIL import Image import torch import numpy as np class FluxClient: def __init__(self, base_urlhttp://localhost:8000): self.base_url base_url self.style_api f{base_url}/api/v1/flux-style def style_transfer(self, input_image, style_prompt, strength0.8, steps20): 调用FLUX风格转换API Args: input_image (PIL.Image): 输入图片 style_prompt (str): 风格描述词如“anime style, studio ghibli” strength (float): 风格转换强度0-1之间 steps (int): 推理步数 Returns: PIL.Image: 风格转换后的图片 # 准备图片数据 img_byte_arr io.BytesIO() input_image.save(img_byte_arr, formatPNG) img_byte_arr img_byte_arr.getvalue() # 准备请求数据 files {image: (input.png, img_byte_arr, image/png)} data { style_prompt: style_prompt, strength: strength, steps: steps } try: # 发送POST请求 response requests.post(self.style_api, filesfiles, datadata) response.raise_for_status() # 检查请求是否成功 # 解析返回的图片 output_image Image.open(io.BytesIO(response.content)) return output_image except requests.exceptions.RequestException as e: print(f调用FLUX API失败: {e}) return None # 本地测试代码集成时可以删掉 if __name__ __main__: client FluxClient() test_image Image.new(RGB, (512, 512), colorred) # 用一张红色测试图 result client.style_transfer(test_image, cyberpunk style, neon lights, strength0.7) if result: result.save(test_output.png) print(风格转换成功图片已保存为 test_output.png)这个类FluxClient就是我们的“服务员”。它知道API地址也知道如何打包图片和参数并发送请求。你可以先用一段简单的测试代码文件底部的if __name__ __main__:部分验证一下它是否能正常工作确保你的FLUX服务是可达的。4. 第二步创建ComfyUI自定义节点ComfyUI的自定义节点通常放在ComfyUI/custom_nodes/目录下。我们在该目录下创建一个新的文件夹比如叫做comfyui-flux-node然后在这个文件夹里创建我们的节点文件__init__.py。import os import sys # 将当前目录加入路径以便导入上面写的flux_client sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) try: from flux_client import FluxClient except ImportError: print(警告: 未找到flux_client.py请确保它与本节点文件在同一目录。) import nodes import folder_paths from PIL import Image import numpy as np import torch class FluxStyleTransfer: FLUX风格转换自定义节点 将输入图片转换为指定风格。 classmethod def INPUT_TYPES(cls): return { required: { image: (IMAGE,), style_prompt: (STRING, { multiline: True, default: anime style, studio ghibli }), strength: (FLOAT, { default: 0.7, min: 0.0, max: 1.0, step: 0.05, display: slider }), steps: (INT, { default: 20, min: 1, max: 50, step: 1 }), api_base_url: (STRING, { default: http://localhost:8000, multiline: False }), }, } RETURN_TYPES (IMAGE,) RETURN_NAMES (styled_image,) FUNCTION do_style_transfer CATEGORY image/processing/flux def do_style_transfer(self, image, style_prompt, strength, steps, api_base_url): # ComfyUI的IMAGE类型是torch.Tensor需要转换为PIL.Image # 假设image的shape为 [批大小, 高度, 宽度, 通道(RGB)] if len(image.shape) 4: # 有批处理维度 # 这里我们先处理第一张图实际可扩展为批量处理 image_tensor image[0] else: image_tensor image # 将Tensor转换为PIL Image # 从[0,1]范围转换到[0,255]的uint8 image_np image_tensor.cpu().numpy() * 255.0 image_np image_np.clip(0, 255).astype(np.uint8) pil_image Image.fromarray(image_np) # 初始化客户端并调用API client FluxClient(base_urlapi_base_url) styled_pil_image client.style_transfer(pil_image, style_prompt, strength, steps) if styled_pil_image is None: # 如果处理失败返回原图 print(FLUX风格转换失败返回原图。) return (image,) # 将PIL Image转换回ComfyUI的IMAGE格式 (torch.Tensor) styled_np np.array(styled_pil_image).astype(np.float32) / 255.0 styled_tensor torch.from_numpy(styled_np)[None, ...] # 添加批处理维度 return (styled_tensor,) # 将节点注册到ComfyUI NODE_CLASS_MAPPINGS { FluxStyleTransfer: FluxStyleTransfer } NODE_DISPLAY_NAME_MAPPINGS { FluxStyleTransfer: FLUX Style Transfer }这个节点类FluxStyleTransfer定义了节点在ComfyUI界面中长什么样INPUT_TYPES它要做什么do_style_transfer方法以及输出什么RETURN_TYPES。关键参数解释image: 输入图片类型是ComfyUI标准的IMAGE。style_prompt: 风格描述词多行文本输入。strength: 风格强度用滑块控制更直观。steps: 推理步数。api_base_url: 你的FLUX模型API地址方便切换。记得把第一步写的flux_client.py文件也放到comfyui-flux-node同一个文件夹里。5. 第三步安装节点并构建工作流放置节点将整个comfyui-flux-node文件夹复制到你的ComfyUI/custom_nodes/目录下。重启ComfyUI重启ComfyUI服务。如果一切正常在节点菜单的image/processing/flux分类下或者直接用搜索框搜“FLUX”你应该能看到一个名为FLUX Style Transfer的新节点。构建你的第一个工作流从左侧节点栏拖出一个文生图节点例如KSampler配合一个SD1.5的Checkpoint。拖出我们刚创建的FLUX Style Transfer节点。拖出一个图片预览节点Preview Image或保存节点Save Image。用连线将它们连接起来文生图节点的IMAGE输出 → FLUX节点的image输入 → 预览节点的images输入。在FLUX节点中填写你想要的风格比如“oil painting, Van Gogh style”并调整强度和步数。点击“Queue Prompt”运行。你会看到图片先被生成出来然后流经FLUX节点变成了指定的油画风格最后显示在预览窗口。一个简单的“生成风格化”流水线就搭建完成了。但这只是开始ComfyUI的强大在于你可以无限扩展。6. 进阶搭建复杂图片处理流水线让我们来实现场景中提到的更复杂的想法图片生成 → FLUX风格转换 → 后期处理。这里以后期处理中的“高清放大”和“面部细节修复”为例。搭建基础生成流首先用你喜欢的文生图模型节点生成一张初始图片。接入FLUX风格化将生成的图片连接到FLUX Style Transfer节点将其转换为目标风格如“赛博朋克”。添加高清放大从风格化后的图片节点拉出一条线连接到一个高清放大节点如UltimateSDUpscale或ESRGAN_ModelLoader配合ImageUpscaleWithModel。这可以提升图片分辨率让细节更清晰。引入面部修复如果图片中有人物从放大后的图片节点再连接一个面部修复专用节点例如FaceRestoreCF。这个节点会专门优化人脸区域的质量。最终输出将修复后的图片连接到Save Image节点设置好输出目录和文件名格式。最终你的工作流画布上会形成一个有向无环图数据从源头按顺序流经每个处理节点。你可以随时调整任何一个节点的参数比如改变生成时的提示词、切换FLUX的风格描述、尝试不同的放大模型然后重新运行整个流程观察最终效果的变化。你可以将这个完整的工作流保存为JSON模板。下次打开ComfyUI时直接加载这个模板所有节点和连接关系都会恢复你只需要点击运行或者微调几个参数就能快速得到一批风格统一、质量上乘的图片。这对于内容创作者或设计师来说相当于拥有了一个高度定制化、可重复使用的视觉生产车间。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

更多文章