让AI知识触手可及

首页 » 【模型部署】在Dify中接入ComfyUI+Flux实现文生图

前言

由于在Macmini上部署ComfyUI踩了不少坑,所以本章内容将部署过程和注意事项进行了整理记录,以便方便未来的复用。

目标

目标1:在Macmini上通过ComfyUI+Flux模型,实现文生图片的功能。
目标2:将服务整合进Dify平台,实现对模型能力的统一管理。

1. 本地部署步骤

为了实现上述目标1,需要完成以下步骤:

  • 下载并安装ComfyUI
  • 下载并安装ComfyUI-Manager
  • 下载并安装ComfyUI-KJNode
  • 下载并配置Flux模型
  • 配置文生图片工作流

具体操作步骤如下方法如下

1.1 创建虚拟环境

conda create -n comfyui python=3.10
conda activate comfyui

1.2 下载并安装comfyUI

  1. 下载ComfyUI至本地

    git clone https://github.com/comfyanonymous/ComfyUI.git
  2. 安装依赖包

cd ComfyUI

pip install -r requirements.txt

1.3 下载并安装ComfyUI-Manager

  1. 下载ComfyUI-Manager
# 切换目录至ComfyUI\custom_nodes
cd ComfyUI/custom_nodes

# 下载ComfyUI-Manager
git clone https://github.com/ltdrdata/ComfyUI-Manager.git
  1. 安装依赖包
cd ComfyUI/custom_nodes/ComfyUI-Manager

pip install -r requirements.txt

1.4 下载并安装ComfyUI-KJNode

由于通过ComfyUI-Manager下载ComfyUI-KJNode之后,经常性会报节点丢失的问题,所以此处我们手动安装ComfyUI-KJNode。

  1. 下载ComfyUI-KJNode
# 切换目录至ComfyUI\custom_nodes
cd ComfyUI/custom_nodes

# 下载ComfyUI-KJNode
git clone https://github.com/kijai/ComfyUI-KJNodes.git
  1. 安装依赖包
cd ComfyUI/custom_nodes/ComfyUI-KJNodes

pip install -r requirements.txt

1.5 下载ComfyUI-GGUF

由于Macmini4的显存有限,所以我们运行flux得使用量化版本,因此需要下载ComfyUI-GGUF进行GGUF量化模型的运行支持。

  1. 下载ComfyUI-GGUF
# 切换目录至ComfyUI\custom_nodes
cd ComfyUI/custom_nodes

# 下载ComfyUI-GGUF
git clone https://github.com/city96/ComfyUI-GGUF.git
  1. 安装依赖包
cd ComfyUI/custom_nodes/ComfyUI-GGUF

pip install -r requirements.txt

1.6 下载flux模型

要正常运行flux模型,总共需要下载三个文件:

  • FLUX.1-dev-gguf
  • t5-v1_1-xxl-encoder-gguf
  • ae.safetensors

1.6.1 下载FLUX.1-dev-gguf

由于huggingface.co被墙,所以我们可以使用镜像站hf-mirror下载。

  1. 访问hf-mirror
  2. 搜索city96/FLUX.1-dev-gguf
  3. Files and versions中选择要下载的模型,例如:flux1-dev-Q4_1.gguf
  4. 下载之后,保存至ComfyUI/models/unet文件夹中

1.6.2 下载t5-v1_1-xxl-encoder-gguf

与上面类似的方法,

  1. 搜索city96/t5-v1_1-xxl-encoder-gguf
  2. 下载t5-v1_1-xxl-encoder-Q5_K_M.gguf
  3. 保存至ComfyUI/models/文件夹中ComfyUI/models/clip

1.6.3 下载flux_vae

  1. 搜索black-forest-labs/FLUX.1-dev
  2. 下载ae.safetensors
  3. 保存至ComfyUI/models/vae文件夹中

1.7 启动ComfyUI

完成上述工作后,切换至ComfyUI目录,执行以下命令启动ComfyUI:

python main.py --listen 0.0.0.0

备注:
–listen 0.0.0.0 代表所有IP都可以访问。

使用浏览器访问http://localhost:8188

1.8 配置FLUX GGUF工作流

  1. 访问https://promptingpixels.com/flux-gguf/
  2. 按照页面提示,下载ComfyUI Workflow
  3. 将下载好的FLUX-GGUF.json拖动至浏览器中的ComfyUI界面
  4. 工作流中各个节点的模型,如下图所示:

1.9 试用效果

  1. 输入提示词
    在第一个(即靠上)的Clip中输入正向提示词:

