【Stable Diffusion系列】(一):AI绘画本地部署教程

news2024/12/24 0:22:28

目录

一、总览

二、本地部署

1、安装cuda

2、安装python

3、安装git 

4、方法一 

1)获取安装包

2)update

3)run

5、方法二 

1)git clone

2)双击webui-user.bat

3)更新 

6、设置启动参数

7、可能的问题

问题一

问题二

问题三

问题四

问题五

8、安装ControlNet

三、模型下载地址

四、模型简介

五、后记


一、总览

AI技术势头正盛,俨然成为当前人类社会科技树的主分支。不管你是技术人员,还是其他人员,在生活与工作之中,AI已触手可及。从本文起,我将带你迈进AI绘画的大门,从头创造专属于你的虚拟开放世界。

二、本地部署

建议事先安装python和cuda。

1、安装cuda

cuda安装教程参考专栏文章:http://t.csdnimg.cn/uRr1D

2、安装python

python选择3.10.6版本,才可使用。

Python Release Python 3.10.6 | Python.org

下拉网页,依据自己的系统选择。

1自定义安装,2勾选加入系统变量。 

此页默认

修改安装地址

 

等待安装完成即可。

 最后,点击Disable path length limit。可取消系统变量路径长度限制。

安装完成之后,请换源,具体操作参见:

http://t.csdnimg.cn/6gFn3 

pip换源。

3、安装git 

官网:Git - Downloads (git-scm.com)

根据自己的系统下载:

第一步,直接next

 第二步,修改安装目录

第三步,可保持默认即可,后续一路默认下去。安装结束。

4、方法一 

1)获取安装包

新建一个空白文件夹,用于放置stable diffusion。

进入github网址:AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI (github.com)

选择wiki

依据自己的系统和显卡,选择合适的安装包。以我来说,选择英伟达显卡版。即第一个。 

进入这个网址:Release v1.0.0-pre · AUTOMATIC1111/stable-diffusion-webui (github.com) 

以简单起见,选择安装包即可,不下载源码编译。

下载完成之后,解压。

2)update

双击解压文件夹的update.bat文件,此处将运行系统脚本文件,更新安装包。

弹出控制台不久,即可完成。

以后如有更新,即可使用此方法。

3)run

运行之前,建议首先配置启动参数,参见下文。

双击run.bat,运行安装脚本文件。

使用记事本打开run.bat,可以看到如下内容:

@echo off

call environment.bat

cd %~dp0webui
call webui-user.bat

简单地说,run,bat其实本身没有什么功能代码,它只做两件事:

一是调用运行环境脚本,安装相关依赖;二是cd到webui文件夹下,调用webui-user.bat脚本,启动程序。

所以,我们使用这种方法配置Stable Diffusion时,以后只需点击run.bat启动程序即可,而不能直接点击webui\webui-user.bat启动,因为使用webui-user.bat还得再创建一个虚拟依赖环境去运行程序。

run.bat的过程中,有部分内容需要科学上网。

但是,首先,先不要科学上网,直接运行,等待安装完成。

一部分是依赖下载,但可以通过给python换源解决问题

一部分是会自动下载"https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.safetensors"模型文件

但这个模型文件下载有问题的,后续还得手动下载。

各位需要自行发挥。

这个过程,需要下载不少文件,用时会久一些。

如果不成功,请看下文目录7可能的问题解决

最后显示这句话表示完成安装。

并且浏览器会弹出新窗口,即:

  Running on local URL:  http://127.0.0.1:7860

关闭浏览器,关闭控制台之后,下次再启动程序,只需双击run.bat脚本即可,切不可直接使用webui-user.bat启动, 只使用它设置启动参数。打开之后,控制台的效果:

5、方法二 

1)git clone

打开github网址:AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI (github.com)icon-default.png?t=N7T8https://github.com/AUTOMATIC1111/stable-diffusion-webui

复制克隆地址:

git控制台不支持复制,故,需手动输入

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

这是项目在github的远程仓库地址。 

 

 新建一个空白文件夹用于项目存储位置。

在如下空白位置右键鼠标,选择Open Git Bash here

 手动输入代码

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

 回车等待。

项目路径下,会下载好文件

2)双击webui-user.bat

