Профиль — медиа
Изображения, видео и звук: диффузионный инференс, а не диалоговые ассистенты.
AIR для разработчиков
fal ai — платформа быстрого инференса генеративных моделей: картинка, видео и звук приходят по HTTP-вызову, без своего парка GPU.
Chat Completions API
Запрос к моделям для кода через OpenAI-совместимый API
Карточка товара: керамическая кружка на бетонной плите, мягкий боковой свет, фон под обрезку в квадрат
Кружка в центре кадра, тени мягкие, фон однотонный — картинка режется в квадрат без потери объекта. Файл в ответе, промпт сохранен для повтора.
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.air.fail/v1",
apiKey: process.env.AIR_API_KEY,
});
const image = await client.images.generate({
model: "flux",
prompt: "Карточка товара: керамическая кружка на бетонной плите, мягкий боковой свет, фон под обрезку в квадрат",
});
Пятисекундный луп: пар над чашкой кофе, медленный наезд камеры, свет как на рассвете
Собрал луп на пять секунд: наезд плавный, пар держится в кадре, первый и последний кадр сходятся без рывка на склейке.
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.air.fail/v1",
apiKey: process.env.AIR_API_KEY,
});
const video = await client.post("/videos/generations", {
body: { model: "wan", prompt: "Пятисекундный луп: пар над чашкой кофе, медленный наезд камеры, свет как на рассвете" },
});
Фоновый инструментал на тридцать секунд под таймлапс стройки: ровный ритм, без вокала
Дорожка на тридцать секунд: ритм ровный, нарастание к финалу, вокала нет. Под таймлапс ложится без дополнительной нарезки.
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.air.fail/v1",
apiKey: process.env.AIR_API_KEY,
});
const video = await client.post("/videos/generations", {
body: { model: "stable-audio", prompt: "Фоновый инструментал на тридцать секунд под таймлапс стройки: ровный ритм, без вокала" },
});
Собери три варианта промпта для обложки статьи про наблюдаемость: минималистичный изометрический рендер
Три варианта: сетка сервисов с подсветкой узла, приборная панель в изометрии, граф трейсов линиями. В каждом заданы свет, палитра и пропорции кадра.
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.air.fail/v1",
apiKey: process.env.AIR_API_KEY,
});
const reply = await client.chat.completions.create({
model: "gpt",
messages: [{ role: "user", content: "Собери три варианта промпта для обложки статьи про наблюдаемость: минималистичный изометрический рендер" }],
});
fal и более 80 моделей в одном сервисе
Платформа продает не собственную модель, а быстрый доступ к чужим весам и к железу под ними.
Изображения, видео и звук: диффузионный инференс, а не диалоговые ассистенты.
Инференс диффузии оптимизирован, отсюда короткое время до готового кадра.
Вызов из кода, постановка задачи и статус готовности вместо веб-редактора.
Открытые модели генерации собраны в одном месте под общий протокол вызова.
Счет растет от числа генераций, а не от аренды простаивающего GPU.
Барьера два, и оба лежат вне вашего кода.
Баланс пополняется зарубежной картой: российская карта и «Мир» не проходят ни при регистрации, ни при пополнении. Виртуальные карты и посредники добавляют комиссию, чужой курс и еще одну точку отказа, а при проверке платежного профиля аккаунт блокируют вместе с остатком на балансе.
Сервисы этого класса отклоняют запросы с российских адресов на своей стороне, и проверка идет не только по IP: смотрят платежный профиль и реквизиты. VPN меняет адрес, но не меняет карту и не снимает риск блокировки.
AIR — российский агрегатор нейросетей с OpenAI-совместимым API: один ключ из кабинета открывает весь каталог, оплата рублями.
Ассеты, иллюстрации и обложки — вызов images, модель задается id в теле запроса.
Короткие ролики и превью: отдельный эндпоинт, тот же ключ и тот же клиент.
Фоновая дорожка, джингл или эффект генерируются без отдельного аккаунта.
Перебор формулировок, разбор ошибок API, обвязка на Python — chat/completions.
OpenAI-совместимый эндпоинт
Эндпоинт совместим с OpenAI: baseURL https://api.air.fail/v1 и штатный SDK вместо самописного клиента.
Рубли и карта «Мир»
Оплата рублями картой российского банка, «Мир» включительно, без посредников и их наценки.
Работа без VPN
Без VPN: сервис российский, API отвечает напрямую из офисной сети и с CI-раннеров.
Стартовые лимиты на пробу
Стартовые лимиты после регистрации: свои промпты проверяются на боевой задаче до первой оплаты.
Генерация внутри продукта — это зависимость: если она отвалится, отвалится карточка товара, лендинг или выпуск ролика.
Один ключ на все
Текст, картинки, видео и звук идут через один эндпоинт — секретов в CI меньше, ротация проще.
Свой SDK остается
Клиент openai работает после смены baseURL и ключа: ретраи, таймауты и логирование не переписываются.
Расход по факту
Платите за вызовы, остаток и прайс видны в кабинете, счет не зависит от курса и посредника.
Минимальный вызов генерации — curl и Python, плюс чат для сборки промптов на JavaScript.
curl — без SDK, из любого окружения
curl https://api.air.fail/v1/images/generations \
-H "Authorization: Bearer $AIR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "flux",
"prompt": "Карточка товара: керамическая кружка на бетоне, мягкий боковой свет"
}'
openai — меняется только base_url и ключ
from openai import OpenAI
client = OpenAI(
base_url="https://api.air.fail/v1",
api_key="AIR_API_KEY",
)
image = client.images.generate(
model="flux", # id модели — из каталога в кабинете
prompt="Обложка статьи про наблюдаемость: изометрический рендер, минимализм",
)
print(image.data[0].url)
OpenAI-совместимый эндпоинт
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.air.fail/v1",
apiKey: process.env.AIR_API_KEY,
});
const reply = await client.chat.completions.create({
model: "gpt",
messages: [{ role: "user", content: "Собери три промпта для обложки статьи про очереди" }],
});
console.log(reply.choices[0].message.content);
В каталоге собраны модели под тот же класс работ, ради которого разработчик идет на платформу инференса.
| Модель | Сильная сторона | Когда выбирать |
|---|---|---|
| FLUX | Фотореализм и точное следование промпту | Продуктовые картинки и иллюстрации потоком |
| Seedream | Композиция кадра и надписи | Обложки и баннеры, где нужен текст в картинке |
| Wan | Короткое видео по описанию | Превью, лупы и ролики для соцсетей |
| Stable Audio | Инструментал и звуковые эффекты | Фон под видео, джингл, отдельный эффект |
| GPT-5 | Текстовая обвязка вокруг генерации | Сборка промптов, разбор ошибок, парсинг ответа |
Три кадра, сгенерированные моделями каталога по текстовому запросу — тот класс задач, за которым приходят на fal.
Портрет в неоновом свете
Стилизованный портрет: девушка в наушниках, неоновая подсветка. Обложка плейлиста или аватар сообщества — кадр собирается из одной фразы.
Кафе с неоновой вывеской
Придорожное кафе в сумерках, вывеска светится. Сцена под баннер или заставку — свет и настроение заданы текстом.
Плоская иллюстрация для баннера
Горы на рассвете в плоских формах. Графика под лендинг или рассылку — стиль держится от кадра к кадру.
Email или Яндекс ID; зарубежная карта и иностранный номер не нужны ни на одном шаге.
В кабинете это одна кнопка; ключ держите в переменной окружения, а не в репозитории.
В клиенте openai укажите https://api.air.fail/v1 — остальной код не трогайте.
Параметры, коды ошибок и примеры — в документации на русском: https://air-docs.readthedocs.io/ru/latest/
Регистрация бесплатна, стартовых лимитов хватает, чтобы проверить генерацию на своих промптах. Дальше — оплата по факту использования или подписка, актуальный прайс в кабинете.
Нет. AIR — российский сервис: сайт и API открываются напрямую, в том числе из офисных сетей и с CI-раннеров, где VPN запрещен политиками безопасности.
Картой российского банка в рублях, «Мир» включительно. Посредники, виртуальные карты и чужой курс не нужны, юрлицу выдаются закрывающие документы.
Нет. Через AIR API идет обычный синхронный вызов, а очередь, ретраи и уведомление о готовности вы реализуете у себя. Обещать чужую асинхронную обвязку мы не будем.
BaseURL, ключ и id модели. Схема запросов совпадает с OpenAI API: те же поля, тот же формат ответа, поэтому клиент и логирование не трогаются.
Да. Меняются эндпоинт и id модели, ключ остается прежним — отдельный аккаунт на каждый тип задачи не нужен.
Да, если задача — вызывать модели из российского сервиса. Ключ ротируется в кабинете, оплата в рублях, сценария «биллинг отклонил карту и генерация встала» здесь нет.