MiniMax: Hailuo 02
Hailuo 02 cria vídeo a partir de texto ou de uma imagem do primeiro fotograma e suporta um processo documentado com fotogramas inicial e final. Comandos de câmara, otimização do prompt e escolhas de duração e resolução específicas de cada modo ajudam a dar forma ao plano pretendido.
Sobre o modelo
Esta descrição apresenta as capacidades do modelo. As entradas, saídas e opções disponíveis no Ailoot para o método selecionado estão indicadas abaixo.
Hailuo 02 é o modelo de vídeo da MiniMax para cenas a partir de texto, animação de imagens e um processo com fotogramas inicial e final. Uma descrição escrita indica o sujeito, a ação e a câmara, enquanto imagens de fotogramas fornecidas podem estabelecer o ponto de partida visual ou o destino da transição. Escolha o modo de geração em função dos materiais que já tem e da parte do plano que precisa de controlar.
Para texto para vídeo, descreva uma ação coerente com cenário e ponto de vista legíveis. Uma cena pode mostrar um pequeno barco à vela a passar por um cais enquanto a câmara o acompanha a partir da margem. Especifique o que se move, que detalhes devem permanecer visíveis e como termina o plano. Mantenha a descrição centrada em eventos observáveis, e não numa lista de qualidades visuais não relacionadas.
Para imagem para vídeo, prepare um primeiro fotograma com o sujeito e o enquadramento pretendidos já estabelecidos. O fabricante aceita imagens JPG, JPEG, PNG e WebP inferiores a 20 MB, com o lado curto superior a 300 píxeis e uma proporção entre 2:5 e 5:2. Utilize uma imagem cujos contornos e características importantes sejam visíveis e descreva depois o movimento a desenvolver a partir dela.
Hailuo 02 também tem um modo documentado com fotogramas inicial e final. Prepare as duas imagens como os estados inicial e final pretendidos de uma sequência e descreva como a cena se move entre eles. O primeiro fotograma determina o enquadramento; o fabricante indica que um último fotograma de tamanho diferente é recortado para corresponder ao primeiro. Alinhe antecipadamente a composição das imagens quando um sujeito deve permanecer visível ao longo da transição.
O prompt pode conter até 2 000 caracteres. Hailuo 02 suporta comandos de câmara entre parênteses retos, incluindo push, pull, truck, pan, pedestal, tilt, zoom, tracking e static shot para um plano estático. Comandos colocados juntos num par de parênteses retos pedem movimento simultâneo; comandos colocados em pontos diferentes da descrição pedem uma sequência. O fabricante recomenda combinar não mais de três movimentos, pelo que deve escolher a ação de câmara que torna o sujeito mais legível.
A duração e a resolução estão ligadas ao modo. Texto para vídeo documenta seis ou dez segundos a 768P e seis segundos a 1080P. Imagem para vídeo também documenta 512P para seis ou dez segundos. O processo com fotogramas inicial e final documenta 768P para seis ou dez segundos e 1080P para seis segundos. Selecione uma combinação suportada para o plano, em vez de transferir as escolhas de resolução de um modo para todos os outros.
A otimização automática do prompt é um controlo documentado e está ativada por predefinição no processo do fabricante. Conserve a sua definição ao comparar versões, porque uma descrição reescrita altera o que o modelo recebe. Mantenha o texto exato, os fotogramas de referência e as definições de saída selecionadas com o vídeo gerado, para que uma revisão possa incidir sobre a ação ou o enquadramento que precisam de melhoria.
Examine toda a sequência concluída: composição inicial, continuidade do sujeito, tempos da ação e fotograma final. Para uma transição, verifique ambos os extremos e o movimento entre eles. Guarde o vídeo real para edição, juntamente com o prompt e as referências; utilize a revisão seguinte para resolver um problema visual concreto, como um detalhe oculto, um movimento brusco de câmara ou um final que chega demasiado cedo.
Ailoot Ultra · Vídeo POST /v1/videos minimaxi-hailuo-02
minimaxi-hailuo-02Introdução
Hailuo 02 cria vídeo a partir de texto ou de uma imagem do primeiro fotograma e suporta um processo documentado com fotogramas inicial e final. Comandos de câmara, otimização do prompt e escolhas de duração e resolução específicas de cada modo ajudam a dar forma ao plano pretendido.
- Entradas aceites
- Texto · Imagens
- Resultados
- Vídeo
Disponível no Ailoot · entradas e métodos
Ailoot Ultra · Vídeo POST /v1/videos
- Entrada
text,image- Saída
video
| Campo | Tipo | Requisito | Valores e limites | Predefinição |
|---|---|---|---|---|
Campomodel | Tipostring | RequisitoObrigatório | Valores e limites minimaxi-hailuo-02 Condições: Utilize o seletor exato de modelos da Ailoot. | Predefinição— |
Campoprompt | Tipostring | RequisitoObrigatório | Valores e limites Condições: Descreva a cena e o movimento. | Predefinição— |
Campoduration | Tipointeger | RequisitoOpcional | Valores e limites 6, 10 Condições: Envie um dos valores de duração enumerados; não é indicado qualquer valor predefinido. | Predefinição— |
Campoend_image | Tipostring | RequisitoOpcional | Valores e limites Condições: Um fotograma final aplica-se apenas num modo suportado de entrada de imagem. | Predefinição— |
Campoimage | Tipostring or array<string> | RequisitoOpcional | Valores e limites Condições: Utilize um URL real de imagem acessível publicamente ou uma cadeia de imagem em base64; não é indicado aqui qualquer número máximo de imagens. | Predefinição— |
Camporesolution | Tipostring | RequisitoOpcional | Valores e limites 512P, 768P, 1080P Condições: Envie um dos valores de resolução enumerados; não é indicado qualquer valor predefinido. | Predefinição— |
Parâmetros e ciclo de vida do método
| Parâmetro | Contrato |
|---|---|
Parâmetrocontent_type | Contratoapplication/json |
Parâmetrorequired | Contratomodel, prompt |
Parâmetrooptional | Contratoduration, end_image, image, resolution |
Parâmetromaterial_types | Contratotext, image |
Parâmetroconditions | ContratoUtilize o seletor exato de modelos da Ailoot., Descreva a cena e o movimento., Envie um dos valores de duração enumerados; não é indicado qualquer valor predefinido., Um fotograma final aplica-se apenas num modo suportado de entrada de imagem., Utilize um URL real de imagem acessível publicamente ou uma cadeia de imagem em base64; não é indicado aqui qualquer número máximo de imagens., Envie um dos valores de resolução enumerados; não é indicado qualquer valor predefinido. |
Aliases do 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/media/assets
GET /v1/media/assets/{asset_id}
Tarifários
Cálculo do custo final
As tarifas apresentadas permitem estimar o custo antes da geração. O montante final cobrado é calculado a partir do custo registado para a geração original. A duração medida do resultado e as quantidades previstas não correspondem à quantidade final faturável.
As referências tarifárias não acrescentam opções ao pedido. Os parâmetros suportados constam do método selecionado.
- Modo rápido
- Não especificado Quando o modo rápido está selecionado
- Modo flex
- Não especificado Quando o modo flex está selecionado
- Esforço máximo de raciocínio
- Não especificado Quando o esforço máximo de raciocínio usa o ajuste predefinido (default)
Tarifas estimadas para comparação
Preços por configuração
Associe cada custo às condições apresentadas. Use uma única tarifa para cada conjunto de configurações alternativas.
| Configuração | Tabela de tarifas | Quantidade prevista | Custo |
|---|---|---|---|
| ConfiguraçãoTarifas base por token | Tabela de tarifasTarifa base | Quantidade prevista— | Custo Entrada · Tokens de entrada · Estimativa apenas para comparação — / 1K tokens Saída · Tokens de saída · Estimativa apenas para comparação — / 1K tokens Entrada · Leitura da cache · Estimativa apenas para comparação — / 1K tokens Entrada · Escrita na cache · Estimativa apenas para comparação — / 1K tokens Entrada · Escrita na cache, 1 hora · Estimativa apenas para comparação — / 1K tokens |
| ConfiguraçãoCusto estimado de geração | Tabela de tarifas— | Quantidade previstaestimativa para uma geração | Custo Saída · Custo estimado de geração · Estimativa apenas para comparação $0.2 estimativa antes da geração Esta estimativa não é um encargo adicional nem uma tarifa fixa para a geração concluída. |
O Ailoot reserva um montante estimado antes de um pedido. Após o resultado, liquida o custo final com base na utilização medida. No streaming, a liquidação usa o registo final de utilização. Como funcionam a reserva e a liquidação →
Exemplos de pedidos
Ailoot Ultra · Vídeo
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
cat > request.json <<'JSON'
{
"model": "minimaxi-hailuo-02",
"prompt": "A cat is walking on grass."
}
JSON
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
# Create once; retain id, polling_url, original task identifiers and every header.
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_STATUS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path("result.json").read_text())
u=urljoin("https://api.ailoot.ai",r["polling_url"])
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or p.username or p.password:
raise SystemExit("Unexpected returned polling URL; preserve the response")
subprocess.run(["curl","--fail-with-body","--silent","--show-error",u,"-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"],"-D","status-headers.txt","-o","status.json"],check=True)
# Read this same original polling_url again while pending.
# Preserve unknown/result_pending_check; do not repeat creation.
PY_STATUS
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())
roles={}
def visit(v,path=""):
if isinstance(v,dict):
for k,x in v.items(): visit(x,path+"/"+k)
elif isinstance(v,list):
for i,x in enumerate(v): visit(x,path+"/"+str(i))
elif isinstance(v,str):
u=urljoin("https://api.ailoot.ai",v); p=urlsplit(u)
if p.scheme=="https" and p.netloc=="api.ailoot.ai" and not p.username and not p.password and p.path.startswith("/v1/media/assets/") and p.path.endswith("/content"):
roles.setdefault(u,[]).append(path)
visit(r)
if not roles: raise SystemExit("No completed owned assets; retain the original status")
manifest=[]
for i,(u,paths) in enumerate(roles.items()):
target=Path(f"asset-{i}.bin")
subprocess.run(["curl","--fail-with-body","--silent","--show-error",u,"-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"],"-o",str(target)],check=True)
raw=target.read_bytes()
if not raw: raise SystemExit("Empty asset; retain original status and metadata")
ext="glb" if raw[:4]==b"glTF" else "png" if raw[:8]==b"\x89PNG\r\n\x1a\n" else "jpg" if raw[:3]==b"\xff\xd8\xff" else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "mp4" if raw[4:8]==b"ftyp" else "bin"
name=f"asset-{i}.{ext}"
if target.name!=name: target.rename(name)
manifest.append({"file":name,"response_paths":paths,"bytes":len(raw)})
Path("asset-manifest.json").write_text(json.dumps(manifest,indent=2))
print("Saved",len(manifest),"unique owned assets; every response role retained")
PY_ASSETS
Receber e guardar os resultados
Ailoot Ultra · Vídeo
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Guardar todos os resultados concluídos
Guarde cada vídeo concluído ou ficheiro devolvido; obtenha cada URL de recurso efetivamente devolvido.
Conserve a resposta completa e os cabeçalhos, os identificadores originais, todos os resultados reais e todos os campos de utilização/contabilidade. Guarde cada recurso único pertencente ao utilizador e conserve todas as funções que apontam para ele.
Se for necessário verificar a resposta original
Conserve o id público de tarefa ou operação devolvido e todos os cabeçalhos. Consulte apenas a tarefa original; unknown ou result_pending_check não autoriza uma nova criação.
Campos da resposta
| Campo | Tipo |
|---|---|
Campoid | Tipostring |
Campopolling_url | Tipostring |
Campoprovider_task_id | Tipostring |
Campotask_id | Tipostring |
Campostatus | Tipostring |
Campovideo_url | Tipostring |
Aliases
Aliases do modelo
Ailoot Ultra minimaxi-hailuo-02
Aliases dos caminhos dos métodos
/v1/videos/generations
IDs de chamada relacionados
FAQ · MiniMax: Hailuo 02
- Que entradas e resultados estão disponíveis?
POST /v1/videos·minimaxi-hailuo-02:text,image→video- Que campos utiliza o pedido?
POST /v1/videos·minimaxi-hailuo-02:model,prompt,duration,end_image,image,resolution