Skip to content

ns-render crashes with "need at least one array to stack" #3749

@Eecornwell

Description

@Eecornwell

Describe the bug
After training using splatfacto, a video is rendered using the command but an error shows.

To Reproduce
Steps to reproduce the behavior:

  1. Use (600) 5048x3340 processed by colmap
  2. Train dataset on splatfacto w/ bilateral grid for 30k
    ['ns-train',
    'splatfacto',
    '--viewer.quit-on-train-completion=True',
    '--logging.local-writer.enable', 'False',
    '--logging.profiler', 'none',
    '--timestamp', 'train-stage-1',
    '--pipeline.model.use-scale-regularization', 'True',
    '--max-num-iterations', '30000',
    '--pipeline.model.use-bilateral-grid', 'True',
    '--pipeline.datamanager.dataloader-num-workers', '0',
    '--pipeline.datamanager.cache-images', 'disk',
    'colmap',
    '--data', '/mnt/data/workflow-input',
    '--downscale-factor', '1',
    '--auto-scale-poses', 'False']
  3. Export trajectory video
    [
    'ns-render',
    'interpolate',
    '--load-config', 'outputs/unnamed/splatfacto/train-stage-1/config.yml',
    '--output-path', '/mnt/data/workflow-input/exports/render.mp4',
    '--frame-rate', '10']

Expected behavior
No error, output the video.

Screenshots
If applicable, add screenshots to help explain your problem.

Additional context

INFO     03/20/2026 12:56:19 AM Component command: ['ns-train', 'splatfacto', '--viewer.quit-on-train-completion=True', '--logging.local-writer.enable', 'False', '--logging.profiler', 'none',
'--timestamp', 'train-stage-1', '--pipeline.model.use-scale-regularization', 'True', '--max-num-iterations', '30000', '--pipeline.model.use-bilateral-grid', 'True',                                               
'--pipeline.datamanager.dataloader-num-workers', '0', '--pipeline.datamanager.cache-images', 'disk', 'colmap', '--data', '/mnt/data/workflow-input', '--downscale-factor', '1',                                    
'--auto-scale-poses', 'False']                                                                                                                                                                                     
/opt/ml/code/nerfstudio/nerfstudio/process_data/process_data_utils.py:205: SyntaxWarning: invalid escape sequence '\,'
  select_cmd = "select='" + "+".join([f"eq(n\,{idx})" for idx in frame_indices]) + "',setpts=N/TB,"
/opt/ml/code/nerfstudio/nerfstudio/field_components/activations.py:32: FutureWarning: `torch.cuda.amp.custom_fwd(args...)` is deprecated. Please use `torch.amp.custom_fwd(args..., device_type='cuda')` instead.
  @custom_fwd(cast_inputs=torch.float32)
/opt/ml/code/nerfstudio/nerfstudio/field_components/activations.py:38: FutureWarning: `torch.cuda.amp.custom_bwd(args...)` is deprecated. Please use `torch.amp.custom_bwd(args..., device_type='cuda')` instead.
  @custom_bwd
