Vidu: Q2 Text-to-Video
Vidu Q2 создаёт видео по текстовому описанию сцены: доступны длительность 1–10 секунд, разрешения 540p, 720p или 1080p и пять соотношений сторон. Этот конкретный профиль viduq2 использует текст запроса для стиля и движения и возвращает результат через асинхронную задачу.
О модели
Описание раскрывает возможности модели. Доступные в Ailoot входные данные, результаты и параметры выбранного метода перечислены ниже.
Vidu Q2 создаёт видео по письменному описанию сцены через профиль генерации по тексту, выбираемый идентификатором viduq2. Обязательные входные данные — точный идентификатор модели и текст запроса с описанием сцены. Используйте его для короткой товарной концепции, общего плана места действия или действия персонажа, внешний вид и движение которого можно задать словами. Этот настроенный метод создаёт видео по тексту; его описание не назначает селектору отдельный режим с изображением-референсом или редактирования видео.
Стройте задание вокруг видимой последовательности. Укажите объект, место, действие, крупность плана, движение камеры и финальную композицию. Для товарной концепции опишите предмет на столе, свет, движущийся по его материалу, и медленное приближение камеры, заканчивающееся на узнаваемой детали. Для сцены места действия сначала покажите окружение, затем двигайтесь к центру внимания. Согласуйте действие с выбранной длительностью клипа, чтобы осталось время для задуманного финала.
Предел текста запроса — 2 000 символов. Сначала укажите главное об объекте и действии, затем добавьте освещение, материал, окружение и детали камеры, влияющие на нужный результат. Задайте визуальный стиль в тексте запроса. Руководство для Q2 говорит, что отдельные параметры style и movement_amplitude не действуют на эту модель, поэтому предустановки general или anime и настройки амплитуды движения не заменяют ясное описание сцены.
Параметр длительности для этой модели принимает целые секунды от одной до десяти. Варианты разрешения для Q2 — 540p, 720p и 1080p; документированное значение по умолчанию — 720p. Выбирайте длительность и разрешение вместе под действие и место размещения. Короткое раскрытие детали и более долгое движение требуют разного времени; увеличение запрошенной длительности должно помогать видимой последовательности, а не просто растягивать неизменённое задание. При подготовке к размещению проверьте фактические размеры и длину полученного клипа.
Документированные варианты aspect_ratio: 16:9, 9:16, 3:4, 4:3 и 1:1; значение по умолчанию — 16:9. Руководство прямо включает 3:4 и 4:3 для семейства Q2. Выберите кадр до генерации и опишите подходящую композицию: сохраните различимость главного объекта в вертикальном формате либо используйте ширину горизонтального кадра для окружающей обстановки. Сделайте финальный вид достаточно ясным для нужной страницы, презентации или последующего добавления подписи.
Поле seed управляет вариативностью. Если его опустить или передать 0, выбирается случайное значение; ненулевое значение включает документированный вариант фиксированного seed для повторяемой генерации. При сравнении версий сохраняйте возвращённый seed вместе с текстом запроса и настройками. Общая операция также документирует настройки audio и off_peak специально для моделей Q3. Эти настройки Q3 не являются возможностями, назначенными этому профилю Q2; планируйте запрос с учётом документированных для него текстового ввода и вывода видео.
Генерация асинхронная. Отправка возвращает task_id и начальное состояние; для только что созданной задачи используется created. Сохраняйте этот идентификатор при отслеживании обработки. Документированный запрос результата использует state=success для успешного результата и возвращает массив creations. У каждого элемента URL видео находится в creations[].url; сохраняйте каждое возвращённое видео, не предполагайте, что задача всегда содержит ровно один созданный результат.
Документация результата также сообщает фактические длительность видео, fps, ширину и высоту кадра. Храните эти полученные значения с готовым клипом, не принимайте частоту кадров или размеры из примера за фиксированную спецификацию Q2. Ответ на создание задачи включает значение credits наряду с конфигурацией запроса. Сохраняйте эти метаданные задачи и идентификатор завершённой задачи вместе с результатом, чтобы каждое видео оставалось связано со своими настройками генерации.
Проверьте всю последовательность по исходному заданию: внешний вид объекта, форму предметов, направление движения, непрерывность движения камеры и задуманный финальный вид. Для правки укажите конкретную деталь, не соответствующую заданию, и сохраните удачные части сцены. Храните текст запроса, точный селектор, настройки, идентификатор задачи и готовые видео вместе, чтобы последующее сравнение опиралось на фактические материалы.
Ailoot Ultra · Видео POST /v1/videos viduq2
viduq2Начало
Vidu Q2 создаёт видео по текстовому описанию сцены: доступны длительность 1–10 секунд, разрешения 540p, 720p или 1080p и пять соотношений сторон. Этот конкретный профиль viduq2 использует текст запроса для стиля и движения и возвращает результат через асинхронную задачу.
- Допустимые входные данные
- Текст
- Результаты
- Видео
Доступно в Ailoot · входные данные и методы
Ailoot Ultra · Видео POST /v1/videos
- Входные данные
text- Результат
video
| Поле | Тип | Требование | Значения и ограничения | По умолчанию |
|---|---|---|---|---|
Полеmodel | Типstring | ТребованиеОбязательно | Значения и ограничения viduq2 | По умолчанию— |
Полеprompt | Типstring | ТребованиеОбязательно | Значения и ограничения Условия: Опишите создаваемую сцену. Документированный лимит — 2000 символов; Ailoot проверяет, что строка непустая, и сохраняет текст. | По умолчанию— |
Полеduration | Типinteger | ТребованиеНеобязательно | Значения и ограничения Минимум: 1 Максимум: 10 Условия: В описании модели viduq2 указана длительность 1–10 целых секунд. Длительность по умолчанию для этой модели не документирована. Единица: секунды | По умолчанию— |
Полеseed | Типstring | ТребованиеНеобязательно | Значения и ограничения Условия: Не передавайте поле или передайте строку "0" для случайного результата. Переданное ненулевое начальное значение выбирает документированное поведение с фиксированным seed; числовой диапазон не указан. | По умолчанию— |
Полеaspect_ratio | Типstring | ТребованиеНеобязательно | Значения и ограничения 16:9, 9:16, 3:4, 4:3, 1:1 | По умолчанию16:9 |
Полеresolution | Типstring | ТребованиеНеобязательно | Значения и ограничения 540p, 720p, 1080p Условия: Список для модели viduq2 документирует эти уровни для 1–10 секунд. Общее перечисление и таблица также упоминают 360p; его применимость противоречит этому списку и здесь не заявляется. | По умолчанию720p |
Полеstyle | Типstring | ТребованиеНеобязательно | Значения и ограничения general, anime Условия: Общая схема запроса принимает это поле, но документация прямо указывает, что для viduq2 оно не действует. | По умолчаниюgeneral |
Полеmovement_amplitude | Типstring | ТребованиеНеобязательно | Значения и ограничения auto, small, medium, large Условия: Общая схема запроса принимает это поле, но документация прямо указывает, что для моделей q2 оно не действует. | По умолчаниюauto |
Сочетания входных материалов
Параметры и жизненный цикл метода
| Параметр | Контракт |
|---|---|
Параметрcontent_type | Контрактapplication/json |
Параметрrequired | Контрактmodel, prompt |
Параметрoptional | Контрактduration, seed, aspect_ratio, resolution, style, movement_amplitude |
Параметрmaterial_types | Контрактtext |
Параметрadditional_properties | Контрактtrue |
Параметрvalidation_scope | КонтрактAiloot проверяет, что строки model/prompt непустые. Приведённые ниже типы и лимиты необязательных полей составляют документированный контракт запроса; остальные поля запроса сохраняются для выбранной модели. |
Псевдонимы метода: /v1/videos/generations
Жизненный цикл: submit_once_poll_original
GET /v1/videos/{request_id}
GET /v1/videos/generations/{request_id}
GET /v1/videos/{request_id}/content
GET /v1/videos/generations/{request_id}/content
Создайте один раз и сохраните возвращённые публичные id и polling_url.
Проверяйте исходную операцию и читайте её состояние; завершение подтверждается успешным состоянием и результатом creations[].url, принадлежащим Ailoot.
Скачайте видео по каждому возвращённому URL, принадлежащему Ailoot; не выводите из примера фиксированное количество результатов, длительность или частоту кадров.
Тарифы
Как рассчитывается итоговая плата
Отображаемые тарифы позволяют оценить стоимость до генерации. Итоговое списание рассчитывается по стоимости, записанной для исходной генерации. Измеренная длительность результата и прогнозные объёмы не являются итоговым оплачиваемым объёмом.
Тарифная справка не добавляет режимы запроса. Поддерживаемые параметры указаны для выбранного метода.
- Быстрый режим
- Не указано При выборе быстрого режима
- Режим flex
- Не указано При выборе режима flex
- Максимальная интенсивность рассуждений
- Не указано При максимальной интенсивности рассуждений с корректировкой по умолчанию (default)
Оценочные ставки для сравнения
Цены по конфигурациям
Сопоставьте каждую плату с указанными условиями. Для каждого набора альтернативных конфигураций используйте одну ставку.
| Конфигурация | Шкала ставок | Прогноз количества | Плата |
|---|---|---|---|
| КонфигурацияБазовые тарифы на токены | Шкала ставокБазовая ставка | Прогноз количества— | Плата Вход · Входные токены · Оценка только для сравнения — / 1K токенов Выход · Выходные токены · Оценка только для сравнения — / 1K токенов Вход · Чтение кэша · Оценка только для сравнения — / 1K токенов Вход · Запись в кэш · Оценка только для сравнения — / 1K токенов Вход · Запись в кэш, 1 час · Оценка только для сравнения — / 1K токенов |
| КонфигурацияОриентировочная стоимость генерации | Шкала ставок— | Прогноз количестваОценка для одной генерации | Плата Выход · Оценочная стоимость генерации · Оценка только для сравнения $5.12 оценка до генерации Эта оценка не является дополнительным списанием или фиксированным тарифом для завершённой генерации. |
Ailoot резервирует расчётную сумму перед запросом. После получения результата списывает итоговую плату по измеренному расходу. Для окончательного списания за потоковый ответ используется итоговая запись расхода. Как работают резервирование и расчёт →
Примеры запросов
Ailoot Ultra · Видео
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
cat > request.json <<'JSON_REQUEST'
{"model":"viduq2","prompt":"In an ultra-realistic fashion photography style featuring light blue and pale amber tones, an astronaut in a spacesuit walks through the fog. The background consists of enchanting white and golden lights, creating a minimalist still life and an impressive panoramic scene."}
JSON_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
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_POLL'
import json
from pathlib import Path
from urllib.parse import quote,urljoin,urlsplit
r=json.loads(Path("result.json").read_text())
i=r.get("id")
if not isinstance(i,str) or not i:raise SystemExit("Keep original response/headers/id; do not resubmit creation.")
u=urljoin("https://api.ailoot.ai",r.get("polling_url") or "/v1/videos/"+quote(i,safe=""))
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or not p.path.startswith("/v1/videos/"):raise SystemExit("Use the actual Ailoot lookup path.")
Path("poll-url.txt").write_text(u)
PY_POLL
curl --fail-with-body --silent --show-error "$(cat poll-url.txt)" -H "Authorization: Bearer $AILOOT_API_KEY" -D status-headers.txt -o status.json
set -eu
python3 - <<'PY_ASSETS'
import json
from pathlib import Path
from urllib.parse import urlsplit
r=json.loads(Path("status.json").read_text())
if r.get("state")!="success":raise SystemExit("Poll the same original job until its owned result is returned.")
creations=r.get("creations")
if not isinstance(creations,list) or not creations:raise SystemExit("No completed video creations.")
urls=[]
for item in creations:
value=item.get("url") if isinstance(item,dict) else None
values=[value] if isinstance(value,str) else value
if not isinstance(values,list) or not values:raise SystemExit("No completed video URL.")
for u in values:
if not isinstance(u,str):raise SystemExit("Invalid returned URL.")
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or not p.path.startswith("/v1/media/assets/") or not p.path.endswith("/content") or not p.query:raise SystemExit("Wait for the actual Ailoot-owned signed result.")
urls.append(u)
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_ASSETS
index=0
while IFS= read -r asset_url; do
curl --fail-with-body --silent --show-error "$asset_url" -o "video-${index}.bin"
index=$((index + 1))
done < asset-urls.txt
Получить и сохранить результаты
Ailoot Ultra · Видео
JSON сохраняет нативное состояние и массив creations, добавляя публичные id/provider_task_id/polling_url. До публикации выбранные URL видео пусты; после завершения они становятся подписанными URL, принадлежащими Ailoot.
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Сохраняйте все готовые результаты
Сохраните каждое готовое видео или полученный файл; загрузите содержимое по каждому фактически полученному URL материала.
Скачайте результат по каждому фактически возвращённому URL в creations[].url; индекс содержимого обозначает один реальный возвращённый результат.
Если нужно проверить исходный ответ
Закреплённое описание не перечисляет конечных состояний ошибки. Сохраните исходные ответ, заголовки и id и проверяйте ту же операцию при любом неизвестном состоянии или ошибке result_pending_check; никогда не отправляйте повторно запрос на создание с неизвестным исходом.
Поля ответа
| Поле | Тип | Значение |
|---|---|---|
Полеid | Типstring | ЗначениеВозвращённый публичный идентификатор задачи или операции Ailoot. |
Полеprovider_task_id | Типstring | ЗначениеИсходный идентификатор задачи, отдельный от публичного id. |
Полеpolling_url | Типstring | ЗначениеВозвращённый путь проверки Ailoot для исходной задачи. |
Полеtask_id | Типstring when supplied | ЗначениеИсходный идентификатор из ответа на создание. |
Полеstate | Типstring when supplied | ЗначениеНативное состояние задачи: created для закреплённого состояния ожидания и success при завершении. |
Полеerr_code | Типstring when supplied | ЗначениеДиагностика задачи; сохранённая спецификация не задаёт перечисления кодов ошибок. |
Полеcreations[].url | Типstring|string[] | ЗначениеКаждый выбранный URL готового видео заменяется подписанным URL, принадлежащим Ailoot. |
Полеcreations[].video.duration | Типnumber when supplied | ЗначениеВозвращённая длительность видео; проверьте фактический готовый результат. |
Полеcreations[].video.fps | Типinteger when supplied | ЗначениеВозвращённая частота кадров; фиксированная частота кадров не обещается. |
Полеcreations[].video.resolution.width | Типinteger when supplied | ЗначениеВозвращённая ширина результата в пикселях. |
Полеcreations[].video.resolution.height | Типinteger when supplied | ЗначениеВозвращённая высота результата в пикселях. |
Ошибки и дальнейшие шаги
| Ответ | Условие | Следующий шаг |
|---|---|---|
Ответ400 · invalid_request_error | УсловиеНедопустимый JSON/model, отсутствующие или пустые обязательные строки либо недопустимый индекс содержимого. | Следующий шаг |
Ответ401 · authentication_error | УсловиеНедействительный ключ Ailoot API. | Следующий шаг |
Ответ403 · permission_error | УсловиеГруппа ключа API не допущена к этому медиамаршруту. | Следующий шаг |
Ответ404 · not_found_error | УсловиеИсходная задача или запрошенный результат отсутствуют либо не принадлежат тому же пользователю, ключу API или группе. | Следующий шаг |
Ответ502 · result_pending_check | УсловиеИсходная отправка или статус неполны либо их невозможно сверить; сохраните исходный ID и не отправляйте запрос повторно. | Следующий шаг |
Ответ503 · result_pending_check | УсловиеИсходная привязка, маршрут или принадлежащий Ailoot медиаресурс ещё проверяются; продолжайте проверять ту же исходную операцию. | Следующий шаг |
Ответ503 · server_error | УсловиеМедиасервис или хранилище исходных задач недоступны. | Следующий шаг |
Псевдонимы
Псевдонимы моделей
Ailoot Ultra viduq2
Псевдонимы путей метода
/v1/videos/generations
Связанные ID для вызова
FAQ · Vidu: Q2 Text-to-Video
- Какие входные данные и результаты доступны?
POST /v1/videos·viduq2:text→video- Какие поля использует запрос?
POST /v1/videos·viduq2:model,prompt,duration,seed,aspect_ratio,resolution,style,movement_amplitude- Какие ограничения действуют?
POST /v1/videos·viduq2:duration.minimum:1;duration.maximum:10