latent diffusion model 复现问题记录

按照官方github配置虚拟环境

官方github地址:
latent diffusion model

下载environment.yamlsetup.py文件进行环境配置
conda env create -f environment.yaml
conda activate ldm
在配置环境的过程中,会出现报错

Installing pip dependencies: \ Ran pip subprocess with arguments:
['/home/****/.conda/envs/ldm/bin/python', '-m', 'pip', 'install', '-U', '-r', '/mnt/****/****/latent-diffusion-main/condaenv.ie4dsr_m.requirements.txt']
Pip subprocess output:
Obtaining taming-transformers from git+https://github.com/CompVis/taming-transformers.git@master#egg=taming-transformers (from -r /mnt/****/****/latent-diffusion-main/condaenv.ie4dsr_m.requirements.txt (line 13))
  Cloning https://github.com/CompVis/taming-transformers.git (to revision master) to ./src/taming-transformers

Pip subprocess error:
ERROR: Command errored out with exit status 128: git clone -q https://github.com/CompVis/taming-transformers.git /mnt/****/****/latent-diffusion-main/src/taming-transformers Check the logs for full command output.
                                                                                                                                                       failed

CondaEnvException: Pip failed

这是由于environment.yaml的下面两行导致的

#environment.yaml
...
  	- -e git+https://github.com/CompVis/taming-transformers.git@master#egg=taming-transformers
    - -e git+https://github.com/openai/CLIP.git@main#egg=clip
    - -e .

这时候可以直接把这两行注释掉,利用下面的命令进行手动安装,
pip install taming-transformers
pip install clip
在这个路径下可以看到两个安装的模型即安装成功
/home/user/.conda/envs/ldm/lib/python3.8/site-packages/xxx(taming, clip)/
如果第一次安装出现了问题,可以使用以下命令更新环境
conda env update -n environment_name -f environment.yaml

下载预训练模型

官方已经给出了各个数据集的预训练模型,直接点连接下载即可。
预训练模型
下载的模型要进行一步解压,并且要从/models/ldm/ffhq256/下载一个config.yaml文件放到该目录下(之后会用到, 并且会省去很多不必要的麻烦),目录结构如图所示
在这里插入图片描述

ModuleNotFoundError: No module named ‘ldm’

按道理来说,环境到这里就算配置完成了,但是有一个巨坑一定要注意!!!!如果直接运行sample-diffusion.py,会出现ModuleNotFoundError: No module named 'ldm’的错误,这时候不要用pip install ldm手动安装,因为此ldm非彼ldm啊啊啊啊啊!
这时候可以下载整个项目,把sample-diffusion.py放在和ldm文件夹的同一级目录下,才可以引包成功!!!试了半天绝对路径的调用方法,不如直接调换代码文件的位置来的快~
在这里插入图片描述
基于此,就可以按照官方给的指令运行代码,生成自己的数据集了

生成数据集

CUDA_VISIBLE_DEVICES=<GPU_ID> python scripts/sample_diffusion.py -r models/ldm/<model_spec>/model.ckpt -l <logdir> -n <\#samples> --batch_size <batch_size> -c <\#ddim steps> -e <\#eta> 

参数可以根据自己的需求设置
在运行的过程中,如果出现
在这里插入图片描述
或者
在这里插入图片描述
则说明自己的config.yaml文件没有放对位置,要放在和model.ckpt相同的目录下。
此外,如果出现**ModuleNotFoundError: No module named ‘XXX’ **则说明包的版本不对,可以按照environment.yaml的要求,替换成正确的包。
如果出现
在这里插入图片描述
则把quantize.py替换成下面连接里的代码
quantize.py

效果展示

到此为止,应该就可以生成自己的图片了生成效果如下

在这里插入图片描述 在这里插入图片描述

参考链接

新手第一次上路,遇到了许多问题,感谢前人总结的经验!
复现问题记录 | Stable Diffusion(LDM) (in python3)(一)
ImportError: cannot import name ‘get_num_classes’ from ‘torchmetrics.utilities.data’
ImportError: cannot import name ‘VectorQuantizer2’ from ‘taming.modules.vqvae.quantize’

  • 0
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值