models

Alibaba: HappyHorse 1.0

Markdown · JSON

Alibaba: HappyHorse 1.0

Alibaba HappyHorse 1.0 создаёт короткие видео со звуком по тексту, первому изображению или набору до девяти референсных изображений. Режимы генерации выдают MP4 длительностью 3–15 секунд с частотой 24 кадра/с в 720p или 1080p. Отдельный профиль видеоредактирования 1.0 изменяет предоставленный материал, допускает дополнительные визуальные референсы и имеет собственные ограничения.

О модели

Описание раскрывает возможности модели. Доступные в Ailoot входные данные, результаты и параметры выбранного метода перечислены ниже.

Alibaba HappyHorse 1.0 — версия для создания видео с отдельными профилями генерации по тексту, по первому кадру и по референсам. Разработчик выделяет физически убедительное движение, понимание смысла и синхронизацию изображения со звуком. Референсный профиль использует до девяти изображений, чтобы направлять работу с объектами и сценами. Практический результат — короткий ролик со звуком: новая сцена, анимация подготовленного начального изображения или кадр с персонажем либо товаром, созданный по референсам.

Для сцены по тексту задайте объект, обстановку, действие, камеру и желаемый звук. Например, в настольной сцене небольшая модель парусника движется по неглубокому поддону с водой, а камера следует за ней на высоте стола. При проверке можно оценить форму лодки, масштаб сцены, движение воды и связь движения со звуком. Одно чёткое действие оценить проще, чем насыщенную последовательность, в которой не обозначен главный момент.

Для генерации по первому кадру используйте изображение, объект и композиция которого уже соответствуют желаемому началу. Опишите последующее движение и траекторию камеры. Конкретный профиль изображений версии 1.0 принимает текст и изображение, а в таблице режимов разработчика он обозначен как генерация видео по первому кадру. Подготовьте кадрирование и видимые детали товара или персонажа до генерации. Проверяйте, остаются ли эти детали узнаваемыми в движении, а не оценивайте только начальный кадр.

Генерация по референсам объединяет людей, товары, стиль или обстановку из визуальных источников в новую описанную сцену. Страница конкретной референсной модели 1.0 указывает поддержку до девяти изображений. Назначьте каждому роль в задании и опишите поведение объекта в сцене. Для демонстрации товара можно отдельно указать референс самого предмета, окружающей локации и визуального стиля. Заявленная разработчиком стабильность — ориентир для проверки: сопоставляйте объект, маркировку и расположение с исходными референсами на протяжении всего ролика.

В семействе 1.0 также есть отдельный профиль видеоредактирования для смены стиля, локальных или более широких изменений существующего материала. Он принимает ровно одно исходное видео и от нуля до пяти референсных изображений, в отличие от генерации по набору из девяти изображений. Укажите, что нужно изменить и что сохранить: например, заменить одежду, оставив человека, движение и фон. Результат редактирования нужно сравнивать со всем исходным роликом, а не только с кадром, где видна нужная замена.

Руководство по редактированию именно версии 1.0 принимает исходные видео MP4 или MOV, рекомендует H.264 и допускает длительность от трёх до шестидесяти секунд. Указаны максимальный размер 100 МБ, короткая сторона не менее 360 пикселей, длинная сторона не более 4 096 пикселей, пропорции от 1:2.5 до 2.5:1 и исходная частота от восьми до шестидесяти кадров/с. Отредактированное видео ограничено длительностью от трёх до пятнадцати секунд: исходники до пятнадцати секунд сохраняют длительность, а у более длинных используются только первые пятнадцать секунд. Если важное действие находится дальше, обрежьте нужный фрагмент до подготовки редактирования.

Необязательные референсные изображения профиля редактирования имеют отдельный предел 20 МБ и должны быть в формате JPEG/JPG, PNG или WEBP; обе стороны — не менее 300 пикселей, диапазон пропорций тот же. Руководство также различает автоматическую обработку звука и сохранение исходной аудиодорожки. Подготовьте референс, определяющий нужное изменение, и выберите, как с ним должен соотноситься исходный звук. Эти настройки относятся именно к редактированию 1.0 и отделены от режимов создания новых сцен.

