import { SchedulerParam } from 'features/parameters/store/parameterZodSchemas'; // zod needs the array to be `as const` to infer the type correctly // this is the source of the `SchedulerParam` type, which is generated by zod export const SCHEDULER_NAMES_AS_CONST = [ 'euler', 'deis', 'ddim', 'ddpm', 'dpmpp_2s', 'dpmpp_2m', 'dpmpp_2m_sde', 'dpmpp_sde', 'heun', 'kdpm_2', 'lms', 'pndm', 'unipc', 'euler_k', 'dpmpp_2s_k', 'dpmpp_2m_k', 'dpmpp_2m_sde_k', 'dpmpp_sde_k', 'heun_k', 'lms_k', 'euler_a', 'kdpm_2_a', ] as const; export const DEFAULT_SCHEDULER_NAME = 'euler'; export const SCHEDULER_NAMES: SchedulerParam[] = [...SCHEDULER_NAMES_AS_CONST]; export const SCHEDULER_LABEL_MAP: Record = { euler: 'Euler', deis: 'DEIS', ddim: 'DDIM', ddpm: 'DDPM', dpmpp_sde: 'DPM++ SDE', dpmpp_2s: 'DPM++ 2S', dpmpp_2m: 'DPM++ 2M', dpmpp_2m_sde: 'DPM++ 2M SDE', heun: 'Heun', kdpm_2: 'KDPM 2', lms: 'LMS', pndm: 'PNDM', unipc: 'UniPC', euler_k: 'Euler Karras', dpmpp_sde_k: 'DPM++ SDE Karras', dpmpp_2s_k: 'DPM++ 2S Karras', dpmpp_2m_k: 'DPM++ 2M Karras', dpmpp_2m_sde_k: 'DPM++ 2M SDE Karras', heun_k: 'Heun Karras', lms_k: 'LMS Karras', euler_a: 'Euler Ancestral', kdpm_2_a: 'KDPM 2 Ancestral', }; export type Scheduler = (typeof SCHEDULER_NAMES)[number]; // Valid upscaling levels export const UPSCALING_LEVELS: Array<{ label: string; value: string }> = [ { label: '2x', value: '2' }, { label: '4x', value: '4' }, ]; export const NUMPY_RAND_MIN = 0; export const NUMPY_RAND_MAX = 2147483647; export const FACETOOL_TYPES = ['gfpgan', 'codeformer'] as const; export const NODE_MIN_WIDTH = 250;