Linux-Ubuntu安裝Stable Diffusion Forge

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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/905486.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/905486.shtml
英文地址,請注明出處:http://en.pswp.cn/news/905486.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

量子計算實用化突破:從云端平臺到國際競合,開啟算力革命新紀元

在硅谷某生物醫藥實驗室,研究員艾米麗正盯著量子計算模擬界面露出微笑 —— 搭載中電信 "天衍" 量子計算云平臺的 880 比特超導量子處理器,用 17 分鐘完成了傳統超算需 3 個月才能跑完的新型抗生素分子鍵合模擬。這個場景標志著量子計算正從 &…

計算機操作系統(七)詳細講解進程的組成與特性,狀態與轉換

計算機操作系統(七)進程的組成與特性,狀態與轉換 前言一、進程的組成1. 什么是“進程”?2. 進程的三個核心組成部分2.1 PCB(進程控制塊)—— 進程的“身份證戶口本”2.2 程序段—— 進程的“任務清單”2.3 …

MapReduce基本介紹

核心思想 分而治之:將大規模的數據處理任務分解成多個可以并行處理的子任務,然后將這些子任務分配到不同的計算節點上進行處理,最后將各個子任務的處理結果合并起來,得到最終的結果。 工作流程 Map 階段: 輸入數據被…

Linux操作系統實戰:中斷源碼的性能分析(轉)

Linux中斷是指在Linux操作系統中,當硬件設備或軟件觸發某個事件時,CPU會中斷正在執行的任務,并立即處理這個事件。它是實現實時響應和處理外部事件的重要機制,Linux中斷可以分為兩種類型:硬件中斷和軟件中斷&#xff0…

AI Agent開發第66課-徹底消除RAG知識庫幻覺-帶推理的RAG

開篇 在第64課《AI Agent開發第64課-DIFY和企業現有系統結合實現高可配置的智能零售AI Agent(上)》中我們提到了提示詞Rewrite,同時還講到了2024年年末開始出現的新的理論,并把RAG系統推入到了3.0模式,業界出現了“3R”理念的RAG引擎,基于“3R”理念可以徹底消除RAG的幻覺…

Clion內置宏$PROJECT_DIR$等

CLion 內置宏 文章目錄 CLion 內置宏通用路徑相關宏路徑相對化宏 官方文檔地址: https://www.jetbrains.com/help/clion/built-in-macros.html 通用路徑相關宏 宏名稱含義說明示例$WORKSPACE_DIR$當前項目所屬的工作區根目錄路徑。/home/user/workspace$PROJECT_D…

機器學習基礎課程-5-課程實驗

5.1 實驗介紹 實驗背景 在這個項目中,您將使用1994年美國人口普查收集的數據,選用幾個監督學習算法以準確地建模被調查者的收入。然后,您將根據初步結果從中選擇出最佳的候選算法,并進一步優化該算法以最好地建模這些數據。你的目…

Android RecyclerView自帶的OnFlingListener,Kotlin

Android RecyclerView自帶的OnFlingListener,Kotlin Android啟動應用時屏蔽RecyclerView滑動,延時后再允許滑動,Kotlin-CSDN博客 使用了GestureDetectorRecyclerView的setOnTouchListener檢測用戶的快滑fling事件。發現RecyclerView也自帶了監…

第3.4節 調用鏈路分析服務開發

3.4.1 什么是Code Call Graph(CCG) Code Call Graph(CCG)即業務代碼中的調用關系圖,是通過靜態分析手段分析并構建出的一種描述代碼間關系的圖。根據精度不同,一般分為類級別、方法級別、控制流級別&#x…

【Liblib】基于LiblibAI自定義模型,總結一下Python開發步驟

一、前言 Liblib AI(哩布哩布 AI)是一個集成了先進人工智能技術和用戶友好設計的 AI 圖像創作繪畫平臺和模型分享社區。 強大的圖像生成能力 :以 Stable Diffusion 技術為核心,提供文生圖、圖生圖、圖像后期處理等功能&#xff…

編程日志5.5

