models

Vidu: Q2 Text-to-Video

Markdown · JSON

Vidu: Q2 Text-to-Video

Vidu Q2 crea video a partir de una descripción de escena en texto, con una duración de 1–10 segundos, salida de 540p, 720p o 1080p y cinco relaciones de aspecto. Este perfil viduq2 concreto utiliza el campo prompt para el estilo y el movimiento y devuelve su resultado mediante una tarea asíncrona.

Sobre el modelo

Esta descripción cubre las capacidades del modelo. Las entradas, salidas y opciones disponibles en Ailoot se indican a continuación para el método seleccionado.

Vidu Q2 crea video a partir de una escena escrita mediante el perfil de texto a video seleccionado por viduq2. Sus entradas obligatorias son el identificador exacto del modelo y un prompt que describa la escena. Utilízalo para un concepto breve de producto, un plano general o una acción de personaje cuyo aspecto y movimiento se puedan especificar con palabras. Este método configurado es de texto a video; su descripción no asigna al selector un modo separado de imagen de referencia o edición de video.

Construye las instrucciones en torno a una secuencia visible. Identifica el sujeto, el lugar, la acción, el tamaño del plano, el movimiento de cámara y la composición final. Para un concepto de producto, describe un objeto sobre una mesa, la luz que recorre su material y un lento acercamiento de cámara que termine en un detalle reconocible. Para una escena de un lugar, establece el entorno antes de acercarte al punto de interés. Ajusta la acción a la duración del clip elegida para que la escena tenga espacio para el final previsto.

El límite de prompt es de 2,000 caracteres. Pon primero el sujeto y la acción esenciales; después, añade los detalles de iluminación, material, entorno y cámara que cambien el resultado deseado. Especifica el estilo visual en el prompt. La guía específica de Q2 indica que los parámetros separados style y movement_amplitude no surten efecto en este modelo, así que los ajustes predefinidos general o anime y las opciones de amplitud de movimiento no sustituyen una descripción clara de la escena.

El ajuste de duración específico del modelo acepta segundos enteros de uno a diez. Las opciones de resolución específicas de Q2 son 540p, 720p y 1080p, con 720p como valor predeterminado documentado. Elige la duración y la resolución conjuntamente según la acción y el destino. Una breve presentación del sujeto y un movimiento más largo necesitan tiempos diferentes; aumentar la duración solicitada debe servir a la secuencia visible, en lugar de limitarse a alargar una escena sin cambiar sus instrucciones. Revisa las dimensiones y la duración reales del clip devuelto al preparar su colocación final.

Las opciones documentadas de aspect_ratio son 16:9, 9:16, 3:4, 4:3 y 1:1, con 16:9 como valor predeterminado. La guía incluye expresamente 3:4 y 4:3 para la familia Q2. Elige el encuadre antes de generar y describe una composición adecuada: mantén claramente visible el sujeto principal en una vista vertical o utiliza el ancho de un encuadre horizontal para mostrar el entorno. Deja la vista final lo bastante clara para la página, presentación o incorporación posterior de rótulos prevista.

El campo seed controla la variación. Omitirlo o proporcionar 0 selecciona un valor aleatorio; un valor distinto de cero selecciona la opción de semilla fija documentada para una generación reproducible. Conserva el seed devuelto junto con el prompt y los ajustes al comparar versiones. La operación compartida también documenta los controles audio y off_peak específicamente para modelos Q3. Esas opciones de Q3 no son capacidades asignadas a este perfil Q2; planifica esta solicitud en torno a su entrada de texto y salida de video documentadas.

La generación es asíncrona. El envío devuelve task_id y un estado inicial, con created para una tarea recién creada. Conserva esa identidad de tarea mientras sigues el procesamiento. La consulta de resultados documentada utiliza state=success para un resultado correcto y devuelve una lista creations. Cada entrada tiene la URL de su video en creations[].url; guarda todos los videos devueltos en lugar de asumir que la tarea siempre contiene exactamente una creación.

