Tutorial
Tutorial da API Seedance 2.0 Mini: interface de vídeo por $0.0272 por segundo
O Seedance mais barato: texto para vídeo, imagem para vídeo e referência para vídeo com um único modelo, com exemplos em curl e Python, todos os parâmetros e custo por segundo.
TL;DR
seedance-2.0-minié a versão leve do Seedance 2.0 da ByteDance. Com um único nome de modelo você faz texto para vídeo, imagem para vídeo (primeiro frame ou primeiro e último frame) e referência para vídeo, com áudio sincronizado nativo. Abra a página do modelo para gerar online; novos usuários ganham 200 créditos ao se registrar.- É um dos modelos de vídeo mais baratos do HiAPI: 480p por $0.0272 por segundo, 720p por $0.0586 por segundo. 5 segundos em 480p custam apenas $0.136.
resolutioné obrigatório; se não for enviado, retorna erro direto. Abaixo estão exemplos em curl e Python, todos os parâmetros e como cada um dos três modos é cobrado.
Veja o resultado
Três vídeos de texto para vídeo, todos com 5 segundos em 480p, $0.136 cada.
A slow dolly-in toward a steaming bowl of ramen on a worn wooden counter in a dim izakaya. Warm amber lantern light, soft volumetric haze, gentle steam curling upward, shallow depth of field, the broth surface rippling slightly. Cinematic, photoreal.
Gerar com este prompt → (5 segundos, 480p)
seedance-2.0-mini, texto para vídeo, 480p, 5 segundos, $0.136.
A cozy fireplace crackling in a log cabin at night, orange embers popping and drifting, a cast-iron kettle gently steaming on the hearth, rain streaking the dark window behind. Static locked-off shot. Native audio: crackling fire, soft rain on glass, a low wind.
Gerar com este prompt → (5 segundos, 480p)
seedance-2.0-mini, texto para vídeo, 480p, 5 segundos, com áudio nativo, $0.136.
O som de lenha crepitando, a chuva e o vento neste vídeo vêm da última frase do prompt. O Mini gera áudio por padrão, mas o tipo específico de som depende de o prompt deixar isso claro.
A border collie sprints across a sunlit beach toward the camera, kicking up wet sand, ears flapping, tongue out, water spray catching the low golden light. Tracking shot moving backward to keep the dog centered, motion blur on the paws, joyful energy, photoreal.
Gerar com este prompt → (5 segundos, 480p)
seedance-2.0-mini, texto para vídeo, 480p, 5 segundos, $0.136.
curl: o primeiro vídeo
curl -X POST https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer $HIAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.0-mini",
"input": {
"prompt": "rua cyberpunk com neon em noite de chuva, câmera se aproximando lentamente, reflexos coloridos no asfalto molhado, atmosfera cinematográfica",
"resolution": "480p",
"duration": 5,
"aspect_ratio": "16:9"
}
}'
5 segundos em 480p, $0.136. Após retornar data.taskId, consulte com GET /v1/tasks/{taskId} até status ser success e então baixe output[0].url.
Python: enviar, consultar, baixar
# pip install requests; primeiro export HIAPI_KEY=sua Key
import os, time, uuid, requests
KEY = os.environ["HIAPI_KEY"]
H = {"Authorization": f"Bearer {KEY}"}
def generate(timeout_s=900, **params):
body = {"model": "seedance-2.0-mini", "input": params}
# Ao reenviar a mesma tarefa, use o mesmo Idempotency-Key para evitar cobrança duplicada
headers = {**H, "Idempotency-Key": str(uuid.uuid4())}
r = requests.post("https://api.hiapi.ai/v1/tasks", json=body, headers=headers, timeout=30)
r.raise_for_status()
res = r.json()
if res.get("code") != 200:
raise RuntimeError(res)
task_id = res["data"]["taskId"]
deadline = time.time() + timeout_s
while time.time() < deadline:
d = requests.get(f"https://api.hiapi.ai/v1/tasks/{task_id}", headers=H, timeout=30).json()["data"]
if d["status"] == "success":
return d["output"][0]["url"]
if d["status"] == "fail":
raise RuntimeError(d)
time.sleep(10)
raise TimeoutError(task_id)
# Imagem para vídeo: anime uma imagem, 720p 5 segundos ($0.293)
url = generate(
prompt="câmera se afastando lentamente, nuvens e neblina fluindo entre os picos, luz dourada da manhã",
first_frame_url="https://your-cdn.example.com/first-frame.jpg",
resolution="720p", duration=5, generate_audio=False,
)
with open("clip.mp4", "wb") as f:
f.write(requests.get(url).content)
Um modelo, três modos
O modo é definido pelos parâmetros enviados:
| Modo | O que enviar | Descrição |
|---|---|---|
| Texto para vídeo | Envie apenas prompt |
|
| Imagem para vídeo | first_frame_url, opcionalmente com last_frame_url |
Não pode ser combinado com imagens ou vídeos de referência |
| Referência para vídeo | reference_image_urls, reference_video_urls, reference_audio_urls |
Até 3 vídeos de referência e até 3 áudios de referência, com duração total de no máximo 15 segundos cada |
Visão geral dos parâmetros
| Parâmetro | Valores | Descrição |
|---|---|---|
prompt |
String, obrigatório | Pode ser em chinês ou inglês |
resolution |
480p / 720p, obrigatório |
Se não for enviado, retorna 400 |
duration |
Inteiro de 4–15, obrigatório (exemplos usam 5) | Unidade em segundos |
aspect_ratio |
1:1 4:3 3:4 16:9 9:16 21:9 adaptive, padrão 16:9 |
|
generate_audio |
Padrão true |
Áudio sincronizado nativo |
first_frame_url / last_frame_url |
URL da imagem | jpeg/png/webp/bmp/tiff/gif, lado de 300–6000 px, menos de 30 MB por imagem |
reference_image_urls |
URL da imagem | No total, incluindo primeiro e último frame, no máximo 9 imagens |
reference_video_urls |
Até 3 vídeos | mp4/mov, 480p ou 720p, 2–15 segundos por vídeo, total de no máximo 15 segundos |
reference_audio_urls |
Até 3 áudios | wav/mp3, 2–15 segundos por áudio, total de no máximo 15 segundos |
Calculando o custo
| Duração | 480p ($0.0272/s) | 720p ($0.0586/s) |
|---|---|---|
| 4 segundos | $0.1088 | $0.2344 |
| 5 segundos | $0.136 | $0.293 |
| 10 segundos | $0.272 | $0.586 |
| 15 segundos | $0.408 | $0.879 |
Ao enviar reference_video_urls, a cobrança usa outra faixa de preço: 480p por $0.0172 por segundo, 720p por $0.0358 por segundo. Com $10 é possível gerar cerca de 367 segundos em 480p. Recomenda-se ajustar o prompt primeiro em 480p e gerar em 720p após finalizar; para 1080p, use Seedance 2.0 ou Seedance 2.5.
Atenção antes de ir para produção
- Use callback em vez de polling: no nível superior da requisição (mesmo nível de
input), adicione"callback": {"url": "https://seu-dominio/hiapi/callback"}e deduplique portaskId. - Salve o resultado a tempo:
output[0].urlé um link temporário. - Retentativas com chave de idempotência: adicione
Idempotency-Keyno cabeçalho da requisição; a mesma chave em retentativas cria a tarefa apenas uma vez. - Reembolso automático em caso de falha: só vídeos gerados com sucesso são cobrados.
Perguntas frequentes
Como escolher entre Seedance 2.0 Mini e Seedance 2.0?
Em 480p, o preço do Mini é cerca de um quinto do 2.0 ($0.0272 por segundo contra $0.136), mas ele vai no máximo até 720p. Use o Mini para rascunhos, produção em lote de vídeos curtos para redes sociais e testes de prompt; para 1080p ou 4K, use o Seedance 2.0.
Por que dá erro se não enviar resolution?
Neste modelo, resolution é obrigatório e deve ser escrito explicitamente como "480p" ou "720p".
Tem áudio?
Sim, por padrão. Descreva no prompt o som desejado; se não quiser áudio, defina generate_audio como false.
Qual é a duração máxima de um vídeo?
De 4 a 15 segundos.
Para ver mais formas de escrever prompts, consulte o Guia de prompts do Seedance 2.0; ou vá direto à página do modelo para gerar o vídeo do ramen.
Artigos relacionados
Ver todos os artigos →-
Tutorial
Como chamar hailuo-2.3-fast/image-to-video pela API HiAPI: curl e Python na prática
A primeira requisição executável do nível rápido e econômico de geração de vídeo a partir de imagem — do ID do modelo ao download do MP4
-
Tutorial
Como chamar hailuo-2.3/text-to-video pela API HiAPI: curl, Python e exemplos de requisição executáveis
-
Tutorial
Usar Kandinsky 6.0 Pro text-to-video na HiAPI: tutorial de curl e Python
Demonstração prática com foco na requisição: montar a chamada de prompt para clipe de vídeo, enviar a requisição, consultar o status de conclusão e baixar o resultado