樹的結構代碼 #include<iostream> using namespace std; //由于樹的每個結點可能有一些孩子結點,這些孩子結點的數量不確定,所以可以用一個鏈表來把所有的孩子結點給串起來 //鏈表結點定義 //這段代碼定義了一個結構體ListNode,用于表示鏈表中的一個結點。這個結構…

【消息隊列】RabbitMQ基本認識

目錄 一、基本概念 1. 生產者&#xff08;Producer&#xff09; 2. 消費者&#xff08;Consumer&#xff09; 3. 隊列&#xff08;Queue&#xff09; 4. 交換器&#xff08;Exchange&#xff09; 5. 綁定&#xff08;Binding&#xff09; 6. 路由鍵&#xff08;Routing …

uniapp -- 驗證碼倒計時按鈕組件

jia-countdown-verify 驗證碼倒計時按鈕組件 一個用于發送短信驗證碼的倒計時按鈕組件&#xff0c;支持自定義樣式、倒計時時間和文本內容。適用于各種需要驗證碼功能的表單場景。 代碼已經 發布到插件市場 可以自行下載 下載地址 特性 支持自定義按鈕樣式&#xff08;顏色、…

知識圖譜重構電商搜索:下一代AI搜索引擎的底層邏輯

1. 搜索引擎的進化論 從雅虎目錄式搜索到Google的PageRank算法&#xff0c;搜索引擎經歷了三次技術躍遷。而AI搜索引擎正在掀起第四次革命&#xff1a;在電商場景中&#xff0c;傳統的「關鍵詞匹配」已無法滿足個性化購物需求&#xff0c;MOE搜索等新一代架構開始融合知識圖譜…

深度學習 自然語言處理(RNN) day_02

1. 感知機與神經網絡 1.1 感知機 生物神經元&#xff1a; 1.1.1 感知機的概念 感知機&#xff08;Perceptron&#xff09;&#xff0c;又稱神經元&#xff08;Neuron&#xff0c;對生物神經元進行了模仿&#xff09;是神 經網絡&#xff08;深度學習&#xff09;的起源算法&am…

PYTHON訓練營DAY25

BUG與報錯 一、try else try:# 可能會引發異常的代碼 except ExceptionType: # 最好指定具體的異常類型&#xff0c;例如 ZeroDivisionError, FileNotFoundError# 當 try 塊中發生 ExceptionType 類型的異常時執行的代碼 except: # 不推薦&#xff1a;捕獲所有類型的異常&…

LU分解求解線性方程組

L U LU LU分解 前言 L U LU LU分解 由以下定理得以保證&#xff1a; 設 A \boldsymbol{A} A為 n n n階方陣&#xff0c;若其各界階順序主子式都不為 0 0 0&#xff0c;那么它可以 被唯一的上下三角矩陣積分解。 步驟 確定各矩陣形式 A L U \mathbf{A}\mathbf{LU} ALU ( a 1…

Linux——數據庫備份與恢復

一&#xff0c;Mysql數據庫備份概述 1&#xff0c;數據庫備份的重要性 數據災難恢復&#xff1a;數據庫可能會因為各種原因出現故障&#xff0c;如硬件故障、軟件錯誤、誤操作、病毒攻擊、自然災害等。這些情況都可能導致數據丟失或損壞。如果有定期的備份&#xff0c;就可以…

SVM在醫療設備故障維修服務決策中的應用:策略、技術與實踐

SVM在醫療設備故障維修服務決策中的應用&#xff1a;策略、技術與實踐 醫療設備的高可靠性、安全性及嚴格合規性要求&#xff0c;使其故障維修決策具有顯著的特殊性。支持向量機&#xff08;SVM&#xff09;憑借小樣本學習、非線性建模及高精度分類能力&#xff0c;可有效解決…

WEB安全--Java安全--CC1利用鏈

一、梳理基本邏輯 WEB后端JVM通過readObject()的反序列化方式接收用戶輸入的數據 用戶編寫惡意代碼并將其序列化為原始數據流 WEB后端JVM接收到序列化后惡意的原始數據并進行反序列化 當調用&#xff1a; ObjectInputStream.readObject() JVM 內部邏輯&#xff1a; → 反…