Stable Diffusion本地部署:从零开始的完整指南

news2024/12/13 5:01:06

1、引言

       Stable Diffusion是计算机视觉领域的一个生成式大模型,能够进行文生图(txt2img)和图生图(img2img)等图像生成任务。它利用深度学习技术,特别是RealisticVision v2.0模型,能够创造出接近真实照片的图像。Stable Diffusion的核心在于使用深度学习算法将文字描述转化为图像,通过逐步添加噪声,将最初的随机噪声转化为可理解的图像。      

2、硬件与软件准备

 2.1、硬件要求

        在准备运行Stable Diffusion之前,需要确保您的计算机满足以下硬件要求,以确保能够高效、稳定地处理复杂的图像生成任务。 

2.1.1、内存

        至少16GB的内存是运行Stable Diffusion的最低要求。图像生成任务通常需要处理大量的数据和计算,充足的内存可以避免在处理大型图像或复杂场景时遇到内存不足的问题,从而确保任务的顺利进行。

  2.1.2、硬盘

        至少60GB以上的磁盘空间是必需的,以存储Stable Diffusion模型、数据集、生成的图像以及其他相关文件。推荐使用SSD固态硬盘,因为SSD具有更快的读写速度,可以显著提高数据加载和处理的效率。

2.1.3、显卡

        显存至少2GB以上的显卡是运行Stable Diffusion的基本要求。然而,为了加速图像生成过程并获得更好的性能,推荐购买性能较好的显卡。

        查看本机显存信息,如下图:

2.2、软件安装

        在硬件准备就绪后,接下来需要安装必要的软件以运行Stable Diffusion。

2.2.1、Python

        安装Python 3.10.6版本及以上。Python是Stable Diffusion的主要编程语言,因此确保安装了正确版本的Python至关重要。在安装过程中,请确保将Python添加到系统环境变量PATH中,这样您就可以在任何命令行窗口中轻松运行Python脚本。

        python官网:
Welcome to Python.orgWelcome to Python.org

        

        下载安装,安装成功:【Win+R】唤出【运行】,输入“cmd”,回车,在命令行里输入,如下图:

        

2.2.2、Git

        Git是一个开源的分布式版本控制系统,用于跟踪和管理代码更改。在Stable Diffusion项目中,Git用于下载和更新项目所需的代码、模型和数据集。安装Git后,您可以使用命令行工具或图形用户界面(GUI)来克隆和更新Stable Diffusion的仓库。

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

        

        下载安装,安装成功后:【Win+R】唤出【运行】,输入“cmd”,回车,在命令行里输入,如下图:

        

2.2.3、Anaconda

        Anaconda是一个运行Python的环境管理工具,它提供了包管理、环境管理和分发等功能。使用Anaconda,您可以轻松创建和管理多个Python环境,每个环境都可以安装不同版本的Python和所需的库。这对于运行Stable Diffusion特别有用,因为它可能需要特定版本的库来确保兼容性。

2.2.4、CUDA和cuDNN

        如果您使用的是Nvidia GPU,则需要安装相应版本的CUDA工具包和cuDNN库。CUDA是Nvidia提供的用于GPU加速的并行计算平台和编程模型,而cuDNN是专门为深度学习应用而优化的GPU加速库。这些工具可以显著提高Stable Diffusion在Nvidia GPU上的运行效率。
        
        请注意,在安装这些软件时,请务必按照官方文档或指南中的步骤进行操作,以确保正确安装和配置所有必要的组件。此外,随着Stable Diffusion项目的不断更新和发展,这些要求可能会发生变化。因此,请定期查看Stable Diffusion的官方文档以获取最新的硬件和软件要求。

3、下载与安装Stable Diffusion

        在准备好必要的硬件和软件环境后,接下来是下载并安装Stable Diffusion的步骤。以下是详细的指南:

3.1、下载Stable Diffusion源码

3.1.1、访问并下载GitHub仓库

        访问GitHub上的Stable Diffusion仓库:Stable Diffusion仓库

        下载源码

    1、通过Git下载

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

        Git 使用 HTTPS 时,默认会校验服务器证书以确保安全性。如果 Git 在克隆、拉取或推送时遇到证书验证失败的问题,

处理方式1:关闭git的https证书验证

git config --global http.sslVerify false

处理方式2:在 Git 命令后添加参数 --no-check-certificate 可以忽略证书验证。

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

2、通过浏览器下载


3.2、安装依赖项

        此时可以看到下载的Stable Diffusion源码,如下图:



        打开stable-diffusion-webui,在上文件夹里找到webui-user.bat,双击运行webui-user.bat,将自动下载安装依赖项,如下图:

下载过程中遇到错误,如下:

