API генерации изображений и видео

Базовый адрес: https://themegabrain.ru/api/gateway/v1. Ключ создаётся в личном кабинете (раздел API Keys) и передаётся в заголовке Authorization: Bearer <ключ>. Тот же ключ работает с LLM-шлюзом.

Каталог моделей

Список моделей с ценой за единицу в долларах и рублях. ID модели совпадает с ID на fal.ai.

curl https://themegabrain.ru/api/gateway/v1/media/models

Очередь: отправить задачу

Тело запроса — входные параметры самой модели, как в документации fal.ai (prompt, image_size, num_images, image_urls для редактирования, start_image_url для «картинка → видео», duration…). Стоимость считается до запуска и списывается сразу; при нехватке баланса вернётся 402.

curl -X POST https://themegabrain.ru/api/gateway/v1/queue/fal-ai/kling-video/v3/standard/text-to-video \
  -H "Authorization: Bearer $MEGABRAIN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "дрон пролетает над зимним Байкалом, рассвет", "duration": "5", "generate_audio": false}'
{
  "request_id": "6c1f…",
  "model": "fal-ai/kling-video/v3/standard/text-to-video",
  "status": "IN_QUEUE",
  "status_url": "https://themegabrain.ru/api/gateway/v1/queue/requests/6c1f…/status",
  "response_url": "https://themegabrain.ru/api/gateway/v1/queue/requests/6c1f…",
  "cost_usd": 0.91,
  "refunded": false
}

Статус и результат

GET status_url возвращает IN_QUEUE, IN_PROGRESS, COMPLETED или FAILED. GET response_url отдаёт выход модели (например {"video": {"url": …}} или {"images": [{"url": …}]}), пока задача идёт — 202. Опрашивайте раз в 2–5 секунд.

curl https://themegabrain.ru/api/gateway/v1/queue/requests/$REQUEST_ID/status -H "Authorization: Bearer $MEGABRAIN_API_KEY"
curl https://themegabrain.ru/api/gateway/v1/queue/requests/$REQUEST_ID -H "Authorization: Bearer $MEGABRAIN_API_KEY"

Возвраты

Если провайдер завершил задачу ошибкой, статус становится FAILED, а полная стоимость возвращается на баланс ("refunded": true). Ошибки валидации входа (422 при отправке) не списываются.

OpenAI-совместимые изображения

POST /images/generations принимает тело OpenAI (model, prompt, n, size) и ждёт готовую картинку до ~110 секунд. Любые другие поля передаются модели как есть.

from openai import OpenAI

client = OpenAI(base_url="https://themegabrain.ru/api/gateway/v1", api_key="MEGABRAIN_API_KEY")
img = client.images.generate(
    model="fal-ai/nano-banana-pro",
    prompt="инфографика: как устроен API генерации",
    size="1024x1024",
)
print(img.data[0].url)

История

curl https://themegabrain.ru/api/gateway/v1/media/generations -H "Authorization: Bearer $MEGABRAIN_API_KEY"

Ошибки

  • 400 — некорректный запрос (например, duration вне допустимых значений).
  • 401 — нет или неверный ключ.
  • 402 — недостаточно средств, пополните баланс в личном кабинете.
  • 404 — модель не обслуживается или задача не найдена.
  • 422 — модель отклонила вход / задача завершилась ошибкой (средства возвращены).
  • 503 — провайдер временно недоступен, повторите позже.