La documentación de resultados también comunica la duración real del video, fps y el ancho y alto de la resolución. Conserva esos valores comunicados junto con el clip terminado, en lugar de tratar la frecuencia de fotogramas o las dimensiones de un ejemplo como una especificación fija de Q2. La respuesta de creación de la tarea incluye un valor credits junto con la configuración de la solicitud. Conserva esos metadatos de tarea comunicados y el identificador de la tarea completada junto con el resultado, para que cada video siga vinculado a sus ajustes de generación.

Revisa toda la secuencia frente a las instrucciones originales: aspecto del sujeto, forma del objeto, dirección de movimiento, continuidad de cámara y vista final prevista. Para una revisión, identifica el detalle concreto que no cumplió las instrucciones y conserva las partes de la escena que funcionaron. Guarda juntos el prompt, el selector exacto, los ajustes, la identidad de tarea y los videos terminados, para que una comparación posterior se base en los resultados reales.

Ailoot Ultra · Generación de video POST /v1/videos viduq2

viduq2

Vidu /viduq2

Inicio

Vidu Q2 crea video a partir de una descripción de escena en texto, con una duración de 1–10 segundos, salida de 540p, 720p o 1080p y cinco relaciones de aspecto. Este perfil viduq2 concreto utiliza el campo prompt para el estilo y el movimiento y devuelve su resultado mediante una tarea asíncrona.

Entradas aceptadas
Texto
Resultados
Video

Disponible en Ailoot · entradas y métodos

Ailoot Ultra · Generación de video POST /v1/videos
Entrada
text
Salida
video
CampoTipoRequisitoValores y límitesPredeterminado
CampomodelTipostringRequisitoObligatorioValores y límites
viduq2
Predeterminado—
CampopromptTipostringRequisitoObligatorioValores y límites
Condiciones: Describe la escena que se generará. El límite documentado es de 2000 caracteres; Ailoot verifica que la cadena no esté vacía y conserva el texto.
Predeterminado—
CampodurationTipointegerRequisitoOpcionalValores y límites
Mínimo: 1
Máximo: 10
Condiciones: La descripción específica del modelo viduq2 indica 1–10 segundos enteros. No se documenta una duración predeterminada específica del modelo.
Unidad: segundos
Predeterminado—
CamposeedTipostringRequisitoOpcionalValores y límites
Condiciones: Omite el campo o envía la cadena "0" para un resultado aleatorio. Un seed proporcionado distinto de cero selecciona el comportamiento de seed fijo documentado; no se especifica un intervalo numérico.
Predeterminado—
Campoaspect_ratioTipostringRequisitoOpcionalValores y límites
16:9, 9:16, 3:4, 4:3, 1:1
Predeterminado16:9
CamporesolutionTipostringRequisitoOpcionalValores y límites
540p, 720p, 1080p
Condiciones: La lista específica del modelo viduq2 documenta estos niveles para 1–10 segundos. Un conjunto compartido de valores y una tabla también mencionan 360p; su aplicación contradice esa lista y no se afirma aquí.
Predeterminado720p
CampostyleTipostringRequisitoOpcionalValores y límites
general, anime
Condiciones: La solicitud compartida acepta este campo, pero la documentación indica expresamente que no tiene efecto en viduq2.
Predeterminadogeneral
Campomovement_amplitudeTipostringRequisitoOpcionalValores y límites
auto, small, medium, large
Condiciones: La solicitud compartida acepta este campo, pero la documentación indica expresamente que no tiene efecto en los modelos q2.
Predeterminadoauto
Combinaciones de materiales de entrada

Parámetros del método y ciclo de vida
ParámetroContrato
Parámetrocontent_typeContratoapplication/json
ParámetrorequiredContratomodel, prompt
ParámetrooptionalContratoduration, seed, aspect_ratio, resolution, style, movement_amplitude
Parámetromaterial_typesContratotext
Parámetroadditional_propertiesContratotrue
Parámetrovalidation_scopeContratoAiloot valida que las cadenas model/prompt no estén vacías. Los tipos y límites opcionales siguientes constituyen el contrato documentado de la solicitud; los demás campos se conservan para el modelo seleccionado.