──────────────────────────────────────────────────────── Config ────────────────────────────────────────────────────────
TrainerConfig(
    _target=<class 'nerfstudio.engine.trainer.Trainer'>,
    output_dir=PosixPath('outputs'),
    method_name='splatfacto',
    experiment_name=None,
    project_name='nerfstudio-project',
    timestamp='train-stage-1',
    machine=MachineConfig(seed=42, num_devices=1, num_machines=1, machine_rank=0, dist_url='auto', device_type='cuda'),
    logging=LoggingConfig(
        relative_log_dir=PosixPath('.'),
        steps_per_log=10,
        max_buffer_size=20,
        local_writer=LocalWriterConfig(
            _target=<class 'nerfstudio.utils.writer.LocalWriter'>,
            enable=False,
            stats_to_track=(
                <EventName.ITER_TRAIN_TIME: 'Train Iter (time)'>,
                <EventName.TRAIN_RAYS_PER_SEC: 'Train Rays / Sec'>,
                <EventName.CURR_TEST_PSNR: 'Test PSNR'>,
                <EventName.VIS_RAYS_PER_SEC: 'Vis Rays / Sec'>,
                <EventName.TEST_RAYS_PER_SEC: 'Test Rays / Sec'>,
                <EventName.ETA: 'ETA (time)'>
            ),
            max_log_size=10
        ),
        profiler='none'
    ),
    viewer=ViewerConfig(
        relative_log_filename='viewer_log_filename.txt',
        websocket_port=None,
        websocket_port_default=7007,
        websocket_host='0.0.0.0',
        num_rays_per_chunk=32768,
        max_num_display_images=512,
        quit_on_train_completion=True,
        image_format='jpeg',
        jpeg_quality=75,
        make_share_url=False,
        camera_frustum_scale=0.1,
        default_composite_depth=True
    ),
    pipeline=VanillaPipelineConfig(
        _target=<class 'nerfstudio.pipelines.base_pipeline.VanillaPipeline'>,
        datamanager=FullImageDatamanagerConfig(
            _target=<class 'nerfstudio.data.datamanagers.full_images_datamanager.FullImageDatamanager'>,
            data=None,
            masks_on_gpu=False,
            images_on_gpu=False,
            dataparser=ColmapDataParserConfig(
                _target=<class 'nerfstudio.data.dataparsers.colmap_dataparser.ColmapDataParser'>,
                data=PosixPath('/mnt/data/workflow-input'),
                scale_factor=1.0,
                downscale_factor=1,
                downscale_rounding_mode='floor',
                tiling_factor=1,
                scene_scale=1.0,
                orientation_method='up',
                center_method='poses',
                auto_scale_poses=False,
                assume_colmap_world_coordinate_convention=True,
                eval_mode='interval',
                train_split_fraction=0.9,
                eval_interval=8,
                depth_unit_scale_factor=0.001,
                images_path=PosixPath('images'),
                masks_path=None,
                depths_path=None,
                colmap_path=PosixPath('colmap/sparse/0'),
                load_3D_points=True,
                max_2D_matches_per_3D_point=0
            ),
            camera_res_scale_factor=1.0,
            eval_num_images_to_sample_from=-1,
            eval_num_times_to_repeat_images=-1,
            cache_images='disk',
            cache_images_type='uint8',
            max_thread_workers=None,
            train_cameras_sampling_strategy='random',
            train_cameras_sampling_seed=42,
            fps_reset_every=100,
            dataloader_num_workers=0,
            prefetch_factor=4,
            cache_compressed_images=False
        ),
        model=SplatfactoModelConfig(
            _target=<class 'nerfstudio.models.splatfacto.SplatfactoModel'>,
            enable_collider=True,
            collider_params={'near_plane': 2.0, 'far_plane': 6.0},
            loss_coefficients={'rgb_loss_coarse': 1.0, 'rgb_loss_fine': 1.0},
            eval_num_rays_per_chunk=4096,
            prompt=None,
            warmup_length=500,
            refine_every=100,
            resolution_schedule=3000,
            background_color='random',
            num_downscales=2,
            cull_alpha_thresh=0.1,
            cull_scale_thresh=0.5,
            reset_alpha_every=30,
            densify_grad_thresh=0.0008,
            use_absgrad=True,
            densify_size_thresh=0.01,
            n_split_samples=2,
            sh_degree_interval=1000,
            cull_screen_size=0.15,
            split_screen_size=0.05,
            stop_screen_size_at=4000,
            random_init=False,
            num_random=50000,
            random_scale=10.0,
            ssim_lambda=0.2,
            stop_split_at=15000,
            sh_degree=3,
            use_scale_regularization=True,
            max_gauss_ratio=10.0,
            output_depth_during_training=False,
            rasterize_mode='classic',
            camera_optimizer=CameraOptimizerConfig(
                _target=<class 'nerfstudio.cameras.camera_optimizers.CameraOptimizer'>,
                mode='off',
                trans_l2_penalty=0.01,
                rot_l2_penalty=0.001,
                optimizer=None,
                scheduler=None
            ),
            use_bilateral_grid=True,
            grid_shape=(16, 16, 8),
            color_corrected_metrics=False,
            strategy='default',
            max_gs_num=1000000,
            noise_lr=500000.0,
            mcmc_opacity_reg=0.01,
            mcmc_scale_reg=0.01
        )
    ),
    optimizers={
        'means': {
            'optimizer': AdamOptimizerConfig(
                _target=<class 'torch.optim.adam.Adam'>,
                lr=0.00016,
                eps=1e-15,
                max_norm=None,
                weight_decay=0
            ),
            'scheduler': ExponentialDecaySchedulerConfig(
                _target=<class 'nerfstudio.engine.schedulers.ExponentialDecayScheduler'>,
                lr_pre_warmup=1e-08,
                lr_final=1.6e-06,
                warmup_steps=0,
                max_steps=30000,
                ramp='cosine'
            )
        },
        'features_dc': {
            'optimizer': AdamOptimizerConfig(
                _target=<class 'torch.optim.adam.Adam'>,
                lr=0.0025,
                eps=1e-15,
                max_norm=None,
                weight_decay=0
            ),
            'scheduler': None
        },
        'features_rest': {
            'optimizer': AdamOptimizerConfig(
                _target=<class 'torch.optim.adam.Adam'>,
                lr=0.000125,
                eps=1e-15,
                max_norm=None,
                weight_decay=0
            ),
            'scheduler': None
        },
        'opacities': {
            'optimizer': AdamOptimizerConfig(
                _target=<class 'torch.optim.adam.Adam'>,
                lr=0.05,
                eps=1e-15,
                max_norm=None,
                weight_decay=0
            ),
            'scheduler': None
        },
        'scales': {
            'optimizer': AdamOptimizerConfig(
                _target=<class 'torch.optim.adam.Adam'>,
                lr=0.005,
                eps=1e-15,
                max_norm=None,
                weight_decay=0
            ),
            'scheduler': None
        },
        'quats': {
            'optimizer': AdamOptimizerConfig(
                _target=<class 'torch.optim.adam.Adam'>,
                lr=0.001,
                eps=1e-15,
                max_norm=None,
                weight_decay=0
            ),
            'scheduler': None
        },
        'camera_opt': {
            'optimizer': AdamOptimizerConfig(
                _target=<class 'torch.optim.adam.Adam'>,
                lr=0.0001,
                eps=1e-15,
                max_norm=None,
                weight_decay=0
            ),
            'scheduler': ExponentialDecaySchedulerConfig(
                _target=<class 'nerfstudio.engine.schedulers.ExponentialDecayScheduler'>,
                lr_pre_warmup=0,
                lr_final=5e-07,
                warmup_steps=1000,
                max_steps=30000,
                ramp='cosine'
            )
        },
        'bilateral_grid': {
            'optimizer': AdamOptimizerConfig(
                _target=<class 'torch.optim.adam.Adam'>,
                lr=0.002,
                eps=1e-15,
                max_norm=None,
                weight_decay=0
            ),
            'scheduler': ExponentialDecaySchedulerConfig(
                _target=<class 'nerfstudio.engine.schedulers.ExponentialDecayScheduler'>,
                lr_pre_warmup=0,
                lr_final=0.0001,
                warmup_steps=1000,
                max_steps=30000,
                ramp='cosine'
            )
        }
    },
    vis='viewer',
    data=None,
    prompt=None,
    relative_model_dir=PosixPath('nerfstudio_models'),
    load_scheduler=True,
    steps_per_save=2000,
    steps_per_eval_batch=0,
    steps_per_eval_image=100,
    steps_per_eval_all_images=1000,
    max_num_iterations=30000,
    mixed_precision=False,
    use_grad_scaler=False,
    save_only_latest_checkpoint=True,
    load_dir=None,
    load_step=None,
    load_config=None,
    load_checkpoint=None,
    log_gradients=False,
    gradient_accumulation_steps={},
    start_paused=False
)
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
[00:56:28] Saving config to: outputs/unnamed/splatfacto/train-stage-1/config.yml                experiment_config.py:136
/opt/ml/code/nerfstudio/nerfstudio/engine/trainer.py:137: FutureWarning: `torch.cuda.amp.GradScaler(args...)` is deprecated. Please use `torch.amp.GradScaler('cuda', args...)` instead.
  self.grad_scaler = GradScaler(enabled=self.use_grad_scaler)
           Saving checkpoints to: outputs/unnamed/splatfacto/train-stage-1/nerfstudio_models              trainer.py:142
