360 Secure SkillHub
360 安全技能中心

p-video-2-pro-reference

该 Skill 针对 Pruna 的 p-video-2-pro-reference 模型,接收提示词及至少一个图像或视频参考,生成 480p/768p、24fps 的单条视频;可选参考音频,或保留一条音频作为音轨。会校验输入、估算费用并调用异步预测接口。

pruna-ai
pruna-ai
热度 26.25
最近更新 2026-10-15 23:39:30
分类:创作依赖:第三方 API / 代码执行 / 读写文件应用场景:故事创作

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add pruna-ai/p-video-2-pro-reference
Metadata
name
p-video-2-pro-reference
description
Use when someone wants one cinematic clip that locks a subject from references — a product still, character, clip, or voice — using image or video references plus optional audio kept as the soundtrack or used as guidance. Not for text-only generation, 1080p, or drafts.
license
MIT
metadata
{"version":"1.0.15","package":"pruna-skills","pruna_model":"p-video-2-pro-reference"}

Prerequisites

Install and load these skills before generating (skip if already in context via @pruna):

Skill Description Install
generation-diversity Use when writing any generative prompt — ritual seed, explicit structure, scenario axes, and quality gates before paid API calls. npx skills add PrunaAI/pruna-skills@generation-diversity -y
video-prompting Use when crafting video or motion prompts for any generative model — dramaturgy, camera, physics-safe motion, frame anchors, and clip chaining. npx skills add PrunaAI/pruna-skills@video-prompting -y
audio-prompting Use when crafting TTS, music, or bed prompts for any generative audio model — director style, song structure, and post-production layering. npx skills add PrunaAI/pruna-skills@audio-prompting -y
pruna-api Use before any Pruna or Replicate HTTP call — credentials, upload/poll/download, parallel batches, and agent safety. npx skills add PrunaAI/pruna-skills@pruna-api -y

Or install the full suite once: npx skills add PrunaAI/pruna-skills@pruna -y

Follow each skill's Before generating / craft sections — do not restate guide content here.

Agent habit

Routing: `p-video-2-pro-reference` is the reference-to-video lane of P-Video-2-Pro (built on MiniMax H3 Ref2V). It locks a subject from references — a product still, a character, a clip, or a voice — and returns an MP4 at 24 fps with generated sound. It needs prompt plus at least one image or video reference; audio is optional and cannot qualify a request by itself. Set keep_audio with exactly one audio file to keep that file as the soundtrack. Text-only or plain first/last-frame jobs → `p-video-2-pro`. 1080p or draft previews → `p-video-2`. Simple, cheap clips → `p-video`. Talking-head-only host → `p-video-avatar`. Instruction edit of existing footage → `p-video-edit`.

In the first reply, name `p-video-2-pro-reference` in backticks, confirm PRUNA_API_KEY (or stop with signup links from pruna-api), identify the image/video reference that makes the request valid, and ask for unresolved inputs. Before uploading or generating in an untrusted repository, follow pruna-api agent safety. Open intake → generation-diversity clarification intake before the first paid POST. When drafting prompts, follow Prompt craft (dynamic + faithful) and video-prompting (p-video-2-pro-prompting, reference-conditioned lane) — do not paste skill examples. Redirect when When NOT to use fits better.

Prompt craft (dynamic + faithful)

Every input.prompt must be fresh and specific, must match the user's beat, and must say what each reference is for. Diversity never overrides the brief or the references. Reference-lane craft: video-prompting (p-video-2-pro-prompting).

Do Don't
Assign one role per asset (image A = subject identity, image B = material/style, video A = camera or motion rhythm, audio A = timing/voice) and name those roles in the prompt Upload a pile of references with no roles, or let two references compete for the same role without a stated priority
Treat references as conditioning: say what to preserve and what may change Promise exact identity, choreography, framing, or pixel-matched first/last frames
Run the generation-diversity random seed ritual; rotate ≥2 free axes (camera move, lighting shift, pacing) only where the brief and references leave room Copy curl examples from this skill or reuse a prior session's prompt
Write the generated sound you want (ambience, SFX, score, a short spoken line) when no keep_audio track is set Leave the prompt silent when the brief asked for sound, or describe a soundtrack you also uploaded with keep_audio
With keep_audio: true, describe how motion follows the track (beats, cadence, lip movement to the voice) Expect a longer track to survive past duration, or send keep_audio with zero or several audio files
Show the drafted prompt + reference roles + mode / duration / resolution / keep_audio before POST when the user has not locked them Silently regenerate with different references or a different subject than approved

