models

Alibaba: HappyHorse 1.0

Markdown · JSON

Alibaba: HappyHorse 1.0

Alibaba HappyHorse 1.0 crea videos cortos con sonido desde texto, una primera imagen o hasta nueve imágenes de referencia. Sus modos de generación producen MP4 de 3–15 segundos a 24 fps en 720p o 1080p. Un perfil independiente de edición de video 1.0 revisa material aportado con referencias visuales opcionales y límites propios.

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.0 es una edición de creación de video con perfiles de texto a video, imagen a video con primer fotograma y referencia a video. El fabricante describe movimiento físicamente convincente, comprensión semántica y sincronización audiovisual como su enfoque creativo. Su perfil de referencia usa hasta nueve imágenes para guiar sujetos y escenas. El recurso útil es un clip corto con sonido: escena nueva, animación desde una imagen inicial preparada o toma de personaje o producto guiada por referencias.

Para una escena con texto, define sujeto, entorno, acción, cámara y sonido. Para una escena de mesa, muestra un velero de maqueta pequeño moviéndose en una bandeja de agua poco profunda mientras la cámara lo sigue a la altura de la mesa. La revisión podrá comprobar forma del barco, escala, movimiento del agua y relación entre movimiento y sonido. Una acción enfocada se evalúa mejor que una secuencia densa cuyo momento esencial no esté claro.

Para generar desde primer fotograma, usa una imagen cuyo sujeto y composición ya correspondan al inicio deseado. Describe movimiento posterior y trayectoria de cámara. El perfil exacto de imagen 1.0 acepta texto e imagen y la matriz identifica el modo como imagen a video de primer fotograma. Prepara recorte y detalles visibles de producto o personaje antes de generar. Comprueba si siguen reconocibles en movimiento en vez de juzgar solo el inicio.

Referencia a video combina personas, productos, estilo o entorno de fuentes visuales en una escena descrita de nuevo. La página exacta del modelo 1.0 documenta hasta nueve imágenes. Asigna sus funciones y describe cómo debe actuar el sujeto. Una exhibición de producto puede distinguir la referencia del artículo de la ubicación o estilo circundantes. La estabilidad destacada por el fabricante es un objetivo de revisión: compara sujeto, marcas y posición con las referencias reales en todo el clip.

La familia 1.0 también tiene un perfil de edición con nombre propio para cambios de estilo y revisiones locales o amplias de material existente. Recibe exactamente un video fuente y de cero a cinco imágenes de referencia, en vez del esquema de generación con nueve imágenes. Indica qué cambiar y qué conservar, como modificar una prenda manteniendo persona, movimiento y fondo. Compara la edición con todo el clip fuente, no solo con un fotograma que muestre la sustitución.

La guía exacta de edición 1.0 acepta MP4 o MOV, recomienda H.264 y permite fuentes de tres a sesenta segundos. Enumera máximo de 100 MB, lado corto de al menos 360 píxeles, lado largo no mayor de 4,096 píxeles, proporciones entre 1:2.5 y 2.5:1 y frecuencia de entrada de ocho a sesenta fps. Las ediciones de salida se limitan a tres a quince segundos: fuentes de quince segundos o menos conservan duración y las más largas solo usan los primeros quince. Recorta el pasaje previsto antes de preparar la edición si una acción importante ocurre después.

Las referencias opcionales del perfil de edición tienen su propio límite de veinte MB, formatos JPEG/JPG, PNG o WEBP, ambas dimensiones de al menos 300 píxeles y el mismo intervalo de proporciones. La guía distingue tratamiento automático de audio de conservación del original. Prepara la referencia que identifique el cambio y elige la relación del sonido fuente con él. Son controles específicos de edición 1.0, separados de los modos de escenas nuevas.

Para generar con 1.0, la matriz exacta enumera 720p o 1080p, tres a quince segundos, MP4 a 24 fps y audio. El perfil de edición también entrega 720p o 1080p dentro de quince segundos. El flujo devuelve primero un identificador de procesamiento y, tras éxito, la ubicación completada; las ubicaciones valen veinticuatro horas. Conserva clip, instrucción y referencias al preparar una edición de producción y revisa juntos encuadre, duración y sonido.

