gsplat 1.0 breaks nerfstudio splatfacto
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:
- Install nerfstudio
- Use splatfacto
ModuleNotFoundError: No module named 'gsplat._torch_impl'
+1 to this. Just ran pip install -U gsplat and got the same error after running ns-train --help
+1,I just run pip install gsplat==0.1.11 to avoid this and then i can use ns-train again
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 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
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
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_fastHere 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 ...
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'
Currently, the only combination that works for me is: nerfstudio==1.0.3 gsplat==0.1.13