Вырезает выбранный объект с изображения на прозрачном фоне. Цена — 3 ₽ за изображение.
Общая документация Public API · API-ключ можно создать в настройках аккаунта
Нейросеть вырезает с фотографии нужный объект и отдаёт его в PNG на прозрачном фоне. Так готовят карточки товаров для маркетплейсов, стикеры, элементы для коллажей и баннеров: вещь, человек или животное переносятся на любой фон без ручной обводки.
Что именно вырезать, можно подсказать словами в prompt: «красная сумка», «кот на скамейке», «логотип на кружке». Без подсказки нейросеть сама выберет главный объект кадра. Два выключателя помогают с краями и размером: force_background_removal дочищает остатки фона, autocrop обрезает пустые прозрачные поля.
Каждый вызов создаёт асинхронную операцию. Сохраните id из ответа и проверяйте по нему статус отдельным запросом.
POST /api/v1/operationsAuthorization: Bearer brth_...id и стартовый статус queued.Сценарий один - одно фото на входе, один PNG на выходе. Меняется только то, подсказываете ли вы объект текстом и включаете ли дополнительные настройки.
{
"tool": "extract-object",
"input": {
"image": "https://cdn.example.com/source-image-1.jpg",
"prompt": "...",
"force_background_removal": false,
"autocrop": false
}
}
tool - slug нейросети, всегда "extract-object".input - параметры запуска. Все поля передаются прямо внутри этого объекта, без дополнительной вложенности.| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
image | string (url) | Да | Ссылка на исходное фото, одна строка. Форматы: .jpg, .jpeg, .png, .webp. Нужна публичная http/https ссылка, которая открывается без авторизации, файл до 128 МБ. |
prompt | string | Нет | Какой объект вырезать, до 1000 символов. Пишите коротко и по делу: «белая кроссовка», «девушка в жёлтом платье», «рыжий кот на скамейке». Можно по-русски. Если поле пустое или не передано, нейросеть вырежет главный объект кадра сама. |
force_background_removal | boolean | Нет | Усиленная очистка фона: дополнительно чистит края объекта и оставшиеся куски фона. Помогает, когда фон пёстрый или объект сливается с окружением. По умолчанию false. |
autocrop | boolean | Нет | Обрезать прозрачные поля: холст уменьшается до границ вырезанного объекта. Без этого результат остаётся размером с исходное фото, а объект стоит на своём месте. По умолчанию false. |
Самый простой вызов: нейросеть сама решает, что в кадре главное.
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "extract-object",
"input": {
"image": "https://cdn.example.com/sneaker-on-carpet.jpg"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'extract-object',
input: {
image: 'https://cdn.example.com/sneaker-on-carpet.jpg',
},
}),
})
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': 'extract-object',
'input': {
'image': 'https://cdn.example.com/sneaker-on-carpet.jpg',
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
На фото дачного участка несколько объектов, а нужен только кот со скамейкой. Подсказка в prompt выбирает объект, autocrop убирает лишнее прозрачное поле вокруг него.
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "extract-object",
"input": {
"image": "https://cdn.example.com/dacha-cat.jpg",
"prompt": "рыжий кот на скамейке",
"force_background_removal": false,
"autocrop": true
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'extract-object',
input: {
image: 'https://cdn.example.com/dacha-cat.jpg',
prompt: 'рыжий кот на скамейке',
force_background_removal: false,
autocrop: true,
},
}),
})
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': 'extract-object',
'input': {
'image': 'https://cdn.example.com/dacha-cat.jpg',
'prompt': 'рыжий кот на скамейке',
'force_background_removal': False,
'autocrop': True,
},
},
timeout=30,
)
print(response.json())
Сумка лежит на узорном покрывале, и края легко «съедают» кусочки фона. Здесь пригодится force_background_removal.
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "extract-object",
"input": {
"image": "https://cdn.example.com/bag-on-blanket.png",
"prompt": "красная кожаная сумка",
"force_background_removal": true,
"autocrop": true
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'extract-object',
input: {
image: 'https://cdn.example.com/bag-on-blanket.png',
prompt: 'красная кожаная сумка',
force_background_removal: true,
autocrop: true,
},
}),
})
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': 'extract-object',
'input': {
'image': 'https://cdn.example.com/bag-on-blanket.png',
'prompt': 'красная кожаная сумка',
'force_background_removal': True,
'autocrop': True,
},
},
timeout=30,
)
print(response.json())
{
"id": "op_uuid-123",
"status": "queued",
"tool": "extract-object",
"cost": 3,
"balance_after": 497,
"created_at": "2026-09-30T21:31:10.288292+00:00"
}
{
"id": "op_uuid-123",
"status": "completed",
"tool": "extract-object",
"cost": 3,
"created_at": "2026-09-30T21:31:10.288292+00:00",
"completed_at": "2026-09-30T21:31:38.656093+00:00",
"result": {
"type": "image",
"urls": [
"https://storage.bratuha.ru/results/extract-object/object-1.png"
]
},
"error_message": null
}
Если нейросеть не нашла на фото то, что описано в prompt, операция завершится со статусом failed:
{
"id": "op_uuid-123",
"status": "failed",
"tool": "extract-object",
"cost": 3,
"created_at": "2026-09-30T21:31:10.288292+00:00",
"completed_at": "2026-09-30T21:31:31.402117+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. Обычно объект готов за 20-30 секунд. Опрашивать одну операцию можно не чаще раза в секунду, разумный интервал - 3-5 секунд.
{
"type": "image",
"urls": [
"https://storage.bratuha.ru/results/extract-object/object-1.png"
]
}
type - всегда "image".urls - массив из одной ссылки на PNG с прозрачным фоном (канал прозрачности сохранён).Размер картинки зависит от autocrop. С autocrop: true холст обрезается по границам объекта: на пробе фото 640×480 с котом на скамейке превратилось в PNG 245×156. С autocrop: false PNG остаётся размером с исходник, вокруг объекта прозрачное поле.
Цена фиксированная - 3 ₽ за запуск. Она не зависит от размера фото, подсказки и выключателей.
| Что меняется | Цена |
|---|---|
Без prompt | 3 ₽ |
С prompt | 3 ₽ |
force_background_removal и autocrop в любом сочетании | 3 ₽ |
Стоимость списывается при создании операции и приходит в поле cost ответа.
POST /api/v1/operations не идемпотентен: каждый повторный запрос создаёт новую оплаченную операцию. Если ответ потерялся, не повторяйте запрос вслепую.queued, результат забирается по id.http/https, которая открывается без авторизации. Форматы - JPG, JPEG, PNG или WebP, размер до 128 МБ.prompt описано то, чего нет в кадре, операция завершится ошибкой «Не удалось найти объект...» или «По вашему запросу не найдено подходящего изображения». Проверьте формулировку и назовите объект проще: «сумка» вместо «аксессуар для вечернего образа».