Comfyui容器化部署与简介

目前使用 Stable Diffusion 进行创作的工具主要有两个:Stable Diffusion WebUI 和 ComfyUI。本文重点介绍ComfyUI的部署使用。
ComfyUI 可定制性很强,可以让创作者搞出各种新奇的玩意,通过工作流的方式,也可以实现更高的自动化水平,创作方法更容易传播复现,支持多任务批量提交到comfyui,支持websocket对接。 但是 ComyUI 的上手门槛有点高,对 Stable Diffusion 以及各种扩展能力的原理需要有一定的理解,动手能力要求也比较高。但作为专业的软件化平台,更适合软件团队集成或二次开发有实际价值的应用。所以我们更推荐使用ComfyUI的方式替代WebUI。

环境准备

插件

  • 插件管理器

git clone https://github.com/ltdrdata/ComfyUI-Manager.git

  • 翻译

git clone https://github.com/AIGODLIKE/AIGODLIKE-ComfyUI-Translation.git

  • 中文提示词输入,绘画节点

git clone https://github.com/AlekPet/ComfyUI_Custom_Nodes_AlekPet.git

  • 美化辅助,文本补全,吸附网络

https://github.com/pythongosssss/ComfyUI-Custom-Scripts.git

  • ControlNet预处理器

https://github.com/Fannovel16/comfyui_controlnet_aux

  • 分块采样器插件

https://github.com/BlenderNeko/ComfyUI_TiledKSampler.git

  • 放大插件

https://github.com/ssitu/ComfyUI_UltimateSDUpscale.git

  • Derfuu插件

https://github.com/Derfuu/Derfuu_ComfyUI_ModdedNodes.git

模型

准备如下模型:
  • stabilityai/stable-diffusion-xl-base-1.0
  • stabilityai/stable-diffusion-xl-refiner-1.0
  • stabilityai/sdxl-vae
  • stabilityai/control-lora
  • xinsir/controlnet-canny-sdxl-1.0
  • vaeapprox-sdxl
  • controlnet-canny-sdxl-1.0
  • SargeZT/controlnet-sd-xl-1.0-softedge-dexined
  • thibaudcontrolnet-openpose-sdxl-1.0
下载地址:

插件可以提前下载,也可以通过ComfyUI-Manager。我们更推荐采用手动下载的方式,个人控制性更强,后期升级维护更加可控。

#checkpoint
git clone https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0
git clone https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0
#vae
git clone https://huggingface.co/stabilityai/sdxl-vae

#vaeapprox
wget https://github.com/AUTOMATIC1111/stable-diffusion-webui/releases/download/v1.0.0-pre/vaeapprox-sdxl.pt

#controlnet
git clone https://huggingface.co/stabilityai/control-lora
git clone https://huggingface.co/xinsir/controlnet-canny-sdxl-1.0
###dexined soft edge preprocessing
wget https://huggingface.co/SargeZT/controlnet-sd-xl-1.0-softedge-dexined/resolve/main/controlnet-sd-xl-1.0-softedge-dexined.safetensors
###ZoeDepth repo 中的默认参数将其着色为灰度
wget https://huggingface.co/SargeZT/controlnet-sd-xl-1.0-depth-16bit-zoe/resolve/main/depth-zoe-xl-v1.0-controlnet.safetensors
###OpenPose
wget https://huggingface.co/thibaud/controlnet-openpose-sdxl-1.0/resolve/main/control-lora-openposeXL2-rank256.safetensors
wget https://huggingface.co/thibaud/controlnet-openpose-sdxl-1.0/resolve/main/OpenPoseXL2.safetensors

git clone https://huggingface.co/kohya-ss/controlnet-lllite

base 与 refiner 模型的区别
base 模型是用来做文生图,refiner 模型是用来做图生图的。首先,使用基础模型(Base)模型生成(有噪音的)潜在变量,然后再由专门用于去噪的精修模型(refiner)进一步处理。基础模型stabilityai/stable-diffusion-xl-base-1.0本身也可以作为独立模块使用,串联起效果更好。

模型分类简介:
Checkpoint

Checkpoint 是 SD 的核心,是最基本的必备模型,体积较大,也被称为大模型。越大的模型代表融合的元素越多,表现的效果细节越丰富。不同的大模型使用不同的图片训练而成,对应不同的风格,相当于最底层的引擎。我们在模型网站筛选 Checkpoint 就是筛选大模型。大模型后缀分两种,ckpt 和 safetensor 。一般 ckpt 融合的数据多一点,safetensor 融合的数据少一点,模型侧重不同,各有优略,不代表好坏。

VAE

VAE(Variable Auto Encoder,变量自动编码器)是一个添加到稳定扩散检查点模型中的文件,以获得更鲜艳的颜色和更清晰的图像。VAE 通常还有改善手部和面部的额外好处。模型可以内置 VAE,也可以使用一些通用的外部VAE,某些外部VAE甚至比内置VAE工作得更好。 如stabilityai/sdxl-vae 可以配合基础模型stabilityai/stable-diffusion-xl-base-1.0使用。

ControlNet

ControlNet 是一个控制预训练图像扩散模型的神经网络。它允许输入调节图像,然后使用该调节图像来操控图像生成。它调节图像类型众多,例如涂鸦、边缘图、姿势关键点、深度图、分割图、法线图等,这些输入都可以作为条件输入来指导生成图像的内容。

loras

低秩适应模型,在不改变原有模型的情况下去添加一些额外的低秩举证以调整模型权重。提升模型性能以及适应性
可以理解为stable diffusion(SD)模型的一种插件,和hyper-network,controlNet一样,都是在不修改SD模型的前提下,利用少量数据训练出一种画风/IP/人物,实现定制化需求,所需的训练资源比训练SD模要小很多,非常适合社区使用者和个人开发者。

hypernetworks

中文名字叫超网络,功能和embedding,lora类似,都是对生成的图片进行针对性的调整,它是一个附加到稳定扩散模型的小型神经网络,主要用于修改控制图像风格。使用比较少,有逐步被Lora 代替的趋势。

GFPGAN

GFPGAN 是开源的人脸修复算法,它利用预先训练好的面部 GAN(如 StyleGAN2)中封装的丰富和多样的先验因素进行盲脸 (blind face) 修复,旨在开发用于现

Embedding

它是一种用于提高AI绘画效果的技术,可以将一组图片的特征提取出来,保存为一个小文件,然后在生成图片时,通过输入关键词来激活这个文件,从而实现风格的转换或人物的还原。Embedding大小只有几十K或几个M,它可以同时调用多个文件进行混合。它必须基于一款模型来生成和使用

源码下载

1:下载代码仓库
git clone https://github.com/comfyanonymous/ComfyUI.git
2、下载所有插件并存放在:ComfyUI/custom_nodes/
image.png
3、根据前面准备的模型,把模型存放在指定宿主机目录,使用时挂载到容器

├── Codeformer
├── controlnet
│?? ├── control-lora
│?? ├── control-lora-openposeXL2-rank256.safetensors
│?? ├── controlnet-canny-sdxl-1.0
│?? ├── controlnet-scribble-sdxl-1.0
│?? ├── controlnet-sd-xl-1.0-softedge-dexined.safetensors
│?? ├── depth-zoe-xl-v1.0-controlnet.safetensors
│?? └── OpenPoseXL2.safetensors
├── deepbooru
│?? └── Put your deepbooru release project folder here.txt
├── GFPGAN
│?? ├── alignment_WFLW_4HG.pth
│?? ├── detection_Resnet50_Final.pth
│?? ├── GFPGANv1.4.pth
│?? └── parsing_parsenet.pth
├── hypernetworks
├── karlo
│?? └── ViT-L-14_stats.th
├── Lora
├── Stable-diffusion
│?? ├── sdxl-turbo
│?? ├── stable-diffusion-2-1
│?? ├── stable-diffusion-xl-base-1.0
│?? └── stable-diffusion-xl-refiner-1.0
├── VAE
│?? └── sdxl-vae
└── VAE-approx
    └── vaeapprox-sdxl.pt

18 directories, 11 files

本地环境部署

创建虚拟环境

conda create -n comfyui python=3.10
conda activate comfyui

安装pytorch和相关依赖

#安装pytorch
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simpl
pip3 install torch torchvision torchaudio

安装相关依赖

pip install -r requirements.txt

插件相关依赖,在第一次启动时会自动安装部署

修改配置文件

cp extra_model_paths.yaml.example extra_model_paths.yaml
编辑 extra_model_paths.yaml
修改checkpoints的路径和其他模型路径,请根据你实际放置位置来修改:
vim extra_model_paths.yaml

a111:
    base_path: /app/ComfyUI/
    checkpoints: models/checkpoints
    configs: models/configs
    vae: models/VAE
    loras: |
         models/Lora
         models/LyCORIS
    upscale_models: |
        models/ESRGAN
        models/RealESRGAN
        models/SwinIR
    embeddings: embeddings
    hypernetworks: models/hypernetworks
    controlnet: models/controlnet

容器化部署ComfyUI

准备Dockerfile文件

FROM pytorch/pytorch:2.2.1-cuda12.1-cudnn8-runtime
ARG DEBIAN_FRONTEND=noninteractive
ENV TZ=Etc/UTC
ENV LANG=zh_CN.UTF-8
WORKDIR /app

RUN pip config set global.index-url http://mirrors.aliyun.com/pypi/simple
RUN pip config set install.trusted-host mirrors.aliyun.com

COPY ComfyUI/ /app/ComfyUI/
WORKDIR /app/ComfyUI

RUN pip install --use-pep517 -r requirements.txt
RUN pip install -r  custom_nodes/comfyui_controlnet_aux/requirements.txt
RUN pip install -r  custom_nodes/ComfyUI-Manager/requirements.txt
RUN pip install -r  custom_nodes/ComfyUI_Custom_Nodes_AlekPet/ArgosTranslateNode/requirements.txt
RUN pip install -r  custom_nodes/ComfyUI_Custom_Nodes_AlekPet/DeepTranslatorNode/requirements.txt
RUN pip install -r  custom_nodes/ComfyUI_Custom_Nodes_AlekPet/GoogleTranslateNode/requirements.txt
RUN pip install -r  custom_nodes/efficiency-nodes-comfyui/requirements.txt

EXPOSE 8188
CMD [ "python","main.py ","--port 8188"]

执行构建

docker buile -t qingcloudtech/comfyui:v1.0 .

启动容器

docker run -it --gpus all \
-p 8188:8188 \
-v /u01/workspace/models/stablediffusion:/u01/workspace/models/stablediffusion \
-v /u01/workspace/comfyui/output/:/app/ComfyUI/output \
qingcloudtech/comfyui:v1.0 python main.py

启动容器(docker-compose方式)

准备配置文件
version: '3.8'
services:
  comfyui:
    image: qingcloudtech/comfyui:v1.0
    container_name: comfyui
    command: python /app/ComfyUI/main.py
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]
    volumes:
      - /u01/workspace/models/stablediffusion/:/u01/workspace/models/stablediffusion/
      - /u01/workspace/comfyui/output/:/app/ComfyUI/output
      #- /u01/workspace/ComfyUI/extra_model_paths.yaml:/app/ComfyUI/extra_model_paths.yaml
    network_mode: host
执行启动命令:
docker-compose up -d

演示访问:

http://127.0.0.1:8188
image.png


【Qinghub Studio 】更适合开发人员的低代码开源开发平台
QingHub企业级应用统一部署
QingHub企业级应用开发管理
QingHub演示
https://qingplus.cn

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/693714.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

k8s学习--kubernetes服务自动伸缩之水平收缩(pod副本收缩)VPA详细解释与安装

文章目录 前言VPA简介简单理解详细解释VPA的优缺点优点1.自动化资源管理2.资源优化3.性能和稳定性提升5.成本节约6.集成性和灵活性 缺点1.Pod 重启影响可用性2.与 HPA 冲突3.资源监控和推荐滞后:4.实现复杂度: 核心概念Resource Requests 和 Limits自动调…

【MySQL】(基础篇三) —— 创建数据库和表

管理数据库和表 管理数据库 创建数据库 在MySQL中,创建数据库的SQL命令相对简单,基本语法如下: CREATE DATABASE 数据库名;如果你想避免在尝试创建已经存在的数据库时出现错误,可以添加 IF NOT EXISTS 子句,这样如…

AI 边缘计算平台 - 6 TOPS 低功耗 RK3576

RK3576 是瑞芯微第二代 8nm 高性能 AIOT 平台,CPU 采用八核大小核构架(4A72 2.2GHz 4A53 1.8GHz),以及一个 M0 协处理器。其 CPU 算力高达 58K DMIPS,足以应对各种复杂计算任务。搭载 Mali-G52 MC3 GPU,14…

vscode软件上安装 Fitten Code插件及使用

一. 简介 前面几篇文章学习了 Pycharm开发工具上安装 Fitten Code插件,以及 Fitten Code插件的使用。 Fitten Code插件是是一款由非十大模型驱动的 AI 编程助手,它可以自动生成代码,提升开发效率,帮您调试 Bug,节省…

【CS.AI】GPT-4o:重新定义人工智能的新标杆

文章目录 1 序言2 GPT-4o的技术亮点3 GPT-4o与前代版本的对比3.1 热门AI模型对比表格GPT-3.5GPT-4GPT-4oBERTT5 3.2 其他 4 个人体验与感受5 结论 1 序言 嘿,大家好!今天要聊聊一个超级酷的AI新突破——GPT-4o!最近,OpenAI发布了…

【报文数据流中的反压处理】

报文数据流中的反压处理 1 带存储体的反压1.1 原理图1.2 Demo 尤其是在NP芯片中,经常涉及到报文的数据流处理;为了防止数据丢失,和各模块的流水处理;因此需要到反压机制; 反压机制目前接触到的有两种:一是基…

ARM功耗管理框架之SCP

安全之安全(security)博客目录导读 目录 一、功耗管理框架中的SCP 二、SCP的示例 三、SCP固件 四、SCP启动流程 五、SCP的memory map 六、SCP与AP的通信 思考:功耗管理框架?SCP?PPU?LPI?之间的关系&#xff1f…

(三)React事件

1. React基础事件绑定 语法&#xff1a; on 事件名称 { 事件处理程序 }&#xff0c;整体上遵循驼峰命名法 App.js //项目根组件 //App -> index.js -> public/index.html(root)function App() {const handleClick () > {console.log(button被点击了)}return (<…

测试开发之自动化篇 —— 使用Selenium IDE录制脚本!

今天&#xff0c;我们开始介绍基于开源Selenium工具的Web网站自动化测试。 Selenium包含了3大组件&#xff0c;分别为&#xff1a;1. Selenium IDE 基于Chrome和Firefox扩展的集成开发环境&#xff0c;可以录制、回放和导出不同语言的测试脚本。 2. WebDriver 包括一组为不同…

ATTCK红队评估(五)

环境搭建 靶场拓扑图&#xff1a; 靶机下载地址: 漏洞详情 外网信息收集 确定目标靶机地址&#xff1a; 发现主机192.168.135.150主机是本次攻击的目标地址。探测靶机开放的端口信息&#xff1a; 目标靶机开放了两个端口&#xff1a;80、3306&#xff0c;那没什么意外的话就是…

企业如何运用信息化、智能化、数字化等技术手段规避企业合同风险?

在企业运营中&#xff0c;合同管理是至关重要的一环。它涉及到企业的各个方面&#xff0c;从供应链管理到客户关系&#xff0c;从财务交易到法律合规。然而&#xff0c;传统的合同管理方式往往存在效率低下、风险控制不足等问题。 随着信息化、智能化和数字化技术的发展&#…