HappyHorse 1.1 añade generación 480p y mejoras declaradas de detalle visual, movimiento y consistencia entre clips. Las afirmaciones sobre la generación de esa versión posterior no garantizan un cambio específico en el perfil 1.0. La preparación útil de 1.0 sigue el modo elegido y sus fuentes reales. Revisa identidad, contacto, geometría, texto y sonido y concreta la siguiente corrección. En un clip editado, comprueba también que detalles importantes originales fuera del cambio sigan siendo adecuados.

Ailoot Ultra · Video POST /v1/videos alibaba/happyhorse-1.0

alibaba/happyhorse-1.0

Alibaba /alibaba/happyhorse-1.0

Inicio

Alibaba HappyHorse 1.0 crea videos cortos con sonido desde texto, una primera imagen o hasta nueve imágenes de referencia. Sus modos de generación producen MP4 de 3–15 segundos a 24 fps en 720p o 1080p. Un perfil independiente de edición de video 1.0 revisa material aportado con referencias visuales opcionales y límites propios.

Entradas aceptadas
Texto · Imágenes
Resultados
Video

Disponible en Ailoot · entradas y métodos

Ailoot Ultra · Video POST /v1/videos
Entrada
text, image
Salida
video
Formato de salida
bytes MP4 originales; sin normalización ni transcodificación
CampoTipoRequisitoValores y límitesPredeterminado
CampomodelTipostringRequisitoObligatorioValores y límites
alibaba/happyhorse-1.0
Predeterminado—
CampopromptTipostringRequisitoObligatorioValores y límitesPredeterminado—
CampodurationTipointegerRequisitoObligatorioValores y límites
3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
Mínimo: 1
Máximo: 600
Predeterminado—
CamporesolutionTipostringRequisitoOpcionalValores y límites
720p, 1080p
Predeterminado—
Campoaspect_ratioTipostringRequisitoOpcionalValores y límites
16:9, 9:16, 1:1, 4:3, 3:4, 21:9, 9:21
Predeterminado—
Campogenerate_audioTipobooleanRequisitoOpcionalValores y límites
false
Predeterminado—
Campoframe_imagesTipoarrayRequisitoOpcionalValores y límites
Número mínimo de elementos: 1
Número máximo de elementos: 1
Contenido de entrada: Arreglo de objetos de fotograma. Cada objeto tiene type=image_url, image_url que contiene url y frame_type. Usa una URL HTTPS de imagen y establece frame_type en first_frame. Cada función de fotograma puede aparecer como máximo una vez.
Claves exactas: type, image_url, frame_type
Condiciones: Estas claves describen cada objeto de fotograma; image_url contiene únicamente url. Omite frame_images para una solicitud de solo texto.
Predeterminado—
Campoinput_referencesTipoarrayRequisitoOpcionalValores y límitesPredeterminado—
CamposizeTipostringRequisitoOpcionalValores y límites
1280x720, 720x1280, 720x720, 960x720, 720x960, 1680x720, 720x1680, 1920x1080, 1080x1920, 1080x1080, 1440x1080, 1080x1440, 2520x1080, 1080x2520
Patrón: ^[1-9][0-9]*x[1-9][0-9]*$
Predeterminado—
CamposeedTipointegerRequisitoOpcionalValores y límites
Mínimo: -9,223,372,036,854,775,808
Máximo: 9,223,372,036,854,775,807
Predeterminado—
Campocallback_urlTipostringRequisitoOpcionalValores y límites
Patrón: ^https://
Predeterminado—
Camposession_idTipostringRequisitoOpcionalValores y límitesPredeterminado—
CampotraceTipoobjectRequisitoOpcionalValores y límitesPredeterminado—
CampouserTipostringRequisitoOpcionalValores y límitesPredeterminado—
Combinaciones de materiales de entrada

Texto a video · Una instrucción escrita. · Obligatorio: model, prompt, duration

Proporciona prompt como texto y duration en segundos enteros. Elige una resolución compatible; agrega una relación de aspecto o usa un tamaño de la lista.

model: Tipo: string · alibaba/happyhorse-1.0

prompt: Tipo: string · Máximo de bytes UTF-8: 10,000 · Se requiere contenido distinto de espacios en blanco: Sí

