@brojs/kandinsky
Version:
JavaScript library for Kandinsky AI image generation
90 lines (71 loc) • 3.84 kB
Markdown
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