modelos

sora-2

Markdown · JSON

sora-2

O Sora 2 cria vídeo com diálogos sincronizados, efeitos sonoros e áudio de fundo a partir de texto ou de uma imagem de referência. O perfil normal permite exploração visual e clips conceptuais, com fluxos separados do produtor para personagens não humanas reutilizáveis, continuação e edições de vídeo específicas.

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 Sora 2 é o modelo da OpenAI para geração de vídeo e áudio, destinado a clips dinâmicos criados a partir de uma descrição escrita da cena ou de uma imagem de referência. Gera a sequência visual juntamente com fala, efeitos e som de fundo sincronizados. O perfil normal do Sora 2 destina-se à exploração visual, ao desenvolvimento de conceitos, a protótipos e a montagens preliminares. O Sora 2 Pro é uma edição separada, orientada para maior fidelidade visual e acabamento em resolução superior.

Descreva um plano que se possa ver e ouvir

O guia de instruções do fabricante organiza um bom briefing em torno do enquadramento, sujeito, ação, cenário e luz. Dê à cena um estilo visual coerente e descreva o movimento em momentos claros. Um conceito original de produto pode mostrar um pequeno objeto mecânico a dar uma volta numa bancada enquanto a câmara se aproxima lentamente, com luz suave de uma janela e um som discreto de motor. Indique o que o espectador deve notar e como termina a ação.

Mantenha compreensíveis o movimento da câmara e a ação do sujeito em cada plano. Uma sequência complexa pode ser dividida em blocos de planos distintos, cada um com o seu enquadramento, ação e iluminação. Preserve os mesmos pormenores do sujeito e a paleta quando vários clips se destinam a formar uma sequência. O guia salienta que os planos mais curtos tendem a seguir as instruções de forma mais fiável e que a geração repetida do mesmo pedido produz diferentes tomadas.

O lançamento do modelo descreve melhorias no comportamento físico e na continuidade entre planos, incluindo estilos realistas, cinematográficos e anime. São capacidades pretendidas que devem ser dirigidas e inspecionadas. Reveja o movimento, o contacto entre objetos, as proporções e a continuidade, em vez de assumir que um primeiro fotograma plausível garante uma sequência coerente. Se uma ação for pouco clara, simplifique-a e dê-lhe um início e um fim visíveis.

Dirija o diálogo e o som separadamente

Especifique as falas separadamente da descrição visual e identifique os interlocutores de forma consistente. Mantenha o diálogo suficientemente curto para caber na ação e na duração pretendida do clip. Numa animação com duas personagens, alterne uma pergunta e uma resposta breves, em vez de pedir a um plano curto que comporte um discurso longo. O guia avisa que diálogos complexos e extensos podem prejudicar o ritmo e a sincronização.

Descreva o ambiente sonoro adequado à cena: o som de um pequeno movimento, a ambiência da sala ou o ritmo de um efeito ambiental. Explique que som deve coincidir com a ação. Ouça a fala e os efeitos resultantes juntamente com a imagem, verificando a atribuição das vozes, as palavras e os tempos. O áudio sincronizado faz parte do clip gerado, em vez de ser uma resposta de texto separada.

Dimensões, duração e abertura orientada por imagem

As dimensões de saída documentadas para o modelo normal são 720×1280 na vertical e 1280×720 na horizontal. As dimensões de maior resolução do perfil Pro não devem ser atribuídas ao Sora 2 normal. As dimensões e a duração são definições explícitas do pedido; escrever dimensões diferentes ou pedir um filme mais longo no texto não altera essas definições. A referência de criação enumera durações de clip de 4, 8 e 12 segundos, pelo que deve escolher um momento curto e definido ao preparar um plano. O fluxo alargado do produtor também documenta durações de 16 e 20 segundos.

Uma imagem de referência fixa o primeiro fotograma, e o texto descreve o que acontece a seguir. O produtor aceita referências JPEG, PNG e WebP e exige que a imagem corresponda às dimensões de destino do vídeo. Prepare o sujeito, o ambiente e a composição nessa imagem inicial e peça um movimento específico. É uma referência para o fotograma inicial, não uma garantia de que todos os pormenores se mantêm ao longo do clip.

Personagens não humanas reutilizáveis

