HumanGaussian项目中diffusers模块导入失败问题求助
HumanGaussian项目中diffusers模块导入失败问题求助
我在使用HumanGaussian项目时遇到了diffusers相关的导入错误,具体报错信息如下:
Traceback (most recent call last): File "launch.py", line 239, in <module> main(args, extras) File "launch.py", line 182, in main trainer.fit(system, datamodule=dm, ckpt_path=cfg.resume) File "/data/gui/miniconda3/envs/hugs/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 538, in fit call._call_and_handle_interrupt( File "/data/gui/miniconda3/envs/hugs/lib/python3.8/site-packages/pytorch_lightning/trainer/call.py", line 47, in _call_and_handle_interrupt return trainer_fn(*args, **kwargs) File "/data/gui/miniconda3/envs/hugs/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 574, in _fit_impl self._run(model, ckpt_path=ckpt_path) File "/data/gui/miniconda3/envs/hugs/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 962, in _run call._call_lightning_module_hook(self, "on_fit_start") File "/data/gui/miniconda3/envs/hugs/lib/python3.8/site-packages/pytorch_lightning/trainer/call.py", line 167, in _call_lightning_module_hook output = fn(*args, **kwargs) File "/data/gui/MDM/HumanGaussian/threestudio/systems/GaussianDreamer.py", line 315, in on_fit_start self.guidance = threestudio.find(self.cfg.guidance_type)(self.cfg.guidance) File "/data/gui/MDM/HumanGaussian/threestudio/utils/base.py", line 63, in __init__ self.configure(*args, **kwargs) File "/data/gui/MDM/HumanGaussian/threestudio/models/guidance/dual_branch_guidance.py", line 96, in configure from .models.unet_rgbdepth import UNet2DConditionModel File "/data/gui/MDM/HumanGaussian/threestudio/models/guidance/models/unet_rgbdepth.py", line 38, in <module> from diffusers.models.unet_2d_blocks import ( ModuleNotFoundError: No module named 'diffusers.models.unet_2d_blocks'
我已经尝试执行pip install diffusers --upgrade将diffusers升级到0.32.1版本,但问题依然没有解决,怀疑是不是这个版本太新导致的?

可能的解决方案
这个问题主要是因为diffusers在新版本中调整了模块的目录结构,而HumanGaussian项目的代码还依赖旧版本的模块路径导致的,给你几个可行的解决方向:
安装项目兼容的diffusers旧版本
首先可以查看HumanGaussian项目的requirements.txt或者文档,看看有没有指定diffusers的版本号。如果没有明确说明,可以尝试降级到相对稳定的旧版本,比如0.25.1版本,这个版本中diffusers.models.unet_2d_blocks模块仍然存在:pip install diffusers==0.25.1修改项目中的导入路径
如果你不想降级diffusers,可以手动修改项目里的导入语句:找到threestudio/models/guidance/models/unet_rgbdepth.py文件,把原来的导入代码:from diffusers.models.unet_2d_blocks import (...)修改为新版本diffusers中的对应路径:
from diffusers.models.unets.unet_2d_blocks import (...)注意:修改后可能还会有其他依赖旧路径的地方,需要逐一检查并调整。
查看项目的社区修复方案
可以去HumanGaussian项目的问题区看看,有没有其他用户遇到同样的版本兼容问题,说不定已经有修复的PR或者解决方案可以参考。
备注:内容来源于stack exchange,提问作者x k G
相关产品推荐
相关产品推荐