Для режимов генерации 1.0 точная таблица разработчика указывает 720p или 1080p, от трёх до пятнадцати секунд, MP4 с частотой 24 кадра/с и звук. Профиль редактирования тоже выдаёт 720p или 1080p в пределах пятнадцати секунд. Документированный процесс сначала возвращает идентификатор обработки, а после успеха — адрес готового видео; адреса результатов действуют двадцать четыре часа. Сохраняйте сам ролик, промпт и референсы при подготовке производственного монтажа и совместно проверяйте кадрирование, длительность и звук результата.

HappyHorse 1.1 добавляет генерацию в 480p и заявленные улучшения визуальных деталей, движения и согласованности между роликами. Эти заявления о более поздней версии не гарантируют такое же поведение конкретного профиля 1.0. Подготовка для 1.0 должна соответствовать выбранному режиму и фактическим исходным материалам. Проверяйте идентичность, взаимодействие при контакте, геометрию объектов, текст и звук, затем формулируйте конкретное следующее исправление. Для отредактированного ролика также проверяйте, что важные исходные детали вне области запрошенного изменения по-прежнему подходят задуманной сцене.

Ailoot Ultra · Видео POST /v1/videos alibaba/happyhorse-1.0

alibaba/happyhorse-1.0

Alibaba /alibaba/happyhorse-1.0

Начало

Alibaba HappyHorse 1.0 создаёт короткие видео со звуком по тексту, первому изображению или набору до девяти референсных изображений. Режимы генерации выдают MP4 длительностью 3–15 секунд с частотой 24 кадра/с в 720p или 1080p. Отдельный профиль видеоредактирования 1.0 изменяет предоставленный материал, допускает дополнительные визуальные референсы и имеет собственные ограничения.

Допустимые входные данные
Текст · Картинки
Результаты
Видео

Доступно в Ailoot · входные данные и методы

Ailoot Ultra · Видео POST /v1/videos
Входные данные
text, image
Результат
video
Выходной формат
Исходные байты MP4; без нормализации и перекодирования
ПолеТипТребованиеЗначения и ограниченияПо умолчанию
ПолеmodelТипstringТребованиеОбязательноЗначения и ограничения
alibaba/happyhorse-1.0
По умолчанию—
ПолеpromptТипstringТребованиеОбязательноЗначения и ограниченияПо умолчанию—
ПолеdurationТипintegerТребованиеОбязательноЗначения и ограничения
3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
Минимум: 1
Максимум: 600
По умолчанию—
ПолеresolutionТипstringТребованиеНеобязательноЗначения и ограничения
720p, 1080p
По умолчанию—
Полеaspect_ratioТипstringТребованиеНеобязательноЗначения и ограничения
16:9, 9:16, 1:1, 4:3, 3:4, 21:9, 9:21
По умолчанию—
Полеgenerate_audioТипbooleanТребованиеНеобязательноЗначения и ограничения
false
По умолчанию—
Полеframe_imagesТипarrayТребованиеНеобязательноЗначения и ограничения
Минимум элементов: 1
Максимум элементов: 1
Входное содержимое: Массив объектов кадров. Каждый объект содержит type=image_url, image_url с url и frame_type. Используйте HTTPS URL изображения и укажите first_frame в frame_type. Каждая роль кадра встречается не более одного раза.
Точные ключи: type, image_url, frame_type
Условия: Эти ключи описывают каждый объект кадра; image_url содержит только url. Не передавайте frame_images для запроса только с текстом.
По умолчанию—
Полеinput_referencesТипarrayТребованиеНеобязательноЗначения и ограниченияПо умолчанию—
ПолеsizeТипstringТребованиеНеобязательноЗначения и ограничения
1280x720, 720x1280, 720x720, 960x720, 720x960, 1680x720, 720x1680, 1920x1080, 1080x1920, 1080x1080, 1440x1080, 1080x1440, 2520x1080, 1080x2520
Шаблон: ^[1-9][0-9]*x[1-9][0-9]*$
По умолчанию—
ПолеseedТипintegerТребованиеНеобязательноЗначения и ограничения
Минимум: -9 223 372 036 854 775 808
Максимум: 9 223 372 036 854 775 807
По умолчанию—
Полеcallback_urlТипstringТребованиеНеобязательноЗначения и ограничения
Шаблон: ^https://
По умолчанию—
Полеsession_idТипstringТребованиеНеобязательноЗначения и ограниченияПо умолчанию—
ПолеtraceТипobjectТребованиеНеобязательноЗначения и ограниченияПо умолчанию—
ПолеuserТипstringТребованиеНеобязательноЗначения и ограниченияПо умолчанию—
Сочетания входных материалов