O fluxo alargado do produtor permite criar um recurso de personagem reutilizável a partir de um pequeno vídeo de referência de um animal, mascote ou objeto. As instruções de preparação pedem um clip MP4 de cerca de dois a quatro segundos, entre 720p e 1080p, em 16:9 ou 9:16. Fazer coincidir as proporções da fonte e da saída ajuda a evitar um aspeto esticado. A geração pode referenciar até duas personagens.

Conserve o identificador da personagem e mencione o seu nome no pedido; passar apenas o identificador não constitui a preparação completa indicada pelo guia. Os recursos de personagem podem acompanhar uma geração orientada por imagem, mas as extensões de vídeo não os aceitam. Por predefinição, o produtor bloqueia o carregamento de personagens com semelhança humana e rejeita imagens de referência com rostos humanos no fluxo documentado da API. As funcionalidades de personagens pessoais da aplicação Sora constituem um fluxo de produto separado.

Continue ou edite um clip concluído

Uma extensão recebe um vídeo de origem concluído e um pedido de continuação, utilizando o clip completo como contexto para o movimento, a direção da câmara e a continuidade da cena. O guia descreve acréscimos de até 20 segundos por extensão. A entrada documentada para a extensão é o vídeo de origem e texto; referências adicionais de personagens ou imagens ficam excluídas desse modo. Descreva como prossegue a ação existente, em vez de introduzir uma cena sem relação nem transição.

A edição de vídeo visa uma alteração clara num clip existente. Uma revisão específica pode alterar a cor de um objeto ou a paleta da cena, conservando o resto do plano. O guia do produtor recomenda uma alteração bem definida de cada vez e distingue a edição de um vídeo gerado do carregamento de filmagens arbitrárias, sujeito a uma condição de elegibilidade separada. Conserve a fonte concluída e identifique a revisão exata necessária antes de fazer outra edição.

Tarefas de renderização e vídeo terminado

O fluxo de vídeo documentado pelo produtor é assíncrono: uma tarefa submetida pode ficar em fila ou em curso antes de ser concluída ou falhar. Uma tarefa concluída fornece um vídeo MP4; as miniaturas e as folhas de sprites permitem pré-visualizações e navegação. Mantenha a identidade da tarefa associada ao pedido, às referências e aos recursos devolvidos. Uma resposta inicial à tarefa não é o vídeo final reproduzível.

O fluxo normal de transferência descreve uma validade de uma hora para o URL de transferência. O fluxo alargado em lote prepara pedidos independentes de renderização em JSON com identificadores de item estáveis, referências carregadas e um resultado associado a cada plano; os seus recursos concluídos têm um período de transferência separado de até 24 horas. Guarde rapidamente o clip terminado e inspecione a imagem e o som reais antes de o considerar uma tomada selecionada.

As restrições de conteúdo documentadas para a API do produtor exigem material adequado a públicos com menos de 18 anos e rejeitam personagens ou música protegidas por direitos de autor e a geração de pessoas reais. Prepare a cena e as referências em conformidade. O resultado direto do modelo é vídeo com áudio, não imagens fixas geradas, uma resposta de ferramenta de conversação ou um filme ilimitado. Conserve a identidade exata do modelo normal e o clip de origem aceite ao continuar um conceito visual.

Ailoot Ultra · Chat Completions POST /v1/chat/completions sora-2

sora-2

Outro /sora-2

Introdução

O Sora 2 cria vídeo com diálogos sincronizados, efeitos sonoros e áudio de fundo a partir de texto ou de uma imagem de referência. O perfil normal permite exploração visual e clips conceptuais, com fluxos separados do produtor para personagens não humanas reutilizáveis, continuação e edições de vídeo específicas.

Entradas aceites
Texto
Resultados
json · sse

Disponível no Ailoot · entradas e métodos

Ailoot Ultra · Chat Completions POST /v1/chat/completions
Entrada
text
Saída
json, sse
Formato de saída
JSON ou text/event-stream
CampoTipoRequisitoValores e limitesPredefinição
CampomodelTipostringRequisitoObrigatórioValores e limites
sora-2
Predefinição—
CampomessagesTipomessage[]RequisitoObrigatórioValores e limitesPredefinição—
Campomessages[].roleTipostringRequisitoObrigatórioValores e limitesPredefinição—
Campomessages[].contentTipostringRequisitoObrigatórioValores e limitesPredefinição—
CampostreamTipobooleanRequisitoOpcionalValores e limitesPredefiniçãofalse
Combinações de materiais de entrada

