EN
/news/show.php/video/43492636.html

在Linux上部署Stable Diffusion WebUI和Lora训练,有您的独家图片生成模型

2025-06-24 12:24:54 来源: 新华社
字号:默认 超大 | 打印 |

0 写在前面。

Stable Diffusion 是目前最热门的图像生成模型之一,目前已广泛应用于艺术创作、游戏开发、设计模拟等领域c;创作者广泛关注它的开源生态和易于使用,相比 Midjourney ,最大的优点是完全免费,并且拥有巨大的社区资源。

如果需要本地部署 Stable Diffusion,首选 Stable Diffusion Webui。但本地部署。
对设备硬件的要求仍然较高,通常至少需要 4G 显存,有关如何在 Windows 使用,社区有一个非常好的一键启动脚本。

如果需要稳定的服务,建议将其部署到云服务器上
本文主要记录如何在云服务器上 Linux 上部署 Stable Diffusion Webui,踩上所有坑后,希望对有类似需求的朋友有所帮助。

1 Stable Diffusion。

1.1 什么是 Stable Diffusion。

Stable Diffusion 生成模型,所谓生成模型,就是能生成与训练集分布非常相似的输出结果,主流生成模型包括以下类型:

Stable Diffusion 是 Diffusion Model 改进版,完整的Stable Diffusion网络结构应包括三部分:

  • #xff1自动编码器a;
    • 将图像从像素空间(Pixel Space)压缩到潜在空间(Latent Space)。
    • 将潜在表示转换为最终图像
  • 条件生成器:
    • 在去噪过程中产生所依赖的条件(Conditioning),条件包括文字和图像󿀌对文字,最常见的是CLIP text encoder ,编码文本信息,控制生成相应文本描述的图像。
  • 噪声估计模型UNet:
    • 扩散潜在空间的图片(Diffusion Process):添加噪音。
    • 编码用户输入 prompt。
    • #xfff0预测噪声c;然后依据「去噪条件」去噪,生成图像的潜在表示。

1.2 什么是 LoRA。

LoRA,即Low-Rank Adaptation,是一种轻量级大模型微调方法,GPT的文本生成模型 和 Stablele图像生成模型-Diffusion,LoRA都可以使用 轻量级微调。通过在模型的特定部分引入低秩结构进行微调,从而减少了对计算资源的需求。Lora训练可以在保持模型原有性能的同时,个性化调整模型#xff0c;让它适应特定的应用场景。

LoRA的想法很简单,在原始模型旁边增加一个旁路,做一个降维再升维的操作。训练时固定原模型参数,只训练降维矩阵A和升维矩阵B。模型的输入输出维度不变,BA与原始模型的参数叠加在输出过程中

2 Stable Diffusion WebUI。

Stable Diffusion WebUI 为 Stable Diffusion 模型定制了友好的网页界面,基于 Gradio 实现,它使用户能够轻松访问和使用 Stable Diffusion 图像生成能力。相关的 Windows 如何使用󿀌建议直接使用 B 站 @秋叶aaki 免费启动器和安装包
这里主要介绍一下 Linux 如何安装和部署

2.1 WebUI 下载和安装

建议直接从webui源码安装,打开终端�从 github 上下载:

git clone https://github.com/AUTOMATIC111stable-diffusion-webui.git。

一键启动脚本,默认配置项目环境󿀌安装项目依赖包:

./webui.sh。

然而,通常会有各种各样的问题,主要原因是国内网络问题,最常见的问题是:

  1. 依赖库安装失败主要是因为访问 github 失败,在。

launch_utils.py。 中找到。prepare_environment()。函数,涉及其中 github 仓库依赖,全部添加。https://ghproxy.com/。 镜像＀。c;如下图所示,#xff1a;下载所依赖的模型失败。

  1. 主要是因为访问 HuggingFace 网站失败󿀌Stable Diffusion 许多依赖于模型权重文件托管的模型 HuggingFace ࿰在网站上c;默认会自动服从 HuggingFace 在网站上下载到本地,因此,网络访问失败导致模型加载不成功,建议使用国内镜像网站:

https://hf-mirror.com。,只需在终端中临时添加环境变量,重新启动。webui.sh。只需:export HF_ENDPOINT=https://hf-mirror.com # 引入镜像地址󿀌否则模型下载不成功./webui.sh。

以下提示出现在终端上c;说明启动成功󿀌当您打开本地浏览器时。

http://127.0.0.1:7860,即可看到 WebUI 界面。如果您部署在云中,如果有公网 IP,需要将。127.0.0.1.


修改为公网 IP 地址,如果部署在内网或内网, Linux 虚拟机上󿀌本地浏览器访问࿰可以通过端口映射实现c;如何隐射端口,可以查看作者之前的分享情况。 Windows 上实现和 Linux 子系统的端口映射。打开浏览器 WebUI 界面成功后󿀌此时没有加载任何模型权重,在这里,我们首先需要找出常见的模型类型。2.2 介绍模型类型。

Stable Diffusion 中使用的模型类型,可粗略分为:大模型(底座模型�底模) 和 用于微调的小模型

2.2.1 大模型(底座模型�底模)

大模型特指标准 latent-diffusion 模型,拥有完整的 TextEncoder、U-Net 和 VAE。官方提供的大模型包括 sd1.5 sd2 等等c;社区提供的大模型都是在此基础上微调获得的。值得一提的是,如果发现输出图片发灰#xff0c;通常是因为这里 VAE 未成功使用󿀌它是由一些合并模型引起的 VAE 不能使用,需要手动添加 VAE 使用

