# SOFIA v7.1 Tiny preset (~5M params) with text fusion (Text-FiLM mid-level # in SAT and UAV heads + GatedFusion late-level on descriptors). # # Tiny-specific notes: # - num_heads_s3/s4 = 4 (channels 176/224 not divisible by 8) # - mamba_headdim = 16 (channels not divisible by default 64) # - mamba_variant = 'mamba1' (Mamba-2 torch fallback bug for these dims) # - d_descriptor = 1024 (override from preset M default 512) # - text fusion enabled (override from preset M default disabled) ModelsCommonConfig.backbone = 'sofia_v71' ModelsCommonConfig.baseline_mode = False ModelsCommonConfig.init_gate = 0.7 ModelsCommonConfig.lrsclip_path = 'nn_models/LRSCLIP/DGTRS-CLIP-ViT-L-14.pt' # Variant label (informational). SOFIAv71ModelsConfig.variant_label = 'Tiny' # Input. SOFIAv71ModelsConfig.input_size = 256 SOFIAv71ModelsConfig.in_channels = 3 # Stem (Tiny dims). SOFIAv71ModelsConfig.stem_mid = 16 SOFIAv71ModelsConfig.stem_out = 32 # Backbone dimensions (Tiny). SOFIAv71ModelsConfig.embed_dims = [48, 96, 176, 224] SOFIAv71ModelsConfig.depths = [2, 3, 4, 2] # Stage 1-2 block params (default). SOFIAv71ModelsConfig.mbconv_expand = 4 SOFIAv71ModelsConfig.se_ratio = 16 SOFIAv71ModelsConfig.strip_kernel_s1 = 7 SOFIAv71ModelsConfig.strip_kernel_s2 = 5 SOFIAv71ModelsConfig.mix_kernels = [3, 5, 7] SOFIAv71ModelsConfig.use_dcn_strip = True # Stage 3-4 (MambaVision). Tiny: mamba1 to bypass torch fallback bug. SOFIAv71ModelsConfig.mamba_d_state = 16 SOFIAv71ModelsConfig.mamba_dt_rank = None SOFIAv71ModelsConfig.mamba_backend = 'auto' SOFIAv71ModelsConfig.mamba_variant = 'mamba1' # Mamba-2 tunables (used when mamba_variant='mamba2'; Tiny would need # headdim=16 because 176 % 64 != 0 and 224 % 64 != 0). SOFIAv71ModelsConfig.mamba_d_state_mamba2 = 64 SOFIAv71ModelsConfig.mamba_headdim = 16 SOFIAv71ModelsConfig.mamba_expand = 2 SOFIAv71ModelsConfig.mamba_d_conv = 4 SOFIAv71ModelsConfig.mamba_n_directions = 2 # Heads / attention (Tiny: heads=4). SOFIAv71ModelsConfig.num_heads_s3 = 4 SOFIAv71ModelsConfig.num_heads_s4 = 4 SOFIAv71ModelsConfig.use_strip_branch_s3 = True SOFIAv71ModelsConfig.use_strip_branch_s4 = False SOFIAv71ModelsConfig.ffn_expand = 4 # EVSS bridge (off by default). SOFIAv71ModelsConfig.use_evss_bridge = False SOFIAv71ModelsConfig.evss_bridge_locations = ['pre_stage3'] # Neck (Tiny). SOFIAv71ModelsConfig.neck_channels = 128 # CVGL Head. SOFIAv71ModelsConfig.d_descriptor = 1024 SOFIAv71ModelsConfig.use_asymmetric_heads = True SOFIAv71ModelsConfig.chp_rings = 8 SOFIAv71ModelsConfig.chp_angles = 16 SOFIAv71ModelsConfig.chp_harmonics = 4 SOFIAv71ModelsConfig.use_film_altitude = True SOFIAv71ModelsConfig.altitude_norm = 500.0 SOFIAv71ModelsConfig.ring_count = 4 SOFIAv71ModelsConfig.use_ring_aux = True # Text fusion enabled. SOFIAv71ModelsConfig.return_normalized = True SOFIAv71ModelsConfig.use_text_film_sat = True SOFIAv71ModelsConfig.use_text_film_uav = True SOFIAv71ModelsConfig.text_film_dim = 1024 SOFIAv71ModelsConfig.text_film_hidden = 256 # Sharing / KD / deploy. SOFIAv71ModelsConfig.share_stages_1_2 = True SOFIAv71ModelsConfig.enable_kd_taps = True SOFIAv71ModelsConfig.precision = 'fp16' # LoRA. SOFIAv71ModelsConfig.lora_rank = 4