Из текста в видео · Текстовый запрос. · Обязательно: model, prompt, duration

Передайте prompt как текст, а duration — как целое число секунд. Выберите поддерживаемое разрешение; добавьте соотношение сторон или используйте размер из списка.

model: Тип: string · alibaba/happyhorse-1.0

prompt: Тип: string · Максимум байтов UTF-8: 10 000 · Нужен хотя бы один непробельный символ: Да

Из изображения в видео · Текстовый запрос и изображение первого кадра. · Обязательно: model, prompt, duration, frame_images

frame_images — массив. Каждый объект кадра содержит type, image_url и frame_type; image_url содержит url. Укажите image_url в type. Используйте first_frame. Каждая роль кадра встречается не более одного раза. Для каждого кадра укажите публичный HTTPS URL изображения. Выберите поддерживаемое разрешение; добавьте соотношение сторон или используйте размер из списка.

Точные ключи: type, image_url, frame_type

model: Тип: string · alibaba/happyhorse-1.0

prompt: Тип: string · Максимум байтов UTF-8: 10 000 · Нужен хотя бы один непробельный символ: Да

Reference to video · Текстовый запрос и поддерживаемые референсные изображения. · Обязательно: model, prompt, duration, input_references

input_references — массив объектов. Укажите image_url в type и используйте соответствующее поле с url. Используйте публичные HTTPS URL. Не передавайте frame_images, чтобы выбрать режим референсов. Выберите поддерживаемое разрешение; добавьте соотношение сторон или используйте размер из списка.

model: Тип: string · alibaba/happyhorse-1.0

prompt: Тип: string · Максимум байтов UTF-8: 10 000 · Нужен хотя бы один непробельный символ: Да

Параметры и жизненный цикл метода
ПараметрКонтракт
Параметрcontent_typeКонтрактapplication/json
ПараметрrequiredКонтрактmodel, prompt, duration
Параметрmaterial_typesКонтрактtext, image
Параметрadditional_propertiesКонтрактfalse
Параметрoptional_controlsКонтрактresolution, aspect_ratio, generate_audio, frame_images, input_references, size, seed, callback_url, session_id, trace, user

Жизненный цикл: submit_once_poll_original

GET /v1/videos/{public_id}

GET /v1/videos/{public_id}/content

Тарифы

Как рассчитывается итоговая плата

Отображаемые тарифы позволяют оценить стоимость до генерации. Итоговое списание рассчитывается по стоимости, записанной для исходной генерации. Измеренная длительность результата и прогнозные объёмы не являются итоговым оплачиваемым объёмом.

Тарифная справка не добавляет режимы запроса. Поддерживаемые параметры указаны для выбранного метода.

Быстрый режим
Не указано При выборе быстрого режима
Режим flex
Не указано При выборе режима flex
Максимальная интенсивность рассуждений
Не указано При максимальной интенсивности рассуждений с корректировкой по умолчанию (default)

Оценочные ставки для сравнения

Цены по конфигурациям

Сопоставьте каждую плату с указанными условиями. Для каждого набора альтернативных конфигураций используйте одну ставку.

КонфигурацияШкала ставокПрогноз количестваРасчётная единицаУсловия расчётаПлата
КонфигурацияБазовые тарифы на токеныШкала ставокБазовая ставкаПрогноз количества—Расчётная единица—Условия расчёта—Плата
Вход · Входные токены · Оценка только для сравнения — / 1K токенов
Выход · Выходные токены · Оценка только для сравнения — / 1K токенов
Вход · Чтение кэша · Оценка только для сравнения — / 1K токенов
Вход · Запись в кэш · Оценка только для сравнения — / 1K токенов
Вход · Запись в кэш, 1 час · Оценка только для сравнения — / 1K токенов
КонфигурацияЦена видеоШкала ставок—Прогноз количества—Расчётная единицаза секунду видеоУсловия расчётаresolution: 1080pПлата
Выход · Цена видео · Оценка только для сравнения $0.3388 за секунду видео
КонфигурацияЦена видеоШкала ставок—Прогноз количества—Расчётная единицаза секунду видеоУсловия расчётаresolution: 720pПлата
Выход · Цена видео · Оценка только для сравнения $0.1976 за секунду видео
КонфигурацияОриентировочная стоимость генерацииШкала ставок—Прогноз количестваОценка для одной генерацииРасчётная единица—Условия расчёта—Плата
Выход · Оценочная стоимость генерации · Оценка только для сравнения $0.5928 оценка до генерации