模型格式,也就是说,后缀名󿀌你会看到很多,其中 pt pth pytorch保存的ckpt模型格式,safetensors 没有安全风险的文件格式,但是权重内容和前面完全一样。

大模型的存储路径在:

models/stable-diffusion。

,一般大小在 2G-7G 大约。目前常用的大型模型有:官方模型󿄚sd1.5 sd2 sdxl等。二维模型:anything等。

  • 真实系模型:LOFI等。
  • 2.5D 模型:国风3等。
  • 2.2.2 小模型。用于微调的小模型通常分为以下几种:
  • Lora:放在models/models/models/models/Lora。大小一般在 100MB 等级。点击模型后,将类似的标签࿰添加到提示词列表中c; lora:模型名称:权重 ,lora模型也可以直接用这个tag调用。

Embedding (Textual inversion) :放在models/models/models/models/embedding。常见格式为 pt、png图片,webp图片。大小一般在 KB 等级。生成图片时需要带上图片。 文件名 作为 tag。

VAE: 放在models/models/models/models/VAE。

  • Hypernetwork:一般没人用。
  • 2.3 获取模型权重的方法有很多
  • 获取模型权重的方法,推荐的有以下几种:
  • 2.3.1 下载开源社区

目前托管。 SD 开源社区有很多模型,这里主要推荐两个:

一个是国外:

https://civitai.com

,在梯子的帮助下进行国内访问。点击导航栏。

  • Models。可查看所有模型󿀌可以搜索关键字,也可使用右侧。Filters。只找到所需的模型:Checkpoint: 特别是大型模型�而 LoRA 这是社区开发者微调的小模型,下面的作者也会带领大家微调自己。 LORA 小模型。找到感兴趣的模型后,右侧可以看到模型类型等信息󿀌图片下方的感叹号可以查看提示词,可直接点击右上角下载,或者右键选择复制链接�然后在终端 wget 下载。一个是国内:

https://www.liblib.art ,无需梯子即可访问,它基本上可以满足大多数人的需求,和 civitai 用法基本一致,就不赘述了。2.3.2 Model Scope(国内)

  • Model Scope 模型库由阿里巴巴提供,对标国外的 Hugging Face,托管各种机器学习模型,例如,我们需要下载 stable-diffusion-v1.5,可直接在模型库中搜索:点击后,找到模型文件�选择。v1-5-pruned-emaonly.ckpt。

右上角有。

下载,右键选择复制链接󿀌然后在终端输入:# -O 代表存储的模型名wget -O v1-5-pruned-emaonly.ckpt 'https://modelscope.cn/api/v1/models/AI-ModelScope/stable-diffusion-v1.5-no-safetensor/repo?Revision=master&FilePath=v1-5-pruned-emaonly.ckpt'


注意:在终端中,复制链接必须添加双引号,否则不会成功下载 2.3.3 Hugging Face(国外)Hugging Face 国内访问需要梯子,如果可以访问,和 Model Scope 用法基本一致,这里就不赘述了。

2.4 WebUI 使用。

2.4.1 模型权重准备

模型权重下载后,将模型放入相应的文件夹中,这里最常用的是:大模型 和 LoRA的微调 模型,分别放在。

models/stable-diffusion。

和。

models/Lora。

下,启动后,WebUI 从这些文件夹中自动找到相应的模型 2.4.2 使用前端界面。成功启动后,选择相应的大模型,开始愉快地画画吧!关于界面上的这些功能和更多的插件,作者将详细讨论另一篇文章3 Lora模型训练实战。 大模型无法定制风格和人物,我们可以下载开源社区 LoRA 模型实现了所需的风格,所以开源社区 LoRA 模型是如何制作的?在这里,笔者打算带领大家用一个简单的案例来训练自己 LoRA 模型。

3.1 下载 lora-scripts。

打开终端�git 下载 lora-scripts 仓库:

git clone --recurse-submodules https://github.com/Akegarasu/lora-scripts。

注意:要加上。

--recurse-submodules。

,由于仓库还依赖于几个子模块仓库,假如忘了加。

--recurse-submodules。

, 可以继续使用下列命令重新下载子模块仓库:

git submodule update --init --recursive。接下来,一键执行环境准备:install.bash。 3.2 准备训练数据集首先,需要收集具有特定风格的图片数据,保存在同一个文件夹下。

其次,需要为每个图像生成相应的描述,这一步可以通过 WebUI 实现,找到 Extras 的 tab,选择 Batch from Directory ,输入您的文件夹名称,同时,指定输出文件夹,注意we文件夹的名称遵循以下格式: xxx/10_xxx,子目录需要从数字开始。在底部找到 Caption 选项,选择 BLIP 图片描述生成模型󿀌右上方点击 Generate,相应的图片描述可以自动生成。

生成后的文件夹如下图所示,每张图片对应一个文本描述:

3.3 Lora训练

首先需要修改训练脚本,打开。

train.sh。

,主要修改以下几个地方:。

pretrained_model # base model path | 底模路径。

train_data_dir # 训练路径,特别要注意,如下图所示。

max_train_epoches # 训练轮数。 完成后,一键启动训练:bash train.sh。

  • 默认保存生成的模型文件。
  • outputs/。
  • 文件夹,把它 copy 到 stable-diffusion-webui。

models/Lora。

下,你可以直接使用这个你训练好的 LoRA 模型了。

4 总结。到目前为止,我们完成了在Linux系统中部署Stable Diffusion WebUI和LORA模型训练的全过程。希望这篇文章能让你部署Stable Diffusion 在WebUI的路上少踩坑。感谢关注~。

【我要纠错】责任编辑:新华社