ubuntu 22.04 anaconda comfyui的安装

背景:

戴尔R740服务器,安装了proxmox操作系统,配置了显卡直通。创建了一个ubuntu 22.04 VM虚拟机实例,并安装了显卡驱动与cuda等相关配置:

接下来准备搭建一套comfyui的环境,前段时间B站,抖音各种刷到相关视频,自己也想玩一下!

ubuntu 22.04 anaconda comfyui

可以参考官方网站:docs.comfy.org/zh-CN/insta...

对于 ComfyUI 的安装, 主要分为几个步骤

  1. 创建一个虚拟环境(避免污染系统级 Python 环境)
  2. 克隆 ComfyUI 代码仓库
  3. 安装依赖
  4. 启动 ComfyUI

安装anaconda并配置虚拟环境

独立的虚拟环境是必要的,因为 ComfyUI 的依赖可能会与系统上的其他依赖冲突,也可以避免对系统级 Python 环境的污染。这里选择了使用anaconda安装python环境:

下载安装anaconda

通过访问:repo.anaconda.com/archive/ 选择对应安装程序:

下载并运行安装脚本:(在ubuntu 22.04 VM虚拟机实例上,这里使用了xshell远程连接)

plain 复制代码
wget https://repo.anaconda.com/archive/Anaconda3-2024.10-1-Linux-x86_64.sh
bash Anaconda3-2024.10-1-Linux-x86_64.sh

全部默认yes yes 一路回车:

anaconda加入系统环境变量:

其实这里已经加入了 <font style="color:rgb(77, 77, 77);">~/.bashrc</font>文件来激活安装

plain 复制代码
source ~/.bashrc
conda list

安装后的一些配置:

鉴于源的访问问题,配置源为清华源:

plain 复制代码
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/

conda config --set show_channel_urls yes


pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

创建comfyui的 python虚拟环境:

创建python 3.12的comfyui的运行环境,并进入该运行环境:

plain 复制代码
conda create -n comfyui python=3.12
conda activate comfyui

验证python的版本:

ubuntu系统的一些其他配置:

使用如下命令查看当前的分区状况:

plain 复制代码
lsblk

我在创建VM实例的时候明明分配了1.5T这里的根/默认的只有100G,需要处理一下(估计后续1.5T也不够需要扩容磁盘):

查看当前PV配置:

使用**pvdisplay **查看当前PV配置:

plain 复制代码
pvdisplay

分配剩余空间给根目录:

将卷组ubuntu-vg(VG)中所有剩余空间(+100%FREE)分配给名为ubuntu-lv的逻辑卷(LV),并使用r**esize2fs **命令调整文件系统以匹配新容量:

plain 复制代码
sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
df -Th /
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv

验证扩容:

使用如下命令验证lv扩容成功:

plain 复制代码
df -h
lsblk

comfyui的安装

参照官方网站:docs.comfy.org/zh-CN/insta....

克隆仓库:

这里使用git克隆的方式安装(默认git已经安装),个人喜欢目录使用/data安装软件:

plain 复制代码
mkdir /data
cd /data
git clone https://github.com/comfyanonymous/ComfyUI.git

安装GPU 及 ComfyUI 依赖

可以参照github仓库README.md,安装GPU依赖:

plain 复制代码
cd /data/ComfyUI
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu128

安装 ComfyUI 依赖:

plain 复制代码
pip install -r requirements.txt

注意:执行命令的目录,必须是comfyui 的相对路径下,如我的目录绝对路径是/data/ComfyUI!

启动 ComfyUI

进入ComfyUI目录,执行如下启动命令,等待comfyui启动:

plain 复制代码
cd /data/ComfyUI
python main.py --port 15070 --listen 0.0.0.0

通过浏览器访问安装comfyui应用的VM实例主机的15070端口,可以看到如下页面:

运行默认的工作流,会报如下错误:

模型缺失,需要下载该模型到 models目录下,我这里直接使用了魔搭社区

通过该社区这里下载了模型:www.modelscope.cn/models/stab...(否则就要通过科学上网,这里就偷懒了)

右击模型文件右侧下载,复制连接。获得下载地址,下载模型到Comfyui模型目录下:

plain 复制代码
cd /data/ComfyUI/models/checkpoints/
wget  https://www.modelscope.cn/models/stabilityai/stable-diffusion-2-inpainting/resolve/master/512-inpainting-ema.ckpt

kill掉comfyui进程 ,重启comfyui程序:

一般的方式是ps -aux获取进程号,然后kill -9杀掉进程

也可以通过下面的方式杀死进程:

plain 复制代码
kill -9 $(ps aux | grep 'python main.py --port 15070 --listen 0.0.0.0' | grep -v grep | awk '{print $2}')

然后重新启动comfyui:

plain 复制代码
python main.py --port 15070 --listen 0.0.0.0

刷新浏览器重新运行工作量可以正常运行:

其他的一些配置

将comfyui注册为系统服务

每次使用命令启动comfyui的方式很不方便对服务的管理与维护,现在我们将comfyui注册为系统服务,通过systemctl管理comfyui:

vi /etc/systemd/system/comfyui.service

plain 复制代码
[Unit]
Description=ComfyUI Stable Diffusion Service
After=network.target
StartLimitIntervalSec=60

[Service]
Type=simple
User=root
WorkingDirectory=/data/ComfyUI
Environment="PATH=/root/anaconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
ExecStart=/bin/bash -c 'source /root/anaconda3/etc/profile.d/conda.sh && conda activate comfyui && exec python main.py --port 15070 --listen 0.0.0.0'
Restart=always
RestartSec=5
StandardOutput=journal
StandardError=journal
SyslogIdentifier=comfyui
ProtectSystem=full
PrivateTmp=true
NoNewPrivileges=true
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

