Source: https://ailoot.ai/models/es/alibaba-happyhorse-1-0/
Canonical: https://ailoot.ai/models/es/alibaba-happyhorse-1-0/
Language: es

# Alibaba: HappyHorse 1.0

[Markdown](https://ailoot.ai/models/es/alibaba-happyhorse-1-0/index.md) · [JSON](https://ailoot.ai/models/es/alibaba-happyhorse-1-0/facts.json)

## [Alibaba: HappyHorse 1.0](https://ailoot.ai/models/es/alibaba-happyhorse-1-0/)

Alibaba HappyHorse 1.0 crea vídeos cortos con sonido a partir de 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 vídeo 1.0 modifica material proporcionado con referencias visuales opcionales y sus propios límites.

- [**Ailoot Ultra · Vídeo** `POST /v1/videos` `alibaba/happyhorse-1.0`](https://ailoot.ai/models/es/alibaba-happyhorse-1-0/#method-0)

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 vídeo con perfiles específicos de texto a vídeo, imagen a vídeo con primer fotograma y referencia a vídeo. El fabricante describe como foco creativo el movimiento físicamente convincente, la comprensión semántica y la sincronización audiovisual. Su perfil de referencias puede utilizar hasta nueve imágenes para orientar sujetos y escenas. El recurso útil es un clip corto con sonido: una escena nueva, una animación a partir de una imagen de apertura preparada o un plano de personaje o producto guiado por referencias.

Para una escena escrita, defina el sujeto, el escenario, la acción y la cámara, junto con el sonido previsto. Para una escena de mesa, muestre un pequeño velero de maqueta moviéndose por una bandeja de agua poco profunda mientras la cámara lo sigue a la altura de la mesa. La revisión puede comprobar entonces la forma del barco, la escala de la escena, el movimiento del agua y la relación entre movimiento y sonido. Una acción centrada es más fácil de evaluar que una secuencia densa cuyo momento esencial no esté claramente indicado.

Para generación con primer fotograma, utilice una imagen fija cuyo sujeto y composición ya encajen con la apertura deseada. Describa el movimiento que sigue y la trayectoria de cámara. El perfil exacto de imagen 1.0 del fabricante acepta entrada de texto e imagen, mientras que su matriz de generación lo identifica como imagen a vídeo con primer fotograma. Prepare el recorte y los detalles visibles del producto o personaje antes de generar el plano. Compruebe si esos detalles siguen siendo reconocibles durante el movimiento, en lugar de juzgar solo el fotograma inicial.

Referencia a vídeo combina las personas, los productos, el estilo o el escenario mostrados en fuentes visuales dentro de una escena recién descrita. La página exacta del modelo de referencias 1.0 documenta hasta nueve imágenes. Asigne sus funciones en el encargo y describa cómo debe actuar el sujeto dentro de la escena. Una presentación de producto puede distinguir la referencia del artículo de la localización circundante o del estilo visual. El énfasis del fabricante en la estabilidad es un objetivo de revisión: compare el sujeto, las marcas y la posición con las referencias reales a lo largo del clip.

La familia 1.0 también tiene un perfil independiente de edición de vídeo para cambios de estilo y revisiones locales o más amplias de material existente. Ese perfil recibe exactamente un vídeo de origen y de cero a cinco imágenes de referencia, en lugar de la disposición de nueve imágenes de la generación con referencias. Indique qué debe cambiar y qué debe permanecer, como cambiar una prenda conservando a la persona, el movimiento y el fondo. El resultado de edición necesita compararse con todo el clip de origen, no solo con un fotograma que muestre la sustitución prevista.

La guía exacta de edición 1.0 acepta material de origen MP4 o MOV, recomienda H.264 y permite duración de origen de tres a sesenta segundos. Enumera un máximo de 100 MB, un lado corto de al menos 360 píxeles, un lado largo no superior a 4096 píxeles, proporciones entre 1:2.5 y 2.5:1 y tasa de entrada de ocho a sesenta fps. Las ediciones de salida están limitadas a entre tres y quince segundos: los originales de quince segundos o menos conservan su duración, mientras que de los más largos se utilizan solo los primeros quince segundos. Recorte el pasaje previsto antes de preparar la edición cuando una acción importante suceda más adelante en el original.

Las imágenes opcionales de referencia del perfil de edición tienen su propio límite de veinte MB y requisitos de formato JPEG/JPG, PNG o WEBP, con ambas dimensiones de al menos 300 píxeles y el mismo intervalo documentado de proporciones. La guía también distingue el tratamiento automático del audio de la conservación del audio original. Prepare la referencia que identifique el cambio previsto y elija cómo debe relacionarse con él el sonido de origen. Son controles específicos del perfil de edición 1.0, separados de los modos de generación de escenas nuevas.

Para los modos de generación 1.0, la matriz exacta del fabricante enumera 720p o 1080p, de tres a quince segundos, MP4 a 24 fps y audio. El perfil de edición también produce 720p o 1080p dentro de su límite de quince segundos. El flujo documentado de tareas devuelve primero un identificador de procesamiento y la ubicación del vídeo completado después del éxito; las ubicaciones de resultados son válidas durante veinticuatro horas. Conserve el clip real, la instrucción y las referencias al preparar una edición de producción y examine juntos el encuadre, la duración y el sonido devueltos.

HappyHorse 1.1 añade una opción de generación de 480p y mejoras específicas en detalle visual, movimiento y coherencia entre clips. Esas afirmaciones posteriores de generación no garantizan una revisión fija del perfil 1.0. La preparación útil de 1.0 sigue el modo seleccionado y sus materiales reales de origen. Revise identidad, contacto, geometría de objetos, texto y sonido y después concrete la siguiente corrección. Para un clip editado, compruebe también que los detalles originales importantes fuera del cambio solicitado sigan siendo adecuados para la escena prevista.

**Ailoot Ultra · Vídeo** `POST /v1/videos` `alibaba/happyhorse-1.0`

[`alibaba/happyhorse-1.0`](https://ailoot.ai/models/es/#m=alibaba%2Fhappyhorse-1.0&route=Ultra&caller=alibaba%2Fhappyhorse-1.0&fmt=videos)

Alibaba /`alibaba/happyhorse-1.0`

### Primeros pasos

Alibaba HappyHorse 1.0 crea vídeos cortos con sonido a partir de 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 vídeo 1.0 modifica material proporcionado con referencias visuales opcionales y sus propios límites.

Entradas aceptadas

Texto · Imágenes

Resultados

Vídeo

### Disponible en Ailoot · entradas y métodos

**Ailoot Ultra · Vídeo** `POST /v1/videos`

Tipos de entrada

`text`, `image`

Tipos de salida

`video`

Formato de salida

bytes MP4 originales; sin normalización ni transcodificación

| Campo | Tipo | Requisito | Valores y límites | Predeterminado |
| --- | --- | --- | --- | --- |
| Campo`model` | Tipo`string` | RequisitoObligatorio | Valores y límites alibaba/happyhorse-1.0 | Predeterminado— |
| Campo`prompt` | Tipo`string` | RequisitoObligatorio | Valores y límites | Predeterminado— |
| Campo`duration` | Tipo`integer` | RequisitoObligatorio | Valores y límites 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 Mínimo: 1 Máximo: 600 | Predeterminado— |
| Campo`resolution` | Tipo`string` | RequisitoOpcional | Valores y límites 720p, 1080p | Predeterminado— |
| Campo`aspect_ratio` | Tipo`string` | RequisitoOpcional | Valores y límites 16:9, 9:16, 1:1, 4:3, 3:4, 21:9, 9:21 | Predeterminado— |
| Campo`generate_audio` | Tipo`boolean` | RequisitoOpcional | Valores y límites false | Predeterminado— |
| Campo`frame_images` | Tipo`array` | RequisitoOpcional | Valores y límites Número mínimo de elementos: 1 Número máximo de elementos: 1 Contenido de entrada: Lista de objetos de fotograma. Cada objeto contiene type=image\_url, image\_url con url y frame\_type. Usa una URL HTTPS de imagen y establece frame\_type en first\_frame. Cada función de fotograma aparece como máximo una vez. Claves exactas: type, image\_url, frame\_type Condiciones: Estas claves describen cada objeto de fotograma; image\_url solo contiene url. Omite frame\_images para una solicitud que solo contenga texto. | Predeterminado— |
| Campo`input_references` | Tipo`array` | RequisitoOpcional | Valores y límites | Predeterminado— |
| Campo`size` | Tipo`string` | RequisitoOpcional | Valores 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— |
| Campo`seed` | Tipo`integer` | RequisitoOpcional | Valores y límites Mínimo: -9.223.372.036.854.775.808 Máximo: 9.223.372.036.854.775.807 | Predeterminado— |
| Campo`callback_url` | Tipo`string` | RequisitoOpcional | Valores y límites Patrón: ^https:// | Predeterminado— |
| Campo`session_id` | Tipo`string` | RequisitoOpcional | Valores y límites | Predeterminado— |
| Campo`trace` | Tipo`object` | RequisitoOpcional | Valores y límites | Predeterminado— |
| Campo`user` | Tipo`string` | RequisitoOpcional | Valores y límites | Predeterminado— |

Combinaciones de materiales de entrada

**Texto a vídeo** · Una instrucción escrita. · Obligatorio: model, prompt, duration

`Proporciona prompt como texto y duration en segundos enteros. Elige una resolución compatible; añade una relación de aspecto o usa un tamaño enumerado.`

`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 vídeo** · Una instrucción escrita y una imagen del primer fotograma. · Obligatorio: model, prompt, duration, frame\_images

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

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 una lista de objetos. Establece type en image_url y utiliza 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; añade una relación de aspecto o usa un tamaño enumerado.`

`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ámetro | Contrato |
| --- | --- |
| Parámetro`content_type` | Contratoapplication/json |
| Parámetro`required` | Contratomodel, prompt, duration |
| Parámetro`material_types` | Contratotext, image |
| Parámetro`additional_properties` | Contratofalse |
| Parámetro`optional_controls` | Contratoresolution, 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`

### 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.3388** 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 →](https://ailoot.ai/docs/es/billing/reserve/)

#### 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.3388** 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

curl · crea un vídeo

```bash
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 · Vídeo

URL firmadas de contenido bajo tu titularidad

- `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

```bash
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

```bash
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.

Conserva todos los resultados reales bajo tu titularidad y los metadatos medidos que se devuelvan.

##### Si es necesario revisar la respuesta original

503 result\_pending\_check + originalid + X-Should-Retry:false; no repitas nunca la operación original

Campos de respuesta

| Campo | Tipo | Significado |
| --- | --- | --- |
| Campo`index` | Tipointeger | SignificadoPosición de este vídeo en la lista de resultados, empezando por cero. |
| Campo`content_url` | Tipostring | SignificadoURL HTTPS firmada de descarga de este vídeo completado. |
| Campo`sha256` | Tipostring \| null | SignificadoHuella SHA-256 de los bytes del vídeo original; null si no está disponible. |
| Campo`size_bytes` | Tipointeger \| null | SignificadoTamaño del archivo de vídeo original en bytes; null si no está disponible. |
| Campo`duration_ms` | Tipointeger \| null | SignificadoDuración medida del vídeo en milisegundos; null si no está disponible. |
| Campo`width` | Tipointeger \| null | SignificadoAnchura del vídeo en píxeles; null si no está disponible. |
| Campo`height` | Tipointeger \| null | SignificadoAltura del vídeo en píxeles; null si no está disponible. |
| Campo`video_codec` | Tipostring \| null | SignificadoIdentificador del códec de vídeo; null si no se ha registrado. |
| Campo`has_audio` | Tipoboolean \| null | SignificadoIndica si el vídeo contiene una pista de audio; null si no se ha medido. |
| Campo`audio_codec` | Tipostring \| null | SignificadoIdentificador del códec de audio; null cuando no se ha registrado ninguno. |

Errores y siguientes pasos

| Respuesta | Condición | Siguiente paso |
| --- | --- | --- |
| Respuesta404 · `not_found_error` | CondiciónEl acceso al vídeo no está disponible o no se ha encontrado este ID de vídeo. | Siguiente pasoComprueba el acceso al vídeo. Para un vídeo existente, usa su ID público original y la misma clave API. |
| Respuesta401 · `authentication_error` | CondiciónLa clave API no corresponde a la cuenta autenticada. | Siguiente pasoComprueba tu clave API y el acceso de tu cuenta antes de enviar la solicitud. |
| Respuesta400 · `invalid_request_error` | CondiciónNo se ha podido 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_unavailable` | CondiciónNo se puede calcular el precio de la configuración de vídeo seleccionada. | Siguiente pasoElige una configuración de vídeo compatible y completa sus opciones obligatorias antes de enviar una solicitud corregida. |
| Respuesta422 · `invalid_request_error` | CondiciónUna entrada de vídeo o la tarea original de continuación no es válida. | Siguiente pasoUsa entradas HTTPS válidas. Para continuar, usa el ID público de tu vídeo original completado con la misma clave API. |
| Respuesta402 · `billing_error` | CondiciónEl saldo disponible o los límites no permiten efectuar una reserva. | Siguiente pasoComprueba tu saldo disponible y tus límites antes de enviar una nueva solicitud. |
| Respuesta503 · `server_error` | CondiciónLa verificación del vídeo, 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 vídeo, comprueba esa tarea original en lugar de crear otra generación. |
| Respuesta503 · `result_pending_check` | CondiciónEs necesario comprobar el resultado del vídeo original y el cargo. | Siguiente pasoConserva el ID de vídeo devuelto y comprueba esa tarea. No envíes una solicitud de generación sustitutiva mientras se esté comprobando. |
| Respuesta503 · `owned_result_unavailable` | CondiciónLa descarga del vídeo existente no está disponible temporalmente. | Siguiente pasoComprueba más tarde la misma tarea de vídeo y descarga su resultado existente. Una nueva generación crea una operación independiente. |
| Respuesta409 · `video_not_ready` | CondiciónEl contenido del vídeo no se ha publicado. | Siguiente pasoComprueba el estado de la tarea original. Descarga cuando indique completed; si indica failed, sigue su aviso de comprobación del cargo. |

### Alias

#### Alias del modelo

**Ailoot Ultra** [`alibaba/happyhorse-1.0`](https://ailoot.ai/models/es/#m=alibaba%2Fhappyhorse-1.0&route=Ultra&caller=alibaba%2Fhappyhorse-1.0&fmt=videos)

#### Alias de rutas de métodos

Usa las rutas de método indicadas arriba.

#### ID de modelo relacionados

[`alibaba/happyhorse-1.0`](https://ailoot.ai/models/es/#m=alibaba%2Fhappyhorse-1.0&route=Ultra&caller=alibaba%2Fhappyhorse-1.0&fmt=videos)

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`

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](https://ailoot.ai/docs/es/billing/subscriptions/) · [Consultar precios de modelos](https://ailoot.ai/models/es/)

## 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](mailto:support@ailoot.ai) · [Oferta y acuerdo de licencia](https://ailoot.ai/legal/offer?lang=es)

## Ailoot · La empresa y su cartera de proyectos





Ailoot se apoya en la experiencia operativa acumulada, una amplia base de clientes, un servicio estable y el seguimiento continuo de KPI.





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





Ailoot aplica esa experiencia operativa al acceso por API a funciones de IA en productos de clientes, agentes, aplicaciones y automatizaciones.
