Skip to content

StyleGuide Schema

The StyleGuide object captures brand and visual style preferences for a project or work. It is used in scenario, image, and video generation.

The core definition lives in packages/shared/src/types/style-guide.ts:

export interface StyleGuide {
tone?: string;
color_palette?: string[];
tempo?: "fast" | "medium" | "slow";
camera_style?: string;
brand_voice?: string;
must_include?: string[];
must_avoid?: string[];
}
FieldTypeRequiredDescription
tonestringNoOverall tone (e.g. "energetic", "professional").
color_palettestring[]NoHex color codes (e.g. ["#FF5733", "#33C3FF"]).
tempo"fast" | "medium" | "slow"NoPacing of the video.
camera_stylestringNoCamera movement preferences (e.g. "Static and slow pans").
brand_voicestringNoBrand communication tone (used in prompts).
must_includestring[]NoElements that should appear (e.g. "logo watermark").
must_avoidstring[]NoElements to avoid (e.g. "heavy shadows", "neon colors").

These fields are exposed in the API schema as StyleGuide (see components.schemas.StyleGuide in the OpenAPI document).

  • Project (project.styleGuide) — Set via Projects API and used across all works.
  • Scenario (styleGuide in scenario request) — Appended to the scenario system prompt as “Project Style Guide”.
  • Image generation — Backend builds a style prefix in prompts/image.ts using tone, colors, and tempo.
  • Video generation — Backend builds a style prefix in prompts/video.ts using camera_style, tempo, and tone.

The shared library also provides utility functions:

  • styleGuideFromAnalysis(analysis: AnalysisResult): Partial<StyleGuide> — Maps video analysis data (tone, color palette, tempo, first scene camera movement) into a style guide.
  • isStyleGuideEmpty(guide?: StyleGuide): boolean — Returns true if no meaningful fields are set.