Tutorial
API de generación de video con referencia Seedance 2.5: cambia el sujeto conservando el movimiento de cámara del video de referencia
La duración del video de referencia también sefactura: cómo se calcula el costo y cómo escribir @video1 en el prompt, todo explicado en un solo artículo.
TL;DR
seedance-2.5/reference-to-videotoma un video existente como referencia, conserva su movimiento de cámara, ritmo y acción, y cambia el sujeto, el estilo visual o añade música de referencia. Abre la página del modelo para generar en línea; los nuevos usuarios reciben 200 créditos al registrarse.- Se factura por segundo, y la duración del video de referencia también cuesta: costo = precio unitario × (duración del video de referencia + duración de salida). 480p $0.1215 por segundo, 720p $0.2715, 1080p $0.68.
- 5 segundos de referencia + 5 segundos de salida: 480p $1.215, 720p $2.715. Ajustar el prompt primero en 480p es lo más económico.
Primero veamos un resultado real: cambiar el sujeto conservando el movimiento de cámara
El video de referencia es un anuncio de zapatillas para correr, y la imagen de referencia es una botella de perfume. El prompt hace que el modelo siga la secuencia de planos y el movimiento de cámara del anuncio de zapatillas, sustituyendo por completo el zapato por el perfume:
Use @video1 strictly as the reference for shot progression, product rotation, camera paths, pacing, macro close-ups, and lighting transitions. Replace the shoe completely with the perfume bottle from @image1. Preserve the bottle's exact silhouette, amber glass color, cap proportions, label placement, and premium material appearance in every shot. Present it as a luxury fragrance commercial on a dark obsidian pedestal, with warm amber rim light, controlled reflections, fine atmospheric mist, and precise macro detail. Follow the visual rhythm and camera choreography of @video1 while keeping one consistent perfume bottle throughout. Do not transfer shoe laces, soles, fabric textures, or shoe-shaped geometry into the bottle. Do not invent extra products, readable brand text, logos, hands, or people.
Genera con este prompt → (sube tu video de referencia y tu imagen de producto, 480p, 9:16)
seedance-2.5/reference-to-video, 480p, 9:16, salida de 4 segundos, audio generado por el modelo.
@video1 y @image1 son los identificadores de material en el prompt, y corresponden a la primera dirección de reference_video_urls y reference_image_urls según el orden en que se pasan. La frase final «no transfieras los cordones ni la suela al frasco de perfume» es tan importante como la descripción positiva anterior: si no se especifica claramente, el modelo arrastrará detalles del video de referencia.
curl: el primer video
curl -X POST https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer $HIAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.5/reference-to-video",
"input": {
"prompt": "沿用 @video1 的运镜和节奏,把主体换成 @image1 里的产品,光线和构图保持一致",
"reference_video_urls": ["https://your-cdn.example.com/reference-clip.mp4"],
"reference_image_urls": ["https://your-cdn.example.com/product.jpg"],
"duration": 5,
"resolution": "480p",
"aspect_ratio": "9:16"
}
}'
Si el video de referencia dura 5 segundos, esta solicitud se factura como 10 segundos en 480p: $1.215.
Devuelve taskId; luego consulta el resultado:
curl https://api.hiapi.ai/v1/tasks/tk-hiapi-... \
-H "Authorization: Bearer $HIAPI_KEY"
Cuando status sea success, descarga el video desde output[0].url.
Python: enviar, consultar y descargar
# pip install requests;先 export HIAPI_KEY=你的 Key
import os, time, uuid, requests
KEY = os.environ["HIAPI_KEY"]
H = {"Authorization": f"Bearer {KEY}"}
def generate(prompt, model="seedance-2.5/reference-to-video", timeout_s=900, **params):
body = {"model": model, "input": {"prompt": prompt, **params}}
# 重试提交同一个任务时带同一个 Idempotency-Key,避免重复扣费
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)
url = generate(
"保留 @video1 里柯基奔跑的节奏和低机位跟拍,把整个画面改成毛毡定格动画风格",
reference_video_urls=["https://your-cdn.example.com/corgi-run.mp4"],
duration=5, resolution="480p", aspect_ratio="16:9",
)
with open("clip.mp4", "wb") as f:
f.write(requests.get(url).content)
Tres usos habituales
1. Cambiar el sujeto conservando el movimiento de cámara (el ejemplo del perfume de arriba): video de referencia + imagen de referencia. El prompt debe especificar claramente «qué tomar de @video1», «qué tomar de @image1» y «qué no transferir».
2. Transferir solo la acción y cambiar todo el estilo visual: pasa solo el video de referencia. El siguiente convierte un video real de un corgi corriendo en animación stop-motion de fieltro, conservando el ritmo de carrera y el movimiento de cámara de seguimiento:
Use @video1 as the sole visual reference. Preserve the corgi's recognizable markings, running cadence, stride timing, body orientation, forward momentum, and the low side-tracking camera movement. Reimagine the entire scene as a handcrafted stop-motion film made from felt, wool, miniature grass, and painted paper scenery. Keep the warm sunset backlight and continuous chase rhythm, with subtle handmade texture and natural depth of field. Maintain one coherent corgi throughout the shot, anatomically stable legs, smooth forward motion, and a continuous camera path. Do not introduce additional animals, text, logos, abrupt cuts, or unrelated objects.
Genera con este prompt → (sube tu video de referencia)
seedance-2.5/reference-to-video, 480p, solo video de referencia, salida de 4 segundos.
3. Usar video + imagen + audio juntos: añade además reference_audio_urls y especifica en el prompt con @audio1 qué plano cae en qué punto de la música; es mucho más preciso que escribir solo «con música». El audio de referencia debe enviarse junto con el video de referencia.
Resumen de parámetros
| Parámetro | Valores | Descripción |
|---|---|---|
prompt |
cadena, obligatorio | Usa @video1 @image1 @audio1 para referenciar materiales |
reference_video_urls |
obligatorio, 1–10 segmentos | MP4/MOV, cada segmento de 2–30 segundos, total no superior a 30 segundos, cada segmento menor de 200 MB |
reference_image_urls |
máximo 30 imágenes | JPEG/PNG/WebP, etc., cada una menor de 30 MB |
reference_audio_urls |
máximo 10 segmentos | WAV/MP3, debe usarse junto con el video de referencia |
duration |
entero de 4–30, o -1 para que lo decida el modelo, por defecto 5 |
en segundos |
resolution |
480p / 720p / 1080p, por defecto 480p |
|
aspect_ratio |
16:9 4:3 1:1 3:4 9:16 21:9 adaptive |
Para vertical, escribe directamente 9:16 |
generate_audio |
por defecto true |
Calcula el costo
Segundos facturados = duración total del video de referencia + duración de salida. La imagen de referencia y el audio de referencia no tienen cargo adicional.
| Referencia + salida | 480p ($0.1215/s) | 720p ($0.2715/s) | 1080p ($0.68/s) |
|---|---|---|---|
| 5 s + 4 s | $1.0935 | $2.4435 | $6.12 |
| 5 s + 5 s | $1.215 | $2.715 | $6.8 |
| 10 s + 10 s | $2.43 | $5.43 | $13.6 |
Cómo ahorrar: recorta el video de referencia para dejar solo la acción que necesitas, ajusta el prompt en 480p y, cuando esté definido, genera en 720p o 1080p. Para ver el desglose más detallado, consulta Precios de la API de Seedance 2.5.
Antes de publicar
- Las direcciones de los materiales deben ser de acceso público: el video de referencia debe usar una dirección HTTPS de acceso público.
- Usa callbacks en lugar de sondeo: añade en el nivel superior de la solicitud
"callback": {"url": "https://tu-dominio/hiapi/callback"}y deduplica portaskId. - Guarda los archivos a tiempo:
output[0].urles un enlace temporal; guárdalo en tu propio almacenamiento en cuanto lo obtengas. - Reintentos con clave de idempotencia: añade
Idempotency-Keyen la cabecera; reintentar con la misma clave solo crea la tarea una vez. - Reembolso automático en caso de fallo: solo se factura el video generado correctamente.
Preguntas frecuentes
¿Puedo usarlo sin video de referencia, solo con una imagen de referencia?
No, reference_video_urls es obligatorio. Si solo tienes imágenes, usa el modo de imagen de referencia de Seedance 2.5 imagen a video.
¿Por qué me cobran más de lo que calculé?
La duración del video de referencia también se factura. Un video de referencia de 10 segundos + 5 segundos de salida se calcula como 15 segundos.
¿Puedo generar directamente en vertical?
Sí, escribe aspect_ratio como 9:16 y el modelo genera directamente en vertical, no es un recorte posterior.
¿Cuantos más materiales de referencia, más caro?
La imagen de referencia y el audio de referencia no añaden costo; solo el video de referencia se factura por duración.
Si no tienes materiales de referencia y solo quieres generar un video con texto, consulta API de Seedance 2.5 texto a video. Si quieres probar uno primero, ve a la página del modelo y sube tu video de referencia.
Artículos relacionados
Ver todos los artículos →-
Tutorial
Cómo llamar a hailuo-2.3-fast/image-to-video a través de la API de HiAPI: práctica con curl y Python
La primera solicitud ejecutable del nivel rápido y de bajo coste de imagen a vídeo: del ID del modelo a la descarga del MP4
-
Tutorial
Cómo llamar a hailuo-2.3/text-to-video mediante la API de HiAPI: curl, Python y ejemplos de solicitud ejecutables
-
Tutorial
Uso de Kandinsky 6.0 Pro texto a video en HiAPI: tutorial con curl y Python
Demostración práctica centrada en la solicitud: construir la llamada de prompt a clip de video, enviar la solicitud, sondear el estado de finalización y descargar el resultado