HiAPI
Блог

Руководство

Как использовать Recraft Crisp Upscale API? Увеличение в 2 раза одним полем

Без промпта, одно поле image_url, $0.004 за изображение: верное увеличение в 2 раза — примеры на curl/Python и ограничения.

Oct 22, 2026
Как использовать Recraft Crisp Upscale API? Увеличение в 2 раза одним полем

TL;DR

  • Recraft Crisp Upscale (recraft/crisp-upscale) делает одну вещь: увеличивает ширину и высоту изображения в 2 раза, края и текстуры становятся чётче, а содержимое и текст сохраняются без изменений. Промпта нет, в теле запроса только image_url. Откройте страницу модели, загрузите изображение и попробуйте — новым пользователям при регистрации дают 200 кредитов.
  • $0.004 за изображение: 1 000 изображений — $4.00, на $10 примерно 2 500 изображений; размер входного изображения на цену не влияет (полные цены на странице цен).
  • Вызов идёт через интерфейс HiAPI /v1/tasks: отправьте задачу и получите taskId, затем запросите результат и после успеха скачайте из output[0].url (JPEG, без альфа-канала).

Что он умеет

  • Верное увеличение, а не перерисовка: текстура циферблата, морщины на коже, мелкий текст на постере становятся чётче, но содержимое, композиция и текст не меняются — материалы с текстом не «превращаются в другое изображение» при увеличении.
  • Настройка одним полем: в image_url передаётся публичный адрес (JPEG / PNG / WebP, ≤10 MB), без промпта и без выбора кратности.
  • Подходит для карточек товаров, постеров с текстом, дизайнерских материалов: любые сценарии, где «оригинал уже правильный, просто не хватает разрешения».
  • Неподходящие сценарии тоже ясны: если нужны детали перерисовки уровня 4K или попутно изменить содержимое, используйте генеративную перерисовку (см. также английский туториал по повышению разрешения с помощью моделей image-to-image); Crisp Upscale только увеличивает размер в 2 раза и не перерисовывает содержимое.
  • На выходе 1 JPEG; если нужен прозрачный результат, сначала увеличьте, потом удалите фон (об удалении фона см. английский туториал по удалению фона).

Ниже реальная пара «оригинал → 2×»:

Оригинал 640×640 Результат увеличения 1280×1280

recraft/crisp-upscale, 640×640 → 1280×1280, $0.004. Гильош-узор циферблата, брашированный стальной корпус и мелкий текст на циферблате остаются чёткими в двойном размере.

Откройте страницу модели и загрузите изображение →

Два пути начала работы

3 шага в браузере: откройте страницу модели → загрузите изображение → нажмите «увеличить», $0.004 за изображение.

3 шага через API: отправьте POST /v1/tasks → получите taskId → запросите GET /v1/tasks/<taskId> и после success скачайте. Для пакетной обработки повторяйте эти три шага, по одной задаче на изображение.

curl: первое изображение

curl -X POST https://api.hiapi.ai/v1/tasks \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: your-unique-key-001" \
  -d '{
  "model": "recraft/crisp-upscale",
  "input": {
    "image_url": "https://static.hiapi.ai/gallery/2026/10/4fdfd6b43b638849.jpg"
  }
}'

Всё тело запроса — вот это; передача любого лишнего поля (например, prompt, scale) сразу даёт 400.

Python: отправка, опрос, скачивание

import time, uuid, requests

BASE = "https://api.hiapi.ai/v1/tasks"
HEADERS = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json",
}

payload = {
    "model": "recraft/crisp-upscale",
    "input": {
        "image_url": "https://example.com/your-image.jpg",
    },
}

resp = requests.post(
    BASE,
    headers={**HEADERS, "Idempotency-Key": str(uuid.uuid4())},
    json=payload,
    timeout=30,
)
resp.raise_for_status()
task_id = resp.json()["taskId"]

