UNPKG

@brojs/kandinsky

Version:

JavaScript library for Kandinsky AI image generation

151 lines (150 loc) 5.1 kB
/** * Популярные соотношения сторон для генерации изображений. * Используется для удобного указания стандартных пропорций изображения. * * @example * // Квадратное изображение * const params = { * query: 'кот', * aspectRatio: AspectRatio.Square_1_1 * }; * * @example * // Вертикальное изображение для Instagram * const params = { * query: 'портрет', * aspectRatio: AspectRatio.Vertical_2_3 * }; * * @example * // Широкоформатное изображение для видео * const params = { * query: 'пейзаж', * aspectRatio: AspectRatio.Horizontal_16_9 * }; */ export declare enum AspectRatio { /** * Квадратное изображение (1:1) * Идеально подходит для аватарок, миниатюр и социальных сетей * @example * aspectRatio: AspectRatio.Square_1_1 // 1024x1024 */ Square_1_1 = 1, /** * Вертикальное изображение (2:3) * Стандартное соотношение для портретов и вертикальных фотографий * @example * aspectRatio: AspectRatio.Vertical_2_3 // 682x1024 */ Vertical_2_3 = 0.6666666666666666, /** * Горизонтальное изображение (3:2) * Классическое соотношение для пейзажей и горизонтальных фотографий * @example * aspectRatio: AspectRatio.Horizontal_3_2 // 1024x682 */ Horizontal_3_2 = 1.5, /** * Вертикальное изображение (9:16) * Соотношение для мобильных устройств и сторис * @example * aspectRatio: AspectRatio.Vertical_9_16 // 576x1024 */ Vertical_9_16 = 0.5625, /** * Широкоформатное изображение (16:9) * Стандартное соотношение для видео и широкоформатных дисплеев * @example * aspectRatio: AspectRatio.Horizontal_16_9 // 1024x576 */ Horizontal_16_9 = 1.7777777777777777 } /** * Параметры для генерации изображения с помощью Kandinsky API * @interface GenerateParams */ export interface GenerateParams { /** * Текстовое описание желаемого изображения * @example "Пушистый кот в очках" * @example "Рыжая лиса в городе" */ query: string; /** * Ширина генерируемого изображения в пикселях * @default 1024 * @minimum 256 * @maximum 1024 */ width?: number; /** * Высота генерируемого изображения в пикселях * @default 1024 * @minimum 256 * @maximum 1024 */ height?: number; /** * Соотношение сторон изображения (ширина/высота) * Можно использовать enum AspectRatio * @example AspectRatio.Square_1_1 * @example AspectRatio.Horizontal_16_9 */ aspectRatio?: number; /** * Количество изображений для генерации * @default 1 * @minimum 1 * @maximum 4 */ numImages?: number; /** * Стиль изображения. Доступные стили: * - 'ANIME' - аниме стиль * - 'DEFAULT' - стандартный стиль * - 'KANDINSKY' - стиль Кандинского * - 'UHD' - ультра-высокое качество * @default 'DEFAULT' */ style?: string; /** * Отрицательный промпт - описание элементов, которые нужно исключить из изображения * @example "яркие цвета, кислотность" * @example "размытость, шум" */ negativePromptDecoder?: string; /** * Количество попыток для ожидания генерации * @default 10 */ attempts?: number; /** * Задержка между попытками в миллисекундах * @default 2000 */ delay?: number; } export interface GenerationResult { uuid: string; status: string; result?: { files: string[]; censored: boolean; }; errorDescription?: string; } export declare class KandinskyAPI { private readonly client; private readonly apiKey; private readonly secretKey; private pipelineId; constructor({ apiKey, secretKey }?: { apiKey?: string; secretKey?: string; }); private getPipeline; private calculateDimensions; generate(params: GenerateParams): Promise<string[]>; private waitForGeneration; }