【AIGC】如何在Windows/Linux上部署stable diffusion

news/2024/5/14 22:29:19

文章目录

  • 整体安装步骤
  • windows10安装stable diffusion
    • 环境要求
    • 安装步骤
    • 注意事项
    • 参考博客
    • 其他事项
      • 安装显卡驱动
      • 安装cuda
      • 卸载cuda
      • 安装对应版本pytorch
      • 安装git上的python包
      • Q&A
  • linux安装stable diffusion
    • 安装anaconda
    • 安装cuda
    • git 加速
    • 配置虚拟环境
    • 挂载oss(optional)
    • 端口开放
    • 启动服务
    • controlnet
    • 显卡使用监控
    • 插件安装
    • 参考文章
  • 脚本安装stable diffusion
  • stable diffusion教程
    • models
    • tutorial
    • prompt reference

整体安装步骤

  1. GPU环境安装:NVIDIA驱动和cuda(注意版本,建议安装cuda11.7,方便后续使用xformer)
  2. 配置git环境
  3. git拉取stable diffusion项目
  4. 配置python虚拟环境
  5. 安装GPU版torch
  6. 安装虚拟环境依赖包:项目本身的requirement及子项目依赖
  7. 下载模型文件
  8. 启动stable diffusion

windows10安装stable diffusion

环境要求

  1. 独立显卡:最低配置4GB显存,基本配置6GB显存,推荐配置8GB显存以上。(显存越大越好。显存越大,可以生成的图片分辨率就越大。)
  2. 内存:内存16G或者以上。
  3. 磁盘:至少10GB。

安装步骤

  1. 安装Python3.10.6
  2. 安装git
  3. 下载sd项目:AUTOMATIC1111
  4. 下载模型文件(例如:stable-diffusion-v1-5)
    • Stable Diffusion的官方模型V1.5版本一共提供了两个模型,一个3.97GB,另一个是7.17GB。
    • 绘画版|3.97GB模型:推荐正常绘图的人使用,无需训练自己的模型。
    • 训练版|7.17GB模型:如果您想以该模型为基础,训练自己的模型。那么下载该模型可以得到更好的效果。
  5. 运行webui-user.bat脚本

注意事项

  1. cuda版本与显卡驱动版本适配;
  2. pytorch的gpu版本与cuda版本对应;
    • 脚本中默认会装,就是比较慢,耐心等待就行;
    • 自己下载对应版本wheel文件安装(搜索:2.0.1+cu118):https://download.pytorch.org/whl/torch/
    • 可能会失败,见issue:https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/1742
  3. 提前下载GitHub项目:GFPGAN、CLIP、open_clip,之后需要安装到Python虚拟环境中;
    • python setup.py install 可能失败。可以提前cd到对应项目中,使用pip install -r requirements.txt安装依赖包。
  4. 提前下载GitHub项目:stable-diffusion-stability-ai、taming-transformers、k-diffusion、CodeFormer、BLIP,之后需要cp到项目的repositories路径中;

参考博客

  1. https://stable-diffusion-art.com/install-windows/
  2. https://aituts.com/stable-diffusion-on-windows-automatic1111/

其他事项

安装显卡驱动

https://www.volcengine.com/docs/6419/69858

安装cuda

cuda版本与显卡驱动对照表
https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html

要安装的显卡驱动是,所以对应的cuda版本应该是 CUDA 12.0.x 、12.1.x等

安装成功后可以在cmd使用nvcc -V查看cuda版本,使用nsmi

好像需要安装cuda11.8版本?
下载链接:https://developer.nvidia.com/cuda-12-1-0-download-archive?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exe_local

检查环境

python -m torch.utils.collect_env

卸载cuda

cuda 和 cudnn 库的卸载与安装:https://zhuanlan.zhihu.com/p/102966512

安装对应版本pytorch

在以下网址搜索:2.0.1+cu118
https://download.pytorch.org/whl/torch/
其中cu118对应刚刚安装的cuda11.8版本

安装git上的python包

cd path to CLIP
# python setup.py install --user
python setup.py install

Q&A

  1. stable diffusion报错RuntimeError: “LayerNormKernelImpl” not implem

