Руководство
API Runway для генерации видео из текста: руководство разработчика по вызову Gen-4.5 через hiapi
Описание параметров, написание кинематографичных промптов и рабочий пример запроса к эндпоинту runway-gen-4.5/text-to-video
Зачем использовать управляемый эндпоинт генерации видео из текста
Генерация видео из текста не заменяет процесс генерации или редактирования изображений — это другая базовая возможность. Модель изображений даёт вам статичный кадр, который можно обрезать, отредактировать или скомпоновать. Вызов генерации видео из текста даёт вам движение: движение камеры, действие субъекта и меняющийся со временем свет. Если вашему продукту нужен видеоклип — короткий рекламный кадр, фоновый цикл внутри приложения, превью сцены — один вызов «от запроса до клипа» часто является самым быстрым путём от идеи до материала.
Цена этого — контроль. Вы описываете движение словами, а не задаёте его ключевыми кадрами, поэтому модель должна интерпретировать его сама. Это делает качество промпта ещё важнее, чем в задачах с изображениями, а цикл итераций — важнее, чем одна попытка.
Управляемый эндпоинт, предоставляемый через hiapi, избавляет от инфраструктурной работы вокруг этой базовой возможности: вы получаете единообразный интерфейс, единую модель учётных данных и унифицированную структуру ответа для всех вызываемых вами видеомоделей. Вы тратите время на промпты и интеграцию в продукт, а не на конвейеры хранения, опрос задач и SDK разных поставщиков.
Подходящие сценарии:
- Короткие клипы, генерируемые по требованию на основе пользовательского ввода или шаблонов
- Быстрое исследование концепций перед вложением в полный производственный конвейер
- Фоновые материалы и B-roll, которые остаются пригодными, даже если конкретная генерация немного несовершенна
Неподходящие сценарии: любая задача, требующая покадровой точной непрерывности, детерминированного вывода или повествовательной связности на длинных отрезках. Заложите в бюджет несколько кандидатных клипов на каждый пригодный результат.
Структура эндпоинта runway-gen-4.5/text-to-video
Концептуально запрос к runway-gen-4.5/text-to-video состоит из трёх частей: промпта, настроек уровня запроса и вашей идентификации/авторизации. Только первая часть творческая; две другие определяют, как работает модель и как происходит оплата.
Что вы отправляете
- Строка промпта. Основной творческий ввод — описание субъекта, действия, камеры, освещения и атмосферы на естественном языке.
- Настройки уровня запроса. Соотношение сторон, длительность и любые флаги генерации, которые предоставляет эндпоинт. Они определяют форму контейнера вывода, а не его содержимое.
- Заголовок аутентификации. Ваш ключ hiapi, передаваемый при каждом вызове. Считайте его секретом; никогда не публикуйте его в клиентском коде.
Что вы получаете
Генерация видео не происходит мгновенно, поэтому в зависимости от способа вызова эндпоинта вы можете получить дескриптор задачи, который нужно опрашивать, или ответ, разрешающийся в URL медиафайла. В любом случае вы получаете ссылку на сгенерированный клип, а не встроенные исходные байты. Если вам нужно использовать материал после истечения срока действия возвращённого URL, скачайте его и сохраните в собственное хранилище.
Полезная мысленная модель: эндпоинт — это функция, отображающая (prompt, settings) в клип плюс метаданные. Ваша интеграция должна рассматривать его как асинхронный, допускающий повторные попытки и недетерминированный — одинаковые входные данные не всегда дают одинаковые клипы, и это ожидаемое поведение, а не дефект.
Держите формирование запроса простым и скучным. Напишите небольшую внутреннюю обёртку, которая собирает тело запроса, добавляет аутентификацию, отправляет вызов и нормализует ответ до { status, videoUrl, error }. Все последующие разделы руководства предполагают, что эта обёртка уже существует.
Написание кинематографичных промптов, работающих в движении
Расплывчатые прилагательные разрушаются в движении. «A beautiful cinematic shot of a city» не даёт модели ничего анимируемого, и она выдаёт что-то общее и дрейфующее. Решение — явно указать четыре элемента, необходимые оператору: субъект, камера, свет и движение.
Называйте субъект и действие
Укажите, что находится в кадре и что оно делает на протяжении клипа. Дайте начальную точку и подразумеваемую конечную, чтобы у модели была траектория движения.
A lone cyclist rides from left to right along a wet coastal road,
pedaling steadily as spray kicks up from the rear wheel.
Явно задавайте камеру
Используйте язык операторской работы, который модель может отобразить в движение: медленный наезд, статичный широкий план, ручная камера слежения, нижний ракурс с трекингом, медленная панорама вправо, снижение с воздуха. Одно движение камеры на клип надёжнее, чем три конфликтующих.
Static wide shot, camera at ground level, no zoom.
Задавайте свет и время
Свет определяет большую часть воспринимаемого уровня производства. Укажите источник и характер: рассеянный дневной свет в пасмурную погоду, резкий послеполуденный солнечный свет слева от камеры, практический неон в мокрых отражениях ночью.
Описывайте физически правдоподобное движение
Быстрое движение в коротких клипах размывается. Предпочитайте одно читаемое действие средней скорости множеству быстрых событий. Если вам нужно напряжение, добивайтесь его движением камеры и светом, а не десятком одновременных событий.
Держитесь одного абзаца
Плотный абзац из одного-трёх предложений лучше, чем маркированный список спецификаций. Пишите его как описание кадра, а не как список пожеланий. Избегайте нагромождения стилистических прилагательных; выберите один образ и придерживайтесь его.
Надёжный шаблон:
[Subject + action]. [Camera framing and movement]. [Lighting and time of day]. [Environment and atmosphere].
Прежде чем менять какие-либо настройки, перепишите свой промпт в этот шаблон.
Рабочий запрос по шагам
Это пошаговое руководство предполагает Node.js и функцию-обёртку, но структура не зависит от конкретного языка.
Шаг 1: напишите кадр
A chef slices vegetables on a wooden board in a small kitchen,
hands moving steadily. Static medium close-up, camera at counter height,
no zoom. Warm tungsten light from an overhead lamp, soft shadows,
light steam in the background.
Шаг 2: выберите настройки запроса
Выберите соотношение сторон, соответствующее тому, где клип в конечном итоге будет использоваться, и минимальную длительность, достаточную для рассказа истории. Короткие клипы быстрее терпят неудачу и дешевле для исследования.
Шаг 3: отправьте вызов
const res = await fetch(`${HIAPI_BASE}/runway-gen-4.5/text-to-video`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.HIAPI_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
prompt: shotPrompt,
aspect_ratio: '16:9',
duration: 5,
}),
});
const data = await res.json();
if (!res.ok) throw new Error(data.error ?? `HTTP ${res.status}`);
Шаг 4: получите клип
Если ответ содержит дескриптор задачи, опрашивайте его с небольшими интервалами с задержкой до достижения конечного состояния. Если он напрямую содержит URL медиафайла, переходите к шагу 5.
Шаг 5: сохраните материал
Скачайте клип и сохраните его под собственным ключом. Относитесь к возвращённому URL как к временному адресу.
Шаг 6: фиксируйте точки принятия решений
Записывайте промпт, настройки и сгенерированный материал вместе. Именно этот журнал делает следующий раздел — тонкую настройку — выполнимым, а не основанным на догадках.
Настройка вывода без изменения промпта
Когда клип разочаровывает, инстинктивная реакция — переписать промпт. Сначала сдержитесь на один цикл. Промпт и настройки — независимые переменные, и изменение обоих одновременно лишает вас возможности определить, какой из них был ключевым.
Изолируйте переменные
Держите промпт фиксированным и измените ровно одну настройку уровня запроса — соотношение сторон, длительность или какой-либо флаг генерации. Запустите снова. Если клип улучшился, проблема была на структурном уровне, а не на творческом. Если не улучшился, откатите эту настройку и вместо этого измените промпт.
Решайте структурные проблемы настройками
- Композиция не соответствует размещению? Измените соотношение сторон.
- Действие обрывается до завершения? Увеличьте длительность.
- Всё дрейфует без опоры? Сократите клип, чтобы у него было меньше времени на дрейф.
Решайте содержательные проблемы правкой промпта
- Субъект неверный или отсутствует? Назовите его раньше и сделайте конкретным.
- Камера блуждает? Удалите все слова о камере, кроме одного желаемого движения.
- Плоско и безжизненно? Добавьте источник света и направление.
Сделайте небольшой A/B-тест
Зафиксируйте исходный промпт, сгенерируйте три варианта, каждый с изменением только одного предложения. Сравнивайте их рядом, а не по памяти. Недетерминированность означает, что один плохой клип не является доказательством; прежде чем признать какое-то предложение вредным, ищите закономерность на двух-трёх запусках.
Записывайте выводы в журнал, который вы уже ведёте. После дюжины итераций он превратится в руководство по промптам и настройкам, специфичное для вашего продукта, и будет гораздо ценнее любого универсального списка промптов.
Отладка типичных сбоев
Большинство сбоев первой недели сводятся к четырём категориям. Путь диагностики для каждой из них различается.
Запрос отклонён или заблокирован
Ответ с кодом не 2xx и информацией о политике означает, что промпт или настройки не были приняты. Читайте тело ответа с ошибкой, а не повторяйте вслепую. Перепишите проблемное описание, удалите именованных реальных людей или бренды и отправьте снова. Записывайте отклонённые промпты дословно — повторяющиеся отказы обычно прослеживаются до привычки в шаблоне промпта.
Тайм-ауты
Генерация видео идёт медленно. Если ваш HTTP-клиент истекает по тайм-ауту до ответа эндпоинта, задача может всё ещё выполняться и тарифицироваться. Увеличьте тайм-аут клиента для вызовов генерации и перенесите опрос в фоновый рабочий процесс, а не держите запрос зависшим.
Пустые или непригодные клипы
Успешный ответ, но без узнаваемого субъекта в клипе обычно означает, что промпт слишком абстрактен. Перечитайте его по шаблону субъект-камера-свет-движение. Если одного из четырёх элементов не хватает, это и есть точка исправления.
Ошибки аутентификации и конфигурации
401 и 403 означают проблему с ключом, а не с промптом. Убедитесь, что ключ присутствует в среде выполнения, а не только в вашей локальной оболочке, и проверьте формат заголовка. Чем раньше обнаружить такие сбои, тем дешевле они обходятся; в производстве они обходятся дороже всего.
Общее правило: классифицируйте ошибку, прежде чем что-либо менять. Ошибки промпта, ошибки настроек и инфраструктурные ошибки требуют разных способов исправления, а их смешение тратит бюджет генерации.
Стоимость, задержка и производственные защитные меры
Перед запуском в производство решите, как эндпоинт должен вести себя при сбоях, потому что генерация видео — самый дорогой и медленный вызов в большинстве продуктов.
Бюджетируйте по клипам, а не по вызовам
Оплата видео обычно привязана к длине вывода, поэтому длинные клипы дороже коротких. Бюджетируйте в единицах готовых клипов — включая повторные попытки и отклонённые кандидаты — а не подсчитывайте вызовы API. Актуальные тарифы смотрите на панели цен; не зашивайте их в бизнес-логику.
Проектируйте с учётом задержки
Никогда не блокируйте пользовательский запрос на генерации. Запускайте задачу, немедленно возвращайте дескриптор и доставляйте клип через опрос, webhook или уведомление. Показывайте прогресс в UI, чтобы медленный рендеринг читался как выполняющаяся работа, а не как зависание. Кешируйте сгенерированные клипы по промпту и настройкам, чтобы избегать повторных запросов на повторную генерацию.
Валидируйте перед генерацией
Дешёвые проверки перед вызовом экономят дорогую обработку после него:
- Обеспечьте в вашей обёртке минимальную и максимальную длину промпта
- Отклоняйте промпты, в которых отсутствует субъект или действие
- Проверяйте соотношение сторон на соответствие цели рендеринга
- Убеждайтесь, что пользователь находится в пределах своей квоты
Модерируйте на входе и на выходе
Проверяйте текст промпта перед отправкой. Проводите лёгкую проверку возвращённого клипа перед показом. И то, и другое дешевле, чем один инцидент поддержки.
Оставляйте запасной вариант
Если генерация завершается сбоем или занимает слишком много времени, показывайте статичный кадр-обложку или заполняющий клип, а не ошибку. Функциональность должна деградировать, а не прерываться.
Начните с одного эндпоинта, одной обёртки и одного журнала; добавляйте защитные меры по мере того, как узнаёте, где ваш продукт фактически терпит неудачу, и пусть панель цен всегда остаётся единственным источником истины о стоимости.
Похожие статьи
Все статьи →-
Руководство
Как вызвать hailuo-2.3-fast/image-to-video через HiAPI API: практика с curl и Python
Первый рабочий запрос к быстрому и недорогому уровню генерации видео по изображению — от ID модели до загрузки MP4
-
Руководство
Как вызывать hailuo-2.3/text-to-video через API HiAPI: curl, Python и рабочие примеры запросов
-
Руководство
Использование Kandinsky 6.0 Pro для преобразования текста в видео на HiAPI: руководство по curl и Python
Практическая демонстрация с упором на запросы: построение вызова от промпта до видеоклипа, отправка запроса, опрос статуса завершения и скачивание результата