tangjiapeng / DiffuScene

[CVPR 2024] DiffuScene: Denoising Diffusion Models for Generative Indoor Scene Synthesis
Other
188 stars 15 forks source link

No module named 'scene_synthesis' #16

Closed KzZheng closed 4 months ago

KzZheng commented 4 months ago

When I try generate_diffusion.py, it shows No module named 'scene_synthesis' when the objects_dataset is loading

    # Build the dataset of 3D models
    objects_dataset = ThreedFutureDataset.from_pickled_dataset(
        args.path_to_pickled_3d_futute_models
    )
    print("Loaded {} 3D-FUTURE models".format(len(objects_dataset)))

How to solve this problem? Where can I find scene_synthesis module?

tangjiapeng commented 4 months ago

it should scene_diffusion, i forget to update the library name here.

tangjiapeng commented 4 months ago

can you provide more error information? i run it in my machine, it works well.

KzZheng commented 4 months ago

I download your processed dataset and I set path_to_pickled_3d_futute_models=.../3d_front_processed/threed_future_model_bedroom.pkl since I find threed_future_model_bedroom.pkl is not inside 3d_front_processed/bedrooms (which is written in generate.sh).

Then, when code runs to line 221, the objects_dataset fails to load from pickled dataset since scene_synthesis module is missing.

My guess is that you uploaded the wrong PLK files. You can try to download the current preprocessed dataset and try again.

KzZheng commented 4 months ago

Also, when I try to initialize the Scene from simple_3dviz, I encounter another issue: _moderngl.Error: the framebuffer is not complete (UNSUPPORTED). My simple_3dviz==0.4.0 Do you know how to solve this problem? Thanks!

Here is a dummy code to reproduce the error from my side:

>>> from simple_3dviz import Scene
>>> scene_top2down = Scene(size=(256, 256), background=[1,1,1,1])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/kaizhi/.conda/envs/diffuscene/lib/python3.10/site-packages/simple_3dviz/scenes.py", line 110, in __init__
    super(Scene, self).__init__(size, background, ctx)
  File "/home/kaizhi/.conda/envs/diffuscene/lib/python3.10/site-packages/simple_3dviz/scenes.py", line 28, in __init__
    self._framebuffer = self._ctx.framebuffer(
  File "/home/kaizhi/.conda/envs/diffuscene/lib/python3.10/site-packages/moderngl/__init__.py", line 1802, in framebuffer
    res.mglo, res._size, res._samples, res._glo = self.mglo.framebuffer(ca_mglo, da_mglo)
_moderngl.Error: the framebuffer is not complete (UNSUPPORTED)
hjjeong commented 4 months ago

I think scene_synthesis folder in ATISS should be added in the scripts folder. please check https://github.com/nv-tlabs/ATISS.

tangjiapeng commented 4 months ago

HI, you can rename the built package 'scene_diffusion' as 'scene_synthesis'

hjjeong commented 4 months ago

How can I do that? Just modify the folder name 'scene_diffusion' to 'scene_synthesis'?