╭──────────────── viser ────────────────╮
│             ╷                         │
│   HTTP      │ http://localhost:7007   │
│   Websocket │ ws://localhost:7007     │
│             ╵                         │
╰───────────────────────────────────────╯
(viser) Passing ['initial_value'] as positional arguments to add_dropdown is deprecated. Please use keyword arguments instead: initial_value=not set
(viser) Passing ['initial_value'] as positional arguments to add_dropdown is deprecated. Please use keyword arguments instead: initial_value=default
(viser) Passing ['initial_value'] as positional arguments to add_dropdown is deprecated. Please use keyword arguments instead: initial_value=not set
(viser) Passing ['initial_value'] as positional arguments to add_dropdown is deprecated. Please use keyword arguments instead: initial_value=default
[NOTE] Not running eval iterations since only viewer is enabled.
Use --vis {wandb, tensorboard, viewer+wandb, viewer+tensorboard} to run with eval.
No Nerfstudio checkpoint to load, so training from scratch.
Disabled comet/tensorboard/wandb event writers
[00:56:37] disabled local writer                                                                           writer.py:186
Step 600: 0 GSs duplicated, 3463 GSs split. Now having 7140 GSs.
Step 600: 822 GSs pruned. Now having 6318 GSs.
Step 700: 0 GSs duplicated, 5817 GSs split. Now having 12135 GSs.
Step 700: 1212 GSs pruned. Now having 10923 GSs.
Step 800: 1 GSs duplicated, 9891 GSs split. Now having 20815 GSs.
Step 800: 1568 GSs pruned. Now having 19247 GSs.
Step 900: 14 GSs duplicated, 16857 GSs split. Now having 36118 GSs.
Step 900: 2069 GSs pruned. Now having 34049 GSs.
Step 1000: 66 GSs duplicated, 26954 GSs split. Now having 61069 GSs.
Step 1000: 3118 GSs pruned. Now having 57951 GSs.
Step 1100: 248 GSs duplicated, 40002 GSs split. Now having 98201 GSs.
Step 1100: 4380 GSs pruned. Now having 93821 GSs.
Step 1200: 702 GSs duplicated, 49860 GSs split. Now having 144383 GSs.
Step 1200: 6053 GSs pruned. Now having 138330 GSs.
Step 1300: 807 GSs duplicated, 43964 GSs split. Now having 183101 GSs.
Step 1300: 8759 GSs pruned. Now having 174342 GSs.
Step 1400: 1583 GSs duplicated, 46594 GSs split. Now having 222519 GSs.
Step 1400: 5643 GSs pruned. Now having 216876 GSs.
Step 1500: 1923 GSs duplicated, 40003 GSs split. Now having 258802 GSs.
Step 1500: 6354 GSs pruned. Now having 252448 GSs.
Step 1600: 1994 GSs duplicated, 33571 GSs split. Now having 288013 GSs.
Step 1600: 5994 GSs pruned. Now having 282019 GSs.
Step 1700: 1806 GSs duplicated, 28402 GSs split. Now having 312227 GSs.
Step 1700: 5384 GSs pruned. Now having 306843 GSs.
Step 1800: 1589 GSs duplicated, 26324 GSs split. Now having 334756 GSs.
Step 1800: 4472 GSs pruned. Now having 330284 GSs.
Step 1900: 1413 GSs duplicated, 26031 GSs split. Now having 357728 GSs.
Step 1900: 4083 GSs pruned. Now having 353645 GSs.
Step 2000: 1369 GSs duplicated, 26592 GSs split. Now having 381606 GSs.
Step 2000: 3546 GSs pruned. Now having 378060 GSs.
Step 2100: 1231 GSs duplicated, 26130 GSs split. Now having 405421 GSs.
Step 2100: 3207 GSs pruned. Now having 402214 GSs.
Step 2200: 1185 GSs duplicated, 23102 GSs split. Now having 426501 GSs.
Step 2200: 2817 GSs pruned. Now having 423684 GSs.
Step 2300: 1157 GSs duplicated, 18645 GSs split. Now having 443486 GSs.
Step 2300: 2439 GSs pruned. Now having 441047 GSs.
Step 2400: 960 GSs duplicated, 12655 GSs split. Now having 454662 GSs.
Step 2400: 2161 GSs pruned. Now having 452501 GSs.
Step 2500: 864 GSs duplicated, 8545 GSs split. Now having 461910 GSs.
Step 2500: 1622 GSs pruned. Now having 460288 GSs.
Step 2600: 767 GSs duplicated, 5726 GSs split. Now having 466781 GSs.
Step 2600: 1242 GSs pruned. Now having 465539 GSs.
Step 2700: 673 GSs duplicated, 4731 GSs split. Now having 470943 GSs.
Step 2700: 934 GSs pruned. Now having 470009 GSs.
Step 2800: 668 GSs duplicated, 3818 GSs split. Now having 474495 GSs.
Step 2800: 740 GSs pruned. Now having 473755 GSs.
Step 2900: 577 GSs duplicated, 3301 GSs split. Now having 477633 GSs.
Step 2900: 626 GSs pruned. Now having 477007 GSs.
Step 3200: 3141 GSs duplicated, 124927 GSs split. Now having 605075 GSs.
Step 3200: 42380 GSs pruned. Now having 562695 GSs.
Step 3300: 9204 GSs duplicated, 151910 GSs split. Now having 723809 GSs.
Step 3300: 19792 GSs pruned. Now having 704017 GSs.
Step 3400: 5178 GSs duplicated, 77751 GSs split. Now having 786946 GSs.
Step 3400: 23468 GSs pruned. Now having 763478 GSs.
Step 3500: 3265 GSs duplicated, 46568 GSs split. Now having 813311 GSs.
Step 3500: 14770 GSs pruned. Now having 798541 GSs.
Step 3600: 2192 GSs duplicated, 30233 GSs split. Now having 830966 GSs.
Step 3600: 9871 GSs pruned. Now having 821095 GSs.
Step 3700: 1534 GSs duplicated, 20831 GSs split. Now having 843460 GSs.
Step 3700: 7091 GSs pruned. Now having 836369 GSs.
Step 3800: 1226 GSs duplicated, 16311 GSs split. Now having 853906 GSs.
Step 3800: 5270 GSs pruned. Now having 848636 GSs.
Step 3900: 959 GSs duplicated, 12883 GSs split. Now having 862478 GSs.
Step 3900: 4202 GSs pruned. Now having 858276 GSs.
Step 4000: 885 GSs duplicated, 9956 GSs split. Now having 869117 GSs.
Step 4000: 3913 GSs pruned. Now having 865204 GSs.
Step 4100: 676 GSs duplicated, 8263 GSs split. Now having 874143 GSs.
Step 4100: 3300 GSs pruned. Now having 870843 GSs.
Step 4200: 631 GSs duplicated, 8000 GSs split. Now having 879474 GSs.
Step 4200: 2763 GSs pruned. Now having 876711 GSs.
Step 4300: 533 GSs duplicated, 6206 GSs split. Now having 883450 GSs.
Step 4300: 2573 GSs pruned. Now having 880877 GSs.
Step 4400: 437 GSs duplicated, 5311 GSs split. Now having 886625 GSs.
Step 4400: 2321 GSs pruned. Now having 884304 GSs.
Step 4500: 415 GSs duplicated, 5190 GSs split. Now having 889909 GSs.
Step 4500: 2009 GSs pruned. Now having 887900 GSs.
Step 4600: 365 GSs duplicated, 4723 GSs split. Now having 892988 GSs.
Step 4600: 1930 GSs pruned. Now having 891058 GSs.
Step 4700: 367 GSs duplicated, 5130 GSs split. Now having 896555 GSs.
Step 4700: 1813 GSs pruned. Now having 894742 GSs.
Step 4800: 400 GSs duplicated, 5208 GSs split. Now having 900350 GSs.
Step 4800: 1763 GSs pruned. Now having 898587 GSs.
Step 4900: 307 GSs duplicated, 4159 GSs split. Now having 903053 GSs.
Step 4900: 1777 GSs pruned. Now having 901276 GSs.
Step 5000: 345 GSs duplicated, 5027 GSs split. Now having 906648 GSs.
Step 5000: 1579 GSs pruned. Now having 905069 GSs.
Step 5100: 276 GSs duplicated, 3672 GSs split. Now having 909017 GSs.
Step 5100: 1746 GSs pruned. Now having 907271 GSs.
Step 5200: 317 GSs duplicated, 4128 GSs split. Now having 911716 GSs.
Step 5200: 1427 GSs pruned. Now having 910289 GSs.
Step 5300: 270 GSs duplicated, 3578 GSs split. Now having 914137 GSs.
Step 5300: 1522 GSs pruned. Now having 912615 GSs.
Step 5400: 264 GSs duplicated, 3466 GSs split. Now having 916345 GSs.
Step 5400: 1422 GSs pruned. Now having 914923 GSs.
Step 5500: 245 GSs duplicated, 3152 GSs split. Now having 918320 GSs.
Step 5500: 1453 GSs pruned. Now having 916867 GSs.
Step 5600: 284 GSs duplicated, 3665 GSs split. Now having 920816 GSs.
Step 5600: 1370 GSs pruned. Now having 919446 GSs.
Step 5700: 291 GSs duplicated, 3639 GSs split. Now having 923376 GSs.
Step 5700: 1384 GSs pruned. Now having 921992 GSs.
Step 5800: 195 GSs duplicated, 2246 GSs split. Now having 924433 GSs.
Step 5800: 1488 GSs pruned. Now having 922945 GSs.
Step 5900: 189 GSs duplicated, 2660 GSs split. Now having 925794 GSs.
Step 5900: 1175 GSs pruned. Now having 924619 GSs.
Step 6200: 5262 GSs duplicated, 167218 GSs split. Now having 1097099 GSs.
Step 6200: 17149 GSs pruned. Now having 1079950 GSs.
Step 6300: 11312 GSs duplicated, 182879 GSs split. Now having 1274141 GSs.
Step 6300: 36508 GSs pruned. Now having 1237633 GSs.
Step 6400: 4624 GSs duplicated, 83917 GSs split. Now having 1326174 GSs.
Step 6400: 40524 GSs pruned. Now having 1285650 GSs.
Step 6500: 2518 GSs duplicated, 50259 GSs split. Now having 1338427 GSs.
Step 6500: 22576 GSs pruned. Now having 1315851 GSs.
Step 6600: 1674 GSs duplicated, 34122 GSs split. Now having 1351647 GSs.
Step 6600: 15321 GSs pruned. Now having 1336326 GSs.
Step 6700: 1190 GSs duplicated, 25590 GSs split. Now having 1363106 GSs.
Step 6700: 11511 GSs pruned. Now having 1351595 GSs.
Step 6800: 879 GSs duplicated, 20835 GSs split. Now having 1373309 GSs.
Step 6800: 9086 GSs pruned. Now having 1364223 GSs.
Step 6900: 781 GSs duplicated, 17902 GSs split. Now having 1382906 GSs.
Step 6900: 7820 GSs pruned. Now having 1375086 GSs.
Step 7000: 680 GSs duplicated, 15900 GSs split. Now having 1391666 GSs.
Step 7000: 6695 GSs pruned. Now having 1384971 GSs.
Step 7100: 551 GSs duplicated, 14392 GSs split. Now having 1399914 GSs.
Step 7100: 6206 GSs pruned. Now having 1393708 GSs.
Step 7200: 529 GSs duplicated, 13285 GSs split. Now having 1407522 GSs.
Step 7200: 5752 GSs pruned. Now having 1401770 GSs.
Step 7300: 473 GSs duplicated, 12234 GSs split. Now having 1414477 GSs.
Step 7300: 5316 GSs pruned. Now having 1409161 GSs.
Step 7400: 421 GSs duplicated, 11507 GSs split. Now having 1421089 GSs.
Step 7400: 5065 GSs pruned. Now having 1416024 GSs.
Step 7500: 413 GSs duplicated, 10903 GSs split. Now having 1427340 GSs.
Step 7500: 4719 GSs pruned. Now having 1422621 GSs.
Step 7600: 367 GSs duplicated, 10111 GSs split. Now having 1433099 GSs.
Step 7600: 4471 GSs pruned. Now having 1428628 GSs.
Step 7700: 329 GSs duplicated, 9426 GSs split. Now having 1438383 GSs.
Step 7700: 4418 GSs pruned. Now having 1433965 GSs.
Step 7800: 320 GSs duplicated, 9544 GSs split. Now having 1443829 GSs.
Step 7800: 4231 GSs pruned. Now having 1439598 GSs.
Step 7900: 344 GSs duplicated, 9157 GSs split. Now having 1449099 GSs.
Step 7900: 4201 GSs pruned. Now having 1444898 GSs.
Step 8000: 288 GSs duplicated, 8691 GSs split. Now having 1453877 GSs.
Step 8000: 3974 GSs pruned. Now having 1449903 GSs.
Step 8100: 311 GSs duplicated, 8682 GSs split. Now having 1458896 GSs.
Step 8100: 3862 GSs pruned. Now having 1455034 GSs.
Step 8200: 261 GSs duplicated, 7910 GSs split. Now having 1463205 GSs.
Step 8200: 3890 GSs pruned. Now having 1459315 GSs.
Step 8300: 287 GSs duplicated, 8388 GSs split. Now having 1467990 GSs.
Step 8300: 3618 GSs pruned. Now having 1464372 GSs.
Step 8400: 274 GSs duplicated, 7909 GSs split. Now having 1472555 GSs.
Step 8400: 3653 GSs pruned. Now having 1468902 GSs.
Step 8500: 237 GSs duplicated, 7369 GSs split. Now having 1476508 GSs.
Step 8500: 3550 GSs pruned. Now having 1472958 GSs.
Step 8600: 292 GSs duplicated, 7839 GSs split. Now having 1481089 GSs.
Step 8600: 3468 GSs pruned. Now having 1477621 GSs.
Step 8700: 238 GSs duplicated, 6935 GSs split. Now having 1484794 GSs.
Step 8700: 3565 GSs pruned. Now having 1481229 GSs.
Step 8800: 239 GSs duplicated, 6896 GSs split. Now having 1488364 GSs.
Step 8800: 3385 GSs pruned. Now having 1484979 GSs.
Step 8900: 223 GSs duplicated, 6717 GSs split. Now having 1491919 GSs.
Step 8900: 3255 GSs pruned. Now having 1488664 GSs.
Step 9200: 101 GSs duplicated, 6044 GSs split. Now having 1494809 GSs.
Step 9200: 12278 GSs pruned. Now having 1482531 GSs.
Step 9300: 152 GSs duplicated, 6798 GSs split. Now having 1489481 GSs.
Step 9300: 2896 GSs pruned. Now having 1486585 GSs.
Step 9400: 131 GSs duplicated, 5708 GSs split. Now having 1492424 GSs.
Step 9400: 3139 GSs pruned. Now having 1489285 GSs.
Step 9500: 119 GSs duplicated, 5572 GSs split. Now having 1494976 GSs.
Step 9500: 2837 GSs pruned. Now having 1492139 GSs.
Step 9600: 136 GSs duplicated, 5570 GSs split. Now having 1497845 GSs.
Step 9600: 2823 GSs pruned. Now having 1495022 GSs.
Step 9700: 135 GSs duplicated, 5516 GSs split. Now having 1500673 GSs.
Step 9700: 2842 GSs pruned. Now having 1497831 GSs.
Step 9800: 153 GSs duplicated, 5746 GSs split. Now having 1503730 GSs.
Step 9800: 2796 GSs pruned. Now having 1500934 GSs.
Step 9900: 138 GSs duplicated, 5273 GSs split. Now having 1506345 GSs.
Step 9900: 2905 GSs pruned. Now having 1503440 GSs.
Step 10000: 137 GSs duplicated, 4801 GSs split. Now having 1508378 GSs.
Step 10000: 2710 GSs pruned. Now having 1505668 GSs.
Step 10100: 167 GSs duplicated, 5398 GSs split. Now having 1511233 GSs.
Step 10100: 2693 GSs pruned. Now having 1508540 GSs.
Step 10200: 132 GSs duplicated, 5407 GSs split. Now having 1514079 GSs.
Step 10200: 2786 GSs pruned. Now having 1511293 GSs.
Step 10300: 143 GSs duplicated, 5023 GSs split. Now having 1516459 GSs.
Step 10300: 2718 GSs pruned. Now having 1513741 GSs.
Step 10400: 156 GSs duplicated, 5213 GSs split. Now having 1519110 GSs.
Step 10400: 2634 GSs pruned. Now having 1516476 GSs.
Step 10500: 149 GSs duplicated, 5331 GSs split. Now having 1521956 GSs.
Step 10500: 2695 GSs pruned. Now having 1519261 GSs.
Step 10600: 144 GSs duplicated, 5230 GSs split. Now having 1524635 GSs.
Step 10600: 2793 GSs pruned. Now having 1521842 GSs.
Step 10700: 151 GSs duplicated, 5499 GSs split. Now having 1527492 GSs.
Step 10700: 2727 GSs pruned. Now having 1524765 GSs.
Step 10800: 190 GSs duplicated, 5571 GSs split. Now having 1530526 GSs.
Step 10800: 2853 GSs pruned. Now having 1527673 GSs.
Step 10900: 141 GSs duplicated, 4926 GSs split. Now having 1532740 GSs.
Step 10900: 2933 GSs pruned. Now having 1529807 GSs.
Step 11000: 146 GSs duplicated, 4917 GSs split. Now having 1534870 GSs.
Step 11000: 2719 GSs pruned. Now having 1532151 GSs.
Step 11100: 194 GSs duplicated, 5136 GSs split. Now having 1537481 GSs.
Step 11100: 2638 GSs pruned. Now having 1534843 GSs.
Step 11200: 137 GSs duplicated, 4323 GSs split. Now having 1539303 GSs.
Step 11200: 2654 GSs pruned. Now having 1536649 GSs.
Step 11300: 126 GSs duplicated, 4298 GSs split. Now having 1541073 GSs.
Step 11300: 2468 GSs pruned. Now having 1538605 GSs.
Step 11400: 105 GSs duplicated, 4376 GSs split. Now having 1543086 GSs.
Step 11400: 2400 GSs pruned. Now having 1540686 GSs.
Step 11500: 114 GSs duplicated, 4195 GSs split. Now having 1544995 GSs.
Step 11500: 2500 GSs pruned. Now having 1542495 GSs.
Step 11600: 135 GSs duplicated, 4432 GSs split. Now having 1547062 GSs.
Step 11600: 2413 GSs pruned. Now having 1544649 GSs.
Step 11700: 113 GSs duplicated, 4585 GSs split. Now having 1549347 GSs.
Step 11700: 2516 GSs pruned. Now having 1546831 GSs.
Step 11800: 155 GSs duplicated, 4768 GSs split. Now having 1551754 GSs.
Step 11800: 2580 GSs pruned. Now having 1549174 GSs.
Step 11900: 143 GSs duplicated, 4653 GSs split. Now having 1553970 GSs.
Step 11900: 2619 GSs pruned. Now having 1551351 GSs.
Step 12200: 73 GSs duplicated, 4271 GSs split. Now having 1555695 GSs.
Step 12200: 10794 GSs pruned. Now having 1544901 GSs.
Step 12300: 73 GSs duplicated, 3854 GSs split. Now having 1548828 GSs.
Step 12300: 2353 GSs pruned. Now having 1546475 GSs.
Step 12400: 63 GSs duplicated, 3329 GSs split. Now having 1549867 GSs.
Step 12400: 2199 GSs pruned. Now having 1547668 GSs.
Step 12500: 76 GSs duplicated, 3437 GSs split. Now having 1551181 GSs.
Step 12500: 2107 GSs pruned. Now having 1549074 GSs.
Step 12600: 97 GSs duplicated, 3672 GSs split. Now having 1552843 GSs.
Step 12600: 2110 GSs pruned. Now having 1550733 GSs.
Step 12700: 99 GSs duplicated, 3599 GSs split. Now having 1554431 GSs.
Step 12700: 2173 GSs pruned. Now having 1552258 GSs.
Step 12800: 99 GSs duplicated, 3591 GSs split. Now having 1555948 GSs.
Step 12800: 2108 GSs pruned. Now having 1553840 GSs.
Step 12900: 110 GSs duplicated, 3870 GSs split. Now having 1557820 GSs.
Step 12900: 2153 GSs pruned. Now having 1555667 GSs.
Step 13000: 103 GSs duplicated, 3653 GSs split. Now having 1559423 GSs.
Step 13000: 2337 GSs pruned. Now having 1557086 GSs.
Step 13100: 98 GSs duplicated, 3731 GSs split. Now having 1560915 GSs.
Step 13100: 2280 GSs pruned. Now having 1558635 GSs.
Step 13200: 100 GSs duplicated, 4104 GSs split. Now having 1562839 GSs.
Step 13200: 2176 GSs pruned. Now having 1560663 GSs.
Step 13300: 110 GSs duplicated, 3853 GSs split. Now having 1564626 GSs.
Step 13300: 2357 GSs pruned. Now having 1562269 GSs.
Step 13400: 113 GSs duplicated, 3958 GSs split. Now having 1566340 GSs.
Step 13400: 2327 GSs pruned. Now having 1564013 GSs.
Step 13500: 133 GSs duplicated, 4087 GSs split. Now having 1568233 GSs.
Step 13500: 2416 GSs pruned. Now having 1565817 GSs.
Step 13600: 103 GSs duplicated, 3524 GSs split. Now having 1569444 GSs.
Step 13600: 2351 GSs pruned. Now having 1567093 GSs.
Step 13700: 136 GSs duplicated, 3916 GSs split. Now having 1571145 GSs.
Step 13700: 2238 GSs pruned. Now having 1568907 GSs.
Step 13800: 102 GSs duplicated, 3502 GSs split. Now having 1572511 GSs.
Step 13800: 2282 GSs pruned. Now having 1570229 GSs.
Step 13900: 100 GSs duplicated, 3667 GSs split. Now having 1573996 GSs.
Step 13900: 2222 GSs pruned. Now having 1571774 GSs.
Step 14000: 108 GSs duplicated, 3845 GSs split. Now having 1575727 GSs.
Step 14000: 2308 GSs pruned. Now having 1573419 GSs.
Step 14100: 118 GSs duplicated, 3710 GSs split. Now having 1577247 GSs.
Step 14100: 2289 GSs pruned. Now having 1574958 GSs.
Step 14200: 127 GSs duplicated, 4128 GSs split. Now having 1579213 GSs.
Step 14200: 2284 GSs pruned. Now having 1576929 GSs.
Step 14300: 110 GSs duplicated, 3723 GSs split. Now having 1580762 GSs.
Step 14300: 2487 GSs pruned. Now having 1578275 GSs.
Step 14400: 113 GSs duplicated, 3655 GSs split. Now having 1582043 GSs.
Step 14400: 2286 GSs pruned. Now having 1579757 GSs.
Step 14500: 114 GSs duplicated, 3732 GSs split. Now having 1583603 GSs.
Step 14500: 2360 GSs pruned. Now having 1581243 GSs.
Step 14600: 97 GSs duplicated, 3643 GSs split. Now having 1584983 GSs.
Step 14600: 2292 GSs pruned. Now having 1582691 GSs.
Step 14700: 125 GSs duplicated, 3857 GSs split. Now having 1586673 GSs.
Step 14700: 2348 GSs pruned. Now having 1584325 GSs.
Step 14800: 118 GSs duplicated, 3584 GSs split. Now having 1588027 GSs.
Step 14800: 2430 GSs pruned. Now having 1585597 GSs.
Step 14900: 118 GSs duplicated, 3594 GSs split. Now having 1589309 GSs.
Step 14900: 2233 GSs pruned. Now having 1587076 GSs.
╭─────────────────────────────── 🎉 Training Finished 🎉 ───────────────────────────────╮
│                        ╷                                                              │
│   Config File          │ outputs/unnamed/splatfacto/train-stage-1/config.yml          │
│   Checkpoint Directory │ outputs/unnamed/splatfacto/train-stage-1/nerfstudio_models   │
│                        ╵                                                              │
╰───────────────────────────────────────────────────────────────────────────────────────╯
[W320 06:58:18.682105649 AllocatorConfig.cpp:28] Warning: PYTORCH_CUDA_ALLOC_CONF is deprecated, use PYTORCH_ALLOC_CONF instead (function operator())
03/20/2026 06:58:18 AM INFO     03/20/2026 06:58:18 AM Training complete. Brief pause before export...                                                                                                                                         main.py:2872
03/20/2026 06:58:23 AM INFO     03/20/2026 06:58:23 AM Copied checkpoint to output for crash recovery: /mnt/data/workflow-input/exports/nerfstudio_models                                                                                      main.py:2889
                       INFO     03/20/2026 06:58:23 AM Copied config to output for crash recovery: /mnt/data/workflow-input/exports/config.yml                                                                                                 main.py:2892
                       INFO     03/20/2026 06:58:23 AM Running component: Nerfstudio-Export                                                                                                                                                    main.py:2608
                       INFO     03/20/2026 06:58:23 AM Reset CUDA_VISIBLE_DEVICES for export: 0                                                                                                                                                main.py:2785
                       INFO     03/20/2026 06:58:23 AM Running component Nerfstudio-Export                                                                                                                                                  pipeline.py:180
                       INFO     03/20/2026 06:58:23 AM Component command: ['ns-export', 'gaussian-splat', '--load-config', 'outputs/unnamed/splatfacto/train-stage-1/config.yml', '--output-dir', '/mnt/data/workflow-input/exports']       pipeline.py:214
