Руководство по использованию
Создание коротких видео с помощью API преобразования текста в видео happyhorse-1.1: сквозной рабочий процесс
Короткие видео — это игра в количества. TikTok, Reels и Shorts вознаграждают аккаунты, которые публикуются ежедневно, а главным узким местом производства обычно становится B-roll: те 3–8-секундные вертикальные клипы, которые несут в себе хук, демонстрацию продукта или завораживающий цикл. HappyHorse 1.1 преобразование текста в видео особенно хорошо подходит для этого сценария, потому что он генерирует нативный звук в том же вызове — без отдельного саундтрека или фоли — и напрямую поддерживает вертикальный вывод 9:16, поэтому в постобработке не нужно обрезать кадр.
Это руководство представляет собой сквозной рабочий процесс: шаблоны промптов, оптимизированные для коротких видео, жизненный цикл асинхронной задачи, скрипт массового производства, который за один запуск рендерит видео на неделю, и расчёт затрат по платформам. Каждый встроенный ниже клип сгенерирован с помощью точно такого же запроса, как показано рядом — со включённым звуком, напрямую из API.
Предварительные условия. Вам нужен ключ hiapi (
Authorization: Bearer sk-…). Если вы раньше не вызывали/v1/tasks, сначала ознакомьтесь с документацией Создание асинхронного API или с учебным пособием по happyhorse-1.1 curl + Python — эта статья основана на том пособии и сосредоточена на рабочем процессе для коротких видео.
Почему эта модель подходит для коротких видео
Для этого формата важны три особенности:
- Нативный звук. Эмбиент, фоли и разовые звуковые эффекты генерируются вместе с видео. Для контента «необъяснимо успокаивающего» и B-roll звук и есть контент — клипы с реальным звуком заметно превосходят беззвучные AI-фрагменты, которые авторы заполняют стоковой музыкой.
- 9:16 как полноценный формат.
aspect_ratioпринимает9:16(а также16:9,1:1,4:5,21:9,9:21и другие), поэтому вы можете рендерить вертикальное видео нативно, а не обрезать горизонтальный мастер и терять композицию. - Диапазон 3–15 секунд.
durationпринимает любое целое число от 3 до 15 — именно интервал коротких видео. Хук — 3 секунды, демонстрация продукта — 4–6 секунд, полная мини-история помещается в 12–15 секунд.
Схема входных данных намеренно компактна. Обязателен только prompt; полезные параметры:
| Поле | Значение | Значение по умолчанию для коротких видео |
|---|---|---|
prompt |
строка (обязательно) | см. шаблоны ниже |
aspect_ratio |
16:9, 9:16, 3:4, 4:3, 4:5, 5:4, 1:1, 9:21, 21:9 |
9:16 |
resolution |
720p, 1080p |
720p для черновиков, 1080p для основных публикаций |
duration |
целое число 3–15 (секунды) | 3–5 |
Две вещи он не принимает, чтобы вы не потратили запрос на их обнаружение: нет переключателя audio (звук всегда включён) и нет seed. Отправка любого из них вернёт ошибку валидации 400.
Три реальных клипа, три типа коротких видео
Это три формата, доминирующие в лентах коротких видео, и каждый сгенерирован одним вызовом API. Промпты следуют повторяющемуся шаблону, который вы можете адаптировать: тег формата → субъект и действие → композиция → освещение → аудиоподсказка.
1. Лайфстайл B-roll (кофейная классика)
{
"model": "happyhorse-1.1/text-to-video",
"input": {
"prompt": "Тест вертикального короткого видео: бариста создаёт латте-арт в светлой кофейне, вертикальная композиция в стиле смартфона, естественный звук вспенивания молока и разговоров в кофейне.",
"duration": 4,
"resolution": "720p",
"aspect_ratio": "9:16"
}
}
Обратите внимание на аудиоподсказку в конце промпта («вспенивание молока и разговоры в кофейне»). Явное указание желаемых звуков — самый эффективный приём при работе с этой моделью: без подсказки она всё равно генерирует звук, но описание даёт пригодную эмбиент-дорожку.
2. Тизер запуска продукта
{
"model": "happyhorse-1.1/text-to-video",
"input": {
"prompt": "Тизер запуска продукта, вертикальный 9:16: массивный винтажный кроссовок кремового и жжёно-оранжевого цвета медленно вращается на матово-чёрном поворотном столе, жёсткий контурный свет очерчивает его силуэт, мельчайшие пылинки плывут в световом луче, тёмный студийный фон, обильное пустое пространство сверху для наложения заголовка. Мощно, кинематографично. Нативный звук: низкий гул баса и мягкий свист, когда кроссовок завершает оборот.",
"duration": 3,
"resolution": "720p",
"aspect_ratio": "9:16"
}
}
Здесь два приёма, характерных для коротких видео. Во-первых, «обильное пустое пространство сверху для наложения заголовка» — вы добавите текст поверх этого клипа в редакторе, поэтому попросите модель оставить негативное пространство, а не заставляйте субтитры бороться за кадр. Во-вторых, звук спроектирован, а не является эмбиентом: низкий гул баса плюс свист, синхронизированный с ритмом действия, — именно то, что используют трейлеры продуктов.
3. Необъяснимо успокаивающий макроцикл
{
"model": "happyhorse-1.1/text-to-video",
"input": {
"prompt": "Необъяснимо успокаивающее макро, вертикальный 9:16: острый шпатель чисто разрезает блок бледно-мятного кинетического песка на белом столе, срез рассыпается в замедленной съёмке, гранулы сыплются вниз, мягкий ровный студийный свет, экстремально крупный план заполняет кадр. Нативный звук: сухой хруст гранул при разрезании, без музыки.",
"duration": 3,
"resolution": "720p",
"aspect_ratio": "9:16"
}
}
«Без музыки» важно: для ASMR-подобного контента модель должна потратить свой звуковой бюджет на фоли (хруст гранул), и явное указание предотвращает добавление универсального саундтрека.
Шаблоны промптов для коротких видео
Извлечено из приведённых клипов и лежащих в их основе запусков:
- Начинайте с формата. Начинайте с «вертикальное короткое видео», «тизер запуска продукта, вертикальный 9:16», «необъяснимо успокаивающее макро». Модель компонует кадр под указанный вами формат — композиция в стиле смартфона выглядит иначе, чем широкоэкранный кинематографический кадр.
- Один субъект, одно действие. 3–5 секунд — это один такт. «Бариста создаёт латте-арт» работает; история в трёх актах за 4 секунды даст вам только кашу. Если нужно несколько тактов, сгенерируйте несколько клипов и смонтируйте их вместе — именно так и монтируются настоящие короткие видео.
- Прописывайте звук одним предложением. Каждый промпт заканчивается на
нативный звук: <1–3 желаемых звука>. Фоновый шум («разговоры в кофейне»), фоли («сухой хруст гранул») или спроектированные разовые эффекты («низкий гул баса и мягкий свист») — всё работает. - Оставляйте место для наложений. Если клип будет нести субтитры или заголовок, попросите «пустое пространство сверху» или «чистое негативное пространство в верхней трети». Это дешевле, чем перекомпоновывать в постобработке.
- Заканчивайте зацикленным состоянием. Ленты зацикливаются автоматически. Промпты, которые заканчиваются там, где начались («кроссовок завершает оборот»), зацикливаются чисто и незаметно накапливают повторные просмотры.
Асинхронный рабочий процесс: отправка, опрос, скачивание
Каждая генерация — это асинхронная задача: POST /v1/tasks немедленно возвращает taskId, вы опрашиваете GET /v1/tasks/:id, пока status не станет success, затем скачиваете output[0].url. 4-секундный клип 720p обычно рендерится примерно за 1–3 минуты.
curl -s -X POST https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "happyhorse-1.1/text-to-video",
"input": {
"prompt": "Тест вертикального короткого видео: бариста создаёт латте-арт в светлой кофейне, вертикальная композиция в стиле смартфона, естественный звук вспенивания молока и разговоров в кофейне.",
"duration": 4,
"resolution": "720p",
"aspect_ratio": "9:16"
}
}'
# → {"code":200,"data":{"taskId":"tk-hiapi-…"},"message":"success"}
Одно практическое правило, на котором легко обжечься: URL-адреса вывода истекают. output[0].url в ответе содержит expireAt — сразу после успешного завершения задачи скачайте mp4 и поместите его в собственное хранилище. Не вставляйте горячие ссылки в CMS или инструмент планирования.
Массовое производство: неделя клипов за один запуск
Task API раскрывается во всей красе, когда вы отправляете задачи параллельно. Поскольку создание возвращается немедленно, правильный режим пакетной обработки — сначала отправить все задачи, затем опросить все задачи: пять клипов рендерятся примерно за реальное время одного клипа.
import os, time, requests
API = "https://api.hiapi.ai/v1/tasks"
HEADERS = {"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"}
BATCH = [
("mon-coffee", "Вертикальное короткое видео: пуровер-кофе расцветает в замедленной съёмке, пар клубится, тёплый утренний свет. Нативный звук: звук льющейся воды, мягкий эмбиент кофейни.", 4),
("tue-sneaker", "Тизер запуска продукта, вертикальный 9:16: неоновый кроссовок врезается в мелкую воду, брызги застывают в воздухе, тёмный фон. Нативный звук: один глубокий всплеск.", 3),
("wed-sand", "Необъяснимо успокаивающее макро, вертикальный 9:16: блок лавандового кинетического песка разрезается тонкой нитью, срез рассыпается. Нативный звук: сухой хруст гранул, без музыки.", 3),
("thu-city", "Вертикальное короткое видео: дождливая неоновая улица ночью, проходят зонты, отражения колышутся. Нативный звук: шум дождя и дальний поток машин.", 5),
("fri-dessert", "Вертикальное короткое видео макро: ложка разбивает карамельную корочку крем-брюле, заварной крем под ней поддаётся. Нативный звук: чёткий хруст, затем тишина.", 3),
]
def submit(prompt, duration):
r = requests.post(API, headers=HEADERS, json={
"model": "happyhorse-1.1/text-to-video",
"input": {"prompt": prompt, "duration": duration,
"resolution": "720p", "aspect_ratio": "9:16"},
}, timeout=60)
return r.json()["data"]["taskId"]
# 1) сначала отправляем все задачи
tasks = {key: submit(p, d) for key, p, d in BATCH}
# 2) опрашиваем до конечного состояния всех задач
while tasks:
time.sleep(10)
for key, tid in list(tasks.items()):
t = requests.get(f"{API}/{tid}", headers=HEADERS, timeout=30).json()["data"]
if t["status"] == "success":
url = t["output"][0]["url"] # истекает — скачивайте немедленно
open(f"{key}.mp4", "wb").write(requests.get(url, timeout=180).content)
print(f"done: {key}.mp4")
del tasks[key]
elif t["status"] == "fail":
print(f"FAILED {key}: {t.get('error')}")
del tasks[key]
Производственные заметки при запуске такого скрипта в больших масштабах:
- При сбое отправляйте заново, а не опрашивайте повторно. Неудачная задача находится в конечном состоянии; отправьте новую задачу с теми же входными данными (если она дважды не удалась по причине контента, иногда перефразируйте промпт).
- Ведите манифест. В любой момент записывайте
{key, prompt, taskId, local_path}в JSON-файл и при перезапуске пропускайте ключи, для которых mp4 уже существует. Пакетные задания прерываются; при заблаговременном планировании восстанавливаемость достаётся бесплатно. - Следите за ограничениями параллелизма. Если вы отправляете десятки задач, делайте интервал между отправками в одну-две секунды, а не отправляйте 50 штук в один момент.
Сколько это стоит
Биллинг рассчитывается по секундам выходного видео (страница цен): $0.16/секунда для 720p, $0.21/секунда для 1080p, независимо от соотношения сторон. Длительность — единственный рычаг затрат, что делает короткие видео самым дешёвым местом для использования этой модели:
| Клип | Спецификация | Стоимость |
|---|---|---|
| Хук / успокаивающий цикл | 3 сек · 720p | $0.48 |
| Стандартный такт B-roll | 4 сек · 720p | $0.64 |
| Тизер продукта | 5 сек · 720p | $0.80 |
| Основная публикация | 5 сек · 1080p | $1.05 |
| Ежедневные публикации, 30 × 4 сек черновиков в месяц | 720p | ~$19.20 |
Практичный двухуровневый процесс: итерируйте промпты на 3 сек/720p (около половины доллара за попытку) и перерендеривайте только победителей в 1080p для публикации. Промпты чисто переносятся между разрешениями, так что вы не переделываете творческую работу — вы просто платите за пиксели только после того, как убедились, что клип того стоит.
От вывода API до опубликованного поста
Модель отдаёт вам готовый вертикальный клип со звуком; остальное — упаковка:
- Длительность по платформам: клипы 3–5 секунд отлично работают как циклы в TikTok и Reels; для Shorts склейка двух-трёх тактов в 10–15 секунд часто удерживает зрителей дольше.
durationдо 15 секунд охватывает полную мини-историю за один вызов, если вы не хотите монтировать. - Текстовые наложения: добавляйте субтитры в редакторе (CapCut, Premiere, ffmpeg drawtext). Вот почему важен приём с промптом «оставьте пустое пространство».
- Сохраняйте нативный звук в качестве базового слоя, даже если добавляете музыку — реальное фоли под музыкальной подложкой передаёт больше производственной ценности, чем одна только музыка.
- Последовательные серии: короткие видео вознаграждают повторение формата. Зафиксируйте каркас промпта (композиция, освещение, стиль звука) и меняйте только субъект — три шаблона типов выше спроектированы именно для повторного использования.
Если в центре вашей серии находятся брендовые активы — реальные фото продуктов, маскоты, лица, — используйте этот рабочий процесс вместе с happyhorse-1.1 преобразование изображения в видео: создайте или снимите ключевой кадр один раз, а затем задавайте движение от него, чтобы субъект оставался одинаковым в каждом посте.
Начните рендерить
Самый быстрый путь: получите ключ, скопируйте запрос с бариста с этой страницы, и через несколько минут у вас будет первый вертикальный клип со звуком. Страница модели happyhorse-1.1 преобразование текста в видео содержит актуальный справочник параметров и цены, а Быстрый старт охватывает аутентификацию, если вы вызываете hiapi впервые. Отрендерьте три черновика, оставьте лучший — и вы получите завтрашний пост дешевле чашки кофе.
Похожие статьи
Все статьи →-
Руководство по использованию
Руководство по началу работы с seedream-5.0-pro/image-to-image: возможности, цены и ключевые моменты интеграции
Границы возможностей модели редактирования изображений ByteDance, принципы тарификации и практика инженерной интеграции
-
Руководство по использованию
Руководство по использованию seedream-5.0-pro text-to-image: границы возможностей, интеграция API и контроль затрат
Практический взгляд для разработчиков: от ключевых параметров до оценки стоимости $0.05 за изображение
-
Руководство по использованию
Руководство по началу работы с Hailuo 2.3 Fast для генерации видео из изображений: границы возможностей, цены и практика интеграции
Ключевые моменты выбора и интеграции модели MiniMax для генерации видео из изображений для разработчиков