Alias de método: /v1/videos/generations

Ciclo de vida: 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

Crea una sola vez y conserva el id público y polling_url devueltos.

Consulta periódicamente la operación original y lee state; la finalización requiere success y un resultado creations[].url que te pertenezca.

Descarga cada URL de video devuelta que te pertenezca; no deduzcas una cantidad de salidas, duración o frecuencia de fotogramas fija a partir del ejemplo.

Tarifas

Cómo se calcula el cargo definitivo

Las tarifas mostradas permiten estimar el costo antes de la generación. El cargo final se calcula a partir del costo registrado para la generación original. La duración medida de la salida y las cantidades estimadas no son la cantidad facturable final.

Las referencias tarifarias no añaden opciones a la solicitud. Los parámetros admitidos se indican en el método seleccionado.

Modo fast
Sin especificar Cuando se selecciona el modo fast
Modo flex
Sin especificar Cuando se selecciona el modo flex
Esfuerzo máximo de razonamiento
Sin especificar Cuando el esfuerzo máximo de razonamiento usa el ajuste default

Tarifas estimadas para comparar

Precios por configuración

Relaciona cada cargo con las condiciones mostradas. Usa una tarifa para cada conjunto de configuraciones alternativas.

ConfiguraciónTabla de tarifasCantidad previstaCargo
ConfiguraciónTarifas base por tokenTabla de tarifasTarifa baseCantidad prevista—Cargo
Entrada · Tokens de entrada · Estimación solo para comparar — / 1K tokens
Salida · Tokens de salida · Estimación solo para comparar — / 1K tokens
Entrada · Lectura de caché · Estimación solo para comparar — / 1K tokens
Entrada · Escritura en caché · Estimación solo para comparar — / 1K tokens
Entrada · Escritura en caché, 1 hora · Estimación solo para comparar — / 1K tokens
ConfiguraciónCosto estimado de generaciónTabla de tarifas—Cantidad previstaestimación para una generaciónCargo
Salida · Costo estimado de generación · Estimación solo para comparar $5.12 estimación previa a la generación

Esta estimación no es un cargo adicional ni una tarifa fija por la generación completada.

Ailoot reserva un monto estimado antes de la solicitud. Tras obtener el resultado, liquida el cargo definitivo según el uso medido. En las respuestas en flujo, la liquidación usa el registro de uso final. Cómo funcionan la reserva y la liquidación →

Solicitudes de ejemplo

Ailoot Ultra · Generación de video

curl · crea un videocurl · lee la tarea originalcurl · descarga cada video que te pertenece
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

Recibir y guardar resultados

Ailoot Ultra · Generación de video

El JSON conserva el estado nativo y el arreglo creations, y agrega id/provider_task_id/polling_url públicos. Las URL de video seleccionadas están vacías antes de la publicación y pasan a ser URL firmadas bajo control de Ailoot después de completarse.

  • GET /v1/videos/{request_id}
  • GET /v1/videos/generations/{request_id}
  • GET /v1/videos/{request_id}/content
  • GET /v1/videos/generations/{request_id}/content
Conserva todos los resultados completados

Guarda todos los videos completados o archivos recibidos; descarga cada URL de archivo que se haya devuelto.

Descarga cada URL real devuelta en creations[].url; un índice de contenido identifica una salida real devuelta.

Si es necesario revisar la respuesta original

La declaración fijada no enumera ningún estado final de fallo. Conserva la respuesta, los encabezados y el id originales, y consulta esa misma operación ante cualquier estado no reconocido o error result_pending_check; nunca vuelvas a enviar una creación de resultado desconocido.

