Changelog
1.2.0 – Title layer outline & animation
New features
- Title outline effects for video title layers
- New properties on
titlelayersanimationDuration(number, seconds) – controls the reveal speed forword-by-wordandletter-by-letteranimationsoutlineColor(hex color) – color of the text outlineoutlineWidth(number, pixels) – width of the outlineoutlineStyle("outline" | "shadow" | "glow") – outline rendering style
- 2-layer rendering: outline is rendered below and text fill above so titles stay readable even with thick outlines.
- Improved outline alignment for
top/bottompositions across all outline styles.
For more details, see the video schema and the video layer types documentation.
Demo: Text effects with outline styles
View full configuration JSON
{
"type": "video",
"config": {
"defaults": {
"transition": null
},
"clips": [
{
"duration": 3,
"layers": [
{
"type": "fill-color",
"color": "#ca9c10"
},
{
"type": "title",
"text": "Classic Outline",
"textColor": "#ffffff",
"outlineColor": "#000000",
"outlineWidth": 5,
"outlineStyle": "outline",
"position": "bottom",
"zoomDirection": null
}
]
},
{
"duration": 3,
"layers": [
{
"type": "fill-color",
"color": "#f0f0f0"
},
{
"type": "title",
"text": "Shadow Effect",
"textColor": "#ebebeb",
"outlineColor": "#000000",
"outlineWidth": 6,
"outlineStyle": "shadow",
"position": "center"
}
]
},
{
"duration": 3,
"layers": [
{
"type": "fill-color",
"color": "#1a1a2e"
},
{
"type": "title",
"text": "Glow Effect",
"textColor": "#ffffff",
"outlineColor": "#ff0066",
"outlineWidth": 8,
"outlineStyle": "glow",
"position": "center",
"fontSize": 100
}
]
},
{
"duration": 3,
"layers": [
{
"type": "fill-color",
"color": "#4ecdc4"
},
{
"type": "title",
"text": "Word by Word\nShadow Style",
"textColor": "#ffffff",
"outlineColor": "#000000",
"outlineWidth": 5,
"outlineStyle": "shadow",
"position": "center",
"style": "word-by-word"
}
]
},
{
"duration": 3,
"layers": [
{
"type": "fill-color",
"color": "#0f0f23"
},
{
"type": "title",
"text": "Letter by Letter\nGlow Effect",
"textColor": "#ffffff",
"outlineColor": "#00ff88",
"outlineWidth": 6,
"outlineStyle": "glow",
"position": "center",
"style": "letter-by-letter",
"animationDuration": 1
}
]
},
{
"duration": 3,
"layers": [
{
"type": "fill-color",
"color": "#e74c3c"
},
{
"type": "title",
"text": "Fade In\nOutline Style",
"textColor": "#ffffff",
"outlineColor": "#2c3e50",
"outlineWidth": 3,
"outlineStyle": "outline",
"position": "center",
"style": "fade-in"
}
]
},
{
"duration": 3,
"layers": [
{
"type": "fill-color",
"color": "#22ad32"
},
{
"type": "title",
"text": "Top Shadow",
"textColor": "#ffffff",
"outlineColor": "#000000",
"outlineWidth": 6,
"outlineStyle": "shadow",
"position": "top"
}
]
},
{
"duration": 3,
"layers": [
{
"type": "fill-color",
"color": "#000020"
},
{
"type": "title",
"text": "Top Glow",
"textColor": "#ffffff",
"outlineColor": "#00ffff",
"outlineWidth": 8,
"outlineStyle": "glow",
"position": "top"
}
]
}
]
}
}
1.1.0 – MCP & validation refactor
Stricter validation
- Job configuration validation has been completely overhauled.
- Requests are now consistently validated against the JSON schemas (for example, image and video configurations).
- Invalid fields are rejected earlier and with clearer error messages, leading to more stable and predictable responses.
New schema endpoints
In version 1.1.0, dedicated endpoints were introduced to retrieve the current schema versions via the API:
GET /api/v1/schemas– list all available schemasGET /api/v1/schemas/image– JSON schema for image configurationsGET /api/v1/schemas/video– JSON schema for video configurations
These endpoints correspond to the routes in core/src/routes/schemaRoutes.ts
and form the basis for automatic schema documentation.
MCP integration
- The new schema endpoints are also exposed through the MCP setup.
- LLMs can use them to fetch the latest JSON schemas and understand what a valid configuration for image and video jobs looks like.
- This significantly improves auto-completion, validation, and error explanations in MCP-based tools.