当前位置:   article > 正文

latent-diffusion model环境配置--我转载的_# todo: add to reuquirements

# todo: add to reuquirements

latent-diffusion model环境配置,这可能是你能够找到的最细的博客了_latent diffusion model 训练 autoencoder-CSDN博客

 

前言

最近在研究diffusion模型,并对目前最火的stable-diffusion模型很感兴趣,又因为stable-diffusion是一种latent-diffusion模型,故尝试复现latent-diffusion model,并训练自己的LDM。

写这篇博客的出发点是因为,当我跟随github页面上的install教程进行安装的时候,遇到了很多问题,有些是因为网络问题,服务器无法直接下载国外服务器的资源;有些则是软件版本其实是错的,照着安装就是不对。

一、环境配置

我修改了以下项目中environment.yaml文件里的配置,这里请跟着我的步骤进行安装
我将environment.yaml文件中的配置提取了出来,防止直接安装yaml文件时出现网络错误,导致无法继续安装
1.创建requirement.txt文件

把下面的内容复制到requirement.txt文件里

  1. albumentations==0.4.3
  2. opencv-python==4.1.2.30
  3. pudb==2019.2
  4. imageio==2.9.0
  5. imageio-ffmpeg==0.4.2
  6. pytorch-lightning==1.4.2
  7. omegaconf==2.1.1
  8. test-tube>=0.7.5
  9. streamlit>=0.73.1
  10. einops==0.3.0
  11. torch-fidelity==0.3.0
  12. transformers==4.6.0
  13. torchmetrics==0.6
  14. kornia==0.5.10
  15. six
  16. -e git+https://github.com/CompVis/taming-transformers.git@master#egg=taming-transformers
  17. -e git+https://github.com/openai/CLIP.git@main#egg=clip
  18. -e .

 

2.提前从Github上下载好taming-transformers和clip

https://github.com/CompVis/taming-transformers

 https://github.com/openai/CLIP

 下载好后解压,然后将两个项目的文件夹名分别修改为taming-transformers和clip,然后把这两个文件夹复制到latent-diffusion项目下的src文件夹下(如果没有src文件夹,自己创建一个),如下图所示:

3.创建conda环境,并安装requirement.txt文件

执行下面命令创建ldm环境

  1. conda create -n ldm python=3.8.5 # 创建新环境
  2. conda activate ldm # 激活新环境

  

安装requirement.txt文件

pip install -r requirement.txt

Tips:
1.为什么我没有提前安装torch,因为安装好requirement.txt后,会自动安装上torch2.0,而torch2.0在执行代码时会报错,版本是错误的,因此我手动将其删除,再重新安装低版本的torch
2.如果按照LDM项目里的environment.yaml安装的话,会缺一些包,并且包的版本也是错的,进到导致代码执行报错。于是我Google好久找到了解决方法,以及合适的包。我已经将合适的包以及版本添加进了requirement.txt文件。如:
transformers升级为4.6.0版本,添加torchmetrics=0.6 (解决Bug的Answer)
添加kornia=0.5.10 (torch和kornia的对应关系),
添加six包。
照着安装你们就不用再走一遍弯路了。

 

 删除toch2.0

pip uninstall torch

4.安装torch 1.8

不要跟着environment.yaml里的torch版本安装,安装完执行代码依然会报错,cudatookit11.0 就是会出错,要用cudatookit11.1。执行下面命令安装

pip install torch==1.8.1+cu111 torchvision==0.9.1+cu111 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html

5.本地下载Bert模型权重,修改加载Bert的代码

因为国内的服务器大多数是无法直接访问huggingface网站的,进而导致无法联网下载模型,因而被迫只能先将模型下载到本地,然后再上传至服务器。
在这里下载bert-base-uncased的权重,只需要下载如图方块所示的文件即可:

https://huggingface.co/bert-base-uncased/tree/main

将这三个文件放在一个文件夹内,然后你可以将文件夹上传到服务器上LDM项目下的models目录下,

然后修改LDM项目下ldm/modules/encoders/modules.py这个文件
对应代码在第58行,修改from_pretrained的路径为本地路径,注意是权重文件对应文件夹名。也就是刚才那三个文件,放到bert文件夹下面

  1. class BERTTokenizer(AbstractEncoder):
  2. """ Uses a pretrained BERT tokenizer by huggingface. Vocab size: 30522 (?)"""
  3. def __init__(self, device="cuda", vq_interface=True, max_length=77):
  4. super().__init__()
  5. from transformers import BertTokenizerFast # TODO: add to reuquirements
  6. # self.tokenizer = BertTokenizerFast.from_pretrained("bert-base-uncased")
  7. # 需要提前从huggingface上把模型文件下载到本地,然后进行本地加载,否则会出现联网错误的问题,导致模型无法下载
  8. self.tokenizer = BertTokenizerFast.from_pretrained("models/bert") # 加载本地文件
  9. self.device = device
  10. self.vq_interface = vq_interface
  11. self.max_length = max_length

6.测试环境

测试Text-to-Image任务
如果模型文件你无法在服务器上直接下载,请在本地单独下载,然后再上传至服务器

  1. # 下载预训练权重(5.7GB):
  2. mkdir -p models/ldm/text2img-large/
  3. wget -O models/ldm/text2img-large/model.ckpt https://ommer-lab.com/files/latent-diffusion/nitro/txt2img-f8-large/model.ckpt
  4. # 执行脚本
  5. python scripts/txt2img.py --prompt "a virus monster is playing guitar, oil on canvas" --ddim_eta 0.0 --n_samples 4 --n_iter 4 --scale 5.0 --ddim_steps 50

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/793754
推荐阅读
相关标签
  

闽ICP备14008679号