Guia

Texto para vídeo vs. imagem para vídeo: os cinco modos da API explicados

A maioria dos modelos de vídeo aceita mais do que um prompt. Você pode partir de uma imagem, fixar o primeiro e o último quadro, passar imagens de referência para personagens e produtos, ou trabalhar a partir de um clipe existente. Este guia explica cada modo, quando usá-lo e como chamá-lo.

Os cinco modos em resumo

Todos os modos usam o mesmo endpoint, POST /v1/generations. O que muda é a entrada que você envia junto com o prompt.

Modos de geração de vídeo
ModoO que você enviaBom para
Texto para vídeoa promptexplorar ideias, b-roll, cenas para as quais você não tem imagens
Imagem para vídeoum quadro inicial como image_url, mais um promptanimar fotos de produto, arte e imagens estáticas com um visual exato
Primeiro e último quadroimage_url e end_image_url, mais um prompttransições, revelações e tomadas que precisam terminar em uma imagem definida
Imagens de referênciavárias imagens como image_urls, mais um promptmanter personagens, produtos e lugares consistentes entre as tomadas
Vídeo para vídeoum clipe de origem, mais um promptrefazer o estilo ou retrabalhar uma filmagem que você já tem

Nem todo modelo suporta todos os modos. A tabela de suporte abaixo cobre os modelos principais, e a página de cada modelo na página de modelos lista as suas tarefas.

Texto para vídeo

Texto para vídeo é o modo mais simples: você descreve a tomada e o modelo decide todo o resto, dos rostos e do cenário às cores e ao enquadramento. Essa liberdade é útil quando você está explorando ideias ou precisa de imagens genéricas, como b-roll, tomadas de estabelecimento ou fundos abstratos.

É o modo errado quando o vídeo precisa mostrar algo específico: seu produto, seu logo, uma pessoa em particular ou um layout que precisa seguir o guia de uma marca. Cada geração inventa esses detalhes do zero, então dois clipes do mesmo prompt não vão combinar.

Um bom prompt de texto cobre o assunto, a ação, o cenário, a câmera e a luz, e o som, se o modelo o gerar. Nosso guia do Seedance 2.0 traz mais dicas de prompt.

Imagem para vídeo

Com imagem para vídeo, a sua imagem vira o primeiro quadro. Tudo nela (o produto, o rosto, a composição e as cores) fica fixo no início, e o prompt só precisa descrever o que acontece depois. Este é o modo para animar fotos de produto, ilustrações e key art, e para qualquer tomada em que o visual precise ser exato.

Um fluxo comum é fazer primeiro a imagem estática com um modelo de imagem como o Nano Banana Pro ou o GPT Image 2, acertá-la e só então animá-la. É mais barato e mais rápido iterar em imagens estáticas do que em vídeo.

Aqui está uma requisição de imagem para vídeo para o Seedance 2.0: um clipe de 5 segundos em 720p com som, que custa $0.75. A proporção adaptive ajusta o quadro ao formato da sua imagem.

cURL
export REVANA_API_KEY="sr_live_..."

# 1. Submit the job (returns 202 with the generation id)
curl https://api.revana.si/v1/generations \
  -H "Authorization: Bearer $REVANA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2.0",
    "input": {
      "prompt": "The coffee in the cup starts to steam, and a hand reaches in from the right and lifts the cup off the table. Morning light, quiet cafe ambience.",
      "image_url": "https://example.com/coffee.jpg",
      "resolution": "720p",
      "duration": 5,
      "aspect_ratio": "adaptive",
      "audio": true
    },
    "max_cost_usd": 2
  }'

# 2. Poll with the id from step 1 until status is "succeeded" or "failed"
curl https://api.revana.si/v1/generations/gen_01JBX7Q2M4 \
  -H "Authorization: Bearer $REVANA_API_KEY"
Python
import os
import time

import requests

API = "https://api.revana.si/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['REVANA_API_KEY']}"}

resp = requests.post(f"{API}/generations", headers=HEADERS, json={
    "model": "seedance-2.0",
    "input": {
        "prompt": "The coffee in the cup starts to steam, and a hand reaches in from the right and lifts the cup off the table. Morning light, quiet cafe ambience.",
        "image_url": "https://example.com/coffee.jpg",
        "resolution": "720p",
        "duration": 5,
        "aspect_ratio": "adaptive",
        "audio": True,
    },
    "max_cost_usd": 2,
})
resp.raise_for_status()
job = resp.json()

while job["status"] in ("queued", "running"):
    time.sleep(5)
    job = requests.get(f"{API}/generations/{job['id']}", headers=HEADERS).json()

