agentsclimarketplace

Avatar multi scene

Skill PrunaAI/pruna-skills/skills/workflows/avatar-multi-scene

Agent skills and plugins to give your agents access to Pruna API and generation workflows.

Install
npx -y skills add PrunaAI/pruna-skills --skill avatar-multi-scene

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 12 stars12 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Use when someone wants the same person hosting several clips — multi-segment UGC, comparison reels, or mixed speaking and animated scenes with continuity.

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

16.1 KB, as published. Nobody here has run it

Prerequisites

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

SkillDescriptionInstall
p-imageUse when someone wants a fast AI image — product shots, hero visuals, mood boards, or draft photos from a text prompt.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
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

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 `avatar-multi-scene` in backticks. Restate the user's continuity / UGC / host / segment goal in one line. 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.

Purpose

Produce a coherent multi-scene piece stitched later with ffmpeg (Pruna does not ship a concat endpoint). Each beat is one of:

Beat typeModelDeliverable
avatarp-video-avatarTalking-head clip from approved still + voice_script
animatep-video-animate + slider renderMotion-transfer clip, usually wrapped in a side-by-side or wipe comparison MP4 (motion template vs animated subject)

Mix types in one announcement reel—e.g. avatar hook → animate slider demo → avatar CTA.

Visual continuity comes from Pruna p-image / p-image-edit on uploaded references.

Follow this skill in plain language when talking to the person requesting the video. Use natural, speakable copy in every voice_script.

Staged generation: generation-diversity · generation-diversity

Quick reference

ResourcePath
Photoreal dynamic personasimage-prompting
Cast ledger, character sheet, voice/video promptsprompt-templates.md
Animate rows, sliders, alignmentanimate-beats.md
Examplesexamples.md
Feedback disciplinegeneration-diversity
Slider (agent)ffmpeg hstack / wipe — see Slider comparison below
Batch templatetemplates/batch.template.json

Feedback gates (required)

PhaseWhat to showProceed when
0 — PlanScene table, read-through, cast ledgerapprove plan
A — StillsHero + per-scene platesapprove stills
B — VideoAvatar / animate clips + slidersapprove clips
C — AssemblyConcat reel + optional bedUser accepts

Intake: ask before generating

Do not call POST /v1/predictions until the user has answered and you have recorded the answers (use defaults only if the user explicitly opts in):

TopicQuestions
GoalWhat is the piece for (pitch, tutorial, trailer, episode)? Primary audience?
ScopeHow many speaking scenes or beats? Approximate total runtime after assembly?
CastWho speaks, in what order? One character throughout or multiple?
LookAspect for stills and feel (9:16 / 16:9)? Avatar output 720p or 1080p?
VoiceFor each named character, pick one Pruna voice and voice_language and reuse it in every scene that character speaks. Any words that must be pronounced exactly (names, acronyms)?
StyleAgreed style bible line for all image prompts?
Character sheetPer speaker: age range, wardrobe baseline, hair, skin/realism level, personality adjectives—record before hero generation (see Character sheet below).
Scene varietyEach scene must differ in camera angle, background/setting, and/or energy—no two consecutive scenes with the same framing and location unless the user asks. Plan visual_style_tag, setting_tag, camera_tag, lighting_tag per row — generation-diversity.
Ritual seed (SSoT)Ritual seed at hero — generate and state a ritual string; log as ritual_seed; derive prompt axes via sum-mod. Do not pass ritual string to API seed.
ReferencesWhich files to upload; rights cleared?
Beat mixWhich scenes are avatar vs animate? All avatar, all animate, or mixed announcement?
Narrated B-roll cutawaysOptional p-video beats using scene-anchor triple (video-prompting) alongside avatar rows
Motion templates (animate beats)Source .mp4 per animate row—owned/licensed? Match pose/framing to reference still?
Slider delivery (animate beats)Comparison MP4 only, animated-only strip, or both? Canvas default 1920×1080.
AssemblyHow clips will be joined and leveled (ffmpeg plan)?

If anything material is unknown, ask before the first upload or prediction.

Cast ledger & character sheet

Maintain a cast table in the manifest: one Pruna voice + voice_language per recurring character — never swap presets mid-story unless the user requests a recast.

Before hero generation, fill a character sheet per speaker (age, face, realism, wardrobe baseline, personality, ritual_seed for planning). Templates and manifest JSON: prompt-templates.md.

Rule: New locations and styles = p-image-edit off the approved hero URL — not unrelated fresh p-image identity pulls.

Scene plan (dynamic beats)

Every piece needs a scene table — each row avatar or animate. Example columns and manifest JSON: prompt-templates.md · animate-beats.md.

Motion-transfer alignment (animate beats)

P-Video-Animate animates a reference image using motion, timing, and camera movement from a source video. The better the subject's features, pose, framing, and proportions align with the motion template, the better the result.

AlignmentTypical outcome
Same shot type, similar pose, similar scaleClean motion transfer; slider demo reads instantly
Same character type, slightly different angleGood with optional p-image-edit repose toward a template keyframe
Meme / cartoon / mascot on human full-body motionLimbs, gait, and contact points may warp or slide
Tiny head / extreme proportions on dance or arm-heavy motionHands, legs, and depth cues often break
Reference facing camera, source subject in profileShoulder/head turn and occlusion artifacts

Rule: Treat severe pose or proportion mismatch as a pre-flight risk. Repose with p-image-edit or pick a closer motion template before burning p-video-animate credits.

Alignment prep (per animate row):

  1. Match shot size and facing direction between still and template.
  2. Match limb visibility—if the template waves arms, the still must show arms.
  3. Repose when close but not exactp-image-edit from the hero anchor: "Change only: match pose and camera to reference video frame; keep identity and outfit."
  4. Run animate QA from video-prompting on the pair before animate.

