Меняет стиль вашей фотографии на выбранный художественный эффект - например, Anime, Pixar, Van Gogh, Cyberpunk или Steampunk. Цена - 6 рублей за изображение. Примеры стилей
Общая документация Public API · API-ключ можно создать в настройках аккаунта
«Изменить стиль» перерисовывает фотографию в выбранной манере: аниме, Pixar, Ghibli, «Симпсоны», масляная живопись, Ван Гог, киберпанк и ещё два десятка вариантов. Композиция, поза и узнаваемость человека сохраняются, меняются линии, цвета и фактура.
Подходит для аватарок «как из мультфильма», открыток, обложек постов и развлекательных функций в приложениях: пользователь присылает фото, выбирает стиль и получает картинку. Задание писать не нужно - достаточно ссылки на фото и названия стиля.
Каждый вызов создаёт асинхронную операцию. После запуска сохраните её id и проверяйте статус отдельным запросом.
POST /api/v1/operationsAuthorization: Bearer brth_...id и стартовый статус queued.Сценарий один - стилизация одного изображения. Результат определяется только выбранным стилем style.
{
"tool": "change-style",
"input": {
"inputImage": "https://cdn.example.com/photo-1.jpg",
"style": "Pixar"
}
}
tool - slug нейросети, всегда "change-style".input - параметры запуска. Все поля передаются прямо внутри этого объекта, без дополнительной вложенности.| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
inputImage | string (url) | Да | Ссылка на одно фото, которое нужно перерисовать. Форматы: jpg, jpeg, png, webp, jfif, pjpeg, pjp. Только внешние http/https URL. |
style | enum | Да | Стиль результата. Передаётся точным значением из таблицы ниже, с пробелами и заглавными буквами. Если не передать, будет Anime Modern. |
Доступные значения style:
| Значение | Что получится |
|---|---|
Anime Modern | современное аниме |
Anime Classic | классическое аниме 80-90-х |
Anime Kawaii | милое «кавайное» аниме |
Anime Chibi | чиби - маленькие персонажи с большой головой |
Anime Shonen | динамичное аниме в духе сёнэна |
Anime Shoujo | нежное аниме в духе сёдзё |
Anime Pastel | аниме в пастельных тонах |
Anime Dark | мрачное аниме |
Pixar | 3D-мультфильм в стиле Pixar |
Cartoon | обычный мультяшный рисунок |
Ghibli | рисованный мультфильм в духе студии Ghibli |
Simpsons | «Симпсоны» |
Family Guy | «Гриффины» |
South Park | «Южный парк» |
Pop Art | поп-арт |
Instagram | яркое «глянцевое» фото для соцсетей в духе Instagram (принадлежит компании Meta, которая признана экстремистской организацией и запрещена в РФ) |
Oil Painting | масляная живопись |
Pencil Sketch | карандашный набросок |
Vintage | старое фото |
Cyberpunk | киберпанк |
Minimalist | минимализм |
Van Gogh | картина в манере Ван Гога |
Comic Book | комикс |
Claymation | пластилиновая анимация |
Impressionism | импрессионизм |
Gothic | готика |
Surrealism | сюрреализм |
Neon | неон |
Fantasy | фэнтези |
Steampunk | стимпанк |
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "change-style",
"input": {
"inputImage": "https://cdn.example.com/portrait-1.jpg",
"style": "Pixar"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'change-style',
input: {
inputImage: 'https://cdn.example.com/portrait-1.jpg',
style: 'Pixar',
},
}),
})
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': 'change-style',
'input': {
'inputImage': 'https://cdn.example.com/portrait-1.jpg',
'style': 'Pixar',
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
Один запуск - один стиль. Чтобы получить несколько вариантов, отправьте несколько запросов с тем же фото. Каждый запрос - отдельная операция и отдельная оплата.
for style in "Ghibli" "Van Gogh" "Comic Book"; do
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d "{\"tool\": \"change-style\", \"input\": {\"inputImage\": \"https://cdn.example.com/family-photo.png\", \"style\": \"$style\"}}"
done
const styles = ['Ghibli', 'Van Gogh', 'Comic Book']
const operations = await Promise.all(
styles.map(async (style) => {
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'change-style',
input: {
inputImage: 'https://cdn.example.com/family-photo.png',
style,
},
}),
})
return response.json()
}),
)
console.log(operations.map((operation) => operation.id))
import requests
styles = ['Ghibli', 'Van Gogh', 'Comic Book']
operation_ids = []
for style in styles:
response = requests.post(
'https://bratuha.ru/api/v1/operations',
headers={
'Authorization': 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
json={
'tool': 'change-style',
'input': {
'inputImage': 'https://cdn.example.com/family-photo.png',
'style': style,
},
},
timeout=30,
)
operation_ids.append(response.json()['id'])
print(operation_ids)
{
"id": "op_uuid-123",
"status": "queued",
"tool": "change-style",
"cost": 6,
"balance_after": 494,
"created_at": "2026-09-30T12:45:51.977589+00:00"
}
{
"id": "op_uuid-123",
"status": "completed",
"tool": "change-style",
"cost": 6,
"created_at": "2026-09-30T12:45:51.977589+00:00",
"completed_at": "2026-09-30T12:46:16.616945+00:00",
"result": {
"type": "image",
"urls": [
"https://storage.bratuha.ru/results/change-style/image-1.jpg"
]
},
"error_message": null
}
{
"id": "op_uuid-123",
"status": "failed",
"tool": "change-style",
"cost": 6,
"created_at": "2026-09-30T12:45:51.977589+00:00",
"completed_at": "2026-09-30T12:46:02.431870+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/change-style/image-1.jpg"
]
}
type - всегда "image".urls - массив с одной ссылкой на стилизованное изображение в JPG.Пропорции исходного фото сохраняются, размер результата около 1 мегапикселя. Например, фото 768×1152 возвращается размером 816×1232.
Цена фиксированная - 6 ₽ за одно изображение. Стиль, размер и формат исходного фото на цену не влияют.
| Что | Цена |
|---|---|
| Одно фото в одном стиле | 6 ₽ |
Стоимость списывается при создании операции и приходит в поле cost ответа.
POST /api/v1/operations не идемпотентен: каждый повторный запрос создаёт новую оплаченную операцию. Если ответ потерялся, не повторяйте запрос вслепую.queued, результат забирается по id.inputImage передаётся одна внешняя ссылка http/https на изображение. Ссылка должна открываться без авторизации и отдавать сам файл, а не страницу с ним.