Campos de respuesta
CampoTipoSignificado
CampoidTipostringSignificadoIdentificador público de tarea u operación de Ailoot devuelto.
Campoprovider_task_idTipostringSignificadoIdentificador de la tarea original, independiente del id público.
Campopolling_urlTipostringSignificadoRuta de consulta de Ailoot devuelta para la tarea original.
Campotask_idTipostring when suppliedSignificadoIdentificador original presente en la respuesta de creación.
CampostateTipostring when suppliedSignificadoEstado nativo de la tarea: created para el estado pendiente fijado y success para la finalización.
Campoerr_codeTipostring when suppliedSignificadoDiagnóstico de la tarea; la especificación guardada no declara una lista enumerada de códigos de error.
Campocreations[].urlTipostring|string[]SignificadoCada URL de video completado seleccionada se sustituye por una URL firmada bajo control de Ailoot.
Campocreations[].video.durationTiponumber when suppliedSignificadoDuración del video devuelta; revisa el resultado real completado.
Campocreations[].video.fpsTipointeger when suppliedSignificadoFrecuencia de fotogramas devuelta; no se promete una frecuencia fija.
Campocreations[].video.resolution.widthTipointeger when suppliedSignificadoAncho de salida devuelto en píxeles.
Campocreations[].video.resolution.heightTipointeger when suppliedSignificadoAlto de salida devuelto en píxeles.
Errores y siguientes pasos
RespuestaCondiciónSiguiente paso
Respuesta400 · invalid_request_errorCondiciónJSON o modelo no válido, cadenas obligatorias ausentes o vacías, o índice de contenido no válido.Siguiente paso
Respuesta401 · authentication_errorCondiciónClave API de Ailoot no válida.Siguiente paso
Respuesta403 · permission_errorCondiciónEl grupo de la clave API no tiene acceso a esta ruta multimedia.Siguiente paso
Respuesta404 · not_found_errorCondiciónLa tarea original o la salida solicitada no existe o no pertenece al mismo usuario, clave API y grupo.Siguiente paso
Respuesta502 · result_pending_checkCondiciónEl envío original o su estado está incompleto o no se puede conciliar; conserva el ID original y no vuelvas a enviarlo.Siguiente paso
Respuesta503 · result_pending_checkCondiciónTodavía se verifica la vinculación original, la ruta o el contenido multimedia que te pertenece; continúa consultando esa operación original.Siguiente paso
Respuesta503 · server_errorCondiciónEl servicio multimedia o el almacenamiento de la tarea original no están disponibles.Siguiente paso

Alias

Alias del modelo

Ailoot Ultra viduq2

Alias de rutas de métodos

/v1/videos/generations

ID de modelo relacionados

viduq2

FAQ · Vidu: Q2 Text-to-Video
¿Qué entradas y resultados están disponibles?

POST /v1/videos · viduq2: text → video

¿Qué campos utiliza la solicitud?

POST /v1/videos · viduq2: model, prompt, duration, seed, aspect_ratio, resolution, style, movement_amplitude

¿Qué límites se aplican?

POST /v1/videos · viduq2: duration.minimum: 1; duration.maximum: 10

Más detalles

Conecta Ailoot a Claude Code, OpenCode, Hermes o tu aplicación.

La empresa y su cartera de proyectos

La empresa y su cartera de proyectos: millones de clientes; ventas por miles de millones al mes.

Compra tokens con descuento.

Ahorro por suscripción para trabajo habitual. Códigos promocionales: hasta el 50% al comprar tokens.

Suscripción
Elige un plan con descuento para tus peticiones habituales.
Código de hasta el 50%
Introduce el código al comprar. El precio se recalcula según la promoción vigente.
Gasto en el historial
Modelo, tokens e importe quedan guardados por cada petición.

Elegir suscripción · Consultar precios de modelos

Conecta la API al producto que vendes.

SaaS, aplicaciones y bots bajo la oferta y el acuerdo de licencia Ailoot. Solicita una licencia de reventa para redistribuir el acceso.

Aplicación comercial
Integra generación de texto, imágenes, vídeo y sonido en funciones de pago de tu servicio.
Licencia para revendedores
Envía descripción del proyecto y esquema de acceso. Solicita condiciones escritas de uso y reventa.
Documentos en la web
La oferta, el acuerdo de licencia y la política de datos están disponibles antes de conectar.

Solicitar licencia de reventa · Oferta y acuerdo de licencia