Tutorial
API de vídeo Grok Imagine: imagem para vídeo e texto para vídeo em 1.0 e 1.5
Qual dos três endpoints de vídeo Grok Imagine usar, quanto custa cada clipe, exemplos reais de saída com prompts e código curl e Python prontos para executar.
TL;DR
- A API de vídeo Grok Imagine na HiAPI tem três endpoints: texto para vídeo 1.0, imagem para vídeo 1.0 e imagem para vídeo 1.5. Os três têm o mesmo preço: $0.015 por segundo em 480p e $0.0282 por segundo em 720p, e cada clipe inclui efeitos sonoros gerados, sem custo adicional.
- O 1.0 tem duração de 6 a 30 segundos e aceita até 7 imagens de referência. O 1.5 tem duração de 1 a 15 segundos, aceita apenas uma imagem e, com
aspect_ratio: "auto", faz a saída seguir o formato dessa imagem. - Um clipe de rascunho de 6 segundos em 480p custa $0.09. Abra a página do modelo de imagem para vídeo para testar; novas contas recebem 200 créditos gratuitos.
Qual endpoint usar
| ID do modelo | Entrada | Duração | Proporção | Extras |
|---|---|---|---|---|
grok-imagine/text-to-video |
prompt | 6–30 segundos (padrão 6) | 2:3 (padrão), 3:2, 1:1, 16:9, 9:16 |
mode: normal ou fun |
grok-imagine/image-to-video |
1–7 imagens + prompt opcional | 6–30 segundos (padrão 6) | Igual acima | mode; referencie imagens com @image1, @image2 |
grok-imagine-1.5/image-to-video |
exatamente 1 imagem + prompt opcional | 1–15 segundos (padrão 8) | auto (padrão), 1:1, 16:9, 9:16, 3:2, 2:3 |
Sem mode |
Os três endpoints cobram por segundo: $0.015 (480p, padrão) ou $0.0282 (720p). Preços da HiAPI em tempo real, consultados em 19 de outubro de 2026. Tarefas com falha não são cobradas.
Como escolher:
- Duração acima de 15 segundos ou necessidade de várias imagens de produto como referência: imagem para vídeo 1.0.
- Apenas uma imagem estática, clipe curto e saída que mantenha o formato da imagem estática: imagem para vídeo 1.5. Ele também é o único endpoint que permite menos de 6 segundos, então um clipe em loop de 4 segundos custa menos.
- Sem nenhuma imagem: texto para vídeo 1.0.
| Clipe | 480p | 720p |
|---|---|---|
| 4 segundos (apenas 1.5) | $0.06 | $0.11 |
| 6 segundos | $0.09 | $0.17 |
| 15 segundos | $0.23 | $0.42 |
| 30 segundos (apenas 1.0) | $0.45 | $0.85 |
Saída real
1.0 imagem para vídeo, uma imagem de referência. Uma imagem estática de catálogo de produto de uma bolsa de viagem de fim de semana:

Slow cinematic orbit around the burnt-orange canvas weekender bag, camera circling smoothly from front to three-quarter view, studio lighting glinting off the brass zippers, seamless white background stays clean and shadowless, product perfectly sharp and unchanged, subtle premium e-commerce energy.
grok-imagine/image-to-video, 6 segundos, 720p, uma imagem de referência, $0.17. Solicitamos 9:16, mas a imagem original quadrada retornou quadrada (960×960).
1.0 imagem para vídeo, duas imagens de referência. Enviar ao mesmo tempo uma imagem de estilo de vida e uma imagem do produto mantém a aparência da bolsa consistente no novo cenário:
grok-imagine/image-to-video, 6 segundos, 720p, 9:16, duas imagens de referência, $0.17.
1.5 imagem para vídeo, a mesma imagem estática, dois movimentos de câmera. O movimento de câmera está no prompt. Troque um verbo e você obtém uma tomada diferente:

