API Hubs

API Hubs и fal.ai

Альтернатива fal.ai

Сравните fal.ai и API Hubs для готовых моделей изображений и видео: цены одинаковых настроек, стоимость рабочего объёма и полный переход с fal-клиента на наш API задач.

Сравнение API Hubs и fal.ai

Когда выбрать API Hubs

Выбирайте API Hubs, если используете готовые модели и хотите единый формат задач для изображений, видео и музыки, а чат — на том же предоплаченном балансе.

Когда стоит остаться на fal.ai

Сохраните fal.ai, если нужны возможности его SDK, инструменты обучения или модели вне нашего каталога. Совпадение моделей не означает совместимость эндпоинтов, модерации и всех расширенных параметров.

Документация API fal.ai

Прокрутите таблицу по горизонтали, чтобы увидеть все столбцы.

Изменения API: с fal.ai на API Hubs
Деталь интеграцииfal.aiAPI Hubs
Запросfal.subscribe(model, { input })POST /api/v1/generation/create
АвторизацияFAL_KEY / Authorization: KeyAuthorization: Bearer
Идентификатор моделиfal-ai/bytedance/seedream/v4.5/text-to-imageseedream-4-5

Сравнивается модель из примера ниже, а не все эндпоинты провайдера. Одинаковые названия моделей не гарантируют одинаковые параметры, модерацию или результат.

Сравнение цен: fal.ai и API Hubs

Выбранные общие модели с одинаковыми единицами тарификации. Наши цены берутся из текущего каталога; цены конкурента приведены с датами проверки и ссылками на источники.

Сравнение цен: fal.ai и API Hubs
Nano Bananaза изображение · по текстуAPI Hubs0.012 coinsfal.ai$0.039На 69.2% ниже
Nano Banana 21k · за изображение · по текстуAPI Hubs0.018 coinsfal.ai$0.08На 77.5% ниже
Nano Banana 22k · за изображение · по текстуAPI Hubs0.02 coinsfal.ai$0.12На 83.3% ниже
Nano Banana 2512px · за изображение · по текстуAPI Hubs0.022 coinsfal.ai$0.06На 63.3% ниже
Nano Banana 24k · за изображение · по текстуAPI Hubs0.026 coinsfal.ai$0.16На 83.8% ниже
Nano Banana Pro1k · за изображение · по текстуAPI Hubs0.029 coinsfal.ai$0.15На 80.7% ниже
Nano Banana Pro2k · за изображение · по текстуAPI Hubs0.029 coinsfal.ai$0.15На 80.7% ниже
Nano Banana Pro4k · за изображение · по текстуAPI Hubs0.043 coinsfal.ai$0.3На 85.7% ниже
Seedream 4.5за изображение · по текстуAPI Hubs0.036 coinsfal.ai$0.04На 10% ниже
Seedream 5.0 Liteза изображение · по текстуAPI Hubs0.03325 coinsfal.ai$0.035На 5% ниже
Seedream 5.0 Pro1K · за изображение · по текстуAPI Hubs0.04 coinsfal.ai$0.0675На 40.7% ниже
Seedream 5.0 Pro2K · 1:1 · за изображение · по текстуAPI Hubs0.079 coinsfal.ai$0.135На 41.5% ниже
Wan 2.7 Imageза изображение · по текстуAPI Hubs0.0285 coinsfal.ai$0.03На 5% ниже
Veo 3.1 Fast1080p · за целый клип8s · Со звукомТекст → видеоAPI Hubs0.189 coinsfal.ai$1.2На 84.3% ниже
Veo 3.1 Fast720p · за целый клип8s · Со звукомТекст → видеоAPI Hubs0.189 coinsfal.ai$1.2На 84.3% ниже
Veo 3.1 Fast4k · за целый клип8s · Со звукомТекст → видеоAPI Hubs0.429 coinsfal.ai$2.8На 84.7% ниже
Veo 3.1 Quality1080p · за целый клип8s · Со звукомТекст → видеоAPI Hubs1.425 coinsfal.ai$3.2На 55.5% ниже
Veo 3.1 Quality720p · за целый клип8s · Со звукомТекст → видеоAPI Hubs1.2 coinsfal.ai$3.2На 62.5% ниже
Veo 3.1 Quality4k · за целый клип8s · Со звукомТекст → видеоAPI Hubs1.8 coinsfal.ai$4.8На 62.5% ниже
Wan 2.7 Video720p · за секунду результатаИзображение → видеоAPI Hubs0.086 coinsfal.ai$0.1На 14% ниже
Wan 2.7 Video1080p · за секунду результатаИзображение → видеоAPI Hubs0.129 coinsfal.ai$0.15На 14% ниже

В каждой строке указаны сценарий и единица оплаты. Для изображений — один результат без референсов. Видео оплачивается за секунду или целый клип, как указано в строке; сопоставляйте разрешение, длительность и звук.

Наш баланс выражен в монетах: 1 монета = 1 USD. Цены конкурента указаны в USD.

Стоимость рабочего объёма

Nano Banana

1 000 изображений с настройками выше

API Hubs
12 coins
fal.ai
$39

Nano Banana 2 · 1k

1 000 изображений с настройками выше

API Hubs
18 coins
fal.ai
$80