打开上述文件夹,右键webui-user.bat,建议优先按照下文设置启动参数,再进行操作。

@echo off

set PYTHON=D:\python3106\python.exe
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=--autolaunch --update-check --precision full --no-half --no-half-vae --xformers

call webui.bat

双击webui-user.bat,先不要科学上网,前提已经python换源,耐心的等待依赖下载完成。

出现这个时:

科学上网,然后重新运行webui-user.bat,下载模型,虽然不能用,还是得去手动下载的,如方法一一样。 

此后,使用方法二启动程序,就在stable-diffusion-webui\webui-user.bat脚本。

3)更新 

若要更新程序,则在项目文件夹下,空白处右键鼠标,选择Open Git Bash here,输入

git pull

6、设置启动参数

基于方法一,打开webui文件夹,即是我们安装好的stable diffusion。


 基于方法二,打开项目目录下的webui-user.bat

按官方示例,我们使用webui-user.bat配置stable diffusion启动信息。

在启动之前,我们设置启动参数。

右键webui-user.bat,以记事本编辑即可。

上图可以看出,有四个变量可供我们修改。

1、set PYTHON

设置python的路径,不可用stale diffusion给我们的,在上图文件夹里。

以我为例,我选择安装的python。

注意:python版本不可高于3.10版本。若不小心使用错了python版本,请直接再下载安装合适的python版本,并将已生成的venv文件夹删除。

设置代码为(替换为你自己的):

set PYTHON=D:\python3106\python.exe

2、set GIT

设置代码版本管理工具git的启动路径,可不使用,如使用,同python一致。

不建议设置。设置会出现下文问题五

set GIT=E:\software\Git\Git\git-bash.exe

3、set VENV_DIR

设置或者创建python运行虚拟环境,这个不建议修改,因为使用本地的虚拟环境的话,每个工程需要的依赖不同,一虚拟环境多用的话,必然造成臃肿;若要创建虚拟环境,实属没有这个必要,因为会在stable diffusion文件夹下创建venv文件夹,便于管理。

4、set COMMANDLINE_ARGS

设置命令行变量是常用的。首先,依据教程设置两个参数:自动打开浏览器和检查更新。

不同参数之间使用空格隔开,每个参数开头使用--。

set COMMANDLINE_ARGS=--autolaunch --update-check

 其他可供参考的命令行参数:

  • GPU低VRAM数,即显存,请增加参数"--medvram"或者"--lowvram"。一般8G显存足以,或许会生成速度慢,但无所谓。
  •  避免导出出错,变成黑图或者绿图,添加参数"--precision full"和"--no-half"。
  • 使用vae或者其他模型时,减少出黑图概率,再添加参数"--no-half-vae"
  • N卡显卡建议添加"--xformers",可提速和优化显存。

最终设置的参数为:不设置git和venv_dir。

set PYTHON=D:\python3106\python.exe
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=--autolaunch --update-check --precision full --no-half --no-half-vae --xformers

其他参数详见:Command Line Arguments and Settings · AUTOMATIC1111/stable-diffusion-webui Wiki (github.com)

7、可能的问题

问题一

RuntimeError: Torch is not able to use GPU; add --skip-torch-cuda-test to COMMANDLINE_ARGS variable to disable this check

这个问题很大的概率是没有一次性安装好需要的依赖,即运行run.bat脚本时,没有一次性成功。或者中间发生网络波动。这个运行过程很脆弱。

依方法一部署的话,关闭run.bat的控制台,将system\python\Lib\site-packages文件夹下的文件全数删除,然后重新运行run.bat脚本。

依方法二,删除venv文件夹即可,重新运行webui-user.bat。

问题二

RuntimeError: Couldn't clone Stable Diffusion.

出现则个问题的原因是,git从远程仓库克隆时,网络出现问题,关闭控制台,方法一重新打开run.bat,方法二重新打开webui-user.bat。再不行就如问题一,删除虚拟环境,在运行。

问题三

loading stable diffusion model: SafetensorError
...
safetensors_rust.SafetensorError: Error while deserializing header: MetadataIncompleteBuffer

Stable diffusion model failed to load

 解决方案:手动重新下载这个模型,放到对应文件夹下。

问题四