while True:
    task = requests.get(f"{BASE}/{task_id}", headers=HEADERS, timeout=30).json()
    print(task["status"])
    if task["status"] in ("success", "fail"):
        break
    time.sleep(5)

if task["status"] == "success":
    image_url = task["output"][0]["url"]   # 临时地址,尽快下载保存
    img = requests.get(image_url, timeout=60)
    with open("upscaled.jpg", "wb") as f:
        f.write(img.content)
    print("saved upscaled.jpg")

Таблица параметров

Поле Обязательно Значение Описание
image_url Да Публичный адрес http/https JPEG / PNG / WebP, одно изображение ≤10 MB

Это единственное поле. Кратность увеличения фиксирована — в 2 раза по ширине и высоте, выбрать нельзя; нет промпта и параметра формата вывода.

Ошибки, которые вы встретите

Код статуса Значение Что делать
400 INVALID_REQUEST image_url отсутствует, не является http/https адресом, или переданы несуществующие поля вроде prompt / scale Оставьте в теле запроса только image_url
402 INSUFFICIENT_QUOTA Недостаточно средств (списание не происходит) Пополните баланс и повторите
429 RATE_LIMITED Сработал лимит запросов Снизьте частоту отправки
409 / 422 IDEMPOTENCY_KEY_* Повторная отправка с тем же ключом идемпотентности Используйте новый Idempotency-Key

При неудачном завершении задачи также возможны коды TASK_FAILED, TASK_TIMEOUT и другие; при ошибке списание не происходит.

На что обратить внимание перед запуском

  • Callback: передайте на верхнем уровне тела запроса "callback": {"url": "https://..."} — по завершении придёт уведомление.
  • Скачивайте вовремя: output[0].url — временный адрес, скачивайте сразу после получения.
  • Время обработки: одно изображение обычно занимает от 10 секунд до минуты, не ставьте слишком короткий интервал опроса.
  • Альфа-канал: на выходе JPEG без прозрачности; если нужен материал с прозрачным фоном, сначала увеличьте, потом удалите фон (если порядок обратный, края при вырезании будут размыты).
  • Для пакетов расчёт простой: увеличить все пять изображений одного SKU — $0.02; прогнать 1 000 материалов всего магазина — $4.00, достаточно отправить пакетом, каждая задача считается отдельно.
  • Качество оригинала задаёт предел: увеличение в 2 раза делает края чётче, но размытые части оригинала не обретут деталей из воздуха; ключевые материалы сначала попробуйте на одном изображении, потом запускайте пакет.

Частые вопросы

Действительно ровно в 2 раза?

Да. Ширина и высота увеличиваются вдвое (640×640 → 1280×1280, 480×640 → 960×1280), кратность фиксирована, варианта 4× нет; если нужно больше, запустите увеличение ещё раз.

Изменяется ли текст на изображении?

Нет. После увеличения постеров с текстом начертание остаётся прежним, текст не переписывается и не добавляется.

Сколько стоит одно изображение?

$0.004 за изображение, 1 000 изображений — $4.00; размер входного изображения на цену не влияет. При ошибке списание не происходит, при непрохождении валидации параметров биллинг не начинается.

Можно ли передать base64?

Нет. image_url должен быть публичным http/https адресом; локальный файл сначала загрузите в своё хранилище и передайте адрес.

Сколько времени занимает одно изображение?

Обычно от 10 секунд до минуты; пакетные задачи стоят в очереди по количеству изображений, если сроки поджимают, отправляйте партиями.

Дальше: возьмите изображение своего товара и увеличьте его на странице модели, чтобы увидеть результат; пять реальных пар «оригинал → 2×» смотрите на странице примеров; сравнение с генеративной перерисовкой на том же оригинале — на странице сравнения.

Похожие статьи

Все статьи →

Начните работать с постоянными артефактами ИИ

Получите API-ключ и вызывайте модели изображений, видео и аудио через один API на основе tasks.

Читать документацию API