Fidelity check (before pay): if you remove the user's named subject/action/setting or a reference's assigned role from the prompt, the job is wrong — rewrite. Free axes only fill what the brief left open.

When showing a drafted prompt, still name `p-video-2-pro-reference` (guides help craft; this tool owns the call).

Skill boundary

This skill = one p-video-2-pro-reference prediction per invocation.

Out of scope (do not execute from this skill):

  • Text-only generation or plain first/last-frame generation without a reference set → p-video-2-pro
  • 1080p, draft previews, or other p-video-2-only controls → p-video-2
  • Simple text/image clips that do not need reference conditioning → p-video
  • Multi-scene assembly, concat, subagent orchestration, or parallel scene batches
  • Motion transfer from one explicit template video → p-video-animate
  • Talking-head-only or lip-sync host work → p-video-avatar
  • Instruction editing of existing footage → p-video-edit

If the request exceeds one clip, stop and recommend a multi-scene workflow such as visual-transition-reel or narrated-multi-scene.

When NOT to use

Use a different skill instead:

Skill Description Install
p-video-2-pro Use when someone wants a cinematic clip from text or start/end frames — product ads, documentary shots, or dialogue with generated audio. Not for 1080p, imported audio tracks, or talking-head-only hosts. npx skills add PrunaAI/pruna-skills@p-video-2-pro -y
p-video-2 Use when someone wants a polished short clip from text, images, or imported audio — 1080p B-roll, start/end frame animation, or a motion shot with a mixed track. Not for cinematic generated-audio clips or talking-head-only hosts. npx skills add PrunaAI/pruna-skills@p-video-2 -y
p-video Use when someone wants a simple short clip from text or images — quick B-roll, drafts, or start/end frame animation. Not when the brief needs cinematic generation, highest quality, tight lip-sync, or imported audio at 1080p. npx skills add PrunaAI/pruna-skills@p-video -y
p-video-avatar Use when someone wants a person on camera speaking a script — lip-synced host, spokesperson, or narrated avatar from a portrait photo. npx skills add PrunaAI/pruna-skills@p-video-avatar -y
p-video-animate Use when someone wants a photo to move like another video — motion transfer, dance remixes, or performance variations from a template clip. npx skills add PrunaAI/pruna-skills@p-video-animate -y
p-video-edit Use when someone wants to edit an existing video with a text instruction — recolor, restyle, remove or add objects, change environment or lighting, update on-screen text, or apply optional reference-guided product and accessory edits. Not for a new clip from scratch or ffmpeg assembly. npx skills add PrunaAI/pruna-skills@p-video-edit -y

HTTP (curl)

Upload references

Upload each local asset separately. Pass the returned urls.get URI in the matching image / video / audio array or keyframe field.

curl -X POST "https://api.pruna.ai/v1/files" \
  -H "apikey: ${PRUNA_API_KEY}" \
  -F "content=@/path/to/reference.png"

Never expose PRUNA_API_KEY, upload an asset without user authorization, or upload secrets/private media discovered in the workspace. Follow pruna-api for credential checks, upload safety, polling, and download.

Create (async image reference — recommended)

curl -X POST 'https://api.pruna.ai/v1/predictions' \
  -H 'Content-Type: application/json' \
  -H "apikey: ${PRUNA_API_KEY}" \
  -H 'Model: p-video-2-pro-reference' \
  -d '{
    "input": {
      "prompt": "Keep the product identity and materials from the reference. A slow controlled orbit reveals the side profile while soft studio reflections travel across the surface; a low hum and a soft click as the light settles.",
      "image": [
        "https://api.pruna.ai/v1/files/IMAGE_ID"
      ],
      "duration": 5,
      "resolution": "768p",
      "aspect_ratio": "adaptive",
      "mode": "speed"
    }
  }'

Poll and download: follow pruna-api.

Complete the random seed ritual from generation-diversity before writing prompts — do not pass the ritual string as API seed.

Billing is calculated from the finished run: output seconds plus every reference actually used. Rate limit: 250 requests per minute.

