SD Forge在Win上配置起来相对简单且教程丰富,而在Linux平台的配置则稍有门槛且教程较少。本文提供一个基于Ubuntu24.04发行版(对其他Linux以及SD分支亦有参考价值)的Stable Diffusion ForgeUI安装配置教程,希望有所帮助
本教程以NVIDIA显卡为例介绍安装方法,AMD显卡没尝试过,或许也有用。
先决条件
安装NVIDIA显卡驱动
命令终端运行
nvidia-smi
若显示以下画面,代表已安装显卡驱动,可跳过本步骤
若未安装,在应用栏找到软件和更新—附加驱动,安装专有驱动,重启电脑。若无版本依赖,建议与本教程一致(575版本)
安装CUDA 驱动和 cuDNN
为顺利进行后续步骤,安装的CUDA版本应不低于12.1。若无版本依赖,建议与本教程保持一致(12.8版本)。执行“nvidia-smi”命令可查看驱动支持的最高版本。例如,上图所示的显卡驱动最高可支持CUDA12.9版本。
本文的重点是Forge安装,CUDA安装的相关教程丰富且详细,请自行查阅,这里就不赘述了
安装CUDA后,终端运行以下代码查看是否安装成功
nvcc -V
若终端输出以下字样则安装成功,否则检查一下是否未正确配置环境变量
安装cuDNN后,终端运行以下代码查看是否安装成功
# cuda版本需修改为与实际一致
cat /usr/local/cuda-12.8/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
若终端输出以下字样则安装成功(cannot警告不必理会),否则检查一下cudnn的文件位置是否正确。
克隆项目
选取合适位置打开终端运行以下代码将SD Forge压缩克隆到本地并解压。如果下载速度缓慢,可能需要配置网络
sudo apt update
sudo apt install git
git clone https://github.com/lllyasviel/stable-diffusion-webui-forge.git
配置Python虚拟环境
安装并配置pyenv
为避免污染Ubuntu24自带的Python环境,SD Forge的Python依赖及Pytorch均需在虚拟环境安装。本教程的虚拟环境基于pyenv配置,pyenv的安装与使用可参考像在Windows里面一样丝滑使用Ubuntu24.04里面的“安装vscode并配置python虚拟环境”章节(看前两部分即可,其他部分不用管)
除非比较了解conda(如果这么做,需自行修改后续教程的部分配置方法),否则建议与本教程保持一致——使用pyenv创建虚拟环境
安装Python3.10.2
进入“stable-diffusion-webui-forge”目录,打开终端运行以下代码下载并配置Python3.10.2(SD Forge依赖Python3.10,其他版本可能会有依赖问题(3.10子版本则没有限制)。若无版本依赖,建议同本教程保持一致)
pyenv install 3.10.2
pyenv virtualenv 3.10.2 ForgeEnv
pyenv activate ForgeEnv
成功安装并激活Python3.10.2虚拟环境后在用户名前会显示(ForgeEnv) 字样。勿关闭该终端,后面还会用到
安装依赖
在上一节配置的虚拟环境中运行以下代码安装SD Forge依赖。如果下载缓慢,可参考像在Windows里面一样丝滑使用Ubuntu24.04中“安装vscode并配置python虚拟环境”章节的其他说明(2),手动添加清华镜像源加速下载
pip install --upgrade pip
pip install -r requirements_versions.txt
安装pytorch与xformers
pip install torch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1
pip install xformers==0.0.27
注意,torch, torchvision, torchaudio与xformers有版本依赖。除非清楚其匹配关系,否则不要修改上述代码中的版本号。
启动文件配置(重点)
打开stable-diffusion-webui-forge文件夹,找到“webui-user.sh”文件(不是webui.sh,别搞混了)
用文件编辑器打开webui-user.sh,将全文替换为以下代码并根据实际情况修改后保存关闭(看注释,部分配置必须结合实际情况修改)
#!/bin/bash
#########################################################
# 虚拟环境自动激活 #
#########################################################
# 本部分代码用于运行webui.sh文件时自动激活配置的python虚拟环境
# 本部分代码删除后不影响使用,但每次打开Forge前都必须在控制台手动输入pyenv activate ForgeEnv激活虚拟环境
# 自动激活只适用PYENV配置的虚拟环境,conda用户需根据实际情况修改本部分代码(或直接删除,每次打开采用手动激活)
# 配置虚拟环境路径
PYENV_ROOT="$HOME/.pyenv"
VENV_NAME="ForgeEnv"
# 加载 Shell 配置
source ~/.bashrc
# 显式初始化 Pyenv 和 Pyenv-Virtualenv
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
# 激活虚拟环境
pyenv activate "$VENV_NAME" || { echo "错误:虚拟环境激活失败!"; exit 1; }
#########################################################
# 常规配置 #
#########################################################
# 路径配置
install_dir="/home/$(whoami)" # 使用默认用户目录, 如果不是,需指定
# SD目录名
clone_dir="stable-diffusion-webui-forge" # 若不是这个名字,需根据实际修改
# python3 executable
python_cmd="$HOME/.pyenv/shims/python" # 解释器如果不在这里,需根据实际情况修改
# git executable
# export GIT="git" # git配置可以不管
# python3 venv without trailing slash (defaults to ${install_dir}/${clone_dir}/venv)
venv_dir="$HOME/.pyenv/versions/ForgeEnv" # 虚拟环境如果不是这个,需根据实际情况修改
# script to launch to start the app
export LAUNCH_SCRIPT="launch.py" # 不需修改
# 安装指定版本的深度学习框架, 若需修改, 需保证与xformers版本匹配
export TORCH_COMMAND="pip install torch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1" # 这是一个版本组合, 请勿单独修改某一项的版本
# 依赖项, 一般不需修改,若遇到依赖问题, 或需修改txt文件里面的库版本号
export REQS_FILE="requirements_versions.txt"
# Fixed git repos # git配置可以不管
# export K_DIFFUSION_PACKAGE=""
# export GFPGAN_PACKAGE=""
# Fixed git commits # git配置可以不管
# export STABLE_DIFFUSION_COMMIT_HASH=""
# export CODEFORMER_COMMIT_HASH=""
# export BLIP_COMMIT_HASH=""
# 启用加速
export ACCELERATE="True" # 不需修改
# 内存相关,懒得配置TCMALLOC了,直接关
export NO_TCMALLOC="True"
# 设置过网络环境的需加上
export ALL_PROXY=''
export all_proxy=''
#########################################################
# 启动参数配置(含模型共享) #
#########################################################
MODEL_DIR="/除controlnet外的其他模型位置/models" # 如果不需共享模型,删除本行、下行及COMMANDLINE_ARGS里面从--ckpt-dir(含上一行末尾的\符号)直到倒数第二个引号的内容
CONTROLNET_DIR="controlnet模型位置/extensions" # 注意,controlnet相关模型在插件里
# 如果共享失败,检查源文件位置(尤其是大小写)以及除号和反除号是否设置正确
# ckpt, vae,lora;clip, esrgan,gfpgan;controlnet这三类模型共享参数配置不一样,注意区分
export COMMANDLINE_ARGS="--xformers \
--server-name 127.0.0.1 \
--port 7860 \
--enable-insecure-extension-access \
--ckpt-dir=\"$MODEL_DIR/Stable-diffusion\" \
--clip-models-path=\"$MODEL_DIR/CLIP\" \
--vae-dir=\"$MODEL_DIR/VAE\" \
--esrgan-models-path=\"$MODEL_DIR/ESRGAN\" \
--gfpgan-models-path=\"$MODEL_DIR/GFPGAN\" \
--lora-dir=\"$MODEL_DIR/Lora\" \
--controlnet-dir=\"$CONTROLNET_DIR/sd-webui-controlnet\"" # 配置显存优化, ip地址与端口,插件等启动参数。如果需安装多个sd, 每个sd的ip端口号不能相同
# 为防止路径有空格,路径加了引号转义
###########################################
启动SD Forge
启动前建议先手动下载或共享大模型到指定目录,否则等待时间特别长
文件运行授权
在stable-diffusion-webui-forge文件夹打开终端,执行以下命令添加运行权限(仅初次运行需授权)
chmod +x webui.sh
chmod +x webui-user.sh
激活虚拟环境
若在启动文件正确配置了虚拟环境自动激活,本步骤可跳过,否则每次打开ForgeUI前都需在stable-diffusion-webui-forge文件夹打开终端述运行下述代码以激活虚拟环境
pyenv activate ForgeEnv
运行启动文件
若没有在启动文件配置虚拟环境自动激活,则需在虚拟环境(上一节打开的终端中)运行下述代码以打开Forge
./webui.sh
若已在启动文件正确配置了虚拟环境自动激活,则在stable-diffusion-webui-forge文件夹打开终端述运行上述代码即可
启动后终端会显示“Running on local URL:http://127.0.0.1:7860”字样,按住ctrl后点击“http://127.0.0.1:7860”即可打开SD Forge的UI网页
最后的说明
完成上述所有配置步骤后,以后只需在stable-diffusion-webui-forge文件夹打开终端述执行启动文件即可启动SD ForgeUI
未配置虚拟环境自动激活
pyenv activate ForgeEnv
./webui.sh
已正确配置虚拟环境自动激活
./webui.sh
ok,SD Forge安装配置全部结束,May this guide serve as your gateway to a seamless and empowering journey with SD Forge on Linux, where creativity meets cutting-edge technology
放张图
1girl,violet evergarden,full body,solo,blonde hair,blue eyes,sky,red ribbon,hair between eyes,jewelry,blue jacket,ribbon,outdoors,day,hair ribbon,looking at viewer,jacket,blue sky,brooch,cloud,bangs,blur,white,background intakes,bride,brideDusk,facing the audience,long legs,white silk,
Negative prompt: (worst quality, low quality:1.4),(depth of field, blurry:1.2),(greyscale, monochrome:1.1),3D face,cropped,lowres,text,(nsfw:1.3),(worst quality:2),(low quality:2),(normal quality:2),normal quality,((grayscale)),skin spots,acnes,skin blemishes,age spot,(ugly:1.331),(duplicate:1.331),(morbid:1.21),(mutilated:1.21),(tranny:1.331),mutated hands,(poorly drawn hands:1.5),blurry,(bad anatomy:1.21),(bad proportions:1.331),extra limbs,(disfigured:1.331),(missing arms:1.331),(extra legs:1.331),(fused fingers:1.61051),(too many fingers:1.61051),(unclear eyes:1.331),lowers,bad hands,missing fingers,extra digit,bad hands,missing fingers,(((extra arms and legs))),
Steps: 28, Sampler: DPM++ 2M, Schedule type: Karras, CFG scale: 7, Seed: 3605002200, Size: 1024x1024, Model hash: 30953ab0de, Model: 动漫MeinaMix_MeinaV8, Denoising strength: 0.42, Clip skip: 2, ADetailer model: face_yolov8n.pt, ADetailer confidence: 0.3, ADetailer dilate erode: 4, ADetailer mask blur: 4, ADetailer denoising strength: 0.4, ADetailer inpaint only masked: True, ADetailer inpaint padding: 32, ADetailer version: 24.9.0, Hires Module 1: Use same choices, Hires CFG Scale: 7, Hires upscale: 2, Hires steps: 5, Hires upscaler: R-ESRGAN 4x+ Anime6B, Version: f2.0.1v1.10.1-previous-662-g0ced1d0c, Module 1: vae-ft-mse-840000-ema-pruned