Imagen a video · Una instrucción escrita y una imagen del primer fotograma. · Obligatorio: model, prompt, duration, frame_images

frame_images es un arreglo. Cada objeto de fotograma tiene type, image_url y frame_type; image_url contiene url. Establece type en image_url. Usa first_frame. Cada función de fotograma puede aparecer como máximo una vez. Proporciona una URL HTTPS pública de imagen para cada fotograma. Elige una resolución compatible; agrega una relación de aspecto o usa un tamaño de la lista.

Claves exactas: type, image_url, frame_type

model: Tipo: string · alibaba/happyhorse-1.0

prompt: Tipo: string · Máximo de bytes UTF-8: 10,000 · Se requiere contenido distinto de espacios en blanco: Sí

Reference to video · Una instrucción escrita y referencias de imagen compatibles. · Obligatorio: model, prompt, duration, input_references

input_references es un arreglo de objetos. Establece type en image_url y usa el campo correspondiente que contiene url. Usa URL HTTPS públicas. Omite frame_images para seleccionar el modo de referencias. Elige una resolución compatible; agrega una relación de aspecto o usa un tamaño de la lista.

model: Tipo: string · alibaba/happyhorse-1.0

prompt: Tipo: string · Máximo de bytes UTF-8: 10,000 · Se requiere contenido distinto de espacios en blanco: Sí

Parámetros del método y ciclo de vida
ParámetroContrato
Parámetrocontent_typeContratoapplication/json
ParámetrorequiredContratomodel, prompt, duration
Parámetromaterial_typesContratotext, image
Parámetroadditional_propertiesContratofalse
Parámetrooptional_controlsContratoresolution, aspect_ratio, generate_audio, frame_images, input_references, size, seed, callback_url, session_id, trace, user

Ciclo de vida: submit_once_poll_original

GET /v1/videos/{public_id}

GET /v1/videos/{public_id}/content

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 previstaUnidad de facturaciónCondiciones de facturaciónCargo
ConfiguraciónTarifas base por tokenTabla de tarifasTarifa baseCantidad 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 videoTabla de tarifas—Cantidad prevista—Unidad de facturaciónpor segundo de videoCondiciones de facturaciónresolution: 1080pCargo
Salida · Precio del video · Estimación solo para comparar $0.3388 por segundo de video
ConfiguraciónPrecio del videoTabla de tarifas—Cantidad prevista—Unidad de facturaciónpor segundo de videoCondiciones de facturaciónresolution: 720pCargo
Salida · Precio del video · Estimación solo para comparar $0.1976 por segundo de video
ConfiguraciónCosto estimado de generaciónTabla de tarifas—Cantidad previstaestimación para una generaciónUnidad de facturación—Condiciones de facturación—Cargo
Salida · Costo 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 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 →

Detalles de la tarifa de referencia

Las tablas de referencia del modelo no cambian la selección del método, las cotizaciones ni los cargos. Los cargos aplicados usan las tarifas del método Ailoot seleccionado.

Referencias de precios por configuración de video

Precios por configuración

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

ConfiguraciónCondiciones de facturaciónCargo
ConfiguraciónPrecio del videoCondiciones de facturaciónresolution: 720pCargo
Salida · Precio del video $0.1976 por segundo de video

Referencia de precio publicada para la configuración mostrada. Los cargos finales corresponden a la configuración realmente facturada.

ConfiguraciónPrecio del videoCondiciones de facturaciónresolution: 1080pCargo
Salida · Precio del video $0.3388 por segundo de video

Referencia de precio publicada para la configuración mostrada. Los cargos finales corresponden a la configuración realmente facturada.

Solicitudes de ejemplo

Ailoot Ultra · Video

curl · crea un video
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

Recibir y guardar resultados

Ailoot Ultra · Video

URL firmadas de contenido que te pertenece

  • GET /v1/videos/{public_id}
  • GET /v1/videos/{public_id}/content
Consultar el estado de la tarea
Obtener el estado de la operación original con 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
Otras consultas de contenido
Guarda todos los resultados completados que te pertenecen
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 videos completados o archivos recibidos; descarga cada URL de archivo que se haya devuelto.

