UNPKG

@brojs/kandinsky

Version:

JavaScript library for Kandinsky AI image generation

90 lines (71 loc) 3.84 kB
# KandinskyJS JavaScript библиотека для генерации изображений с помощью нейросети Kandinsky. ## Установка ```bash npm install @brojs/kandinsky ``` ## Использование ```javascript const { KandinskyAPI, AspectRatio } = require('@brojs/kandinsky'); const fs = require('fs'); // Создание экземпляра API const api = new KandinskyAPI(); // Генерация изображения с указанием размеров async function generateImage(imageName, params) { try { const images = await api.generate(params); // Сохраняем изображение в файл if (images && images.length > 0) { const imageData = images[0].replace(/^data:image\/\w+;base64,/, ''); const buffer = Buffer.from(imageData, 'base64'); fs.writeFileSync(`generated_image_${imageName}.jpg`, buffer); console.log(`Изображение сохранено в файл generated_image_${imageName}.jpg`); } } catch (error) { console.error('Ошибка при генерации:', error); } } // Пример 1: Генерация с указанием размеров generateImage('1', { query: 'рыжая лиса в городе', width: 512, height: 256, style: 'ANIME', negativePromptDecoder: 'яркие цвета, кислотность', }); // Пример 2: Генерация с aspect ratio через enum generateImage('2', { query: 'рыжая лиса в городе', width: 800, aspectRatio: AspectRatio.Horizontal_3_2, // будет 800x533 style: 'ANIME', }); // Пример 3: Генерация только с aspect ratio через enum generateImage('3', { query: 'рыжая лиса в городе', aspectRatio: AspectRatio.Vertical_2_3, // будет 682x1024 style: 'KANDINSKY', }); ``` ## Параметры генерации - `query` (обязательный): Текстовое описание желаемого изображения - `width` (опционально): Ширина изображения в пикселях (по умолчанию 1024) - `height` (опционально): Высота изображения в пикселях (по умолчанию 1024) - `aspectRatio` (опционально): Соотношение сторон изображения (ширина/высота). Можно использовать enum `AspectRatio`: - `AspectRatio.Square_1_1` — 1:1 (квадрат, `1`) - `AspectRatio.Vertical_2_3` — 2:3 (вертикальное, `0.6667`) - `AspectRatio.Horizontal_3_2` — 3:2 (горизонтальное, `1.5`) - `AspectRatio.Vertical_9_16` — 9:16 (вертикальное, `0.5625`) - `AspectRatio.Horizontal_16_9` — 16:9 (широкоформатное, `1.7778`) - `numImages` (опционально): Количество генерируемых изображений (по умолчанию 1) - `style` (опционально): Стиль изображения (например, 'ANIME') - `negativePromptDecoder` (опционально): Отрицательный промпт для исключения нежелательных элементов ## Ограничения размеров - Минимальный размер: 256x256 пикселей - Максимальный размер: 1024x1024 пикселей - При использовании aspectRatio размеры автоматически масштабируются с сохранением пропорций ## Требования - Node.js 14 или выше - API ключ и секретный ключ от Kandinsky API ## Лицензия ISC