Official code release for our CVPR Workshop paper.
cd /path/to/EditSSC
conda env create -f environment.yml
conda activate editsscRun:
python script/train_ae_main.py --config configs/common_ae_base.yamlRun triplane extraction:
python script/save_triplane.py --config configs/common_ae_base.yamlTrain an unconditional diffusion model on the saved triplanes:
python script/train_diffusion_main.py --config configs/common_diffusion_base.yamlTrain a LiDAR-conditioned diffusion model :
python script/train_diffusion_main.py --config configs/common_diffusion_cond_lidar.yamlGenerate scenes from a trained diffusion checkpoint.
python generation/generate_samples.py --config configs/common_diffusion_base.yamlTraining-free scene generation from a BEV sketch (canvas). The pipeline has two steps: first build a class ↔ VQ-VAE code mapping, then run inpainting with a sketch layout.
Run this on your trained autoencoder. It measures which VQ-VAE codebook entries correspond to each semantic class and writes two files :
vqvae_codes_analysis.txt— human-readable reportvqvae_codes_99_coverage.json— mapping used by sketch generation (~99% class coverage)
python generation/analyze_vqvae_codes.py --config configs/common_ae_base.yamlPass the JSON from step 1 to map each canvas pixel (semantic class id) to a VQ-VAE code, then inpaint with the diffusion model.
List built-in canvas layouts:
python generation/training_free_gen.py --listRun with one or several predefined layouts (roundabout, S-road, cross-road, etc.):
python generation/training_free_gen.py \
--config configs/common_diffusion_base.yaml \
--codes-json models/semantic_ae/common_ae_base/vqvae_codes_99_coverage.json \
--canvas roundaboutYou can also use your own BEV sketches by adding a builder in
generation/training_free_gen.py:
- Define a function that returns a
(128, 128)NumPy array of SemanticKITTI train ids (e.g.0empty,9road,15vegetation,1car — see canvas builders in the same file). - Register it in
CANVAS_REGISTRYwith abuild_fnandsave_dir_suffix. - Run with
--canvas your_layout_nameas above.