/opt/ml/code/nerfstudio/nerfstudio/process_data/process_data_utils.py:205: SyntaxWarning: invalid escape sequence '\,'
  select_cmd = "select='" + "+".join([f"eq(n\,{idx})" for idx in frame_indices]) + "',setpts=N/TB,"
/opt/ml/code/nerfstudio/nerfstudio/field_components/activations.py:32: FutureWarning: `torch.cuda.amp.custom_fwd(args...)` is deprecated. Please use `torch.amp.custom_fwd(args..., device_type='cuda')` instead.
  @custom_fwd(cast_inputs=torch.float32)
/opt/ml/code/nerfstudio/nerfstudio/field_components/activations.py:38: FutureWarning: `torch.cuda.amp.custom_bwd(args...)` is deprecated. Please use `torch.amp.custom_bwd(args..., device_type='cuda')` instead.
  @custom_bwd
Loading latest checkpoint from load_dir
✅ Done loading checkpoint from outputs/unnamed/splatfacto/train-stage-1/nerfstudio_models/step-000029999.ckpt
0 Gaussians have NaN/Inf and 38 have low opacity, only export 1587038/1587076
[W320 06:59:38.961171707 AllocatorConfig.cpp:28] Warning: PYTORCH_CUDA_ALLOC_CONF is deprecated, use PYTORCH_ALLOC_CONF instead (function operator())
03/20/2026 06:59:39 AM INFO     03/20/2026 06:59:39 AM Running component: Nerfstudio-Metrics                                                                                                                                                   main.py:2608
                       INFO     03/20/2026 06:59:39 AM Running component Nerfstudio-Metrics                                                                                                                                                 pipeline.py:180
                       INFO     03/20/2026 06:59:39 AM Component command: ['ns-eval', '--load-config', 'outputs/unnamed/splatfacto/train-stage-1/config.yml', '--output-path', '/opt/ml/model/dataset/eval/metrics.json']                   pipeline.py:214
