Stable-Diffusion的WebUI部署实战

1、环境准备及安装

1.1、linux环境
# 首先,已经预先安装好了anaconda,在这里新建一个环境
conda create -n sdwebui python=3.10
# 安装完毕后,激活该环境
conda activate sdwebui# 安装
# 下载stable-diffusion-webui代码
apt install wget git python3 python3-venv libgl1 libglib2.0-0
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
cd stable-diffusion-webui 
bash webui.sh -f

2、运行

安装完成前期的环境准备之后,之后每次运行只需要:

conda activate sdwebui
cd stable-diffusion-webui
bash webui.sh -f
# 或者按照如下方式,将sd放在后台执行
nohup bash webui.sh -f >> nohup.log 2>&1 &

该种方式会将进程运行在本地,可以通过ip+port的方式直接在网页上访问。 也可以通过如下方式进行简单的改造:

# 编辑webui-user.sh脚本
vim webui-user.sh
# 在终端中输入“i”进入编辑模式,移动到 COMMANDLINE_ARGS,并将其修改为:
export COMMANDLINE_ARGS="--listen --share --enable-insecure-extension-access"

参数说明:

--listen:将本地连接从127.0.0.1修改为0.0.0.0,即可通过服务器 IP:7861进行访问
--share:生成可供外网访问 Gradio 网址。
--enable-insecure-extension-access:使用--listen时,webui出于安全考虑会禁止用户在UI页面添加插件,添加该参数可允许用户添加插件。
--mdevram或 --lowvarm:降低显存消耗
PS:windows下的同理,在webui-user.bat中修改即可

成功页面:

3、自定义模型

初步安装完成后,打开webui,可以看到左上角自带的模型。

模型的分类大概有如下几种:

  1. CheckPoint
    Checkpoint 是 Stable Diffusion 中最重要的模型,也是主模型,几乎所有的操作都要依托于主模型进行。所有的主模型都是基于 Stable Diffusion 模型训练而来.
    主模型后缀一般为 .ckpt 或者 .safetensors,并且体积比较庞大,一般在 2G - 7G 之间。放置在 webUI 目录下的 `models/Stable-diffusion` 目录下。
  2. LoRA/LyCORIS
    LoRA 是除了主模型外最常用的模型。LoRA 和 LyCORIS 都属于微调模型,一般用于控制画风、控制生成的角色、控制角色的姿势等等。
    LoRA 和 LyCORIS 的后缀均为 .safetensors,体积较主模型要小得多,一般在 4M - 300M 之间。一般使用 LoRA 模型较多,而 LyCORIS 与 LoRA 相比可调节范围更大,但是需要额外的扩展才可使用。放置在 `models/LoRA` 目录下。
  3. Textual Inversion
    Textual Inversion 是文本编码器模型,用于改变文字向量。可以将其理解为一组 Prompt。
    Textual Inversion 后缀为 .pt 或者 .safetensors,体积非常小,一般只有几 kb。放置在 `embeddings` 目录下。
  4. Hypernetworks
    Hypernetworks 模型用于调整模型神经网络权重,进行风格的微调。
    Hypernetworks 的后缀为 .pt 或者 .safetensors,体积一般在 20M - 200M 之间。放置在 `models/hypernetworks` 目录下。
  5. ControlNet
    ControlNet 是一个及其强大的控制模型,它可以做到画面控制、动作控制、色深控制、色彩控制等等。使用时需要安装相应的扩展才可。
    ControlNet 类模型的后缀为 .safetensors。放置在 `models/ControlNet` 目录下。
    使用时我们需要先去 Extensions 页面搜索 ControlNet 扩展,然后 Install 并 Reload UI。然后便可以在 txt2img 和 img2img 菜单下找到。
  6. VAE
    VAE全称是变分自动编码器 (Variational Auto-Encoder),是机器学习中的一种人工神经网络结构。VAE在sd模型中负责微调,类似我们熟知的滤镜,调整生成图片的饱和度。
    默认的sd-webui页面并没有VAE的设置,需要进入:Settings->User interface->Quick settings list,在输入框中添加sd_vae。然后依次点击Apply settings和Reload UI。随后就会在webui中看到对应区域。

