Overview
Every Bluma workspace requires atemplate.config.ts file that defines how your video template works. This file configures:
- Which AI services your template needs (script generation, voice, images, etc.)
- How those services should be configured
- How to transform service results into Remotion props
- Video output settings (duration, resolution, fps)
Basic Structure
Required Services
TherequiredServices object specifies which AI services your template uses:
When you enable a service, you must provide its corresponding config. For example, if
frameExtraction: true, you must include frameExtractionConfig.Service-Specific Configs
frameExtractionConfig
Required when:requiredServices.frameExtraction: true
Extracts frames from source videos for use in compositions.
scriptConfig
Required when:requiredServices.scriptGeneration: true
voiceConfig
Required when:requiredServices.voiceGeneration: true
imageConfigs
Required when:requiredServices.imageGeneration: true or requiredServices.bulkImageGeneration: true
backgroundConfig
Required when:requiredServices.backgroundProcessing: true
Duration Configuration
Control video length with thedurationConfig:
Transform Function
ThetransformToRemotionProps function converts service results into Remotion props:
Common Validation Errors
frameExtractionConfig: Required when frameExtraction is enabled
frameExtractionConfig: Required when frameExtraction is enabled
Problem: You set
requiredServices.frameExtraction: true but didn’t provide the config.Solution: Add the frameExtractionConfig object:scriptConfig: Required when scriptGeneration is enabled
scriptConfig: Required when scriptGeneration is enabled
Problem: You enabled script generation but didn’t configure it.Solution: Add
scriptConfig with at least model and systemPrompt:voiceConfig: Required when voiceGeneration is enabled
voiceConfig: Required when voiceGeneration is enabled
Problem: Voice generation is enabled without configuration.Solution: Add
voiceConfig:transformToRemotionProps must be a function
transformToRemotionProps must be a function
Problem: The transform function is missing or not a function.Solution: Add the transform function:
componentName/compositionId is required
componentName/compositionId is required
Problem: Missing Remotion component reference.Solution: Add both fields:
Complete Example
Here’s a minimal working template config:Need Help?
Template Examples
Browse working template examples on GitHub
Discord Community
Get help from the Bluma developer community