Cyrus Avatar — Locked Brand Generation
All public Cyrus content (TikToks v3–v5, landing-page videos, YouTube welcome, the Twitter profile image) uses the same avatar, voice, and settings. This skill locks that choice in.
Do not change these values without explicit instruction from Ole Christian. Brand consistency depends on it.
Locked brand configuration
| Asset | Value |
|---|---|
| Avatar image (VIDEO) | workspace/media/tool-image-generation/cyrus-dev-bg-v1---76d50711-a70f-40d1-84c9-e99d9510c1d9.png |
| Twitter profile | workspace/media/tool-image-generation/cyrus-twitter-profile-grey-hoodie---d49e894b-c954-4f81-a5ed-ba0ef4fe4eaf.png |
| NOT used for video | cyrus-american-v1 variants — these were rejected studies (light background, "Cyrus" t-shirt). Do not use. |
| Voice | Eric — cjVigY5qzO86Huf0OWal (ElevenLabs premade) |
| Model | eleven_multilingual_v2 |
| Voice settings | stability=0.35, similarity_boost=0.85, style=0.4, use_speaker_boost=true (expressive — confirmed via Apr 20 A/B) |
| Character | Warm, authoritative |
| Ethnicity | White American male (confirmed preferred; not the alt African-American variant from TikTok 1) |
| Background | Dark developer office — monitors, ambient glow — part of the avatar PNG, not added separately |
| Wardrobe | Black zip-up hoodie (built into the avatar image) |
| Video resolution | 720p (VEED Fabric 1.0 via Fal) |
| Subtitles | Montserrat, bold, white with black stroke, yellow highlight, 2 words per line, bottom position |
Prerequisites
~/.config/elevenlabs/api_key— ElevenLabs key~/.config/fal/api_key— Fal API key (also settable viaFAL_KEYenv)fal-clientPython package:pip install --break-system-packages fal-client- The avatar image present at the locked path above
Usage
One-shot: script → final subtitled video
python3 ~/.openclaw/workspace/skills/cyrus-avatar/scripts/make-cyrus-video.py \
--script "Your script here. Keep it under 60 seconds for best lip-sync quality." \
--output ~/Desktop/cyrus-new.mp4
This uses every locked value: the canonical avatar, the Eric voice, the matching settings, 720p output, and auto-subtitles in the brand style. No flags needed for brand compliance.
Audio only (for reuse / remixing)
python3 ~/.openclaw/workspace/skills/cyrus-avatar/scripts/make-cyrus-video.py \
--script "..." \
--audio-only \
--output ~/Desktop/cyrus-audio.mp3
Reuse existing audio (skip TTS)
python3 ~/.openclaw/workspace/skills/cyrus-avatar/scripts/make-cyrus-video.py \
--audio existing.mp3 \
--output ~/Desktop/cyrus-new.mp4
Disable subtitles (raw video output)
python3 ~/.openclaw/workspace/skills/cyrus-avatar/scripts/make-cyrus-video.py \
--script "..." \
--no-subtitles \
--output ~/Desktop/cyrus-raw.mp4
Output location
Put generated files in workspace/media/ so they're tracked by the media backup system (not committed to git, but preserved).
Naming convention: cyrus-<purpose>-<version>-<variant>.mp4, e.g.:
cyrus-landing-part1-subtitled.mp4cyrus-tiktok-v6-raw.mp4cyrus-youtube-welcome-subtitled.mp4
Cost estimate (per video)
- ElevenLabs TTS: ~$0.15–0.30 per minute
- Fal Fabric 1.0: ~$0.10–0.20 per video
- Fal auto-subtitles: ~$0.05
- ~$0.30–0.55 per ~45-second finished video
Historical context
All Cyrus audio/video in workspace/media/ was generated with these exact settings on the previous VPS (Apr 5 – Apr 15). After the Apr 18 compromise + nuke + restore, these settings are now the single source of truth.
Apr 20 correction: The skill initially pointed at cyrus-american-v1 based on imprecise memory notes. Frame-by-frame comparison of cyrus-tiktok-v5-raw.mp4 and cyrus-landing-page-final-raw.mp4 against each source PNG confirmed cyrus-dev-bg-v1 is the correct production avatar. The cyrus-american-v1 variants were studies that never made it to production.
If you ever need to verify output matches the historical samples, compare against:
workspace/media/cyrus-tiktok-v5-raw.mp4(for face + voice match)workspace/media/cyrus-eric-v1-audio.mp3(for audio-only verification)
Related
skills/talking-head/— generic underlying pipeline (also has Eric voice registered undereric/cyrusshortcuts)workspace/media/— all historical and new Cyrus media (gitignored, backed up separately)