Точный ID: FLUX.2-pro. Доступ вашего ключа проверяется через GET /v1/models; опубликованная модель не гарантирует доступ любого аккаунта.
Цены и единицы оплаты
| Настройка прямого запроса | Цена API429 |
|---|---|
| 1 MP, без референсов | $0.009 / 1 изображение |
| 2 MP, без референсов | $0.0135 / 1 изображение |
| 4 MP, без референсов | $0.0225 / 1 изображение |
Каталог API429 сформирован . Таблица показывает компоненты прямого запроса; другие метрики общего каталога здесь не прибавляются. Для чтения цены округлены до шести знаков; расчёт использует точные ставки каталога. Калькулятор ниже использует контракт прямого Images запроса. Сверка источников: 2026-10-24.
BFL: $0.03 за первый выходной MP и $0.015 за каждый следующий, без референсов. Один MP равен 1 048 576 пикселям. Референсы имеют отдельные нативные правила и не оцениваются как цена API429. Источники тарифов — в разделе ниже. Batch, кеш и специальные режимы не смешиваются с базовым сравнением.
Бюджет генерации изображений
Только генерация без референсов; MP считается по запрошенной площади, не измеренному размеру результата. Выбраны точные опубликованные пресеты. Произвольное редактирование не оценивается. Кеш, инструменты, налоги, комиссии и повторные вызовы исключены. Рубли появляются только по вашему курсу; это не банковская котировка.
Характеристики и границы совместимости
- BFL описывает FLUX.2 [pro]: нативное создание и редактирование, до восьми API-референсов, выход до 4MP. Публичный каталог API429 не устанавливает равные пределы.
- Нативный фиксированный flux-2-pro и изменяемый flux-2-pro-preview различаются. ID API429 FLUX.2-pro не доказывает привязку к фиксированным весам.
- Для расчёта без референсов опубликованы 1/2/4 billed MP. У BFL один MP равен 1 048 576 пикселей; округление вверх. Тариф API429 с референсами не подтверждён.
Спецификация Black Forest Labs, сверка 2026-10-24. Это не подтверждённые эффективные лимиты API429. Нативные параметры и возможности производителя проверяйте отдельно по клиентскому методу.
Опубликованные возможности точного ID: image_editing image_generation . Отсутствие поля не является доказательством запрета, но не позволяет обещать совместимость.
Точный ID и граница сведений о версии
Black Forest Labs представила FLUX.2 [pro] 25 ноября 2025 года. У производителя отдельно существуют фиксированный flux-2-pro и изменяемый flux-2-pro-preview. В API429 опубликован точный ID FLUX.2-pro с собственным написанием и регистром. Само название связывает продукт с семейством FLUX.2 Pro, но не доказывает привязку к неизменяемому снимку весов. Не обещайте идентичные результаты между датами и не считайте seed гарантией воспроизводимости через этот ID. Для рабочего сравнения сохраните исходный запрос, дату, настройки и принятый файл. Производитель описывает генерацию и редактирование, работу с текстом в кадре и направлением цвета. Это основания для контрольного набора, а не измеренная точность. Проверьте предметную сцену, расположение короткой надписи и композицию под ваш формат; отдельно отметьте исправления, которые потребовались после генерации.
Мегапиксель означает площадь, а не длину стороны
У BFL расчётный мегапиксель равен 1 048 576 пикселям, то есть площади квадрата 1024 на 1024. Площадь результата округляется вверх до следующего расчётного MP. Поэтому перевод разрешения в тариф нельзя делать по одной стороне или по округлённому маркетинговому названию. В калькуляторе выберите опубликованную конфигурацию одного, двух или четырёх оплачиваемых MP без референсов. Он не строит произвольную цену по любому размеру: для API429 используются только точные опубликованные строки. Производительская сумма для этих конфигураций получается из цены первого выходного MP и каждого следующего. Сведения о нативном выходе до 4MP не означают одинаковый эффективный предел API429. Начальный запрос использует 1024x1024 как простую форму из общего клиентского контракта; точные размеры и параметры результата необходимо проверить после ответа.
Почему генерация и редактирование имеют разную смету
Нативная тарификация BFL добавляет оплату площади референсов к выходному изображению. Один референс округляется вверх и ограничивается четырьмя MP; при нескольких референсах каждый считается за один MP по текущему описанию производителя. Эти правила не являются подтверждённым тарифом API429 для редактирования. В публичном каталоге API429 для FLUX.2-pro есть только строки reference_mp=0, поэтому калькулятор намеренно охватывает генерацию без референсов. Не добавляйте предполагаемую плату за исходный файл и не переносите тариф соседней модели. Для оценки редактирования нужны опубликованные единицы и условия именно этого вызова. Если требуется много вариантов одного объекта, сначала отдельно согласуйте контракт загрузки исходника, допустимый размер и расчёт. Только после проверенного небольшого задания переносите весь производственный пакет.
Параметры Pro не следует брать у соседних моделей
В нативном семействе BFL модель Flex имеет собственные настройки steps и guidance, а Max — отдельные возможности grounding. Они не становятся параметрами Pro из-за общего имени FLUX.2. Нативный endpoint Pro описывает prompt, референсы, seed и размеры, а также управление автоматическим улучшением промпта; общий клиентский контракт API429 не доказывает поддержку всех этих полей. Начальный пример использует только проверенные клиентские поля. BFL возвращает асинхронную задачу в своём API, но это не контракт API429: переносить его polling URL и статусы нельзя. Здесь показан синхронный images/generations с b64_json. После ответа проверьте, что data содержит ожидаемое количество результатов, затем декодируйте байты и определите PNG, JPEG или WebP по сигнатуре. URL-ответ также может быть data URI. Предупреждения и несовпадения параметров требуют просмотра до сохранения в рабочую систему. Не повторяйте генерацию автоматически после неопределённого таймаута: возможны выполненная работа и дополнительное списание при повторе. Для приёмки результата заранее определите, кто проверяет содержимое, где сохраняется исходный ответ и как фиксируется решение о повторной попытке. Это помогает отделить техническое получение файла от его готовности к использованию.
Публичные наблюдения по модели
Нет свежих наблюдений с подтверждённым трафиком для этой модели. Это не нулевая задержка и не доказательство отсутствия ошибок.
Источник: публичная статистика за 24 часа. Среднее не является медианой или гарантией времени ответа; это не оценка качества изображения.
Первый запрос: curl, Python, JavaScript
Задайте API429_API_KEY на сервере и проверьте точный ID через GET https://gateway.api429.com/v1/models с тем же Bearer-ключом. Генерация платная; автоматические повторы не выполняются. Неопределённый таймаут не доказывает отсутствие списания.
Примеры запрашивают один результат и b64_json. curl сохраняет JSON в image-response.json; Python и JavaScript декодируют файл после проверки MIME по сигнатуре. При выборе url сначала различите hosted URL и data URI. Проверьте предупреждения, частичный результат, api429.outputs и api429.parameter_mismatches, если они присутствуют.
curl
curl --fail-with-body https://gateway.api429.com/v1/images/generations \
-H "Authorization: Bearer $API429_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"FLUX.2-pro","prompt":"A ceramic cup on a wooden table in soft morning light, no lettering.","n":1,"size":"1024x1024","response_format":"b64_json"}' \
--output image-response.jsonPython 3
import base64
import json
import os
import urllib.request
from pathlib import Path
key = os.environ["API429_API_KEY"]
base = "https://gateway.api429.com/v1"
headers = {"Authorization": "Bearer " + key, "Content-Type": "application/json"}
model = "FLUX.2-pro"
with urllib.request.urlopen(urllib.request.Request(base + "/models", headers=headers), timeout=30) as response:
available = {item["id"] for item in json.load(response)["data"]}
if model not in available:
raise ValueError("Model unavailable to this key")
payload = json.loads("{\"model\":\"FLUX.2-pro\",\"prompt\":\"A ceramic cup on a wooden table in soft morning light, no lettering.\",\"n\":1,\"size\":\"1024x1024\",\"response_format\":\"b64_json\"}")
request = urllib.request.Request(base + "/images/generations",
data=json.dumps(payload).encode("utf-8"), headers=headers, method="POST")
with urllib.request.urlopen(request, timeout=180) as response:
result = json.load(response)
if result.get("warnings") or result.get("api429", {}).get("parameter_mismatches"):
print("Inspect output warnings:", result.get("warnings"), result.get("api429"))
items = result.get("data", [])
if len(items) != 1 or not items[0].get("b64_json"):
raise ValueError("Missing image or partial result; inspect before retrying")
raw = base64.b64decode(items[0]["b64_json"], validate=True)
if raw.startswith(b"\x89PNG\r\n\x1a\n"):
extension = "png"
elif raw.startswith(b"\xff\xd8\xff"):
extension = "jpg"
elif raw.startswith(b"RIFF") and raw[8:12] == b"WEBP":
extension = "webp"
else:
raise ValueError("Unknown image MIME; inspect before saving")
Path("image." + extension).write_bytes(raw)
print(result.get("api429", {}).get("outputs"))JavaScript: Node.js 18+
import { writeFile } from "node:fs/promises";
const key = process.env.API429_API_KEY;
if (!key) throw new Error("Set API429_API_KEY");
const base = "https://gateway.api429.com/v1";
const headers = { Authorization: "Bearer " + key, "Content-Type": "application/json" };
const model = "FLUX.2-pro";
const available = await fetch(base + "/models", { headers, signal: AbortSignal.timeout(30000) });
if (!available.ok) throw new Error("Models HTTP " + available.status);
if (!(await available.json()).data.some(item => item.id === model)) throw new Error("Model unavailable to this key");
const payload = {"model":"FLUX.2-pro","prompt":"A ceramic cup on a wooden table in soft morning light, no lettering.","n":1,"size":"1024x1024","response_format":"b64_json"};
const response = await fetch(base + "/images/generations", {
method: "POST", headers, body: JSON.stringify(payload), signal: AbortSignal.timeout(180000)
});
if (!response.ok) throw new Error("Generation HTTP " + response.status);
const result = await response.json();
if (result.warnings || result.api429?.parameter_mismatches) console.warn("Inspect warnings", result.warnings, result.api429);
if (result.data?.length !== 1 || !result.data[0].b64_json) throw new Error("Missing image or partial result; inspect before retrying");
const bytes = Buffer.from(result.data[0].b64_json, "base64");
const hex = bytes.subarray(0, 8).toString("hex");
const extension = hex === "89504e470d0a1a0a" ? "png" : hex.startsWith("ffd8ff") ? "jpg" : bytes.toString("ascii", 0, 4) === "RIFF" && bytes.toString("ascii", 8, 12) === "WEBP" ? "webp" : undefined;
if (!extension) throw new Error("Unknown image MIME; inspect before saving");
await writeFile("image." + extension, bytes);
console.log(result.api429?.outputs);Примеры проверяются offline по клиентскому контракту и публичной схеме. Платный запуск и качество результата не заявляются. Подтверждённый полный image jobs контракт здесь отсутствует: асинхронные поля и polling не приводятся.
n8n: HTTP Request и сохранение результата
- Проверьте доступ точного ID через GET /v1/models.
- Создайте HTTP Request с POST на
https://gateway.api429.com/v1/images/generations; храните Bearer-ключ в credentials. - Передайте JSON из curl с одним результатом. Не включайте ключ в экспорт workflow.
- Разберите JSON, проверьте количество data и предупреждения; декодируйте b64_json и проверьте MIME перед сохранением.
Документация HTTP Request. Совместимость специальных AI-узлов и нативных SDK требует отдельной проверки.
Три варианта для собственного сравнения
Сравнивайте одинаковые задания и критерии приёмки. Это модели изображений, не рейтинг качества; условные строки относятся к своим конфигурациям и не составляют равнозначный benchmark.
| Модель | Опубликованные единицы API429 |
|---|---|
gemini-3.1-flash-image (Nano Banana 2)gemini-3.1-flash-image | Разрешение 1K: $0.0201 / 1 изображение Разрешение 2K: $0.0303 / 1 изображение Разрешение 4K: $0.0453 / 1 изображение |
GPT Image 2gpt-image-2 | auto · длинная сторона >1536 и до 2048 px: $0.2532 / 1 изображение auto · длинная сторона >2048 px: $0.500892 / 1 изображение auto · прямоугольник, сторона до 1536 px: $0.0495 / 1 изображение auto · квадрат, сторона до 1536 px: $0.0633 / 1 изображение high · длинная сторона >1536 и до 2048 px: $0.2532 / 1 изображение high · длинная сторона >2048 px: $0.500892 / 1 изображение high · прямоугольник, сторона до 1536 px: $0.0495 / 1 изображение high · квадрат, сторона до 1536 px: $0.0633 / 1 изображение low · длинная сторона >1536 и до 2048 px: $0.0072 / 1 изображение low · длинная сторона >2048 px: $0.014238 / 1 изображение low · прямоугольник, сторона до 1536 px: $0.0015 / 1 изображение low · квадрат, сторона до 1536 px: $0.0018 / 1 изображение medium · длинная сторона >1536 и до 2048 px: $0.0636 / 1 изображение medium · длинная сторона >2048 px: $0.125768 / 1 изображение medium · прямоугольник, сторона до 1536 px: $0.0123 / 1 изображение medium · квадрат, сторона до 1536 px: $0.0159 / 1 изображение |
gemini-3-pro-image (Nano Banana Pro)gemini-3-pro-image | Разрешение 1K: $0.0402 / 1 изображение Разрешение 2K: $0.0402 / 1 изображение Разрешение 4K: $0.072 / 1 изображение |
Версия и дата выпуска
Дата выпуска у Black Forest Labs: . Точный предшественник в проверенных источниках не установлен. Это не автоматическая замена ID. Дата появления модели в API429 не установлена.
Частые вопросы
Как записать ID FLUX.2 Pro в запросе?
Используйте FLUX.2-pro с указанным регистром и проверьте доступ через GET /v1/models. Нативное написание flux-2-pro не является автоматически доступным алиасом API429.
Что означает 1MP в расчёте?
Производитель использует 1 048 576 пикселей и округление площади вверх. Калькулятор API429 выбирает только явно опубликованные строки 1/2/4MP без референсов, а не выводит тариф из произвольного размера.
Можно ли здесь оценить редактирование с референсом?
Нет подтверждённого runtime тарифа референсов. Нативные правила BFL показаны отдельно и не подставляются в цену API429. До расчёта нужны точные клиентские условия такого вызова.
Гарантирует ли ID фиксированные веса и одинаковый результат?
Публичное соответствие фиксированному или preview endpoint BFL не доказано. Карточка не обещает закреплённые веса и воспроизводимость; сохраняйте параметры и принятый результат для своей проверки.
Источники и проверка
- docs.bfl.ai/flux_2/flux2_overview
- bfl.ai/blog/flux-2
- bfl.ai/pricing
- docs.bfl.ai/flux_2/flux2_image_editing
- gateway.api429.com/api/public/catalog
- gateway.api429.com/api/public/openapi.json
- client.api429.com/documentation
Редакционная проверка: . Тарифы · Начало работы · Сравнение семейства FLUX