Увеличивает разрешение изображения, убирает часть шумов и артефактов и в зависимости от режима либо бережно сохраняет исходник, либо дорисовывает новые детали. Цена - от 14 ₽ за изображение, зависит от режима обработки и итогового размера.
Общая документация Public API · API-ключ можно создать в настройках аккаунта
Topaz Image Upscale увеличивает фото в 2 или 4 раза по каждой стороне и попутно убирает шум и следы сжатия. В зависимости от режима модель либо бережно сохраняет исходник, либо дорисовывает новые детали: подходит и для аккуратного увеличения хороших снимков, и для спасения маленьких мутных фото, и для картинок из нейросетей.
Режим выбирается параметром enhancement_type, внутри режима - конкретная модель. От режима, масштаба и размера исходника зависит цена, поэтому выбирайте режим осознанно: самый дорогой режим creative стоит по умолчанию.
Каждый вызов создаёт асинхронную операцию. После запуска нужно отдельно проверять статус по id.
POST /api/v1/operationsAuthorization: Bearer brth_...id и стартовый статус операции.Режимы (enhancement_type):
precision - точное увеличение. Бережёт исходник, ничего не придумывает. Для хороших фото, скриншотов, графики и текста. Самый дешёвый режим.generative - генеративное увеличение. Дорисовывает детали на маленьких, сжатых и мутных фото. Модель Redefine дополнительно принимает текстовое задание.creative - творческое увеличение. Смело переосмысляет картинку и добавляет много новых деталей. Для изображений из нейросетей и иллюстраций. Самый дорогой режим.transparent - увеличение PNG с прозрачным фоном. Всегда увеличивает в 4 раза и сохраняет прозрачность.{
"tool": "topaz-image-upscale",
"input": {
"enhancement_type": "precision",
"image_url": "https://cdn.example.com/source-image-1.jpg",
"precision_model": "Standard V2",
"upscale_factor": "2",
"output_format": "jpeg"
}
}
tool - slug нейросети, всегда "topaz-image-upscale".input - параметры запуска. Поля передаются напрямую внутри этого объекта, без дополнительной вложенности.validation_error.| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
enhancement_type | enum | Да | Режим: precision - точное, generative - генеративное, creative - творческое, transparent - с прозрачностью. Если не передать, запустится creative. |
image_url | string (url) | Да | Ссылка на изображение. Одна ссылка, только внешний http/https URL. Допустимые расширения: .jpg, .jpeg, .png, .webp. |
upscale_factor | enum | Да, кроме transparent | Во сколько раз увеличить ширину и высоту: "2" или "4". Передавайте строкой. В режиме transparent масштаб всегда 4x, поле не используется. |
output_format | enum | Да, кроме transparent | Формат результата: jpeg или png. В режиме transparent результат всегда PNG. |
crop_to_fill | boolean | Нет | Разрешить обрезать изображение, чтобы оно заполнило итоговый кадр. По умолчанию выключено. Не используется в transparent. |
precision| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
precision_model | enum | Да, при precision | Модель точного увеличения. Standard V2 - универсальная, High Fidelity V3 и High Fidelity V2 - для качественных профессиональных фото, Low Resolution V2 - для маленьких и плохих исходников, CGI - для графики и рендеров, Text Refine - для текста и чётких форм. |
sharpen | number | Нет | Резкость, от 0 до 1. Если не передать - 0.5. Также используется моделью Redefine в режиме generative. |
denoise | number | Нет | Шумоподавление, от 0 до 1. Если не передать - 0.5. Также используется моделью Redefine в режиме generative. |
fix_compression | number | Нет | Убирает артефакты сжатия JPEG, от 0 до 1. Если не передать - 0.5. Не применяется к модели CGI. |
strength | number | Нет | Сила обработки текста и чётких форм, от 0.01 до 1. Если не передать - 0.5. Только для Text Refine. |
subject_detection | enum | Да, при precision | Что улучшать: All - всё изображение, Foreground - передний план, Background - фон. Если не передать - All. Также используется в generative с моделями Wonder 3, Recovery V2, Recovery. |
generative| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
generative_model | enum | Да, при generative | Модель генеративного увеличения: Wonder 3.5, Wonder 3, Wonder 2, Wonder - реалистичное восстановление деталей, Wonder 3.5 лучше всего справляется с совсем маленькими фото; Recover 3, Recovery V2, Recovery - для очень низкого разрешения; Standard MAX - универсальная; Redefine - дорисовывает детали по текстовому заданию. |
generative_enhancement_strength | enum | Да, при Wonder 3.5 и Wonder 3 | Сила улучшения: auto - модель подбирает сама, low - бережнее к исходнику, medium, high - больше новых деталей. Если не передать - auto. |
detail | number | Нет | Уровень восстановления деталей, от 0 до 1. Если не передать - 0.5. Только для Recovery V2. |
prompt | string | Нет | Задание: какие детали добавить или подчеркнуть. До 1024 символов. Только для Redefine. |
generative_autoprompt | boolean | Нет | Если true, модель сама опишет картинку и возьмёт это описание вместо вашего prompt. По умолчанию выключено. Только для Redefine. |
generative_creativity | number | Нет | Насколько много новых деталей появится, целое число от 1 до 6. Если не передать - 3. Только для Redefine. |
texture | number | Нет | Выраженность мелких фактур, целое число от 1 до 5. Если не передать - 3. Только для Redefine. |
sharpen, denoise и subject_detection описаны в разделе режима precision.
precision и generative)| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
face_enhancement_mode | enum | Да, при precision и generative | Отдельно улучшать лица: on или off. Если не передать - on. |
face_enhancement_strength | number | Нет | Сила улучшения лиц, от 0 до 1: 0 почти не меняет лица, 1 - максимальное улучшение. Если не передать - 0.8. Только при face_enhancement_mode: "on". |
face_enhancement_creativity | number | Нет | Насколько свободно дорисовываются детали лица, от 0 до 1. Если не передать - 0. Только при face_enhancement_mode: "on". |
creative| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
creative_model | enum | Да, при creative | Модель творческого увеличения: Bloom 2 - самая новая, с настройками ниже, Bloom - классическая, Bloom Realism - с уклоном в реалистичные детали. |
creative_autoprompt_mode | enum | Да, при Bloom 2 | on - модель сама опишет картинку и по этому описанию дорисует детали, off - без описания. Если не передать - on. |
creative_creativity | number | Нет | Насколько смело дорисовываются новые детали, целое число от 1 до 9. Если не передать - 4. Только для Bloom 2. |
color_preservation | boolean | Нет | Сохранять цвета исходника. По умолчанию выключено. Только для Bloom 2. |
transparentКроме enhancement_type и image_url ничего передавать не нужно. Используйте PNG с прозрачным фоном - прозрачность сохранится в результате.
Если необязательный параметр выбранного режима не передан, подставляется значение, указанное в его описании. Значения моделей передаются точно как в таблице, с учётом регистра и пробелов.
precision)Самый дешёвый и быстрый вариант для обычных фото. Лица здесь не улучшаются отдельно.
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "topaz-image-upscale",
"input": {
"enhancement_type": "precision",
"image_url": "https://cdn.example.com/source-image-1.jpg",
"precision_model": "Standard V2",
"upscale_factor": "2",
"output_format": "jpeg",
"face_enhancement_mode": "off",
"fix_compression": 0.5
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'topaz-image-upscale',
input: {
enhancement_type: 'precision',
image_url: 'https://cdn.example.com/source-image-1.jpg',
precision_model: 'Standard V2',
upscale_factor: '2',
output_format: 'jpeg',
face_enhancement_mode: 'off',
fix_compression: 0.5,
},
}),
})
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': 'topaz-image-upscale',
'input': {
'enhancement_type': 'precision',
'image_url': 'https://cdn.example.com/source-image-1.jpg',
'precision_model': 'Standard V2',
'upscale_factor': '2',
'output_format': 'jpeg',
'face_enhancement_mode': 'off',
'fix_compression': 0.5,
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
generative, Wonder 3.5)Подходит для старых фото с телефона, превью и картинок из мессенджеров. Лица улучшаются отдельно.
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "topaz-image-upscale",
"input": {
"enhancement_type": "generative",
"image_url": "https://cdn.example.com/small-photo.jpg",
"generative_model": "Wonder 3.5",
"generative_enhancement_strength": "auto",
"upscale_factor": "4",
"output_format": "jpeg",
"face_enhancement_mode": "on",
"face_enhancement_strength": 0.8,
"face_enhancement_creativity": 0
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'topaz-image-upscale',
input: {
enhancement_type: 'generative',
image_url: 'https://cdn.example.com/small-photo.jpg',
generative_model: 'Wonder 3.5',
generative_enhancement_strength: 'auto',
upscale_factor: '4',
output_format: 'jpeg',
face_enhancement_mode: 'on',
face_enhancement_strength: 0.8,
face_enhancement_creativity: 0,
},
}),
})
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': 'topaz-image-upscale',
'input': {
'enhancement_type': 'generative',
'image_url': 'https://cdn.example.com/small-photo.jpg',
'generative_model': 'Wonder 3.5',
'generative_enhancement_strength': 'auto',
'upscale_factor': '4',
'output_format': 'jpeg',
'face_enhancement_mode': 'on',
'face_enhancement_strength': 0.8,
'face_enhancement_creativity': 0,
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
generative, Redefine)Redefine дорисовывает детали по вашему описанию. Если писать задание не хочется, передайте generative_autoprompt: true.
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "topaz-image-upscale",
"input": {
"enhancement_type": "generative",
"image_url": "https://cdn.example.com/product-photo.png",
"generative_model": "Redefine",
"prompt": "Керамическая кружка на деревянном столе, чёткая фактура глазури и древесины",
"generative_autoprompt": false,
"generative_creativity": 3,
"texture": 3,
"sharpen": 0.5,
"denoise": 0.5,
"upscale_factor": "2",
"output_format": "png",
"face_enhancement_mode": "off"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'topaz-image-upscale',
input: {
enhancement_type: 'generative',
image_url: 'https://cdn.example.com/product-photo.png',
generative_model: 'Redefine',
prompt:
'Керамическая кружка на деревянном столе, чёткая фактура глазури и древесины',
generative_autoprompt: false,
generative_creativity: 3,
texture: 3,
sharpen: 0.5,
denoise: 0.5,
upscale_factor: '2',
output_format: 'png',
face_enhancement_mode: 'off',
},
}),
})
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': 'topaz-image-upscale',
'input': {
'enhancement_type': 'generative',
'image_url': 'https://cdn.example.com/product-photo.png',
'generative_model': 'Redefine',
'prompt': 'Керамическая кружка на деревянном столе, чёткая фактура глазури и древесины',
'generative_autoprompt': False,
'generative_creativity': 3,
'texture': 3,
'sharpen': 0.5,
'denoise': 0.5,
'upscale_factor': '2',
'output_format': 'png',
'face_enhancement_mode': 'off',
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
creative, Bloom 2)Для картинок из нейросетей и иллюстраций, где нужны новые детали, а точность исходника не важна.
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "topaz-image-upscale",
"input": {
"enhancement_type": "creative",
"image_url": "https://cdn.example.com/ai-illustration.png",
"creative_model": "Bloom 2",
"creative_autoprompt_mode": "on",
"creative_creativity": 4,
"color_preservation": true,
"upscale_factor": "2",
"output_format": "png"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'topaz-image-upscale',
input: {
enhancement_type: 'creative',
image_url: 'https://cdn.example.com/ai-illustration.png',
creative_model: 'Bloom 2',
creative_autoprompt_mode: 'on',
creative_creativity: 4,
color_preservation: true,
upscale_factor: '2',
output_format: 'png',
},
}),
})
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': 'topaz-image-upscale',
'input': {
'enhancement_type': 'creative',
'image_url': 'https://cdn.example.com/ai-illustration.png',
'creative_model': 'Bloom 2',
'creative_autoprompt_mode': 'on',
'creative_creativity': 4,
'color_preservation': True,
'upscale_factor': '2',
'output_format': 'png',
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
transparent)Для логотипов, стикеров и вырезанных товаров. Масштаб всегда 4x, результат - PNG с прозрачностью.
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "topaz-image-upscale",
"input": {
"enhancement_type": "transparent",
"image_url": "https://cdn.example.com/logo-transparent.png"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'topaz-image-upscale',
input: {
enhancement_type: 'transparent',
image_url: 'https://cdn.example.com/logo-transparent.png',
},
}),
})
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': 'topaz-image-upscale',
'input': {
'enhancement_type': 'transparent',
'image_url': 'https://cdn.example.com/logo-transparent.png',
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
{
"id": "op_uuid-123",
"status": "queued",
"tool": "topaz-image-upscale",
"cost": 14,
"balance_after": 486,
"created_at": "2026-09-30T12:46:50Z"
}
{
"id": "op_uuid-123",
"status": "completed",
"tool": "topaz-image-upscale",
"cost": 14,
"created_at": "2026-09-30T12:46:50Z",
"completed_at": "2026-09-30T12:47:18Z",
"result": {
"type": "image",
"urls": [
"https://storage.bratuha.ru/results/topaz-image-upscale/image-1.jpeg"
]
},
"error_message": null
}
После создания операции сохраните id и проверяйте статус запросом:
GET /api/v1/operations/{id}
curl -H "Authorization: Bearer brth_ваш_ключ" \
https://bratuha.ru/api/v1/operations/op_uuid-123
const res = await fetch('https://bratuha.ru/api/v1/operations/op_uuid-123', {
headers: { Authorization: 'Bearer brth_ваш_ключ' },
})
const operation = await res.json()
if (operation.status === 'completed') {
console.log(operation.result.urls[0])
} else if (operation.status === 'failed') {
console.error(operation.error_message)
}
Сколько ждать: precision и generative при 2x обычно готовы за 30-50 секунд, 4x с моделями High Fidelity - около двух минут, transparent - чуть больше минуты, creative - 2-3 минуты. Опрашивайте статус раз в 5 секунд (не чаще раза в секунду для одной операции), пока он не станет completed или failed.
После завершения Topaz Image Upscale возвращает:
{
"type": "image",
"urls": [
"https://storage.bratuha.ru/results/topaz-image-upscale/image-1.jpeg"
]
}
type - всегда "image".urls - массив из одной ссылки на увеличенное изображение.Размер результата - исходник, умноженный на upscale_factor по каждой стороне: в нашей проверке фото 640×480 при "2" стало 1280×960. Формат - из output_format, в режиме transparent всегда PNG.
Цена считается по размеру готового результата: 14 ₽ за каждый начатый блок мегапикселей. Размер блока зависит от режима и модели. Размер исходника сервер определяет сам по файлу, передавать его не нужно.
| Режим и модель | 14 ₽ за каждые начатые |
|---|---|
precision, любая модель | 24 МП результата |
transparent | 24 МП результата |
generative, Wonder 3.5 и Wonder 3 | 8 МП результата |
generative, остальные модели | 4 МП результата |
creative, любая модель | 2 МП результата |
Размер результата в мегапикселях = ширина × высота исходника × квадрат масштаба / 1 000 000. Для 2x это исходник × 4, для 4x - исходник × 16. Минимальная цена - 14 ₽.
Например, фото 1920×1080 при 2x даёт результат около 8,3 МП. В precision это один блок (14 ₽), в generative с Wonder 3 - два блока по 8 МП (28 ₽), в creative - пять блоков по 2 МП (70 ₽).
Готовые цены для частых размеров:
| Исходник | precision 2x / 4x | generative Wonder 3.5, 3: 2x / 4x | generative другие: 2x / 4x | creative 2x / 4x | transparent |
|---|---|---|---|---|---|
| 640×480 | 14 ₽ / 14 ₽ | 14 ₽ / 14 ₽ | 14 ₽ / 28 ₽ | 14 ₽ / 42 ₽ | 14 ₽ |
| 1024×1024 | 14 ₽ / 14 ₽ | 14 ₽ / 42 ₽ | 28 ₽ / 70 ₽ | 42 ₽ / 126 ₽ | 14 ₽ |
| 1920×1080 | 14 ₽ / 28 ₽ | 28 ₽ / 70 ₽ | 42 ₽ / 126 ₽ | 70 ₽ / 238 ₽ | 28 ₽ |
| 4000×3000 | 28 ₽ / 112 ₽ | 84 ₽ / 336 ₽ | 168 ₽ / 672 ₽ | 336 ₽ / 1344 ₽ | 112 ₽ |
Остальные параметры - модель внутри режима (кроме разделения Wonder 3.5 и 3 от остальных генеративных), улучшение лиц, формат, креативность - на цену не влияют. Итоговая сумма приходит в поле cost сразу после создания операции.
POST /api/v1/operations не идемпотентен: повторный запрос создаёт новую операцию и снова списывает деньги.queued, затем проверяете статус по id.image_url принимает только внешние http/https ссылки с расширениями .jpg, .jpeg, .png, .webp. Ссылки на localhost и внутренние адреса сети не принимаются. Файл должен открываться по ссылке: сервер читает его размеры для расчёта цены, и если не может - вернёт ошибку validation_error без списания.enhancement_type, запустится creative - самый дорогой режим. Всегда указывайте режим явно.upscale_factor передаётся строкой: "2" или "4". Число 4 без кавычек не пройдёт проверку.creative цена быстро растёт: 4x для снимка 12 МП в creative стоит больше тысячи рублей. Проверяйте cost в ответе на создание и считайте цену заранее по таблице.creative и generative дорисовывают детали: на мелких мутных фото могут поменяться черты лица, надписи и мелкие предметы. Если важна точность, берите precision, для маленьких фото - generative с Wonder 3.5.