RuntimeError: Couldn't install xformers.

关闭控制台

基于方法一,删除system\python\Lib\site-packages文件夹,重新点击运行run.bat

基于方法二,删除venv文件夹,重新运行webui-user.bat

问题五

Traceback (most recent call last):
  File "E:\AI_StableDiffusion\webui_git\stable-diffusion-webui\launch.py", line 48, in <module>
    main()
  File "E:\AI_StableDiffusion\webui_git\stable-diffusion-webui\launch.py", line 44, in main
    start()
  File "E:\AI_StableDiffusion\webui_git\stable-diffusion-webui\modules\launch_utils.py", line 465, in start
    import webui
  File "E:\AI_StableDiffusion\webui_git\stable-diffusion-webui\webui.py", line 13, in <module>
    initialize.imports()
  File "E:\AI_StableDiffusion\webui_git\stable-diffusion-webui\modules\initialize.py", line 26, in imports
    from modules import paths, timer, import_hook, errors  # noqa: F401
  File "E:\AI_StableDiffusion\webui_git\stable-diffusion-webui\modules\paths.py", line 34, in <module>
    assert sd_path is not None, f"Couldn't find Stable Diffusion in any of: {possible_sd_paths}"
AssertionError: Couldn't find Stable Diffusion in any of: ['E:\\AI_StableDiffusion\\webui_git\\stable-diffusion-webui\\repositories/stable-diffusion-stability-ai', '.', 'E:\\AI_StableDiffusion\\webui_git']

 设置Git所致,取消设置git,即可正常克隆所需依赖。

8、安装ControlNet

Stable Diffusion是一种用于分布式控制和协调的算法,旨在保持系统的稳定性和收敛性。它使用了一种称为ControlNet的扩展来增强其功能。

ControlNet是Stable Diffusion的一个重要组成部分,它允许系统中的节点在进行分布式控制和协调时相互通信。通过ControlNet,节点可以传输信息并接收其他节点的信息,以便在系统中做出更好的决策。

ControlNet的扩展主要包括以下几个方面:

  1. 节点加入和离开:ControlNet允许系统中的节点根据需要动态加入和离开。当一个节点加入时,它会通过ControlNet接收到其他节点的信息,并开始参与系统的控制和协调。当一个节点离开时,它会将自己的信息从ControlNet中删除,并通知其他节点进行相应的调整。

  2. 信息传输:ControlNet允许节点之间传输信息,以便在系统中进行分布式控制和协调。节点可以选择将信息直接发送给其他单个节点,或者向整个系统广播信息。通过ControlNet传输的信息可以包括系统状态、决策建议等。

  3. 信息处理:ControlNet扩展还提供了一些功能来处理传输的信息。节点可以使用自定义的算法来对接收到的信息进行处理和分析,并根据需要做出相应的决策。这些算法可以包括领导者选择、信息聚合等。

通过ControlNet的扩展,Stable Diffusion能够更好地实现分布式控制和协调。节点之间可以更有效地传输和处理信息,以便在系统中做出更准确的决策,从而提高系统的稳定性和收敛性。

以上内容来自:创作助手 

打开run.bat之后,来到网页,选择扩展插件

第一个空,填入插件github地址链接:Mikubill/sd-webui-controlnet: WebUI extension for ControlNet (github.com)icon-default.png?t=N7T8https://github.com/Mikubill/sd-webui-controlnet

等待安装完成 

点击Installed,然后点击Apply and restart UI,等待重新加载。

之后,ControlNet模型就可放于自动生成的ControlNet文件夹下

使用方法,下次再做示范。 

三、模型下载地址

目前,汇集的网址有:

需科学上网的:

https://civitai.com/

https://huggingface.co/

Stable Diffusion Models (rentry.co)

无需科学上网:

Ai提示词-AI图片图像生成AI模型Prompt提示词语交易分享平台! (4b3.com)

LiblibAI·哩布哩布AI - 中国领先的AI创作平台

吐司 tusi.cn | 可在线生图的 AI 模型分享社区,还是免费的!

Stable Diffusion Models (cyberes.github.io)

www.liandange.com

模型效果不一,大家多尝试,自会找到自己中意的网址。

四、模型简介

模型类型很多,不同类型放在不同的文件夹下:

各种模型对号入座,只要是模型文件,不用管文件后缀,复制进去即可。

 注意:

Checkpoint模型对应路径:models\Stable-diffusion

五、后记

部署结束,后续将实操演示。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LiveNVR监控流媒体Onvif/RTSP常见问题-如何对比监控摄像头延时视频流延时支持webrtc视频流播放超低延时播放

LiveNVR如何对比监控摄像头延时视频流延时支持webrtc视频流播放超低延时播放 1、问题场景2、如何对比延时&#xff1f;3、WEBRTC延时对比4、LiveNVR支持WEBRTC输出5、RTSP/HLS/FLV/RTMP拉流Onvif流媒体服务 1、问题场景 需要低延时的视频流监控播放&#xff0c;之前可以用rtmp…

pytorch-MNIST测试实战

目录 1. 为什么test2. 如何做test3. 什么时候做test4. 完整代码 1. 为什么test 如下图&#xff1a;上下两幅图中蓝色分别表示train的accuracy和loss&#xff0c;黄色表示test的accuracy和loss&#xff0c;如果单纯看train的accuracy和loss曲线就会认为模型已经train的很好了&a…

C++初识--------带你从不同的角度理解引用的巧妙之处

1.对于展开的理解 我们这里的展开包括命名空间的展开和头文件的展开&#xff0c;两者的含义是不一样的&#xff1a; 头文件的展开就是把头文件拷贝到当前的文件里面&#xff1b; 命名空间的展开不是拷贝&#xff0c;而是因为编译器本身默认是到全局里面去找&#xff0c;当我…

【热议】硕士和读博士洗碗区别的两大理论

::: block-1 “时问桫椤”是一个致力于为本科生到研究生教育阶段提供帮助的不太正式的公众号。我们旨在在大家感到困惑、痛苦或面临困难时伸出援手。通过总结广大研究生的经验&#xff0c;帮助大家尽早适应研究生生活&#xff0c;尽快了解科研的本质。祝一切顺利&#xff01;—…

SWOT分析法:知彼知己的战略规划工具

文章目录 一、什么是SWOT分析法二、SWOT分析法如何产生的三、SWOT分析法适合哪些人四、SWOT分析法的应用场景五、SWOT分析法的优缺点六、SWOT分析实例 一、什么是SWOT分析法 SWOT分析法是一种用于评估组织、项目、个人或任何其他事物的战略规划工具。SWOT是Strengths&#xff…

组态风格的工业可视化大屏,既同步状态又掌控数据,一箭双雕。

可视化大屏中加入了组态图&#xff0c;状态和数据一目了然了&#xff0c;我看还有谁说可视化大屏没啥用啦。 将组态图放入可视化大屏中可以起到以下几个作用&#xff1a; 1. 实时监控&#xff1a; 组态图可以用来实时监控设备、系统或者生产线的运行状态。通过大屏展示&#…

HackMyVM-Alzheimer

目录 信息收集 arp nmap FTP服务信息收集 匿名登陆 关键信息 knock WEB信息收集 信息收集 gobuster 目录爆破 ssh登录 提权 系统信息收集 提权 get root 信息收集 arp ┌──(root㉿0x00)-[~/HackMyVM] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC…

应用于智能装备制造,钡铼IOy系列模块展现其强大的灵活性和实用性

随着科技的飞速发展&#xff0c;智能制造已经成为工业4.0时代的核心驱动力。在此背景下&#xff0c;钡铼技术推出的IOy系列模块以其独特的设计、卓越的性能以及无可比拟的灵活性与实用性&#xff0c;在智能装备制造领域展现出了强大的技术优势和应用价值。 首先&#xff0c;钡…

Excel 冻结前几行

Excel中有冻结首航和冻结首列的选项&#xff0c;但是如果想冻结前几行该怎么操作&#xff1f; 冻结首行或冻结首列 视图 -> 冻结窗格 -> 冻结首行或冻结首列 冻结前几行或前几列 视图 -> 冻结窗格 -> 冻结拆分窗格 具体冻结几行和几列取决于当前选中的单元格。…

力扣HOT100 - 114. 二叉树展开为链表

