Создаёт изображения по описанию и редактирует загруженные: меняет детали, переносит стиль или объединяет до 8 картинок в одну сцену. Цена — 5 ₽ за изображение 1K и 20 ₽ за 2K, каждое загруженное изображение добавляет столько же.
Общая документация Public API · API-ключ можно создать в настройках аккаунта
Krea 3 рисует изображения по текстовому описанию и правит готовые картинки по заданию: меняет детали и фон, переносит стиль, собирает одну сцену из нескольких фотографий. Модель понимает длинные подробные описания и аккуратно держит композицию, поэтому её берут для иллюстраций, обложек, карточек товаров и быстрых вариаций одного сюжета. Две модели на выбор: Berry точнее и детальнее, Jam быстрее.
Режим выбирается сам по запросу:
image_urls не передан или пустой. Модель рисует новое изображение по prompt.image_urls есть хотя бы одна ссылка (до 8). Модель меняет изображения по prompt или объединяет их в одну картинку.Каждый запрос создаёт асинхронную операцию: сразу приходит id и статус queued, а готовое изображение нужно забрать отдельным запросом по этому id.
POST /api/v1/operationsAuthorization: Bearer brth_...id и стартовый статус операции.Режимы:
image_urls;image_urls;image_urls.{
"tool": "krea-3",
"input": {
"...": "..."
}
}
tool - slug нейросети, всегда "krea-3".input - параметры запуска, все поля передаются прямо внутри этого объекта.prompt: остальные поля можно не передавать, тогда работают значения по умолчанию из описания параметров.| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
prompt | string | Да | Что нарисовать или что изменить. От 3 до 5000 символов. В правке на изображения можно ссылаться по номеру: @image1, @image2 - номер совпадает с порядком ссылок в image_urls. |
image_urls | string[] | Нет | Внешние http/https ссылки на изображения .jpg, .jpeg, .png, .webp, до 8 штук. Без ссылок - создание, со ссылками - правка. Каждая ссылка увеличивает цену, см. раздел «Ценообразование». |
model | enum | Нет | berry - точнее и детальнее, jam - быстрее. На цену не влияет. Если не передать - berry. |
resolution | enum | Нет | Размер готового изображения и цена: 1k - около 1 Мп (например 1024×1024), 2k - около 4 Мп (например 2048×2048). Если не передать - 1k. |
aspect_ratio | enum | Нет | Пропорции готового изображения: 1:1, 4:3, 3:4, 3:2, 2:3, 16:9, 9:16, 5:4, 4:5, 21:9. Действует и при правке: выбирайте пропорции исходного изображения, иначе кадр будет перекомпонован. Если не передать - 1:1. |
reasoning_level | enum | Нет | Насколько глубоко модель разбирает задание: low - обычно, medium - дольше, но точнее следует сложным описаниям. На цену не влияет. Если не передать - low. |
use_negative_prompt | boolean | Нет | true включает негативный промпт. Без этого флага поле negative_prompt игнорируется. |
negative_prompt |
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "krea-3",
"input": {
"prompt": "Маленькая цветочная лавка поздним вечером: продавщица в тёмно-зелёном кардигане заворачивает букет белых лилий в крафт-бумагу, тёплые лампы, стеклянные вазы, за окном дождь и неон. Кинематографичный реализм",
"model": "berry",
"resolution": "1k",
"aspect_ratio": "3:4"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'krea-3',
input: {
prompt: 'Маленькая цветочная лавка поздним вечером: продавщица в тёмно-зелёном кардигане заворачивает букет белых лилий в крафт-бумагу, тёплые лампы, стеклянные вазы, за окном дождь и неон. Кинематографичный реализм',
model: 'berry',
resolution: '1k',
aspect_ratio: '3:4',
},
}),
})
const data = await response.json()
import requests
response = requests.post(
'https://bratuha.ru/api/v1/operations',
headers={
'Authorization': 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
json={
'tool': 'krea-3',
'input': {
'prompt': 'Маленькая цветочная лавка поздним вечером: продавщица в тёмно-зелёном кардигане заворачивает букет белых лилий в крафт-бумагу, тёплые лампы, стеклянные вазы, за окном дождь и неон. Кинематографичный реализм',
'model': 'berry',
'resolution': '1k',
'aspect_ratio': '3:4',
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "krea-3",
"input": {
"prompt": "Замени содержимое бокала на миниатюрное средиземноморское побережье: скалы, бирюзовая вода, белая вилла и крошечный парусник. Бармена, его позу, форму бокала и бар не меняй",
"image_urls": [
"https://cdn.example.com/source-image-1.jpg"
],
"aspect_ratio": "4:5",
"resolution": "2k",
"use_negative_prompt": true,
"negative_prompt": "текст, водяные знаки"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'krea-3',
input: {
prompt: 'Замени содержимое бокала на миниатюрное средиземноморское побережье: скалы, бирюзовая вода, белая вилла и крошечный парусник. Бармена, его позу, форму бокала и бар не меняй',
image_urls: ['https://cdn.example.com/source-image-1.jpg'],
aspect_ratio: '4:5',
resolution: '2k',
use_negative_prompt: true,
negative_prompt: 'текст, водяные знаки',
},
}),
})
const data = await response.json()
import requests
response = requests.post(
'https://bratuha.ru/api/v1/operations',
headers={
'Authorization': 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
json={
'tool': 'krea-3',
'input': {
'prompt': 'Замени содержимое бокала на миниатюрное средиземноморское побережье: скалы, бирюзовая вода, белая вилла и крошечный парусник. Бармена, его позу, форму бокала и бар не меняй',
'image_urls': ['https://cdn.example.com/source-image-1.jpg'],
'aspect_ratio': '4:5',
'resolution': '2k',
'use_negative_prompt': True,
'negative_prompt': 'текст, водяные знаки',
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
Номер в @image1, @image2 - это порядок ссылки в image_urls.
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "krea-3",
"input": {
"prompt": "Надень на человека с @image1 куртку с @image2 и поставь его на фоне набережной с @image3. Лицо и позу сохрани",
"image_urls": [
"https://cdn.example.com/source-image-1.jpg",
"https://cdn.example.com/reference-image-2.png",
"https://cdn.example.com/reference-image-3.jpg"
],
"model": "jam",
"aspect_ratio": "3:4",
"resolution": "1k"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'krea-3',
input: {
prompt: 'Надень на человека с @image1 куртку с @image2 и поставь его на фоне набережной с @image3. Лицо и позу сохрани',
image_urls: [
'https://cdn.example.com/source-image-1.jpg',
'https://cdn.example.com/reference-image-2.png',
'https://cdn.example.com/reference-image-3.jpg',
],
model: 'jam',
aspect_ratio: '3:4',
resolution: '1k',
},
}),
})
const data = await response.json()
import requests
response = requests.post(
'https://bratuha.ru/api/v1/operations',
headers={
'Authorization': 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
json={
'tool': 'krea-3',
'input': {
'prompt': 'Надень на человека с @image1 куртку с @image2 и поставь его на фоне набережной с @image3. Лицо и позу сохрани',
'image_urls': [
'https://cdn.example.com/source-image-1.jpg',
'https://cdn.example.com/reference-image-2.png',
'https://cdn.example.com/reference-image-3.jpg',
],
'model': 'jam',
'aspect_ratio': '3:4',
'resolution': '1k',
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
{
"id": "op_uuid-123",
"status": "queued",
"tool": "krea-3",
"cost": 5,
"balance_after": 495,
"created_at": "2026-10-16T12:00:00Z"
}
{
"id": "op_uuid-123",
"status": "completed",
"tool": "krea-3",
"cost": 5,
"created_at": "2026-10-16T12:00:00Z",
"completed_at": "2026-10-16T12:00:25Z",
"result": {
"type": "image",
"urls": [
"https://storage.bratuha.ru/results/krea-3/image-1.png"
]
},
"error_message": null
}
{
"id": "op_uuid-123",
"status": "failed",
"tool": "krea-3",
"cost": 5,
"created_at": "2026-10-16T12:00:00Z",
"completed_at": "2026-10-16T12:00:09Z",
"result": null,
"error_message": "Не удалось сгенерировать изображение по этому запросу"
}
Сохраните id из ответа на создание и проверяйте статус операции по нему:
GET /api/v1/operations/{id}
curl -H "Authorization: Bearer brth_ваш_ключ" \
https://bratuha.ru/api/v1/operations/op_uuid-123
const status = await fetch(
'https://bratuha.ru/api/v1/operations/op_uuid-123',
{
headers: { Authorization: 'Bearer brth_ваш_ключ' },
},
)
const result = await status.json()
В обоих режимах приходит одно изображение:
{
"type": "image",
"urls": [
"https://storage.bratuha.ru/results/krea-3/image-1.png"
]
}
type - всегда "image".urls - массив с одной ссылкой на готовое изображение в PNG.Если операция завершилась с ошибкой, result будет null, а причина придёт в error_message.
Цена складывается из размера результата и числа переданных изображений: 5 ₽ за каждый мегапиксель результата и столько же за каждую ссылку в image_urls. На практике это две ставки:
resolution | Без изображений | За каждую ссылку в image_urls |
|---|---|---|
1k | 5 ₽ | + 5 ₽ |
2k | 20 ₽ | + 20 ₽ |
Примеры:
| Запрос | Цена |
|---|---|
1k, создание | 5 ₽ |
1k, правка одного изображения | 10 ₽ |
1k, три изображения | 20 ₽ |
2k, создание | 20 ₽ |
2k, правка одного изображения | 40 ₽ |
2k, восемь изображений | 180 ₽ |
resolution не передан, считается 1k.1k и jam, для финального варианта - 2k и berry.Idempotency-Key: повтор того же запроса в течение 24 часов вернёт исходную операцию без повторного списания. Без заголовка повтор создаёт новую операцию и списывает деньги ещё раз.max_price в теле запроса, чтобы сервер отклонил запуск дороже согласованной суммы до списания.queued, затем проверяйте статус по id раз в 2-3 секунды. Обычно изображение готово за 15-60 секунд, при reasoning_level: "medium" дольше.http/https ссылками на .jpg, .jpeg, .png или .webp, не больше 8 ссылок в image_urls.aspect_ratio, а не из исходного изображения: передайте те же пропорции, что у исходника, если кадр менять не нужно.berry: у jam поля use_negative_prompt и negative_prompt игнорируются.validation_error.string| Нет |
Чего не должно быть на изображении, до 1000 символов. Работает только у модели berry и только вместе с use_negative_prompt: true. |