NVIDIA-搭建ComfyUI

ComfyUI 是一个基于节点的生成式人工智能的界面和推理引擎,可以实现更高的定制化和可控的内容生成。

Github仓库:https://github.com/comfyanonymous/ComfyUI

官方文档:https://docs.comfy.org/

官方网站:https://www.comfy.org/zh-cn/

本篇的主要目的是带你掌握如何在 Nvidia Jetson AGX Orin 中搭建运行环境

Nvidia Jetson AGX Orin 环境搭建

首先要做的就是 Nvidia Jetson AGX Orin 的装机操作,请参考这篇文章完成基础环境搭建。

安装完成后您就拥有了 Python 3.10 环境,后续步骤均建立在该基础之上。

安装 PyTorch

Nvidia Jetson AGX Orin 安装 PyTorch 与平常安装方式不同,需要对特定设备进行编译,总之很麻烦。

经过作者不懈努力的收集、寻找,终于找到了有效的解决方案:

  1. 确定自己的 NVIDIA Jetson AGX Orin Developer Kit 版本和 CUDA 版本 Jetpack 6.2 [L4T 36.4.3] 12.6.68

  2. 这个网站中找到对应版本的whl安装包并安装它 torch-2.7.0-cp310-cp310-linux_aarch64.whl

ComfyUI 环境搭建

做完上面👆的步骤后,一切变得简单了起来,按照官方文档的安装步骤进行即可。以下说明一些需要注意的点:

  • 安装环境时建议使用venv搭建 cd Comfy-UI && python -m venv --system-site-packages .venv

  • 安装时可能会出现依赖版本不兼容的问题,请参考如下版本安装:

    • numpy==1.26.4

    • scipy==1.15.2

    • pybind11==2.13.6

  • 建议交由systemd管理后台服务进程,请参考如下配置:

# cat /etc/systemd/system/comfy-ui.service
[Unit]
Description=ComfyUI Service
After=network.target

[Service]
Type=simple
User=<user>
Group=<group>

WorkingDirectory=/path/to/ComfyUI

ExecStart=/path/to/ComfyUI/.venv/bin/python main.py --listen 0.0.0.0

Restart=always
RestartSec=5s

Environment="PYTHONUNBUFFERED=1"
Environment="CUDA_LAUNCH_BLOCKING=1"
Environment="TORCH_USE_CUDA_DSA=1"
Environment="TORCH_CUDA_ARCH_LIST=8.0;8.6;8.7+PTX"
[Install]
WantedBy=multi-user.target

发现新版本好像会出点问题,重新整理了一份安装脚本:

# 下载Miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh
# 安装Miniconda3 到 /data/miniconda
bash Miniconda3-latest-Linux-aarch64.sh -b -p /data/miniconda
# 临时设置PATH
export PATH="/data/miniconda/bin:$PATH"
# 设置Miniconda3缓存地址
cat > ~/.condarc <<EOF
pkgs_dirs:
  - /data/.conda_cache/pkgs
envs_dirs:
  - /data/.conda_cache/envs
