← PixaraCONTENT HISTORY
WHAT CHANGED
Update to Pixara
Snapshot Oct 26, 2026 · 18:05 UTC · version 1.0.0
Collection source: downloaded plugin package.
First saved snapshot
No earlier snapshot is available to establish a change.
Save Pixara and check future changes in Following.
Up to 10 plugins free · no card required.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"description": "A presenter video driven by an audio track, so the words are exact: the identity locked to a portrait, the script by type with every literal on-screen element listed, the voiceover first on ElevenLabs V4 or the user’s own track, the engine by input shape (Omni Human 1.5, Minimax Hailuo 3 Max Avatar, Kling Avatars V2, Sync Lip Sync 3), a frame check before spend, cutaways on the silent beats, captions from the script. Use when: the user asks for an avatar or a lip-synced presenter by name, supplies their own audio track or recording to drive a face, or needs the exact words over a static framing for a long read (a training module, a product walkthrough) where a sheet-based presenter would ad-lib. Not for: the default presenter route where the video model speaks (presenter-video), narration over scenes (faceless-explainer), a product with hands and a narrator (product-reel), a voice clone as the deliverable (clone_voice), dubbing an existing video into another language (dubbing).",
"included_files": [],
"name": "avatar-video",
"skill_md_contents": "---\nname: \"avatar-video\"\ndescription: \"A presenter video driven by an audio track, so the words are exact: the identity locked to a portrait, the script by type with every literal on-screen element listed, the voiceover first on ElevenLabs V4 or the user’s own track, the engine by input shape (Omni Human 1.5, Minimax Hailuo 3 Max Avatar, Kling Avatars V2, Sync Lip Sync 3), a frame check before spend, cutaways on the silent beats, captions from the script. Use when: the user asks for an avatar or a lip-synced presenter by name, supplies their own audio track or recording to drive a face, or needs the exact words over a static framing for a long read (a training module, a product walkthrough) where a sheet-based presenter would ad-lib. Not for: the default presenter route where the video model speaks (presenter-video), narration over scenes (faceless-explainer), a product with hands and a narrator (product-reel), a voice clone as the deliverable (clone_voice), dubbing an existing video into another language (dubbing).\"\n---\n\n# Avatar video\n\nProduce ONE presenter video where the words are exact because the audio comes first and the face follows it. This is the lower-priority route: the default presenter is the presenter-video recipe, where the video model speaks; this one runs when the user asks for an avatar, supplies audio, or the brief needs a long exact read.\n\n## Rules that never bend\n\n- The voiceover is generated first and its real duration read back; the picture is made to the audio, never the reverse. eleven-labs/v4 with a voiceId from list_voices, the user's own recording when supplied, or bytedance/seed-audio-1.0 replicating a voice the user owns from a sample they supplied.\n- The script is written by type (a demo: hook, problem, solution, call; an explainer: context, concept, takeaway; a tutorial: what we build, the steps, a recap; a pitch: the pain, the vision, the product, the call; an announcement: hook, what changed, why, what next), and every literal element (a number, a name, a handle, a URL, a call to action) is listed in a critical-text block so nothing is paraphrased. Show it with the word count and the estimated duration before any spend.\n- The presenter is addressed only through the attached portrait (\"the person in the image\"); their appearance is never described in the prompt; that mismatch is the first cause of a wrong face.\n- Frame check before spend: the portrait's orientation against the output aspect (a landscape portrait for a 9:16 output is reframed with luma/reframe-image, chest-up and centred, never letterboxed) and a background added when the portrait has none.\n- The engine by input shape: a portrait plus audio on bytedance/omni-human-1.5 by default (160 credits per second, audio under 35 seconds; verified: an 11 second read cost 1760 and kept the setting); minimax/hailuo-3-max-lipsync (the most lifelike face; audio 5 seconds to 5 minutes; about 170 credits per second at 1080P; keeps the portrait's shape; it can overact, so a serious line gets a calm delivery in the take) or kling/avatar-v2-pro for a plain talking head at a fixed framing (kling/avatar-v2-standard for the economy version); wan-video/wan-2.7 through generate_video with the track as its reference audio when the scene must be directed (a camera move, a gesture, a place; describe_model names the field); sync/lipsync-3 through lip_sync when the user supplied their own footage to revoice. describe_model on the chosen engine gives its audio length limit, and that limit decides the clip count.\n- Cutaways (a product still, a screen, a designed frame with the critical text) sit on the silent or B-roll beats in the assembler; the avatar clips carry no baked text; captions come from the subtitles tool with the script as srtContent.\n- Consent: a supplied photo is not permission to impersonate its subject. Decline public figures, minors and anyone the user has no right to use. Never imitate a real person's voice without a sample they own.\n\n## Intake, only for the gaps\n\nParse the brief first, then ask in one message only for what it left out: the portrait (upload it if local; or a generated person with a stated gender and vibe), the script or the points it must cover, the audio when the user has their own, the duration when no script exists, the aspect (9:16 or 16:9 by destination), the product when there is one. Never ask about engines or models. Captions are the one delivery question after the master exists.\n\n## Phases\n\n1. Identity. The user's portrait, or one generated portrait with generate_image on google/nano-banana-pro or bytedance/seedream-5-pro (phone-camera realism, natural light, looking at the lens, chest-up, a plain background, a mature adult face, at the output aspect) followed by a realism pass (an image-to-image pass on bytedance/seedream-5-pro that keeps the framing and face and adds pore-level skin and real material detail, no beauty-filter smoothing). Look at it inline; get a nod. Then the frame check: reframe with luma/reframe-image when the aspect does not match; a background when there is none.\n2. Script. By type, with the critical-text block; about 2.3 words per second; show it with the count and the duration.\n3. Voice. list_voices for a voiceId from a one-sentence description, then generate_voiceover on eleven-labs/v4 with the script verbatim; wait; get_media_metadata for the real duration. When the engine's audio limit is shorter than the track, generate the voiceover per segment from the start, one segment per sentence group inside the limit (generate_batch, then wait_for_jobs); a user-supplied track longer than the limit is cut at sentence ends with media_utility on shotstack/trim-audio.\n4. Clips. One avatar call per audio segment with the portrait in the image field and the segment in the audio field that describe_model names (image and audio on Omni Human 1.5; imageUrl and audioUrl on Minimax Hailuo 3 Max Avatar and Kling), or lip_sync with the user's footage and the track; the engine by shape, the scene directive only on wan-video/wan-2.7. Launch the segments together with generate_batch when the engine supports it, else one avatar call each, and wait with wait_for_jobs.\n5. Cutaways. Stills or designed frames for the beats the script marks as B-roll, generated on google/nano-banana-pro (openai/gpt-image-2 when a frame carries the critical text as an exact string); nothing goes over the presenter's face.\n6. Check. Tell the user what to look for in each clip unless they asked for no check-ins: lips on the words, no stiffness or drift in the face, the portrait's identity, no text. A clip that fails twice is retried once on the next engine in the list.\n7. Assembly. get_assembly_guide once, get_media_metadata on every key, then assemble_video: the avatar clips in order on the base track with their own audio muted, the full track (or the segments at their moments) on an audio track, the cutaways as image clips over their beats, a bed only when asked; no text clips.\n8. Delivery. Captions through the subtitles tool on zapcap/subtitles when wanted, with referenceTranscript authored from the script. Then one paragraph naming the engine by its display name, what was made, and two next steps (the other aspect, a second language through the dubbing tool).\n\n## Pixara tool mechanics\n\n- Discover: recommend_model for a goal, list_models for a service or a capability, describe_model for the exact parameters, the constraints and the price. The models named in this recipe are the ones verified for it; if one has left the catalog, take the newest model with the same tags.\n- Run: generate_image, generate_video, generate_voiceover, generate_music and the editing tools return a job id. wait_for_job(id) polls for up to 45 seconds; call it again until the job finishes. A failed job is refunded and its error names the constraint that was hit; fix that and retry once.\n- Waves: when several generations do not depend on each other (a shot list, a set of variants, the takes of a voiceover), queue them in one generate_batch call and wait for all of them with wait_for_jobs; one failing job never stops the others.\n- Results: every finished asset carries a URL and a key. Pass the URL as the input to the next generation (describe_model names the image, video and audio fields). Pass the KEY to assemble_video, and call get_media_metadata(key) for exact durations before sizing clips.\n- Inputs from the user: request_upload then finalize_upload (or upload_widget) for a local file, upload_asset for a URL, list_generations to reuse earlier work.\n- Money: prices are per model in list_models; estimate_cost before anything expensive; confirm before choosing a model that costs several times more than an alternative.\n- Seeing: images render inline, so look at every image before building on it. You cannot watch video here: when a clip finishes, tell the user what to check (face, hands, lips, unwanted text) and let them confirm before assembly, unless they asked for no check-ins.\n- Words on screen are minimal and live inside the picture: a title, a step name or a price is a designed frame from a text-rendering image model (google/nano-banana-pro at any aspect; openai/gpt-image-2 only at 1:1, 2:3 or 3:2, the only aspects it renders here) with the exact string, animated with image-to-video or placed as an image clip; the assembler's text clip is the last resort for a plain line nothing else can carry. Never ask a generation model to render text you did not receive verbatim from the user.\n- Captions never come from the assembler or a video prompt: when a piece has speech and the user wants captions, run the finished master through the subtitles tool on zapcap/subtitles with the language, a style as preset when the user wants a particular look (list_caption_styles shows them with previews; the default is clean plain text), position only when the style's own placement does not fit (a percentage of the height from 0 at the top to 80 at the bottom, around 70 for a 9:16 talking piece), and the authored script as referenceTranscript when one exists: one entry per cue with text, startTime and endTime in seconds, which keeps the script's spelling while word timing still comes from the audio. veed/subtitles is the fallback only: when ZapCap refuses the video (no audio track, longer than 30 minutes), when its job fails (one retry on VEED, never a second ZapCap run), when the captions are authored text on a piece with no speech (VEED burns them from srtContent), or when the user picked a VEED style. Never caption one piece with both. The clean master stays the master; the captioned file is the deliverable.\n- minimax/hailuo-3-max: resolution is the string \"768P\" exactly, capitals, its only value (never 480P, and a lowercase 768p is rejected); duration 5 to 15; referenceImageUrls holds at most nine.\n- Voices: eleven-labs/v4 for every voiceover (a voiceId from list_voices); minimax/speech-2.8 only when it fails; bytedance/seed-audio-1.0 for voice replication from a sample the user owns, a two-voice dialogue in one take, or spoken lines with sound effects.\n- Talk to the user in model display names, never ids, and never narrate these mechanics.\n"
}SHA-256 of public snapshot: 14cafeb97d9d77e9504408b777fe3cb153b72b60bd9cb4354e5eb601514b2c8c