API429 / Black Forest Labs / FLUX

FLUX API через API429: изображение, параметры и проверка файла

Подключите FLUX.2-pro для запроса изображения через API429: задайте явный размер, проверьте выход и читайте ставки с условиями megapixel и reference_mp.

Модели и текущие ставки API429

Ниже — точные графические ID выбранного семейства. Публичный каталог и список GET /v1/models для вашего ключа решают разные задачи: опубликованная запись не подтверждает доступ любого аккаунта. Не заменяйте дефисы, точки или версию по сходству названий.

Модель / точный IDAPI429: USD и единицы оплаты
Flux.2 ProFLUX.2-pro
$0.009000000 / 1 изображение · Выход 1 МП, без референсов (1 МП = 1024 × 1024)
$0.013500000 / 1 изображение · Выход 2 МП, без референсов (1 МП = 1024 × 1024)
$0.022500000 / 1 изображение · Выход 4 МП, без референсов (1 МП = 1024 × 1024)

Дата данных каталога: . Ставки показываются с условиями из каталога; отсутствующая строка не означает бесплатный запрос.

Подробные тарифы семейства и калькулятор · Полный каталог

Один запрос и одно проверяемое изображение

Для первого теста FLUX выберите простую сцену с понятными критериями: предмет на столе, нейтральный фон и заданное освещение. В примере запрашивается одно изображение размером 1024x1024 с возвратом b64_json. Буквальный ID FLUX.2-pro чувствителен к написанию: не заменяйте его на название страницы модели или другое написание Flux. Проверяйте наличие модели в списке своего ключа до платной генерации. Используйте искусственный сюжет без рабочих материалов, пока не проверены формат ответа, сохранение файла и обработка ошибок приложения.

Условия мегапикселей и отсутствие референсов

Таблица ставок различает output_mp и reference_mp. Показанные строки с reference_mp=0 относятся к генерации без референсных изображений; их нельзя переносить на редактирование или запрос с дополнительным изображением. Размер 1024x1024 в примере является явной настройкой запроса, а не обещанием всех форматов и параметров производителя. Не умножайте произвольное число мегапикселей на одну строку без подтверждённого правила расчёта. Если нужная конфигурация отсутствует или данные устарели, проверьте каталог и контракт, прежде чем оценивать серию запросов.

Изображение в API429 и нативный процесс BFL

Документация Black Forest Labs описывает семейство FLUX и собственный процесс генерации, который может включать ожидание и опрос результата. Этот нативный процесс не является инструкцией к представленному клиентскому методу API429. Здесь используется POST /v1/images/generations. Примеры проверяют количество выходов, наличие b64_json и сигнатуру PNG, JPEG либо WebP перед выбором расширения. Предупреждения и parameter_mismatches требуют просмотра; metadata outputs помогает проверить фактический результат. Не считайте успешный HTTP-статус подтверждением нужной композиции, размера или отсутствия частичного ответа. Сначала откройте файл и сравните его с заданием.

Доступ ключа и границы примера

Сначала создайте ключ в личном кабинете API429, затем запросите список моделей с этим ключом. Публичный каталог помогает выбрать запись, но не подтверждает права конкретного аккаунта. Сохраните точный идентификатор без изменения регистра, дефисов и точек. Ключ храните в окружении серверного приложения; не включайте его в браузерный код, журналы запросов или примеры для коллег. Успешное чтение списка ещё не проверяет выполнение платной генерации. Начните с небольшого искусственного задания, результат которого можно оценить вручную, и только после проверки переносите запрос на рабочие данные.

Как читать текущие ставки

Таблица получает ставки из свежего публичного каталога API429. Единица оплаты и условие строки являются частью цены: нельзя переносить число из одной строки на другой режим запроса. При отсутствии свежей однозначной записи числовая ставка скрывается. Это означает недостаток подтверждения, а не бесплатное использование. Перед запуском серии запросов сверяйте параметры, доступ ключа и бюджет. Сохраняйте идентификатор модели, размер задания и результат проверки в собственном приложении. Повтор после ошибки может создать новую платную операцию, поэтому решение о повторе должно учитывать уже полученный ответ и состояние задачи.

Выберите следующий шаг подключения

  • Тарифы Black Forest Labs / FLUX

    Отдельное руководство по единицам оплаты и сопоставлению опубликованных тарифов.

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

    Проверьте точный идентификатор, опубликованные возможности и текущие единицы оплаты.

  • Начало работы с API429

    Создайте ключ и проверьте клиентский контракт перед первым платным запросом.

Первое изображение: curl, Python, JavaScript

  1. Создайте ключ в личном кабинете API429 и пополните баланс: картой РФ, по счёту для юрлиц или в USDT/TON. Для первых запросов можно получить $10 за подписку на Telegram-канал.
  2. С тем же ключом проверьте точный ID FLUX.2-pro в GET https://gateway.api429.com/v1/models.
  3. Задайте API429_API_KEY в окружении сервера и выполните небольшой запрос. Генерация платная; пример не выполняет автоматических повторов.
  4. Проверьте один выход, предупреждения, parameter_mismatches, api429.outputs и сигнатуру PNG, JPEG либо WebP. Таймаут не доказывает, что операция не оплачена.

Пример использует POST /v1/images/generations, n=1, size=1024x1024 и response_format=b64_json, без референсов. Строки output_mp с reference_mp=0 нельзя переносить на запросы с референсами. Python и JavaScript проверяют доступ ключа, число выходов и сигнатуру файла; предупреждения и фактический выход требуют просмотра. Для curl отдельно проверьте список и JSON-ответ.

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, neutral background, soft daylight.","n":1,"size":"1024x1024","response_format":"b64_json"}' \
  --output image-response.json

Python 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, neutral background, soft daylight.\",\"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, neutral background, soft daylight.","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);

Примеры не подтверждают доступ вашего ключа; проверьте точный ID перед платным запросом. API-контракт · Настройка совместимого клиента · Вопросы и поддержка

Оплата и тест $10

  • Карта российского банка. Пополнение баланса в личном кабинете.
  • Счёт для юрлиц. Безналичная оплата с закрывающими документами.
  • USDT и TON. Пополнение криптовалютой.

Тест $10. Подпишитесь на наш Telegram-канал через бота — получите $10 на баланс для первых запросов. Получить $10 в боте

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

Какой ID нужен для FLUX?

Отправляйте FLUX.2-pro с сохранением регистра и пунктуации. Адрес опубликованной карточки может отличаться от API ID; используйте значение из каталога и списка своего ключа.

Что означает reference_mp=0?

Это условие строки тарифа без референсных изображений. Оно не описывает цену редактирования и не подтверждает правила оплаты для других входных конфигураций.

Как сохранять результат b64_json?

Проверьте один ожидаемый выход и непустые данные, декодируйте base64 и определите расширение по сигнатуре файла. При неизвестной сигнатуре или частичном ответе остановите обработку и изучите ответ.

Нужно ли повторять нативный polling BFL?

Не переносите нативный процесс BFL на API429 автоматически. Следуйте документированному методу API429, проверяйте warnings и metadata outputs, а тарифные сравнения читайте в существующем руководстве FLUX.

Источники и редакционная проверка

Документация производителей объясняет семейство и правила их собственных API. Точные ID, ставки и контракт API429 проверяются по его каталогу и документации отдельно.

Проверено . Для подключения создайте аккаунт API429 и следуйте инструкции начала работы.

Telegram