# NYU Depth Training Configuration - Native Resolution (Variable Resolution with FluxResizer) # Uses FLUX.1-dev and FluxResizer for optimal native resolutions (no padding) # Experiment settings experiment: name: "nyu_depth_native_resolution" description: "NYU Depth with FLUX.1-dev at native resolutions using FluxResizer" # Concept configurations (same as original) concepts: basic: ["depth", "surface", "object", "background"] basic_2: ["depth", "surface", "object", "near", "far"] indoor: ["wall", "floor", "furniture", "object", "depth"] spatial: ["near", "far", "depth", "distance", "surface"] detailed: ["wall", "floor", "ceiling", "furniture", "object", "depth", "surface"] comprehensive: ["wall", "floor", "ceiling", "furniture", "object", "depth", "near", "far", "surface", "indoor", "outdoor", "structure"] semantic: ["bedroom", "kitchen", "bathroom", "living_room", "depth", "furniture", "wall", "floor"] geometric: ["depth", "surface", "edge", "plane", "corner", "boundary", "gradient", "distance"] # Training settings training: concept_config: "basic_2" # Which concept configuration to use epochs: 20 learning_rate: 1e-4 batch_size: 1 # REQUIRED: Must be 1 for variable resolution accumulate_grad_batches: 4 # Effective batch size = 4 gradient_clip_val: 1.0 precision: "16-mixed" # Data settings data: dataset: "nyu_depth_v2" # NYU Depth V2 standard train/test split. Point the trainer at it via CLI args # (--data_path / --filenames_path); see shell_scripts/train_nyu.sh. num_classes: 1 # Depth is regression, but num_classes used for decoder min_depth: 0.1 # Minimum valid depth (meters) max_depth: 10.0 # Maximum valid depth (meters) # NOTE: No target_size! FluxResizer selects optimal resolution per image # Model settings model: flux_model: "black-forest-labs/FLUX.1-dev" # Changed from schnell to dev dtype: "float16" dino_model: "dinov3_vitb16" # DINOv3 base model feature_locations: transformer_blocks: [4, 9, 13, 18] single_transformer_blocks: [4, 15, 26, 37] decoder: features: 256 hyperfeature_fusion: num_timesteps: 4 fusion_type: "transformer" hidden_dim: 768 num_transformer_layers: 3 layer_scale_init: 1e-4 # FLUX settings flux: timesteps: 28 guidance_scale: 3.5 num_inference_steps: 1 concept_timesteps: [0, 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] concept_layers: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17] # Hardware settings hardware: devices: 1 # Number of GPUs (DDP for multi-GPU) #strategy: "ddp_find_unused_parameters_true" # Required for DDP with conditional logic num_sanity_val_steps: 1 detect_anomaly: true accelerator: "gpu" num_workers: 8 # Paths (timestamps will be automatically added) paths: # All outputs live under ${MMDIFF_OUTPUT} (set it to a writable dir, e.g. /work//mmdiff_out). cache_base_dir: "${MMDIFF_OUTPUT}/cache" log_base_dir: "${MMDIFF_OUTPUT}/logs" checkpoint_base_dir: "${MMDIFF_OUTPUT}/checkpoints" use_timestamp: true permanent_cache_dir: "${MMDIFF_OUTPUT}/cache/nyu_native_feature_cache" # Native resolution feature cache # Logging logging: log_every_n_steps: 10 save_top_k: 3 monitor: "val_loss" mode: "min" # HuggingFace huggingface: token: "" # Leave empty and authenticate via `huggingface-cli login` or the HF_TOKEN env var