Command: "D:\stable-diffusion-webui\venv\Scripts\python.exe" -m pip install https://github.com/openai/CLIP/archive/d50d76daa670286dd6cacf3bcd80b5e4823fc8e1.zip --prefer-binary
Error code: 1
stdout: Collecting https://github.com/openai/CLIP/archive/d50d76daa670286dd6cacf3bcd80b5e4823fc8e1.zip

stderr:   WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))': /openai/CLIP/archive/d50d76daa670286dd6cacf3bcd80b5e4823fc8e1.zip

        因为在安装过程中没有使用魔法上网,所以在下载过程中出现了部分没有安装成功的提示,这是国内的网络环境的原因。我安装时没有魔法上网,关掉后,重新双击运行webui-user.bat,这次执行webui-user.bat,下载依赖要快很多,原因是第一次已经下载了一部分。如下图:

如出现,红框标出URL链接,表示:stable-diffusion-webui可以访问:http://127.0.0.1:7860/,此时会把您的默认浏览器打开,内容显示如下图:

        此时需要注意2点:

        1、模型显示为空,需要下载模型;

        2、可以看到此时已经启动1.10.1 版本的sd webui了

4、导入与配置模型

        在成功安装Stable Diffusion及其依赖项后,接下来需要导入和配置预训练模型,以便能够生成图像。

4.1、下载预训练模型

4.1.1、访问模型仓库

       1、Hugging Face

Hugging Face Transformers 是一个用于自然语言处理的Python库,提供了预训练的语言模型和工具,使得研究者和工程师能够轻松的训练使用共享最先进的NLP模型,其中包括BERT、GPT、RoBERTa、XLNet、DistillBERT等,在Hugging Face提供的API中,我们几乎可以下载到所有前面提到的预训练大模型的全部信息和各种参数。

        Hugging Face官网:https://huggingface.co/      

      2、Civitai

Civitai是一个专注于使用和探索稳定扩散AI艺术模型的AI工具。它是一个平台,为AI爱好者、艺术家和开发者等用户提供了一个中心化的数字空间,用户可以在这里访问、互动并可能对AI生成的艺术模型库作出贡献。Civitai的角色、特点和优势包括:作为AI艺术模型的中心集散地,拥有大量模型的库;促进社区活跃,支持用户互动和合作;易于使用,支持模型贡献和定制;通过提供广泛的艺术模型库,促进创新和创造力;为学习和发展AI技术提供实践途径;提供社区支持,让用户可以从同好中获得建议和支持;使更多用户能够轻松接触和利用先进的AI艺术模型。

        Civitai官网:https://civitai.com/

        3、异型岛

        异型岛社区版是HuggingFace资源下载网站,为AI开发者提供模型下载服务,通过下载器可以提高下载速度,解决大模型下载时间长、经常断线、需要反复重试等问题,实现镜像加速、断点续传、无人值守下载。

        可以通过下面链接下载,如下图:

互链高科

下载的文件后缀名为:safetensors,如这样:

基础模型绘画板:v1-5-pruned-emaonly.safetensors

基础模型训练版:v1-5-pruned.safetensors

复制或者剪切到我们安装stable diffusion的目录:stable-diffusion-webui\models\Stable-diffusion,如下图:

注意位置,是 stable-diffusion-webui 文件夹下面的 models 文件夹下面的 Stable-diffusion 文件夹下,千万别放错地方了,否则检索不到模型。

4.2、下载参数文件

在项目的目录下,创建.cache/huggingface/openai/clip-vit-large-patch14文件夹,然后下载参数文件放在里面

参数文件:vocab.json,tokenizer_config.json,special_tokens_map.json,merges.txt,config.json

参数文件下载地址:互链高科

5、运行Stable Diffusion

 5.1、修改项目代码

        文件:repositories/stable-diffusion-stability-ai/ldm/modules/encoders/modules.py

        第100行的__init__方法中,version是openai/clip-vit-large-patch14,把这个值改为自己的保存参数文件的目录

        修改前

        修改前

5.2、再次启动项目

再次双击webui.bat或者webui-user.bat来启动项目。这时出现了报错

由于我们的模型不是直接在huggingface直接下载的,所以可能会出现检查不通过的情况。按照报错的提示,需要在执行的时候添加上--disable-safe-unpickle绕过检查。

打开cmd,cd到项目的目录,执行下面这个命令。

webui.bat --disable-safe-unpickle

这时需要注意的是,不能使用webui-user.bat --disable-safe-unpickle。因为添加的webui-user.bat内部是调用webui.bat的,但是--disable-safe-unpickle这个参数并没有传递过去,所以本质上是单纯地执行webui.bat而已。如果你一定要使用webui-user.bat来启动项目,可以修改该文件,添加--disable-safe-unpickle即可。这也是webui-user.bat存在的原因,这个文件可以添加用户自己定义的信息。

      启动成功后,会看到有提示127.0.0.1:7860,在浏览器访问即可

