Install
openclaw skills install @timsandberg56/avatar-content-engineGenerate emotionally-driven, platform-native 16-second AI-avatar video scripts, images, and clips for TikTok, Reels, Shorts, and Facebook focused on niche or...
openclaw skills install @timsandberg56/avatar-content-engineruntime (OpenClaw, Claude Code, and others), and works on OpenClaw, and also through PaioClaw.ai. fill the
[BRAND]slots with your own product. Runs on any AgentSkills-compatible
A production system for generating emotionally-driven, platform-native short-form
video featuring AI avatars. It exists to solve one bottleneck: creative supply.
The value is velocity of distinct, high-quality creative — the raw material that ad
and recommendation algorithms need to optimize against — not a standalone acquisition
channel. Anchor every decision here.
The engine spans three stages:
These principles override generic "best practice." Content that violates them reads as hollow even when technically correct.
Define a small roster of fixed personas. Each needs a locked persona, voice, target audience, brand slot, and two content banks (a niche bank for no-brand content, a brand bank for product-integrated content). Respect each avatar's voice and audience exactly — voice drift is a known failure mode.
| Avatar | Brand slot | Persona | Voice (niche) | Core audience |
|---|---|---|---|---|
| Nova | [BRAND] | Gaming | Deadpan, self-aware Gen-Z gamer; dry humor; never tries too hard | Gamers 16–28, gym-gaming crossover, duo-queue culture |
| Remy | [BRAND] | Streaming | Enthusiastic, opinionated superfan; always has the hottest take | Binge-watchers, fandom communities, streaming obsessives |
| Kai | [BRAND] | AI Tech | Curious, slightly conspiratorial; "nobody talks about this" discoverer | Builders, solopreneurs, tech-curious 22–35, productivity obsessives |
| Sable | [BRAND] | Privacy / Security | Calm, precise, quietly alarming auditor; never conspiratorial; always cites specifics | Privacy-conscious individuals, compliance-aware businesses |
Visual anchor: give each avatar a fixed, describable look so generations stay consistent — e.g. for Sable: 30s, glasses, dark crewneck, dual-monitor desk setup.
Niche-mode rules (never mention the product in niche mode):
Trust-category caution: trust-heavy categories (privacy, security, finance, health) carry higher brand risk with AI-avatar content. Lead validation tests with lighter categories (gaming, streaming) before exposing trust-heavy personas.
Every script is a single JSON object. Never wrap it in markdown. Structure:
{
"hook_concept": "", "trend_used": "", "emotion_used": "", "micro_moment": "",
"brand_integrated": false, "hook_score": 0, "tension_score": 0,
"clip1": {"time":"0-8s","visual_direction":"","on_screen_text":"","dialogue":"","gesture":""},
"clip2": {"time":"8-16s","visual_direction":"","on_screen_text":"","dialogue":"","gesture":""},
"caption": "", "hashtags": ["","","","",""], "comment_cta": "", "why_it_works": ""
}
Optional blocks appear only when the matching system is on: alt_hooks (Hook A/B,
3 variants), arc_posts (5-post series). In silent/reaction mode both dialogue
fields are "[silent]" and the story is carried entirely by on_screen_text +
gesture.
visual_direction ≤ 15 words and always includes clothing + camera angle + body
position + one environment detail.soft — clip 1 pure pain; the product appears once, casually, at the end.story — clip 1 frustration → clip 2 the product is the resolution.demo — one feature solving the core pain, proven inside 16s.cta — hook + problem → product value + direct CTA (link in bio).Toggle these per generation. Sensible defaults on: emotion, moment, tension, drift, duo, hooks, reformat.
tension_score ≥ 7 required, else flag for regeneration.Tool: a Gemini-based image model (e.g. Nano Banana Pro) works well here.
The uncanny plastic/CGI look comes from quality-adjective stacking. Fixes, applied as rules:
hyperrealistic, 8k,
ultra-detailed, and similar over-sharpening / perfection cues.--ar
flags are silently ignored by some models and pollute the prompt.Generate a 2×2 character grid (1:1 aspect ratio) to get four consistent angles of
the same face in a single credit-efficient generation. Prefer this over separate
single-angle generations, which drift in identity. Always price the generation
(a get_cost-style check) before committing.
Tools: Seedance 2.0 (via a platform like Higgsfield) as primary; Kling 3.0; Wan 2.7 for lip-sync.
Embedding dialogue inline in the video model triggers per-generation TTS: no voice consistency, no prosody control, robotic output. Correct architecture:
@Audio1 for lip-sync — do not let the
video model synthesize speech.SCENE: and MOTION: blocks.Head-movement / anti-static instructions fight lip-sync during dialogue. Resolve it by locking head movement during dialogue clips and reserving motion instructions for silent / B-roll clips only. Surface this tension proactively when both are requested.
If your generation platform exposes an MCP server (e.g. Higgsfield), common patterns:
A common setup is a React artifact that calls a chat-completion endpoint to produce the JSON script contract above. When run inside a host that provides a built-in proxy, no API key is needed in that environment. Keep the generation and reformat prompts versioned.
If the engine has a hosted UI, routes are rarely guessable — enumerate the real ones
with document.querySelectorAll('a[href]') rather than guessing paths.
On a heavy, animated staging UI, get_page_text and javascript_tool tend to be more
reliable than screenshot-based validation. Avoid navigate + screenshot batch combos —
animated canvas rendering can cause timeouts.
Check these before assuming a clean run: