国内Ubuntu环境Docker部署 ComfyUI

国内Ubuntu环境Docker部署 ComfyUI


趁着这两天用docker部署了 Stable Diffusion,顺手也安排上 ComfyUI。
ComfyUI相比 Stable Diffusion 原生的 WEB UI,更容易让人了解其出图的过程,极其适合学习与研究。拼接其强大的插件节点、不仅能够实现文生图、还可以配置图生图、图片生成视频等等,及其强大。

本笔记主要记录使用 docker 进行部署的相关文件,文件内容放在最后。

  • Dockerfile
  • compose.yaml
  • requirements.txt
  • start.sh

请在 ComfyUI 项目的根目录下创建一个docker文件夹,并将上述文件放入 docker 文件夹内。然后执行 cd docker && docker compose -f compose.yaml up。出现以下界面即部署成功。
在这里插入图片描述
在这里插入图片描述

如何使用 ComfyUI?

大家可以参考这个UP主的课程,讲得很清楚。
【全网最详细ComfyUI教程】!ComfyUI入门到精通全套教程 Stable Diffusion专业节点式界面新手教学教程(附安装包)

如何和 Stable Diffusion 共用模型?

大家只需要找到 ComfyUI 根目录中的 extra_model_paths_emample.yaml 文件,并在 a111 下配置 Stable Diffusion 的相关路径,最后重命名文件为 extra_model_paths_emample.yaml 即可。刷新页面就能在画面上看到 Stable Diffusion 项目中下载的模型。
在这里插入图片描述

Dockerfile
FROM nvidia/cuda:11.8.0-cudnn8-devel-ubuntu22.04

ENV LANG=C.UTF-8 LC_ALL=C.UTF-8

ENV DEBIAN_FRONTEN=noninteractive
SHELL ["/bin/bash", "-c"]

RUN apt-get update -y
RUN apt-get install -y libgl1-mesa-glx libglib2.0-0 gcc g++
RUN apt-get install -y net-tools wget curl git

RUN apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libffi-dev liblzma-dev

# 从国内镜像源下载安装python
# wget https://www.python.org/ftp/python/3.10.13/Python-3.10.13.tar.xz && tar Jxf Python-3.10.13.tar.xz 
RUN wget https://mirrors.huaweicloud.com/python/3.10.13/Python-3.10.13.tar.xz && tar Jxf Python-3.10.13.tar.xz
RUN cd Python-3.10.13 && ./configure --with-system-ffi --enable-shared --enable-optimizations && make && make install && echo "/usr/local/lib" | tee /etc/ld.so.conf.d/python3.conf && ldconfig
RUN python3 -V && pip3 -V

# 设置国内镜像源
RUN pip3 config set global.index-url https://mirrors.aliyun.com/pypi/simple/ && pip3 config set install.trusted-host mirrors.aliyun.com

WORKDIR /workspace
COPY ./requirements.txt ./

RUN pip3 install -r requirements.txt
RUN pip3 install numpy==1.23.5
compose.yaml
services:
  comfyui:
    container_name: comfyui
    image: comfyui:1.0
    restart: always
    ports:
      - 8188:8188
    environment:
      - TZ=Asia/Tokyo
      - NVIDIA_VISIBLE_DEVICES=all
    volumes:
      - ../../ComfyUI:/workspace/ComfyUI
      - ../../automatic1111-stable-diffusion-webui:/workspace/automatic1111-stable-diffusion-webui
    # command: tail -f /dev/null
    command: sh -c "sh /workspace/ComfyUI/docker/start.sh"
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              capabilities: [gpu]
requirements.txt
--extra-index-url https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/wheel/cu121/
# torch
torchsde
# torchvision
# torchaudio
torch==2.1.2
torchaudio==2.1.2
torchvision==0.16.2
einops
transformers>=4.28.1
tokenizers>=0.13.3
sentencepiece
safetensors>=0.4.2
aiohttp
pyyaml
Pillow
scipy
tqdm
psutil
#non essential dependencies:
kornia>=0.7.1
spandrel
soundfile
start.sh
#! /bin/bash
cd ComfyUI && python3 main.py --port 8188 --listen
### ComfyUI Docker 配置与镜像用于Web UI开发 对于ComfyUIDocker配置和镜像,虽然提供的参考资料未直接提及ComfyUI的具体细节,但是可以根据通用实践以及给定资料推断出合理的设置方法。 #### 使用Docker构建和运行环境 为了创建适合于ComfyUI项目的Docker容器,可以从现有的项目结构获得灵感。假设有一个类似的项目结构,其中包含了`docker-compose.yml`文件和其他必要的脚本如`build.sh`和`run.sh`[^2]。这些资源可以帮助定义如何打包应用程序及其依赖项进入Docker映像,并指定启动服务所需的参数。 ```yaml version: '3' services: comfyui_web: image: comfyui/web:latest ports: - "8080:80" volumes: - ./src:/app/src environment: NODE_ENV: development ``` 此示例展示了如何利用`docker-compose.yml`来简化多容器应用的管理和部署过程。这里假定了存在名为`comfyui/web`的官方或自定义Docker镜像,它被配置为监听端口80并将内部路径挂载至主机上的相应目录以便实时编辑源码。 #### 自定义Dockerfile以适应特定需求 如果需要进一步定制化,则可以通过编写自己的`Dockerfile`实现更精细控制: ```dockerfile FROM node:lts-alpine as builder WORKDIR /app COPY package*.json ./ RUN npm install COPY . . EXPOSE 80 CMD ["npm", "start"] ``` 上述代码片段说明了一个简单的Node.js应用程序的基础镜像制作流程——安装依赖、拷贝工作区内的全部文件并暴露HTTP服务器默认使用的TCP端口号80。这只是一个起点;实际情况下可能还需要调整基础镜像的选择以及其他构建阶段的任务列表。 #### 数据持久性和安全性考量 当涉及到生产环境中长期保存数据时,应该考虑使用卷(volume)机制确保即使容器销毁也能保留重要信息。另外,在敏感信息方面(比如数据库连接字符串),应当遵循最佳安全做法,例如借助`.env`文件传递环境变量而不是硬编码在任何地方公开可见的位置[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Anesthesia丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值