HiAPI
Blog

Tutoriale

API Seedance 2.5 reference-to-video: mantieni il movimento di camera del video di riferimento cambiando il soggetto

Anche la durata del video di riferimento viene conteggiata: come si calcola il costo e come scrivere @video1 nel prompt, tutto in un solo articolo.

Oct 15, 2026
API Seedance 2.5 reference-to-video: mantieni il movimento di camera del video di riferimento cambiando il soggetto

TL;DR

  • seedance-2.5/reference-to-video prende un video esistente come riferimento, ne conserva movimento di camera, ritmo e azione, e poi cambia soggetto, cambia stile o aggiunge una musica di riferimento. Apri la pagina del modello per generare online; i nuovi utenti ricevono 200 crediti alla registrazione.
  • Fatturazione al secondo, anche la durata del video di riferimento si paga: costo = prezzo unitario × (durata video di riferimento + durata output). 480p $0.1215 al secondo, 720p $0.2715, 1080p $0.68.
  • 5 secondi di riferimento + 5 secondi di output: 480p $1.215, 720p $2.715. Conviene partire da 480p per mettere a punto il prompt, è la soluzione più economica.

Prima un esempio reale: cambia soggetto, mantieni il movimento di camera

Il video di riferimento è uno spot di scarpe da running, l'immagine di riferimento è una bottiglia di profumo. Il prompt chiede al modello di seguire la sequenza di inquadrature e il movimento di camera dello spot delle scarpe, sostituendo completamente le scarpe con il profumo:

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 questo prompt → (carica il tuo video di riferimento e l'immagine del prodotto, 480p, 9:16)

seedance-2.5/reference-to-video, 480p, 9:16, output di 4 secondi, audio generato dal modello.

@video1 e @image1 sono gli identificatori dei materiali nel prompt e corrispondono, nell'ordine di invio, al primo indirizzo in reference_video_urls e reference_image_urls. La frase finale «non portare lacci, suole nella bottiglia di profumo» è importante quanto le descrizioni positive che la precedono: se non lo scrivi chiaramente, il modello trasferirà i dettagli del video di riferimento.

curl: il primo 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"
    }
  }'

Se il video di riferimento dura 5 secondi, questa richiesta viene fatturata come 10 secondi in 480p, $1.215.

Restituisce un taskId, poi controlla il risultato:

curl https://api.hiapi.ai/v1/tasks/tk-hiapi-... \
  -H "Authorization: Bearer $HIAPI_KEY"

Quando status è success, scarica il video da output[0].url.

Python: invio, polling, download

# 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)

Tre utilizzi comuni

1. Cambiare soggetto mantenendo il movimento di camera (l'esempio del profumo qui sopra): video di riferimento + immagine di riferimento. Nel prompt specifica chiaramente «cosa prendere da @video1», «cosa prendere da @image1» e «cosa non trasferire».

2. Trasferire solo l'azione, cambiando completamente lo stile: invia solo il video di riferimento. Il seguente trasforma una ripresa reale di un corgi che corre in un'animazione stop-motion in feltro, conservando ritmo di corsa e movimento di camera in inseguimento:

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 questo prompt → (carica il tuo video di riferimento)

seedance-2.5/reference-to-video, 480p, solo video di riferimento, output di 4 secondi.

3. Video + immagine + audio insieme: aggiungi anche reference_audio_urls e nel prompt usa @audio1 per specificare quale inquadratura cade su quale punto della musica: molto più preciso che scrivere solo «musica di sottofondo». L'audio di riferimento deve essere inviato insieme al video di riferimento.

Panoramica dei parametri

Parametro Valori Descrizione
prompt stringa, obbligatorio Usa @video1 @image1 @audio1 per fare riferimento ai materiali
reference_video_urls obbligatorio, 1–10 clip MP4/MOV, 2–30 secondi per clip, totale non superiore a 30 secondi, ogni clip sotto i 200 MB
reference_image_urls fino a 30 immagini JPEG/PNG/WebP ecc., singola immagine sotto i 30 MB
reference_audio_urls fino a 10 clip WAV/MP3, da usare insieme al video di riferimento
duration intero da 4 a 30, oppure -1 deciso dal modello, predefinito 5 unità in secondi
resolution 480p / 720p / 1080p, predefinito 480p
aspect_ratio 16:9 4:3 1:1 3:4 9:16 21:9 adaptive per il verticale scrivi direttamente 9:16
generate_audio predefinito true

Calcoliamo il costo

Secondi fatturati = durata totale del video di riferimento + durata output. Immagini e audio di riferimento non hanno costi aggiuntivi.

Riferimento + output 480p ($0.1215/sec) 720p ($0.2715/sec) 1080p ($0.68/sec)
5 sec + 4 sec $1.0935 $2.4435 $6.12
5 sec + 5 sec $1.215 $2.715 $6.8
10 sec + 10 sec $2.43 $5.43 $13.6

Per risparmiare: taglia il video di riferimento lasciando solo l'azione che ti serve, poi metti a punto il prompt in 480p e, una volta finalizzato, genera in 720p o 1080p. Per un calcolo più dettagliato vedi Prezzi API Seedance 2.5.

Da sapere prima di andare in produzione

  • Gli indirizzi dei materiali devono essere accessibili pubblicamente: il video di riferimento deve usare un indirizzo HTTPS accessibile pubblicamente.
  • Usa il callback invece del polling: aggiungi al livello superiore della richiesta "callback": {"url": "https://tuo-dominio/hiapi/callback"} e deduplica per taskId.
  • Salva subito: output[0].url è un link temporaneo, salvalo nel tuo storage appena lo ricevi.
  • Riprova con chiave di idempotenza: aggiungi Idempotency-Key nell'header della richiesta; con la stessa chiave il task viene creato una sola volta.
  • Rimborso automatico in caso di errore: si paga solo per i video generati con successo.

Domande frequenti

Senza video di riferimento, posso usare solo un'immagine di riferimento?

No, reference_video_urls è obbligatorio. Se hai solo immagini, usa la modalità con immagine di riferimento di Seedance 2.5 image-to-video.

Perché l'addebito è superiore al mio calcolo?

Anche la durata del video di riferimento viene fatturata. 10 secondi di video di riferimento + 5 secondi di output vengono calcolati come 15 secondi.

Si può generare direttamente in verticale?

Sì, imposta aspect_ratio su 9:16: il modello genera direttamente in verticale, non è un ritaglio successivo.

Più materiali di riferimento significano un costo maggiore?

Immagini e audio di riferimento non costano nulla in più; solo il video di riferimento viene fatturato in base alla durata.

Se non hai materiali di riferimento e vuoi generare solo da un testo, vedi API Seedance 2.5 text-to-video. Per provare subito un video, vai alla pagina del modello e carica il video di riferimento.

Inizia a creare con artefatti IA persistenti

Ottieni la tua chiave API e chiama modelli di immagini, video e audio tramite un'unica API basata sui task.

Leggi la documentazione API