/opt/ml/code/nerfstudio/nerfstudio/process_data/process_data_utils.py:205: SyntaxWarning: invalid escape sequence '\,'
  select_cmd = "select='" + "+".join([f"eq(n\,{idx})" for idx in frame_indices]) + "',setpts=N/TB,"
/opt/ml/code/nerfstudio/nerfstudio/field_components/activations.py:32: FutureWarning: `torch.cuda.amp.custom_fwd(args...)` is deprecated. Please use `torch.amp.custom_fwd(args..., device_type='cuda')` instead.
  @custom_fwd(cast_inputs=torch.float32)
/opt/ml/code/nerfstudio/nerfstudio/field_components/activations.py:38: FutureWarning: `torch.cuda.amp.custom_bwd(args...)` is deprecated. Please use `torch.amp.custom_bwd(args..., device_type='cuda')` instead.
  @custom_bwd
Loading latest checkpoint from load_dir
✅ Done loading checkpoint from outputs/unnamed/splatfacto/train-stage-1/nerfstudio_models/step-000029999.ckpt
/opt/ml/code/nerfstudio/nerfstudio/pipelines/base_pipeline.py:406: UserWarning: std_mean(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at /pytorch/aten/src/ATen/native/ReduceOps.cpp:1857.)
  key_std, key_mean = torch.std_mean(
Saved results to: /opt/ml/model/dataset/eval/metrics.json
[W320 06:59:51.168663145 AllocatorConfig.cpp:28] Warning: PYTORCH_CUDA_ALLOC_CONF is deprecated, use PYTORCH_ALLOC_CONF instead (function operator())
03/20/2026 06:59:51 AM INFO     03/20/2026 06:59:51 AM Evaluation Metrics - PSNR: 12.1217, SSIM: 0.1234, LPIPS: 0.4417                                                                                                                         main.py:3099
                       INFO     03/20/2026 06:59:51 AM Running component: Ply-to-Video                                                                                                                                                         main.py:2608
                       INFO     03/20/2026 06:59:51 AM POST_PROCESSING started                                                                                                                                                                 main.py:2631
                       INFO     03/20/2026 06:59:51 AM Running component Ply-to-Video                                                                                                                                                       pipeline.py:180
                       INFO     03/20/2026 06:59:51 AM Component command: ['ns-render', 'interpolate', '--load-config', 'outputs/unnamed/splatfacto/train-stage-1/config.yml', '--output-path',                                             pipeline.py:214
                                '/mnt/data/workflow-input/exports/render.mp4', '--frame-rate', '10']                                                                                                                                                       
/opt/ml/code/nerfstudio/nerfstudio/process_data/process_data_utils.py:205: SyntaxWarning: invalid escape sequence '\,'
  select_cmd = "select='" + "+".join([f"eq(n\,{idx})" for idx in frame_indices]) + "',setpts=N/TB,"
/opt/ml/code/nerfstudio/nerfstudio/field_components/activations.py:32: FutureWarning: `torch.cuda.amp.custom_fwd(args...)` is deprecated. Please use `torch.amp.custom_fwd(args..., device_type='cuda')` instead.
  @custom_fwd(cast_inputs=torch.float32)
/opt/ml/code/nerfstudio/nerfstudio/field_components/activations.py:38: FutureWarning: `torch.cuda.amp.custom_bwd(args...)` is deprecated. Please use `torch.amp.custom_bwd(args..., device_type='cuda')` instead.
  @custom_bwd
Loading latest checkpoint from load_dir
✅ Done loading checkpoint from outputs/unnamed/splatfacto/train-stage-1/nerfstudio_models/step-000029999.ckpt
Traceback (most recent call last):
  File "/usr/local/bin/ns-render", line 8, in <module>
    sys.exit(entrypoint())
             ^^^^^^^^^^^^
  File "/opt/ml/code/nerfstudio/nerfstudio/scripts/render.py", line 917, in entrypoint
    tyro.cli(Commands).main()
  File "/opt/ml/code/nerfstudio/nerfstudio/scripts/render.py", line 624, in main
    camera_path = get_interpolated_camera_path(
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/ml/code/nerfstudio/nerfstudio/cameras/camera_paths.py", line 43, in get_interpolated_camera_path
    poses, Ks, times = get_interpolated_poses_many(
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/ml/code/nerfstudio/nerfstudio/cameras/camera_utils.py", line 303, in get_interpolated_poses_many
    traj = np.stack(traj, axis=0)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/numpy/core/shape_base.py", line 445, in stack
    raise ValueError('need at least one array to stack')
ValueError: need at least one array to stack
[W320 07:00:01.951549783 AllocatorConfig.cpp:28] Warning: PYTORCH_CUDA_ALLOC_CONF is deprecated, use PYTORCH_ALLOC_CONF instead (function operator())
Command 'ns-render interpolate --load-config outputs/unnamed/splatfacto/train-stage-1/config.yml --output-path /mnt/data/workflow-input/exports/render.mp4 --frame-rate 10' failed with return code 1
[W320 07:00:02.751128137 AllocatorConfig.cpp:28] Warning: PYTORCH_CUDA_ALLOC_CONF is deprecated, use PYTORCH_ALLOC_CONF instead (function operator())
(base) ubuntu@ip-172-31-3-20:/mnt/efs/guidance-for-open-source-3d-reconstruction-toolbox-for-gaussian-splats-on-aws/source/container$ 

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions