ComfyUI安装配置
起因
因为听说Stable Diffusion的创始人和公司闹翻,另起炉灶搞了个Flux,想装个试试,看了一下官方文档,推荐的UI里有这个ComfyUI,号称支持多种后端模型的新型UI,感觉比原来用的SDWebUI好一些,于是装一下试试。
安装
先是在AMD 5300U的机器上装,因为这个模型太大了,没有大显存的显卡,只能先拿CPU试试。
碰到的第一个问题就是系统版略低,自带的Python是3.9的,但Flux要3.10,于是只能docker伺候了。用了官方的python:3.10-bullseye镜像。docker-compose文件如下:
version: '3.3'
services:
comfyui:
image: python:3.10-bullseye
container_name: comfyui
restart: unless-stopped
ports:
- 127.0.0.1:8188:8188
volumes:
- /path_to_comfyui:/opt/ComfyUI
command: /opt/ComfyUI/docker-entry.sh
其中的docker-entry.sh文件如下,其中listen是为了能在docker之外访问:
cd /opt/ComfyUI
. /opt/ComfyUI/venv/bin/activate
python3 main.py --cpu --listen 0.0.0.0
在启动之前先初始化一下运行环境:
docker run -it --rm -v /path_to_comfyui:/opt/ComfyUI python:3.10-bullseye bash
# 之后在docker环境里安装:
cd /opt/ComfyUI
python3 -m venv venv
. venv/bin/activate
pip install -U pip
pip install -r requirements.txt
现在就可以跑一下看看了:
docker-compose up -d
然后用浏览器访问:http://localhost:8188,当然现在没有模型还跑不了
模型下载
参考ComfyUI官方文档之Flux,需要先在这里下载:t5xxl_fp16.safetensors
或clip_l.safetensors
,内存不足(少于32G)的话也可以用t5xxl_fp8_e4m3fn.safetensors
。这两个下载后放到:ComfyUI/models/clip/
。
然后是下载Flux的两个模型(以免费的Schnell版本为例):
- 基本模型flux1-schnell,下载后放到
ComfyUI/models/unet/
。 - VAE模型,下载后放到
ComfyUI/models/vae/
。 - fp8模型flux1-schnell-fp8,内存不足使用这个模型替换上面那个基本模型,注意这个是checkpoint模型,要放到
ComfyUI/models/checkpoints/
,另外,这个就不需要上面的VAE模型了,具体看例子工作流。
之后重启ComfyUI就可以使用了。
使用方法可以试试把ComfyUI官方的示例图加载进去,即可调出例子工作流。
实测在5300U的CPU上跑fp8模型生成512x512的示例图需要消耗60G内存(含交换空间),耗时约半小时,完全没有实用性,但生成效果确实比SD强太多了。
小显存测试
因为CPU实在太慢,于是又想到小显存的机器上测试一下,因为需要升级CUDA,又折腾了一番。得到几点经验教训:
- 不要安装local版本的CUDA,要安装网络版
- 显卡驱动要安装推荐版本,最新版可能不一定行
因为local版本的CUDA是打包好的,会自动装上最新版本的驱动,网络版安装则是根据版依赖处理,只要已安装的驱动能支持,就不会动。我这边的显卡驱动只能用535版本,而最新版是560,为了装个CUDA,我测试了530,535,545,550,560,只有535能正常工作,而且推荐使用系统的驱动安装工具来安装,比如我的LinuxMint自带的驱动管理器。
驱动安装完需要重启一下,然后测试看看:
nvidia-smi
不报错就说明安装成功。然后安装网络版的CUDA,我装的是12.4,只要没有出错就可以了。
同样需要先初始一下环境:
cd ~/ComfyUI
python3 -m venv venv
. venv/bin/activate
pip install -U pip
pip install -r requirements.txt
然后启动之(listen是为了能通过网络访问):
venv/bin/python3 main.py --listen 0.0.0.0 --lowvram
然后用浏览器访问 http://localhost:8188 就可以使用了。
虽然这样也可以跑,但小显存跑起来确实也慢,一张图要15分钟,比SD的3分钟慢多了,这还是fp8的模型……
推送到[go4pro.org]