Эта оценка не является дополнительным списанием или фиксированным тарифом для завершённой генерации.

Ailoot резервирует расчётную сумму перед запросом. После получения результата списывает итоговую плату по измеренному расходу. Для окончательного списания за потоковый ответ используется итоговая запись расхода. Как работают резервирование и расчёт →

Сведения о справочном тарифе

Справочные шкалы модели не меняют выбор метода, расчёт стоимости или списания. Действующая плата определяется ставками выбранного метода Ailoot.

Ссылки на цены конфигураций видео

Цены по конфигурациям

Сопоставьте каждую плату с указанными условиями. Для каждого набора альтернативных конфигураций используйте одну ставку.

КонфигурацияУсловия расчётаПлата
КонфигурацияЦена видеоУсловия расчётаresolution: 720pПлата
Выход · Цена видео $0.1976 за секунду видео

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

КонфигурацияЦена видеоУсловия расчётаresolution: 1080pПлата
Выход · Цена видео $0.3388 за секунду видео

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

Примеры запросов

Ailoot Ultra · Видео

curl · создать видео
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
from pathlib import Path
Path('request.json').write_text('{"aspect_ratio":"16:9","duration":3,"model":"alibaba/happyhorse-1.0","prompt":"A serene mountain landscape at sunset","resolution":"720p"}', encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path('result.json').read_text())
print(json.dumps(r,ensure_ascii=False,indent=2))
print('Keep the complete JSON and response headers; do not resubmit an unknown creation.')
PY_RESULT

Получить и сохранить результаты

Ailoot Ultra · Видео

подписанные ссылки на содержимое, принадлежащее Ailoot

  • GET /v1/videos/{public_id}
  • GET /v1/videos/{public_id}/content
Проверить статус задачи
GET статус исходной операции
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_STATUS_URL'
import json
from pathlib import Path
from urllib.parse import quote
r=json.loads(Path('result.json').read_text())
if not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')
Path('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))
PY_STATUS_URL
curl --fail-with-body --silent --show-error "$(cat status-url.txt)" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -D status-headers.txt -o status.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path('status.json').read_text())
print(json.dumps(r,ensure_ascii=False,indent=2))
print('Keep the complete JSON and response headers; do not resubmit an unknown creation.')
PY_RESULT
Чтение другого содержимого
Сохраняйте каждый готовый результат, принадлежащий вам
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_ASSETS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path('status.json').read_text())
if r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')
if not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')
urls=[]
for i,u in enumerate(r.get('data',[])):
    if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')
    urls.append((str(i),u))
for label,path in urls:
    u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)
    if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')
    target=Path('owned-'+label+'.bin')
    subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)
print('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')
PY_ASSETS
Сохраняйте все готовые результаты

Сохраните каждое готовое видео или полученный файл; загрузите содержимое по каждому фактически полученному URL материала.

Сохраняйте каждый фактический результат, принадлежащий Ailoot, и возвращённые измеренные метаданные.

Если нужно проверить исходный ответ

503 result_pending_check + исходный id + X-Should-Retry:false; никогда не отправляйте исходный запрос повторно

