ai-toolkit / ui /src /types.ts
rahul7star's picture
boilerplate
fcc02a2 verified
/**
* GPU API response
*/
export interface GpuUtilization {
gpu: number;
memory: number;
}
export interface GpuMemory {
total: number;
free: number;
used: number;
}
export interface GpuPower {
draw: number;
limit: number;
}
export interface GpuClocks {
graphics: number;
memory: number;
}
export interface GpuFan {
speed: number;
}
export interface GpuInfo {
index: number;
name: string;
driverVersion: string;
temperature: number;
utilization: GpuUtilization;
memory: GpuMemory;
power: GpuPower;
clocks: GpuClocks;
fan: GpuFan;
}
export interface GPUApiResponse {
hasNvidiaSmi: boolean;
gpus: GpuInfo[];
error?: string;
}
/**
* Training configuration
*/
export interface NetworkConfig {
type: string;
linear: number;
linear_alpha: number;
lokr_full_rank: boolean;
lokr_factor: number;
network_kwargs: {
ignore_if_contains: string[];
}
}
export interface SaveConfig {
dtype: string;
save_every: number;
max_step_saves_to_keep: number;
save_format: string;
push_to_hub: boolean;
}
export interface DatasetConfig {
folder_path: string;
mask_path: string | null;
mask_min_value: number;
default_caption: string;
caption_ext: string;
caption_dropout_rate: number;
shuffle_tokens?: boolean;
is_reg: boolean;
network_weight: number;
cache_latents_to_disk?: boolean;
resolution: number[];
controls: string[];
}
export interface EMAConfig {
use_ema: boolean;
ema_decay: number;
}
export interface TrainConfig {
batch_size: number;
bypass_guidance_embedding?: boolean;
steps: number;
gradient_accumulation: number;
train_unet: boolean;
train_text_encoder: boolean;
gradient_checkpointing: boolean;
noise_scheduler: string;
timestep_type: string;
content_or_style: string;
optimizer: string;
lr: number;
ema_config?: EMAConfig;
dtype: string;
unload_text_encoder: boolean;
optimizer_params: {
weight_decay: number;
};
diff_output_preservation: boolean;
diff_output_preservation_multiplier: number;
diff_output_preservation_class: string;
}
export interface QuantizeKwargsConfig {
exclude: string[];
}
export interface ModelConfig {
name_or_path: string;
quantize: boolean;
quantize_te: boolean;
quantize_kwargs?: QuantizeKwargsConfig;
arch: string;
low_vram: boolean;
model_kwargs: {[key: string]: any};
}
export interface SampleConfig {
sampler: string;
sample_every: number;
width: number;
height: number;
prompts: string[];
neg: string;
seed: number;
walk_seed: boolean;
guidance_scale: number;
sample_steps: number;
num_frames: number;
fps: number;
}
export interface ProcessConfig {
type: 'ui_trainer';
sqlite_db_path?: string;
training_folder: string;
performance_log_every: number;
trigger_word: string | null;
device: string;
network?: NetworkConfig;
save: SaveConfig;
datasets: DatasetConfig[];
train: TrainConfig;
model: ModelConfig;
sample: SampleConfig;
}
export interface ConfigObject {
name: string;
process: ProcessConfig[];
}
export interface MetaConfig {
name: string;
version: string;
}
export interface JobConfig {
job: string;
config: ConfigObject;
meta: MetaConfig;
}