Guia de uso
Criando vídeos curtos com a API de texto para vídeo happyhorse-1.1: fluxo de trabalho de ponta a ponta
Vídeos curtos são um jogo de volume. TikTok, Reels e Shorts recompensam contas que publicam todos os dias, e o maior gargalo de produção costuma ser o B-roll: aqueles clipes verticais de 3–8 segundos que carregam o gancho, o destaque do produto ou o loop satisfatório. O HappyHorse 1.1 texto para vídeo é especialmente adequado para esse cenário porque gera áudio nativo na mesma chamada — sem necessidade de trilha sonora ou foley separados — e suporta diretamente saída vertical 9:16, então não é preciso recortar na pós-produção.
Este guia é um fluxo de trabalho de ponta a ponta: padrões de prompt ajustados para vídeos curtos, o ciclo de vida de tarefas assíncronas, um script de produção em lote que renderiza uma semana de vídeos em uma execução e o cálculo de custos por plataforma. Cada clipe incorporado abaixo foi gerado com exatamente a mesma requisição mostrada ao lado — áudio ativado, direto da API.
Pré-requisitos. Você precisa de uma chave hiapi (
Authorization: Bearer sk-…). Se você nunca chamou/v1/tasksantes, consulte primeiro a documentação de criação da API assíncrona ou o tutorial de curl + Python do happyhorse-1.1 — este artigo se baseia nesse tutorial e foca no fluxo de trabalho para vídeos curtos.
Por que este modelo é adequado para vídeos curtos
Três características são importantes para esse formato:
- Áudio nativo. Som ambiente, foley e efeitos pontuais são gerados junto com o vídeo. Para conteúdo de "satisfação inexplicável" e B-roll, o som é o conteúdo — clipes com áudio real superam claramente clipes de IA silenciosos que os criadores preenchem com músicas de banco.
- 9:16 como cidadão de primeira classe.
aspect_ratioaceita9:16(assim como16:9,1:1,4:5,21:9,9:21etc.), então você pode renderizar vertical nativamente em vez de recortar um master horizontal e perder a composição. - Intervalo de 3–15 segundos.
durationaceita qualquer inteiro de 3 a 15 — exatamente a faixa dos vídeos curtos. Gancho de 3 segundos, destaque de produto de 4–6 segundos, uma micro-história completa cabe em 12–15 segundos.
O esquema de entrada é deliberadamente enxuto. Apenas prompt é obrigatório; os parâmetros úteis são:
| Campo | Valor | Padrão para vídeos curtos |
|---|---|---|
prompt |
string (obrigatório) | Veja os padrões abaixo |
aspect_ratio |
16:9, 9:16, 3:4, 4:3, 4:5, 5:4, 1:1, 9:21, 21:9 |
9:16 |
resolution |
720p, 1080p |
720p para rascunhos, 1080p para postagens principais |
duration |
inteiro 3–15 (segundos) | 3–5 |
Há duas coisas que ele não aceita, para você não perder uma requisição descobrindo: não existe chave audio (o áudio está sempre ativado) nem seed. Enviar qualquer uma delas retorna um erro de validação 400.
Três clipes reais, três tipos de vídeo curto
Estes são os três formatos que dominam o feed de vídeos curtos, cada um gerado em uma única chamada de API. Os prompts seguem um padrão repetível que você pode ajustar: tag de formato → sujeito e ação → composição → iluminação → dica de áudio.
1. B-roll de lifestyle (clássico de café)
{
"model": "happyhorse-1.1/text-to-video",
"input": {
"prompt": "Teste de vídeo curto vertical: um barista faz latte art em um café iluminado, composição vertical estilo celular, áudio natural de leite vaporizando e conversas de café.",
"duration": 4,
"resolution": "720p",
"aspect_ratio": "9:16"
}
}
Observe a dica de áudio no final do prompt ("leite vaporizando e conversas de café"). Declarar explicitamente os sons que você quer é o truque de maior alavancagem ao usar este modelo — sem a dica, ele ainda gera áudio, mas descrevê-lo resulta em uma trilha ambiente utilizável.
2. Teaser de lançamento de produto
{
"model": "happyhorse-1.1/text-to-video",
"input": {
"prompt": "Teaser de lançamento de produto, vertical 9:16: um tênis retrô de solado grosso em creme e laranja queimado gira lentamente sobre uma plataforma giratória preta fosca, luz de contorno dura delineia sua silhueta, partículas finas de poeira flutuam no feixe de luz, fundo de estúdio escuro, amplo espaço vazio acima para sobreposição de título. Impactante, cinematográfico. Áudio nativo: um zumbido grave de baixo e um whoosh suave quando o tênis completa a rotação.",
"duration": 3,
"resolution": "720p",
"aspect_ratio": "9:16"
}
}
Aqui há dois truques específicos para vídeos curtos. Primeiro, "amplo espaço vazio acima para sobreposição de título" — você vai colocar texto sobre este clipe no editor, então peça ao modelo para deixar espaço negativo em vez de deixar suas legendas disputarem o quadro. Segundo, o áudio é projetado, não ambiente: um zumbido grave de baixo mais um whoosh sincronizado com a batida da ação, que é exatamente o que teasers de produto usam.
3. Loop macro de satisfação inexplicável
{
"model": "happyhorse-1.1/text-to-video",
"input": {
"prompt": "Macro de satisfação inexplicável, vertical 9:16: uma espátula afiada corta limpo através de um bloco de areia cinética verde-menta claro sobre uma mesa branca, a superfície cortada se desfaz em câmera lenta, grânulos caem, iluminação de estúdio suave e uniforme, close extremo preenchendo o quadro. Áudio nativo: estalidos secos e granulados ao cortar, sem música.",
"duration": 3,
"resolution": "720p",
"aspect_ratio": "9:16"
}
}
"sem música" importa: para conteúdo do tipo ASMR, o modelo deve gastar seu orçamento de áudio em foley (estalidos granulados), e declarar isso explicitamente evita que ele adicione uma trilha genérica.
Padrões de prompt adequados para vídeos curtos
Destilado dos clipes acima e das execuções por trás deles:
- Comece pelo formato. Abra com "vídeo curto vertical", "teaser de lançamento de produto, vertical 9:16", "macro de satisfação inexplicável". O modelo compõe para o enquadramento que você especificar — composição estilo celular parece diferente de uma tomada cinematográfica widescreen.
- Um sujeito, uma ação. 3–5 segundos são uma batida. "Barista fazendo latte art" funciona; uma história em três atos em 4 segundos só produz uma bagunça. Se você precisa de várias batidas, gere vários clipes e monte-os — é assim que vídeos curtos reais são editados.
- Escreva o áudio em uma frase. Termine cada prompt com
Áudio nativo: <1–3 sons que você quer>. Ruído de fundo ambiente ("conversas de café"), foley ("estalidos secos e granulados") ou efeitos pontuais projetados ("um zumbido grave de baixo e um whoosh suave") todos funcionam. - Reserve espaço para sobreposição. Se o clipe vai carregar legendas ou títulos, peça "espaço vazio acima" ou "espaço negativo limpo no terço superior". É mais barato do que recompor na pós-produção.
- Termine em um estado que possa fazer loop. Os feeds fazem loop automaticamente. Prompts que terminam onde começam ("o tênis completa a rotação") fazem loop limpo e acumulam silenciosamente visualizações repetidas.
Fluxo de trabalho assíncrono: enviar, consultar, baixar
Cada geração é uma tarefa assíncrona: POST /v1/tasks retorna imediatamente um taskId, você consulta GET /v1/tasks/:id até que status seja success e então baixa output[0].url. Um clipe de 4 segundos em 720p geralmente renderiza em cerca de 1–3 minutos.
curl -s -X POST https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "happyhorse-1.1/text-to-video",
"input": {
"prompt": "Teste de vídeo curto vertical: um barista faz latte art em um café iluminado, composição vertical estilo celular, áudio natural de leite vaporizando e conversas de café.",
"duration": 4,
"resolution": "720p",
"aspect_ratio": "9:16"
}
}'
# → {"code":200,"data":{"taskId":"tk-hiapi-…"},"message":"success"}
Uma regra operacional que pega as pessoas de surpresa: as URLs de saída expiram. O output[0].url na resposta traz um expireAt — baixe o mp4 imediatamente após o sucesso da tarefa e coloque no seu próprio armazenamento. Não coloque URLs de hotlink no seu CMS ou ferramenta de agendamento.
Produção em lote: uma semana de clipes em uma execução
A API de tarefas brilha quando você envia tarefas em paralelo. Como a criação retorna imediatamente, o padrão de escala correto é enviar todas as tarefas primeiro, depois consultar todas — cinco clipes renderizam em aproximadamente o tempo real de um único clipe.
import os, time, requests
API = "https://api.hiapi.ai/v1/tasks"
HEADERS = {"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"}
BATCH = [
("mon-coffee", "Vídeo curto vertical: café coado florescendo em câmera lenta, vapor ondulando, luz quente da manhã. Áudio nativo: som de água, ambiente suave de café.", 4),
("tue-sneaker", "Teaser de lançamento de produto, vertical 9:16: um tênis neon respinga em água rasa, gotas congeladas no ar, fundo escuro. Áudio nativo: um respingo profundo.", 3),
("wed-sand", "Macro de satisfação inexplicável, vertical 9:16: um bloco de areia cinética lavanda cortado por um fio fino, a superfície cortada se desfaz. Áudio nativo: estalidos secos e granulados, sem música.", 3),
("thu-city", "Vídeo curto vertical: rua neon chuvosa à noite, guarda-chuvas passam, reflexos ondulam. Áudio nativo: som de chuva e tráfego distante.", 5),
("fri-dessert", "Vídeo curto vertical macro: uma colher quebra a casquinha de caramelo de uma crème brûlée, o creme por baixo cede. Áudio nativo: um estalo nítido, depois silêncio.", 3),
]
def submit(prompt, duration):
r = requests.post(API, headers=HEADERS, json={
"model": "happyhorse-1.1/text-to-video",
"input": {"prompt": prompt, "duration": duration,
"resolution": "720p", "aspect_ratio": "9:16"},
}, timeout=60)
return r.json()["data"]["taskId"]
# 1) enviar todas as tarefas primeiro
tasks = {key: submit(p, d) for key, p, d in BATCH}
# 2) consultar até todas estarem em estado terminal
while tasks:
time.sleep(10)
for key, tid in list(tasks.items()):
t = requests.get(f"{API}/{tid}", headers=HEADERS, timeout=30).json()["data"]
if t["status"] == "success":
url = t["output"][0]["url"] # expira — baixe imediatamente
open(f"{key}.mp4", "wb").write(requests.get(url, timeout=180).content)
print(f"done: {key}.mp4")
del tasks[key]
elif t["status"] == "fail":
print(f"FAILED {key}: {t.get('error')}")
del tasks[key]
Notas de produção para executar esse formato de script em escala:
- Reenvie em caso de falha, não consulte novamente. Tarefas com falha são terminais; envie uma nova tarefa com a mesma entrada (se falhar duas vezes por motivo de conteúdo, ocasionalmente reescreva o prompt).
- Mantenha um manifesto. Grave
{key, prompt, taskId, local_path}em um arquivo JSON a qualquer momento e, ao reiniciar, pule as chaves cujo mp4 já existe. Trabalhos em lote são interrompidos; se planejado com antecedência, a recuperabilidade sai de graça. - Atenção aos limites de concorrência. Se você vai enviar dezenas de tarefas, espace os envios em um ou dois segundos em vez de disparar 50 no mesmo instante.
Quanto custa
A cobrança é por segundo de vídeo de saída (página de preços): $0.16/segundo em 720p e $0.21/segundo em 1080p, independentemente da proporção. A duração é a única alavanca de custo, o que torna os vídeos curtos o lugar mais barato para usar este modelo:
| Clipe | Especificação | Custo |
|---|---|---|
| Gancho / loop de satisfação | 3s · 720p | $0.48 |
| Batida padrão de B-roll | 4s · 720p | $0.64 |
| Teaser de produto | 5s · 720p | $0.80 |
| Postagem principal | 5s · 1080p | $1.05 |
| Publicação diária, 30 × rascunhos de 4s por mês | 720p | ~$19.20 |
Um fluxo prático em dois estágios: itere prompts em 3s/720p (cerca de meio dólar por tentativa) e re-renderize apenas os vencedores em 1080p para publicação. Os prompts transferem-se de forma limpa entre resoluções, então você não está refazendo o trabalho criativo — só está pagando por pixels depois de saber que o clipe vale a pena.
Da saída da API à postagem publicada
O modelo entrega um clipe vertical finalizado com áudio; o resto é a embalagem:
- Duração por plataforma: clipes de 3–5 segundos funcionam bem como loop no TikTok e Reels; para Shorts, unir duas ou três batidas em 10–15 segundos costuma reter a audiência por mais tempo.
durationde até 15 segundos cobre uma micro-história completa em uma única chamada, se você não quiser editar. - Sobreposição de texto: adicione legendas no editor (CapCut, Premiere, ffmpeg drawtext). É por isso que o truque de prompt "reserve espaço vazio" importa.
- Mantenha o áudio nativo como camada base, mesmo que você adicione música — foley real sob uma trilha musical demonstra mais valor de produção do que apenas música.
- Série consistente: vídeos curtos recompensam repetição de formato. Fixe o esqueleto do prompt (composição, iluminação, estilo de áudio) e mude apenas o sujeito — os três templates de tipo acima foram projetados exatamente para reutilização.
Se sua série gira em torno de ativos de marca — fotos reais de produto, mascotes, rostos — combine este fluxo de trabalho com happyhorse-1.1 imagem para vídeo: gere ou fotografe o keyframe uma vez e então conduza o movimento a partir dele, mantendo o sujeito idêntico em cada postagem.
Comece a renderizar
O caminho mais rápido: obtenha uma chave, copie a requisição do barista desta página e em poucos minutos você terá seu primeiro clipe vertical com áudio. A página do modelo happyhorse-1.1 texto para vídeo tem referência de parâmetros ao vivo e preços, e o início rápido cobre autenticação, se esta for sua primeira chamada à hiapi. Renderize três rascunhos, mantenha o melhor e você terá a postagem de amanhã por menos que o preço de um café.
Artigos relacionados
Ver todos os artigos →-
Guia de uso
Guia de introdução ao seedream-5.0-pro/image-to-image: capacidades, preços e pontos de integração
Limites de capacidade, modelo de cobrança e práticas de integração de engenharia do modelo de edição de imagem da ByteDance
-
Guia de uso
Guia prático do seedream-5.0-pro text-to-image: limites de capacidade, integração via API e controle de custos
Perspectiva prática para desenvolvedores: dos pontos-chave dos parâmetros à estimativa de custo de US$ 0,05 por imagem
-
Guia de uso
Guia de introdução ao Hailuo 2.3 Fast image-to-video: limites de capacidade, preços e práticas de integração
Pontos-chave de seleção e integração do modelo image-to-video MiniMax para desenvolvedores