owned_text_messages

Parâmetros e ciclo de vida do método
ParâmetroContrato
Parâmetrocontent_typeContratoapplication/json
ParâmetrorequiredContratomodel, messages
Parâmetromaterial_typesContratotext
ParâmetromessagesContratomatriz de mensagens com role e content como cadeia literal
Parâmetrofile_materialContratoO material UTF-8 real pode ser inserido como conteúdo de cadeia literal; não se deduz qualquer referência a ficheiro.
Parâmetrooptional_controlsContratostream

Ciclo de vida: synchronous_json_or_sse

Tarifários

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 Ailoot

Preços por configuração

ConfiguraçãoTabela de tarifasCusto
ConfiguraçãoTarifas base dos tokensTabela de tarifasTarifa baseCusto
Entrada · Tokens de entrada $0 / 1K tokens
Saída · Tokens de saída $0.2 / 1K tokens
Entrada · Leitura da cache $0 / 1K tokens
Entrada · Escrita na cache $0 / 1K tokens
Entrada · Escrita na cache, 1 hora — / 1K tokens

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 · Chat Completions

curl · resposta JSON completaPython SDK · resposta JSON completacurl · preserve o fluxo SSE
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model":"sora-2","messages":[{"role":"user","content":"hello"}],"stream":false}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -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'
from pathlib import Path
print(Path("result.json").read_text(encoding="utf-8"))
PY_RESULT
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model="sora-2", messages=[{"role":"user","content":"hello"}], stream=False)
import json
from pathlib import Path

data = result.to_dict(mode="json")
Path("result.json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
print(json.dumps(data, ensure_ascii=False, indent=2))
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model":"sora-2","messages":[{"role":"user","content":"hello"}],"stream":true}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.sse

Receber e guardar os resultados

Ailoot Ultra · Chat Completions

JSON ou text/event-stream

Guardar todos os resultados concluídos

Guarde cada resposta, ficheiro e parte de conteúdo devolvidos na íntegra.

Conserve todos os bytes JSON ou SSE, os cabeçalhos da resposta, a utilização devolvida e todos os campos de resultado fornecidos. Não é afirmada qualquer família de resultados específica do modelo.

Se for necessário verificar a resposta original

Conserve a resposta original e a identidade da tentativa; não se deduz qualquer consulta periódica de nova tarefa ou reenvio.

Campos da resposta
CampoTipoSignificado
Campocomplete response JSONTipoobjectSignificadoConserve todos os campos devolvidos sem presumir uma família de resultados específica do modelo.
CampoSSE data eventsTipostreamSignificadoConserve todos os eventos devolvidos e marcadores terminais sem selecionar apenas os campos de texto.

Aliases

Aliases do modelo

Ailoot Ultra sora-2

Aliases dos caminhos dos métodos

Use os caminhos dos métodos indicados acima.

IDs de chamada relacionados

sora-2

Ailoot Ultra · Anthropic Messages POST /v1/messages sora-2

sora-2

Outro /sora-2

Introdução

O Sora 2 cria vídeo com diálogos sincronizados, efeitos sonoros e áudio de fundo a partir de texto ou de uma imagem de referência. O perfil normal permite exploração visual e clips conceptuais, com fluxos separados do produtor para personagens não humanas reutilizáveis, continuação e edições de vídeo específicas.

Entradas aceites
Texto
Resultados
json · sse

Disponível no Ailoot · entradas e métodos

Ailoot Ultra · Anthropic Messages POST /v1/messages
Entrada
text
Saída
json, sse
Formato de saída
JSON ou SSE
CampoTipoRequisitoValores e limitesPredefinição
CampomodelTipostringRequisitoObrigatórioValores e limites
sora-2
Predefinição—
CampomessagesTipomessage[]RequisitoObrigatórioValores e limitesPredefinição—
Campomessages[].roleTipostringRequisitoObrigatórioValores e limites
user, assistant
Predefinição—
Campomessages[].contentTipostringRequisitoObrigatórioValores e limitesPredefinição—
Campomax_tokensTipointegerRequisitoObrigatórioValores e limitesPredefinição—
CampostreamTipobooleanRequisitoOpcionalValores e limitesPredefiniçãofalse
Combinações de materiais de entrada

Texto · Texto UTF-8

Cadeia de caracteres messages[].content

Parâmetros e ciclo de vida do método
ParâmetroContrato
Parâmetrocontent_typeContratoapplication/json
ParâmetrorequiredContratomodel, messages, max_tokens
Parâmetrooptional_controlsContratostream
Parâmetromaterial_typesContratotext
Parâmetrotext_file_materialContratoLeia o documento UTF-8 real e coloque o texto na entrada indicada ou na cadeia de conteúdo da mensagem.

Ciclo de vida: synchronous_or_streamed

Tarifários

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 Ailoot

Preços por configuração

ConfiguraçãoTabela de tarifasCusto
ConfiguraçãoTarifas base dos tokensTabela de tarifasTarifa baseCusto
Entrada · Tokens de entrada $0 / 1K tokens
Saída · Tokens de saída $0.2 / 1K tokens
Entrada · Leitura da cache $0 / 1K tokens
Entrada · Escrita na cache $0 / 1K tokens
Entrada · Escrita na cache, 1 hora — / 1K tokens

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 · Anthropic Messages

Corpo JSON mínimo completocurl · use o seu documento UTF-8Python · guarde o resultado completo
{
  "model": "sora-2",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'sora-2', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -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

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'sora-2', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}
headers['x-api-key'] = api_key
request = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))

