Seedance 2.5
Video Generationup to -20%bytedance/seedance-2.5O Seedance 2.5 é o modelo multimodal de criação de vídeo de próxima geração da linha Doubao da ByteDance, lançado em 2026-08-07. Aceita entrada mista de texto, imagens, vídeos e áudio — até 30 imagens, 10 vídeos e 10 clipes de áudio, totalizando 50 materiais de referência — e cobre a geração de vídeo a partir de texto, de imagem e de vídeo. Cada clipe pode ter qualquer duração inteira em segundos entre 4 e 30, com resolução de 480p, 720p ou 1080p (720p por padrão), seis proporções de tela e uma opção adaptativa. A saída inclui áudio sincronizado por padrão e os prompts podem ser escritos em vários idiomas. Esta geração aprimora o seguimento de instruções, a narrativa com múltiplos planos e a consistência temporal em sequências longas. Acessível via protocolo OpenAI-compatible.
Preços
up to -20%A partir de $0.11/s| Resolução | Modo | Áudio | Preço / segundo |
|---|---|---|---|
| 480p | Texto para vídeo | Qualquer | $0.11/s |
| 480p | Vídeo para vídeo | Qualquer | $0.14/s |
| 720p | Texto para vídeo | Qualquer | $0.24/s |
| 720p | Vídeo para vídeo | Qualquer | $0.3/s |
| 1080p | Texto para vídeo | Qualquer | $0.48/s$0.6/s |
| 1080p | Vídeo para vídeo | Qualquer | $0.568/s$0.71/s |
| Todas as outras combinações | $0.568/s$0.71/s | ||
Cobrado por segundo de vídeo gerado. As combinações de parâmetros compatíveis e os preços são definidos pela API em tempo real e podem variar conforme a versão do modelo.
Providers
/v1/videos/v1/videosExemplos de Código
import timeimport requestsBASE = "https://api.ofox.ai/v1/videos"HEADERS = {"Authorization": "Bearer YOUR_OFOX_API_KEY"}# Create the generation tasktask = requests.post(BASE, headers=HEADERS, json={"model": "bytedance/seedance-2.5","prompt": "A golden retriever running on the beach at sunset","duration": 4,"resolution": "720p","generate_audio": True,"provider": {"type": "byteplus"},# Or: "provider": {"type": "volcengine"}}).json()# Poll until the task reaches a terminal statewhile True:task = requests.get(f"{BASE}/{task['id']}", headers=HEADERS).json()if task["status"] in ("completed", "failed", "cancelled", "expired"):breaktime.sleep(10)# Prefer mirror_urls (persistent) then fall back to unsigned_urls (24h)print((task.get("mirror_urls") or task.get("unsigned_urls") or [None])[0])