解决方法:运行命令修改为./webui.sh --precision full --no-half

在webui-user.bat中添加命令行参数:
set COMMANDLINE_ARGS=–skip-torch-cuda-test --precision full --no-half

  1. AssertionError: extension access disabled because of command line flags

What’s happening is that, since you’re not running on localhost and everyone in the whole wide world can in theory access your Web UI, you need to explicitly enable extensions.

解决方法:adding the --enable-insecure-extension-access flag

linux安装stable diffusion

简单版可查看之前的博客:【AIGC】阿里云ecs部署stable diffusion

安装anaconda

安装Python、wget、git
sudo apt install python3 python3-pip python3-virtualenv wget git

安装前置依赖
sudo apt-get install libgl1-mesa-glx libegl1-mesa libxrandr2 libxrandr2 libxss1 libxcursor1 libxcomposite1 libasound2 libxi6 libxtst6

下载anaconda
wget https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-x86_64.sh

创建Python 3.10.6的虚拟环境
conda create --name sdwebui python=3.10.6

安装cuda

os=ubuntu2004
arch=x86_64
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-keyring_1.0-1_all.deb
sudo dpkg -i cuda-keyring_1.0-1_all.deb
sudo apt update
sudo apt install cuda-11-8

git 加速

开启加速
export http_proxy=http://172.181.217.43:12798 && export https_proxy=http://172.181.217.43:12798
关闭加速
unset http_proxy && unset https_proxy

【todo:注意关闭配置】https://blog.csdn.net/zhiboqingyun/article/details/123912058

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

配置虚拟环境

启动虚拟环境
conda activate sdwebui

如果想要于bash script自动以conda启动虚拟环境,可以把这二行加入至webui-user.sh顶端:
eval “$(conda shell.bash hook)”
conda activate sdwebui

下载模型
wget -nc -P ~/stable-diffusion-webui/models/Stable-diffusion https://huggingface.co/andite/anything-v4.0/resolve/main/anything-v4.5-pruned.safetensors -O anything-v4.5-pruned.safetensors

首次启动
./webui.sh

./webui.sh --xformers --skip-install --enable-insecure-extension-access

挂载oss(optional)

https://help.aliyun.com/document_detail/153892.html?spm=a2c4g.153893.0.0.1d877f1fHkYVYt

端口开放

https://www.bilibili.com/read/cv23060248

启动服务时需要添加 --listen参数
./webui.sh --listen

sed -i ‘s/can_run_as_root=0/can_run_as_root=1/g’ webui.sh &&
./webui.sh --no-download-sd-model --xformers

启动后的一些权限问题

sudo chown -R root stable-diffusion-webui
sudo chgrp -R root stable-diffusion-webui

服务地址:http://47.101.143.149:7860/

启动服务

sudo ./webui.sh --listen --skip-install --enable-insecure-extension-access

controlnet

https://github.com/Mikubill/sd-webui-controlnet/issues/1399