Slow steady dolly push-in down the rain-soaked market street toward the glowing noodle stall, steam rising and curling from the pots, rain falling in thin streaks, neon sign reflections shimmering on the wet pavement, pedestrians walking slowly away under umbrellas, smooth constant camera speed, one continuous shot, no cuts, cinematic pacing
Abrir a página do modelo com este prompt (envie sua imagem estática primeiro) →
grok-imagine-1.5/image-to-video, 6 segundos, 720p, 16:9, $0.17.
Camera glides slowly to the left in a smooth lateral tracking move, strong parallax between the near market stalls and the far end of the street, rain keeps falling, neon reflections slide across the wet ground, the cook keeps stirring behind the counter, steam drifts sideways, one continuous move, no cuts, no zoom
grok-imagine-1.5/image-to-video, 6 segundos, 720p, 16:9, $0.17.
1.5, um loop ambiente de 4 segundos. Com a câmera fixa, todo o movimento vem da própria cena:
grok-imagine-1.5/image-to-video, 4 segundos, 720p, 16:9, $0.11.
curl
Imagem para vídeo 1.0:
curl -s -X POST https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer $HIAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "grok-imagine/image-to-video",
"input": {
"image_urls": ["https://your-cdn.example.com/product.jpg"],
"prompt": "Slow orbit around the product, studio light, background stays clean",
"duration": 6,
"resolution": "480p",
"aspect_ratio": "9:16"
}
}'
Você recebe um taskId. Faça polling em GET https://api.hiapi.ai/v1/tasks/{taskId} até que data.status seja success, depois baixe data.output[0].url. Os links expiram, então salve o arquivo imediatamente.
Para texto para vídeo, troque o modelo para grok-imagine/text-to-video e remova image_urls. Para usar o 1.5, troque o modelo para grok-imagine-1.5/image-to-video, mantenha uma imagem e remova mode.
Python: enviar, fazer polling, baixar
# pip install requests; export HIAPI_KEY=your-key first
import os, time, uuid, requests
API = "https://api.hiapi.ai/v1/tasks"
H = {"Authorization": f"Bearer {os.environ['HIAPI_KEY']}"}
def generate(model, timeout_s=900, **inp):
body = {"model": model, "input": inp}
# Reuse the same Idempotency-Key if you retry a submit, so a retry never bills twice
r = requests.post(API, json=body, headers={**H, "Idempotency-Key": str(uuid.uuid4())}, timeout=30)
res = r.json()
if res.get("code") != 200:
raise RuntimeError(res) # 400s list every invalid field
task_id = res["data"]["taskId"]
deadline = time.time() + timeout_s
while time.time() < deadline:
d = requests.get(f"{API}/{task_id}", headers=H, timeout=30).json()["data"]
if d["status"] == "success":
return d["output"][0]["url"]
if d["status"] == "fail":
raise RuntimeError(d)
time.sleep(10)
raise TimeoutError(task_id)
still = "https://your-cdn.example.com/still.jpg"
# Draft cheaply on 1.5 at 480p, then re-render the keeper at 720p
draft = generate("grok-imagine-1.5/image-to-video", image_urls=[still],
prompt="slow push-in, steam rising, camera steady", duration=4, resolution="480p")
final = generate("grok-imagine-1.5/image-to-video", image_urls=[still],
prompt="slow push-in, steam rising, camera steady", duration=6, resolution="720p")
# A 20-second clip needs 1.0
long_clip = generate("grok-imagine/image-to-video", image_urls=[still],
prompt="slow push-in, steam rising, camera steady", duration=20, resolution="480p")
with open("clip.mp4", "wb") as f:
f.write(requests.get(final).content)
Parâmetros
| Campo | 1.0 texto para vídeo | 1.0 imagem para vídeo | 1.5 imagem para vídeo |
|---|---|---|---|
prompt |
Obrigatório, até 5.000 caracteres | Opcional | Opcional, até 4.096 caracteres |
image_urls |
Não aceito | 1–7 imagens, jpeg/png/webp, máximo de 10 MB cada | Exatamente 1 imagem, jpeg/png/webp, máximo de 20 MB |
duration |
6–30 | 6–30 | 1–15 |
resolution |
480p (padrão) / 720p |
Igual acima | Igual acima |
aspect_ratio |
2:3 padrão |
2:3 padrão |
auto padrão (segue a imagem) |
mode |
normal (padrão) / fun |
Igual acima | Não aceito |
Erros que você vai encontrar
Todos os erros abaixo retornam HTTP 400 no momento do envio, portanto nenhuma tarefa é criada e nenhuma cobrança é gerada:
duration: minimum: got 4, want 6: o 1.0 começa em 6 segundos. Para clipes mais curtos, use o 1.5.duration: maximum: got 20, want 15: o 1.5 tem no máximo 15 segundos. Para clipes mais longos, use o 1.0.image_urls: maxItems: got 2, want 1: o 1.5 aceita apenas uma imagem.additional properties 'mode' not allowed: o 1.5 não temmode.resolution: value must be one of '480p', '720p': não há 1080p, e o valor deve estar em minúsculas.
Perguntas frequentes
Escolher 1.0 ou 1.5?
O preço por segundo é o mesmo. Escolha com base na entrada e na duração: várias imagens de referência ou mais de 15 segundos, use o 1.0; uma imagem estática e clipe curto, use o 1.5. Em dúvida, gere a mesma imagem estática por 6 segundos em 480p nos dois endpoints; o custo total será de $0.18.
Tem áudio?
Sim. Cada clipe acima retornou uma faixa de áudio gerada; no clipe em loop do farol é possível ouvir claramente o som das ondas. Não há como desativar (generate_audio e audio são rejeitados como campos desconhecidos), e o áudio não afeta o preço. Se não quiser, remova a faixa de áudio na edição.
Dá para gerar em 1080p?
Não. A resolução máxima dos três endpoints é 720p.
O que mode: "fun" faz?
É uma opção do 1.0 que deixa o movimento mais animado e exagerado. normal é o padrão e também a escolha mais segura para clipes de produto.
Mais exemplos: Grok Imagine 1.5 para vídeos curtos. Para ver os preços de toda a linha, consulte Preços da API Grok Imagine. Para gerar imagens estáticas, consulte o guia da API de imagens Grok Imagine.
Artigos relacionados
Ver todos os artigos →-
Tutorial
Como chamar hailuo-2.3-fast/image-to-video pela API HiAPI: curl e Python na prática
A primeira requisição executável do nível rápido e econômico de geração de vídeo a partir de imagem — do ID do modelo ao download do MP4
-
Tutorial
Como chamar hailuo-2.3/text-to-video pela API HiAPI: curl, Python e exemplos de requisição executáveis
-
Tutorial
Usar Kandinsky 6.0 Pro text-to-video na HiAPI: tutorial de curl e Python
Demonstração prática com foco na requisição: montar a chamada de prompt para clipe de vídeo, enviar a requisição, consultar o status de conclusão e baixar o resultado