Pruna AI
P-Video 2 Pro Replace
p-video-2-pro-replace
Modello video di sostituzione delle persone di Pruna AI: con una o due immagini di riferimento inserisce una persona in un video esistente, sostituendo fino a due persone contemporaneamente, preservando movimento di macchina, composizione, sfondo e azioni del video originale, e può riutilizzare la traccia audio di origine; ideale per varianti pubblicitarie e voci fuori campo localizzate
Prova p-video-2-pro-replace
Input
Creazioni
Vedi tutte le creazioniOutput
videoPrezzi
p-video-2-pro-replace per second
| Specifiche | Prezzo unitario |
|---|---|
| 480P | $0.0358 |
| 768P | $0.0715 |
| 1080P | $0.0858 |
| 2K | $0.100 |
| 4K | $0.1286 |
Panoramica della posizione
Si tratta di uno strumento di sostituzione video pensato per la post-produzione video e la produzione di materiali di marketing: caricando un video sorgente e una o due immagini di riferimento di persone, è possibile inserire le persone delle immagini nella scena del video originale, preservando al contempo la cinematografia, la composizione, lo sfondo e il ritmo d'azione del filmato originale. Il prompt può integrare le modalità di posizionamento delle persone oppure essere lasciato vuoto per una resa naturale conforme al video sorgente. È adatto per varianti pubblicitarie, versioni localizzate con volti in scena e la ricollocazione dei personaggi su materiali esistenti; l'output è un file video consegnabile con le proporzioni dell'immagine sorgente.
Punti salienti
- Sostituzione delle persone mantenendo la scena originale — dopo la sostituzione si mantengono cinematografia, composizione, sfondo e ritmo d'azione del video sorgente, riducendo il lavoro di ripresa e riallestimento.
- Una o due immagini di riferimento per definire le persone — supporta una singola persona, oppure due persone sostituite simultaneamente ciascuna con un'immagine, ideale per creare rapidamente varianti di materiali con due persone in scena.
- Ereditarietà di durata e proporzioni dell'immagine — la durata dell'output segue il video sorgente e le proporzioni dell'immagine restano quelle del video sorgente, per riutilizzare montaggi e specifiche di distribuzione esistenti.
Descrizione delle capacità
Sostituzione delle persone tramite immagini di riferimento: fornendo una o due immagini HTTPS di persone, è possibile inserire le persone delle immagini nella scena del video sorgente; le due immagini corrispondono rispettivamente alle due persone in scena ed è ideale per inquadrature con due persone.
Controllo del posizionamento tramite prompt: il prompt opzionale può contenere fino a 1000 caratteri e serve a spiegare come inserire le persone nella scena; se lasciato vuoto, si procede secondo la resa originale del video sorgente.
Vincoli sulle specifiche del video sorgente: il video sorgente deve essere un MP4, MOV o WebM con indirizzo HTTPS, di durata compresa tra 2 e 30 secondi; i valori fuori intervallo vengono rifiutati; la durata dell'output segue il video sorgente.
Scelta della risoluzione: è possibile scegliere una specifica di output tra 480p, 768p, 1080p, 2k e 4k; il valore predefinito è 768p e le proporzioni dell'immagine seguono il video sorgente.
Riproducibilità tramite seed casuale: è possibile impostare un seed casuale da 0 a 2147483647 per ripetere la generazione con gli stessi materiali e parametri e confrontare diversi effetti di posizionamento delle persone.
Scenari d'uso
- Produzione in serie di varianti con volti in scena da parte dei team pubblicitari — abbinando lo stesso video sorgente a diverse immagini di riferimento di persone, si producono materiali video con più versioni dei personaggi, per test di distribuzione e distribuzione multipiattaforma.
- Sostituzione localizzata dei volti in scena per il marketing — mantenendo scena e ritmo del filmato originale, si sostituiscono i volti in scena con l'immagine del mercato di destinazione, ottenendo una versione localizzata inseribile direttamente nei montaggi esistenti.
- Ricollocazione dei personaggi su materiali esistenti — si sostituiscono i soggetti in scena di materiali già girati, senza bisogno di riallestire la scena e girare di nuovo, ottenendo file video adatti a ulteriori montaggi e consegna.
- Sostituzione simultanea in inquadrature con due persone — fornendo un'immagine di riferimento per ciascuna delle due persone, si genera in un'unica soluzione una versione con entrambe in scena, per la produzione di materiali multi-personaggio destinati ai video brevi per i social.
Limitazioni e consigli sulla scelta
È possibile sostituire al massimo due persone per volta; il video sorgente deve durare da 2 a 30 secondi, valori più brevi o più lunghi vengono rifiutati e la durata dell'output segue il video sorgente. È necessario fornire contemporaneamente il video sorgente e almeno un'immagine di riferimento; non è possibile generare video da zero basandosi solo sul testo. Disattivando la conservazione dell'audio sorgente, la traccia originale non viene mantenuta ed è necessario verificare autonomamente l'audio della versione finale. L'effetto di sostituzione dipende dalle immagini di riferimento e dalle condizioni visive del video sorgente; non è garantita un'identità perfetta dell'aspetto delle persone.
Novità
Vedi il changelog →- Nuovo modello P-Video 2 Pro Replace è online: sostituisci le persone in un video con 1–2 foto
Domande frequenti
Vedi tutte le domande →-
Quante persone al massimo si possono sostituire nell'immagine?
Massimo due persone. In image_urls inserisci 1–2 foto di persone: una foto se è una sola persona, una foto per ciascuna se sono due. Puoi usare il prompt per specificare come inserire le persone nella scena.
-
Quanto può essere lungo il video di origine per essere utilizzato?
Al momento sono accettati solo video di origine da 2 a 30 secondi; le richieste che superano questo intervallo vengono rifiutate. La durata dell'output corrisponde a quella del video di origine e non può essere specificata separatamente; se il materiale è più lungo, è necessario ritagliarlo o suddividerlo in segmenti e trattarli separatamente.
-
Durante la sostituzione la camera e lo sfondo cambiano?
No, il movimento della camera, la composizione, lo sfondo e il ritmo temporale restano tutti quelli del video di origine; il modello sostituisce solo la persona. Inoltre non è possibile modificare le modalità di ripresa tramite parametri; per ottenere un'inquadratura o una scena diversa è necessario utilizzare un altro video di origine.
-
È possibile mantenere l'audio del video originale?
Sì, per impostazione predefinita viene mantenuto: keep_audio è true per default e l'output include la traccia audio del video di origine. Impostandolo su false, l'output non include l'audio originale.
Crea un'attività di generazione
https://api.hiapi.ai/v1/tasks Header
AuthorizationstringObbligatorioChiave API dell'account. Obbligatoria in ogni richiesta. Esempio: Bearer YOUR_HIAPI_API_KEY. Ottieni una chiave API
Content-TypestringOpzionaleIl corpo della richiesta viene sempre interpretato come JSON; se inviato, è accettato solo application/json (charset facoltativo) — qualsiasi altro valore restituisce 415. Esempio: application/json.
Idempotency-KeystringOpzionaleChiave di idempotenza, fino a 255 byte. I retry con la stessa chiave dello stesso account creano l'attività una sola volta; i replay restituiscono il taskId originale.
In caso di timeout di rete o retry automatici del client, la stessa chiave crea l'attività una sola volta, senza doppi addebiti (ambito = l'account della chiave API). Usa un identificatore univoco di business (es. "order-42"); i replay restituiscono il taskId originale e le chiavi scadono 24 ore dopo la prima richiesta. La matrice completa degli scenari è nell'introduzione dell'API asincrona unificata.
Corpo
modelstringObbligatorioValore fisso attuale: p-video-2-pro-replace
routestringOpzionaleValore fisso attuale: default
inputobjectObbligatorio
Oggetto di parametri di business per p-video-2-pro-replace e la route default — vedi la tabella dei parametri sotto.
seedintegerOpzionalemin 0max 2147483647Seme casuale, accetta un numero intero da 0 a 2147483647; passare lo stesso seme mantenendo invariati gli altri input aiuta a riprodurre i risultati; se non passato, il seme è casuale.
promptstringOpzionalemaxLength 1000Istruzione facoltativa che spiega come inserire la persona dell'immagine di riferimento nella scena; se lasciata vuota, si segue direttamente il contenuto e la composizione del video sorgente.
video_urlstringObbligatoriopattern ^https://URL HTTPS del video sorgente, supporta i formati MP4, MOV, WebM, la durata deve essere di 2-30 secondi, fornisce movimento, scena, inquadratura e audio; le richieste con durata fuori da questo intervallo vengono rifiutate, la durata dell'output è identica a quella del video sorgente.
image_urlsarrayObbligatoriominItems 1maxItems 2Array di URL HTTPS delle immagini di identità delle persone da inserire nel video, supporta jpg, jpeg, png, webp; passarne 1-2, che possono corrispondere a una persona, oppure a due persone con un'immagine ciascuna.
Array [ string ]
keep_audiobooleanOpzionalePredefinito: trueIndica se mantenere l'audio del video sorgente nell'output; valore booleano, predefinito true.
resolutionstringOpzionalePredefinito: "768p"Risoluzione dell'output, valori disponibili 480p, 768p, 1080p, 2k, 4k, predefinita 768p, mantiene le proporzioni del video sorgente; maggiore è la risoluzione, maggiore è il costo.
480p768p1080p2k4kcallbackobjectOpzionale
Configurazione di notifica dello stato terminale. Se omessa, nessun callback: interroga l'attività per conto tuo.
Fornisci callback.url in creazione e HiAPI invierà un POST al tuo servizio allo stato terminale, senza polling. Il corpo del callback replica la struttura del dettaglio attività; verifica firma, retry e idempotenza sono descritti nell'introduzione dell'API asincrona unificata.
urlstringObbligatorioObbligatoria se è presente callback. Allo stato terminale viene inviato un POST a questo URL; deve essere un URL http(s) valido.
whenstringOpzionalePredefinito: "final"Al momento è supportato solo final: notifica sia su success sia su fail.
finalstoragestringOpzionalePredefinito: "temp"Livello di archiviazione degli artefatti: temp (predefinito, ~7 giorni) o persistent (a lungo termine, fatturato per dimensione). Saldo insufficiente o superamento del limite ⇒ declassamento silenzioso a temp; il livello effettivo è visibile nella risposta di dettaglio.
temppersistentEsempi di richiesta
# Invia un'attività asincrona; restituisce subito un taskId (senza attendere la generazione)
curl -X POST "https://api.hiapi.ai/v1/tasks" \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "p-video-2-pro-replace",
"input": {
"video_url": "…",
"image_urls": "…",
"keep_audio": true,
"resolution": "768p"
}
}' const res = await fetch("https://api.hiapi.ai/v1/tasks", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.HIAPI_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "p-video-2-pro-replace",
input: {
"video_url": "…",
"image_urls": "…",
"keep_audio": true,
"resolution": "768p"
}
}),
});
const task = await res.json();
// { code: 200, message: "success", data: { taskId } } import os, requests
res = requests.post(
"https://api.hiapi.ai/v1/tasks",
headers={"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"},
json={
"model": "p-video-2-pro-replace",
"input": {
"video_url": "…",
"image_urls": "…",
"keep_audio": True,
"resolution": "768p"
}
},
)
print(res.json()) # { code, message, data: { taskId } } 200 OK
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR"
}
} 400 Bad Request
{
"code": 400,
"message": "invalid request",
"data": null,
"error_code": "INVALID_REQUEST"
} Ottieni i dettagli dell'attività
https://api.hiapi.ai/v1/tasks/:id Campi della risposta
taskIdstringObbligatorioID attività, sempre con prefisso tk-hiapi-.
modelstringObbligatorioNome completo risolto del modello. Le attività inviate con il parametro route restituiscono base@route (es. gpt-image-2/text-to-image@ext); altrimenti coincide con il nome inviato.
routestringOpzionalePresente solo se è stato usato il parametro route esplicito; restituisce il valore inviato.
statusstringObbligatorioStato dell'attività.
queued In coda, non avviata.
handling In elaborazione.
archiving Elaborazione conclusa, preparazione artefatti.
success Terminale: completato, artefatti disponibili (restituisce output).
fail Terminale: errore (restituisce error).
Dopo l'invio, segui status: success e fail sono terminali, il resto no. Esegui polling ogni 1–3 s fino allo stato terminale. In caso di successo scarica gli artefatti da output[].url e trasferiscili prima di expireAt; per conservazione lunga usa storage: "persistent" in creazione.
creatednumberObbligatorioIstante di creazione dell'attività (secondi Unix).
completednumberObbligatorioSecondi Unix dello stato terminale; 0 finché non terminale.
outputarrayOpzionale
Presente solo con status == success. Elenco artefatti — sempre un array; un'attività può restituire più type contemporaneamente (es. video + first_frame).
Array [ object ]
Elementi dell'array
urlstringObbligatorioURL dell'artefatto, scaricabile direttamente.
typestringObbligatorioValori attualmente possibili: video, image, audio, first_frame, last_frame, thumbnail; potrebbero essere ampliati in futuro.
expireAtnumberObbligatorioSecondi Unix di disponibilità dell'artefatto; scarica o trasferisci prima della scadenza.
errorobjectOpzionale
Presente solo con status == fail.
codestringObbligatorioCodice errore di business.
messagestringObbligatorioDescrizione dell'errore.
Esempi di risposta
Successo
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR",
"model": "happyhorse-1-0",
"status": "success",
"created": 1777282033,
"completed": 1777282099,
"output": [
{
"url": "https://cdn.hiapi.ai/tasks/.../video.mp4",
"type": "video",
"expireAt": 1777886899
}
]
}
} In elaborazione (non terminale)
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "archiving",
"created": 1777282033,
"completed": 0
}
} Non riuscito
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "fail",
"created": 1777282033,
"completed": 1777282099,
"error": {
"code": "TASK_FAILED",
"message": "task failed"
}
}
} Articoli
Vedi tutti gli articoli →Modelli correlati
Vedi tutti i modelli →Stesso tipo
-
Vidu Q4 Preview Vidu $0.051 /secondo -
Kling 3.0 Kuaishou $0.100 /secondo -
HeyGen Avatar IV HeyGen $0.150 /secondo -
HappyHorse 1.1 Alibaba $0.160 /secondo -
Kandinsky 6.0 Pro $1.93 /video -
Wan 3.0 Video Alibaba $0.040 /secondo -
P-Video 2 Pro Avatar Pruna AI $0.029 /secondo -
PixVerse V6 PixVerse $0.036 /secondo -
Gemini Omni 1.1 Google $0.450 /video -
HeyGen Avatar V HeyGen $0.150 /secondo -
OmniHuman 2.0 ByteDance $0.100 /secondo -
Seedance 2.0 ByteDance $0.017 /secondo