EOF
# conda info
# 更新Miniconda3
conda update conda
# 创建ComfyUI环境
conda create -n comfyui python=3.10
# 初始化Miniconda3
conda init
bash
# 激活ComfyUI环境
conda activate comfyui
# 开始安装CUDA环境
sudo apt-get update
sudo apt-get install cudnn python3-libnvinfer python3-libnvinfer-dev tensorr
# 设置CUDA环境
ls -l /usr/local | grep cuda
sudo ln -s /usr/local/cuda-12.6 /usr/local/cuda
export PATH=/usr/local/cuda/bin:$PATH
nvcc --version
echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
echo 'export CUDA_HOME=/usr/local/cuda' >> ~/.bashrc
echo 'export CUDA_PATH=/usr/local/cuda' >> ~/.bashrc
source ~/.bashrc
# 编译bitsandbytes
export BNB_CUDA_VERSION=126
export LD_LIBRARY_PATH=/usr/local/cuda-12.6/lib64:$LD_LIBRARY_PATH
git clone https://github.com/timdettmers/bitsandbytes.git
cd bitsandbytes
mkdir -p build
cd build
cmake .. -DCOMPUTE_BACKEND=cuda -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-12.6
make -j$(nproc)
cd ..
python setup.py install
# 安装PyTorch、TorchVision和TorchAudio
pip install https://pypi.jetson-ai-lab.io/jp6/cu126/+f/62a/1beee9f2f1470/torch-2.8.0-cp310-cp310-linux_aarch64.whl
pip install https://pypi.jetson-ai-lab.io/jp6/cu126/+f/907/c4c1933789645/torchvision-0.23.0-cp310-cp310-linux_aarch64.whl
pip install https://pypi.jetson-ai-lab.io/jp6/cu126/+f/81a/775c8af36ac85/torchaudio-2.8.0-cp310-cp310-linux_aarch64.whl
# 安装ComfyUI
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
pip install -r requirements.txt
pip install "numpy<2"

这次用Supervisor 作为后台进程管理端,配置文件如下:

[program:ComfyUI]
command                 = /data/.conda_cache/envs/comfyui/bin/python main.py --listen 0.0.0.0
directory               = /data/ComfyUI
autorestart             = true
startsecs               = 3
stdout_logfile          = /data/1panel/tools/supervisord/log/ComfyUI.out.log
stderr_logfile          = /data/1panel/tools/supervisord/log/ComfyUI.err.log
stdout_logfile_maxbytes = 2MB
stderr_logfile_maxbytes = 2MB
user                    = cikaros
priority                = 999
numprocs                = 1
process_name            = %(program_name)s_%(process_num)02d

为了方便训练,找到了名为OSTRIS/AI工具包:微调扩散模型的终极训练工具包的项目,这里也进行了部署,方便训练自己的lora模型:

# 切换到工作目录
cd /data
# Clone 项目
git clone https://github.com/ostris/ai-toolkit.git
cd ai-toolkit/
# 激活ComfyUI环境
conda activate comfyui
# 安装Jetson支持的 onnxruntime_gpu 依赖
pip install https://pypi.jetson-ai-lab.io/jp6/cu126/+f/4eb/e6a8902dc7708/onnxruntime_gpu-1.23.0-cp310-cp310-linux_aarch64.whl
# 安装项目所需依赖
pip install -r requirements.txt
# 安装bunjs
curl -fsSL https://bun.sh/install | bash
source /home/cikaros/.bashrc
cd ui/
# 安装nvm
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
source /home/cikaros/.bashrc
nvm ls-remote
# 安装Node环境
nvm install 20.19.6
# 初始化启动一次
npm run build_and_start

同样,我使用Supervisor 作为后台进程管理端,配置文件如下:

[program:AI-Toolkit]
command                 = /home/cikaros/.bun/bin/bun run start
directory               = /data/ai-toolkit/ui
autorestart             = true
startsecs               = 3
stdout_logfile          = /data/1panel/tools/supervisord/log/AI-Toolkit.out.log
stderr_logfile          = /data/1panel/tools/supervisord/log/AI-Toolkit.err.log
stdout_logfile_maxbytes = 2MB
stderr_logfile_maxbytes = 2MB
user                    = cikaros
priority                = 999
numprocs                = 1
process_name            = %(program_name)s_%(process_num)02d

Github中已经有人分享了通过AI-Toolkit进行Z-image的训练过程,仅供参考:[Sharing Experience] Training Z-Image LoRA using 12G VRAM ~ 😁 · Issue #550 · ostris/ai-toolkit


NVIDIA-搭建ComfyUI
https://blog.cikaros.cn/archives/nvidia-da-jian-comfyui
作者
Cikaros
发布于
2025年05月07日
许可协议