Conserva cada salida real que te pertenezca y los metadatos medidos que se devuelvan con ella.

Si es necesario revisar la respuesta original

503 result_pending_check + id original + X-Should-Retry:false; nunca repitas el envío original

Campos de respuesta
CampoTipoSignificado
CampoindexTipointegerSignificadoPosición de este video en la lista de salidas, con índice que comienza en cero.
Campocontent_urlTipostringSignificadoURL HTTPS firmada de descarga de este video completado.
Camposha256Tipostring | nullSignificadoResumen SHA-256 de los bytes del video original; null si no está disponible.
Camposize_bytesTipointeger | nullSignificadoTamaño del archivo de video original en bytes; null si no está disponible.
Campoduration_msTipointeger | nullSignificadoDuración medida del video en milisegundos; null si no está disponible.
CampowidthTipointeger | nullSignificadoAncho del video en píxeles; null si no está disponible.
CampoheightTipointeger | nullSignificadoAlto del video en píxeles; null si no está disponible.
Campovideo_codecTipostring | nullSignificadoIdentificador del códec de video; null si no se registró.
Campohas_audioTipoboolean | nullSignificadoIndica si el video contiene una pista de audio; null si no se midió.
Campoaudio_codecTipostring | nullSignificadoIdentificador del códec de audio; null cuando no se registra ningún identificador.
Errores y siguientes pasos
RespuestaCondiciónSiguiente paso
Respuesta404 · not_found_errorCondiciónEl acceso al video no está disponible o no se encontró este ID de video.Siguiente pasoVerifica el acceso al video. Para un video existente, usa su ID público original y la misma clave API.
Respuesta401 · authentication_errorCondiciónLa clave API no coincide con la cuenta autenticada.Siguiente pasoRevisa tu clave API y el acceso de tu cuenta antes de enviar.
Respuesta400 · invalid_request_errorCondiciónNo se pudo leer la solicitud o el índice de descarga no es válido.Siguiente pasoCorrige el cuerpo de la solicitud. Para una descarga, elige un índice de salida devuelto por la tarea original.
Respuesta422 · price_unavailableCondiciónNo se puede cotizar la configuración de video seleccionada.Siguiente pasoElige una configuración de video compatible y completa sus opciones obligatorias antes de enviar una solicitud corregida.
Respuesta422 · invalid_request_errorCondiciónUna entrada de video o la tarea original de continuación no es válida.Siguiente pasoUsa entradas HTTPS válidas. Para una continuación, usa el ID público de tu video original completado con la misma clave API.
Respuesta402 · billing_errorCondiciónEl saldo disponible o los límites no permiten reservar fondos.Siguiente pasoRevisa tu saldo disponible y tus límites antes de enviar una solicitud nueva.
Respuesta503 · server_errorCondiciónLa verificación del video, el almacenamiento o el acceso al servicio no están disponibles temporalmente.Siguiente pasoEspera a que el servicio esté disponible. Si ya tienes un ID de video, consulta esa tarea original en lugar de crear otra generación.
Respuesta503 · result_pending_checkCondiciónEl resultado y el cargo del video original requieren verificación.Siguiente pasoConserva el ID de video devuelto y consulta esa tarea. No envíes una solicitud de generación de reemplazo mientras se verifica.
Respuesta503 · owned_result_unavailableCondiciónLa descarga del video existente no está disponible temporalmente.Siguiente pasoConsulta más tarde la misma tarea de video y descarga su salida existente. Una generación nueva crea una operación independiente.
Respuesta409 · video_not_readyCondiciónEl contenido del video no se ha publicado.Siguiente pasoConsulta el estado de la tarea original. Descarga cuando indique completed; si indica failed, sigue su aviso de verificación del cargo.

Alias

Alias del modelo

Ailoot Ultra alibaba/happyhorse-1.0

Alias de rutas de métodos

Usa las rutas de método indicadas arriba.

ID de modelo relacionados

alibaba/happyhorse-1.0

FAQ · Alibaba: HappyHorse 1.0
¿Qué entradas y resultados están disponibles?

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

¿Qué campos utiliza la solicitud?

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

¿Qué límites se aplican?

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

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