Package cairo was not found in the pkg-config search path.
Perhaps you should add the directory containing `cairo.pc’
to the PKG_CONFIG_PATH environment variable
No package ‘cairo’ found
ERROR: Could not build wheels for pycairo, which is required to install pyproject.toml-based projects

sudo apt install libcairo2-dev

I fixed itby this way:

  1. run command below on linux
    sudo apt install libcairo2-dev

  2. install svglib package manually or relaunch webui
    pip install svglib

显卡使用监控

watch -n 1 nvidia-smi

插件安装

在这里插入图片描述

抠图插件安装:https://zhuanlan.zhihu.com/p/632888046

参考文章

查看Linux服务器配置|是否有GPU以及GPU信息:https://blog.csdn.net/qq_41725313/article/details/123784429

安装至Linux:https://ivonblog.com/posts/stable-diffusion-webui-manuals/zh-cn/installation/linux-installation/

安装驱动:https://ivonblog.com/posts/ubuntu-install-nvidia-drivers/

安装驱动(阿里云官方文档):https://help.aliyun.com/document_detail/163824.htm?spm=a2c4g.298150.0.0.1e0b5355t3jXPh#concept-ecy-qrz-wgb

脚本安装stable diffusion

# git配置
git config --global http.postBuffer 524288000
git config --global https.postBuffer 524288000
git config --global core.compression -1
git config --global http.sslVerify "false"# 拉取stable diffusion
cd ~
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
cd ~/stable-diffusion-webui
git checkout 89f9faa63388756314e8a1d96cf86bf5e0663045# 配置python环境
conda create -y --name sdwebui python=3.10.6
source activate sdwebui
python -m venv venv
source venv/bin/activate            # conda activate sdwebui 可能会失败
# source venv/Scripts/activate      # for win10 git bash# 安装GPU版torch
pip install torch==2.0.0+cu117 torchvision==0.15.0+cu117 --extra-index-url https://download.pytorch.org/whl/cu117
pip install xformers==0.0.17# python github环境包
mkdir tmp_envs
cd tmp_envs
git config --global http.sslVerify "false"      # 加上,以防断连
git clone https://github.com/TencentARC/GFPGAN.git
cd GFPGAN && git checkout 8d2447a2d918f8eba5a4a01463fd48e45126a379 
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
python setup.py install
cd ..git config --global http.sslVerify "false"
git clone https://github.com/openai/CLIP.git
cd CLIP && git checkout d50d76daa670286dd6cacf3bcd80b5e4823fc8e1
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
python setup.py install
cd ..git config --global http.sslVerify "false"
git clone https://github.com/mlfoundations/open_clip.git
cd open_clip && git checkout bb6e834e9c70d9c27d0dc3ecedeebeaeb1ffad6b
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
python setup.py install
cd ..# 下载模型
wget -nc -P ~/stable-diffusion-webui/models/Stable-diffusion https://huggingface.co/andite/anything-v4.0/resolve/main/anything-v4.5-pruned.safetensors -O anything-v4.5-pruned.safetensors./webui.sh --xformers --skip-install# 面部修复功能报错
# 下载模型文件:
cd ~/stable-diffusion-webui
wget https://github.com/sczhou/CodeFormer/releases/download/v0.1.0/codeformer.pth
mv codeformer.pth ~/stable-diffusion-webui/models/Codeformer/codeformer-v0.1.0.pt
# 下载权重文件
wget https://github.com/xinntao/facexlib/releases/download/v0.1.0/detection_Resnet50_Final.pth
mv detection_Resnet50_Final.pth ~/stable-diffusion-webui/repositories/CodeFormer/weights/facelib/detection_Resnet50_Final.pth
wget https://github.com/sczhou/CodeFormer/releases/download/v0.1.0/parsing_parsenet.pth
mv parsing_parsenet.pth ~/stable-diffusion-webui/repositories/CodeFormer/weights/facelib/parsing_parsenet.pth

stable diffusion教程

models

stable-diffusion-v1-5: https://huggingface.co/runwayml/stable-diffusion-v1-5/tree/main

The 10 Best Stable Diffusion Models by Popularity (SD Models Explained):https://aituts.com/models/

AI 绘画与作画 stable diffusion webui 常见模型汇总及简介:https://www.tjsky.net/tutorial/583

C站下载模型:https://civitai.com/

hugging face下载:https://huggingface.co/models

ControlNet下载: https://huggingface.co/lllyasviel/ControlNet-v1-1/tree/main

lora模型下载:https://openai.wiki/lora-model-part-1.html

tutorial

AIGC入门教程:Stable Diffusion,万字保姆篇:https://www.woshipm.com/ai/5813208.html

超详细!外婆都能看懂的Stable Diffusion入门教程:https://www.uisdc.com/stable-diffusion-3

How to use Stable Diffusion v2.1 (AUTOMATIC1111 Guide):https://aituts.com/install-stable-diffusion-v2-1/

stable-diffusion-webui使用手册:https://ivonblog.com/posts/stable-diffusion-webui-manuals/zh-cn/installation/windows-installation/

Stable Diffusion 速览: https://www.zhihu.com/question/550101073/answer/2931261853

AI绘画指南 stable diffusion webui (SD webui)如何设置与使用:https://www.tjsky.net/tutorial/488

How to use models(LoRA):https://github.com/civitai/civitai/wiki/How-to-use-models#lora

How to generate realistic people in Stable Diffusion:https://stable-diffusion-art.com/realistic-people/

How to make a video with Stable Diffusion (Deforum):https://stable-diffusion-art.com/deforum/

AI绘画教程:从入门到放弃(xiaobai):https://zhuanlan.zhihu.com/p/607892849

LoRA模型的训练脚本:https://github.com/kohya-ss/sd-scripts

prompt reference

风格提示词:https://lexica.art/

image on playgroundai: https://playgroundai.com/c/landscapes


http://www.mrgr.cn/p/14016022

相关文章

P1484 种树 题解

P1484 种树有 \(n\) 个坑。第 \(i\) 个坑种树的价值是 \(c_i\),相邻坑不能同时种。可以种 \(k\) 颗树,求最大价值。模拟费用流,建图类似这样: 中间两层结点之间有 \(7\) 条边,表示 \(n=7\) 的情况。相邻两条边,例如 \(1,2\) 总流入量为 \(1\),\(2,3\) 总流出量为 \(1\),…

新穗青少年开展“小小公民科学家”科考活动探索生物多样性

为帮助“新穗”青少年了解本土文化,提升个人知识面和动手能力,贯彻落实《未成年人保护法》《家庭教育促进法》《广东省生态环境教育条例》等有关文件精神,3月24日,天河区绿日同学公益服务促进会联合华南农业大学农潮工作室、广州城…

Sql Server设置用户只能查看并访问特定数据库

1.新建登录用户以管理员身份登陆数据库(权限最高的身份如sa),点击安全性->登录名,右键新建登录名,输入登录名和密码,取消强制实施密码策略。 2.将服务器角色设置为public 3.将public服务器角色的属性->取消查看所有数据库的权限点击安全性->服务器角色->publ…

华为流量整形配置

组网需求 如图1所示,企业网内部LAN侧的语音、视频和数据业务通过Switch连接到RouterA的Eth2/0/0上,并通过RouterA的GE3/0/0连接到WAN侧网络。 不同业务的报文在LAN侧使用802.1p优先级进行标识,在RouterA上根据报文的802.1p优先级入队列&…

electron 开发

教程:https://www.electronjs.org/zh/docs/latest/tutorial/quick-start 系统:Windows 10 工具: PowerShell 文件目录:index.html main.js package.json 和 preload.js 是手动添加的,其余是编译生成的index.html<!DOCTYPE html> <html><head><meta c…

2024最新版克魔助手抓包教程(9) - 克魔助手 IOS 数据抓包

引言 在移动应用程序的开发中&#xff0c;了解应用程序的网络通信是至关重要的。数据抓包是一种很好的方法&#xff0c;可以让我们分析应用程序的网络请求和响应&#xff0c;了解应用程序的网络操作情况。克魔助手是一款非常强大的抓包工具&#xff0c;可以帮助我们在 Android …

vue3+ts白屏问题解决

文章目录 打开白屏解决方法可能出现问题使用base导致的使用baseUrl导致的 注意点vue3ts白屏问题知识分享 打开白屏 解决方法 在vue.config.js页面 添加publicPath:./, const { defineConfig } require(vue/cli-service)module.exports defineConfig({ transpileDependenci…

客快物流大数据项目(八十一): Kudu原理 有用 看1

​Kudu原理 一、表与schema Kudu设计是面向结构化存储的,因此Kudu的表需要用户在建表时定义它的Schema信息,这些Schema信息包含:列定义(含类型) Primary Key定义(用户指定的若干个列的有序组合)数据的唯一性,依赖于用户所提供的Primary Key中的Column组合的值的唯一性。…

Docker进阶:Docker Swarm(集群搭建) —实现容器编排的利器

Docker进阶&#xff1a;Docker Swarm&#xff08;集群搭建&#xff09; —实现容器编排的利器 1、什么是Docker Swarm&#xff1f;2、Docker Swarm 与 Docker Compose的区别3、创建一个Swarm集群&#xff08;1-Manager&#xff0c;2-Worker&#xff09;1、资源准备2、初始化Swa…

ICLR 2024 | FeatUp: A Model-Agnostic Framework for Features at Any Resolution

论文&#xff1a;https://arxiv.org/abs/2403.10516代码&#xff1a;https://github.com/mhamilton723/FeatUp 背景动机 深层特征是计算机视觉研究的基石&#xff0c;捕获图像语义并使社区即使在零或少样本情况下也能解决下游任务。然而&#xff0c;这些特征通常缺乏空间分辨率…

3.2324物理强基小记

物理强基课有人听强基课是听提高,有人听强基课是听水题,有人听强基课是听新课,怎么回事呢?弹簧 类SHMSHM 中,都可以规约成 \(E_p=\dfrac{1}{2}kx^2,E_k=\dfrac{1}{2}mv^2\)例1\(Q\) 固定,\(q\) 穿在绝缘光滑杆,总长 \(l\),一个小移动 \(x\),\(x<<l\)Trick:\((1…

URL编码:原理、应用与安全性

在网络世界中,URL(统一资源定位符)是我们访问网页、发送请求的重要方式。然而,URL 中包含的特殊字符、不安全字符以及保留字符可能会导致传输错误或安全风险。为了解决这些问题,URL 编码应运而生。本文将从概念介绍、编码规则、编码与解码、常见应用场景、历史演变、安全性…

KingbaseES V8R6集群运维案例之---级联备库upstream节点故障

KingbaseES V8R6集群运维案例之---级联备库upstream节点故障案例说明: 在KingbaseES V8R6集群,构建级联备库后,在其upstream的节点故障后,级联备库如何处理? 适用版本:KingbaseES V8R6 集群架构:案例一: 一、配置集群的recovery参数(all nodes) Tips: 关闭备库的aut…

让IIS支持.NET Web Api PUT和DELETE请求

前言 有很长一段时间没有使用过IIS来托管应用了&#xff0c;今天用IIS来托管一个比较老的.NET Fx4.6的项目。发布到线上后居然一直调用不同本地却一直是正常的&#xff0c;关键是POST和GET请求都是正常的&#xff0c;只有PUT和DELETE请求是有问题的。经过一番思考忽然想起来了I…

KingbaseES V8R6运维案例之---归档日志批量解析

案例说明: KingbaseES V8R6数据库的wal日志归档如果通过sys_rman工具执行,默认日志将归档在备份目录下,归档日志被压缩及日志文件名包含随机字符串,在执行sys_waldump时,必须解压缩和改名后才能被识别。 适用版本: KingbaseES V8R6 一、数据库归档及备份配置 1、归档配置…

KingbaseES V8R3集群运维案例之---ssh连接故障failover切换失败分析

案例说明: KingbaseES V8R3集群,主库data挂在目录只读了,failover切换失败。主库failover日志,如下图所示:适用版本:KingbaseES V8R3 集群架构:node 209 原主库node 210 原备库一、分析过程 1、查看主库recovery.log及sys_log,分析主库数据库服务down原因和时间点。 …

wordpress 折腾记

https://www.google.com/url?sa=i&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FWordPress.com&psig=AOvVaw3Fyww5cObxxZpxCiT0VM2-&ust=1711794593681000&source=images&cd=vfe&opi=89978449&ved=0CBIQjRxqFwoTCKCU9vmhmYUDFQAAAAAdAAAAABAE今天…

计算机网络链路层

数据链路 链路是从一个节点到相邻节点之间的物理线路&#xff08;有线或无线&#xff09; 数据链路是指把实现协议的软件和硬件加到对应链路上。帧是点对点信道的数据链路层的协议数据单元。 点对点信道 通信的主要步骤&#xff1a; 节点a的数据链路层将网络层交下来的包添…

说说HTTP 常见的状态码有哪些,适用场景?

一、是什么 HTTP状态码(英语:HTTP Status Code),用以表示网页服务器超文本传输协议响应状态的3位数字代码 它由 RFC 2616规范定义的,并得到 RFC 2518、RFC 2817、RFC 2295、RFC 2774与 RFC 4918等规范扩展 简单来讲,http状态码的作用是服务器告诉客户端当前请求响应的状态…