SpaceXAI: Grok Imagine Video
O Grok Imagine Video gera clips curtos a partir de texto, de uma imagem inicial ou de até sete referências visuais. A edição clássica também edita clips MP4 existentes e acrescenta 2–10 segundos de continuação. A geração chega a 720p com áudio; edição e prolongamento preservam o enquadramento de origem dentro dos seus próprios limites.
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.
O Grok Imagine Video é a edição clássica da família de vídeo Grok Imagine. A documentação atual do fabricante abrange gerar um clip novo a partir de um pedido, animar uma imagem inicial, usar referências visuais e alterar ou continuar um vídeo existente. Estes fluxos produzem artefactos diferentes: uma cena nova, uma versão editada de filmagens fornecidas ou um vídeo que contém as filmagens originais seguidas de conteúdo novo. Escolha o fluxo a partir do material já disponível e da parte do plano que precisa de mudar.
Para um plano novo de texto para vídeo, descreva o sujeito, o ambiente, a ação visível, a câmara e o som. A geração standard suporta clips de 1–15 segundos, com saída de 480p ou 720p e áudio gerado. Estão documentadas proporções quadradas, horizontais, verticais e mais largas, incluindo 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9 e 5:2. Um pedido original pode solicitar uma lanterna de papel a mover-se suavemente sobre um pátio tranquilo, enquanto a câmara faz um travelling lateral. A revisão útil verifica se o movimento, o enquadramento e o som ambiente apoiam esse único plano.
Em imagem para vídeo, a imagem estática fornecida é o primeiro fotograma. Prepare-a com o recorte, o sujeito e os pormenores visíveis pretendidos e depois descreva a ação seguinte. A saída segue a proporção da imagem. Uma imagem inicial dá uma composição de abertura exata, enquanto referência para vídeo usa imagens para orientar as pessoas, os produtos ou o ambiente numa cena composta de novo. Manter estas duas funções distintas ajuda a evitar uma abertura não pretendida quando o objetivo é colocar um objeto conhecido noutro cenário.
O modelo clássico aceita até sete imagens de referência por pedido orientado por referências. Esse modo está limitado a dez segundos e 720p. Atribua uma função clara a cada referência e identifique-a pela posição na lista, começando em <IMAGE_0>. Para uma pequena cena de produto, uma referência pode identificar o objeto e outra o local desejado. Concentre o pedido na colocação do objeto e na ação principal do plano. O modo clássico de referências usa a sua própria configuração; a edição 1.5 completa fornece os controlos adicionais de seleção de voz e fotogramas fixados.
A edição de vídeo recebe um clip existente e um pedido que descreve a alteração. O fabricante aceita fontes MP4 com codecs suportados como H.264, H.265 ou AV1, com até 8.7 segundos. O resultado editado mantém a duração e a proporção de origem e segue a sua resolução até ao limite de 720p. Controlos personalizados de duração, proporção e resolução não se aplicam a este fluxo de edição. Prepare uma fonte que já tenha a composição e os tempos necessários à utilização final, para que o pedido se possa concentrar na modificação visual pretendida.
Um pedido original de edição pode alterar a cor de um cachecol mantendo o rosto da pessoa, o movimento, o fundo e a câmara. Indique explicitamente esses elementos a preservar juntamente com a alteração. O fabricante descreve a preservação do restante conteúdo de origem o mais fielmente possível, o que é um objetivo útil para revisão, não uma garantia de que todos os píxeis permanecem idênticos. Compare o resultado ao longo de todo o clip, sobretudo quando o objeto se move, cruza outro objeto ou fica parcialmente oculto. O artefacto final é o clip editado, não apenas uma imagem estática com a nova cor.
O prolongamento de vídeo continua a partir do último fotograma de um MP4 existente. A duração de origem documentada é de 2–15 segundos; a parte acrescentada tem 2–10 segundos, com seis segundos como predefinição. A duração do prolongamento refere-se apenas à nova parte. Uma fonte de dez segundos seguida de cinco segundos de continuação produz um vídeo de quinze segundos que contém ambas as partes. O resultado preserva a proporção e a resolução de origem dentro do limite de 720p. Prepare o momento final da fonte e descreva o que deve acontecer a seguir, como o sujeito virar-se para um objeto que se aproxima enquanto a câmara continua o movimento atual.
Reveja um prolongamento em torno do limite entre a fonte e o conteúdo novo. Verifique a identidade do sujeito, a direção do movimento, o ritmo da câmara, a luz e o som, para que a continuação se adeque à ação anterior. Se um clip terminar num ponto visualmente incómodo, torne esse limite uma parte explícita do plano seguinte. A montagem de cenas mais longas é uma decisão de edição: os limites de duração de geração, referência, edição e prolongamento do modelo são separados, e o resultado total de um prolongamento pode ser mais longo do que um clip standard de geração nova.
O fluxo de vídeo do fabricante é assíncrono. Um identificador de pedido acompanha uma tarefa até que um resultado concluído forneça o local e a duração do vídeo; os locais de saída são temporários. Conserve o resultado reproduzível e os seus materiais de origem ao preparar uma edição de produção. O Grok Imagine Video 1.5 completo oferece geração nativa de 1080p e ancoragem visual, de voz e de fotogramas mais rica, enquanto o Lite serve trabalho simples de pedido ou imagem inicial. A edição clássica continua útil quando o material inicial já é um vídeo que precisa de uma alteração ou continuação dirigida.
Ailoot Ultra · Vídeo POST /v1/videos x-ai/grok-imagine-video
x-ai/grok-imagine-videoIntrodução
O Grok Imagine Video gera clips curtos a partir de texto, de uma imagem inicial ou de até sete referências visuais. A edição clássica também edita clips MP4 existentes e acrescenta 2–10 segundos de continuação. A geração chega a 720p com áudio; edição e prolongamento preservam o enquadramento de origem dentro dos seus próprios limites.
- 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- Formato de saída
- bytes MP4 originais; sem normalização nem transcodificação
| Campo | Tipo | Requisito | Valores e limites | Predefinição |
|---|---|---|---|---|
Campomodel | Tipostring | RequisitoObrigatório | Valores e limites x-ai/grok-imagine-video | Predefinição— |
Campoprompt | Tipostring | RequisitoObrigatório | Valores e limites | Predefinição— |
Campoduration | Tipointeger | RequisitoObrigatório | Valores e limites 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 Mínimo: 1 Máximo: 600 | Predefinição— |
Camporesolution | Tipostring | RequisitoOpcional | Valores e limites 480p, 720p | Predefinição— |
Campoaspect_ratio | Tipostring | RequisitoOpcional | Valores e limites 16:9, 9:16, 1:1, 4:3, 3:4, 3:2, 2:3 | Predefinição— |
Campogenerate_audio | Tipoboolean | RequisitoOpcional | Valores e limites false | Predefinição— |
Campoframe_images | Tipoarray | RequisitoOpcional | Valores e limites Número mínimo de elementos: 1 Número máximo de elementos: 1 Conteúdo de entrada: Matriz de objetos de fotograma. Cada objeto tem type=image_url, image_url com url e frame_type. Utilize um URL HTTPS de imagem e defina frame_type como first_frame. Cada função de fotograma aparece, no máximo, uma vez. Chaves exatas: type, image_url, frame_type Condições: Estas chaves descrevem cada objeto de fotograma; image_url contém apenas url. Omita frame_images num pedido apenas de texto. | Predefinição— |
Campoinput_references | Tipoarray | RequisitoOpcional | Valores e limites | Predefinição— |
Camposize | Tipostring | RequisitoOpcional | Valores e limites 854x480, 1280x720, 480x854, 720x1280, 480x480, 720x720, 640x480, 960x720, 480x640, 720x960, 720x480, 1080x720, 480x720, 720x1080 Padrão: ^[1-9][0-9]*x[1-9][0-9]*$ | Predefinição— |
Campocallback_url | Tipostring | RequisitoOpcional | Valores e limites Padrão: ^https:// | Predefinição— |
Camposession_id | Tipostring | RequisitoOpcional | Valores e limites | Predefinição— |
Campotrace | Tipoobject | RequisitoOpcional | Valores e limites | Predefinição— |
Campouser | Tipostring | RequisitoOpcional | Valores e limites | Predefinição— |
Combinações de materiais de entrada
Texto para vídeo · Uma instrução escrita. · Obrigatório: model, prompt, duration
Forneça prompt como texto e duration em segundos inteiros. Escolha uma resolução suportada; adicione uma proporção ou utilize um tamanho enumerado.
model: Tipo: string · x-ai/grok-imagine-video
prompt: Tipo: string · Número máximo de bytes UTF-8: 10 000 · São obrigatórios caracteres que não sejam espaços: Sim
Imagem para vídeo · Uma instrução escrita e uma imagem do primeiro fotograma. · Obrigatório: model, prompt, duration, frame_images
frame_images é uma matriz. Cada objeto de fotograma tem type, image_url e frame_type; image_url contém url. Defina type como image_url. Utilize first_frame. Cada função de fotograma aparece, no máximo, uma vez. Forneça um URL HTTPS público de imagem para cada fotograma. Utilize imagens de fotogramas ou referências de imagem num pedido; não combine ambas. Escolha uma resolução suportada; adicione uma proporção ou utilize um tamanho enumerado.
Chaves exatas: type, image_url, frame_type
model: Tipo: string · x-ai/grok-imagine-video
prompt: Tipo: string · Número máximo de bytes UTF-8: 10 000 · São obrigatórios caracteres que não sejam espaços: Sim
Reference to video · Uma instrução escrita e referências de imagem suportadas. · Obrigatório: model, prompt, duration, input_references
input_references é uma matriz de objetos. Defina type como image_url e utilize o campo correspondente que contém url. Utilize URLs HTTPS públicos. Omita frame_images para selecionar o modo de referência. Não combine referências de imagem com imagens de fotogramas. Escolha uma resolução suportada; adicione uma proporção ou utilize um tamanho enumerado.
model: Tipo: string · x-ai/grok-imagine-video
prompt: Tipo: string · Número máximo de bytes UTF-8: 10 000 · São obrigatórios caracteres que não sejam espaços: Sim
Parâmetros e ciclo de vida do método
| Parâmetro | Contrato |
|---|---|
Parâmetrocontent_type | Contratoapplication/json |
Parâmetrorequired | Contratomodel, prompt, duration |
Parâmetromaterial_types | Contratotext, image |
Parâmetroadditional_properties | Contratofalse |
Parâmetrooptional_controls | Contratoresolution, aspect_ratio, generate_audio, frame_images, input_references, size, callback_url, session_id, trace, user |
Ciclo de vida: submit_once_poll_original
GET /v1/videos/{public_id}
GET /v1/videos/{public_id}/content
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 | Unidade de faturação | Condições de faturação | Custo |
|---|---|---|---|---|---|
| ConfiguraçãoTarifas base por token | Tabela de tarifasTarifa base | Quantidade prevista— | Unidade de faturação— | Condições de faturação— | 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çãoImagem de entrada | Tabela de tarifas— | Quantidade prevista— | Unidade de faturaçãopor imagem | Condições de faturaçãoNão é declarada nenhuma condição adicional nesta chave de preços. | Custo Entrada · Imagem de entrada · Estimativa apenas para comparação $0.004 por imagem |
| ConfiguraçãoPreço do vídeo | Tabela de tarifas— | Quantidade prevista— | Unidade de faturaçãopor segundo de vídeo | Condições de faturaçãoresolution: 480p | Custo Saída · Preço do vídeo · Estimativa apenas para comparação $0.1 por segundo de vídeo |
| ConfiguraçãoPreço do vídeo | Tabela de tarifas— | Quantidade prevista— | Unidade de faturaçãopor segundo de vídeo | Condições de faturaçãoresolution: 720p | Custo Saída · Preço do vídeo · Estimativa apenas para comparação $0.14 por segundo de vídeo |
| ConfiguraçãoCusto estimado de geração | Tabela de tarifas— | Quantidade previstaestimativa para uma geração | Unidade de faturação— | Condições de faturação— | Custo Saída · Custo estimado de geração · Estimativa apenas para comparação $0.1 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 →
Detalhes da tarifa de referência
As tabelas de referência do modelo não alteram a seleção do método, as cotações ou os custos. Os custos ativos usam as tarifas do método Ailoot selecionado.
Referências de preços das configurações de vídeo
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 | Condições de faturação | Custo |
|---|---|---|
| ConfiguraçãoImagem de entrada | Condições de faturaçãoNão é declarada nenhuma condição adicional nesta chave de preços. | Custo Entrada · Imagem de entrada $0.004 por imagem Referência de preço publicada para a configuração apresentada. Os montantes finais cobrados seguem a configuração efetivamente faturada. |
| ConfiguraçãoPreço do vídeo | Condições de faturaçãoresolution: 480p | Custo Saída · Preço do vídeo $0.1 por segundo de vídeo Referência de preço publicada para a configuração apresentada. Os montantes finais cobrados seguem a configuração efetivamente faturada. |
| ConfiguraçãoPreço do vídeo | Condições de faturaçãoresolution: 720p | Custo Saída · Preço do vídeo $0.14 por segundo de vídeo Referência de preço publicada para a configuração apresentada. Os montantes finais cobrados seguem a configuração efetivamente faturada. |
Exemplos de pedidos
Ailoot Ultra · Vídeo
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":"x-ai/grok-imagine-video","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
Receber e guardar os resultados
Ailoot Ultra · Vídeo
URLs assinados para conteúdo pertencente ao utilizador
GET /v1/videos/{public_id}GET /v1/videos/{public_id}/content
Verificar o estado da tarefa
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
Outras leituras de conteúdo
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
Guardar todos os resultados concluídos
Guarde cada vídeo concluído ou ficheiro devolvido; obtenha cada URL de recurso efetivamente devolvido.
Conserve todos os resultados reais que pertencem ao utilizador e os respetivos metadados medidos devolvidos.
Se for necessário verificar a resposta original
503 result_pending_check + id original + X-Should-Retry:false; nunca repita o original
Campos da resposta
| Campo | Tipo | Significado |
|---|---|---|
Campoindex | Tipointeger | SignificadoPosição deste vídeo na lista de saídas, com contagem a partir de zero. |
Campocontent_url | Tipostring | SignificadoURL HTTPS assinado para transferir este vídeo concluído. |
Camposha256 | Tipostring | null | SignificadoResumo criptográfico SHA-256 dos bytes do vídeo original; null se não estiver disponível. |
Camposize_bytes | Tipointeger | null | SignificadoTamanho do ficheiro de vídeo original em bytes; null se não estiver disponível. |
Campoduration_ms | Tipointeger | null | SignificadoDuração medida do vídeo em milissegundos; null se não estiver disponível. |
Campowidth | Tipointeger | null | SignificadoLargura do vídeo em píxeis; null se não estiver disponível. |
Campoheight | Tipointeger | null | SignificadoAltura do vídeo em píxeis; null se não estiver disponível. |
Campovideo_codec | Tipostring | null | SignificadoIdentificador do codec de vídeo; null se não estiver registado. |
Campohas_audio | Tipoboolean | null | SignificadoIndica se o vídeo contém uma faixa de áudio; null se não tiver sido medido. |
Campoaudio_codec | Tipostring | null | SignificadoIdentificador do codec de áudio; null quando não está registado qualquer identificador. |
Erros e passos seguintes
| Resposta | Condição | Passo seguinte |
|---|---|---|
Resposta404 · not_found_error | CondiçãoO acesso ao vídeo não está disponível ou este ID de vídeo não foi encontrado. | Passo seguinteVerifique o acesso ao vídeo. Para um vídeo existente, utilize o ID público original e a mesma chave API. |
Resposta401 · authentication_error | CondiçãoA chave API não corresponde à conta autenticada. | Passo seguinteVerifique a sua chave API e o acesso à conta antes de enviar. |
Resposta400 · invalid_request_error | CondiçãoNão foi possível ler o pedido ou o índice de transferência é inválido. | Passo seguinteCorrija o corpo do pedido. Para uma transferência, escolha um índice de saída devolvido pela tarefa original. |
Resposta422 · price_unavailable | CondiçãoNão é possível calcular o preço da configuração de vídeo selecionada. | Passo seguinteEscolha uma configuração de vídeo suportada e preencha as opções obrigatórias antes de enviar um pedido corrigido. |
Resposta422 · invalid_request_error | CondiçãoUma entrada de vídeo ou a tarefa original de continuação é inválida. | Passo seguinteUtilize entradas HTTPS válidas. Para continuação, utilize o ID público do seu vídeo original concluído com a mesma chave API. |
Resposta402 · billing_error | CondiçãoO saldo disponível ou os limites não permitem efetuar uma reserva. | Passo seguinteVerifique o saldo disponível e os limites antes de enviar um novo pedido. |
Resposta503 · server_error | CondiçãoA verificação, o armazenamento ou o acesso ao serviço de vídeo está temporariamente indisponível. | Passo seguinteAguarde a disponibilidade do serviço. Se já tiver um ID de vídeo, consulte essa tarefa original em vez de criar outra geração. |
Resposta503 · result_pending_check | CondiçãoO resultado e a cobrança do vídeo original precisam de verificação. | Passo seguinteConserve o ID de vídeo devolvido e consulte essa tarefa. Não envie um pedido de geração substituto enquanto estiver a ser verificada. |
Resposta503 · owned_result_unavailable | CondiçãoA transferência do vídeo existente está temporariamente indisponível. | Passo seguinteConsulte a mesma tarefa de vídeo mais tarde e transfira a saída existente. Uma nova geração cria uma operação separada. |
Resposta409 · video_not_ready | CondiçãoO conteúdo do vídeo não foi publicado. | Passo seguinteConsulte o estado da tarefa original. Transfira quando indicar completed; se indicar failed, siga o aviso de verificação da cobrança. |
Aliases
Aliases do modelo
Ailoot Ultra x-ai/grok-imagine-video
Aliases dos caminhos dos métodos
Use os caminhos dos métodos indicados acima.
IDs de chamada relacionados
FAQ · SpaceXAI: Grok Imagine Video
- Que entradas e resultados estão disponíveis?
POST /v1/videos·x-ai/grok-imagine-video:text,image→video- Que campos utiliza o pedido?
POST /v1/videos·x-ai/grok-imagine-video:model,prompt,duration,resolution,aspect_ratio,generate_audio,frame_images,input_references,size,callback_url,session_id,trace,user- Que limites se aplicam?
POST /v1/videos·x-ai/grok-imagine-video:duration.minimum:1;duration.maximum:600;frame_images.max_items:1;frame_images.min_items:1