MiniMax: H3
MiniMax H3 genera video corto con audio estéreo nativo desde texto, imágenes de fotogramas o referencias multimodales. Admite creación con primer/último fotograma, edición con referencias y relaciones de movimiento o voz, con salida de 4–15 segundos y un flujo independiente de regeneración 2K.
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.
Un resultado audiovisual desde un encargo multimodal
MiniMax H3 es el sistema de video omnimodal de MiniMax. Interpreta juntos texto, imágenes, video y audio y genera video con sonido estéreo nativo. El fabricante lo presenta para trabajos creativos breves como visuales de producto, publicidad, carteles animados y conceptos de títulos cinematográficos, donde las relaciones entre referencias importan tanto como describir la escena.
El sistema documentado produce video de 4–15 segundos a 24 fotogramas por segundo con audio estéreo de 32 kHz. H3-Base genera a 768p; el flujo completo 2K regenera ese resultado usando el contexto multimodal original. Es más que redimensionar: la segunda etapa vuelve a usar modelo y contexto para recuperar detalle fino. H3 Max y H3-Context-IR tienen funciones y límites separados.
Creación con texto y guía de fotogramas
La entrada solo de texto describe toda la línea de tiempo audiovisual. Una primera imagen ancla el inicio, una última el final y dos pueden definir ambos. Para una toma con primer fotograma, parte de composición e identidad visibles y describe la acción que surge. Para transición de inicio a final, describe movimiento observable entre estados en vez de repetir descripciones de imágenes inconexas.
Un encargo práctico puede especificar un empaque cerrado al inicio, la mano que lo abre, movimiento suave de cámara y estado final. Conserva forma, posición de etiqueta y luz en los fotogramas. La creación por fotogramas y por referencias son modos separados; la interfaz no mezcla funciones de primer/último fotograma con medios de referencia en una solicitud.
Generación y edición guiadas por referencias
El modo referencia acepta texto con imágenes, clips de video y audio. Identifica qué aporta cada fuente: apariencia de personaje, locación, cámara, estructura temporal de un clip o voz. Un video usado solo para cámara difiere de uno que realmente debe editarse o continuarse. Explicita esa relación.
La guía separa definiciones de sujetos, resumen de tarea, análisis de conservación, descripción detallada de toma, paisaje sonoro general y música de fondo destinada solo al público. Distingue conservar contenido visible de transferir atributos o referenciar un estilo general. En audio, copiar señal difiere de referenciar timbre, ritmo o interpretación. Mantén estables esas funciones en todo el encargo.
Para una escena con referencias, aporta imagen de personaje, un clip breve de cámara y referencia de voz y describe dónde influye cada uno. Indica qué ropa, entorno o detalles de objeto deben seguir reconocibles. Compara el clip completo con esos requisitos, incluida continuidad del movimiento y relación entre hablante visible y voz escuchada.
Habla, sonido y tiempos de tomas
H3 modela conjuntamente diálogo, sonidos físicos, ambiente y música. La ficha documenta diálogo estable en árabe, chino, inglés, francés, alemán, italiano, japonés, coreano, portugués, ruso y español; describe compatibilidad variable para otros idiomas. Aporta palabras e idioma exactos, con identidad estable del hablante entre tomas.
Las guías de redacción usan inglés para secciones descriptivas y conservan diálogo y texto visible en su idioma original. El habla usa <d>[Language] ...</d>, dejando identidad y descripción de voz fuera del bloque. Distingue habla física de voz en off e identifica si una línea continúa entre cortes o se interrumpe al final. Conserva también exactamente el texto visible. Ajusta el habla a la duración y revisa conjuntamente palabras renderizadas y línea audible.
Describe cámara como acción, con amplitud y velocidad cuando importen. Numera tomas en orden y sitúa cortes dentro de la duración. Separa sonidos de escena, como pasos o puerta que cierra, de música audible solo al público. Esto facilita interpretar y revisar el plan corto frente al resultado.
Preparación de entradas y límites numéricos
El esquema actual exige texto no vacío en todo modo, hasta 7,000 caracteres por elemento. Las imágenes pueden ser JPG, JPEG, PNG, WebP, HEIC o HEIF, hasta 30 MB cada una, lados de 256 a 5,760 píxeles y aspecto de 0.4 a 2.5. La entrada por fotogramas permite una imagen inicial y una final; referencia permite hasta nueve.
El video permite hasta tres MP4 o MOV de 2–15 segundos cada uno y máximo 15 segundos juntos. Cada clip puede pesar hasta 50 MB; usa códec H.264 o H.265, audio AAC o MP3, lados de 256 a 5,760 píxeles, relaciones de 0.4 a 2.5 y frecuencia de fotogramas de 23.976 a 60 fps. El audio admite hasta tres WAV o MP3 de hasta 15 MB, 2–15 segundos cada uno y máximo 15 segundos juntos. La ficha limita referencias mixtas a 12 archivos. El cuerpo de solicitud tiene límite de 64 MB, distinto de los individuales.
Elige solo referencias que aporten al encargo y explicita cada contribución. Una vista clara del sujeto sirve más que varias contradictorias sin explicación. Conserva orden, recorta lo irrelevante sin quitar contexto necesario y comprueba que clips breves contengan la acción o cualidad de voz solicitada.
Forma de salida y sistema completo
La interfaz H3 ofrece 768P y 2K. Texto solo requiere una relación concreta: 21:9, 16:9, 4:3, 1:1, 3:4 o 9:16. La creación con primero/último toma el aspecto de la imagen; la de referencias puede usar aspecto adaptativo o explícito. La duración entera es de 4–15 segundos.
La ficha distingue H3-Context-IR, que interpreta y enriquece el encargo, H3-Base, que genera contenido audiovisual, y H3-Regenerate-2K, que crea mayor resolución. Los checkpoints base publicados separan tareas de fotogramas y omni-reference. Contexto y regeneración son componentes distintos de esos pesos base, por lo que el nombre de un checkpoint abierto no demuestra por sí solo el comportamiento de todo el sistema.
El flujo es asíncrono. La consulta recupera tareas de los siete días anteriores. Conserva la identidad hasta recibir el video real y guarda después el clip en vez de solo una dirección temporal. Revisa identidad visual, texto pequeño, interacción de objetos, contenido hablado y tiempos sonoros al tamaño de uso. El fabricante identifica comprensión multimodal y detalle fino como áreas de mejora continua; un encargo detallado y comparar fuentes siguen siendo centrales para un resultado útil.
Ailoot Ultra · Video POST /v1/videos minimax/hailuo-3
minimax/hailuo-3Inicio
MiniMax H3 genera video corto con audio estéreo nativo desde texto, imágenes de fotogramas o referencias multimodales. Admite creación con primer/último fotograma, edición con referencias y relaciones de movimiento o voz, con salida de 4–15 segundos y un flujo independiente de regeneración 2K.
- Entradas aceptadas
- Texto · Imágenes · Audio · Video
- Resultados
- Video
Disponible en Ailoot · entradas y métodos
Ailoot Ultra · Video POST /v1/videos
- Entrada
text,image,audio,video- Salida
video- Formato de salida
- bytes MP4 originales; sin normalización ni transcodificación
| Campo | Tipo | Requisito | Valores y límites | Predeterminado |
|---|---|---|---|---|
Campomodel | Tipostring | RequisitoObligatorio | Valores y límites minimax/hailuo-3 | Predeterminado— |
Campoprompt | Tipostring | RequisitoObligatorio | Valores y límites | Predeterminado— |
Campoduration | Tipointeger | RequisitoObligatorio | Valores y límites 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 Mínimo: 1 Máximo: 600 | Predeterminado— |
Camporesolution | Tipostring | RequisitoOpcional | Valores y límites 2K | Predeterminado— |
Campoaspect_ratio | Tipostring | RequisitoOpcional | Valores y límites 21:9, 16:9, 4:3, 1:1, 3:4, 9:16 | Predeterminado— |
Campogenerate_audio | Tipoboolean | RequisitoOpcional | Valores y límites false, true | Predeterminado— |
Campoframe_images | Tipoarray | RequisitoOpcional | Valores y límites Número mínimo de elementos: 1 Número máximo de elementos: 2 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 o last_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_references | Tipoarray | RequisitoOpcional | Valores y límites | Predeterminado— |
Campocallback_url | Tipostring | RequisitoOpcional | Valores y límites Patrón: ^https:// | Predeterminado— |
Camposession_id | Tipostring | RequisitoOpcional | Valores y límites | Predeterminado— |
Campotrace | Tipoobject | RequisitoOpcional | Valores y límites | Predeterminado— |
Campouser | Tipostring | RequisitoOpcional | Valores y límites | Predeterminado— |
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 y, si es necesario, una relación de aspecto.
model: Tipo: string · minimax/hailuo-3
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 con last_frame opcional. Cada función de fotograma puede aparecer como máximo una vez. Proporciona una URL HTTPS pública de imagen para cada fotograma. Usa imágenes de fotogramas o referencias de imagen en una solicitud; no combines ambas. Elige una resolución compatible y, si es necesario, una relación de aspecto.
Claves exactas: type, image_url, frame_type
model: Tipo: string · minimax/hailuo-3
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 compatibles de imagen, video y audio. · Obligatorio: model, prompt, duration, input_references
input_references es un arreglo de objetos. Establece type en image_url, video_url o audio_url y usa el campo correspondiente que contiene url. Usa URL HTTPS públicas. Omite frame_images para seleccionar el modo de referencias. La estimación incluye el componente por imagen mostrado solo para las imágenes de referencia posteriores a las primeras cinco. El cargo final corresponde a la configuración realmente facturada. No combines referencias de imagen con imágenes de fotogramas. Elige una resolución compatible y, si es necesario, una relación de aspecto.
model: Tipo: string · minimax/hailuo-3
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ámetrocontent_type | Contratoapplication/json |
Parámetrorequired | Contratomodel, prompt, duration |
Parámetromaterial_types | Contratotext, image, audio, video |
Parámetroadditional_properties | Contratofalse |
Parámetrooptional_controls | Contratoresolution, aspect_ratio, generate_audio, frame_images, input_references, 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ó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 video | Tabla de tarifas— | Cantidad prevista— | Unidad de facturaciónpor segundo de video | Condiciones de facturaciónNo se declara ninguna condición adicional en esta clave de precios. | Cargo Salida · Precio del video · Estimación solo para comparar $0.26 por segundo de video |
| Configuraciónimagen de referencia | Tabla de tarifas— | Cantidad prevista— | Unidad de facturaciónpor imagen de referencia | Condiciones de facturación— | Cargo Entrada · imagen de referencia · Estimación solo para comparar $0.08 por imagen de referencia |
| ConfiguraciónCosto estimado de generación | Tabla de tarifas— | Cantidad previstaestimación para una generación | Unidad de facturación— | Condiciones de facturación— | Cargo Salida · Costo estimado de generación · Estimación solo para comparar $1.3 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ón | Condiciones de facturación | Cargo |
|---|---|---|
| ConfiguraciónPrecio del video | Condiciones de facturaciónNo se declara ninguna condición adicional en esta clave de precios. | Cargo Salida · Precio del video $0.26 por segundo de video Referencia de precio publicada para la configuración mostrada. Los cargos finales corresponden a la configuración realmente facturada. |
| ConfiguraciónImágenes de referencia posteriores a las primeras cinco | Condiciones de facturaciónNo se declara ninguna condición adicional en esta clave de precios. | Cargo Entrada · Imágenes de referencia después de las primeras cinco $0.08 por imagen Las primeras cinco imágenes de referencia son gratuitas; la tarifa por imagen indicada se aplica después de las primeras cinco. Referencia de precio publicado para la configuración mostrada. Los cargos finales corresponden a la configuración realmente facturada. |
Solicitudes de ejemplo
Ailoot Ultra · 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":8,"model":"minimax/hailuo-3","prompt":"A serene mountain landscape at sunset","resolution":"2K"}', 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
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 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
| Campo | Tipo | Significado |
|---|---|---|
Campoindex | Tipointeger | SignificadoPosición de este video en la lista de salidas, con índice que comienza en cero. |
Campocontent_url | Tipostring | SignificadoURL HTTPS firmada de descarga de este video completado. |
Camposha256 | Tipostring | null | SignificadoResumen SHA-256 de los bytes del video original; null si no está disponible. |
Camposize_bytes | Tipointeger | null | SignificadoTamaño del archivo de video original en bytes; null si no está disponible. |
Campoduration_ms | Tipointeger | null | SignificadoDuración medida del video en milisegundos; null si no está disponible. |
Campowidth | Tipointeger | null | SignificadoAncho del video en píxeles; null si no está disponible. |
Campoheight | Tipointeger | null | SignificadoAlto del video en píxeles; null si no está disponible. |
Campovideo_codec | Tipostring | null | SignificadoIdentificador del códec de video; null si no se registró. |
Campohas_audio | Tipoboolean | null | SignificadoIndica si el video contiene una pista de audio; null si no se midió. |
Campoaudio_codec | Tipostring | null | SignificadoIdentificador del códec de audio; null cuando no se registra ningún identificador. |
Errores y siguientes pasos
| Respuesta | Condición | Siguiente paso |
|---|---|---|
Respuesta404 · not_found_error | Condició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_error | Condició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_error | Condició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_unavailable | Condició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_error | Condició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_error | Condició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_error | Condició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_check | Condició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_unavailable | Condició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_ready | Condició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 minimax/hailuo-3
Alias de rutas de métodos
Usa las rutas de método indicadas arriba.
ID de modelo relacionados
FAQ · MiniMax: H3
- ¿Qué entradas y resultados están disponibles?
POST /v1/videos·minimax/hailuo-3:text,image,audio,video→video- ¿Qué campos utiliza la solicitud?
POST /v1/videos·minimax/hailuo-3:model,prompt,duration,resolution,aspect_ratio,generate_audio,frame_images,input_references,callback_url,session_id,trace,user- ¿Qué límites se aplican?
POST /v1/videos·minimax/hailuo-3:duration.minimum:1;duration.maximum:600;frame_images.max_items:2;frame_images.min_items:1