栏目:
栏目目录里面会收录我关于AIGC相关的笔记博文,大家如果有什么不懂的可以通过阅读我的笔记进行学习。
【AIGC目录】
最近自己在抽时间研究ComfyUI相关的内容,抽时间整理一下自己了解到的内容,希望可以帮到其他想要学习的小伙伴。
安装ComfyUI
安装ComfyUI之前需要准备如下内容:
Git Conda创建的Python3.10虚拟环境(推荐)或者已经安装Python3.10;在Mac上安装ComfyUI
在Mac M系列电脑上安装ComfyUI是比较简单的。
1.clone 代码到本地
在自己的代码目录执行如下命令:
git clone https://github.com/comfyanonymous/ComfyUI.git
2.安装依赖
使用项目中配置的依赖列表进行安装:
pip install -r requirements.txt
注: 这里不管是conda还是直接使用电脑python环境,都使用上面命令。因为conda支持requirements.txt文件构建环境,需要转换为.yml文件。这个如果有需要的可以自行搜索解决。
3.启动ComfyUI
在环境中执行如下命令:
python main.py
在Windows上安装ComfyUI
在Windows电脑上安装ComfyUI是比较繁琐的。
首先我们需要确定自己的电脑是有独立显卡还是无独立显卡。
无独立显卡安装
无独立显卡也就意味着你只能通过CPU运行ComfyUI,安装步骤和Mac上安装的步骤一致,不过最后需要处理一步:
在clone下来的代码中修改ComfyUI/comfy/model_management.py文件中第25行:
# Determine VRAM State
vram_state = VRAMState.NORMAL_VRAM
set_vram_to = VRAMState.NORMAL_VRAM
cpu_state = CPUState.GPU
把这里的cpu_state = CPUState.GPU改为cpu_state = CPUState.CPU
这样在启动的时候,会通过CPU运行ComfyUI。
有独立显卡安装
目前我仅有NVIDIA的显卡,所以其他显卡需要各位小伙伴去尝试;
我的显卡:NVIDIA GeForce GTX 1070
驱动版本:560.70
1.确定当前显卡支持的CUDA版本
我们可以通过如下命令查看我们显卡支持的最高CUDA的版本:
nvidia-smi
控制台会打印出如下内容:
我们在途中可以看到 CUDA Version:12.6,这说明我们当前显卡驱动可以支持的最高CUDA版本是12.6。
2.安装CUDA
如果你的电脑已经安装CUDA可以忽略。
执行如下命令确定电脑是否安装
nvcc -V
已经安装CUDA会打印下图内容:
这里我们需要在PyTorch官网去查看目前PyTorch支持的稳定版CUDA版本。
我们可以看到CUDA稳定版支持到12.1。需要在NAVIDA官网下载CUDA安装包
CUDA下载完成之后打开.exe文件开始安装。程序会让我们先选择目录,这个目录是应用程序解压安装内容的目录。
注: 我们可以不改变目录但是记住目录的地址,谨防安装之后没有自动删除,我们去手动删除。
之后一直下一步直到安装成功。网上有的文章推荐使用自定义,但是如果去看NVIDIA官网发布说明的更新动态会发现,有的版本不会向下兼容,比如12.x和11.x不兼容10.x的内容,在向上版本升级的时候,如果有些内容没有覆盖,会让你在使用GPU训练的时候出问题。可以自行阅读NVIDIA的官网发布说明。
到此显卡相关内容已经安装完成。
3.安装依赖
在环境中我们需要安装CUDA相关的依赖,PyTorch官网已经给我们提供了安装命令。
conda虚拟环境
使用conda虚拟环境,通过如下方式获取命令并执行:
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia
python环境
直接使用python环境,通过如下方式获取命令并执行:
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
注: 网上说要单独安装CUDNN的依赖,其实PyTorch的依赖安装的时候会自动安装依赖的CUDNN。
安装完成之后,安装项目中的依赖:
pip install -r requirements.txt
这一步和Mac中执行的命令一样,不再赘述。
4.启动ComfyUI
在环境中执行如下命令:
python main.py
OK,安装ComfyUI到此为止。
QA
1.我在安装完PyTorch的CUDA依赖之后如何知道已经安装成功?
执行如下代码:
python -c 'import torch; print(torch.version.cuda); print(torch.cuda.is_available());'
命令行或控制台会打印出如下内容:
2.在Windows上安装ComfyUI,启动之后报如下错误:
Traceback (most recent call last):
File "F:\python\comfyui\ComfyUI\main.py", line 94, in <module>
import execution
File "F:\python\comfyui\ComfyUI\execution.py", line 11, in <module>
import nodes
File "F:\python\comfyui\ComfyUI\nodes.py", line 21, in <module>
import comfy.diffusers_load
File "F:\python\comfyui\ComfyUI\comfy\diffusers_load.py", line 3, in <module>
import comfy.sd
File "F:\python\comfyui\ComfyUI\comfy\sd.py", line 5, in <module>
from comfy import model_management
File "F:\python\comfyui\ComfyUI\comfy\model_management.py", line 119, in <module>
total_vram = get_total_memory(get_torch_device()) / (1024 * 1024)
File "F:\python\comfyui\ComfyUI\comfy\model_management.py", line 88, in get_torch_device
return torch.device(torch.cuda.current_device())
File "F:\python\conda\envs\comfyui\lib\site-packages\torch\cuda\__init__.py", line 778, in current_device
_lazy_init()
File "F:\python\conda\envs\comfyui\lib\site-packages\torch\cuda\__init__.py", line 293, in _lazy_init
torch._C._cuda_init()
RuntimeError: config[i] == get()->name() INTERNAL ASSERT FAILED at "C:\\cb\\pytorch_1000000000000\\work\\c10\\cuda\\CUDAAllocatorConfig.cpp":229, please report a bug to PyTorch. Allocator backend parsed at runtime != allocator backend parsed at load time
在PyTorch的Issues中作者给出了答案。
我们需要在ComfyUI/main.py中加一些代码:
import comfy.options
comfy.options.enable_args_parsing()
import os
import importlib.util
import folder_paths
import time
from comfy.cli_args import args
改为如下代码:
import comfy.options
comfy.options.enable_args_parsing()
import os
os.environ["PYTORCH_CUDA_ALLOC_CONF"] = "backend:cudaMallocAsync"
import torch
x = torch.randn(1).cuda()
print(x)
import importlib.util
import folder_paths
import time
from comfy.cli_args import args
总结
### 文章总结这篇文章详细介绍了如何在不同操作系统(Mac和Windows)上安装并启动ComfyUI,一个可能用于AIGC(人工智能生成内容)相关的工具或框架。主要内容包括准备工作、安装方式、常见问题及解决方案。
#### 栏目说明
- **栏目名称**:未明确,但提到AIGC相关的笔记博文将被收录在目录中。
- **目的**:帮助读者通过阅读笔记学习AIGC相关知识,特别是关于ComfyUI的安装与使用。
#### 安装前准备
- **通用要求**:Git和Python3.10(建议使用Conda创建的虚拟环境)。
#### 安装步骤 - Mac
1. **Clone代码到本地**:使用Git从GitHub克隆ComfyUI仓库。
2. **安装依赖**:通过`pip install -r requirements.txt`命令安装项目所需的所有Python库。
3. **启动ComfyUI**:在虚拟环境或系统环境中执行`python main.py`。
#### 安装步骤 - Windows
Windows安装分为无独立显卡和有独立显卡两种情况:
- **无独立显卡**
1. 按照Mac上的步骤执行:克隆代码、安装依赖。
2. 修改`ComfyUI/comfy/model_management.py`中的代码,确保通过CPU运行程序。
- **有独立显卡(NVIDIA)**
1. **确定CUDA版本**:使用`nvidia-smi`查看支持的CUDA版本。
2. **安装CUDA**:根据PyTorch支持的稳定版CUDA版本,从NVIDIA官网下载并安装CUDA。
3. **安装PyTorch及CUDA依赖**:
- 若使用conda,执行`conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia`。
- 若直接使用Python环境,使用特定URL安装,命令为`pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121`。
- 安装项目依赖`pip install -r requirements.txt`。
4. **启动ComfyUI**:执行`python main.py`。
#### 常见问题及解决方案
- **如何检查PyTorch和CUDA安装成功**?
- 执行`python -c 'import torch; print(torch.version.cuda); print(torch.cuda.is_available());'`检查。
- **Windows启动报错**:
- 报错内容指向PyTorch CUDA分配问题,解决方法是在`ComfyUI/main.py`中添加环境变量`os.environ["PYTORCH_CUDA_ALLOC_CONF"] = "backend:cudaMallocAsync"`,并检查CUDA使用情况。
#### 总结
本文详尽地介绍了在不同系统下安装ComfyUI的步骤,并提供了可能遇到问题的解决方案,特别适合希望学习ComfyUI和相关技术应用的读者参考。