SD:在一个 Ubuntu 系统安装 stable diffusion ComfyUI

目录

  • [1. 环境准备](#1. 环境准备)
  • [2. git仓库](#2. git仓库)
  • [3. 配置 WebUI 的模型路径](#3. 配置 WebUI 的模型路径)
  • 4.启动软件
  • [5. 插件安装](#5. 插件安装)
    • [5.1 管理插件的插件 ComfyUI-Manager](#5.1 管理插件的插件 ComfyUI-Manager)
    • [5.2 安装其他插件](#5.2 安装其他插件)
      • [5.2.1 安装举例](#5.2.1 安装举例)
  • [6. 关于位置](#6. 关于位置)
    • [6.1 模型位置](#6.1 模型位置)
    • [6.2 工作流保存位置](#6.2 工作流保存位置)
    • [6.3 生成结果的位置](#6.3 生成结果的位置)
  • [7. 简单使用](#7. 简单使用)
    • [7.1 文生图为例](#7.1 文生图为例)
    • [7.2 图生视频](#7.2 图生视频)
  • [附录1 - 关于模型下载](#附录1 - 关于模型下载)

1. 环境准备

  • 个人系统
    查看系统信息(方便向AI提问)
powershell 复制代码
cat /etc/os-release
  • 新建 python 环境
    • 创建新环境
    • 激活环境
powershell 复制代码
python3 -m venv ~/venv_sd_comfy
source ~/venv_sd_comfy/bin/activate
  • 注:关于使用 系统自带 python 还是 conda 来安装环境
    之前我安装WebUI 已经占了一个 Conda 环境,ComfyUI 强烈建议「另起炉灶」------用系统自带的 Python 3.12 单独建 venv,而不是再开一个 Conda 环境。原因有三:
  1. 隔离最干净
    WebUI 的 Conda 环境里可能装了一堆它自己改动的包(xformers、gradio 老版本等),ComfyUI 并不需要,混用反而容易版本冲突。系统 venv 与 Conda 完全隔离,升级/回滚互不影响。
  2. 省内存 + 省磁盘
    Conda 每新建一个环境都会再复制一份基础库,动辄 2-3 GB;Python 自带 venv 只做符号链接,几十 MB 搞定。推理时两个进程各自驻留显存即可,不会因为「同门」就节省。
  3. 官方仓库就是按「系统 Python + venv」测试的
    ComfyUI 的 requirements.txt 里很多 wheel 只有 cp312 版本,Conda 的 python 3.10/3.11 反而要多编译,速度慢且容易踩坑。
    一句话结论
    「ComfyUI 用系统 Python 建 venv」→ 最省心、最省资源,后期维护也简单。
  • python包
powershell 复制代码
pip install --upgrade pip
pip install torch torchvision torchaudio \
            --extra-index-url https://download.pytorch.org/whl/cu121

2. git仓库

我将其安装在本地的 ~/programs 下面(这个路径自选)

powershell 复制代码
cd ~/programs
git clone https://github.com/comfyanonymous/ComfyUI.git
  • 如果提示找不到这个url
powershell 复制代码
git clone --depth 1 \
  --config http.postBuffer=524288000 \
  https://github.com/comfyanonymous/ComfyUI.git
  • 安装依赖的python包
powershell 复制代码
cd ComfyUI
pip install -r requirements.txt

3. 配置 WebUI 的模型路径

  • 创建文件 extra_model_paths.yaml
powershell 复制代码
cp extra_model_paths.yaml.example extra_model_paths.yaml
  • 修改文件内容如下:

    a111:
    base_path: /home/xxx/programs/stable-diffusion-webui/

    复制代码
    checkpoints: models/Stable-diffusion
    vae: models/VAE
    loras: |
           models/Lora
           models/LyCORIS
    clip_vision: models/clip_vision
    gligen: models/GLIGEN
    controlnet: models/ControlNet
    controlnet_preprocessors: models/ControlNet
    ipadapter: models/IpAdapter
    instantid: models/InstantID
    upscale_models: models/ESRGAN
    embeddings: embeddings
    hypernetworks: models/hypernetworks

注:

base_path 必须是绝对路径,~ 不会展开。

缩进只能空格,YAML 对 Tab 零容忍。

如果想再加自己独立目录,继续往下加同级字段即可,ComfyUI 会合并读取。

4.启动软件

  • 新建启动脚本 0_launch.sh(在 ComfyUI 根目录下),内容如下:
powershell 复制代码
source ~/venv_sd_comfy/bin/activate
exec python main.py "$@"
  • 添加可执行权限
powershell 复制代码
chmod +x 0_launch.sh
  • 启动

    • 普通启动
      ./0_launch.sh
    • 低显存启动
      ./0_launch.sh --lowvram --fp8_e4m3fn-unet --fp8_e5m2-text-enc
  • 进入前端

    在浏览器打开 http://127.0.0.1:8188 即可

5. 插件安装

先退出后台进程(ctrl+c)

位置:ComfyUI/custom_nodes/ 文件夹下

cd 到该位置下进行操作 !!!

5.1 管理插件的插件 ComfyUI-Manager

powershell 复制代码
git clone https://github.com/ltdrdata/ComfyUI-Manager.git

# 先激活你之前建的 venv
source ~/venv_sd_comfy/bin/activate
# 装它自己的依赖
python -m pip install -r ComfyUI-Manager/requirements.txt

重启 ComfyUI 后可以看到:

5.2 安装其他插件

5.2.1 安装举例

  • 在上一个窗口中,选择 Custom Nodes Manager 即可进入插件列表,通过搜索、install 即可导入。
  • 下载完需要重启

6. 关于位置

6.1 模型位置

模型类型 放到(ComfyUI 根目录) 若共用 WebUI 则放到
主模型 ckpt/safetensors models/checkpoints/ models/Stable-diffusion/
LoRA models/loras/ models/Lora/
VAE models/vae/ models/VAE/
ControlNet models/controlnet/ models/ControlNet/
CLIP Vision models/clip_vision/ models/clip_vision/
Textual Inversion models/embeddings/ embeddings/

6.2 工作流保存位置

ComfyUI/user/default/workflows

6.3 生成结果的位置

ComfyUI/output/

7. 简单使用

7.1 文生图为例

  • step1: 在模版中找到第一个文生图工作流
  • step2: 修改相关参数
  • step3: 运行
  • step4: 可以进行 重命名、保存这个工作流 等操作

7.2 图生视频

再试一下图生视频工作流。这里由于显存限制,将 wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors 换成:

wan2.1_t2v_1.3B_fp16.safetensors

  • 结果
    这里仅简单尝试,图片较小 640×640

附录1 - 关于模型下载

相关推荐
q***47436 小时前
Windows 和 Linux 系统下,如何查看 Redis 的版本号?
linux·windows·redis
代码对我眨眼睛6 小时前
Ubuntu 系统 NVIDIA 显卡驱动自动化安装全流程
linux·ubuntu·自动化
xiong2learning6 小时前
Linux虚拟机无法使用u盘的一种可能-- 重新下载open-vm-tools + open-vm-tools-desktop解决
linux
LCG元6 小时前
实战:一次完整的网站故障排查记录(从用户访问到数据库)
linux
xuyanqiangCode6 小时前
Ubuntu二进制安装Apache Doris(2.1版本)
linux·ubuntu·apache
Yue丶越6 小时前
【Python】基础语法入门(四)
linux·开发语言·python
木童6627 小时前
Nginx 深度解析:反向代理与负载均衡、后端Tomcat
linux·运维·nginx
赖small强7 小时前
【Linux 网络基础】网络通信中的组播与广播:基础概念、原理、抓包与应用
linux·网络·broadcast·组播·广播·multicast
陌路207 小时前
Linux是如何收发网络包的?
linux·网络
带鱼吃猫8 小时前
Linux系统:策略模式实现自定义日志功能
linux·c++