Linux-Ubuntu安装Stable Diffusion Forge

发布于:2025-05-12 ⋅ 阅读:(20) ⋅ 点赞:(0)

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


网站公告

今日签到

点亮在社区的每一天
去签到