5.3、调整参数

5.3.1、选择:室内设计模型

        prompt:

masterpiece,high quality,highres,offical art,8k,cg,
1 bedroom,interior design,minimalistic style,white walls,
smooth textures,(plenty of natural light:1.3),king-size bed,white sheets,simplistic wooden bedside table,single indoor plant,wooden flooring.arge window,(minimalistic curtains:1.2),soft ambient light,neutral color palette.(clean lines:1.3),modern,spacious,clutter-free,peace,
tranquility,(Scandinavian design influence:1.1)

Negative prompt:

sketches,
(worst quality:2).(low quality:2),(normal quality:2),lowers,normal quality,
(monochrome))((grayscale)),
facing away,looking away,text,error,extra digit,fewer digits,croppedjpeg artifacts,signature,watermark,username,blurry,skin spots,acnes,skin blemishes,bad anatomy,fat,bad feet,cropped,poorly drawn hands,poorly drawn face,mutation,deformed,tilted head,bad anatomy,bad hands,extra fingers,fewer digits,extra limbs,extra arms,extra legs.malformed limbs,fused fingers,too many fingers,long neck,cross-eyed,mutated handsbad body,bad proportions,gross proportions,text,error,missing fingers,missing arms,missing legs,extra digit,extra arms,extra leg.extra foot,missing fingers,mole:1.3,EasyNegative,

如下图:

调整参数后,点击Generate,生成图片,如下图:

5.3.2、选择国风武侠模型

prompt:

((masterpiece, best quality)),best aesthetic,1girl holding school bag, from below, solo, school uniform, serafuku, sky, cloud, black hair, looking at viewer, building, neckerchief, long sleeves, cloudy sky, shirt, pleated skirt, city, black sailor collar, closed mouth, black skirt, medium hair, buildings

Negative prompt:

re-badprompt,missing finger, extra digits, fewer digits,((mutated hands and fingers)),

其它:Steps: 20, Sampler: DPM++ 2M Karras, CFG scale: 10, Seed: 728361643, Size: 768x512, Model hash: 6fafc58c23, Model: replicantV10_replicantV10, Denoising strength: 0.7, Hires upscale: 2, Hires steps: 10, Hires upscaler: Latent

未完待续

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

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

相关文章

鸿蒙元服务上架

鸿蒙元服务上架 一、将代码打包成 .app 文件1. 基本需求2. 生成密钥和证书请求文件3. 申请发布证书4. 申请发布Profile5. 配置签名信息6. 更新公钥指纹7. 打包项目成 .app 文件 二、发布元服务1. 进入应用信息页面2. 上传软件包3. 配置隐私协议4. 配置版本信息5. 提交审核&…

【论文阅读】PRIS: Practical robust invertible network for image steganography

内容简介 论文标题:PRIS: Practical robust invertible network for image steganography 作者:Hang Yang, Yitian Xu∗, Xuhua Liu∗, Xiaodong Ma∗ 发表时间:2024年4月11日 Engineering Applications of Artificial Intelligence 关键…

day2 数据结构 结构体的应用

思维导图 小练习: 定义一个数组,用来存放从终端输入的5个学生的信息【学生的信息包含学生的姓名、年纪、性别、成绩】 1>封装函数 录入5个学生信息 2>封装函数 显示学生信息 3>封装函数 删除第几个学生信息,删除后调用显示学…

特征交叉-CAN学习笔记代码解读

一 核心模块coaction 对于每个特征对(feature_pairs)weight, bias 来自于P_inductionP_fead是MLP的input 举个例子:如果是用户ID和产品ID的co-action,且产品ID是做induction,用户ID是做feed。 step1 用户ID/产品ID都先形成一个向量&#xf…

EfficientNet与复合缩放理论(Compound Scaling Theory) 详解(MATLAB)

1.EfficientNet网络与模型复合缩放 1.1 EfficientNet网络简介 1.1.1 提出背景、动机与过程 EfficientNet是一种高效的卷积神经网络(CNN),由Google的研究团队Tan等人在2019年提出。EfficientNet的设计目标是提高网络的性能,同时减…

SQL语句在MySQL中如何执行

MySQL的基础架构 首先就是客户端,其次Server服务层,大多数MySQL的核心服务都在这一层,包括连接、分析、优化、缓存以及所有的内置函数(时间、日期、加密函数),所有跨存储引擎功能都在这一层实现&#xff1…

开源低代码平台-Microi吾码-表单控件数据源绑定配置