if job["status"] == "succeeded":
    print(job["output"]["urls"], job["cost_usd"])
else:
    print("Failed:", job["error"])
Node.js
// Node 18 or later. Save as generate.mjs and run: node generate.mjs
const API = "https://api.revana.si/v1";
const headers = {
  Authorization: `Bearer ${process.env.REVANA_API_KEY}`,
  "Content-Type": "application/json",
};

const res = await fetch(`${API}/generations`, {
  method: "POST",
  headers,
  body: JSON.stringify({
    model: "seedance-2.0",
    input: {
      prompt: "The coffee in the cup starts to steam, and a hand reaches in from the right and lifts the cup off the table. Morning light, quiet cafe ambience.",
      image_url: "https://example.com/coffee.jpg",
      resolution: "720p",
      duration: 5,
      aspect_ratio: "adaptive",
      audio: true,
    },
    max_cost_usd: 2,
  }),
});
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
let job = await res.json();

while (job.status === "queued" || job.status === "running") {
  await new Promise((r) => setTimeout(r, 5000));
  job = await (await fetch(`${API}/generations/${job.id}`, { headers })).json();
}

if (job.status === "succeeded") console.log(job.output.urls, job.cost_usd);
else console.error("Failed:", job.error);

Descreva o movimento, não a imagem: o modelo já consegue vê-la. "O vapor sobe e a xícara é levantada" funciona melhor do que repetir "uma xícara branca de café sobre uma mesa de madeira".

Primeiro e último quadros

Adicione end_image_url e o modelo gera o movimento entre duas imagens que você escolher. Como o final é fixo, este modo serve para transições entre cenas, tomadas de antes e depois, revelações de produto e clipes que precisam emendar direto no seguinte. Para um loop, experimente a mesma imagem nas duas pontas.

Os dois quadros devem ser finais plausíveis de uma mesma tomada: a mesma cena, o mesmo enquadramento e a mesma luz. Se forem diferentes demais, o modelo precisa inventar uma grande mudança em poucos segundos, e os resultados ficam menos previsíveis. Este clipe silencioso de 5 segundos em 1080p do Kling 3.0 custa $0.60:

Corpo da requisição
{
  "model": "kling-3.0",
  "input": {
    "prompt": "Time-lapse: the empty plot fills with a small wooden cabin as the camera holds still, clouds racing overhead",
    "image_url": "https://example.com/plot-empty.jpg",
    "end_image_url": "https://example.com/plot-cabin.jpg",
    "resolution": "1080p",
    "duration": 5,
    "audio": false
  },
  "max_cost_usd": 1
}

Seedance 2.5, Seedance 2.0, Seedance 2.0 Mini, Veo 3.1, Veo 3.1 Fast, Veo 3.1 Lite, Kling 3.0, Kling 3.0 Omni, Wan 3.0 e Grok Imagine Video 1.5 listam primeiro e último quadro no catálogo. O Hailuo 2.3 aceita um quadro inicial, mas não um final.

Imagens de referência

Imagens de referência não são quadros. O modelo as usa para aprender como é uma pessoa, um produto ou um lugar, e então os coloca em uma nova tomada descrita pelo prompt. Isso faz das referências o modo da consistência: o mesmo personagem em dez tomadas, ou o mesmo produto em cenários diferentes.

Envie as imagens como image_urls e refira-se a cada uma pela posição no prompt, por exemplo "a mulher da primeira imagem segura a bolsa da segunda imagem". O limite depende do modelo: o Seedance 2.5 aceita até 30, o Wan 3.0 aceita até 10, o Seedance 2.0 aceita até 9, o Seedance 2.0 Mini aceita até 9, o Veo 3.1 Fast aceita até 3 e o Veo 3.1 Lite aceita até 3. Nos modelos Seedance, envie quadros ou referências em uma requisição, não os dois.

Esta requisição de 8 segundos em 720p com som no Veo 3.1 Fast custa $0.80:

Corpo da requisição
{
  "model": "veo-3.1-fast",
  "input": {
    "prompt": "The man from the first image walks into the bakery from the second image, picks up a loaf and smiles at the camera. Bell over the door, quiet chatter.",
    "image_urls": [
      "https://example.com/man.jpg",
      "https://example.com/bakery.jpg"
    ],
    "resolution": "720p",
    "duration": 8,
    "aspect_ratio": "16:9",
    "audio": true
  },
  "max_cost_usd": 1.5
}

Vídeo para vídeo

