Старая версия сайта:old.problembo.com
Документация по API

Улучшение промптов через API

Как синхронно улучшать промпты для генерации изображений и видео через Problembo Client API, передавать кадры и обрабатывать ошибки.

Client API предоставляет две операции:

  • POST /apis/v1/client/prompt-enhance/image — улучшает один промпт для генерации изображения
  • POST /apis/v1/client/prompt-enhance/video — улучшает один или несколько промптов для генерации видео

Обе операции выполняются синхронно: успешный ответ сразу содержит улучшенный текст. В отличие от генерации изображения или видео, здесь нет taskId и не нужно опрашивать endpoint статуса задачи.

Авторизация и базовый URL

Используйте API-токен из личного кабинета:

Authorization: Bearer YOUR_API_TOKEN
Content-Type: application/json

Базовый URL:

https://problembo.com/apis/v1/client

Цена и порядок выполнения

ОперацияЦена за запрос
Улучшение промпта изображения$0.007
Улучшение промптов видео$0.016

Сервер сначала полностью проверяет payload, доступность модели и входные файлы, затем списывает стоимость и только после этого обращается к LLM.

Повтор одного и того же запроса считается новой платной операцией. У этих endpoints нет idempotency key, поэтому не запускайте автоматический retry без проверки результата предыдущего запроса.

Как выбрать modelId

Передавайте публичный идентификатор доступной модели из соответствующего каталога Problembo. Его можно взять из JSON-запроса в интерфейсе генерации изображений или генерации видео.

Недоступные, coming-soon, отключённые и admin-only модели отклоняются. Поле с внутренним enhancement-профилем передавать не нужно: для модели автоматически используется её специальный профиль, а если его нет — профиль по умолчанию.

Улучшение промпта изображения

Поля запроса

ПолеТипОбязательноеОписание
modelIdstringдаПубличный ID доступной image-generation модели
originalPromptstringдаИсходный непустой промпт, не более 2000 символов

Неизвестные поля не принимаются.

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

curl 'https://problembo.com/apis/v1/client/prompt-enhance/image' \
  -X POST \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "modelId": "image-gpt-v3",
    "originalPrompt": "портрет девушки в ночном городе"
  }'

Успешный ответ

{
  "enhancedPrompt": "Кинематографичный портрет девушки в неоновом ночном городе..."
}

Улучшение промптов видео

Поля запроса

ПолеТипОбязательноеОписание
modelIdstringдаПубличный ID доступной video-generation модели
originalPromptsstring[]даМинимум один исходный промпт, каждый не более 2000 символов
targetPromptCountintegerдаПоложительное количество промптов в ответе
segmentDurationSecondsintegerдля multi-segmentПоддерживаемая моделью положительная длительность сегмента
imageInputsPromptImageInput[]нетВходные кадры или референсные изображения

Если в originalPrompts передано больше одного элемента, их количество должно совпадать с targetPromptCount. Большинство video-моделей поддерживают только сценарий 1 → 1; multi-segment запросы доступны только моделям, в каталоге которых включена такая возможность.

Пример запроса 1 → 1

curl 'https://problembo.com/apis/v1/client/prompt-enhance/video' \
  -X POST \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "modelId": "momentflow_v5",
    "originalPrompts": [
      "камера медленно приближается к автомобилю под дождём"
    ],
    "targetPromptCount": 1,
    "segmentDurationSeconds": 5,
    "imageInputs": [
      {
        "role": "first_frame",
        "file": {
          "url": "https://example.com/car-first-frame.jpg"
        }
      }
    ]
  }'

Успешный ответ

Ответ всегда содержит ровно targetPromptCount элементов:

{
  "enhancedPrompts": [
    "Кинематографичный дождливый ночной кадр: камера плавно приближается..."
  ]
}

Multi-segment пример

Модель wildclips_v3.6 поддерживает до пяти сегментов длительностью 5 секунд:

{
  "modelId": "wildclips_v3.6",
  "originalPrompts": ["серебристый автомобиль едет по горному серпантину"],
  "targetPromptCount": 3,
  "segmentDurationSeconds": 5,
  "imageInputs": [
    {
      "role": "first_frame",
      "file": {
        "fileId": "910e1b85-4677-49d4-abd3-41218733ab60.jpg"
      }
    }
  ]
}

В этом сценарии сервер преобразует один исходный замысел в три последовательных промпта и вернёт массив из трёх строк.

Входные изображения для видео

Каждый элемент imageInputs имеет следующий формат:

{
  "role": "first_frame",
  "file": {
    "fileId": "910e1b85-4677-49d4-abd3-41218733ab60.jpg"
  }
}

Допустимые роли:

  • first_frame — первый кадр
  • last_frame — последний кадр
  • reference — референсное изображение

Внутри file должно быть ровно одно поле:

  • fileId — активный файл, принадлежащий владельцу API-токена
  • url — публичная прямая ссылка http/https; сервер импортирует файл перед улучшением промпта

Не передавайте fileId и url одновременно. Чтобы заранее загрузить локальный или приватный файл, используйте Client API загрузки файлов.

Набор ролей и их количество дополнительно проверяются по выбранной модели:

  • можно передать не более одного first_frame и одного last_frame
  • last_frame требует first_frame
  • кадры и reference нельзя смешивать в одном запросе
  • максимальное количество reference зависит от модели

Актуальные machine-readable контракты

Текущие описания полей можно получить непосредственно из Client API:

curl 'https://problembo.com/apis/v1/client/api-contracts/prompt-enhance-image'
curl 'https://problembo.com/apis/v1/client/api-contracts/prompt-enhance-video'

Contract IDs:

  • prompt-enhance-image
  • prompt-enhance-video

Для проверки собственного payload и получения нормализованного примера вызовите POST /apis/v1/client/api-contracts/{contractId}/example с этим payload в body.

Ошибки

HTTPКогда возвращается
400Невалидный payload, модель или файл; неподдерживаемая комбинация полей; недостаточный баланс
401API-токен отсутствует, невалиден, отключён или истёк
429Превышен общий лимит Client API
500Инфраструктурная ошибка billing
502Провайдер улучшения промптов не выполнил запрос

Ошибки 400 используют стандартный Client API envelope. Например, при недостаточном балансе проверяйте errorKey:

{
  "type": "msgType_error",
  "errorKey": "BILLING_ACCESS_DENIED",
  "translationKey": "common:server.BILLING_ACCESS_DENIED",
  "translationValues": {}
}

Rate limit общий для всех /apis/v1/client/** endpoints: 60 запросов в минуту на API-токен и независимый лимит 120 запросов в минуту на IP. При 429 используйте заголовок Retry-After; тело ответа имеет вид:

{
  "error": "rate_limit_exceeded"
}

Последнее обновление: 18 июля 2026