Um pedido comum de quem cria demonstrações de produtos, introduções de cursos e clipes para redes sociais: “Tenho uma foto do apresentador e uma narração que já gravei. Faça a pessoa da foto dizer exatamente isso.” O P-Video-2 Pro Reference da Pruna AI faz isso em uma única chamada de API. Você envia a foto como referência, o arquivo de áudio e keep_audio: true; o modelo gera o vídeo em torno da sua faixa, com os lábios e o movimento da cabeça acompanhando as palavras. Este guia mostra a solicitação exata, quanto ela custa e um clipe real que geramos enquanto o escrevíamos.
O que o P-Video-2 Pro Reference faz
Ele é um modelo de referência para vídeo. Em vez de descrever tudo em texto, você fornece materiais para ele usar como base:
- Imagens de referência (até 9): a aparência de um personagem ou produto, ou um estilo.
- Vídeos de referência (até 3, de 2 a 15 segundos cada, 15 segundos no total): movimento ou cena a seguir.
- Áudio (até 3 arquivos, 15 segundos no total).
- Um prompt de texto que conecta tudo: onde a pessoa está e o que está fazendo.
A saída é um clipe de 5 a 15 segundos com som, em 480p ou 768p, no modo Speed ou Cost, com proporções de 16:9 a 9:16 ou “adaptive” (seguindo as referências). É necessário ter pelo menos uma referência de imagem ou vídeo.
keep_audio: sua voz, suas palavras
A entrada de áudio tem dois significados bem diferentes, e keep_audio alterna entre eles:
- Sem
keep_audio(o padrão), o áudio é apenas uma amostra. O modelo imita a voz ou o som, mas seu arquivo não é colocado no clipe e as palavras podem ser diferentes. - Com
keep_audio: truee exatamente um arquivo de áudio, esse arquivo se torna a trilha sonora. A mesma voz, as mesmas palavras; o vídeo (movimento, lábios) é gerado para combinar com ela.
Como a duração da faixa interage com duration: se o áudio for mais curto que a duração, ele será reproduzido primeiro e o modelo gerará o restante; se for mais longo, será cortado na duração; se estiver dentro de um segundo da duração, o clipe seguirá o comprimento do áudio. Portanto, escolha uma duração próxima à da sua narração. keep_audio não altera o preço.
Preço
O preço do clipe é calculado por geração a partir de três elementos: segundos de saída (por modo e resolução), além de cada imagem de referência e dos segundos de vídeo e áudio de referência. A combinação mais barata é 480p no modo Cost. A tabela completa de níveis está na página do modelo P-Video-2 Pro Reference.
Como o preço depende das suas entradas exatas, peça uma cotação antes de gerar. O endpoint de cotação é gratuito e retorna um quoteId ao qual você pode vincular o job:
curl https://getvibeapi.com/api/media/price \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-H "Content-Type: application/json" \
-d @request.json
# Nossa cotação em 22 de outubro de 2026 para a solicitação abaixo
# (7 s, 480p, modo Cost, 1 foto, 1 faixa de áudio, keep_audio):
{"ok":true,"priceUsd":0.165625,"isEstimate":false,"chargeBasis":"quote","quoteId":"mq_…","quoteTtlSeconds":900}
A cotação é um teto: as referências não são medidas antes do envio, então ela considera o limite total permitido (por exemplo, os 15 segundos completos de áudio de referência quando qualquer áudio é enviado). Nosso job foi cobrado exatamente pelo valor cotado.
Passo a passo: foto + narração → clipe falado
1. Prepare dois arquivos públicos
Você precisa de uma URL HTTPS pública para o retrato (uma foto nítida, de frente, mostrando a cabeça e os ombros, funciona melhor) e de outra para a narração (MP3 ou WAV). Para nosso teste, geramos uma apresentadora fictícia com o Nano Banana 2.1 e uma narração em inglês de 7.3 segundos com o gpt-4o-mini-tts, ambos pela mesma chave de API. Qualquer gravação sua funciona da mesma forma.
2. Envie o job
import os, time, requests
API = "https://getvibeapi.com"
HEADERS = {"Authorization": f"Bearer {os.environ['GETVIBE_API_KEY']}"}
body = {
"model": "p-video-2-pro-reference",
"prompt": "A mulher da foto de referência fala calorosamente para a câmera em uma padaria aconchegante, "
"movimento natural da cabeça, lábios sincronizados com a narração",
"opts": {
"mode": "cost", # modo mais barato; "speed" é mais rápido
"resolution": "480p", # ou "768p"
"duration": "7", # próximo da duração da narração (7.3 s)
"aspect_ratio": "16:9",
"reference_image_urls": ["https://your-cdn.example/presenter.jpg"],
"reference_audio_urls": ["https://your-cdn.example/voiceover.mp3"],
"keep_audio": True, # usar esta faixa como trilha sonora, não como amostra
},
}
job = requests.post(f"{API}/api/media/generate", json=body, headers=HEADERS).json()
print(job["jobId"], job["status"], job["priceRub"])
O campo se chama priceRub por razões históricas; no getvibeapi.com, ele contém valores em dólares americanos, o mesmo número retornado pela cotação.
3. Consulte o resultado
while True:
r = requests.get(f"{API}/api/media/jobs/{job['jobId']}", headers=HEADERS).json()
if r["status"] in ("success", "fail"):
break
time.sleep(10)
print(r["status"], r["resultUrls"])
Para lotes em produção, use um webhook em vez de consultar repetidamente; veja webhooks de mídia. Os links dos resultados expiram depois de aproximadamente uma semana, então copie o arquivo para seu próprio armazenamento.
O que obtivemos
Nosso job terminou em poucos minutos com o status success. O resultado foi um MP4: 832×480, 7.33 segundos, com uma faixa de áudio. Estas foram as verificações que fizemos:
- A voz é a nossa. Comparamos a trilha sonora do clipe com a amostra original da narração, amostra por amostra: correlação de 0.99998 com deslocamento zero. O modelo manteve o arquivo, não uma imitação com a voz refeita.
- O rosto foi mantido. Os frames em 1, 3 e 5 segundos mostram a mesma mulher da foto de referência (cabelo, brincos, camisa de linho verde), agora em uma padaria, como solicitado pelo prompt, falando com movimento visível da boca.
- A duração acompanha a faixa. Uma narração de 7.3 segundos com
duration: "7"produziu um clipe de 7.33 segundos, como prevê a regra de até um segundo de diferença.
480p no modo Cost é adequado para prévias e formatos pequenos para redes sociais. Para a versão final, execute a mesma solicitação em 768p quando estiver satisfeito com o prompt.
Dicas e limites
- Envie exatamente um arquivo de áudio com
keep_audio; com dois ou três, a solicitação é rejeitada com um erro claro. - Mantenha a narração em 15 segundos ou menos. Para roteiros mais longos, divida-os em vários clipes e una-os.
- Cada imagem de referência é cobrada, incluindo
first_frame_urlelast_frame_url. Um bom retrato geralmente é suficiente. - Descreva o cenário e a maneira de falar no prompt (“calmo, explicando”, “sorrindo, energético”); as palavras vêm do seu áudio.
- Use apenas fotos e vozes sobre as quais você tenha os direitos. Não imite pessoas reais sem o consentimento delas.
Outros modelos de vídeo, incluindo opções de texto para vídeo e de imagem para vídeo, estão listados na página de modelos, e imagem, vídeo e voz por meio de uma única API explica de forma geral o fluxo de jobs de mídia. Referência completa das solicitações: documentação de geração de mídia.
Onde isso é útil
Clipes falados criados a partir de uma foto estática e de uma narração pronta se encaixam em qualquer fluxo de trabalho em que as palavras sejam fixas e o rosto seja sempre o mesmo:
- Anúncios de produtos e recursos. Grave um roteiro de 10 segundos uma vez e faça com que seu apresentador o entregue diante de diferentes fundos, alterando apenas o prompt.
- Introduções de cursos e onboarding. Um apresentador consistente para cada aula, sem precisar reservar um estúdio para cada uma.
- Versões localizadas. Grave ou sintetize a narração em outro idioma e gere um clipe correspondente; os lábios acompanham o novo áudio.
- Trechos de suporte ao cliente. Clipes curtos de “veja como fazer X”, em que a precisão das palavras é mais importante que o movimento cinematográfico.
Duas coisas que ele não é: uma ferramenta de avatar de formato longo (cada geração tem no máximo 15 segundos) e uma forma de editar um vídeo existente. Para alterar a aparência de uma gravação que você já tem, veja Kling 3.0 Omni Transformation.
FAQ
Posso fazer uma foto falar com a minha própria voz gravada?
Sim. Envie a foto em reference_image_urls, sua gravação como o único item em reference_audio_urls e keep_audio: true. A gravação se torna a trilha sonora do clipe, e os lábios são gerados para acompanhá-la.
O que acontece sem keep_audio?
O áudio é usado apenas como amostra para imitação. Seu arquivo não aparece na saída, e a fala no clipe pode ser diferente.
Qual pode ser a duração do clipe?
De 5 a 15 segundos por geração. O áudio de referência é limitado a 15 segundos no total.
Quanto custa um clipe falado?
Depende da duração, resolução, modo e das referências enviadas. Obtenha um valor exato no endpoint gratuito /api/media/price antes de gerar; nosso clipe de 7 segundos, em 480p e no modo Cost, com uma foto e uma faixa de áudio, é mostrado acima. Os níveis atuais estão na página do modelo.
A saída tem marca-d’água?
Não vimos nenhuma marca-d’água no nosso clipe.
