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 |
Use when someone wants the best-quality short clip from text, images, or audio — polished B-roll, start/end frame animation, or a motion shot with stronger lip-sync. Not for full multi-scene films 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 the highest quality or tight lip-sync. | 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 p-video-2 job (or p-video for a simpler clip). 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 | p-video-2 clip |
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 — preferred for narrated beats) · pair (start + end still + duration) · T2V · I2V · I2V+last · audio-only (no frames) |
| 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. |
| 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 | gemini-3.1-flash-tts → upload → input.audio (preferred). Optional stable-audio-2.5 bed after render. Post-mux is fallback only — audio-prompting. |
| Format | Default 720p, 24 fps; duration only when no audio; override resolution / fps / aspect_ratio when user wants final delivery |
| Draft | 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 p-video-2 before still and TTS review.
- 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
- I2V only:
image+duration+prompt - I2V + last: add
last_frame_image - T2V:
prompt+duration+aspect_ratio
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 |