解题思路&#xff1a; class Solution {List<TreeNode> list new ArrayList<>();public void flatten(TreeNode root) {recur(root);for (int i 1; i < list.size(); i) {TreeNode pre list.get(i - 1);TreeNode cur list.get(i);pre.left null;pre.right…

不同伦敦金网上平台的投资者都在使用的平仓技术

现在几乎是百分之一百的伦敦金交易都在伦敦金网上平台进行。市面上有不同的伦敦金网上平台&#xff0c;那有没有一些交易技术&#xff0c;不论是什么伦敦金网上平台的投资者都喜欢用的呢&#xff1f;答案是肯定的&#xff0c;下面我们就从平仓这个角度来讨论一下伦敦金网上平台…

LeetCode - 11.盛最多水的容器

一. 题目链接 LeetCode - 11.盛最多水的容器 二. 思路解释 利用双指针的思想&#xff0c;定义一个left和reght&#xff0c;left指向首部&#xff0c;right指向尾部&#xff0c;计算当前两个指针所对应的高度构成容器的体积。根据当前双指针所指的高度的大小&#xff0c;然后让…

精益人效,实践为先|第四届狮山人力资源论坛圆满举办

4月19日 &#xff0c;在苏州日航酒店&#xff0c;由中国苏州人力资源服务产业园、苏州高新区人力资源服务产业园指导&#xff0c;盖雅工场、盖雅学苑和盖雅人效研究院主办的 「精益人效 实践为先——第四届狮山人力资源论坛」圆满结束。 700余位企业管理者与人力资源从业者&am…

【每日刷题】Day23

【每日刷题】Day23 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. 138. 随机链表的复制 - 力扣&#xff08;LeetCode&#xff09; 2. 链表的回文结构_牛客题霸_牛客网 …

邂逅JavaScript逆向爬虫-------基础篇之面向对象

目录 一、概念二、对象的创建和操作2.1 JavaScript创建对象的方式2.2 对象属性操作的控制2.3 理解JavaScript创建对象2.3.1 工厂模式2.3.2 构造函数2.3.3 原型构造函数 三、继承3.1 通过原型链实现继承3.2 借用构造函数实现继承3.3 寄生组合式继承3.3.1 对象的原型式继承3.3.2 …

zabbix6.4告警配置(短信告警和邮件告警),脚本触发

目录 一、前提二、告警配置1.邮件告警脚本配置2.短信告警脚本配置3.zabbix添加报警媒介4.zabbix创建动作4.给用户添加报警媒介 一、前提 已经搭建好zabbix-server 在需要监控的mysql服务器上安装zabbix-agent2 上述安装步骤参考我的上篇文章&#xff1a;通过docker容器安装za…

软考-系统集成项目管理中级--合同管理

本章历年考题分值统计(16年11月及以后按新教材考的&#xff09; 本章重点常考知识点汇总清单(学握部分可直接理解记忆) 8、合同签订管理(掌握)10下53&#xff0c;14上53&#xff0c;15上53 考题 签订合同的前期调查&#xff0c;每一项合同在签订之前&#xff0c;应当做好以下几…

Python蜘蛛侠

目录 写在前面 蜘蛛侠 编写代码 代码分析 更多精彩 写在后面 写在前面 本期小编给大家推荐一个酷酷的Python蜘蛛侠&#xff0c;一起来看看叭~ 蜘蛛侠 蜘蛛侠&#xff08;Spider-Man&#xff09;是美国漫威漫画宇宙中的一位标志性人物&#xff0c;由传奇创作者斯坦李与艺…

MySQL主从结构搭建

说明&#xff1a;本文介绍如何搭建MySQL主从结构&#xff1b; 原理 主从复制原理如下&#xff1a; &#xff08;1&#xff09;master数据写入&#xff0c;更新binlog&#xff1b; &#xff08;2&#xff09;master创建一个dump线程向slave推送binlog&#xff1b; &#xff…

javaScript中的作用域和作用域链

作用域&#xff08;Scope&#xff09; 什么是作用域 作用域是在运行时代码中的某些特定部分中变量、对象和函数的可访问性。 换句话说&#xff0c;作用域决定了代码区块中变量和其他资源的可见性。 示例&#xff1a; function outFun2() {var inVariable "内层变量2…