Anti-patterns (all types): two identical office avatar scenes back-to-back; corporate brochure voice_script; human dance template + chibi meme still without repose; serial API jobs when scenes are independent; motion templates that prompt smile/wave only (avatar stays silent — see below).

Motion templates for animate beats

When p-video-avatar generates a motion template (source video for p-video-animate), treat it as a speaking beat — not a portrait pose.

FieldRequirement
Motion-source still_editmouth clearly visible ready to speak — not passive smile only
video_promptspeaks directly to camera, clear lip movement, explain gestures, head nods — before any wave/smile close
voice_promptDelivery throughout the line — not “wave energy at the end” only
CameraPrefix: Camera moves continuously for the full clip — … never locked-off

Silent motion templates break slider demos and animate transfers. Prompt templates: prompt-templates.md. Full animate pipeline: animate-beats.md.

Mixed reels with animate rows

PatternStructure
Interleavedavatar hook → animate demo → avatar proof → animate demo → avatar CTA
Slider-heavyN animate slider rows → final avatar CTA on hero

End product launches with a speakable avatar CTA unless the user opts out.

Identity & ritual seed policy

Complete the ritual seed step in generation-diversity before hero prompt work. Log ritual_seed in manifest; reuse only on same-brief slop retry.

Character continuity = approved hero plate URL + cast descriptor — not API seed. Pass api_seed in input only when the user explicitly locks reproducibility.

Natural voice (mandatory for avatar social / founder content)

voice_script = speakable dialogue (contractions, short breaths). voice_prompt = performance direction only — never marketing copy or script text.

Good/bad pairs: prompt-templates.md.

Source portrait / hero (same character across styles and scenes)

For each recurring character:

  1. Land one approved source still via p-image or upload. Run the slop gate on the hero before sign-off. Treat the approved file URL as the identity anchor.
  2. Every later look—including a new background, emotion, prop, or style variation—should be produced with p-image-edit from that same source URL, plus the shared style bible and a short delta (“change only: …”).
  3. Each new scene still starts from the same character source so faces stay one continuous role across the arc.

Confirmation gate (mandatory)

After intake is complete:

  1. Present a read-through package: scene order and type per row; full voice_script for avatar rows; motion templates + reference stills + alignment risks for animate rows; cast ledger; hero URL(s); chosen resolution; legal/CTA lines verbatim if supplied.
  2. Ask clearly for approval (e.g. “Reply approve or go when this script and cast are final.”).
  3. Do not upload binaries for generation or call POST /v1/predictions until the user explicitly confirms.

How the agent runs this

Once the user confirms:

  1. Upload refs → hero p-image → parallel per-scene p-image-edit → slop gates → approve stills.
  2. Parallel p-video-avatar (avatar rows) and p-video-animate (animate rows) via curl batches (pruna-api).
  3. For each animate row, build a slider / comparison MP4 with ffmpeg (below).
  4. ffmpeg concat in scene order → optional bed → approve final.

Prefer one parallel lane per independent scene after the hero exists. Parent owns confirmation, manifest merge, and assembly.

Core rules

  1. p-video-avatar input.image — use an approved still URL from /v1/files that passed generation-diversity checklists.
  2. Run the slop gate on every hero and scene still before any avatar job.
Hero:     p-image (or upload) → slop gate → approve anchor
Scene N:  p-image-edit(anchor) → slop gate → p-video-avatar

API surface (this workflow)

StepModelSkill
Upload binariesPOST /v1/filespruna-api
Style-locked stillsp-image, p-image-editp-image, p-image-edit
Talking clipsp-video-avatarp-video-avatar
Motion transferp-video-animatep-video-animate
Slider comparisonffmpeg (below)local

Use PRUNA_API_KEY and the apikey header on every call. Async + parallel by default: batch all avatar jobs once approved stills pass slop; batch all animate jobs once motion + still URLs are ready; poll all get_url together.

Parallel execution

PhaseParallel?
Hero p-image → gateSequential
Per-scene p-image-editYes — all scenes
Slop gateYes — review in parallel
p-video-avatarYes — all avatar rows
p-video-animateYes — all animate rows
Slider renderYes — all animate rows
AssemblySequential order only

Rule: Never dispatch generation before user confirmation.

Slider comparison (animate rows)

Side-by-side (motion template | animated):

ffmpeg -y -i motion_template.mp4 -i animated.mp4 \
  -filter_complex "[0:v]scale=960:1080[l];[1:v]scale=960:1080[r];[l][r]hstack=inputs=2[v]" \
  -map "[v]" -map 1:a? -c:v libx264 -c:a aac -shortest scene_compare.mp4

Or present both clips and let the user’s editor build a wipe slider. Paths can follow templates/batch.template.json (source, render, samples[]).

Workflow

StepAction
1–3Intake → speakable script → confirmation gate (no API until approve)
4–5Upload refs → p-image hero per character → slop gate
6–7Parallel p-image-edit scene stills → slop gate each
8Parallel p-video-avatar (cast ledger voices, unique video_prompt per scene)
9Parallel p-video-animate + ffmpeg sliders — animate-beats.md
10ffmpeg concat ± optional bed — stable-audio-2.5
11Manifest: paths, prediction ids, slop notes, cast snapshot
ffmpeg -y -f concat -safe 0 -i clips.txt -c copy reel.mp4

Shared ffmpeg recipes (concat, bed mix, sliders, export): video-editing.

Related

Related skills:

SkillDescriptionInstall
avatar-single-sceneUse 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
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
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-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

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.