在本地PC运行 Stable Diffusion 2.0
创始人
2024-03-16 17:34:08
0

Stable Diffusion 2.0在前几天已经发布了,新版本在上一个版本的基础上进行了许多改进。OpenCLIP中新的深度检测和更好的文本到图像模型是主要的改进之一。

有很多的文章介绍了Stable Diffusion 2.0的改进,所以我们就不多介绍了,这里我们将介绍如何在本地PC上尝试新版本,因为只有我们实际运行成功了,我们才能够通过代码了解它是如何实现的。

本文主要介绍如何在本地运行,所以并不涉及代码方面的工作,但是也不代表本文就很简单。

系统需求

  • Windows 10/11操作系统
  • Nvidia GPU RTX,至少12GB的RAM
  • 本地磁盘空间至少25GB

注意“模型可以在8GB的VRAM上运行,但分辨率将只能到256x256。

软件需求:

  • Anaconda
  • git
  • Pytorch

首先,我们安装环境

 conda install pytorch==1.12.1 torchvision==0.13.1 -c pytorchpip install transformers==4.19.2 diffusers invisible-watermarkpip install -e .

创建虚拟环境

将代码克隆到本地:

https://github.com/Stability-AI/stablediffusion

然后用Anaconda创建一个新的环境:

 conda create --name sd2 python=3.10

激活环境。然后安装相应的包:

 pip install -r requirements.txt

安装iWatermark模块,虽然是可选的,但是如果不装可能会有问题,所以我们还是装一下:

 pip install transformers==4.19.2 diffusers invisible-watermark

获取CUDA的最新版本。

 conda install -c nvidia/label/cuda-11.4.0 cuda-nvccconda install -c conda-forge gccconda install -c conda-forge gxx_linux-64=9.5.0

安装“xformer”这样可以提高效率和速度。

 git clone https://github.com/facebookresearch/xformers.gitcd xformersgit submodule update --init --recursivepip install -r requirements.txtpip install -e .cd ../stable-diffusion

编译可能需要一段时间(一般情况下 10-20分钟,根据电脑有所区别)。

如果安装顺利,代码将自动设置U-Net和自编码器中的自注意层和交叉注意层,这样可以尽可能少的内存。

有了这些设置,我们现在开始准备模型。

使用模型生成图像

Stable Diffusion 2.0为不同的要求发布了单独的模型。请根据需要单独下载它们。

  • 稳定扩散2.0基础模型768x768 => 768-v-ema.ckpt (5 gb)
  • 稳定扩散2.0基础模型512x512 => 512-v-ema.ckpt (5 gb)
  • 稳定扩散2.0深度模型=> 512-depth-ema.ckpt (5.7 GB)
  • 稳定扩散2.0 X4 Upscaler => X4 - Upscaler -ema.ckpt (3.5 GB)
  • 稳定扩散2.0 inpainting => 512-inpainting-ema.ckpt (5.2 GB)

下载地址在这里:https://huggingface.co/stabilityai

把上面的模型下载到model目录

然后可以测试一下是否能够生成图形

 python scripts/txt2img.py --prompt "a professional photograph of an astronautriding a horse" --ckpt .\models\512-base-ema.ckpt --config configs/stable-diffusion/v2-inference-v.yaml --H 512 --W 512 --plms --n_samples 1

得到这条输出,说明图像已成功渲染。

注意:如果你使用类似NVidia RTX 3060 Ti,那么因为它只有8GB的RAM。所以不足以支持512x512的图像,只能生成很糟糕的256x256的图像,如下所示:

所以如果你有一个更强大的GPU,那么可以生成更好的图像。

https://avoid.overfit.cn/post/dbe660ce7f5e4580ba97f3c5a333317e

作者:Jim Clyde Monge

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...