Руководство
Как использовать Recraft Crisp Upscale API? Увеличение в 2 раза одним полем
Без промпта, одно поле image_url, $0.004 за изображение: верное увеличение в 2 раза — примеры на curl/Python и ограничения.
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×» смотрите на странице примеров; сравнение с генеративной перерисовкой на том же оригинале — на странице сравнения.
Похожие статьи
Все статьи →-
Руководство
Как вызвать hailuo-2.3-fast/image-to-video через HiAPI API: практика с curl и Python
Первый рабочий запрос к быстрому и недорогому уровню генерации видео по изображению — от ID модели до загрузки MP4
-
Руководство
Как вызывать hailuo-2.3/text-to-video через API HiAPI: curl, Python и рабочие примеры запросов
-
Руководство
Использование Kandinsky 6.0 Pro для преобразования текста в видео на HiAPI: руководство по curl и Python
Практическая демонстрация с упором на запросы: построение вызова от промпта до видеоклипа, отправка запроса, опрос статуса завершения и скачивание результата
