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

p-video

Skill20 starsChanged 45 days agoApache-2.0View on GitHub

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.

  • Reads credentials
  • Sends data out

2 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

8 rules. About 0 are common, 2 are distinctive, and 6 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.

  • 6

    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 24
  2. Very specific:

    Every input.prompt must be fresh and specific, and must match the user's beat.

    line 34
  3. Very specific:

    Fidelity check (before pay): if you remove the user's named subject/action/setting from the prompt, the job is wrong — rewrite.

    line 44
  4. Very specific:

    When showing a drafted prompt, still name p-video (guides help craft.

    line 46
  5. Very specific:

    If the request exceeds one clip, stop and recommend: image-to-video (one narrated beat), visual-transition-reel (multi-scene visual), or …

    line 60
  6. Distinctive:

    Use a different skill instead:

    line 64
  7. Very specific:

    Omit duration: when audio is set. Clip length = min(audio length, 20s) — keep TTS ≤ ~19s (ffprobe before render).

    line 149
  8. Very specific:

    Pruna notes: when image is set, aspect_ratio is ignored.

    line 155

≈ “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
audio-promptingUse 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-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

Routing: Use `p-video` for simple, quick clips — drafts, light B-roll, short motion. Standard cinematic generation with generated audio → `p-video-2-pro`. Imported image or video references that lock a subject or condition identity/style/motion/timing/performance, with generated audio, audio guidance, or one kept track (keep_audio) → `p-video-2-pro-reference`. 1080p, imported soundtrack, or draft previews → `p-video-2`.

In the first reply, name `p-video` 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. When drafting motion prompts, follow Prompt craft (dynamic + faithful) — 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, and must match the user's beat. Diversity never overrides the brief.

DoDon't
Run the generation-diversity random seed ritual; state it; rotate ≥2 free axes (camera move, lighting shift, texture, pacing) when the brief allowsCopy curl examples from this skill (rain-slick street, dog tosses plush, …) or reuse a prior session's prompt
Lock user-required facts first (subject, action beat, OPEN/MID/CLOSE when frame-anchored, narration sync when audio is set)Swap the subject or motion for a “cooler” clip that ignores the request
Structure with video-prompting dramaturgy — one frozen action per beat, physics-safe motion, camera grammarVague mood-only strings (cinematic vibe, neon energy)
When audio is set, motion and pacing must match the narration beatDrift to unrelated action while VO plays
Show the drafted prompt + mode fields before POST when the user has not locked wordingSilent regen with a different subject or beat than approved

Fidelity check (before pay): if you remove the user's named subject/action/setting 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` (guides help craft; this tool owns the call).

Skill boundary

This skill = one p-video prediction per invocation.

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

  • Multi-scene assembly, concat, subagent orchestration, or parallel scene batches
  • Motion transfer from a template video → p-video-animate
  • Talking-head-only / lip-sync host without native scene audio → p-video-avatar
  • Cinematic generation with generated audio → p-video-2-pro
  • 1080p, imported audio, or draft previews → p-video-2

If the request exceeds one clip, stop and recommend: image-to-video (one narrated beat), visual-transition-reel (multi-scene visual), or narrated-multi-scene (multi-scene + VO).

When NOT to use

Use a different skill instead:

SkillDescriptionInstall
p-video-2-pro-referenceUse 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.npx skills add PrunaAI/pruna-skills@p-video-2-pro-reference -y
p-video-2-proUse 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-2Use 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-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
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-replaceUse when someone wants to swap a person, outfit, or product inside existing footage while keeping the camera move and audio.npx skills add PrunaAI/pruna-skills@p-video-replace -y
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
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

HTTP (curl)

Upload for image-to-video / frame anchors

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

Pass urls.get as input.image (first frame) and/or input.last_frame_image (last frame). Upload TTS/music the same way for input.audio.

Create (async text-to-video — recommended)

curl -X POST 'https://api.pruna.ai/v1/predictions' \
  -H 'Content-Type: application/json' \
  -H "apikey: ${PRUNA_API_KEY}" \
  -H 'Model: p-video' \
  -d '{
    "input": {
      "prompt": "Slow dolly in on rain-slick street at night, neon reflections, distant traffic hiss",
      "duration": 5,
      "resolution": "720p",
      "aspect_ratio": "16:9"
    }
  }'

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.

First / last frame (visual transition)

curl -X POST 'https://api.pruna.ai/v1/predictions' \
  -H 'Content-Type: application/json' \
  -H "apikey: ${PRUNA_API_KEY}" \
  -H 'Model: p-video' \
  -d '{
    "input": {
      "prompt": "OPEN: hold wide on wet alley, neon flicker. MID: slow dolly in, rain ticks on pavement. CLOSE: settle on end pose.",
      "image": "https://api.pruna.ai/v1/files/START_ID",
      "last_frame_image": "https://api.pruna.ai/v1/files/END_ID",
      "duration": 5,
      "resolution": "720p",
      "fps": 24
    }
  }'

Scene anchor triple (image + last_frame_image + audio)

curl -X POST 'https://api.pruna.ai/v1/predictions' \
  -H 'Content-Type: application/json' \
  -H "apikey: ${PRUNA_API_KEY}" \
  -H 'Model: p-video' \
  -d '{
    "input": {
      "prompt": "Dog tosses plush upward, tail wagging, motion matches narrator, warm light",
      "image": "https://api.pruna.ai/v1/files/SCENE_START",
      "last_frame_image": "https://api.pruna.ai/v1/files/SCENE_END",
      "audio": "https://api.pruna.ai/v1/files/SCENE_NARRATION",
      "resolution": "720p",
      "fps": 24,
      "save_audio": true
    }
  }'

Omit duration when audio is set. Clip length = min(audio length, 20s) — keep TTS ≤ ~19s (ffprobe before render).

Before generating

  1. Complete Prerequisites guide reading order (generation-diversity → video-prompting).
  2. Ritual seed → draft a dynamic + faithful motion prompt (section above) → confirm mode (T2V / I2V / frame pair / audio), duration (unless audio-driven), resolution, fps, draft, and prompt with the user.
  3. Pruna notes: when image is set, aspect_ratio is ignored. With audio, omit duration and set save_audio: true to keep narration. Prefer uploaded VO over post-mux. If the request is multi-scene — stop (see Skill boundary).

Required input

  • prompt (string)

Common optional fields

FieldRole
imageFirst frame — I2V anchor; when set, aspect_ratio is ignored
last_frame_imageOptional end-state still
audioAudio-conditioned; duration follows audio (capped at 20s); flac/mp3/wav
duration1–20s (ignored if audio set)
resolution720p (default) or 1080p
fps24 (default) or 48
aspect_ratioWhen no image: 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 1:1
drafttrue ≈ 4× faster/cheaper preview; false = final
save_audioKeep model-generated or uploaded audio on output
seed, prompt_upsampling, disable_safety_filterReproducibility / client policy

Related

Related skills:

SkillDescriptionInstall
p-video-2-pro-referenceUse 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.npx skills add PrunaAI/pruna-skills@p-video-2-pro-reference -y
p-video-2-proUse 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
gemini-3.1-flash-ttsUse when someone needs spoken narration or voiceover — explainer tracks, documentary lines, or voice to pair with generated video.npx skills add PrunaAI/pruna-skills@gemini-3.1-flash-tts -y
image-to-videoUse 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-reelUse 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-sceneUse 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
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
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
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.