Skip to content

Latest commit

 

History

History
173 lines (136 loc) · 4.47 KB

File metadata and controls

173 lines (136 loc) · 4.47 KB

Creating Brand Profiles

Brand profiles let you maintain consistent visual identity across videos. Each brand defines colors, fonts, and voice settings.

Quick Start: Run /brand in Claude Code to create a brand interactively. It can extract colors from a website URL, generate a palette from a single color, or let you specify colors manually.

Brand Structure

brands/
├── default/
│   ├── brand.json     # Colors, fonts, spacing
│   ├── voice.json     # Voice settings
│   └── assets/        # Logo, backgrounds, watermarks
│       ├── logo.svg
│       └── background.mp4
└── my-company/
    ├── brand.json
    ├── voice.json
    └── assets/

Creating a New Brand

  1. Copy the default brand

    cp -r brands/default brands/my-company
  2. Edit brand.json

    {
      "name": "My Company",
      "description": "Corporate brand for My Company videos",
      "colors": {
        "primary": "#2563eb",
        "primaryLight": "#3b82f6",
        "textDark": "#1e293b",
        ...
      },
      "fonts": {
        "primary": "Inter, sans-serif",
        "mono": "JetBrains Mono, monospace"
      }
    }
  3. Configure voice settings (optional) Edit voice.json to use a different ElevenLabs voice:

    {
      "voiceId": "your-voice-id",
      "settings": {
        "stability": 0.75,
        "similarityBoost": 0.9
      }
    }
  4. Add brand assets Place logo, background videos, or watermarks in assets/.

Using a Brand in a Project

When creating a new project with /video, you'll be prompted to select a brand:

Which brand?

  1. default - #3B82F6 (blue)
  2. digital-samba - #3771e0 (blue)
  3. my-company - #your-color
  4. Create new brand → /brand

The selected brand's colors, fonts, and assets are automatically applied to your project via src/config/brand.ts.

Manual Brand Loading

If you prefer manual setup, reference the brand in your project's config:

// brand.ts (auto-generated by /video command)
import { loadBrand } from '../../../lib/brand';

export const brand = loadBrand('my-company');

Brand Properties

Colors

Property Description
primary Main accent color
primaryLight Lighter variant for hover/highlight
textDark Primary text color
textMedium Secondary text color
textLight Tertiary/muted text
bgLight Light background
bgDark Dark background
bgOverlay Semi-transparent overlay
divider Border/divider color
shadow Shadow color (with alpha)

Fonts

Property Description
primary Main font for headings and body
mono Monospace font for code

Typography

Define sizes and weights for each text style:

  • h1, h2, h3 - Heading styles
  • body - Body text
  • label - Labels and captions

Voice Settings

ElevenLabs

Property Description
voiceId ElevenLabs voice ID
stability Voice stability (0-1, higher = more consistent)
similarityBoost Voice similarity (0-1, higher = more similar to original)
style Style exaggeration (0-1)
model ElevenLabs model to use

Qwen3-TTS

Add an optional qwen3 section to voice.json for self-hosted TTS:

{
  "voiceId": "...",
  "settings": { ... },
  "qwen3": {
    "speaker": "Ryan",
    "language": "Auto",
    "instruct": "",
    "clone": {
      "refAudio": "assets/voice-reference.m4a",
      "refText": "Exact transcript of the reference audio."
    }
  }
}
Property Description
qwen3.speaker Built-in speaker name (Ryan, Aiden, Vivian, etc.)
qwen3.language Language hint (Auto, English, Chinese, etc.)
qwen3.instruct Emotion/style instruction (e.g., "Speak warmly")
qwen3.clone.refAudio Path to reference audio, relative to brand directory
qwen3.clone.refText Exact transcript of the reference audio

Both qwen3 and qwen3.clone are optional. Set clone to null or omit it to use built-in speakers only.

Setting Up Voice Cloning

Run /voice-clone for a guided workflow that:

  1. Records or imports reference audio
  2. Tests the clone quality
  3. Saves the profile to your brand's voice.json

Once saved, use --brand to load it automatically:

python tools/voiceover.py --provider qwen3 --brand my-company --scene-dir public/audio/scenes --json