Prerequisites
Install and load these skills before generating (skip if already in context via @pruna):
| Skill | Description | Install |
|---|---|---|
p-image-ideogram |
Use when photo generation needs more control — photoreal results, text in the image, or structured JSON with hex colors and bounding boxes. Simpler photo generation, edits, and video use other skills in the suite. | npx skills add PrunaAI/pruna-skills@p-image-ideogram -y |
p-image |
Use 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-edit |
Use 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 |
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 |
gemini-3.1-flash-tts |
Use 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 |
stable-audio-2.5 |
Use when someone wants light instrumental background music — an ambient bed under dialogue or underscore for reels and explainers. | npx skills add PrunaAI/pruna-skills@stable-audio-2.5 -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.
Workflow habit
In every reply, name `image-to-video` in backticks. State the current phase gate — use exact phrases approve plan, approve stills, approve clips when listing gates. Do not same-turn plan + paid video. Skip-review / burn-credits → follow generation-diversity Red flags.
Skill boundary
Exactly one scene / one video job. Visual-only (T2V / I2V / pair, generated audio) → `p-video-2-pro`. Imported VO / 1080p / draft → `p-video-2`. Simpler clip → `p-video`. No subagents, no concat across scenes, no multi-scene manifest ownership.
If the user wants a multi-scene film → hand off to narrated-multi-scene or visual-transition-reel. Talking-head-only → avatar-single-scene.
Data handling: pruna-api (agent safety) before any upload or paid call.
Staged generation: generation-diversity · generation-diversity
Feedback gates (required)
| Phase | What to show | Proceed when |
|---|---|---|
| 0 — Plan | Mode, motion prompt, frame plan | approve plan |
| A — Stills | Start + end stills | approve stills |
| A2 — TTS | Narration MP3 (triple mode) — listen | Line OK (ffprobe ≤ ~19s) |
| B — Video | Clip (p-video-2-pro visual / p-video-2 audio-led) |
approve clips |
| D — Bed | Optional post-mux bed | User accepts |
Intake: ask before generating
Open intake → generation-diversity clarification intake.
Do not call POST /v1/predictions until these are answered and logged:
| Topic | Questions |
|---|---|
| Mode | triple (image + last_frame_image + audio on p-video-2 — preferred for narrated beats) · pair (start + end still + duration on p-video-2-pro) · T2V · I2V · I2V+last · audio-only (no frames, p-video-2) |
| Media source | Generate start/end stills (p-image-ideogram / p-image-edit, or p-image for a cheap draft) vs upload user photos for frames? |
| Creative | Motion prompt only — what happens between first and last frame? One paragraph max. Write sound/dialogue into the prompt for p-video-2-pro. |
| Frames | Start still (upload or p-image-edit)? End still (last_frame_edit_prompt)? Stay single-scene — if the user wants a longer frame_chain / multi-scene project, stop and switch to narrated-multi-scene or visual-transition-reel. |
| Audio | Generated in-clip (p-video-2-pro, write sound in the prompt) vs gemini-3.1-flash-tts → upload → input.audio on p-video-2. Optional stable-audio-2.5 bed after render. Post-mux is fallback only — audio-prompting. |
| Format | Visual-only: 768p, 24 fps, duration 5–15s (p-video-2-pro). Audio-led: default 720p, 24 fps; duration only when no audio; override resolution / fps / aspect_ratio when user wants final delivery |
| Draft / recipe | p-video-2-pro: mode: cost (same quality as speed, but cheaper and slower), speed (default, faster), or quality (final). p-video-2: draft: true for preview or false for final |
| Repro | Fixed seed? |
| Delivery | Async (production); Try-Sync: true only for quick tests |
How the agent runs this
Order (narrated triple — user supplies stills + script): approve plan → build/review stills → approve stills → Gemini TTS + ffprobe (≤ ~19s) → upload audio → one p-video-2 embed → approve clips. Do not batch video jobs before still and TTS review.
Order (visual-only pair / T2V / I2V): approve plan → stills if needed → approve stills → one p-video-2-pro job → approve clips.
- Confirm intake → present plan → wait for approve plan.
- Build start/end stills with curl (
pruna-apiupload/poll/download). Show stills → approve stills. - Triple mode: Gemini TTS → probe duration → upload MP3:
ffprobe -v error -show_entries format=duration -of csv=p=0 narration.mp3
# must be ≤ ~19 (P-API audio-led max is 20s)
- One async
p-video-2job (image+last_frame_image+audio; omitduration;save_audio: true). Poll → download. - Optional bed: mix
stable-audio-2.5under embedded VO with ffmpeg (amix, bed ~0.08–0.15).
Workflow (after intake)
Preferred — scene anchor triple
- Start still — upload or
p-image-ideogram/p-image-edit(p-imagefor a cheap draft) - End still —
p-image-editfrom start still +last_frame_edit_prompt - Narration — Gemini TTS →
ffprobe(≤ ~19s) → upload to/v1/files p-video-2—image+last_frame_image+audio+ motionprompt; omitduration;save_audio: true; async poll- Optional bed — mix under embedded narration in post
Craft: video-prompting (scene-anchor triple).
Other modes (visual-only → p-video-2-pro)
- I2V only:
image+duration(5–15) +prompt— write sound in the prompt - I2V + last: add
last_frame_image - T2V:
prompt+duration+aspect_ratio
1080p, imported audio, or draft → stay on p-video-2.
Related
Related skills:
| Skill | Description | Install |
|---|---|---|
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 |
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 |
avatar-single-scene |
Use when someone wants one polished host-on-camera beat — a speaking person with intake and approval gates before generation. | npx skills add PrunaAI/pruna-skills@avatar-single-scene -y |
video-editing |
Use 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 |