← Блог

Улучшить качество фото нейросетью по API: ×2 за $0,0034

· 8 минут чтения

Картинка 1024×1024 из генератора выглядит достаточно большой, пока её не нужно поставить в баннер или подготовить к печати. Улучшать качество фото онлайн по одной штуке для массовой задачи не подходит, поэтому 22.09.2026 я прогнал Recraft Crisp Upscale через API.

Модель доступна в altrouter по OpenAI-совместимому API за $0,0034 за картинку, что на 15% ниже официальной цены Recraft. Оплатить можно картой РФ, СБП или криптой, а после подтверждения Telegram на тесты начисляется $1, которого хватает примерно на 290 апскейлов.

Для старта нужна регистрация, ключ из кабинета и один запрос. У сервиса есть ограничение: через altrouter доступен только crisp upscale, а инструмент creative upscale, который дорисовывает детали, в каталоге отсутствует.

Что такое crisp upscale и чем он отличается от creative

Crisp upscale — увеличение изображения, при котором модель делает края чище, но не придумывает то, чего не было в исходнике. За один вызов она увеличивает стороны ровно в два раза: 1024×1024 превращается в 2048×2048, а 200×200 — в 400×400.

У Recraft есть creative upscale за $0,25 за запрос по прайсу 22.09.2026. Он дорисовывает детали, но это другой инструмент, которого через altrouter нет.

Для дневника я взял белую керамическую кружку на светло-сером фоне. Мы сами сгенерировали её через Imagen 4 Fast в altrouter в тот же день, поэтому здесь нет вопроса о правах на исходник.

Запуск 1: без картинки

Первый запрос я отправил в 14:57:47 по серверному времени CEST. Сервер находился в Нюрнберге, а время замерялось по часам клиента.

{"model":"recraft-crisp-upscale","prompt":"upscale"}

Ответ пришёл мгновенно, за 0,0 с. Модель не стала угадывать, что именно нужно увеличить.

{"error":{"message":"`recraft-crisp-upscale` works on a reference image - pass one in `image`.","type":"invalid_request_error","param":"image","code":null}}

Это значит, что поле image обязательно. image — ссылка на картинку строкой или массив ссылок; одна ссылка работает в обоих видах.

Промпт сам по себе не запускает апскейл. Похожая история с полем image уже встречалась в дневнике про удаление фона через API.

Запуск 2: 1024 → 2048

В тот же момент, в 14:57:47, я передал ссылку на WEBP 1024×1024. Это была исходная картинка кружки из генератора.

{"model":"recraft-crisp-upscale","image":["https://…/mug.webp"]}

Через 5,6 с API вернул HTTP 200 и ссылку на готовый файл. В ответе не было размера, поэтому файл пришлось скачать и проверить отдельно.

{"created":1790081872,"data":[{"url":"https://api.altrouter.ai/media/images/2026/09/22/43157cff-….webp"}]}

Пришёл WEBP 2048×2048 размером 40 966 байт. Увеличение получилось ровно двукратным по каждой стороне, а формат остался WEBP.

Лента времени пяти вызовов апскейла 22.09.2026: 400, три ответа 200 и проигнорированный промпт
Промпт модели не нужен: с ним и без него пришёл один и тот же файл

Это значит, что для картинки из генератора в 1024 px можно получить 2048 px одним запросом. Если вам нужна именно генерация 2K, полезно отдельно посмотреть, почему size: 2048x2048 у Imagen 4 Fast получает 400 — в разборе ошибок.

Запуск 3: маленькое фото 200 → 400

В 14:57:53 я отправил ту же кружку, но предварительно уменьшенную нами до JPEG 200×200 размером 4 КБ. Вместо ссылки здесь использовался data: URL — картинка, записанная прямо внутри запроса в виде текста.

{"model":"recraft-crisp-upscale","image":["data:image/jpeg;base64,/9j/4AAQ…"]}

Ответ пришёл за 2,9 с. Получился JPEG 400×400, то есть формат ответа повторил формат входа.

Я сравнил результат с обычным увеличением того же файла бикубической интерполяцией в Pillow до 400×400. У crisp край кружки и контур ручки стали резче, без мыльного ореола.

Но мягкая тень внутри кружки и градиент на боку сгладились почти до плоской заливки. Это значит, что модель чистит изображение, а не возвращает утраченную фактуру.

Для маленьких карточек товаров и старых превью это важное различие. Если на исходнике уже есть тонкая текстура, после апскейла она не обязана стать детальнее — нейросеть тут не достаёт информацию из воздуха, что уже само по себе неплохая новость.

Запуск 4: промпт «сделай кружку красной»

В 14:57:56 я повторил запуск для исходного WEBP 1024×1024. На этот раз к картинке добавил инструкцию make the mug red.

{"model":"recraft-crisp-upscale","prompt":"make the mug red","image":["https://…/mug.webp"]}

Ответ вернулся за те же 5,6 с. Это был WEBP 2048×2048 размером 40 966 байт — по новой ссылке, но того же размера до байта.

{"created":1790081881,"data":[{"url":"https://api.altrouter.ai/media/images/2026/09/22/3e64d052-….webp"}]}

Кружка осталась белой. Контрольная сумма md5 совпала с результатом запуска без промпта байт в байт: d94bd389….

