HandX-demo / src /diffusion /config.py
xusirui's picture
HandX text-to-motion Gradio demo
2680bd5 verified
Raw
History Blame Contribute Delete
2.91 kB
from dataclasses import dataclass
from typing import List, Literal
@dataclass
class DiffusionConfig:
noise_schedule: str
diffusion_steps: int
sigma_small: bool
repr: Literal['joint_pos', 'joint_rot', 'joint_pos_w_scalar_rot', 'joint_pos_w_axisangle_rot']
contact_loss: bool
lambda_contact: float | None
lambda_contact_predict: float | None
lambda_rcxyz: float
lambda_repr: float
lambda_vel: float
lambda_acce: float
lambda_fc: float
lambda_w_ig: float
@dataclass
class ModelConfig:
latent_dim: int
layers: int
num_heads: int
ff_size: int
dropout: float
activation: str
cond_mode: str
diffusion: DiffusionConfig
contact_prediction: bool
repr: Literal['joint_pos', 'joint_rot', 'joint_pos_w_scalar_rot', 'joint_pos_w_axisangle_rot']
@dataclass
class ActionConditionModelConfig(ModelConfig):
cond_mask_prob: float
num_actions: int
@dataclass
class TextConditionModelConfig(ModelConfig):
arch: str
text_model: str
max_text_length: int | None
cond_mask_prob: float
treble_mask_prob: float
@dataclass
class DataConfig:
ratio: float
fixed_length: int
max_length: int
min_length: int
normalize: bool
difference: bool
repr: Literal['joint_pos', 'joint_rot', 'joint_pos_w_scalar_rot', 'joint_pos_w_axisangle_rot']
contact_label: bool
data_dir: str
use_plain: bool | None
data_file_name: str | None
@dataclass
class DataLoaderConfig:
batch_size: int
num_workers: int
shuffle: bool
@dataclass
class OptimizerConfig:
lr: float
weight_decay: float
@dataclass
class SampleConfig:
guidance_param: float
@dataclass
class VisualizationConfig:
denoising_steps: List[int]
samples_count: int
@dataclass
class ValidationConfig:
val_interval: int
dataloader: DataLoaderConfig
@dataclass
class EvaluationConfig:
dataloader: DataLoaderConfig
eval_interval: int
num_samples_on_train: int
num_samples_on_val: int
num_samples_per_condition: int
@dataclass
class TrainingConfig:
save_dir: str
overwrite: bool
train_platform_type: str
log_interval: int
save_interval: int
num_steps: int
resume_checkpoint: str
eval_during_training: bool
eval_cfg: EvaluationConfig | None
val_during_training: bool
val_cfg: ValidationConfig | None
optimizer: OptimizerConfig
sample: SampleConfig
dataloader: DataLoaderConfig
viz_during_training: bool
viz_cfg: VisualizationConfig | None
@dataclass
class Config:
seed: int
model: ModelConfig | ActionConditionModelConfig | TextConditionModelConfig
data: DataConfig
train: TrainingConfig
@dataclass
class GenerateConfig:
model_path: str
output_dir: str
num_samples: int
sample: SampleConfig
action_name: str | None
text_prompt: str | None
motion_length: int