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

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

未完待续

相关推荐
IT古董33 分钟前
【机器学习】机器学习的基本分类-强化学习-策略梯度(Policy Gradient,PG)
人工智能·机器学习·分类
centurysee34 分钟前
【最佳实践】Anthropic:Agentic系统实践案例
人工智能
mahuifa34 分钟前
混合开发环境---使用编程AI辅助开发Qt
人工智能·vscode·qt·qtcreator·编程ai
四口鲸鱼爱吃盐36 分钟前
Pytorch | 从零构建GoogleNet对CIFAR10进行分类
人工智能·pytorch·分类
蓝天星空1 小时前
Python调用open ai接口
人工智能·python
睡觉狂魔er1 小时前
自动驾驶控制与规划——Project 3: LQR车辆横向控制
人工智能·机器学习·自动驾驶
scan7241 小时前
LILAC采样算法
人工智能·算法·机器学习
leaf_leaves_leaf1 小时前
win11用一条命令给anaconda环境安装GPU版本pytorch,并检查是否为GPU版本
人工智能·pytorch·python
夜雨飘零11 小时前
基于Pytorch实现的说话人日志(说话人分离)
人工智能·pytorch·python·声纹识别·说话人分离·说话人日志
爱喝热水的呀哈喽2 小时前
《机器学习》支持向量机
人工智能·决策树·机器学习