Большинство ИИ-платформ прикручивают генерацию медиа задним числом. Отдельная вкладка, отдельный API-ключ, модель биллинга, не имеющая ничего общего с вашим балансом чата. ToRun занимает иную позицию: генерация изображений, видео и музыки — это режимы, такая же полноценная продуктовая поверхность, как Чат или Код, — и они проходят ровно ту же маршрутизацию по возможностям и тот же биллинговый конвейер, что и любой другой вызов.
Этот материал объясняет механику и почему она важна.
Как конвейер маршрутизации обходится с медиа
Каждый запрос в ToRun начинается с режима: Чат, Изображение, Видео, Музыка, Исследование и так далее. Каждый режим объявляет требуемые возможности. Генерация изображений требует возможности image-gen. Видео требует video-gen. Синтез музыки и аудио требует audio-out. Запрос, соединяющий чат с выводом изображения — например, набросок концепции рядом с объяснением, — требует text и image-gen одновременно.
Конвейер маршрутизации берёт этот набор возможностей, фильтрует каталог моделей до поставщиков, удовлетворяющих всем, а затем ранжирует кандидатов по цене и качеству. Выбранная модель нигде в вашем процессе не зашита; если поставщик недоступен или медлит, цепочка резерва автоматически выбирает следующую пригодную модель. Вы не пишете код под конкретного поставщика. Вы не ведёте отдельные API-ключи по модальностям (если только не хотите — через BYOK).
Особенно это важно, когда вы соединяете модальности. Узел процесса может попросить текстовую модель написать описание сцены, передать этот вывод модели генерации изображений, а затем передать адрес изображения модели расширения видео — всё в одном DAG, всё списано на тот же журнал.
Единицы тарификации, которые действительно соответствуют тому, что берут поставщики
Биллинг медиа исторически был непрозрачным, потому что единицы не отображаются на токены. ToRun использует двенадцать канонических единиц тарификации, чтобы точно покрыть каждую модальность:
- За изображение — для диффузионных моделей и моделей «текст в изображение»; цена схватывает генерацию, а не пиксели.
- За секунду аудио — для синтеза речи, произносимого вывода и генерации музыки.
- За секунду видео — для моделей генерации видео; длительность и вариант разрешения указаны в тарифной строке.
- За символ синтеза речи — для голосовых API, взимающих плату посимвольно.
Наряду с ними обычные токенные единицы (за миллион входных токенов, выходных токенов и токенов из кеша входа) покрывают текстовые модели, участвующие в медийном конвейере.
Каждый вызов пишет ровно одну биллинговую запись. Эта запись замораживает цену на момент выполнения: единицу тарификации, ставку за единицу, потреблённое количество, сумму в долларах после маржи ToRun и снимок валютного курса, если валюта вашего счёта не доллар. Если поставщик изменит тарифы завтра, ваш сегодняшний счёт останется полностью пересчитываемым из журнала. Вы можете выгрузить сырые ставки и проверить каждый цент офлайн.
Сочетание генерации медиа с чатом и процессами
Больше всего эта архитектура окупается в рабочих процессах.
Узел процесса — это просто шаг, объявляющий, что ему нужно: модель с определёнными возможностями, схема входа и схема выхода. Музыкальный узел может принять текстовый промпт и длительность и вернуть адрес CDN Bunny для сгенерированного аудио. Узел изображения принимает промпт, соотношение сторон и подсказку стиля и возвращает адрес изображения. Эти узлы сочетаются как любой другой шаг.
Вы можете построить один процесс, который:
- Принимает продуктовый бриф на вход.
- Вызывает текстовую модель, чтобы сгенерировать пять вариантов слогана.
- Вызывает модель изображений, чтобы отрисовать по одному главному визуалу на вариант.
- Вызывает голосовую модель, чтобы озвучить выбранный слоган.
- Возвращает структурированный артефакт с текстом, адресами изображений и аудио.
Биллинг всего этого прогона распределяется по пяти записям — по одной на вызов модели — и все они привязаны к одному идентификатору выполнения процесса. Вы видите разбивку стоимости по шагам. Исполнители по умолчанию берут модели качественного уровня, потому что результат важен; вы можете переопределить это на узле.
Та же логика действует в чате. Если ваш разговор запускает вызов генерации изображения — потому что вы попросили напрямую или потому что это инициировал присоединённый процесс, — этот вызов проходит конвейер маршрутизации и появляется строкой в вашем обзоре стоимости сессии. Ничто не прячется в плоском тарифе. Ничто не бывает сперва бесплатным, а потом платным.
Что работает сейчас
Генерация изображений, видео и музыки/аудио доступна в Фазе 1. Она идёт по тому же каталогу поставщиков, что и текст, списывается на тот же журнал и сочетается в том же конструкторе процессов. Какие модели доступны конкретно, зависит от того, какие поставщики в данный момент в каталоге и какие возможности они объявляют, — слой маршрутизации отражает это в реальном времени.
Цены — на /pricing. Поддержка BYOK есть, если вы хотите направлять медийные вызовы через собственный счёт у поставщика с пониженными комиссиями платформы.