Receber e guardar os resultados

Ailoot Ultra · Anthropic Messages

JSON ou SSE

Guardar todos os resultados concluídos

Guarde cada resposta, ficheiro e parte de conteúdo devolvidos na íntegra.

Conserve todos os blocos de conteúdo, as assinaturas de raciocínio e os ID reais de utilização de ferramentas. Junte todos os deltas de blocos SSE; o primeiro bloco de texto não é a saída completa.

Se for necessário verificar a resposta original

Conserve os ID e cabeçalhos de pedido/resposta. Não é fornecido um URL genérico para obter uma tarefa textual.

Campos da resposta
CampoTipo
CampoidTipostring
CampomodelTipostring
Campocontent[]Tipotext|thinking|tool_use|other content block
Campostop_reasonTipostring|null
CampousageTipoobject
Erros e passos seguintes
RespostaCondiçãoPasso seguinte
Resposta400 · invalid_request_errorCondiçãoCampos obrigatórios, representação do material ou valor do parâmetro inválidosPasso seguinteCorrija os campos indicados antes de um novo pedido de criação.

Aliases

Aliases do modelo

Ailoot Ultra sora-2

Aliases dos caminhos dos métodos

Use os caminhos dos métodos indicados acima.

IDs de chamada relacionados

sora-2

FAQ · sora-2
Que entradas e resultados estão disponíveis?

POST /v1/chat/completions · sora-2: text → json, sse

POST /v1/messages · sora-2: text → json, sse

Que campos utiliza o pedido?

POST /v1/chat/completions · sora-2: model, messages, stream

POST /v1/messages · sora-2: model, messages, max_tokens, stream

Mais detalhes

Ligue o Ailoot ao Claude Code, OpenCode, Hermes ou à sua aplicação.

A empresa e a sua carteira de projetos

A empresa e a sua carteira de projetos: milhões de clientes; vendas mensais na ordem dos milhares de milhões.

Compre tokens com desconto.

Desconto por subscrição para trabalho regular. Códigos promocionais — até 50% na compra de tokens.

Subscrição
Escolha um plano com desconto para os pedidos regulares.
Código promocional até 50%
Introduza o código na compra. O preço é recalculado conforme a campanha em vigor.
Custos no histórico
O modelo, os tokens e o montante são guardados para cada pedido.

Escolher subscrição · Ver preços dos modelos

Ligue a API ao produto que vende.

SaaS, aplicações e bots — ao abrigo da oferta e do contrato de licença Ailoot. Para revenda, peça uma licença de revendedor.

Aplicação comercial
Integre geração de texto, imagens, vídeo e som nas funcionalidades pagas do seu serviço.
Licença de revendedor
Envie uma descrição do projeto e do modelo de acesso. Peça condições escritas de utilização e revenda.
Documentos no site
A oferta, o contrato de licença e a política de tratamento de dados estão disponíveis antes da ligação.

Pedir licença de revendedor · Oferta e contrato de licença