agentleFS
PrunaAIPrunaAI/pruna-skills/skills/video/p-video-replace/SKILL.md

p-video-replace

Skill20 starsChanged 44 days agoApache-2.0View on GitHub

Use when someone wants to swap a person, outfit, or product inside existing footage while keeping the camera move and audio.

  • Reads credentials
  • Sends data out

The file

We split this skill into the rules it gives an agent

4 rules. About 0 are common, 2 are distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈2

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

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

    line 23
  2. Very specific:

    Fidelity check (before pay): every stated swap and every stated keep must appear in instruction_prompt.

    line 40
  3. Distinctive:

    Use a different skill instead:

    line 56
  4. Very specific:

    Use each response urls.get in input.video and input.images.

    line 82

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Prerequisites

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

SkillDescriptionInstall
generation-diversityUse 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-promptingUse 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
pruna-apiUse 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

In the first reply, name `p-video-replace` in backticks, confirm PRUNA_API_KEY (or stop with signup links from pruna-api), then ask for required inputs. Open intake → generation-diversity clarification intake before the first POST. Draft swaps with Prompt craft (dynamic + faithful) — do not paste skill examples. Redirect when When NOT to use fits better.

Prompt craft (dynamic + faithful)

instruction_prompt maps source slots → reference images → preserve-list. Change only what the user asked; keep camera, audio, and unmentioned elements identical.

DoDon't
Formula: name source element → map each ref (first reference, image 2) → preserve-list (walking pace, camera tracking, audio)Vague replace the person with no slot mapping
Ritual seed before drafting; fresh wording for preserve clauses when the brief allowsCopy this skill's sample (olive coat, navy jacket) when the user described different targets
Lock swap intent (character / clothing-only / object / mixed) from the userDrop preserve-list and hope motion/audio hold
Show instruction_prompt before POST when wording is not lockedSilent swap that changes background, cast, or unrequested regions

Fidelity check (before pay): every stated swap and every stated keep must appear in instruction_prompt. Do not “spice” extras when they asked for one identity swap.

Skill boundary

p-video-replacep-video-editp-video-animate
User questionReplace this person in this video?Change the color / environment / object / text / lighting in this clip?Animate this picture with some motion?
GoalSwap identity into existing footageInstruction edit of the source clipDrive a still with motion from another clip
Source videoThe final sceneThe scene to edit (≤15s)A motion template only
Reference imagesRequired images — 1 to 4Optional images — 0 to 4image — one subject per call
Prompt fieldinstruction_promptpromptOptional instruction_prompt

Use p-video-edit for prompt-driven attribute, environment, object, text, or lighting edits. Use p-video-animate when the user has a still and wants it to perform from a separate template video.

When NOT to use

Use a different skill instead:

SkillDescriptionInstall
p-video-editUse 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
p-video-animateUse 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-avatarUse 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

HTTP (curl)

Upload source assets

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

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

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

Use each response urls.get in input.video and input.images.

Create (async — recommended)

curl -X POST 'https://api.pruna.ai/v1/predictions' \
  -H 'Content-Type: application/json' \
  -H "apikey: ${PRUNA_API_KEY}" \
  -H 'Model: p-video-replace' \
  -d '{
    "input": {
      "video": "https://api.pruna.ai/v1/files/source-video-abc123",
      "images": [
        "https://api.pruna.ai/v1/files/reference-person-a-def456",
        "https://api.pruna.ai/v1/files/reference-person-b-ghi789"
      ],
      "resolution": "720p",
      "target_fps": "original",
      "instruction_prompt": "Replace the woman on the left (olive coat) with the first reference. Replace the man on the right (navy jacket) with the second reference. Preserve walking pace, camera tracking, and audio."
    }
  }'

Poll and download: follow pruna-api. Output duration follows the source video.

Complete the random seed ritual from generation-diversity before writing prompts.

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-replace' \
  -H 'Try-Sync: true' \
  -d '{
    "input": {
      "video": "https://api.pruna.ai/v1/files/source-video-abc123",
      "images": [
        "https://api.pruna.ai/v1/files/reference-image-def456"
      ]
    }
  }'

Before generating

  1. Complete Prerequisites guide reading order (generation-diversity → video-prompting).
  2. Ritual seed → draft a dynamic + faithful instruction_prompt (section above) → confirm video, images (1–4), resolution, target_fps, instruction_prompt, and swap intent (character / clothing-only / object / mixed).
  3. Pruna notes: identity comes from images; slot mapping from instruction_prompt (name source element → map each ref → preserve-list → “only X changes”). Vague targets and tiny on-screen objects drop quality. Runware map: inputs.video → video, referenceImages → images, positivePrompt → instruction_prompt.

Required input

  • video (string URL): source RGB .mp4
  • images (array of 1–4 string URLs): identity reference(s)

Common optional fields

  • resolution: 720p (default) or 1080p
  • target_fps: original (default), 24, or 48
  • instruction_prompt (string)
  • save_audio (boolean, default true)
  • seed, disable_safety_checker

Typical next steps

Common follow-ons after this skill:

SkillDescriptionInstall
p-video-animateUse 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-imageUse when someone explicitly wants the fastest, cheapest photo generation — mood boards, bulk panels, or quick iterations — not when controlled photoreal or in-image text is needed.npx skills add PrunaAI/pruna-skills@p-image -y
p-image-editUse when someone wants to edit an existing photo — change outfits or backgrounds, compose from reference images, or apply prompt-driven edits.npx skills add PrunaAI/pruna-skills@p-image-edit -y
video-editingUse when assembling or polishing already-rendered clips with ffmpeg — concat, crossfades, burned captions and subtitles, text/logo overlays, before/after sliders, background music beds, platform export — or when composing a multi-layer HTML combination video with Hyperframes. Not for AI video generation, prompt craft, or model-based video edits.npx skills add PrunaAI/pruna-skills@video-editing -y

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.