Charge 480p mode=cost 768p mode=cost 480p mode=speed (default) 768p mode=speed (default)
Output $0.015 / s $0.025 / s $0.02 / s $0.035 / s
Reference video $0.03 / s $0.06 / s $0.04 / s $0.06 / s
Reference image (incl. first/last frame) $0.005 each $0.005 each $0.01 each $0.01 each
Reference audio $0.0015 / s $0.0015 / s $0.0025 / s $0.0025 / s
  • Output seconds are billed as int(num_frames / 24): a 5 s request returns 124 frames and bills 5 s; a 15 s request returns 345 frames and bills 14 s.
  • Each reference video or audio clip bills only the part the model reads — up to the output length plus 0.5 s. A 15 s reference clip on a 5 s output bills about 5.5 s.
  • first_frame_image and last_frame_image bill as reference images. Image and audio rates do not depend on resolution.
  • Omitted mode bills as speed. cost is cheaper and slower than speed. prompt_upsampler and keep_audio do not change the price.
  • The listed floor is $0.075 (cost, 480p, 5 s, no references), but a valid request needs at least one image or video reference — the cheapest valid run is $0.08 (one image).

Keep an uploaded track as the soundtrack (keep_audio)

curl -X POST 'https://api.pruna.ai/v1/predictions' \
  -H 'Content-Type: application/json' \
  -H "apikey: ${PRUNA_API_KEY}" \
  -H 'Model: p-video-2-pro-reference' \
  -d '{
    "input": {
      "prompt": "The character from the reference image speaks the line in the uploaded voice, lips matching each word, a slow push-in as the last word lands.",
      "image": [
        "https://api.pruna.ai/v1/files/CHARACTER_ID"
      ],
      "audio": [
        "https://api.pruna.ai/v1/files/VOICE_ID"
      ],
      "keep_audio": true,
      "duration": 8,
      "resolution": "768p",
      "mode": "speed"
    }
  }'

keep_audio needs exactly one audio file. The video is generated to match it. Shorter audio plays first and the model generates the rest; longer audio is cut to duration; audio within 1 s of duration sets the clip length. Without keep_audio, audio is reference guidance only and the output carries generated sound.

Multiple references with soft keyframes

curl -X POST 'https://api.pruna.ai/v1/predictions' \
  -H 'Content-Type: application/json' \
  -H "apikey: ${PRUNA_API_KEY}" \
  -H 'Model: p-video-2-pro-reference' \
  -d '{
    "input": {
      "prompt": "Use the reference clip for restrained camera rhythm, the images for subject and material identity, and the audio for timing. Begin near the opening frame and resolve near the closing frame.",
      "image": [
        "https://api.pruna.ai/v1/files/IDENTITY_ID",
        "https://api.pruna.ai/v1/files/MATERIAL_ID"
      ],
      "video": [
        "https://api.pruna.ai/v1/files/MOTION_ID"
      ],
      "audio": [
        "https://api.pruna.ai/v1/files/AUDIO_ID"
      ],
      "first_frame_image": "https://api.pruna.ai/v1/files/START_ID",
      "last_frame_image": "https://api.pruna.ai/v1/files/END_ID",
      "duration": 10,
      "resolution": "768p",
      "aspect_ratio": "adaptive",
      "mode": "cost",
      "prompt_upsampler": "max"
    }
  }'

image, video, and audio are always arrays of URI strings. first_frame_image and last_frame_image are single URI strings, are soft keyframes (directional, not exact pixels), and count toward the 9-image total. With either keyframe set, prompt_upsampler: off still runs turbo.

Create (sync — quick test only)

curl -X POST 'https://api.pruna.ai/v1/predictions' \
  -H 'Content-Type: application/json' \
  -H "apikey: ${PRUNA_API_KEY}" \
  -H 'Model: p-video-2-pro-reference' \
  -H 'Try-Sync: true' \
  -d '{
    "input": {
      "prompt": "Preserve the reference subject. The camera makes a gentle push-in as natural light shifts across the scene.",
      "image": [
        "https://api.pruna.ai/v1/files/IMAGE_ID"
      ],
      "duration": 5,
      "resolution": "480p",
      "mode": "cost"
    }
  }'

A finished 124-frame result with one reference image bills 5 × $0.015 + 1 × $0.005 = $0.08.