Это значит, что промпт не просто влияет слабо. Он полностью игнорируется, а за вызов с ним вы платите как за обычный апскейл.

Запуск 5: 2048 → 4096 и где потолок

В 14:58:11 я подал обратно результат второго запуска. Входной WEBP уже был размером 2048×2048.

{"model":"recraft-crisp-upscale","image":["https://…/43157cff-….webp"]}

API вернул HTTP 200 через 27,3 с. Получился WEBP 4096×4096 размером 120 944 байта.

Схема увеличения: 200 в 400 px за 2,9 с, 1024 в 2048 за 5,6 с, 2048 в 4096 за 27,3 с
Только ×2 за вызов, и каждый следующий шаг заметно дольше

Из 1024 px можно получить 4096 px двумя вызовами. Второй шаг занял почти в пять раз больше первого, поэтому таймаут нельзя ставить по времени апскейла 1024→2048.

Дальше цепочка останавливается на лимите Recraft. Вход должен быть меньше 10 МБ, меньше 16 Мп, а его длинная сторона должна быть меньше 4096 px, поэтому готовый файл 4096×4096 повторно не увеличить.

Сколько стоит апскейл фото через API

Официальная цена Recraft API на 22.09.2026 — $0,004 за crisp upscale. В altrouter один вызов стоит $0,0034, что на 15% ниже официальной цены вендора.

Тысяча апскейлов по официальной цене стоит $4,00. В altrouter те же 1000 картинок стоят $3,40.

Стоимость 1000 апскейлов: $4 по официальной цене Recraft и $3,40 в altrouter
Тысяча апскейлов — $3,40, на 15% ниже официальной цены Recraft

Есть понятная связка для изображений из генератора. Imagen 4 Fast создаёт картинку 1024×1024 за $0,023, а crisp upscale доводит её до 2048×2048 за $0,0034.

Итоговая цена картинки 2048×2048 в такой цепочке — $0,0264. Минус остаётся прежним: это не способ дорисовать отсутствующие детали, потому что crisp работает без выдумывания новых элементов.

Чек-лист и код

Перед массовым запуском я бы проверил пять вещей. Они следуют из пяти вызовов, где четыре запроса были успешными по $0,0034, а успешное время составило от 2,9 до 27,3 с.

  1. Передавайте картинку в image — строкой или массивом; для пачки удобнее массив.
  2. Не передавайте промпт: он не нужен и не работает.
  3. Планируйте только ×2 за вызов, а для ×4 запускайте два шага подряд.
  4. Проверяйте лимиты входа: меньше 10 МБ, меньше 16 Мп и длинная сторона меньше 4096 px.
  5. Ставьте таймаут с запасом: в моём замере 4096 px обрабатывались 27,3 с, поэтому в коде стоит 120 с.
import requests

KEY = "ar-..."
def upscale(image_url):
    r = requests.post(
        "https://api.altrouter.ai/v1/images/generations",
        headers={"Authorization": f"Bearer {KEY}"},
        json={"model": "recraft-crisp-upscale", "image": [image_url]},
        timeout=120,
    )
    r.raise_for_status()
    return r.json()["data"][0]["url"]

x2 = upscale("https://example.com/photo-1024.webp")   # 1024 -> 2048
x4 = upscale(x2)                                      # 2048 -> 4096
print(x2, x4)

Ключ берётся после регистрации, а описание остальных методов лежит в документации API. Подтверждение Telegram даёт $1 на тесты один раз, подписки нет.

Чего мы не проверяли

Мы не тестировали настоящие старые фотографии с шумом и JPEG-артефактами. Исходником была чистая сгенерированная картинка, которую мы сами уменьшили до 200×200.

Мы также не проверяли лица, текст на фото и файлы у лимитов Recraft. Сотни запросов подряд тоже не мерили: все запуски были одиночными.

FAQ

Как увеличить разрешение фото через API?

Отправьте POST на /v1/images/generations с моделью recraft-crisp-upscale и полем image — ссылкой или data: URL, строкой или в массиве. В нашем замере 1024×1024 стало 2048×2048 за 5,6 с.

Во сколько раз увеличивает Recraft Crisp Upscale?

Модель увеличивает изображение ровно в 2 раза по каждой стороне за вызов. В замере были цепочки 200→400, 1024→2048 и 2048→4096, а для ×4 нужны два вызова подряд.

Нужен ли промпт для апскейла?

Нет. Мы отправили make the mug red, и результат совпал байт в байт с вызовом без промпта.

Сколько стоит апскейл фото через API?

В altrouter апскейл стоит $0,0034 за картинку. Официальная цена Recraft на 22.09.2026 — $0,004, а 1000 апскейлов в altrouter стоят $3,40.

Какой максимальный размер картинки на входе?

По документации Recraft входной файл должен быть меньше 10 МБ и меньше 16 Мп. Самая длинная сторона должна быть меньше 4096 px, поэтому результат 4096×4096 нельзя подать на повторное увеличение.

Чем crisp upscale отличается от creative upscale?

Crisp увеличивает и чистит изображение без выдуманных деталей. Creative дорисовывает детали и стоит у Recraft $0,25 за запрос, но через altrouter он недоступен.