modelos

Vidu: Q2 Text-to-Video

Markdown · JSON

Vidu: Q2 Text-to-Video

Vidu Q2 crea vídeo 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 vídeo a partir de una escena escrita mediante el perfil de texto a vídeo 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 vídeo; su descripción no asigna al selector un modo separado de imagen de referencia o edición de vídeo.

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 vídeo 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 vídeo en creations[].url; guarda todos los vídeos 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 vídeo, 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 vídeo 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 vídeos terminados, para que una comparación posterior se base en los resultados reales.

Ailoot Ultra · Vídeo POST /v1/videos viduq2

viduq2

Vidu /viduq2

Primeros pasos

Vidu Q2 crea vídeo 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
Vídeo

Disponible en Ailoot · entradas y métodos

Ailoot Ultra · Vídeo POST /v1/videos
Tipos de entrada
text
Tipos de 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 comprueba 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 de viduq2 indica entre 1 y 10 segundos enteros. No se documenta ninguna duración predeterminada específica del modelo.
Unidad: segundos
Predeterminado—
CamposeedTipostringRequisitoOpcionalValores y límites
Condiciones: Omítelo o envía la cadena "0" para obtener aleatoriedad. Un valor de seed proporcionado distinto de cero selecciona el comportamiento documentado con un valor fijo de seed; no se especifica ningún 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 de viduq2 documenta estos tramos para duraciones de entre 1 y 10 segundos. Una enumeración y una tabla compartidas también mencionan 360p; su aplicabilidad contradice esa lista y no se establece 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 son 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 devuelto y polling_url.

Consulta periódicamente la operación original y lee state; la finalización se alcanza con success y un resultado creations[].url bajo tu titularidad.

Descarga cada URL devuelta de los vídeos bajo tu titularidad; no deduzcas del ejemplo una cantidad fija de resultados, una duración ni una frecuencia de fotogramas.

Planes

Cómo se calcula el cargo definitivo

Las tarifas mostradas estiman el coste antes de la generación. El cargo final se calcula a partir del coste registrado para la generación original. La duración medida del resultado y las cantidades previstas no constituyen 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 rápido
Sin especificar Cuando se selecciona el modo rápido
Modo flex
Sin especificar Cuando se selecciona el modo flex
Esfuerzo máximo de razonamiento
Sin especificar Cuando el esfuerzo máximo de razonamiento utiliza el ajuste predeterminado (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ónCoste estimado de generaciónTabla de tarifas—Cantidad previstaestimación para una generaciónCargo
Salida · Coste 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 para la generación completada.

Ailoot reserva un importe 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 · Vídeo

curl · crea un vídeocurl · lee la tarea originalcurl · descarga cada vídeo 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 · Vídeo

El JSON conserva el estado nativo y la lista creations, con los valores públicos id/provider_task_id/polling_url añadidos. Las URL de vídeo seleccionadas están vacías antes de la publicación y se convierten en URL firmadas de recursos bajo titularidad de Ailoot tras la finalización.

  • 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 vídeos completados o archivos recibidos; descarga cada URL de archivo que se haya devuelto.

Descarga todas las URL reales devueltas en creations[].url; un índice de contenido identifica un resultado real devuelto.

Si es necesario revisar la respuesta original

La declaración fijada no enumera ningún estado terminal de fallo. Conserva la respuesta, las cabeceras y el id originales, y comprueba esa misma operación ante cualquier estado desconocido o error result_pending_check; no vuelvas a enviar nunca una creación de resultado incierto.

Campos de respuesta
CampoTipoSignificado
CampoidTipostringSignificadoIdentificador público devuelto de la tarea u operación de Ailoot.
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 ninguna lista enumerada de códigos de error.
Campocreations[].urlTipostring|string[]SignificadoCada URL seleccionada de un vídeo completado se sustituye por una URL firmada de un recurso bajo titularidad de Ailoot.
Campocreations[].video.durationTiponumber when suppliedSignificadoDuración del vídeo devuelta; comprueba el resultado real completado.
Campocreations[].video.fpsTipointeger when suppliedSignificadoFrecuencia de fotogramas devuelta; no se garantiza una frecuencia fija.
Campocreations[].video.resolution.widthTipointeger when suppliedSignificadoAnchura de salida devuelta en píxeles.
Campocreations[].video.resolution.heightTipointeger when suppliedSignificadoAltura de salida devuelta 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 de medios.Siguiente paso
Respuesta404 · not_found_errorCondiciónLa tarea original o el resultado solicitado no existe o no pertenece al mismo usuario, clave API o grupo.Siguiente paso
Respuesta502 · result_pending_checkCondiciónEl envío original o su estado está incompleto o no puede conciliarse; conserva el ID original y no vuelvas a enviarlo.Siguiente paso
Respuesta503 · result_pending_checkCondiciónLa vinculación original, la ruta o los medios bajo tu titularidad siguen en comprobación; continúa comprobando esa operación original.Siguiente paso
Respuesta503 · server_errorCondiciónEl servicio de medios o el almacenamiento de la tarea original no está disponible.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