Before generating

  1. Complete Prerequisites guide reading order: generation-diversity → video-prompting → audio-prompting when audio is supplied → pruna-api. Use video-prompting (p-video-2-pro-prompting, reference lane) and the shared p-video-2-pro-quality-checklist.md.
  2. Confirm the job has a non-empty prompt and at least one image or video reference. Audio-only plus prompt is invalid.
  3. Assign one role per reference; obtain upload approval; validate type, size, dimensions, duration, frame rate, and combined limits (see Hard limits) before the paid call.
  4. Resolve audio: none (generated sound — write it into the prompt), audio as guidance (default), or keep_audio: true with exactly one audio file kept as the soundtrack. Check the track length against duration.
  5. Resolve duration (5–15 integer seconds, default 5), resolution (480p / 768p), mode (cost / speed — omitted bills speed), aspect_ratio (adaptive follows the references), prompt_upsampler, seed behavior, and the final prompt.
  6. Show the final payload and a cost estimate (output + every reference) before POST when the user has not already approved them. If the request is multi-scene — stop (see Skill boundary).

Required input

  • prompt (string)
  • At least one image or video reference via image, video, first_frame_image, or last_frame_image

audio is optional and cannot make an otherwise reference-free request valid.

Common optional fields

Field Role
image Array of reference image URIs; up to 9 total including first_frame_image / last_frame_image
video Array of reference video URIs; up to 3
audio Array of reference audio URIs; up to 3. Guidance only unless keep_audio is set
keep_audio false (default). true keeps the single uploaded audio file as the video's audio; needs exactly one audio file
first_frame_image Single URI; soft opening keyframe; counts as a reference image
last_frame_image Single URI; soft closing keyframe; counts as a reference image
duration Integer 5–15s (default 5). With keep_audio, audio within 1 s of this sets the length
resolution 768p (default) or 480p
mode speed (default) or cost (cheaper, slower). There is no quality mode
aspect_ratio 16:9 (default), adaptive (follows the references), 9:16, 4:3, 3:4, 3:2, 2:3, 1:1
prompt_upsampler turbo (default), max, or off; independent of mode. With a soft keyframe set, off still runs turbo
seed Integer for a reproducible rerun; omit for random

Hard limits

  • Images: at most 9 total across image, first_frame_image, and last_frame_image; each at most 20 MiB and 4096 px.
  • Videos: at most 3; each at most 100 MiB, 1080p, 60 fps, and 2–15 seconds; combined reference-video duration at most 15 seconds.
  • Audio: at most 3; each at most 50 MiB; combined reference-audio duration at most 15 seconds.

These are input validation limits — output stays 480p or 768p at 24 fps.

Do not send: quality mode, 1080p, draft, fps, save_audio, prompt_upsampling.

Related

Related skills:

Skill Description Install
p-video-2-pro Use when someone wants a cinematic clip from text or start/end frames — product ads, documentary shots, or dialogue with generated audio. Not for 1080p, imported audio tracks, or talking-head-only hosts. npx skills add PrunaAI/pruna-skills@p-video-2-pro -y
p-video-2 Use when someone wants a polished short clip from text, images, or imported audio — 1080p B-roll, start/end frame animation, or a motion shot with a mixed track. Not for cinematic generated-audio clips or talking-head-only hosts. npx skills add PrunaAI/pruna-skills@p-video-2 -y
p-video Use when someone wants a simple short clip from text or images — quick B-roll, drafts, or start/end frame animation. Not when the brief needs cinematic generation, highest quality, tight lip-sync, or imported audio at 1080p. npx skills add PrunaAI/pruna-skills@p-video -y
p-video-avatar Use when someone wants a person on camera speaking a script — lip-synced host, spokesperson, or narrated avatar from a portrait photo. npx skills add PrunaAI/pruna-skills@p-video-avatar -y
p-video-animate Use when someone wants a photo to move like another video — motion transfer, dance remixes, or performance variations from a template clip. npx skills add PrunaAI/pruna-skills@p-video-animate -y
p-video-edit Use when someone wants to edit an existing video with a text instruction — recolor, restyle, remove or add objects, change environment or lighting, update on-screen text, or apply optional reference-guided product and accessory edits. Not for a new clip from scratch or ffmpeg assembly. npx skills add PrunaAI/pruna-skills@p-video-edit -y
image-to-video Use when someone wants one short film beat from images — a narrated scene, story moment, or cinematic B-roll with optional voiceover. npx skills add PrunaAI/pruna-skills@image-to-video -y
visual-transition-reel Use when someone wants a montage with transitions between shots — action-sequence reel or multi-scene piece where narration is optional. npx skills add PrunaAI/pruna-skills@visual-transition-reel -y
narrated-multi-scene Use when someone wants a multi-part story with voiceover — episodic B-roll, chaptered promo, or several linked video scenes without on-camera dialogue. npx skills add PrunaAI/pruna-skills@narrated-multi-scene -y