Runway: Gen-4.5
O Runway Gen-4.5 cria vídeos a partir de uma descrição de cena ou de uma imagem com orientação de movimento. Os clips de 2–10 segundos, os pedidos explícitos de câmara e as escolhas separadas de composição para texto para vídeo e imagem para vídeo apoiam conceitos cinematográficos, planos de apoio e cenas visuais animadas.
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 Runway Gen-4.5 é um modelo de geração de vídeo com modos de texto para vídeo e imagem para vídeo. Pode seguir um pedido que descreva a composição da cena, a ação do sujeito, a coreografia da câmara e uma sequência de acontecimentos. O resultado útil é um plano curto gerado que pode ser revisto, guardado ou montado com outras filmagens.
Escolha o modo de entrada para o plano
Texto para vídeo começa com uma descrição escrita de cena. Inclua tanto o conteúdo visível como o movimento: sujeito, cenário, iluminação, enquadramento, ação e comportamento da câmara. Este modo é útil para uma cena nova, planos de apoio, um fundo de composição ou um conceito visual em que o fotograma inicial não tem de reproduzir uma imagem fornecida.
Imagem para vídeo começa com uma imagem que funciona como primeiro fotograma. Essa imagem fornece composição, tema, iluminação e estilo. Concentre o pedido escrito no que deve acontecer a seguir: a ação do sujeito, o movimento no ambiente, o movimento de câmara e a progressão do plano.
Prepare uma imagem clara com os pormenores importantes já visíveis. Rostos e mãos desfocados ou outros artefactos podem tornar-se mais evidentes quando animados. Uma referência que sugira movimento rápido através de poeira ou desfocagem de movimento também pode entrar em conflito com um pedido de sujeito parado.
Descreva diretamente o aspeto visual e o movimento
Use linguagem natural clara e descrições positivas do resultado pretendido. Um pedido de texto para vídeo pode indicar primeiro a vista de câmara, o sujeito e a ação, acrescentando depois o tratamento da cena. Uma descrição pormenorizada é útil quando o plano tem requisitos definidos; uma mais simples dá maior margem de exploração. Não existe um número ideal de palavras que substitua a clareza.
Por exemplo, descreva uma vista próxima de um candeeiro de secretária de latão quando a luz se acende, seguida de um movimento lento de câmara que revela um caderno ao lado. Para texto para vídeo, indique os materiais e a luz visíveis. Se uma imagem fornecida já estabelecer esses pormenores, o pedido de imagem para vídeo pode concentrar-se na mudança da luz e na revelação pela câmara.
Evite orientações contraditórias. Uma vista fixa com movimento subtil do sujeito é diferente de um travelling enérgico com câmara à mão. Acrescente os pormenores que definem o plano útil, em vez de uma lista longa de estilos visuais sem relação.
Termos de câmara e ação sequenciada
O guia de câmara do fabricante distingue enquadramento, ângulos, movimento e foco. Um grande plano altera o que preenche o fotograma, um ângulo baixo altera a perspetiva, uma panorâmica roda a vista da câmara e um travelling acompanha um sujeito. Uma instrução de mudança de foco desloca o foco entre sujeitos visíveis. Indique o que deve estar à vista ou ser revelado à medida que o movimento se desenvolve.
Pedidos sequenciais podem expressar acontecimentos em linguagem comum ou com marcas temporais aproximadas. Estas orientam a ordem e os tempos aproximados; não garantem execução exata ao fotograma. Dê às ações pedidas tempo suficiente para ocorrerem naturalmente dentro da duração selecionada do clip.
Para um plano estático, descreva o movimento que deve ocorrer dentro do enquadramento e reforce a imobilidade pretendida da câmara. O fabricante observa que vistas completamente imóveis podem ser difíceis, sobretudo em alguns planos gerais ou de apresentação. Reveja pequenos movimentos indesejados no resultado efetivo, em vez de assumir que uma expressão de câmara estática os torna impossíveis.
Duração, dimensões e taxa de fotogramas
O Gen-4.5 suporta durações de clip de 2 a 10 segundos. Uma escolha mais longa permite várias ações ordenadas, enquanto uma reação ou revelação breve pode usar um plano mais curto. A saída documentada é de 720p, com 24 ou 25 fotogramas por segundo no fluxo de geração do fabricante.
A especificação de texto para vídeo enumera 16:9 a 1280 × 720 píxeis. Imagem para vídeo enumera adicionalmente 9:16 a 720 × 1280, 1:1 a 960 × 960, 4:3 a 1104 × 832, 3:4 a 832 × 1104 e 21:9 a 1584 × 672. Mantenha juntos o modo e as dimensões reais, em vez de assumir que ambos os modos de entrada oferecem o mesmo conjunto de proporções.
A proporção de uma imagem pode estabelecer a composição predefinida e alterá-la pode recortar a entrada. Verifique a posição do sujeito antes de avaliar o movimento: uma ação correta não é útil se uma parte essencial da imagem de origem tiver sido cortada.
Construa uma sequência mais longa com planos concluídos
Para trabalho orientado por imagem, o fabricante descreve a continuação de uma sequência usando o último fotograma de um clip concluído como imagem de entrada para outra geração. Os clips são depois combinados num editor de vídeo, com o fotograma partilhado e os tempos tratados na edição. É uma sequência de planos separados, não uma geração de duração ilimitada.
Conserve o fotograma final e o pedido correspondente para que o plano seguinte comece no estado visual pretendido. Examine a continuidade das filmagens unidas, incluindo a aparência do sujeito, a direção da câmara e a transição entre clips.
Conserve e reveja o artefacto de produção
Após a geração, reveja o clip completo e conserve a saída concluída. O fluxo do fabricante também fornece escolhas separadas de ampliação e exportação de produção, como ProRes ou uma sequência PNG. São opções de fluxo adicionais; as dimensões de geração nativa continuam distintas de um resultado ampliado posteriormente.
Use o Gen-4.5 para conceitos cinematográficos, ideias visuais animadas, planos de apoio e desenvolvimento de cenas curtas. Guarde em conjunto o pedido, a imagem de entrada quando usada, a duração, o modo e o clip devolvido. Verifique a ordem das ações, o comportamento da câmara, os pormenores do sujeito, cortes indesejados e o enquadramento pretendido e depois faça uma correção focada no plano.
Ailoot Ultra · Vídeo POST /v1/videos runway/gen-4.5
runway/gen-4.5Introdução
O Runway Gen-4.5 cria vídeos a partir de uma descrição de cena ou de uma imagem com orientação de movimento. Os clips de 2–10 segundos, os pedidos explícitos de câmara e as escolhas separadas de composição para texto para vídeo e imagem para vídeo apoiam conceitos cinematográficos, planos de apoio e cenas visuais animadas.
- 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 runway/gen-4.5 | Predefinição— |
Campoprompt | Tipostring | RequisitoObrigatório | Valores e limites | Predefinição— |
Campoduration | Tipointeger | RequisitoObrigatório | Valores e limites 2, 3, 4, 5, 6, 7, 8, 9, 10 Mínimo: 1 Máximo: 600 | Predefinição— |
Camporesolution | Tipostring | RequisitoOpcional | Valores e limites 720p | Predefinição— |
Campoaspect_ratio | Tipostring | RequisitoOpcional | Valores e limites 16:9, 9:16 | 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 1280x720, 720x1280 Padrão: ^[1-9][0-9]*x[1-9][0-9]*$ | Predefinição— |
Camposeed | Tipointeger | RequisitoOpcional | Valores e limites Mínimo: -9 223 372 036 854 775 808 Máximo: 9 223 372 036 854 775 807 | 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 · runway/gen-4.5
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. Escolha uma resolução suportada; adicione uma proporção ou utilize um tamanho enumerado.
Chaves exatas: type, image_url, frame_type
model: Tipo: string · runway/gen-4.5
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, seed, 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çãoPreço do vídeo | Tabela de tarifas— | Quantidade prevista— | Unidade de faturaçãopor segundo de vídeo | Condições de faturaçãoNão é declarada nenhuma condição adicional nesta chave de preços. | Custo Saída · Preço do vídeo · Estimativa apenas para comparação $0.24 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.48 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
| Configuração | Condições de faturação | Custo |
|---|---|---|
| ConfiguraçãoPreço do vídeo | Condições de faturaçãoNão é declarada nenhuma condição adicional nesta chave de preços. | Custo Saída · Preço do vídeo $0.24 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":"runway/gen-4.5","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 runway/gen-4.5
Aliases dos caminhos dos métodos
Use os caminhos dos métodos indicados acima.
IDs de chamada relacionados
FAQ · Runway: Gen-4.5
- Que entradas e resultados estão disponíveis?
POST /v1/videos·runway/gen-4.5:text,image→video- Que campos utiliza o pedido?
POST /v1/videos·runway/gen-4.5:model,prompt,duration,resolution,aspect_ratio,generate_audio,frame_images,input_references,size,seed,callback_url,session_id,trace,user- Que limites se aplicam?
POST /v1/videos·runway/gen-4.5:duration.minimum:1;duration.maximum:600;frame_images.max_items:1;frame_images.min_items:1;seed.minimum:-9223372036854775808;seed.maximum:9223372036854775807