Pruna AI
P-Video 2 Pro Replace
p-video-2-pro-replace
Modelo de sustitución de personas en vídeos de Pruna AI: con una o dos imágenes de referencia, coloca personas en un vídeo existente, sustituyendo hasta dos personas a la vez, y conserva el movimiento de cámara, la composición, el fondo y la acción del vídeo original; además, puede reutilizar la pista de audio de origen, lo que lo hace ideal para variantes publicitarias y locuciones localizadas
Probar p-video-2-pro-replace
Entrada
Creaciones
Ver todas las creacionesSalida
videoPrecios
p-video-2-pro-replace per second
| Especificaciones | Precio unitario |
|---|---|
| 480P | $0.0358 |
| 768P | $0.0715 |
| 1080P | $0.0858 |
| 2K | $0.100 |
| 4K | $0.1286 |
Descripción general
Esta es una herramienta de sustitución de vídeo orientada a la postproducción y a la creación de materiales de marketing: basta con subir un vídeo de origen y una o dos imágenes de referencia de personas para insertar a las personas de las imágenes en la escena del vídeo original, conservando al mismo tiempo el movimiento de cámara, la composición, el fondo y el ritmo de acción del metraje original. El prompt puede indicar cómo colocar a las personas, o bien dejarse vacío para que se mantenga la presentación natural del vídeo de origen. Resulta adecuada para variantes publicitarias, versiones de aparición localizadas y la reselección de personajes en material ya existente; la salida es un archivo de vídeo que puede entregarse con la relación de aspecto del fotograma de origen.
Puntos clave
- Sustituye a las personas y conserva la escena original: tras la sustitución se mantienen el movimiento de cámara, la composición, el fondo y el ritmo de acción del vídeo de origen, lo que reduce el trabajo de regrabación y de nuevo montaje de decorados.
- Una o dos imágenes de referencia definen a las personas: admite una sola persona, o bien dos personas sustituidas a la vez con una imagen cada una, lo que facilita la creación rápida de variantes de material con dos personas en pantalla.
- Se heredan la duración y la relación de aspecto de origen: la duración de salida sigue al vídeo de origen y la relación de aspecto se mantiene igual a la del vídeo de origen, lo que facilita reutilizar el montaje y las especificaciones de publicación existentes.
Descripción de capacidades
Sustitución de personas mediante imágenes de referencia: basta con proporcionar una o dos imágenes HTTPS de personas para insertar a las personas de las imágenes en la escena del vídeo de origen; las dos imágenes corresponden respectivamente a las dos personas en pantalla, lo que resulta adecuado para planos con dos personas.
Control de la colocación mediante prompt: el prompt opcional admite hasta 1000 caracteres y sirve para indicar cómo se insertan las personas en la escena; si se deja vacío, se procesa según la presentación original del vídeo de origen.
Restricciones de especificaciones del vídeo de origen: el vídeo de origen debe ser un MP4, MOV o WebM accesible mediante una dirección HTTPS, con una duración de 2 a 30 segundos; si se sale de ese rango, se rechaza. La duración de salida sigue al vídeo de origen.
Selección de resolución: se puede elegir una especificación de salida entre 480p, 768p, 1080p, 2k y 4k; el valor predeterminado es 768p y la relación de aspecto se mantiene igual a la del vídeo de origen.
Reproducibilidad mediante semilla aleatoria: se puede establecer una semilla aleatoria de 0 a 2147483647 para repetir la generación con el mismo material y los mismos parámetros y comparar distintos resultados de colocación de personas.
Casos de uso
- Producción masiva de variantes con personas en pantalla por equipos publicitarios: con el mismo vídeo de origen y distintas imágenes de referencia de personas se generan materiales de vídeo con varias versiones de personas, para pruebas de publicación y distribución multiplataforma.
- Sustitución localizada de las personas en pantalla para marketing: se conservan la escena y el ritmo del metraje original y se cambia a las personas en pantalla por una imagen del mercado objetivo, obteniendo una versión localizada que puede sustituirse directamente en el montaje existente.
- Reselección de personajes en material existente: se cambia a las personas en pantalla de material ya rodado sin necesidad de volver a montar decorados ni de grabar de nuevo; la salida es un archivo de vídeo apto para seguir editando y entregar.
- Sustitución simultánea en planos con dos personas: se proporciona una imagen de referencia para cada una de las dos personas y se genera en una sola pasada una versión con ambas en pantalla, para la creación de material con varias personas en vídeos cortos para redes sociales.
Limitaciones y recomendaciones de selección
Se sustituyen como máximo dos personas por vez; el vídeo de origen debe durar entre 2 y 30 segundos, y si es más corto o más largo se rechaza. La duración de salida sigue al vídeo de origen. Es obligatorio proporcionar el vídeo de origen y al menos una imagen de referencia; no se puede generar un vídeo desde cero solo con texto. Si se desactiva la conservación del audio de origen, no se reutiliza la pista original y hay que comprobar por cuenta propia el sonido de la versión final. El resultado de la sustitución depende de las imágenes de referencia y de las condiciones visuales del vídeo de origen, y no se garantiza que la apariencia de las personas sea totalmente idéntica.
Novedades
Ver el registro de cambios →- Nuevo modelo P-Video 2 Pro Replace ya está disponible: reemplaza a las personas de un video con 1–2 fotos de personas
Preguntas frecuentes
Ver todas las preguntas →-
¿A cuántas personas como máximo se puede sustituir en la escena?
Como máximo dos personas. En image_urls coloca 1–2 fotos de personas: si es una persona, una foto; si son dos, una foto por cada una. Puedes usar prompt para especificar cómo integrar a las personas en la escena.
-
¿Qué duración puede tener el video de origen para poder usarse?
Por ahora solo se aceptan videos de origen de 2 a 30 segundos; las solicitudes fuera de ese rango serán rechazadas. La duración de salida es la misma que la del video de origen y no se especifica por separado; si el material es más largo, primero debe recortarse o segmentarse y procesarse por separado.
-
¿Cambiarán la cámara y el fondo al sustituir?
No, el movimiento de cámara, la composición, el fondo y el ritmo temporal se mantienen todos del video de origen; el modelo solo sustituye a la persona. Tampoco puede modificar la forma de rodaje mediante parámetros; si se desea un ángulo de cámara o una escena diferentes, es necesario usar otro video de origen.
-
¿Se puede conservar el sonido del video original?
Sí, se conserva de forma predeterminada: keep_audio es true por defecto y la salida incluye la pista de audio del video de origen. Si se establece en false, la salida no incluye el audio original.
Crear una tarea de generación
https://api.hiapi.ai/v1/tasks Encabezados
AuthorizationstringObligatorioClave API de la cuenta. Obligatoria en cada solicitud. Ejemplo: Bearer YOUR_HIAPI_API_KEY. Obtener clave API
Content-TypestringOpcionalEl cuerpo de la solicitud siempre se analiza como JSON; si se envía, solo se acepta application/json (charset opcional) — cualquier otro valor devuelve 415. Ejemplo: application/json.
Idempotency-KeystringOpcionalClave de idempotencia, hasta 255 bytes. Los reintentos con la misma clave de la misma cuenta crean la tarea una sola vez; las repeticiones devuelven el taskId original.
Ante timeouts de red o reintentos automáticos del cliente, la misma clave crea la tarea una sola vez, sin doble cobro (alcance = la cuenta de la clave API). Usa un identificador de negocio único (p. ej. "order-42"); las repeticiones devuelven el taskId original y las claves caducan 24 h después de la primera solicitud. La matriz completa de escenarios está en la introducción de la API asíncrona unificada.
Cuerpo
modelstringObligatorioValor fijo actual: p-video-2-pro-replace
routestringOpcionalValor fijo actual: default
inputobjectObligatorio
Objeto de parámetros de negocio para p-video-2-pro-replace y la ruta default; consulta la tabla de parámetros a continuación.
seedintegerOpcionalmin 0max 2147483647Semilla aleatoria, un número entero entre 0 y 2147483647; pasar la misma semilla y mantener las demás entradas sin cambios ayuda a reproducir el resultado; si no se pasa, es aleatoria.
promptstringOpcionalmaxLength 1000Instrucción opcional que indica cómo colocar a la persona de la imagen de referencia en la escena; si se deja vacía, se siguen directamente el contenido y la composición del video de origen.
video_urlstringObligatoriopattern ^https://URL HTTPS del video de origen, compatible con formatos MP4, MOV y WebM, con una duración de 2 a 30 segundos, que aporta movimiento, escena, cámara y audio; las solicitudes con una duración fuera de ese rango se rechazan, y la duración de salida es igual a la del video de origen.
image_urlsarrayObligatoriominItems 1maxItems 2Arreglo de URL HTTPS de las imágenes de identidad de las personas que se colocarán en el video, compatible con jpg, jpeg, png y webp; se pasan de 1 a 2, que pueden corresponder a una sola persona, o a dos personas con una imagen cada una.
Array [ string ]
keep_audiobooleanOpcionalPredeterminado: trueIndica si se conserva el audio del video de origen en la salida; valor booleano, por defecto true.
resolutionstringOpcionalPredeterminado: "768p"Resolución de salida, con opciones 480p, 768p, 1080p, 2k y 4k; por defecto 768p, mantiene la relación de aspecto del video de origen; cuanto mayor es la resolución, mayor es el costo.
480p768p1080p2k4kcallbackobjectOpcional
Configuración de notificación de estado terminal. Si se omite, no hay callback: consulta la tarea por tu cuenta.
Indica callback.url al crear y HiAPI hará POST a tu servicio en el estado terminal, sin necesidad de sondeo. El cuerpo del callback replica la estructura del detalle de la tarea; firma, reintentos e idempotencia se detallan en la introducción de la API asíncrona unificada.
urlstringObligatorioObligatorio si se incluye callback. Al estado terminal se envía un POST a esta URL; debe ser una URL http(s) válida.
whenstringOpcionalPredeterminado: "final"Actualmente solo se admite final: notifica tanto en success como en fail.
finalstoragestringOpcionalPredeterminado: "temp"Nivel de almacenamiento de artefactos: temp (por defecto, ~7 días) o persistent (largo plazo, facturado por tamaño). Saldo insuficiente o exceso de límite ⇒ degradación silenciosa a temp; el nivel efectivo se muestra en la respuesta del detalle.
temppersistentEjemplos de solicitud
# Envía una tarea asíncrona; devuelve un taskId de inmediato (sin esperar la generación)
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"
} Obtener el detalle de la tarea
https://api.hiapi.ai/v1/tasks/:id Campos de respuesta
taskIdstringObligatorioID de tarea, siempre con prefijo tk-hiapi-.
modelstringObligatorioNombre completo resuelto del modelo. Las tareas enviadas con el parámetro route devuelven base@route (p. ej. gpt-image-2/text-to-image@ext); si no, coincide con el nombre enviado.
routestringOpcionalSolo aparece si se usó el parámetro route explícito; repite el valor enviado.
statusstringObligatorioEstado de la tarea.
queued En cola, sin iniciar.
handling Procesando.
archiving Proceso terminado, preparando artefactos.
success Terminal: completado, artefactos disponibles (se devuelve output).
fail Terminal: error (se devuelve error).
Tras el envío, guíate por status: success y fail son terminales; el resto, no. Sondea cada 1–3 s hasta el estado terminal. Con éxito, descarga los artefactos desde output[].url y transfiérelos antes de expireAt; para retención larga usa storage: "persistent" al crear.
creatednumberObligatorioHora de creación de la tarea (segundos Unix).
completednumberObligatorioSegundos Unix al alcanzar estado terminal; 0 mientras no sea terminal.
outputarrayOpcional
Solo con status == success. Lista de artefactos — siempre un array; una tarea puede devolver varios types a la vez (p. ej. video + first_frame).
Array [ object ]
Elementos del array
urlstringObligatorioURL del artefacto, descargable directamente.
typestringObligatorioValores posibles actuales: video, image, audio, first_frame, last_frame, thumbnail; podrían ampliarse más adelante.
expireAtnumberObligatorioSegundos Unix hasta los que el artefacto es accesible; descárgalo o transfiérelo antes.
errorobjectOpcional
Solo con status == fail.
codestringObligatorioCódigo de error de negocio.
messagestringObligatorioDescripción del error.
Ejemplos de respuesta
Éxito
{
"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
}
]
}
} En proceso (no terminal)
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "archiving",
"created": 1777282033,
"completed": 0
}
} Fallido
{
"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"
}
}
} Artículos
Ver todos los artículos →Modelos relacionados
Ver todos los modelos →Mismo tipo
-
HeyGen Avatar IV HeyGen $0.150 /segundo -
Kling 3.0 Kuaishou $0.100 /segundo -
Creatify Boreal Creatify $0.015 /segundo -
P-Video 2 Pro Avatar Pruna AI $0.029 /segundo -
MiniMax H3 Max Turbo MiniMax $0.025 /segundo -
FLUX 3 Video Black Forest Labs $0.090 /segundo -
Veo 3.1 Lite Google $0.060 /segundo -
Veo 3.1 Fast Google $0.170 /segundo -
HappyHorse 1.0 Alibaba $0.168 /segundo -
Muse Video 1.0 Meta $0.034 /vídeo -
MiniMax H3 MiniMax $0.072 /segundo -
Wan 3.0 Video Alibaba $0.040 /segundo
