Перейти к основному содержанию
POST
/
v1
/
midjourney
/
generations
/
upscale
curl --request POST \
  --url https://api.apimart.ai/v1/midjourney/generations/upscale \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "task_id": "task_01KQVZAPBW13W63DQNQZT7FCQK",
    "index": 1,
    "speed": "fast"
  }'
{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01KV52C0TEJSYZMCG0NCS4YWKK"
    }
  ]
}
curl --request POST \
  --url https://api.apimart.ai/v1/midjourney/generations/upscale \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "task_id": "task_01KQVZAPBW13W63DQNQZT7FCQK",
    "index": 1,
    "speed": "fast"
  }'
{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01KV52C0TEJSYZMCG0NCS4YWKK"
    }
  ]
}
Выбирает одну из плиток U1–U4 из сетки родительской задачи (grid_image_url), чтобы получить одиночное изображение. Это реализуется вырезанием из 4 существующих изображений; сборка локальная, обычно возвращается мгновенно.
ItemЗначение
actionUPSCALE
Тарификацияmidjourney@upscale[-version][-speed]
Обязательноtask_id + index, или task_id + custom_id
Опциональноspeed, metadata

Параметры

ПолеТипОписание
task_idstringID родительской задачи (должна быть SUCCESS imagine / variation / reroll и т.д.)
indexintКакое изображение (U1–U4), диапазон 14; одно из index / custom_id
custom_idstringID кнопки соответствующего действия; одно из index / custom_id; если задан, сопоставление по index пропускается
speedstringrelax / fast / turbo (без эффекта, так как собирается локально)
metadataobjectПользовательские метаданные

Примеры запроса

По index:
{
  "task_id": "task_01KQVZAPBW13W63DQNQZT7FCQK",
  "index": 1,
  "speed": "fast"
}
Передать кнопку напрямую:
{
  "task_id": "task_01KQVZAPBW13W63DQNQZT7FCQK",
  "custom_id": "MJ::JOB::upsample::1::xxxx"
}

Response

Отправка возвращает новый task_id, обычно SUCCESS за миллисекунды. При SUCCESS image_urls содержит один элемент (одно изображение), а buttons содержит последующие действия (zoom / inpaint / pan / variation и т.д.).

Заметки

  • Родительская задача должна быть в статусе SUCCESS, иначе возвращается 400 (task is not in SUCCESS state).
  • index должен быть 14; вне диапазона возвращает 400. custom_id и index взаимоисключающие; если переданы оба, побеждает custom_id.
  • Ресурсоёмкий шаг — imagine; upscale лишь выбирает из существующих изображений и редко даёт сбой.
  • Одиночное изображение после upscale можно продолжить через Zoom / Inpaint / Variation.

HD upscale (увеличение в HD, на выходе одиночное изображение 2x)

Обычный upscale — это локальная сборка: одно из 4 уже имеющихся изображений родительской задачи вырезается и возвращается мгновенно. Если затем нужно выполнять над одиночным изображением точные операции вроде zoom / inpaint, рекомендуется использовать HD upscale: выполняется настоящее увеличение, на выходе получается одиночное изображение 2x в HD, занимает примерно 60–120 с, и полученное одиночное изображение более стабильно поддерживает последующие zoom / inpaint. HD upscale задаёт команду увеличения через custom_id, и разным версиям imagine соответствуют разные команды:
Команда customIdПодходящая версия
upsample_v5_2xv5 imagine
upsample_v5_4xv5 imagine
upsample_v6_2x_subtlev6 / v6.1 imagine
upsample_v6_2x_creativev6 / v6.1 imagine
upsample_v7_2x_subtlev7 / v8.1 imagine
upsample_v7_2x_creativev7 / v8.1 imagine

Пример HD upscale

{
  "task_id": "task_01KQVZAPBW13W63DQNQZT7FCQK",
  "custom_id": "MJ::JOB::upsample_v7_2x_subtle::1::xxxx"
}
После завершения вы получаете задачу с настоящим одиночным изображением 2x в HD, над которым можно продолжать выполнять zoom / inpaint.

Сравнение с обычным upscale

ПараметрОбычный upscaleHD upscale
РеализацияЛокальная сборка (вырезание)Настоящая обработка с увеличением
ВремяМиллисекундыПримерно 60–120 с
ВыходN-е из 4 изображенийОдиночное изображение 2x в HD
Дальнейшие действияzoom / inpaint / variationzoom / inpaint более стабильны

⚠️ pan по-прежнему недоступен

Даже для одиночного изображения в HD, полученного через HD upscale, операция pan всё равно будет отклонена (возвращается «недопустимый запрос на генерацию изображения») — это ограничение Midjourney на саму операцию pan, не связанное со способом увеличения. Подробнее см. Pan.