Spaces:
Running
on
Zero
Running
on
Zero
| """ | |
| ----------------------------------------------------------------------------- | |
| Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. | |
| NVIDIA CORPORATION and its licensors retain all intellectual property | |
| and proprietary rights in and to this software, related documentation | |
| and any modifications thereto. Any use, reproduction, disclosure or | |
| distribution of this software and related documentation without an express | |
| license agreement from NVIDIA CORPORATION is strictly prohibited. | |
| ----------------------------------------------------------------------------- | |
| """ | |
| from typing import Literal, Optional | |
| import attrs | |
| class ModelConfig: | |
| # vae | |
| vae_conf: str = "vae.configs.part_woenc" | |
| vae_ckpt_path: Optional[str] = None | |
| # learn & generate parts | |
| use_parts: bool = False | |
| part_embed_mode: Literal["element", "part", "part2_only"] = "part2_only" | |
| shuffle_parts: bool = False | |
| use_num_parts_cond: bool = False | |
| # flow matching hyper-params | |
| flow_shift: float = 1.0 | |
| logitnorm_mean: float = 0.0 | |
| logitnorm_std: float = 1.0 | |
| # image encoder | |
| dino_model: Literal["dinov2_vitl14_reg", "dinov2_vitg14"] = "dinov2_vitg14" | |
| # backbone DiT | |
| hidden_dim: int = 1536 | |
| num_heads: int = 16 | |
| num_layers: int = 24 | |
| qknorm: bool = True | |
| qknorm_type: Literal["LayerNorm", "RMSNorm"] = "RMSNorm" | |
| use_pos_embed: bool = False | |
| # latent code | |
| latent_size: Optional[int] = None # if None, will load from vae | |
| latent_dim: Optional[int] = None | |
| # preload vae weights | |
| preload_vae: bool = True | |
| # preload dinov2 weights | |
| preload_dinov2: bool = True | |
| # init weights from a pretrained checkpoint | |
| pretrain_path: Optional[str] = None | |