Download config.py from val-utehy/RotEx: direct link, hf CLI and curl.
- Browser
- Download file 3.36 kB
-
https://huggingface.co/val-utehy/RotEx/resolve/main/config.py
- Command line
-
hf download hf://val-utehy/RotEx/config.py
-
curl -L -o config.py https://huggingface.co/val-utehy/RotEx/resolve/main/config.py
3.36 kB
| """ | |
| Configuration system for enhanced RIFT model. | |
| """ | |
| from dataclasses import dataclass, field | |
| from typing import Literal | |
| class EncoderConfig: | |
| type: Literal["siglip", "dinov2", "evaclip"] = "dinov2" | |
| model_size: Literal["small", "base", "large"] = "base" | |
| output_dim: int = 512 | |
| depth_aware: bool = False | |
| class LossConfig: | |
| """ | |
| Configuration for loss functions and weights. | |
| """ | |
| recon_weight: float = 10.0 # Charbonnier Loss | |
| color_match_weight: float = 5.0 # ColorMatchingLoss | |
| day_preserve_weight: float = 3.0 # DayPreservationLoss | |
| moe_weight: float = 0.05 # MoE Load Balancing | |
| brightness_cont_weight: float = 0.1 | |
| color_cont_weight: float = 0.1 | |
| use_charbonnier: bool = True | |
| use_vgg: bool = True | |
| vgg_weight: float = 0.5 | |
| # Tuning guide: | |
| # 0.1 → subtle sharpening, safe | |
| # 0.5 → noticeable edge/texture improvement ← default | |
| use_lpips: bool = False | |
| lpips_weight: float = 0.0 | |
| use_l1: bool = False | |
| use_gan: bool = False | |
| gan_weight: float = 0.0 | |
| # Legacy (disabled) | |
| use_smooth_transition: bool = False | |
| smooth_weight: float = 0.0 | |
| use_content_preservation: bool = False | |
| content_weight: float = 0.0 | |
| use_brightness_preservation: bool = False | |
| brightness_weight: float = 0.0 | |
| min_brightness: float = 0.0 | |
| max_brightness: float = 0.0 | |
| charbonnier_eps: float = 1e-4 | |
| class AttentionConfig: | |
| use_cross_attention: bool = True | |
| use_adain: bool = True | |
| use_depth_attention: bool = True | |
| use_multi_scale_attention: bool = False | |
| class MoEConfig: | |
| enabled: bool = True | |
| num_experts: int = 4 | |
| top_k: int = 2 | |
| temperature: float = 0.3 | |
| noise_std: float = 0.1 | |
| load_balance_coef: float = 0.01 | |
| class SamplingConfig: | |
| method: Literal["euler", "heun", "consistency"] = "heun" | |
| num_steps: int = 30 | |
| use_flow_matching: bool = True | |
| use_consistency: bool = False | |
| use_cfg: bool = True | |
| cfg_scale: float = 7.5 | |
| sigma_min: float = 0.002 | |
| sigma_max: float = 80.0 | |
| class ModelConfig: | |
| in_channels: int = 16 | |
| hidden_size: int = 1024 | |
| num_double_layers: int = 8 | |
| num_single_layers: int = 16 | |
| num_heads: int = 16 | |
| style_dim: int = 512 | |
| use_text: bool = False | |
| text_dim: int = 1152 | |
| encoder: EncoderConfig = field(default_factory=EncoderConfig) | |
| loss: LossConfig = field(default_factory=LossConfig) | |
| attention: AttentionConfig = field(default_factory=AttentionConfig) | |
| moe: MoEConfig = field(default_factory=MoEConfig) | |
| sampling: SamplingConfig = field(default_factory=SamplingConfig) | |
| class TrainingConfig: | |
| content_dir: str = "/workspace/ChronFLUX/rafael_ds_ver2/train/day" | |
| style_dir: str = "/workspace/ChronFLUX/rafael_ds_ver2/train/night" | |
| image_size: int = 384 | |
| batch_size: int = 1 | |
| grad_accum_steps: int = 4 | |
| epochs: int = 43 | |
| lr_max: float = 1e-7 | |
| lr_min: float = 1e-5 | |
| weight_decay: float = 1e-4 | |
| save_interval_epochs: int = 1 | |
| device: str = "cuda" | |
| dtype: str = "bfloat16" | |
| def get_q1_paper_config() -> ModelConfig: | |
| return ModelConfig() | |
| PRESETS = { | |
| "q1_paper": get_q1_paper_config, | |
| } | |
| def get_config(preset: str = "q1_paper") -> ModelConfig: | |
| return PRESETS.get(preset, get_q1_paper_config)() | |