Поля ответа
ПолеТипЗначение
ПолеindexТипintegerЗначениеПозиция этого видео в списке результатов, начиная с нуля.
Полеcontent_urlТипstringЗначениеПодписанный HTTPS URL для скачивания этого готового видео.
Полеsha256Типstring | nullЗначениеХэш SHA-256 исходных байтов видео; null, если недоступен.
Полеsize_bytesТипinteger | nullЗначениеРазмер исходного видеофайла в байтах; null, если недоступен.
Полеduration_msТипinteger | nullЗначениеИзмеренная длительность видео в миллисекундах; null, если недоступна.
ПолеwidthТипinteger | nullЗначениеШирина видео в пикселях; null, если недоступна.
ПолеheightТипinteger | nullЗначениеВысота видео в пикселях; null, если недоступна.
Полеvideo_codecТипstring | nullЗначениеИдентификатор видеокодека; null, если не записан.
Полеhas_audioТипboolean | nullЗначениеЕсть ли у видео аудиодорожка; null, если не измерено.
Полеaudio_codecТипstring | nullЗначениеИдентификатор аудиокодека; null, если идентификатор не записан.
Ошибки и дальнейшие шаги
ОтветУсловиеСледующий шаг
Ответ404 · not_found_errorУсловиеДоступ к видео недоступен либо этот ID видео не найден.Следующий шагПроверьте доступ к видео. Для существующего видео используйте исходный публичный ID и тот же ключ API.
Ответ401 · authentication_errorУсловиеКлюч API не соответствует авторизованному аккаунту.Следующий шагПеред отправкой проверьте ключ API и доступ к аккаунту.
Ответ400 · invalid_request_errorУсловиеНе удалось прочитать запрос либо индекс скачивания недопустим.Следующий шагИсправьте тело запроса. Для скачивания выберите индекс результата, возвращённый исходной задачей.
Ответ422 · price_unavailableУсловиеНевозможно определить цену выбранной конфигурации видео.Следующий шагВыберите поддерживаемую конфигурацию видео и заполните обязательные параметры перед отправкой исправленного запроса.
Ответ422 · invalid_request_errorУсловиеНедопустимы входное видео или исходная задача продолжения.Следующий шагИспользуйте корректные входные HTTPS-ссылки. Для продолжения используйте исходный публичный ID вашего готового видео и тот же ключ API.
Ответ402 · billing_errorУсловиеДоступный баланс или лимиты не позволяют зарезервировать средства.Следующий шагПеред отправкой нового запроса проверьте доступный баланс и лимиты.
Ответ503 · server_errorУсловиеПроверка видео, хранилище или доступ к сервису временно недоступны.Следующий шагДождитесь доступности сервиса. Если у вас уже есть ID видео, проверяйте ту исходную задачу вместо создания новой генерации.
Ответ503 · result_pending_checkУсловиеНужно проверить результат исходного видео и начисление.Следующий шагСохраните возвращённый ID видео и проверьте эту задачу. Не отправляйте заменяющий запрос на генерацию, пока идёт проверка.
Ответ503 · owned_result_unavailableУсловиеСкачивание существующего видео временно недоступно.Следующий шагПроверьте ту же видеозадачу позже и скачайте её существующий результат. Новая генерация создаёт отдельную операцию.
Ответ409 · video_not_readyУсловиеСодержимое видео не опубликовано.Следующий шагПроверьте исходный статус задачи. Скачайте результат после completed; при failed следуйте уведомлению о проверке начисления.

Псевдонимы

Псевдонимы моделей

Ailoot Ultra alibaba/happyhorse-1.0

Псевдонимы путей метода

Используйте пути методов, указанные выше.

Связанные ID для вызова

alibaba/happyhorse-1.0

FAQ · Alibaba: HappyHorse 1.0
Какие входные данные и результаты доступны?

POST /v1/videos · alibaba/happyhorse-1.0: text, image → video

Какие поля использует запрос?

POST /v1/videos · alibaba/happyhorse-1.0: model, prompt, duration, resolution, aspect_ratio, generate_audio, frame_images, input_references, size, seed, callback_url, session_id, trace, user

Какие ограничения действуют?

POST /v1/videos · alibaba/happyhorse-1.0: duration.minimum: 1; duration.maximum: 600; frame_images.max_items: 1; frame_images.min_items: 1; seed.minimum: -9223372036854775808; seed.maximum: 9223372036854775807

Подробнее

Подключите Ailoot к Claude Code, OpenCode, Hermes или своему приложению.

Компания и портфель её проектов

Компания и портфель её проектов: миллионы клиентов; продажи на миллиарды ежемесячно.

Покупайте токены со скидкой.

Скидка по подписке для регулярной работы. Промокоды — до 50% на покупку токенов.

Подписка
Выберите тариф со скидкой для своих регулярных запросов.
Промокод до 50%
Введите код при покупке. Цена пересчитается с учётом действующей акции.
Расходы в истории
Модель, токены и сумма сохраняются для каждого запроса.

Выбрать подписку · Посмотреть цены моделей

Подключайте API к продукту, который вы продаёте.

SaaS, приложения и боты — по оферте и лицензионному договору Ailoot. Для перепродажи запросите реселлерскую лицензию.

Коммерческое приложение
Встраивайте генерацию текста, картинок, видео и звука в платные функции своего сервиса.
Лицензия для реселлера
Пришлите описание проекта и схему доступа. Запросите письменные условия использования и перепродажи.
Документы на сайте
Оферта, лицензионный договор и политика обработки данных доступны до подключения.

Запросить реселлерскую лицензию · Оферта и лицензионный договор