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 - 关于模型下载

相关推荐
似水এ᭄往昔4 小时前
【Linux】——基础指令(下)
linux·服务器
大锦终4 小时前
【Linux】udp网络程序
linux·运维·服务器·网络
arvin_xiaoting5 小时前
#zsh# #Ubuntu# 一键安装zsh、oh-my-zsh、常用插件
linux·ubuntu·elasticsearch
脏脏a5 小时前
【Linux】Linux工具漫谈:yum 与 vim,高效操作的 “左膀右臂”
linux·运维·服务器
APItesterCris5 小时前
构建弹性数据管道:利用淘宝商品 API 进行流式数据采集与处理
linux·数据库·windows
艾莉丝努力练剑5 小时前
【C++STL :stack && queue (一) 】STL:stack与queue全解析|深入使用(附高频算法题详解)
linux·开发语言·数据结构·c++·算法
kyle~6 小时前
计算机系统---CPU的进程与线程处理
linux·服务器·c语言·c++·操作系统·计算机系统
NiKo_W6 小时前
Linux 进程通信——基于责任链模式的消息队列
linux·服务器·消息队列·责任链模式·进程通信
云飞云共享云桌面6 小时前
广东某模具制造工厂用一台云服务器供8个研发设计同时用
linux·运维·服务器·网络·自动化·制造