nerfstudio icon indicating copy to clipboard operation
nerfstudio copied to clipboard

gsplat 1.0 breaks nerfstudio splatfacto

Open CameronFraser opened this issue 1 year ago • 7 comments

Describe the bug gsplat 1.0 moves some files around to different folders which causes import failures on new nerfstudio builds due to no upper bound on gsplat dependency

To Reproduce Steps to reproduce the behavior:

  1. Install nerfstudio
  2. Use splatfacto
ModuleNotFoundError: No module named 'gsplat._torch_impl'

CameronFraser avatar Jun 08 '24 00:06 CameronFraser

+1 to this. Just ran pip install -U gsplat and got the same error after running ns-train --help

rowellz avatar Jun 08 '24 02:06 rowellz

+1,I just run pip install gsplat==0.1.11 to avoid this and then i can use ns-train again

Timothy7890 avatar Jun 08 '24 04:06 Timothy7890

Not sure if either of you guys noticed this, but they recently pushed changes to this repo that fixes the problem with nerfstudio interfacing with gsplat 1.0.0. After rebuilding my working docker container, I was able to run pip install -U nerfstudio, which also upgraded gsplat to 1.0.0, which was encouraging to see.

That said, the splats which i got after running it through my existing pipeline with gsplat 1.0.0 was surprisingly not usable. I'll probably be reverting back in the meantime. Curious if you guys run into a similar experience. I'll probably be opening up a new issue on this soon

rowellz avatar Jun 10 '24 11:06 rowellz

@rowellz Please open issues if you experience any issue with the latest nerfstudio. Upgrading to gsplat 1.0.0 takes some effort before it stabilizes. If you have critical tasks, you can use nerfstudio 1.1.0 + gsplat 0.1.12

jb-ye avatar Jun 13 '24 16:06 jb-ye

I have the same problem with the docker, and it is related to only one dn_splatter library

            File "/home/user/nerfstudio/dn_splatter/dn_model.py", line 24, in <module>                                 
               from gsplat._torch_impl import quat_to_rotmat                                                            
           ModuleNotFoundError: No module named 'gsplat._torch_impl'    

https://github.com/maturk/dn-splatter/blob/bc83595b0685f0fba0f0b440d510bb9123a8fdb2/dn_splatter/dn_model.py#L24

As I understand from looking at gsplat now this method should be called either through .cuda or using normalize. Like this, for example: from gsplat.cuda._torch_impl import _eval_sh_bases_fast Here is the reference: https://github.com/nerfstudio-project/gsplat/blob/3a184580a0509da80d8d7a56178ab5c6bb736575/examples/utils.py#L86 And here the code https://github.com/nerfstudio-project/gsplat/blob/3a184580a0509da80d8d7a56178ab5c6bb736575/gsplat/cuda_legacy/_torch_impl.py#L227

efyphil avatar Jun 14 '24 13:06 efyphil

I have the same problem with the docker, and it is related to only one dn_splatter library

            File "/home/user/nerfstudio/dn_splatter/dn_model.py", line 24, in <module>                                 
               from gsplat._torch_impl import quat_to_rotmat                                                            
           ModuleNotFoundError: No module named 'gsplat._torch_impl'    

https://github.com/maturk/dn-splatter/blob/bc83595b0685f0fba0f0b440d510bb9123a8fdb2/dn_splatter/dn_model.py#L24

As I understand from looking at gsplat now this method should be called either through .cuda or using normalize. Like this, for example: from gsplat.cuda._torch_impl import _eval_sh_bases_fast Here is the reference: https://github.com/nerfstudio-project/gsplat/blob/3a184580a0509da80d8d7a56178ab5c6bb736575/examples/utils.py#L86 And here the code https://github.com/nerfstudio-project/gsplat/blob/3a184580a0509da80d8d7a56178ab5c6bb736575/gsplat/cuda_legacy/_torch_impl.py#L227

@efyphil, dn-splatter is not bundled with the docker image... you have installed the extenal dn_splatter library somehow within your docker container. Please uninstall dn-splatter ...

maturk avatar Jun 14 '24 13:06 maturk

use nerfstudio 1.1.0 + gsplat 0.1.12

when I return to nerfstudio 1.1.0 + gsplat 0.1.12, I got the error: ModuleNotFoundError: No module named 'nerfstudio.viewer.server.viewer_state'

VelvetOddity avatar Aug 01 '24 16:08 VelvetOddity

Currently, the only combination that works for me is: nerfstudio==1.0.3 gsplat==0.1.13

StefanBaar avatar Sep 20 '24 05:09 StefanBaar