go语言后端开发学习(一)——JWT的介绍以及基于JWT实现登录验证

什么是JWT JWT,全名为JSON Web Token&#xff0c;是当下主流的一种服务端通信认证方式&#xff0c;具有轻量,无状态的特点&#xff0c;它实现了让我们在用户与服务器之间传递安全可靠的Json文本信息&#xff0c;它的使用过程主要是这样的&#xff1a; 当用户注册的时候&#x…

Linux——nginx部署

部署Nginx 构建Nginx服务器 &#xff08;实验需要DNS支持&#xff0c;或添加hosts条目&#xff0c;例如&#xff1a; &#xff09; 安装Nginx&#xff08;yum安装即可&#xff09; 安装依赖软件包&#xff1a; 重启、启用服务并查看服务状态&#xff1a; 默认页面&#xff0…

【深度学习】深度学习之巅:在 CentOS 7 上打造完美Python 3.10 与 PyTorch 2.3.0 环境

【深度学习】深度学习之巅&#xff1a;在 CentOS 7 上打造完美Python 3.10 与 PyTorch 2.3.0 环境 大家好 我是寸铁&#x1f44a; 总结了一篇【深度学习】深度学习之巅&#xff1a;在 CentOS 7 上打造完美Python 3.10 与 PyTorch 2.3.0 环境✨ 喜欢的小伙伴可以点点关注 &#…

模糊控制器实现对某个对象追踪输入

MATLAB是一个十分便捷的软件&#xff0c;里面提供了许多集成的组件&#xff0c;本文利用simulink实现模糊控制器实现对某个对象追踪输入。 这里的对象根据自己的需求可以修改&#xff0c;那么搭建一个闭环控制系统并不是难事儿&#xff0c;主要是对于模糊控制器参数的设置&…

海思SD3403,SS928/926,hi3519dv500,hi3516dv500移植yolov7,yolov8(21)Yolov9s测试

四天前yolov9的作者终于开源了yolov9s和yolov9t模型。这个作者之前一直没开源t,s,只有c开始的,而且onnx转换后数据大小特别大,当时直接就放弃测试了。 另外之前代码有很明显的抄v5的痕迹。所以印象很不好。 现在总算是开源t,s模型,而且这里评估的结果上来看是好于yolov8的…

IDEA创建Mybatis项目

IDEA创建Mybatis项目 第一步&#xff1a;创建库表 -- 创建数据库 create database mybatis_db;-- 使用数据库 use mybatis_db;-- 创建user表 CREATE TABLE user (id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(50) NOT NULL,password VARCHAR(50) NOT NULL,email VARC…

Django API开发实战:前后端分离、Restful风格与DRF序列化器详解

系列文章目录 Django入门全攻略&#xff1a;从零搭建你的第一个Web项目Django ORM入门指南&#xff1a;从概念到实践&#xff0c;掌握模型创建、迁移与视图操作Django ORM实战&#xff1a;模型字段与元选项配置&#xff0c;以及链式过滤与QF查询详解Django ORM深度游&#xff…

项目-五子棋双人对战:游戏房间的管理(5)

完整代码见: 邹锦辉个人所有代码: 测试仓库 - Gitee.com 之前我们已经实现了玩家匹配的功能, 我们都知道, 匹配完过后就可以进入游戏房间进行对战了, 所以我们下一步关注的重点就是对于游戏房间的管理. 模块详细讲解 功能需求 通过匹配的方式, 自动给玩家加入到一个游戏房间…

通过fiftyone按分类下载open-images-v7数据集,并转成yolov5可直接训练的格式

import osimport fiftyone as fo import fiftyone.zoo as foz import yamlclasses [Person, # 人 - 0Car, # 轿车 - 1Taxi, # 出租车 - 2Ambulance, # 救护车 - 3Bus, # 公共汽车 - 4Bicycle, # 自行车 - 5Motorcycle, # 摩托车 - 6Dog, # 狗 - 7Cat, # 猫 - 8M…