Vibrant colorful illustration of solar system planets orbiting the Sun, cartoonish style with accurate planetary features (Saturn’s rings, Jupiter’s red spot), cosmic dust and asteroids in the background, glowing orbital paths showing elliptical trajectories, soft stardust effects, Earth prominently positioned, Mercury/Mars/Venus in correct sequence, icy Neptune/Uranus with atmospheric details, educational labels with friendly fonts, warm sunlight casting soft gradients, outer space depth with twinkling stars, 3D floating planet alignment, children-friendly cosmic theme, whimsical but scientifically accurate proportions, dynamic cosmic perspective with comet trails

备注:

  • 通过实际测试,中文提示词的效果不好,需要英文提示词。
  1. 点击执行,等待5分钟左右
  2. 获取到生成的图片

2. 集成Dify

为了实现目标2,将ComfyUI集成至Dify,我们可以借助Dify平台中内置的ComfyUI插件

2.1 搭建Dify平台

  1. 拉取Dify平台代码
git clone https://github.com/langgenius/dify.git
  1. 通过Docker方式安装Dify平台
cd dify
cd docker
cp .env.example .env
docker compose up -d

2.2 授权ComfyUI插件

  1. 访问Dify平台https://localhost/

    备注:首次登录Dify平台需要注册账号,因为较为简单,本章不再赘述。

  2. 登录Dify平台,选择工具->搜索’ComfyUI’->点击授权

  3. 输入ComfyUI的URL地址,即:http://localhost:8188 后确认即可

2.3 使用ComfyUI插件

  1. 在Dify平台上创建一个ChatFlow

  2. 如图配置相应的节点:

  3. LLM节点:主要实现对于用户输入内容进行提示词优化,具体内容:

prompt_template = """
请根据用户输入内容生成图像生成的正面提示词和负面提示词,按以下JSON格式响应:
{
  "positive_prompt": "详细描述期望元素的提示词,包含风格/构图/细节等,请用英文输出",
  "negative_prompt": "需要排除元素的提示词,如低质量/水印等,请用英文输出"
}

用户输入:{{input}}
"""
  1. 代码执行:该节点实现将LLM输出的内容进行提取,将positive_prompt和negative_prompt进行输出,以便提供给ComfyUI进行使用。

    def main(model_output: str) -> dict:
    try:
        data = json.loads(model_output)
        return {
            "positive_prompt": data.get("positive_prompt", "default_positive"),
            "negative_prompt": data.get("negative_prompt", "default_negative")
        }
    except Exception as e:
        return {
            "positive_prompt": "default_positive",
            "negative_prompt": "default_negative"
        }
  2. ComfyUI:该节点主要用来配置ComfyUI的工作流,具体方法
    5.1 在ComfyUI页面,修改工作流如下图:

5.2 通过菜单->导出(API),将工作流导出.json文件

5.3 在Dify平台的ComfyUI节点上,将.json内容复制粘贴到Workflow文本框中

  1. 最后调试并发布,即可实现与Agent对话生成对应的图片。

说明:
由于Macmini4的性能有限,目前生成一张图的耗时在4-5分钟之间,未来如果想提升生成图片的效率和效果,可以考虑换用GPU服务器或者使用第三方的API。

参考资料

声明:一起AI技术所有文章,如无特殊说明或标注,均为本站作者原创发布。任何个人或组织,在未征得作者同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。
原创不易,内容版权受保护,感谢您的尊重与支持。
0 0 投票数
Article Rating
订阅评论
提醒
guest的头像


0 评论
内联反馈
查看所有评论
Picture of Dongming
Dongming
见天地,见众生,见自己。

分类文章

推荐活动

推荐文章

AI进入推理模型时代,一文带你读懂思维链
TRACE:因果事件建模助力视频理解大模型的时间定位能力
超级Agent,鸣枪起跑
【模型测试】大模型评测工具lm-evaluation-harness的使用方法总结
【模型测试】大模型评测工具OpenCompass使用方法总结
大模型平台+新一代智能客服双箭齐发!中关村科金领跑垂类大模型应用赛道
科研领域新成果:九章云极 DataCanvas 联合团队发布 R1 复现以及改进技术
arXiv科研神器:Mistral OCR、Claude 3.7合体实现论文速读
出海应用也能享受高速稳定的DeepSeek-R1?亚马逊云科技出手了
FP8模型不再挑卡!DeepSeek推理成本减半速度翻番,清华团队开源「赤兔」推理引擎
0
希望看到您的想法,请您发表评论x