Upload inference.yaml with huggingface_hub
Browse files- inference.yaml +61 -0
inference.yaml
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# ---------------------------------------------------------------------------
|
| 2 |
+
# VolFill — inference config (visible-latent conditioned latent DiT, 16x VAE)
|
| 3 |
+
#
|
| 4 |
+
# Holds only the architecture / sampler settings the inference pipeline reads;
|
| 5 |
+
# all keys are flattened into a flat namespace by load_config().
|
| 6 |
+
#
|
| 7 |
+
# Checkpoint paths below are placeholders — override on the command line:
|
| 8 |
+
# python -m volfill.amodal.inference_latent_visible \
|
| 9 |
+
# --config configs/inference.yaml \
|
| 10 |
+
# --dit_checkpoint <dit.pth> --vae_checkpoint <vae.pth> \
|
| 11 |
+
# --input_path <image.jpg> --output ./results/
|
| 12 |
+
# ---------------------------------------------------------------------------
|
| 13 |
+
|
| 14 |
+
data:
|
| 15 |
+
# Latent normalization stats (mean/std) applied before/after the DiT.
|
| 16 |
+
# Visible-latent normalization falls back to these when unset.
|
| 17 |
+
latent_stats: assets/latent_stats_16x.npy
|
| 18 |
+
# visible_latent_stats: assets/visible_latent_stats_16x.npy # optional
|
| 19 |
+
truncation_voxels: 3.0 # TUDF truncation (voxel units); must match training
|
| 20 |
+
|
| 21 |
+
vae:
|
| 22 |
+
# VAE used to encode the visible TUDF and decode the sampled latent.
|
| 23 |
+
vae_checkpoint: checkpoints/volfill_vae.pth # placeholder — pass --vae_checkpoint
|
| 24 |
+
vae_type: sparse_encoder
|
| 25 |
+
vae_latent_channels: 16
|
| 26 |
+
vae_encoder_channels: [32, 64, 128, 256, 512]
|
| 27 |
+
vae_num_res_blocks: 2
|
| 28 |
+
vae_num_res_blocks_middle: 2
|
| 29 |
+
vae_norm_type: layer
|
| 30 |
+
vae_sparse_band_tau: 0.5
|
| 31 |
+
vae_sparse_dilate: 1
|
| 32 |
+
vae_sparse_min_voxels: 64
|
| 33 |
+
vae_light_decoder: true
|
| 34 |
+
vae_pointwise_from_level: 2
|
| 35 |
+
vae_decoder_type: sparse_gated
|
| 36 |
+
vae_sparse_dec_channels: 32
|
| 37 |
+
vae_sparse_dec_num_res_blocks: 2
|
| 38 |
+
vae_tau_surface: 0.5
|
| 39 |
+
vae_occ_resolution: 64
|
| 40 |
+
vae_occ_threshold: 0.5
|
| 41 |
+
vae_gt_mask_fixed_active: 28000
|
| 42 |
+
|
| 43 |
+
model:
|
| 44 |
+
latent_channels: 16 # must match vae_latent_channels
|
| 45 |
+
visible_channels: 16 # same VAE encoder is used for the visible latent
|
| 46 |
+
vis_cond_mode: add # zero-init add of the visible latent into the noisy latent
|
| 47 |
+
model_channels: 768 # DiT hidden dim
|
| 48 |
+
num_blocks: 12 # transformer blocks
|
| 49 |
+
num_heads: 12 # attention heads
|
| 50 |
+
patch_size: 1 # 3D patch size over the latent grid
|
| 51 |
+
cond_channels: 768 # MoGe token dim (output of MoGeConditioner)
|
| 52 |
+
use_checkpoint: false
|
| 53 |
+
qk_rms_norm: true
|
| 54 |
+
qk_rms_norm_cross: false
|
| 55 |
+
moge_model_name: Ruicheng/moge-2-vitl
|
| 56 |
+
|
| 57 |
+
# Sampler defaults (override with --cfg_strength / --steps).
|
| 58 |
+
sampler:
|
| 59 |
+
sigma_min: 1.0e-5
|
| 60 |
+
val_cfg: 3.0 # CFG guidance scale
|
| 61 |
+
val_steps: 50 # Euler ODE steps
|