Генерация изображений
Любая image-модель из каталога. Один POST → готовая картинка через 3–30 секунд.
Минимальный пример
curl -X POST https://api.neuroartist.ru/run/flux/dev \
-H "Authorization: Bearer na_live_xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"prompt": "editorial portrait, monochrome, soft daylight",
"image_size": "portrait_4_3"
}'{
"images": [{ "url": "https://s3.cloud.ru/neuroartist/.../result.webp", "width": 768, "height": 1024 }],
"seed": 12345,
"timings": { "inference": 4.21 }
}URL живёт в нашем S3 пока вы его не удалите.
Популярные модели
| modelId | Назначение | Цена за image |
|---|---|---|
flux/dev | Универсальная text-to-image, FLUX.1 dev | 8 ₽ |
flux-pro/v1.1-ultra | Премиум, до 4K | 25 ₽ |
flux/dev/image-to-image | img2img со strength | 8 ₽ |
flux-lora | text-to-image с LoRA-адаптерами | 12 ₽ |
recraft-v3 | Векторная иллюстрация, точная типографика | 18 ₽ |
nano-banana | Высокое качество, быстро | 6 ₽ |
stable-diffusion-3.5-large | SD 3.5 Large | 10 ₢ |
Полный каталог — GET /models?category=image или /generate.
Параметры
Тело запроса — input модели по её JSON Schema. Получить:
curl https://api.neuroartist.ru/models/flux/dev | jq .schemaОбщие поля у image-моделей:
| Поле | Тип | Описание |
|---|---|---|
prompt | string | Описание желаемого изображения |
negative_prompt | string | Что не должно быть |
image_size | string | {width,height} | square_hd, portrait_4_3, landscape_16_9, либо custom |
num_inference_steps | int | Качество vs скорость, обычно 28 |
seed | int | Воспроизводимость |
num_images | int | 1–4 |
Image-to-image (img2img)
Передайте публичный HTTPS-URL картинки в image_url, добавьте strength (0..1):
curl -X POST https://api.neuroartist.ru/run/flux/dev/image-to-image \
-H "Authorization: Bearer na_live_xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"image_url": "https://your-cdn.example.com/photo.jpg",
"prompt": "make it watercolor",
"strength": 0.65
}'Подробнее про источники файлов — Загрузка файлов.
Длинные генерации
FLUX dev/pro — 3–10 секунд. Если batched или upscale-модель превышает 60 секунд, переходите на async с SSE:
import { fetchEventSource } from '@microsoft/fetch-event-source'
const submit = await fetch(
'https://api.neuroartist.ru/queue/flux-pro/v1.1-ultra',
{
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.NA_API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({ prompt: '…', aspect_ratio: '4:3' })
}
).then(r => r.json())
// Подписка на прогресс
fetchEventSource(
`https://api.neuroartist.ru/queue/flux-pro/v1.1-ultra/requests/${submit.requestId}/progress/stream`,
{
headers: { Authorization: `Bearer ${process.env.NA_API_KEY}` },
onmessage(msg) {
const e = JSON.parse(msg.data)
if (e.stage === 'completed') console.log(e.result.images[0].url)
}
}
)Подробнее — асинхронная очередь и SSE.
Что вернётся
{
"images": [
{
"url": "https://s3.cloud.ru/neuroartist/.../result.webp",
"width": 768,
"height": 1024,
"content_type": "image/webp"
}
],
"seed": 12345,
"timings": { "inference": 4.21 },
"has_nsfw_concepts": [false]
}При num_images > 1 — массив из нескольких объектов.
url — наш S3 (Cloud.ru). Если нужны оригинальные ссылки без re-host, добавьте ?passthrough=1 (но они умрут через ~24 часа).
Стоимость
curl -X POST https://api.neuroartist.ru/models/flux/dev/estimate \
-H "Authorization: Bearer na_live_xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"prompt":"…","num_images":4}'{ "modelId": "flux/dev", "estimatedCostRub": 32, "priceUnit": "image", "quantity": 4 }Дальше
- Все image-модели — каталог с фильтрами.
- Загрузка input-файлов — для img2img, inpainting.
- Async + SSE — для длинных пайплайнов.
- Приём webhook — для серверной обработки без UI.