Vídeo para vídeo parte de um clipe que você já tem. A origem guia o movimento e o tempo, e o prompt descreve o que deve mudar: um novo estilo, um novo cenário ou detalhes diferentes. Serve para refazer o estilo de filmagens reais, retrabalhar uma geração anterior ou manter uma atuação mudando o visual.

Entre os modelos deste guia, Seedance 2.5, Kling 3.0 Omni e Wan 3.0 listam vídeo para vídeo, e o Kling 3.0 Motion Control também trabalha a partir de um vídeo de origem. As entradas para um clipe de origem variam por modelo, então confira a página do modelo antes de construir sobre ele.

Jobs com entrada de vídeo têm preço diferente em alguns modelos. No Seedance 2.5, os segundos cobrados são a saída mais o clipe de entrada, a uma tarifa menor com entrada de vídeo: um clipe de 10 segundos em 720p feito a partir de uma origem de 10 segundos custa $3.00, contra $2.50 para o mesmo clipe feito a partir de um prompt. O Kling 3.0 Omni lista uma tarifa própria para jobs com entrada de vídeo, $0.13 por segundo em 720p.

Quais modelos suportam cada modo

Do catálogo da Revana em outubro de 2026:

Modos de geração suportados por cada modelo
ModeloTextoImagemPrimeiro e últimoReferênciasVídeo
Seedance 2.5yesyesyesyesyes
Seedance 2.0yesyesyesyesno
Seedance 2.0 Miniyesyesyesyesno
Veo 3.1yesyesyesnono
Veo 3.1 Fastyesyesyesyesno
Veo 3.1 Liteyesyesyesyesno
Kling 3.0yesyesyesnono
Kling 3.0 Omniyesyesyesyesyes
Wan 3.0yesyesyesyesyes
Hailuo 2.3yesyesnonono
Grok Imagine Video 1.5yesyesyesyesno

O modo muda o preço?

Quase nunca. Os modelos de vídeo são cobrados por segundos de saída, resolução e, em alguns modelos, som. Um clipe de 5 segundos em 720p do Seedance 2.0 custa $0.75 quer parta de um prompt, quer de uma imagem, e adicionar um quadro final ou imagens de referência não muda o preço do catálogo. A exceção é a entrada de vídeo, tratada acima.

O preço de cada job é reservado do seu saldo pré-pago quando você o envia e só é cobrado se o job tiver sucesso. A página de preços lista todas as tarifas.

Como escolher um modo

  • Ainda sem materiais: comece com texto para vídeo, ou crie uma imagem estática com um modelo de imagem e anime-a.
  • O visual precisa ser exato: imagem para vídeo, a partir de um quadro que você aprovou.
  • O final importa: primeiro e último quadro.
  • O mesmo personagem ou produto em várias tomadas: imagens de referência.
  • Você já tem filmagem: vídeo para vídeo.

Um campo ou valor que o modelo não suporta é rejeitado com um 422 antes de qualquer cobrança, então um modo errado não custa nada. Referência completa dos campos: a documentação.

Pronto para testar? Obtenha uma chave de API e envie sua primeira requisição.

Perguntas frequentes

Qual é a diferença entre texto para vídeo e imagem para vídeo?

O texto para vídeo parte apenas de um prompt, então o modelo inventa tudo na cena. O imagem para vídeo usa a sua imagem como primeiro quadro, então o visual fica definido e o prompt só descreve o movimento.

Imagem para vídeo custa mais que texto para vídeo?

Não pelos preços do catálogo. Os modelos de vídeo são cobrados por segundos de saída, resolução e, em alguns modelos, som. Um clipe de 5 segundos em 720p do Seedance 2.0 custa $0.75 nos dois casos em outubro de 2026.

O que são primeiro e último quadro?

Você envia uma imagem inicial como image_url e uma imagem final como end_image_url, e o modelo gera o movimento entre elas. É útil para transições, revelações e loops.

Quantas imagens de referência posso enviar?

Depende do modelo: Seedance 2.5 até 30, Wan 3.0 até 10, Seedance 2.0 até 9, Seedance 2.0 Mini até 9, Veo 3.1 Fast até 3 e Veo 3.1 Lite até 3.

Posso combinar um quadro inicial com imagens de referência?

Não nos modelos Seedance: envie quadros ou referências em uma requisição, não os dois.

Quais modelos suportam vídeo para vídeo?

Entre os modelos principais, Seedance 2.5, Kling 3.0 Omni e Wan 3.0 listam vídeo para vídeo, assim como o Kling 3.0 Motion Control. A página de modelos lista as tarefas de cada modelo.

Teste todos os modos com uma só chave

Jobs de texto, imagem, quadro e referência usam a mesma requisição na Revana. Crédito pré-pago a partir de $10.