Files
ai-toolkit/ui/src/types.ts
2025-02-19 07:52:24 -07:00

150 lines
2.6 KiB
TypeScript

/**
* 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 GpuInfo {
index: number;
name: string;
driverVersion: string;
temperature: number;
utilization: GpuUtilization;
memory: GpuMemory;
power: GpuPower;
clocks: GpuClocks;
}
export interface GPUApiResponse {
hasNvidiaSmi: boolean;
gpus: GpuInfo[];
error?: string;
}
/**
* Training configuration
*/
export interface NetworkConfig {
type: 'lora';
linear: number;
linear_alpha: number;
}
export interface SaveConfig {
dtype: string;
save_every: number;
max_step_saves_to_keep: number;
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[];
}
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;
optimizer: string;
lr: number;
ema_config?: EMAConfig;
dtype: string;
optimizer_params: {
weight_decay: number;
};
}
export interface QuantizeKwargsConfig {
exclude: string[];
}
export interface ModelConfig {
name_or_path: string;
is_flux?: boolean;
is_lumina2?: boolean;
quantize: boolean;
quantize_te: boolean;
quantize_kwargs?: QuantizeKwargsConfig;
}
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;
}
export interface ProcessConfig {
type: 'sd_trainer';
training_folder: string;
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;
}