• 在本地PC运行 Stable Diffusion 2.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 pytorch
     pip install transformers==4.19.2 diffusers invisible-watermark
     pip install -e .
    
    • 1
    • 2
    • 3

    创建虚拟环境

    将代码克隆到本地:

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

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

     conda create --name sd2 python=3.10
    
    • 1

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

     pip install -r requirements.txt
    
    • 1

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

     pip install transformers==4.19.2 diffusers invisible-watermark
    
    • 1

    获取CUDA的最新版本。

     conda install -c nvidia/label/cuda-11.4.0 cuda-nvcc
     conda install -c conda-forge gcc
     conda install -c conda-forge gxx_linux-64=9.5.0
    
    • 1
    • 2
    • 3

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

     git clone https://github.com/facebookresearch/xformers.git
     cd xformers
     git submodule update --init --recursive
     pip install -r requirements.txt
     pip install -e .
     cd ../stable-diffusion
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    编译可能需要一段时间(一般情况下 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 astronaut
      riding a horse" --ckpt .\models\512-base-ema.ckpt 
     --config configs/stable-diffusion/v2-inference-v.yaml 
     --H 512 --W 512 --plms --n_samples 1
    
    • 1
    • 2
    • 3
    • 4

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

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

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

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

    作者:Jim Clyde Monge

  • 相关阅读:
    浅谈百思捷国产MES(MOM)产品感悟
    Java根据一个List内Object的两个字段去重
    如何让虚拟角色自然融入现实?
    程序员,在北上广深杭赚够100万,就逃回二三四线城市生活,靠谱吗?
    2022年天然橡胶市场供需与价格走势
    柯桥日常口语学习|生活英语|实用口语口语天天练
    HBase学习笔记(2)—— API使用
    什么是交换分区以及如何创建交换分区
    动作活体检测能力,构建安全可靠的支付级“刷脸”体验
    Acwing-Hankson的趣味题-(dfs求因子+质数,因子,数字大小的各种关系的整理)
  • 原文地址:https://blog.csdn.net/m0_46510245/article/details/128169786