Seedance 2.5 de imagen a vídeo: guía de la API
Seedance 2.5 convierte una imagen fija en un clip de 4 a 30 segundos con sonido. Dale un primer fotograma y el vídeo empieza exactamente en esa imagen; dale un primer y un último fotograma y pasará de uno a otro. Aquí tienes la solicitud para cada caso, con código que puedes ejecutar.
Dos formas de empezar desde una imagen
| Modo | Campo | Qué obtienes |
|---|---|---|
| Primer fotograma | image_url | El clip empieza en tu imagen y avanza a partir de ella, según diga el prompt. |
| Primer y último fotograma | image_url + end_image_url | El clip empieza en una imagen y termina en la otra. La misma imagen dos veces hace un bucle. |
| Imágenes de referencia | image_urls (hasta 30) | Las imágenes guían el aspecto (una cara, un producto, un lugar) sin fijar el primer fotograma. Consulta referencia a vídeo. |
Animar una imagen (primer fotograma)
Pon aspect_ratio en adaptive y el vídeo mantiene la forma de tu imagen, así que una foto 9:16 da un clip 9:16. Describe lo que se mueve, no lo que ya está en la imagen: el modelo puede verla.
# One Idempotency-Key per job, made once: resend with the same $KEY after a timeout, a 429 or a 5xx
KEY=$(uuidgen)
curl https://api.revana.si/v1/generations \
-H "Authorization: Bearer $REVANA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $KEY" \
-d '{
"model": "seedance-2.5",
"input": {
"prompt": "The model turns her head toward the camera and smiles as the wind lifts her hair, slow push-in, city traffic in the background",
"image_url": "https://example.com/portrait.jpg",
"duration": 6,
"resolution": "720p",
"aspect_ratio": "adaptive",
"audio": true
},
"max_cost_usd": 3
}'De una imagen a otra (primer y último fotograma)
Añade end_image_url. Útil para transformaciones (antes y después, del día a la noche, de una habitación vacía a una amueblada) y para bucles sin cortes.
# One Idempotency-Key per job, made once: resend with the same $KEY after a timeout, a 429 or a 5xx
KEY=$(uuidgen)
curl https://api.revana.si/v1/generations \
-H "Authorization: Bearer $REVANA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $KEY" \
-d '{
"model": "seedance-2.5",
"input": {
"prompt": "Time-lapse: the empty plot becomes a finished house, workers moving fast, clouds racing",
"image_url": "https://example.com/plot.jpg",
"end_image_url": "https://example.com/house.jpg",
"duration": 8,
"resolution": "720p",
"aspect_ratio": "adaptive"
},
"max_cost_usd": 3
}'Desde un archivo de tu ordenador, en Python
Las referencias deben ser enlaces https. Para un archivo local, POST /v1/uploads te da un enlace al que hacer PUT de los bytes, y un url para pasar como image_url (válido 14 días). Imágenes de hasta 30 MB.
import os, time, uuid, requests
API = "https://api.revana.si/v1"
H = {"Authorization": f"Bearer {os.environ['REVANA_API_KEY']}"}
# 1. Upload the picture from your computer (skip this if it already has a public https link).
up = requests.post(f"{API}/uploads", headers=H, json={"content_type": "image/jpeg", "bytes": os.path.getsize("product.jpg"), "filename": "product.jpg"}).json()
with open("product.jpg", "rb") as fh:
requests.put(up["upload_url"], data=fh, headers=up["upload_headers"]).raise_for_status()
# 2. Quote, then animate it. The clip starts on exactly this picture.
body = {"model": "seedance-2.5", "input": {
"prompt": "The bottle slowly turns on the marble counter as morning light sweeps across the label, water droplets glisten",
"image_url": up["url"], "duration": 5, "resolution": "720p", "aspect_ratio": "adaptive", "audio": True}}
quote = requests.post(f"{API}/generations/quote", headers=H, json=body).json()
print("price", quote["quoted_usd"])
key = str(uuid.uuid4()) # made once: resend with the same key after a timeout, a 429 or a 5xx
job = requests.post(f"{API}/generations", headers={**H, "Idempotency-Key": key},
json={**body, "max_cost_usd": quote["reserved_usd"]}).json()
# 3. Wait, then download.
while job["status"] in ("queued", "running"):
time.sleep(5)
job = requests.get(f"{API}/generations/{job['id']}", headers=H).json()
if job["status"] == "succeeded":
open("product.mp4", "wb").write(requests.get(f"{API}/generations/{job['id']}/content", headers=H).content)Cuánto cuesta la imagen a vídeo
La misma tarifa por segundo que el texto a vídeo: 480p $0.09 · 720p $0.21 · 1080p $0.52, sonido incluido. Un primer fotograma puede sumar un poco a la tarifa indicada, así que el endpoint de cotización (gratis) da el precio exacto de cada solicitud; pasa su reserved_usd como max_cost_usd. Las generaciones fallidas no se cobran. Calculadora de precios.
Prompts que funcionan para imagen a vídeo
- Di qué cambia. «Se gira y sale del encuadre» funciona mejor que describir a la mujer que ya aparece en la foto.
- Un solo movimiento de cámara. Acercamiento lento, órbita, paneo a la izquierda o plano fijo. Dos movimientos a la vez en un clip corto suelen chocar.
- Mantén la luz. Menciona la luz que hay en la imagen («luz cálida de ventana») para que el clip no derive hacia otro aspecto.
- Añade el sonido. Seedance 2.5 lo genera con la imagen: «pasos sobre grava, un tren a lo lejos».
- Usa una imagen limpia y nítida con una forma parecida a la de salida. El texto y los logotipos de la imagen pueden deformarse al moverse; añádelos en tu editor.
Más ejemplos en la guía de prompts de Seedance 2.5.
Otros modelos de imagen a vídeo con la misma clave
| Modelo | Duración | Resoluciones | Primer y último fotograma | 720p por segundo con sonido |
|---|---|---|---|---|
| Seedance 2.5 | 4–30 s | 480p, 720p, 1080p | Sí | $0.21 |
| Seedance 2.0 | 4–15 s | 480p, 720p, 1080p, 4K | Sí | $0.15 |
| Kling 4.0 | 3–30 s | 720p, 1080p | Sí | $0.18 |
| Kling 3.0 | 3–15 s | 720p, 1080p, 4K | Sí | $0.13 |
| Veo 3.1 | 4, 6, 8 s | 720p, 1080p, 4K | Sí | $0.40 |
| Wan 3.0 | 2–30 s | 480p, 720p, 1080p | Sí | $0.07 |
| MiniMax H3 | 4–15 s | 768p, 2K | Sí | $0.03 (768p) |
Preguntas frecuentes
¿Seedance 2.5 hace imagen a vídeo?
Sí. Envía image_url para un primer fotograma, o image_url y end_image_url para un primer y último fotograma, en la misma solicitud POST /v1/generations que el texto a vídeo. Los clips duran de 4 a 30 segundos con sonido.
¿Cuánto cuesta la imagen a vídeo de Seedance 2.5?
480p $0.09 · 720p $0.21 · 1080p $0.52 por segundo con sonido en Revana. Un primer fotograma puede sumar un poco; el endpoint de cotización gratis da el precio exacto.
¿Qué formatos y tamaños de imagen sirven?
Cualquier enlace https público a una imagen JPEG, PNG o WebP, o un archivo subido con POST /v1/uploads (imágenes de hasta 30 MB).
¿El vídeo mantendrá la relación de aspecto de mi imagen?
Sí, con aspect_ratio en adaptive: el clip toma la forma del primer fotograma.
¿Puedo hacer un bucle sin cortes?
Sí: pasa la misma imagen como image_url y end_image_url, y describe un movimiento que vuelva al inicio.
Crea tu primer vídeo con Seedance 2.5
Una sola clave de API para Seedance 2.5 y el resto de modelos de vídeo e imagen. Crédito prepago desde $10, crédito gratis de registro, sin suscripción y solo se cobran los clips entregados.