Примеры рассчитаны по строкам выше, без скидок за объём, подписок и дополнительных платных опций. Они не обещают одинаковую скорость или одинаковые результаты.

Цены

Миграция с fal.ai

Замените fal.subscribe или fal.queue.submit на POST /api/v1/generation/create. Перенесите input в документированные параметры верхнего уровня, путь модели замените на id каталога и получайте результат по taskId или вебхуку.

  1. 1

    Зарегистрируйтесь, пополните предоплаченный баланс и создайте API-ключ.

  2. 2

    Отправьте POST /api/v1/generation/create с публичным id модели и параметрами из документации. Одна задача создаёт один результат.

  3. 3

    Получите taskId из ответа. Опрашивайте GET /api/v1/task/status/TASK_ID или передайте webhook при создании задачи.

fal.ai

javascript
import { fal } from "@fal-ai/client";
fal.config({ credentials: process.env.FAL_KEY });
const result = await fal.subscribe(
"fal-ai/bytedance/seedream/v4.5/text-to-image",
{ input: { prompt: "A ceramic mug on a wooden table, soft morning light", image_size: "square_hd", num_images: 1, max_images: 1 } },
);
const fileUrl = result.data.images[0].url;

API Hubs

bash
curl --fail-with-body 'https://api.apihubs.ru/api/v1/generation/create' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "seedream-4-5",
"prompt": "A ceramic mug on a wooden table, soft morning light",
"resolution": "2K",
"size": "1:1"
}'
Полный пример: создать задачу и получить файл

Запускайте на сервере с Node 22+ или Bun и переменной API_KEY. Пример создаёт одну платную задачу и опрашивает её без повторного создания. Готовые ссылки временные: сохраните файл в своё хранилище.

javascript
import { writeFile } from "node:fs/promises";
const baseURL = "https://api.apihubs.ru/api/v1";
const apiKey = process.env.API_KEY;
if (!apiKey) throw new Error("Set API_KEY on the server");
async function request(path, options = {}) {
const response = await fetch(baseURL + path, {
...options,
headers: {
Authorization: `Bearer ${apiKey}`,
"Content-Type": "application/json",
},
signal: AbortSignal.timeout(30_000),
});
if (!response.ok) throw new Error(await response.text());
return response.json();
}
const { taskId } = await request("/generation/create", {
method: "POST",
body: JSON.stringify({
"model": "seedream-4-5",
"prompt": "A ceramic mug on a wooden table, soft morning light",
"resolution": "2K",
"size": "1:1"
}),
});
if (!taskId) throw new Error("Missing taskId");
const deadline = Date.now() + 10 * 60_000;
let fileUrl;
while (Date.now() < deadline) {
const { data } = await request(`/task/status/${encodeURIComponent(taskId)}`);
if (data.status === "finished") {
fileUrl = data.files?.[0]?.fileUrl;
if (!fileUrl) throw new Error("Task finished without a file");
break;
}
if (data.status === "failed" || data.status === "expired") {
throw new Error(data.errorMessage || data.status);
}
await new Promise((resolve) => setTimeout(resolve, 2000));
}
if (!fileUrl) throw new Error(`Still processing: save taskId ${taskId} and resume polling`);
const file = await fetch(fileUrl, { signal: AbortSignal.timeout(60_000) });
if (!file.ok) throw new Error(`Download failed: ${file.status}`);
const mime = file.headers.get("content-type")?.split(";")[0];
const extension = { "image/png": "png", "image/jpeg": "jpg", "image/webp": "webp" }[mime] || "bin";
await writeFile(`generated-image.${extension}`, new Uint8Array(await file.arrayBuffer()));

Храните API-ключи на сервере. Перед переносом рабочей нагрузки проверьте один запрос: параметры, обработку статусов и полученный результат.

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

Как перейти с fal.ai?

Замените fal.subscribe или fal.queue.submit на POST /api/v1/generation/create. Перенесите input в документированные параметры верхнего уровня, путь модели замените на id каталога и получайте результат по taskId или вебхуку.

API Hubs всегда дешевле fal.ai?

Нет. Сравните конкретную модель, настройки и единицу тарификации в таблице. Цены могут меняться в обе стороны; перед переносом рабочей нагрузки проверьте оба каталога.

Можно ли перенести любой сценарий с fal.ai?

Сохраните fal.ai, если нужны возможности его SDK, инструменты обучения или модели вне нашего каталога. Совпадение моделей не означает совместимость эндпоинтов, модерации и всех расширенных параметров.

Что происходит с ошибками и незавершёнными запросами?

Медиазадачи повторяются по настроенным маршрутам; резерв используется, когда он доступен. При окончательной ошибке генерации списание возвращается. Задачу в обработке нужно опрашивать, а не создавать заново. Истечение ссылки на файл не означает ошибку генерации.

Как пополнить баланс?

Доступные способы оплаты, валюта и минимальная сумма пополнения указаны в личном кабинете до оплаты. Подписки нет: использование моделей оплачивается с предоплаченного баланса.

Выполните первый запрос в API Hubs

Выберите модель, проверьте параметры и цену, затем создайте API-ключ в личном кабинете. Начните с одного запроса перед переносом нагрузки.