Files
timmy-config/training-data/schema.json

101 lines
2.7 KiB
JSON
Raw Normal View History

{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Scene Description Training Entry",
"description": "Schema for lyrics-to-visual scene description training data. Catches missing fields, wrong types, empty values, and unexpected fields.",
"type": "object",
"required": ["song", "beat", "lyric_line", "scene"],
"properties": {
"song": {
"type": "string",
"minLength": 1,
"description": "Song title"
},
"artist": {
"type": "string",
"minLength": 1,
"description": "Artist or group name (missing in some files — flagged as warning)"
},
"genre": {
"type": "string",
"minLength": 1,
"description": "Musical genre"
},
"bpm": {
"type": "number",
"minimum": 1,
"description": "Beats per minute"
},
"beat": {
"type": "integer",
"minimum": 1,
"description": "Beat number within the song"
},
"timestamp": {
"type": "string",
"pattern": "^[0-9]+:[0-5][0-9]$",
"description": "Timestamp in M:SS or MM:SS format"
},
"duration_seconds": {
"type": "number",
"minimum": 0,
"description": "Duration in seconds"
},
"duration": {
"type": "string",
"minLength": 1,
"description": "Duration as string (e.g. '30s')"
},
"mood_arc": {
"oneOf": [
{ "type": "string", "minLength": 1 },
{ "type": "array", "items": { "type": "string" } }
],
"description": "Optional mood progression arc"
},
"lyric_line": {
"type": "string",
"minLength": 1,
"description": "Lyric line(s) for this beat"
},
"scene": {
"type": "object",
"required": ["mood", "colors", "composition", "description"],
"properties": {
"mood": {
"type": "string",
"minLength": 1,
"description": "Emotional mood of the scene"
},
"colors": {
"type": "array",
"items": { "type": "string", "minLength": 1 },
"minItems": 1,
"description": "Visual color palette"
},
"composition": {
"type": "string",
"minLength": 1,
"description": "Shot composition description"
},
"camera": {
"type": "string",
"minLength": 1,
"description": "Camera movement or position"
},
"camera_movement": {
"type": "string",
"minLength": 1,
"description": "Camera movement (alternate field name)"
},
"description": {
"type": "string",
"minLength": 10,
"description": "Full visual scene description"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}