Alibaba: HappyHorse 1.1
Alibaba HappyHorse 1.1 genera vídeos cortos con sonido a partir de un encargo de texto, una imagen de primer fotograma o hasta nueve imágenes de referencia. Sus perfiles del fabricante destacan mejoras en movimiento, detalle de piel y coherencia de personajes entre clips. La salida es MP4 de 3–15 segundos a 24 fps, con opciones de 480p, 720p o 1080p.
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.
Alibaba HappyHorse 1.1 es una edición de generación de vídeo con perfiles independientes de texto a vídeo, imagen a vídeo con primer fotograma y referencia a vídeo. El fabricante destaca mejoras de detalle visual, movimiento, identidad de personajes entre clips, estabilidad del texto y sincronización audiovisual. El resultado es un vídeo corto con sonido, útil para un plano de producto, una animación de retrato o una pequeña escena de personajes. Seleccione el modo de entrada según lo que deba definir la escena: un concepto escrito, una imagen inicial exacta o varias referencias visuales.
Para texto a vídeo, describa el sujeto, la localización, la acción, el encuadre, el movimiento de cámara y la intención sonora. Para una escena breve de acción, muestre a un ciclista que se detiene junto a una cafetería a orillas de un río mientras la cámara se acerca suavemente a la bicicleta aparcada. Mantenga la acción adecuada para un clip corto y describa el momento final. La guía actual de texto del fabricante permite hasta 5000 caracteres no chinos o 2500 caracteres chinos y trunca el texto excedente. Organice el encargo de modo que el sujeto y la acción esenciales sean explícitos, en lugar de quedar enterrados en adjetivos repetidos.
Imagen a vídeo con primer fotograma utiliza exactamente una imagen como apertura. Prepare el sujeto, la composición y el recorte previstos en esa imagen fija y después describa qué debe moverse o cómo debe cambiar la cámara. Los formatos documentados de imagen son JPEG/JPG, PNG y WEBP, hasta 20 MB, con ambas dimensiones de al menos 300 píxeles y relación de aspecto entre 1:2.5 y 2.5:1. La salida aproxima el nivel de resolución seleccionado y conserva las proporciones de la imagen de origen. Por tanto, un resultado vertical comienza con una composición vertical adecuada, en lugar de una instrucción de relación de aspecto sin conexión.
Referencia a vídeo acepta de una a nueve imágenes. La instrucción utiliza [Image 1], [Image 2] y las posiciones posteriores para identificarlas en orden de entrada. Indique la función de cada referencia y nombre el objeto o la persona pertinente, para que una imagen de escena no se confunda con una fuente de personaje. La guía de referencias acepta JPEG/JPG, PNG o WEBP de hasta 20 MB, exige que el lado más corto tenga al menos 400 píxeles y recomienda referencias claras de 720p o superiores. Evite una referencia muy comprimida cuyo detalle identificativo ya falte.
Para una escena con varias referencias, coloque a la persona de una imagen en la habitación de otra y conserve un abrigo o producto proporcionado por una tercera. Describa la interacción y la cámara en el mismo encargo. El perfil de referencias 1.1 destaca la estabilidad de sujetos, estilo de escena y movimiento cinematográfico; examine el resultado real para comprobar la identidad prevista, las marcas de producto y la posición espacial. Varias imágenes aportan más información al encargo, pero la revisión sigue necesitando comprobar qué rasgos se han trasladado al vídeo.
El fabricante enumera salidas de 480p, 720p y 1080p para los modos de generación 1.1, con duración en segundos enteros de tres a quince y MP4 a 24 fps. La respuesta de API describe codificación H.264. La generación de texto y referencias ofrece formas como 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21 y 21:9; la generación con primer fotograma sigue la imagen de entrada. Elija la forma según el destino y deje espacio para subtítulos o elementos de diseño posteriores. Examine el encuadre real del vídeo devuelto al tamaño previsto de visualización.
La salida de la familia de modelos incluye sonido. Asigne una función clara a la interpretación o la atmósfera en el encargo y revise con la imagen cualquier diálogo, efecto o pista de fondo. Mantenga el material hablado lo bastante corto para la acción y las pausas, en lugar de comprimir un guion largo en un plano breve. Compruebe el movimiento labial, la atribución del hablante y la redacción real cuando haya voz. La aceptación de un idioma de instrucciones no define por sí sola una pronunciación garantizada ni una entrada independiente de referencia de voz.
El flujo documentado del fabricante es asíncrono: un identificador de tarea permite seguir el procesamiento y un resultado satisfactorio proporciona la ubicación del vídeo. El enlace de resultado y las consultas de tarea se documentan con un periodo de validez de veinticuatro horas. Conserve el clip completado, las referencias y la instrucción como registro de revisión. Las guías también documentan controles de semilla y marca de agua. Una semilla fija puede facilitar la comparación, pero el fabricante indica expresamente que no garantiza resultados idénticos, por lo que debe juzgar el recurso devuelto, en lugar de asumir que un ajuste fija todos los fotogramas.
HappyHorse 1.0 y 1.1 son ediciones independientes. La tabla de salida 1.1 añade 480p a las opciones de 720p y 1080p de 1.0, y las páginas del modelo 1.1 describen mejoras de detalle, movimiento y coherencia. El perfil independiente de edición de vídeo HappyHorse 1.0 tiene sus propias entradas y límites y no es un modo de edición que deba asignarse silenciosamente a 1.1. Revise todo el clip 1.1 para comprobar identidad, movimiento, encuadre, texto y sonido y después realice una corrección específica conservando las partes satisfactorias del encargo.
Ailoot Ultra · Vídeo POST /v1/videos alibaba/happyhorse-1.1
alibaba/happyhorse-1.1Primeros pasos
Alibaba HappyHorse 1.1 genera vídeos cortos con sonido a partir de un encargo de texto, una imagen de primer fotograma o hasta nueve imágenes de referencia. Sus perfiles del fabricante destacan mejoras en movimiento, detalle de piel y coherencia de personajes entre clips. La salida es MP4 de 3–15 segundos a 24 fps, con opciones de 480p, 720p o 1080p.
- 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- Formato de salida
- mp4
- Número de salidas
- Hasta 4 salidas
| Campo | Tipo | Requisito | Valores y límites | Predeterminado |
|---|---|---|---|---|
Campomodel | Tipostring | RequisitoObligatorio | Valores y límites alibaba/happyhorse-1.1 | Predeterminado— |
Campoprompt | Tipostring | RequisitoObligatorio | Valores y límites Longitud mínima: 1 Máximo de bytes: 10.000 Unidad: bytes UTF8 | Predeterminado— |
Campoduration | Tipointeger | RequisitoObligatorio | Valores y límites Mínimo: 3 Máximo: 15 Unidad: segundos | Predeterminado— |
Camporesolution | Tipostring | RequisitoObligatorio | Valores y límites 720p | Predeterminado— |
Campoaspect_ratio | Tipostring | RequisitoObligatorio | Valores y límites 16:9 | Predeterminado— |
Combinaciones de materiales de entrada
Texto a vídeo · Obligatorio: prompt
Parámetros del método y ciclo de vida
| Parámetro | Contrato |
|---|---|
Parámetrocontent_type | Contratoapplication/json |
Parámetrorequired | Contratomodel, prompt, duration, resolution, aspect_ratio |
Parámetroother_options | Contratofalse |
Parámetroresolution | Contrato720p |
Parámetroprompt_max_bytes | Contrato10000 |
Parámetroduration_integer_range | Contrato3, 15 |
Parámetroaspect_ratio | Contrato16:9 |
Parámetrogenerate_audio | Contratodebe omitirse (no enviarse como false); AAC incluido |
Parámetromaterial_types | Contratotext |
Parámetroadditional_properties | Contratofalse |
Alias de método: /v1/videos/generations, /videos, /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 guarda el ID devuelto.
Consulta periódicamente el estado original; conserva todos los recursos completados y sus duraciones.
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ón | Tabla de tarifas | Cantidad prevista | Unidad de facturación | Condiciones de facturación | Cargo |
|---|---|---|---|---|---|
| ConfiguraciónTarifas base por token | Tabla de tarifasTarifa base | Cantidad prevista— | Unidad de facturación— | Condiciones de facturación— | 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ónPrecio del vídeo | Tabla de tarifas— | Cantidad prevista— | Unidad de facturaciónpor segundo de vídeo | Condiciones de facturaciónresolution: 1080p | Cargo Salida · Precio del vídeo · Estimación solo para comparar $0.2556 por segundo de vídeo |
| ConfiguraciónPrecio del vídeo | Tabla de tarifas— | Cantidad prevista— | Unidad de facturaciónpor segundo de vídeo | Condiciones de facturaciónresolution: 720p | Cargo Salida · Precio del vídeo · Estimación solo para comparar $0.1976 por segundo de vídeo |
| ConfiguraciónCoste estimado de generación | Tabla de tarifas— | Cantidad previstaestimación para una generación | Unidad de facturación— | Condiciones de facturación— | Cargo Salida · Coste estimado de generación · Estimación solo para comparar $0.5928 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 →
Detalles de la tarifa de referencia
Las tablas de referencia del modelo no cambian la selección del método, las estimaciones de coste ni los cargos. Los cargos aplicados usan las tarifas del método Ailoot seleccionado.
Referencias de precios de configuraciones de vídeo
Precios por configuración
Relaciona cada cargo con las condiciones mostradas. Usa una tarifa para cada conjunto de configuraciones alternativas.
| Configuración | Condiciones de facturación | Cargo |
|---|---|---|
| ConfiguraciónPrecio del vídeo | Condiciones de facturaciónresolution: 720p | Cargo Salida · Precio del vídeo $0.1976 por segundo de vídeo Referencia de precios publicada para la configuración mostrada. Los cargos finales se calculan según la configuración realmente facturada. |
| ConfiguraciónPrecio del vídeo | Condiciones de facturaciónresolution: 1080p | Cargo Salida · Precio del vídeo $0.2556 por segundo de vídeo Referencia de precios publicada para la configuración mostrada. Los cargos finales se calculan según la configuración realmente facturada. |
Solicitudes de ejemplo
Ailoot Ultra · Vídeo
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "alibaba/happyhorse-1.1", "prompt": "A cat in a spacesuit walking on the Moon", "duration": 3, "resolution": "720p", "aspect_ratio": "16:9"}')
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
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
Recibir y guardar resultados
Ailoot Ultra · Vídeo
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Consultar el estado de la tarea
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
Otras consultas de contenido
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
Conserva todos los resultados completados
Guarda todos los vídeos completados o archivos recibidos; descarga cada URL de archivo que se haya devuelto.
data[] completado contiene todas las URL firmadas de contenido bajo tu titularidad. Recupera cada URL devuelta o utiliza el endpoint de contenido con index establecido en un índice real de salida. Un trabajo original fallido puede devolver charge_pending_check; comprueba ese trabajo original en lugar de crearlo de nuevo.
Si es necesario revisar la respuesta original
Consulta el trabajo original existente; no vuelvas a enviar nunca un envío de resultado desconocido.
Máximo de salidas: 4.
Campos de respuesta
| Campo | Tipo | Significado |
|---|---|---|
Campoid | Tipostring | Significado— |
Campoobject | Tipostring | Significado— |
Campomodel | Tipostring | Significado— |
Campostatus | Tipostring | Significado— |
Campodata[] | Tiposigned content URL | Significado— |
Campocharge_pending_check | Tipoboolean | Significado— |
Campoerror.code | Tipostring | Significado— |
Campoerror.message | Tipostring | Significado— |
Campooperation_id | Tipostring | SignificadoRespuesta HTTP503 result_pending_check del estado o contenido original: el mismo ID público de vídeo original como id. |
Campoerror.type | Tipostring | Significadoserver_error con HTTP503 result_pending_check. |
Errores y siguientes pasos
| Respuesta | Condición | Siguiente paso |
|---|---|---|
Respuesta400 · invalid_request_error | CondiciónNo se puede leer el cuerpo sin procesar de la solicitud antes de analizar el perfil de vídeo | Siguiente pasoConserva la respuesta devuelta y corrige el cuerpo ilegible de la solicitud. |
Respuesta422 · price_unavailable | CondiciónNo se puede analizar el perfil exacto de vídeo, o el perfil completo analizado no tiene una ficha de precios exacta lista para usar | Siguiente pasoConserva la respuesta; utiliza el perfil admitido exacto y completo y su ficha publicada. Esta rama se ejecuta antes del envío al proveedor. |
Respuesta409 · video_not_ready | CondiciónEl contenido del resultado original aún no está disponible | Siguiente pasoConsulta periódicamente el ID original devuelto y respeta Retry-After. |
Respuestaserver_error | CondiciónLa respuesta devuelta indica que la operación o el resultado requiere una comprobación | Siguiente pasoConserva el ID original de operación o tarea devuelto, las cabeceras de la solicitud y la respuesta; continúa con las lecturas admitidas de esa operación original. No vuelvas a enviar la solicitud de creación. |
Respuesta503 · result_pending_check | CondiciónGET del estado o contenido original: la tarea no está publicada, el trabajo original no está en failed/cancelled/expired y el estado local es unknown o el estado del trabajo original es completed. | Siguiente pasoConserva el id y el operation_id originales (el mismo ID público de vídeo), la respuesta y las cabeceras; consulta solo el estado o contenido original. No envíes nunca una nueva solicitud de generación. |
Alias
Alias del modelo
Ailoot Ultra alibaba/happyhorse-1.1
Alias de rutas de métodos
/v1/videos/generations, /videos, /videos/generations
ID de modelo relacionados
FAQ · Alibaba: HappyHorse 1.1
- ¿Qué entradas y resultados están disponibles?
POST /v1/videos·alibaba/happyhorse-1.1:text→video- ¿Qué campos utiliza la solicitud?
POST /v1/videos·alibaba/happyhorse-1.1:model,prompt,duration,resolution,aspect_ratio- ¿Qué límites se aplican?
POST /v1/videos·alibaba/happyhorse-1.1:duration.minimum:3;duration.maximum:15