Создаёт изображения по текстовому описанию и умеет редактировать их по загруженным картинкам. Цена: 8 ₽ за 1 изображение с 0-1 фото, 9 ₽ с 2 фото, 10 ₽ с 3 фото, 11 ₽ с 4 фото.
Общая документация Public API · API-ключ можно создать в настройках аккаунта
ImagineArt 2.0 рисует картинки по текстовому заданию и редактирует готовые изображения. Без исходников модель создаёт кадр с нуля в разрешении 2K, а если прислать от 1 до 4 картинок, меняет их по вашей инструкции: заменить предмет, поменять время года, добавить деталь, собрать сцену из нескольких снимков.
Подходит для иллюстраций к статьям и постам, баннеров в нестандартных пропорциях (есть даже 4:1 и 1:4), предметных фото и быстрых правок уже готовых картинок.
Режим выбирается сам: без image_urls - генерация по тексту, с image_urls - правка. Каждый вызов создаёт асинхронную операцию. Сохраните id из ответа и проверяйте по нему статус.
POST /api/v1/operationsAuthorization: Bearer brth_...id и стартовый статус queued.Сценарии:
prompt и пропорции aspect_ratio.image_urls с одной ссылкой и задание, что поменять.image_urls от 2 до 4 ссылок, в задании объясняете, что откуда взять.{
"tool": "imagineart-2-0",
"input": {
"prompt": "...",
"image_urls": [
"https://cdn.example.com/source-image-1.jpg",
"https://cdn.example.com/source-image-2.jpg"
],
"aspect_ratio": "1:1"
}
}
tool - slug нейросети, всегда "imagineart-2-0".input - параметры запуска. Все поля передаются прямо внутри этого объекта, без дополнительной вложенности.image_urls нужен только для правки. Для генерации по тексту его просто не передавайте.| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
prompt | string | Да | Задание: что нарисовать или что изменить на картинке. До 20000 символов, можно по-русски. Чем конкретнее сюжет, свет и стиль, тем предсказуемее результат. |
image_urls | string[] (url) | Нет | Исходные изображения для правки, от 1 до 4 ссылок. Форматы: .jpg, .jpeg, .png, .webp. Нужны публичные http/https ссылки без авторизации. От числа ссылок зависит цена. Без этого поля модель рисует картинку с нуля. |
aspect_ratio | enum | Да | Пропорции результата при генерации по тексту. Варианты: 1:1 - квадрат; горизонтальные 5:4, 4:3, 3:2, 16:9, 21:9, 3:1, 4:1; вертикальные 4:5, 3:4, 2:3, 9:16, 1:3, 1:4. 3:1, 4:1 и обратные к ним подходят для баннеров и полос. Если передан image_urls, поле не влияет на результат: пропорции берутся с первого изображения. Если не передать, будет 1:1. |
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "imagineart-2-0",
"input": {
"prompt": "Уютный уголок для чтения у окна в дождливый день, тёплый свет лампы, плед и стопка книг, акварельный стиль",
"aspect_ratio": "16:9"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'imagineart-2-0',
input: {
prompt:
'Уютный уголок для чтения у окна в дождливый день, тёплый свет лампы, плед и стопка книг, акварельный стиль',
aspect_ratio: '16:9',
},
}),
})
const data = await response.json()
console.log(data.id, data.status)
import requests
response = requests.post(
'https://bratuha.ru/api/v1/operations',
headers={
'Authorization': 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
json={
'tool': 'imagineart-2-0',
'input': {
'prompt': 'Уютный уголок для чтения у окна в дождливый день, тёплый свет лампы, плед и стопка книг, акварельный стиль',
'aspect_ratio': '16:9',
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
Летнее фото с дачи превращаем в зимнее. aspect_ratio можно передать любой из списка, результат всё равно повторит пропорции исходника.
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "imagineart-2-0",
"input": {
"prompt": "Сделай эту сцену зимней: снег на заборе, скамейке и траве, изо рта у мужчины пар, рыжий кот остаётся на месте",
"image_urls": [
"https://cdn.example.com/dacha-summer.jpg"
],
"aspect_ratio": "4:3"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'imagineart-2-0',
input: {
prompt:
'Сделай эту сцену зимней: снег на заборе, скамейке и траве, изо рта у мужчины пар, рыжий кот остаётся на месте',
image_urls: ['https://cdn.example.com/dacha-summer.jpg'],
aspect_ratio: '4:3',
},
}),
})
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': 'imagineart-2-0',
'input': {
'prompt': 'Сделай эту сцену зимней: снег на заборе, скамейке и траве, изо рта у мужчины пар, рыжий кот остаётся на месте',
'image_urls': ['https://cdn.example.com/dacha-summer.jpg'],
'aspect_ratio': '4:3',
},
},
timeout=30,
)
print(response.json())
Кружка с одного фото, кухонный стол с другого. Две ссылки - цена 9 ₽.
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "imagineart-2-0",
"input": {
"prompt": "Поставь кружку со второго изображения на стол с первого изображения, рядом с тарелкой. Свет и тени как на первом изображении",
"image_urls": [
"https://cdn.example.com/kitchen-table.jpg",
"https://cdn.example.com/ceramic-mug.png"
],
"aspect_ratio": "1:1"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'imagineart-2-0',
input: {
prompt:
'Поставь кружку со второго изображения на стол с первого изображения, рядом с тарелкой. Свет и тени как на первом изображении',
image_urls: [
'https://cdn.example.com/kitchen-table.jpg',
'https://cdn.example.com/ceramic-mug.png',
],
aspect_ratio: '1:1',
},
}),
})
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': 'imagineart-2-0',
'input': {
'prompt': 'Поставь кружку со второго изображения на стол с первого изображения, рядом с тарелкой. Свет и тени как на первом изображении',
'image_urls': [
'https://cdn.example.com/kitchen-table.jpg',
'https://cdn.example.com/ceramic-mug.png',
],
'aspect_ratio': '1:1',
},
},
timeout=30,
)
print(response.json())
{
"id": "op_uuid-123",
"status": "queued",
"tool": "imagineart-2-0",
"cost": 8,
"balance_after": 492,
"created_at": "2026-09-30T21:31:10.288316+00:00"
}
{
"id": "op_uuid-123",
"status": "completed",
"tool": "imagineart-2-0",
"cost": 8,
"created_at": "2026-09-30T21:31:10.288316+00:00",
"completed_at": "2026-09-30T21:31:54.23394+00:00",
"result": {
"type": "image",
"urls": [
"https://storage.bratuha.ru/results/imagineart-2-0/image-1.png"
]
},
"error_message": null
}
{
"id": "op_uuid-123",
"status": "failed",
"tool": "imagineart-2-0",
"cost": 8,
"created_at": "2026-09-30T21:31:10.288316+00:00",
"completed_at": "2026-09-30T21:32:02.517730+00:00",
"result": null,
"error_message": "Произошла ошибка, сервис временно недоступен. Попробуйте повторить запрос позже."
}
Сохраните id из ответа на создание и запрашивайте статус операции по нему:
GET /api/v1/operations/{id}
curl -H "Authorization: Bearer brth_ваш_ключ" \
https://bratuha.ru/api/v1/operations/op_uuid-123
async function waitForResult(id: string) {
while (true) {
const response = await fetch(`https://bratuha.ru/api/v1/operations/${id}`, {
headers: { Authorization: 'Bearer brth_ваш_ключ' },
})
const operation = await response.json()
if (operation.status === 'completed' || operation.status === 'failed') {
return operation
}
await new Promise((resolve) => setTimeout(resolve, 5000))
}
}
Статус меняется с queued на processing, а затем на completed или failed. Обычно картинка готова за 40-60 секунд, но правка иногда занимает несколько минут. Опрашивать одну операцию можно не чаще раза в секунду, разумный интервал - 3-5 секунд.
{
"type": "image",
"urls": [
"https://storage.bratuha.ru/results/imagineart-2-0/image-1.png"
]
}
type - всегда "image".urls - массив из одной ссылки на PNG. Один запуск всегда даёт одну картинку, сколько бы изображений вы ни передали.При генерации по тексту картинка создаётся в разрешении 2K в пропорциях aspect_ratio: например, при 16:9 получается 2816×1584 пикселей. При правке пропорции повторяют первое изображение, а размер модель выбирает сама и обычно увеличивает маленькие исходники: на пробе фото 640×480 вернулось картинкой 1760×1344.
Цена зависит только от числа ссылок в image_urls. Генерация по тексту и правка одного изображения стоят одинаково, каждое следующее изображение добавляет 1 ₽.
Изображений в image_urls | Цена |
|---|---|
| 0 (генерация по тексту) | 8 ₽ |
| 1 | 8 ₽ |
| 2 | 9 ₽ |
| 3 | 10 ₽ |
| 4 | 11 ₽ |
Пропорции и длина задания на цену не влияют. Стоимость списывается при создании операции и приходит в поле cost ответа.
POST /api/v1/operations не идемпотентен: каждый повторный запрос создаёт новую оплаченную операцию. Если ответ потерялся, не повторяйте запрос вслепую.queued, результат забирается по id.http/https, которые открываются без авторизации. Форматы - JPG, JPEG, PNG или WebP, не больше 4 ссылок.aspect_ratio не работает: чтобы получить другие пропорции, заранее обрежьте первое изображение или сгенерируйте картинку по тексту.