下载好上述模型之后,可以在页面上直接通过标签进入选中,可以直接prompt使用:

        

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/535425.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue3 前端生成随机id( 生成 UUID )

效果展示 封装工具(代码展示) 重新创建一个文件**/utils/someTools.js**,并在里面写入如下代码。 function Tools() {}Tools.prototype.guid function () {return xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx.replace(/[xy]/g, function (c) {v…

Java基于微信小程序的校园生活互助小助手

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

【计算机视觉】目标跟踪| 光流算法详细介绍|附代码

0、前言 在上篇文章中https://blog.csdn.net/Yaoyao2024/article/details/136625461?spm1001.2014.3001.5501,我们对目标跟踪任务和目标跟踪算法有了大致的了解。今天我们就来详细介绍一下其中的生成式算法的一种:光流法。 在介绍光流法之前&#xff…

【Java基础概述-8】Lambda表达式概述、方法引用、Stream流的使用

1、Lambda表达式概述 什么是Lambda表达式? Lambda表达式是JDK1.8之后的新技术,是一种代码的新语法。 是一种特殊写法。 作用:“核心的目的是为了简化匿名内部类的写法”。 Lambda表达式的格式: (匿名内部类被重写的形参列表){ 被重写的代码 …

SQL注入的场景复现和解决方案

文章目录 一、前言SQL注入是什么? 二、解决方案如何避免SQL注入? 三、案例说明1、案例来源:黑马程序员2、SQL注入演示1.创建应该新的数据库用于测试;2.修改配置3.启动jar包4.打开网页测试5.测试sql注入 3、解决SQL注入方案1\. jav…

OpenCASCADE开发指南<三>:OCC 基础类概述

1、OCC 基础类概述 基础类包括根类组件、 串类组件、 集合容器组件、 标准对象的集合容器组件、向量和矩阵类组件、 基本几何类型组件、 常用数学算法组件、 异常类组件、 数量类组件和应用程序服务组件。 1 根类组件 根类是基本的数据类型和类, 其它所有类都是依此…

vue中如何查看组件有哪些函数与变量

在开发的过程中,经常用到他人的框架,特别是开源框架比如element,uniapp等。其中就涉及到框架里对应的组件。而组件里又有哪些内置的函数,我们通常是去查官方文档。然后很多的时候需求的多样性,要改的地方也是不一样的,…

C#构造函数

C#中的构造函数是一种特殊的方法,用于创建和初始化类的对象。构造函数的名称与类的名称相同,并且没有返回类型。 在C#中,构造函数有以下几种类型: 默认构造函数:如果在类中没有定义构造函数,系统将自动提供…

写给新手的单元测试框架unittest运行的简单问题

当使用unittest框架编写和运行单元测试时,需要遵循以下步骤: 1、导入unittest模块:在代码中首先导入unittest模块。 import unittest 2、创建测试类:创建一个继承自unittest.TestCase的测试类。该类将包含一系列测试方法。 clas…

rancher里的ingress如何配置gzip压缩

方案一,未试验成功,但配置过程值得记录一下 通过配置configmap,然后在ingress的deployment里引用configmap实现。 参考文章 创建configmap apiVersion: v1 kind: ConfigMap metadata:name: nginx-ingress-controllerannotations:{} # k…

怎样提高服务器在网络里的安全性?

在互联网行业中,网络安全是已经必须要重视的一点。不管是哪个行业,一旦不小心,自己经营多年的成果可能就因为安全这个问题。付之东流,用户在通过服务器平台搭建的网络环境中要实时的留意自己的安全问题。 更新和维护操作系统和软件…

C语言学习--pow函数和

1.首先使用pow函数必须要加头文件 : #include<math.h> double pow(double x, double y); pow() 函数用来求 x 的 y 次幂&#xff08;次方&#xff09;&#xff0c;x、y及函数值实际上为double型 注意&#xff0c;在某些特定的情况之下&#xff0c;pow函数的double类型…