hustvl / GaussianDreamer

GaussianDreamer: Fast Generation from Text to 3D Gaussians by Bridging 2D and 3D Diffusion Models (CVPR 2024)
https://taoranyi.com/gaussiandreamer/
Apache License 2.0
589 stars 29 forks source link

ValueError: not enough values to unpack (expected 3, got 2) #19

Closed CrescentRosexx closed 5 months ago

CrescentRosexx commented 5 months ago

Thank you for your nice work! I was using wsl2 in win11, CUDA11.7+pytorch2.0.1, and I got the error... noticed that in the original 3D GS code it looked like this in /gaussiansplatting/gaussian_renderer/init.py",

rendered_image, radii = rasterizer(

but there is an extra depth in your work, here

rendered_image, radii, depth= rasterizer(

do I miss anything? here is the error:

/home/jx/miniconda3/bin/conda run -n gsdrm --no-capture-output python launch.py --config configs/gaussiandreamer-sd.yaml --train --gpu 0 system.prompt_processor.prompt=a fox Seed set to 0 [INFO] Using 16bit Automatic Mixed Precision (AMP) [INFO] GPU available: True (cuda), used: True [INFO] TPU available: False, using: 0 TPU cores [INFO] IPU available: False, using: 0 IPUs [INFO] HPU available: False, using: 0 HPUs [INFO] You are using a CUDA device ('NVIDIA GeForce RTX 3060') that has Tensor Cores. To properly utilize them, you should set torch.set_float32_matmul_precision('medium' | 'high') which will trade-off precision for performance. For more details, read https://pytorch.org/docs/stable/generated/torch.set_float32_matmul_precision.html#torch.set_float32_matmul_precision [INFO] LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0] prompt a fox 100%|██████████| 64/64 [00:19<00:00, 3.24it/s] /mnt/c/Programs/PyCharmWorkplace/GaussianDreamer/shap-e/shap_e/models/stf/renderer.py:286: UserWarning: exception rendering with PyTorch3D: No module named 'pytorch3d' warnings.warn(f"exception rendering with PyTorch3D: {exc}") /mnt/c/Programs/PyCharmWorkplace/GaussianDreamer/shap-e/shap_e/models/stf/renderer.py:287: UserWarning: falling back on native PyTorch renderer, which does not support full gradients warnings.warn( Number of points at initialisation : 69972 [INFO] | Name | Type | Params


0 Trainable params 0 Non-trainable params 0 Total params 0.000 Total estimated model params size (MB) [INFO] Validation results will be saved to outputs/gaussiandreamer-sd/a_fox@20240123-193108/save [INFO] Using prompt [a fox] and negative prompt [ugly, bad anatomy, blurry, pixelated obscure, unnatural colors, poor lighting, dull, and unclear, cropped, lowres, low quality, artifacts, duplicate, morbid, mutilated, poorly drawn face, deformed, dehydrated, bad proportions, unfocused] [INFO] Using view-dependent prompts [side]:[a fox, side view] [front]:[a fox, front view] [back]:[a fox, back view] [overhead]:[a fox, overhead view] [INFO] Loading Stable Diffusion ... Loading pipeline components...: 100%|██████████| 4/4 [00:16<00:00, 4.04s/it] [INFO] Loaded Stable Diffusion! /home/jx/miniconda3/envs/gsdrm/lib/python3.9/site-packages/pytorch_lightning/trainer/connectors/data_connector.py:441: The 'train_dataloader' does not have many workers which may be a bottleneck. Consider increasing the value of the num_workers argumenttonum_workers=15in theDataLoaderto improve performance. /home/jx/miniconda3/envs/gsdrm/lib/python3.9/site-packages/pytorch_lightning/trainer/connectors/data_connector.py:441: The 'val_dataloader' does not have many workers which may be a bottleneck. Consider increasing the value of thenum_workersargument to num_workers=15 in the DataLoader to improve performance. Epoch 0: | | 0/? [00:00<?, ?it/s] Traceback (most recent call last): File "/mnt/c/Programs/PyCharmWorkplace/GaussianDreamer/launch.py", line 239, in main(args, extras) File "/mnt/c/Programs/PyCharmWorkplace/GaussianDreamer/launch.py", line 182, in main trainer.fit(system, datamodule=dm, ckpt_path=cfg.resume) File "/home/jx/miniconda3/envs/gsdrm/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 544, in fit call._call_and_handle_interrupt( File "/home/jx/miniconda3/envs/gsdrm/lib/python3.9/site-packages/pytorch_lightning/trainer/call.py", line 44, in _call_and_handle_interrupt return trainer_fn(*args, kwargs) File "/home/jx/miniconda3/envs/gsdrm/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 580, in _fit_impl self._run(model, ckpt_path=ckpt_path) File "/home/jx/miniconda3/envs/gsdrm/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 989, in _run results = self._run_stage() File "/home/jx/miniconda3/envs/gsdrm/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 1035, in _run_stage self.fit_loop.run() File "/home/jx/miniconda3/envs/gsdrm/lib/python3.9/site-packages/pytorch_lightning/loops/fit_loop.py", line 202, in run self.advance() File "/home/jx/miniconda3/envs/gsdrm/lib/python3.9/site-packages/pytorch_lightning/loops/fit_loop.py", line 359, in advance self.epoch_loop.run(self._data_fetcher) File "/home/jx/miniconda3/envs/gsdrm/lib/python3.9/site-packages/pytorch_lightning/loops/training_epoch_loop.py", line 136, in run self.advance(data_fetcher) File "/home/jx/miniconda3/envs/gsdrm/lib/python3.9/site-packages/pytorch_lightning/loops/training_epoch_loop.py", line 240, in advance batch_output = self.automatic_optimization.run(trainer.optimizers[0], batch_idx, kwargs) File "/home/jx/miniconda3/envs/gsdrm/lib/python3.9/site-packages/pytorch_lightning/loops/optimization/automatic.py", line 187, in run self._optimizer_step(batch_idx, closure) File "/home/jx/miniconda3/envs/gsdrm/lib/python3.9/site-packages/pytorch_lightning/loops/optimization/automatic.py", line 265, in _optimizer_step call._call_lightning_module_hook( File "/home/jx/miniconda3/envs/gsdrm/lib/python3.9/site-packages/pytorch_lightning/trainer/call.py", line 157, in _call_lightning_module_hook output = fn(*args, kwargs) File "/home/jx/miniconda3/envs/gsdrm/lib/python3.9/site-packages/pytorch_lightning/core/module.py", line 1291, in optimizer_step optimizer.step(closure=optimizer_closure) File "/home/jx/miniconda3/envs/gsdrm/lib/python3.9/site-packages/pytorch_lightning/core/optimizer.py", line 151, in step step_output = self._strategy.optimizer_step(self._optimizer, closure, kwargs) File "/home/jx/miniconda3/envs/gsdrm/lib/python3.9/site-packages/pytorch_lightning/strategies/strategy.py", line 230, in optimizer_step return self.precision_plugin.optimizer_step(optimizer, model=model, closure=closure, *kwargs) File "/home/jx/miniconda3/envs/gsdrm/lib/python3.9/site-packages/pytorch_lightning/plugins/precision/amp.py", line 77, in optimizer_step closure_result = closure() File "/home/jx/miniconda3/envs/gsdrm/lib/python3.9/site-packages/pytorch_lightning/loops/optimization/automatic.py", line 140, in call self._result = self.closure(args, kwargs) File "/home/jx/miniconda3/envs/gsdrm/lib/python3.9/site-packages/torch/utils/_contextlib.py", line 115, in decorate_context return func(*args, kwargs) File "/home/jx/miniconda3/envs/gsdrm/lib/python3.9/site-packages/pytorch_lightning/loops/optimization/automatic.py", line 126, in closure step_output = self._step_fn() File "/home/jx/miniconda3/envs/gsdrm/lib/python3.9/site-packages/pytorch_lightning/loops/optimization/automatic.py", line 315, in _training_step training_step_output = call._call_strategy_hook(trainer, "training_step", kwargs.values()) File "/home/jx/miniconda3/envs/gsdrm/lib/python3.9/site-packages/pytorch_lightning/trainer/call.py", line 309, in _call_strategy_hook output = fn(args, kwargs) File "/home/jx/miniconda3/envs/gsdrm/lib/python3.9/site-packages/pytorch_lightning/strategies/strategy.py", line 382, in training_step return self.lightning_module.training_step(*args, *kwargs) File "/mnt/c/Programs/PyCharmWorkplace/GaussianDreamer/threestudio/systems/GaussianDreamer.py", line 291, in training_step out = self(batch) File "/home/jx/miniconda3/envs/gsdrm/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl return forward_call(args, **kwargs) File "/mnt/c/Programs/PyCharmWorkplace/GaussianDreamer/threestudio/systems/GaussianDreamer.py", line 240, in forward render_pkg = render(viewpoint_cam, self.gaussian, self.pipe, renderbackground) File "/mnt/c/Programs/PyCharmWorkplace/GaussianDreamer/gaussiansplatting/gaussian_renderer/init.py", line 86, in render rendered_image, radii ,depth= rasterizer( ValueError: not enough values to unpack (expected 3, got 2) Epoch 0: | | 0/? [00:02<?, ?it/s] ERROR conda.cli.main_run:execute(124): conda run python launch.py --config configs/gaussiandreamer-sd.yaml --train --gpu 0 system.prompt_processor.prompt=a fox failed. (See above for error)

CrescentRosexx commented 5 months ago

It turns out to because I installed the diff-gaussian-rasterization library in the original 3D GS...which is different from the one used in this work. my bad.

vrk7 commented 5 months ago

@CrescentRosexx how do u install it?

CrescentRosexx commented 5 months ago

@CrescentRosexx how do u install it?

@vrk7 Just install it according to the readme.... If you are asking if there is a problem, there seems to be a glm library missing in source code. When installing, it report glm not found error, so I copy the glm in 3D GS and put it in third_party

vrk7 commented 5 months ago

@CrescentRosexx I did the same after debugging and the installation worked fine.

Thank you for your response.