表单控件数据源绑定配置 平台简介普通数据源数据源引擎Sql数据源通过其它字段来动态绑定数据源关于绑定数据源后的显示字段和存储字段 平台简介 技术框架:.NET8 Redis MySql/SqlServer/Oracle Vue2/3 Element-UI/Element-Plus平台始于2014年(基于Av…

Y3编辑器文档4:触发器1(对话、装备、特效、行为树、排行榜、不同步问题)

文章目录 一、触发器简介1.1 触发器界面1.2 ECA语句编辑及快捷键1.3 参数设置1.4 变量设置1.5 实体触发器1.6 函数库与触发器复用 二、触发器的多层结构2.1 子触发器(在游戏内对新的事件进行注册)2.2 触发器变量作用域2.3 复合条件2.4 循环2.5 计时器2.6…

Redis原理—4.核心原理摘要

大纲(9870字) 1.Redis服务器的Socket网络连接建立 2.Redis多路复用监听与文件事件模型 3.基于队列串行化的文件事件处理机制 4.完整的Redis Server网络通信流程 5.Redis串行化单线程模型为什么能高并发 6.Redis内核级请求处理流程与原理 7.Redis通信协议与内核级请求数据…

轻量级日志管理平台:Grafana Loki搭建及应用(详细篇)

前言 Grafana Loki是Grafana Lab团队提供的一个水平可扩展、高可用性、多租户的日志聚合系统,与其他日志系统不同的是,Loki最初设计的理念是为了为日志建立标签索引,而非将原日志内容进行索引。 现在目前成熟的方案基本上都是:L…

【规范一】JAVA静态代码规范

1.规范的划分 将Java代码规范分为 风格规范 和 质量规范 ,主要是因为这两种规范关注的方面不同,各自解决的问题也不同。下面详细解释为什么需要将代码规范分为这两种 1.1 风格规范(Coding Style Guidelines) 风格规范主要关注代码…

Angular由一个bug说起之十二:网页页面持续占用CPU过高

随着网络日益发达,网页的内容也更加丰富,形式也更加多样化。而随之而来的性能问题也不容小觑。这篇文章我会根据我在实践中遇到的一个问题来总结,我在面对性能问题的一些解决步骤,希望能对大家有所启发。 查找问题原因 我接触的…

WordPress全能CDN插件_自动刷新预热_缓存优化|国内国外集成CDN配置

WordPress全网独家原创CDN插件 自动刷新预热 缓存优化 国内国外集成CDN配置 支持白山云 cdnfly Cloudflare PS:目前国内集成了CDNfly,白山云国外集成了Cloudflare,更新手动刷新,全站刷新,优化提交线程,根据网友建议适配阿里云,le…

唇形同步视频生成工具:Wav2Lip

一、模型介绍 今天介绍一个唇形同步的工具-Wav2Lip;Wav2Lip是一种用于生成唇形同步(lip-sync)视频的深度学习算法,它能够根据输入的音频流自动为给定的人脸视频添加准确的口型动作。 (Paper) Wav2Lip模型…

【汽车】-- 燃油发动机3缸和4缸

3缸和4缸燃油发动机是小轿车常见的发动机配置。以下从结构特点、性能、经济性等方面对两者进行对比,并分析优缺点及使用注意事项: 1. 结构与运行原理 3缸发动机 特点:少一个气缸,内部零部件更少,整体结构更紧凑。优点…

[NeurlPS 2022] STaR 开源代码实现解读

STaR 方法代码开源,这里给出一个中文代码解读地址:repo入口点:iteration_train.py;关键代码:device_train.py, device_inference.py, and create_finetune_tfrecords.py;基于 JAX、RAY,在 Googl…

欢迪迈手机商城设计与实现

文末获取源码和万字论文,制作不易,感谢点赞支持。 题目:欢迪迈手机商城设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管…

【鸿蒙实战开发】数据的下拉刷新与上拉加载

本章介绍 本章主要介绍 ArkUI 开发中最常用的场景下拉刷新, 上拉加载,在本章中介绍的内容在实际开发过程当中会高频的使用,所以同学们要牢记本章的内容。下面就让我们开始今天的讲解吧! List 组件 在 ArkUI 中List容器组件也可以实现数据滚动的效果&a…

UnityShaderLab 实现程序化形状(一)

1.实现一个长宽可变的矩形: 代码: fixed4 frag (v2f i) : SV_Target{return saturate(length(saturate(abs(i.uv - 0.5)-0.13)))/0.03;} 2.实现一个半径可变的圆形: 代码: fixed4 frag (v2f i) : SV_Target{return (distance(a…

高阶数据结构--B树B+树实现原理B树模拟实现--Java

目录 一、B-树概念 二、B-树插入分析 1.用序列{53, 139, 75, 49, 145, 36, 101}构建B树的过程如下: 2.插入过程总结 三、B树插入实现 四、B树 1.B树概念 2.B树的特性 五、B树应用 1.索引 2.Mysql索引 3.InnoDB 一、B-树概念 1970 年, R.Bayer 和…