File size: 7,412 Bytes
6f9dd1c 27ba843 6f9dd1c 27ba843 6f9dd1c 5504235 6f9dd1c 6328bf3 6f9dd1c 945598a 6f9dd1c 27ba843 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 | ---
library_name: pytorch
license: mit
pipeline_tag: other
tags:
- semantic-scene-completion
- lidar
- semantickitti
- diffusion
- autonomous-driving
- 3d
---
# GSSC-S2D2 — released checkpoints
Pretrained weights for **S²D² (Structured Source Discrete Diffusion)** and the
PS³ pyramid generator, as released with the paper *Generative Semantic Scene
Completion*. Code, configs, docs and every reproduction command live in the
GitHub repository:
**➡ https://github.com/BillyChern/GSSC-S2D2**
> **Non-commercial.** Although our own contribution is MIT-licensed, every
> checkpoint here was trained on **SemanticKITTI**, which is distributed under
> **CC BY-NC-SA 4.0**. Downstream use of these weights therefore inherits that
> dataset's non-commercial, share-alike and attribution terms. The MIT grant
> does not by itself authorise commercial use. See `LICENSE` in this repo.
## What is in here
18 checkpoint directories, 52 files, **4.91 GB (4.58 GiB)**. Each directory
ships `config.json` (training config, `best_miou`, `global_step`,
`source_sha256`, paper cross-reference), `model.safetensors` (training
weights) and, where the run used EMA, `model_ema.safetensors` (deployment
weights — the paper convention and the default for the inference scripts).
One directory, `bev/bev_s2d2_scpnet/`, additionally ships the pre-conversion
`model.pt`; prefer the `.safetensors` (see *Verify before you load*).
| Directory | What it is |
|---|---|
| `gssc_mf/gssc_31k_mf_step40000/` | **Headline** S²D² model on the frozen SCPNet base |
| `gssc_mf/gssc_57k_mf_step40000/` | Internal 57K multi-frame negative result (in no paper table) |
| `gssc_sf/gssc_{0,10,20,31,57}K_sf_step*/` | Single-frame data-scaling companion sweep |
| `gssc_js3c/gssc_js3c_s2d2_real/` | Cross-base row: JS3C-Net + S²D² |
| `gssc_lmsc/gssc_lmsc_s2d2_real/` | Cross-base row: LMSCNet + S²D² |
| `gssc_timesteps/gssc_{T10,T50,T100skewed}/` | Timestep-schedule ablation (supplement prose, no table) |
| `pyramid/pyramid_s{1,2,3}/` | PS³ pyramid generator stages (32×32×4 → 64×64×8 → 256×256×32) |
| `bev/bev_s2d2_scpnet/` | The BEV secondary-task model |
| `bev/bev_perception_net/` | A 938K-param refinement net. **NOT** the paper's BEV row, and it does not load in the BEV evaluator |
| `bev/bev_direct_l3_deeper/` | Internal BEV-architecture ablation, not tabulated |
| `scpnet_v2_port.pth` | Third-party SCPNet base weights (see licence below) |
| `MANIFEST.txt` | Generated cross-reference: directory → paper label, size, provenance |
| `checksums.txt` | Generated SHA256 of every other file in this repo |
**`MANIFEST.txt` is the authority** on which checkpoint backs which paper
claim, and under which evaluation protocol. It is generated from disk and
from each `config.json`, so it cannot drift from what is actually here. Read
it before quoting any number from these weights — several of them are
internal diagnostics that the paper deliberately does not print, and one
directory (`bev/bev_perception_net/`) has previously been mis-cited as the
paper's BEV model.
Headline result for orientation only: `gssc_mf/gssc_31k_mf_step40000`
reaches **38.54 % val mIoU** on SemanticKITTI sequence 08 (N=1, no TTA,
official `semantic-kitti-api`). The cross-base rows lift their frozen bases
by **+1.6 pp** (JS3C-Net) and **+1.8 pp** (LMSCNet) under the same evaluator.
Full per-row numbers, protocols and commands are in
[`docs/MODEL_ZOO.md`](https://github.com/BillyChern/GSSC-S2D2/blob/main/docs/MODEL_ZOO.md).
## Download
The supported route is the downloader in the code repository, which places
everything where the configs expect it (`data/checkpoints/`):
```bash
git clone https://github.com/BillyChern/GSSC-S2D2
cd GSSC-S2D2
python scripts/download_assets.py --checkpoints # ~4.9 GB
```
Or directly:
```python
from huggingface_hub import snapshot_download
snapshot_download("Stone-Chern/GSSC-S2D2-checkpoints",
repo_type="model", local_dir="data/checkpoints")
```
## Verify before you load
```bash
cd data/checkpoints && sha256sum -c checksums.txt
```
Paths inside `checksums.txt` are relative to that directory, so run it from
**inside** `data/checkpoints/`, not from its parent. Every line must print
`OK` and the command must exit 0.
This matters more than usual here. Of the 52 files, 30 are `.safetensors` -- a
format that cannot carry an executable payload -- but **two are pickles**:
the third-party `scpnet_v2_port.pth`, and `bev/bev_s2d2_scpnet/model.pt` (the
pre-conversion copy of that checkpoint's weights; the `.safetensors` beside it
is the one the evaluator command uses). GSSC-S2D2 loads `.pt` / `.pth`
checkpoints with `torch.load(..., weights_only=False)`, because the saved
state carries optimizer and EMA buffers that `weights_only=True` cannot
represent, so loading a tampered one is equivalent to running
attacker-supplied code. For `scpnet_v2_port.pth` that loader is
`src/gssc/inference/run_scpnet.py`, which `scripts/eval_semanticposs.py`
drives with `--checkpoint data/checkpoints/scpnet_v2_port.pth`. A `FAILED` or
`FAILED open or read` line means **do not load that file**. See
[`SECURITY.md`](https://github.com/BillyChern/GSSC-S2D2/blob/main/SECURITY.md).
## Paper
Generative Semantic Scene Completion — https://arxiv.org/abs/2608.26737
## Related repositories
* **Code** — https://github.com/BillyChern/GSSC-S2D2
* **Datasets** (base-model predictions + rare-class object bank) —
[`Stone-Chern/GSSC-S2D2-datasets`](https://huggingface.co/datasets/Stone-Chern/GSSC-S2D2-datasets)
* **Synthetic pool** — cite
[doi:10.21227/nqgf-9k39](https://dx.doi.org/10.21227/nqgf-9k39) (IEEE
DataPort; downloading from there needs an IEEE DataPort subscription),
download from either that record or the free mirror
[`Stone-Chern/PS3-SemanticKITTI`](https://huggingface.co/datasets/Stone-Chern/PS3-SemanticKITTI),
which holds the identical archives. `docs/DATASET.md` also documents a local
rebuild. The pyramid generator checkpoints in this repo are what that rebuild
runs.
## Licence
* **Our contribution** (the trained weights, manifests and this card): **MIT**
— see the `LICENSE` file in this repository.
* **Upstream data**: all weights were trained on **SemanticKITTI**
([CC BY-NC-SA 4.0](https://semantic-kitti.org/dataset.html)) — non-commercial,
share-alike, attribution required. Credit SemanticKITTI and KITTI when you
use these weights.
* **`scpnet_v2_port.pth`**: third-party **SCPNet** (Xia et al., CVPR 2023)
pretrained weights, carried unmodified -- the "port" in the name is
spconv-2.3 kernel-shape patching applied at load time, not a modified file. SCPNet publishes no upstream licence; this
file is redistributed with the SCPNet authors' explicit permission and with
attribution to them. No licence is asserted on their behalf.
The full notice list is in `LICENSE` here, and in
[`THIRD_PARTY_NOTICES.md`](https://github.com/BillyChern/GSSC-S2D2/blob/main/THIRD_PARTY_NOTICES.md)
in the code repository.
## Citation
```bibtex
@unpublished{chen2026gssc,
title = {Generative Semantic Scene Completion},
author = {Chen, Shi and Ge, Weifeng},
note = {Under review},
year = {2026}
}
```
Please also cite [SemanticKITTI](https://semantic-kitti.org/) as the source
dataset, and the relevant base model (SCPNet, JS3C-Net or LMSCNet) when using
a cross-base checkpoint. |