重新加载 systemd 管理的服务单元文件,并尝试启动comfyui:

plain 复制代码
systemctl daemon-reload
systemctl start comfyui.service

通过如下命令确认服务正常启动:

plain 复制代码
ps -aux|grep python
systemctl status comfyui.service 

并进一步使用浏览器可以正常访问服务:

注意:这里的15070端口可以通过个人喜好修改service文件中中启动命令的端口!

comfyui安装常用插件:

为了方便使用comfyui,需要安装一些常用的插件,如:comfyui-manager ComfyUI-Custom-Scripts等插件,请注意:插件的安装目录是ComfyUI 目录下的custom_nodes目录,ComfyUI-Manager 下载到本地目录名需要替换成小写,具体可以参照github文档!

plain 复制代码
cd /data/ComfyUI/custom_nodes
git clone https://github.com/ltdrdata/ComfyUI-Manager comfyui-manager
git clone https://github.com/pythongosssss/ComfyUI-Custom-Scripts.git

重启comfyui服务,等待服务重启:

plain 复制代码
systemctl restart comfyui.service
systemctl status comfyui.service
journalctl -u comfyui -f

通过浏览器访问comfyui,主要看ComfyUI-Manager这个插件,后续的插件模型可以通过这里去下载:

点击Costom Nodes manager 可以搜索下载插件,其他英文名词可以自行翻译:

代理相关

由于comfyui下载插件很多插件要放我github,模型的下载也需要访问HuggingFace。我局域网有一台cvm安装了科学上网工具,就在安装comfyui的设备上面需要加入变量的方式科学上网:

plain 复制代码
  export http_proxy=http://192.168.0.31:20171
  export http_proxys=http://192.168.0.31:20171

不使用了 还要unset 。直接将其封装了一个service:

cat /etc/systemd/system/proxy.service

plain 复制代码
[Unit]
Description=Proxy Environment Variables Service
Documentation=https://example.com
After=network.target

[Service]
Type=oneshot
RemainAfterExit=yes
Environment="PROXY_URL=http://192.168.0.31:20171"

ExecStart=/bin/sh -c "\
    systemctl set-environment http_proxy=${PROXY_URL} && \
    systemctl set-environment https_proxy=${PROXY_URL} && \
    systemctl set-environment HTTP_PROXY=${PROXY_URL} && \
    systemctl set-environment HTTPS_PROXY=${PROXY_URL} && \
    echo 'Proxy enabled: ${PROXY_URL}'"

ExecStop=/bin/sh -c "\
    systemctl unset-environment http_proxy && \
    systemctl unset-environment https_proxy && \
    systemctl unset-environment HTTP_PROXY && \
    systemctl unset-environment HTTPS_PROXY && \
    echo 'Proxy disabled'"

ExecReload=/bin/sh -c "\
    systemctl set-environment http_proxy=${PROXY_URL} && \
    systemctl set-environment https_proxy=${PROXY_URL} && \
    systemctl set-environment HTTP_PROXY=${PROXY_URL} && \
    systemctl set-environment HTTPS_PROXY=${PROXY_URL} && \
    echo 'Proxy reloaded: ${PROXY_URL}'"

# 解决status卡住问题的配置
StandardOutput=journal
TimeoutStopSec=5

[Install]
WantedBy=multi-user.target

重新加载 systemd 管理的服务单元文件,并尝试启动proxy:

plain 复制代码
systemctl daemon-reload
systemctl start proxy.service

通过如下命令确认服务正常启动:

plain 复制代码
systemctl status proxy.service

关闭代理服务则输入stop 关闭proxy服务:

plain 复制代码
systemctl stop proxy.service
systemctl status proxy.service

当然关于模型的下载也可以使用ModelScope魔搭社区(devpress.csdn.net/community.m...%25E7%25AD%2589%25E5%25AE%259E%25E7%258E%25B0%25E3%2580%2582 "https://devpress.csdn.net/community.modelscope.cn)%E7%AD%89%E5%AE%9E%E7%8E%B0%E3%80%82")

相关推荐
MZ_ZXD00134 分钟前
flask校园学科竞赛管理系统-计算机毕业设计源码12876
java·spring boot·python·spring·django·flask·php
胡耀超1 小时前
Umi-OCR 的 Docker安装(win制作镜像,Linux(Ubuntu Server 22.04)离线部署)
linux·深度学习·ubuntu·docker·容器·nlp·ocr
倔强青铜三1 小时前
苦练Python第16天:Python模块与import魔法
人工智能·python·面试
wa的一声哭了1 小时前
python基础知识pip配置pip.conf文件
java·服务器·开发语言·python·pip·risc-v·os
LuckyLay2 小时前
1.1.5 模块与包——AI教你学Django
python·django·sqlite
LuckyLay2 小时前
Django专家成长路线知识点——AI教你学Django
后端·python·django
陈晨辰熟稳重2 小时前
20250713-`Seaborn.pairplot` 的使用注意事项
python·seaborn
魔力之心2 小时前
sklearn study notes[1]
人工智能·python·sklearn
云空3 小时前
《PyQt6-3D:开启Python 3D开发新世界》
python·3d·pyqt
Q_Q19632884753 小时前
python的平安驾校管理系统
开发语言·spring boot·python·django·flask·node.js·php