Type Reference
Complete TypeScript type definitions for the Weyl API.
Core Types
type Modality = 'image' | 'video';
type Family = 'flux' | 'zimage' | 'wan';
type Task = 't2i' | 'i2i' | 't2v' | 'i2v' | 'edit';
type ImageFormat = | '1024' | '512' | 'portrait' | 'portrait-wide' | 'landscape' | 'landscape-wide';
type VideoFormat = | '720p' | '720p-portrait' | '480p' | '480p-portrait' | 'square';
type Backend = 'nunchaku' | 'torch' | 'tensorrt';
type Sampler = 'euler' | 'euler_a' | 'dpmpp_2m' | 'heun';
type Scheduler = 'simple' | 'normal' | 'sgm';
type Priority = 'low' | 'normal' | 'high';
type JobStatus = 'queued' | 'running' | 'complete' | 'failed' | 'cancelled';Request Types
interface BaseGenerationRequest { prompt: string; negative_prompt?: string; steps?: number; guidance?: number; seed?: number;}
interface ImageGenerationRequest extends BaseGenerationRequest { sampler?: Sampler; scheduler?: Scheduler; loras?: LoRAConfig[]; upscale?: 1.5 | 2 | 4; detail_enhance?: boolean; detail_strength?: number;}
interface I2IRequest extends ImageGenerationRequest { image: string; strength?: number;}
interface VideoGenerationRequest extends BaseGenerationRequest { image: string; duration?: number; cfg?: number;}
interface LoRAConfig { url: string; weight: number;}Response Types
interface Job { id: string; status: JobStatus; created_at: string; started_at?: string; completed_at?: string; failed_at?: string;}
interface QueuedJob extends Job { status: 'queued'; position: number; eta_seconds: number;}
interface RunningJob extends Job { status: 'running'; progress: number; step: number; total_steps: number; eta_seconds: number;}
interface CompleteJob extends Job { status: 'complete'; output: string; duration_ms: number;}
interface FailedJob extends Job { status: 'failed'; error: { code: string; message: string; };}WebSocket Types
interface WSMessage { type: string; [key: string]: unknown;}
interface WSAuthMessage extends WSMessage { type: 'auth'; token: string;}
interface WSGenerateMessage extends WSMessage { type: 'generate'; modality: Modality; family: Family; model: string; task: Task; format: string; stream_frames?: boolean;}
interface WSFrameMessage extends WSMessage { type: 'frame'; step: number; total_steps: number; data: string;}
interface WSCompleteMessage extends WSMessage { type: 'complete'; output: string; latency_ms?: number;}