Pruna P-Video 2 Pro Avatar

pruna-ai/p-video-2-pro/avatar

pruna-ai/p-video-2-pro/avatar. Görsel, video ve yüz değiştirme model API’lerine göz at. Bir modeli dene ve birleşik REST API ile entegre et.

İlgili modeller

Pruna P-Video 2 Pro Avatar İlgili modeller 1

Tüm parametreler, çıktı şeması ve güncel fiyatlar

Yapay zeka model API pazarıTek platformda her şeyEn popülerKoşullarGörsel, video ve yüz değiştirme model API’lerine göz at. Bir modeli dene ve birleşik REST API ile entegre et.
image *Imageimage_upload—image/* · 1–1 items
promptPrompttextarea—≤ 5000 chars
resolutionResolutionselect768p480p | 768p
prompt_upsamplingPrompt Upsamplingbooleanfalse—
seedSeednumber—step 1

Tüm parametreler, çıktı şeması ve güncel fiyatlar

Daha fazla bilgiTek platformda her şeyGörsel, video ve yüz değiştirme model API’lerine göz at. Bir modeli dene ve birleşik REST API ile entegre et.
videosarray<string>

API

Görsel, video ve yüz değiştirme model API’lerine göz at. Bir modeli dene ve birleşik REST API ile entegre et.

cURL
# 1) Submit — returns { "task_uuid": "..." }
curl -X POST "https://www.namifusion.com/api/v1/marketplace/run/pruna-ai/p-video-2-pro/avatar" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "input": {
    "image": "https://example.com/input.jpg",
    "resolution": "768p",
    "prompt_upsampling": false
  }
}'

# 2) Poll until status is "completed", then read the output URLs
curl "https://www.namifusion.com/api/v1/marketplace/run/tasks/TASK_UUID" \
  -H "Authorization: Bearer YOUR_API_KEY"
Python
import time, requests

API_KEY = "YOUR_API_KEY"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}

# 1) Submit
resp = requests.post(
    "https://www.namifusion.com/api/v1/marketplace/run/pruna-ai/p-video-2-pro/avatar",
    headers=HEADERS,
    json={
        "input": {
            "image": "https://example.com/input.jpg",
            "resolution": "768p",
            "prompt_upsampling": False
        }
    },
)
resp.raise_for_status()  # 401/402/429/5xx stop here instead of polling a bad task
task = resp.json()

# 2) Poll until a terminal state (completed / failed / cancelled).
#    This model is allowed up to 1800s server-side.
deadline = time.time() + 1860
while task.get("status") not in ("completed", "failed", "cancelled"):
    if time.time() > deadline:
        raise TimeoutError(f"still {task.get('status')} — keep the task_uuid and poll later")
    time.sleep(3)
    poll = requests.get(f"https://www.namifusion.com/api/v1/marketplace/run/tasks/{task['task_uuid']}", headers=HEADERS)
    poll.raise_for_status()
    task = poll.json()

print(task["status"], task.get("output"))
JavaScript
const API_KEY = "YOUR_API_KEY";
const HEADERS = { Authorization: `Bearer ${API_KEY}` };

// 1) Submit
const resp = await fetch("https://www.namifusion.com/api/v1/marketplace/run/pruna-ai/p-video-2-pro/avatar", {
  method: "POST",
  headers: { ...HEADERS, "Content-Type": "application/json" },
  body: JSON.stringify({
    "input": {
      "image": "https://example.com/input.jpg",
      "resolution": "768p",
      "prompt_upsampling": false
    }
  }),
});
if (!resp.ok) throw new Error(`submit failed: ${resp.status} ${await resp.text()}`);
let task = await resp.json();

// 2) Poll until a terminal state (completed / failed / cancelled).
//    This model is allowed up to 1800s server-side.
const deadline = Date.now() + 1860 * 1000;
while (!["completed", "failed", "cancelled"].includes(task.status)) {
  if (Date.now() > deadline) throw new Error(`still ${task.status} — keep the task_uuid and poll later`);
  await new Promise((r) => setTimeout(r, 3000));
  const poll = await fetch(`https://www.namifusion.com/api/v1/marketplace/run/tasks/${task.task_uuid}`, { headers: HEADERS });
  if (!poll.ok) throw new Error(`poll failed: ${poll.status}`);
  task = await poll.json();
}

console.log(task.status, task.output);

API belgeleri

Pruna P-Video 2 Pro Avatar

Create a talking-avatar video from a portrait and speech audio, up to 180 seconds.

Inputs

ParameterRequiredType / allowed values / default
imageRequiredarray; max count: 1. Portrait image for the talking video.
audioRequiredstring. Speech audio. The output duration follows this input, up to 180 seconds.
promptOptionalstring; max 5000 characters. Optional directions for the person's movement and framing.
resolutionOptionalstring; 480p / 768p; default: "768p".
prompt_upsamplingOptionalboolean; default: false. Enhance the movement and expression prompt automatically.
seedOptionalinteger; step: 1.

Nami accepts up to 5000 prompt characters to match the current MaaS contract. Required prompts must be non-empty.

The image and last_image fields use one-element URL arrays in Nami; they are forwarded as single URLs upstream. Omit last_image when unused.

Use a portrait (JPG/JPEG/PNG/WebP, up to 20 MiB) and a 1–180 second speech audio file (up to 64 MiB). Prompt is optional; when omitted, upstream uses its default talking instruction. There is no duration or mode input for this endpoint.

Listing price

1 USD = 100 credits. Account discounts are applied separately.

Billed seconds = min(max(ceil(input audio seconds), 1), 180). 480p: $0.02 per billed second (2 credits); 768p: $0.04 (4 credits). Output duration follows the audio. Prompt, prompt_upsampling and seed add no charge.

API usage

Use reachable media URLs. Submit once, then poll task_uuid until completed or failed; successful output.videos contains the video URLs.

POST https://www.namifusion.com/api/v1/marketplace/run/pruna-ai/p-video-2-pro/avatar
Authorization: Bearer YOUR_NAMIFUSION_API_KEY
Content-Type: application/json

{
  "input": {
    "resolution": "768p",
    "image": [
      "https://example.com/portrait.png"
    ],
    "audio": "https://example.com/speech.mp3",
    "prompt_upsampling": false
  }
}
GET https://www.namifusion.com/api/v1/marketplace/run/tasks/{task_uuid}
Authorization: Bearer YOUR_NAMIFUSION_API_KEY

WaveSpeed

İlgili modeller

xAI Grok Imagine Video v1.5 Image to Video
Görselden videoyaX Ai

xAI Grok Imagine Video v1.5 Image to Video

x-ai/grok-imagine-video-v1.5/image-to-video. Görsel, video ve yüz değiştirme model API’lerine göz at. Bir modeli dene ve birleşik REST API ile entegre et.

başlangıç $0.850 / çalıştırma başına
Vidu Q4 Preview Image to Video
Görselden videoyaVidu

Vidu Q4 Preview Image to Video

vidu/q4-preview/image-to-video. Görsel, video ve yüz değiştirme model API’lerine göz at. Bir modeli dene ve birleşik REST API ile entegre et.

başlangıç $0.475 / çalıştırma başına
vidu/q3/image-to-video-spicy
Görselden videoyaVidu

vidu/q3/image-to-video-spicy

vidu/q3/image-to-video-spicy. Görsel, video ve yüz değiştirme model API’lerine göz at. Bir modeli dene ve birleşik REST API ile entegre et.

başlangıç $0.750 / çalıştırma başına
Vidu Q3 Image To Video
Görselden videoyaVidu

Vidu Q3 Image To Video

vidu/q3/image-to-video. Görsel, video ve yüz değiştirme model API’lerine göz at. Bir modeli dene ve birleşik REST API ile entegre et.

başlangıç $0.750 / çalıştırma başına
Pruna P-Video 2 Pro Image-to-Video
Görselden videoyaPruna Ai

Pruna P-Video 2 Pro Image-to-Video

pruna-ai/p-video-2-pro/image-to-video. Görsel, video ve yüz değiştirme model API’lerine göz at. Bir modeli dene ve birleşik REST API ile entegre et.

başlangıç $0.175 / çalıştırma başına
MiniMax H3 Spicy Image to Video
Görselden videoyaMinimax

MiniMax H3 Spicy Image to Video

minimax/h3/image-to-video-spicy. Görsel, video ve yüz değiştirme model API’lerine göz at. Bir modeli dene ve birleşik REST API ile entegre et.

başlangıç $0.200 / çalıştırma başına
MiniMax H3 Image to Video
Görselden videoyaMinimax

MiniMax H3 Image to Video

minimax/h3/image-to-video. Görsel, video ve yüz değiştirme model API’lerine göz at. Bir modeli dene ve birleşik REST API ile entegre et.

başlangıç $0.650 / çalıştırma başına
MiniMax H3 Lite Image-to-Video
Görselden videoyaMinimax

MiniMax H3 Lite Image-to-Video

minimax/h3-lite/image-to-video. Görsel, video ve yüz değiştirme model API’lerine göz at. Bir modeli dene ve birleşik REST API ile entegre et.

başlangıç $0.200 / çalıştırma başına