import { z } from "zod"; import { ComfyUIClient } from "../comfyui-client.js"; import type { ModelFamily } from "../prompting/types.js"; /** * Schema for the /imagine skill * This is the main entry point for natural language → optimized image generation */ export declare const imagineSchema: z.ZodObject<{ description: z.ZodString; output_path: z.ZodString; model: z.ZodOptional; model_family: z.ZodOptional>; style: z.ZodOptional>; artist_reference: z.ZodOptional; rating: z.ZodOptional>; camera: z.ZodOptional; aperture: z.ZodOptional; iso: z.ZodOptional; shutterSpeed: z.ZodOptional; }, "strip", z.ZodTypeAny, { focalLength?: string | undefined; aperture?: string | undefined; iso?: string | undefined; shutterSpeed?: string | undefined; }, { focalLength?: string | undefined; aperture?: string | undefined; iso?: string | undefined; shutterSpeed?: string | undefined; }>>; width: z.ZodOptional; height: z.ZodOptional; steps: z.ZodOptional; cfg_scale: z.ZodOptional; sampler: z.ZodOptional; scheduler: z.ZodOptional; seed: z.ZodOptional; loras: z.ZodOptional>; strength_clip: z.ZodDefault>; }, "strip", z.ZodTypeAny, { name: string; strength_model: number; strength_clip: number; }, { name: string; strength_model?: number | undefined; strength_clip?: number | undefined; }>, "many">>; auto_recommend_loras: z.ZodDefault>; enable_hires_fix: z.ZodDefault>; hires_scale: z.ZodDefault>; hires_denoise: z.ZodDefault>; hires_steps: z.ZodDefault>; enable_upscale: z.ZodDefault>; upscale_model: z.ZodDefault>; quality: z.ZodDefault>>; upload_to_cloud: z.ZodDefault>; }, "strip", z.ZodTypeAny, { description: string; output_path: string; upload_to_cloud: boolean; enable_hires_fix: boolean; hires_scale: number; hires_denoise: number; hires_steps: number; enable_upscale: boolean; upscale_model: string; auto_recommend_loras: boolean; quality: "draft" | "standard" | "high" | "ultra"; model?: string | undefined; style?: "anime" | "portrait" | "realistic_photo" | "digital_art" | "oil_painting" | "watercolor" | "sketch" | "3d_render" | "pixel_art" | "comic" | "cinematic" | "fantasy" | "landscape" | "scifi" | "horror" | undefined; steps?: number | undefined; seed?: number | undefined; width?: number | undefined; height?: number | undefined; scheduler?: string | undefined; sampler?: string | undefined; cfg_scale?: number | undefined; loras?: { name: string; strength_model: number; strength_clip: number; }[] | undefined; model_family?: "sd15" | "sdxl" | "flux" | "pony" | "illustrious" | "realistic" | undefined; artist_reference?: string | undefined; rating?: "safe" | "suggestive" | "explicit" | undefined; camera?: { focalLength?: string | undefined; aperture?: string | undefined; iso?: string | undefined; shutterSpeed?: string | undefined; } | undefined; }, { description: string; output_path: string; model?: string | undefined; style?: "anime" | "portrait" | "realistic_photo" | "digital_art" | "oil_painting" | "watercolor" | "sketch" | "3d_render" | "pixel_art" | "comic" | "cinematic" | "fantasy" | "landscape" | "scifi" | "horror" | undefined; steps?: number | undefined; seed?: number | undefined; width?: number | undefined; height?: number | undefined; upload_to_cloud?: boolean | undefined; scheduler?: string | undefined; sampler?: string | undefined; cfg_scale?: number | undefined; loras?: { name: string; strength_model?: number | undefined; strength_clip?: number | undefined; }[] | undefined; enable_hires_fix?: boolean | undefined; hires_scale?: number | undefined; hires_denoise?: number | undefined; hires_steps?: number | undefined; enable_upscale?: boolean | undefined; upscale_model?: string | undefined; model_family?: "sd15" | "sdxl" | "flux" | "pony" | "illustrious" | "realistic" | undefined; artist_reference?: string | undefined; rating?: "safe" | "suggestive" | "explicit" | undefined; camera?: { focalLength?: string | undefined; aperture?: string | undefined; iso?: string | undefined; shutterSpeed?: string | undefined; } | undefined; auto_recommend_loras?: boolean | undefined; quality?: "draft" | "standard" | "high" | "ultra" | undefined; }>; export type ImagineInput = z.infer; interface ImagineResult { success: boolean; imagePath: string; remote_url?: string; seed: number; prompt: { positive: string; negative: string; }; modelFamily: ModelFamily; pipelineSteps: string[]; message: string; settings: { width: number; height: number; steps: number; cfgScale: number; sampler: string; scheduler: string; }; } /** * The /imagine skill - transforms natural language into optimized image generation * * This is the main entry point for AI-assisted image generation. It: * 1. Auto-detects model family from model name * 2. Crafts optimized prompts using model-specific strategies * 3. Applies appropriate generation settings * 4. Executes the full pipeline (txt2img → optional hires fix → optional upscale) */ export declare function imagine(client: ComfyUIClient, input: ImagineInput, defaultModel: string, availableLoras?: string[]): Promise; export {};