save changes
This commit is contained in:
@ -216,7 +216,7 @@
|
||||
},
|
||||
"63": {
|
||||
"inputs": {
|
||||
"frame_rate": 32,
|
||||
"frame_rate": 25,
|
||||
"loop_count": 0,
|
||||
"filename_prefix": "RADOMVIDEOMAKERVIDEO",
|
||||
"format": "video/h264-mp4",
|
||||
|
||||
@ -216,7 +216,7 @@
|
||||
},
|
||||
"63": {
|
||||
"inputs": {
|
||||
"frame_rate": 32,
|
||||
"frame_rate": 25,
|
||||
"loop_count": 0,
|
||||
"filename_prefix": "wan22_",
|
||||
"format": "video/h264-mp4",
|
||||
|
||||
BIN
src/musicspot_generator/cetridesete/face.png
Normal file
BIN
src/musicspot_generator/cetridesete/face.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.7 MiB |
BIN
src/musicspot_generator/cetridesete/face2.png
Normal file
BIN
src/musicspot_generator/cetridesete/face2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.9 MiB |
598
src/musicspot_generator/cetridesete/scenes.json
Normal file
598
src/musicspot_generator/cetridesete/scenes.json
Normal file
@ -0,0 +1,598 @@
|
||||
{
|
||||
"song": {
|
||||
"title": "Četrdesete: Svjetlo kroz Maglu",
|
||||
"artist": "Radni Front",
|
||||
"genre": "Cinematic Pop/Rock",
|
||||
"mood": "Gritty, uplifting, hopeful"
|
||||
},
|
||||
"character": {
|
||||
"bodyType": "average build, slightly athletic, in his 40s",
|
||||
"hairStyle": "short side-part, light stubble",
|
||||
"accessories": "leather messenger bag, analog watch, simple ring"
|
||||
},
|
||||
"scenes": [
|
||||
{
|
||||
"sceneId": 1,
|
||||
"time": "Morning",
|
||||
"location": "Foggy city street at dawn",
|
||||
"outfit": "charcoal wool coat over navy blazer, white oxford shirt, dark chinos, leather derbies, grey scarf; takeaway coffee in hand",
|
||||
"cuts": [
|
||||
{
|
||||
"cutId": 1,
|
||||
"pose": "walking briskly with coffee",
|
||||
"action": "exhaling visible breath in cold air",
|
||||
"camera": [
|
||||
"full-body frontal walk through light shafts in fog",
|
||||
"low angle on shoes splashing a thin puddle"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 2,
|
||||
"pose": "pausing at crosswalk",
|
||||
"action": "checking watch then stepping forward",
|
||||
"camera": [
|
||||
"close-up on watch face catching sun flare",
|
||||
"three-quarter side track across zebra lines"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 3,
|
||||
"pose": "tight grip on cup",
|
||||
"action": "lifting cup for a sip",
|
||||
"camera": [
|
||||
"macro fingers on cup sleeve with steam",
|
||||
"profile head-and-shoulders backlit by hazy sun"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 4,
|
||||
"pose": "steady stride",
|
||||
"action": "adjusting scarf in breeze",
|
||||
"camera": [
|
||||
"telephoto compression down foggy avenue",
|
||||
"rear follow shot with scarf rim-lit"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 5,
|
||||
"pose": "determined gaze",
|
||||
"action": "looking ahead into sunlight",
|
||||
"camera": [
|
||||
"tight face with soft lens bloom",
|
||||
"over-shoulder toward blinding sky gap"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"sceneId": 2,
|
||||
"time": "Morning",
|
||||
"location": "Tram interior rocking through city",
|
||||
"outfit": "navy blazer, knit crewneck, white shirt, dark jeans, leather sneakers; coffee in hand",
|
||||
"cuts": [
|
||||
{
|
||||
"cutId": 1,
|
||||
"pose": "standing in tram",
|
||||
"action": "holding strap with one hand, coffee in the other",
|
||||
"camera": [
|
||||
"medium inside tram, window condensation streaks",
|
||||
"front angle from aisle with passing light bands"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 2,
|
||||
"pose": "leaning against pole",
|
||||
"action": "checking phone briefly",
|
||||
"camera": [
|
||||
"over-shoulder to phone screen glow",
|
||||
"side profile with rim light from window"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 3,
|
||||
"pose": "looking out window",
|
||||
"action": "soft smile seeing morning city",
|
||||
"camera": [
|
||||
"through-glass face framed by droplets",
|
||||
"exterior-to-interior angle catching reflection layers"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 4,
|
||||
"pose": "steady stance",
|
||||
"action": "taking small sip as tram turns",
|
||||
"camera": [
|
||||
"low angle on cup tilt and sleeve",
|
||||
"rear quarter shot showing sway of carriage"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 5,
|
||||
"pose": "composed",
|
||||
"action": "pocketing phone, focusing forward",
|
||||
"camera": [
|
||||
"chest-up push-in down the aisle",
|
||||
"top-down seat pattern with soft bloom"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"sceneId": 3,
|
||||
"time": "Morning",
|
||||
"location": "Modern office desk with soft skylight",
|
||||
"outfit": "light grey blazer, pale blue shirt, dark chinos, brown brogues; ID lanyard",
|
||||
"cuts": [
|
||||
{
|
||||
"cutId": 1,
|
||||
"pose": "seated typing",
|
||||
"action": "focused work with subtle nods",
|
||||
"camera": [
|
||||
"medium desk-side angle with window beams",
|
||||
"close-up fingers on keyboard with keycap sheen"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 2,
|
||||
"pose": "reviewing papers",
|
||||
"action": "marking with pen",
|
||||
"camera": [
|
||||
"top-down documents in stripey sunlight",
|
||||
"front low angle across desk edge"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 3,
|
||||
"pose": "phone to ear",
|
||||
"action": "short professional conversation",
|
||||
"camera": [
|
||||
"profile with rim-lit jawline",
|
||||
"over-shoulder to city glow outside"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 4,
|
||||
"pose": "stretching shoulders",
|
||||
"action": "exhaling, sip of water",
|
||||
"camera": [
|
||||
"medium with glass prisming light",
|
||||
"close-up on water surface ripples"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 5,
|
||||
"pose": "refocused",
|
||||
"action": "resuming typing with resolve",
|
||||
"camera": [
|
||||
"front push-in past monitor edge",
|
||||
"rear silhouette against bright window"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"sceneId": 4,
|
||||
"time": "Late Morning",
|
||||
"location": "Office glass meeting room",
|
||||
"outfit": "navy sport coat, white shirt, knit tie, tailored trousers",
|
||||
"cuts": [
|
||||
{
|
||||
"cutId": 1,
|
||||
"pose": "standing at screen",
|
||||
"action": "pointing to chart, calm tone",
|
||||
"camera": [
|
||||
"three-quarter presenter through glass reflections",
|
||||
"over-shoulder to slide glow on faces"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 2,
|
||||
"pose": "listening",
|
||||
"action": "nodding, hands clasped",
|
||||
"camera": [
|
||||
"medium frontal with rim edge light",
|
||||
"tight hands interlaced catching sheen"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 3,
|
||||
"pose": "whiteboard note",
|
||||
"action": "writing key word",
|
||||
"camera": [
|
||||
"side on marker tip against board",
|
||||
"over-shoulder on word under skylight stripe"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 4,
|
||||
"pose": "hand gestures",
|
||||
"action": "framing idea in air",
|
||||
"camera": [
|
||||
"front medium with floating dust motes",
|
||||
"profile gesture silhouette against window"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 5,
|
||||
"pose": "closing remark",
|
||||
"action": "small confident smile",
|
||||
"camera": [
|
||||
"tight smile with gentle bloom",
|
||||
"wide room applauding in soft backlight"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"sceneId": 5,
|
||||
"time": "Midday",
|
||||
"location": "Quiet park bench under soft sun",
|
||||
"outfit": "olive field jacket over white shirt, navy chinos, sneakers",
|
||||
"cuts": [
|
||||
{
|
||||
"cutId": 1,
|
||||
"pose": "seated on bench",
|
||||
"action": "unwrapping sandwich",
|
||||
"camera": [
|
||||
"wide bench under dappled leaves",
|
||||
"close-up foil crackle catching sparkles"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 2,
|
||||
"pose": "bite and look up",
|
||||
"action": "watching birds",
|
||||
"camera": [
|
||||
"tight mouthful with flare peeking",
|
||||
"low up-angle to glowing canopy"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 3,
|
||||
"pose": "relaxed lean",
|
||||
"action": "closing eyes briefly",
|
||||
"camera": [
|
||||
"front push-in eyes closed in sun warmth",
|
||||
"overhead bench and soft shadow lace"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 4,
|
||||
"pose": "checking phone",
|
||||
"action": "soft smile at message",
|
||||
"camera": [
|
||||
"over-shoulder to screen in shade",
|
||||
"side profile with sun peeking lens flare"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 5,
|
||||
"pose": "standing stretch",
|
||||
"action": "deep breath hands on hips",
|
||||
"camera": [
|
||||
"rear sun halo and long shadow",
|
||||
"front medium with leaf bokeh confetti"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"sceneId": 6,
|
||||
"time": "Afternoon",
|
||||
"location": "Open office collaboration area",
|
||||
"outfit": "rolled-sleeve shirt, blazer off, vest optional, dark trousers",
|
||||
"cuts": [
|
||||
{
|
||||
"cutId": 1,
|
||||
"pose": "standing with teammates",
|
||||
"action": "high-five and laugh",
|
||||
"camera": [
|
||||
"wide group under skylight glow",
|
||||
"tight palms meeting with light burst"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 2,
|
||||
"pose": "pointing at laptop",
|
||||
"action": "explaining step-by-step",
|
||||
"camera": [
|
||||
"over-shoulder to UI reflecting in eyes",
|
||||
"front trio with bright window beams"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 3,
|
||||
"pose": "shared joke",
|
||||
"action": "covering mouth laughing",
|
||||
"camera": [
|
||||
"tight eyes creasing with sparkle",
|
||||
"side candid smiles with lens bloom"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 4,
|
||||
"pose": "sticky note placement",
|
||||
"action": "slapping idea on board",
|
||||
"camera": [
|
||||
"macro note corner catching shine",
|
||||
"front push-in to colorful board grid"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 5,
|
||||
"pose": "wrap-up clap",
|
||||
"action": "small bow to team",
|
||||
"camera": [
|
||||
"medium applause with soft halos",
|
||||
"rear shoulders rim-lit against corridor"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"sceneId": 7,
|
||||
"time": "Evening",
|
||||
"location": "Recording studio vocal booth",
|
||||
"outfit": "black henley under dark blazer, dark jeans; studio headphones, pop filter",
|
||||
"cuts": [
|
||||
{
|
||||
"cutId": 1,
|
||||
"pose": "standing at mic",
|
||||
"action": "closing eyes and singing",
|
||||
"camera": [
|
||||
"medium mic and pop filter with tube glow",
|
||||
"profile head tilt with headphone sheen"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 2,
|
||||
"pose": "one hand on headphone",
|
||||
"action": "finding pitch",
|
||||
"camera": [
|
||||
"tight hand on ear cup",
|
||||
"over-shoulder to waveform screen in control room"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 3,
|
||||
"pose": "leaning toward mic",
|
||||
"action": "delivering powerful line",
|
||||
"camera": [
|
||||
"front intense eyes past grille",
|
||||
"low angle along mic stand to face"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 4,
|
||||
"pose": "step back",
|
||||
"action": "nod to beat, smile",
|
||||
"camera": [
|
||||
"wide booth with warm bokeh bulbs",
|
||||
"tight smile reflected in glass"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 5,
|
||||
"pose": "hands open",
|
||||
"action": "finishing phrase softly",
|
||||
"camera": [
|
||||
"front soft flare across frame",
|
||||
"overhead hands lowering into light cone"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"sceneId": 8,
|
||||
"time": "Golden Hour",
|
||||
"location": "City park path with family",
|
||||
"outfit": "sand blazer, light knit, dark denim; family in cozy casual",
|
||||
"cuts": [
|
||||
{
|
||||
"cutId": 1,
|
||||
"pose": "holding partner’s hand",
|
||||
"action": "walking with child skipping ahead",
|
||||
"camera": [
|
||||
"rear wide with low sun flare",
|
||||
"front medium through tree bokeh"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 2,
|
||||
"pose": "lifting child",
|
||||
"action": "spinning gently",
|
||||
"camera": [
|
||||
"front slow shutter light trails around",
|
||||
"top-down arms forming circle with sun rim"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 3,
|
||||
"pose": "group hug",
|
||||
"action": "closing eyes contentedly",
|
||||
"camera": [
|
||||
"tight embrace hands with ring glint",
|
||||
"side cheek-to-hair halo"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 4,
|
||||
"pose": "pointing to sky",
|
||||
"action": "showing plane to child",
|
||||
"camera": [
|
||||
"up-angle to contrail through warm haze",
|
||||
"front medium faces reflecting sky"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 5,
|
||||
"pose": "hands intertwined",
|
||||
"action": "walking toward camera",
|
||||
"camera": [
|
||||
"front slow push with golden confetti bokeh",
|
||||
"low angle on joined hands swinging"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"sceneId": 9,
|
||||
"time": "Night",
|
||||
"location": "City viewpoint with beautiful skyline",
|
||||
"outfit": "charcoal overcoat, black turtleneck, tailored trousers",
|
||||
"cuts": [
|
||||
{
|
||||
"cutId": 1,
|
||||
"pose": "leaning on railing",
|
||||
"action": "taking in skyline",
|
||||
"camera": [
|
||||
"wide skyline as glittering backdrop",
|
||||
"profile rim light from city glow"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 2,
|
||||
"pose": "deep breath",
|
||||
"action": "exhale mist into night",
|
||||
"camera": [
|
||||
"tight breath vapor lit by neon",
|
||||
"rear silhouette against bokeh lights"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 3,
|
||||
"pose": "phone photo",
|
||||
"action": "capturing skyline",
|
||||
"camera": [
|
||||
"over-shoulder to bright screen framing towers",
|
||||
"low angle to phone and light crown above"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 4,
|
||||
"pose": "hands in pockets",
|
||||
"action": "swaying to distant music",
|
||||
"camera": [
|
||||
"medium chest-up with drifting car streaks",
|
||||
"tight shoe tapping in puddle reflection"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 5,
|
||||
"pose": "confident gaze",
|
||||
"action": "looking past camera",
|
||||
"camera": [
|
||||
"front tight eyes with city sparkles",
|
||||
"top-down platform grid glimmering"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"sceneId": 10,
|
||||
"time": "Night",
|
||||
"location": "Office district streets after hours",
|
||||
"outfit": "dark blazer, open collar shirt, slim trousers, chelsea boots",
|
||||
"cuts": [
|
||||
{
|
||||
"cutId": 1,
|
||||
"pose": "walking alone",
|
||||
"action": "hands in pockets",
|
||||
"camera": [
|
||||
"long-lens frontal with pearl-like streetlights",
|
||||
"rear follow on wet pavement reflections"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 2,
|
||||
"pose": "pause under lamp",
|
||||
"action": "looking up between towers",
|
||||
"camera": [
|
||||
"upward angle of converging buildings and lamp star",
|
||||
"side silhouette against lobby glow"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 3,
|
||||
"pose": "check messages",
|
||||
"action": "small nod of relief",
|
||||
"camera": [
|
||||
"over-shoulder phone light on face",
|
||||
"handheld parallax of glass light columns"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 4,
|
||||
"pose": "crossing street",
|
||||
"action": "steady stride",
|
||||
"camera": [
|
||||
"wide zebra stripes with mirror reflections",
|
||||
"low angle heel strike and passing headlight streak"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 5,
|
||||
"pose": "brief smile",
|
||||
"action": "exhale, continue walking",
|
||||
"camera": [
|
||||
"tight smile with neon glimmer",
|
||||
"front slow push through flare streaks"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"sceneId": 11,
|
||||
"time": "Night",
|
||||
"location": "Home living room, warm lamps",
|
||||
"outfit": "soft cardigan over tee, lounge chinos, socks",
|
||||
"cuts": [
|
||||
{
|
||||
"cutId": 1,
|
||||
"pose": "sinking into sofa",
|
||||
"action": "deep relieved breath",
|
||||
"camera": [
|
||||
"medium cozy frame with lamp bloom",
|
||||
"low angle to floor lamp starburst"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 2,
|
||||
"pose": "family photo glance",
|
||||
"action": "gentle smile at frame",
|
||||
"camera": [
|
||||
"close-up photo glass catching sparkle",
|
||||
"side hand brushing frame with glint"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 3,
|
||||
"pose": "stretch and yawn",
|
||||
"action": "neck roll, relaxed shoulders",
|
||||
"camera": [
|
||||
"front medium as light wraps softly",
|
||||
"rear silhouette against curtained window halo"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 4,
|
||||
"pose": "notebook moment",
|
||||
"action": "jotting tomorrow’s plan",
|
||||
"camera": [
|
||||
"top-down page and pen tip glint",
|
||||
"three-quarter profile calm focus"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 5,
|
||||
"pose": "closing lights",
|
||||
"action": "switching lamp off",
|
||||
"camera": [
|
||||
"tight finger on switch—tiny spark",
|
||||
"wide room dimming to city twinkle outside"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
68
src/musicspot_generator/cetridesete/scenes2.json
Normal file
68
src/musicspot_generator/cetridesete/scenes2.json
Normal file
@ -0,0 +1,68 @@
|
||||
{
|
||||
"song": {
|
||||
"title": "Četrdesete: Svjetlo kroz Maglu",
|
||||
"artist": "Radni Front",
|
||||
"genre": "Cinematic Pop/Rock",
|
||||
"mood": "Gritty, uplifting, hopeful"
|
||||
},
|
||||
"character": {
|
||||
"bodyType": "average build, slightly athletic, in his 40s",
|
||||
"hairStyle": "short side-part, light stubble",
|
||||
"accessories": "leather messenger bag, analog watch, simple ring"
|
||||
},
|
||||
"scenes": [
|
||||
{
|
||||
"sceneId": 1,
|
||||
"time": "Morning",
|
||||
"location": "Foggy city street at dawn",
|
||||
"outfit": "down jacket, scarf, jeans, boots, t-shirt, hiphop style",
|
||||
"cuts": [
|
||||
{
|
||||
"cutId": 1,
|
||||
"pose": "walking ",
|
||||
"action": "exhaling visible breath in cold air",
|
||||
"camera": [
|
||||
"full-body frontal walk through light shafts in fog",
|
||||
"low angle on shoes splashing a thin puddle"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 2,
|
||||
"pose": "walking hands in pockets",
|
||||
"action": "",
|
||||
"camera": [
|
||||
"close-up on watch face catching sun flare",
|
||||
"three-quarter side track across zebra lines"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 3,
|
||||
"pose": "standing hands in pockets",
|
||||
"action": "",
|
||||
"camera": [
|
||||
"macro fingers on cup sleeve with steam",
|
||||
"profile head-and-shoulders backlit by hazy sun"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 4,
|
||||
"pose": "steady stride",
|
||||
"action": "adjusting scarf in breeze",
|
||||
"camera": [
|
||||
"telephoto compression down foggy avenue",
|
||||
"rear follow shot with scarf rim-lit"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 5,
|
||||
"pose": "determined gaze",
|
||||
"action": "looking ahead into sunlight",
|
||||
"camera": [
|
||||
"tight face with soft lens bloom",
|
||||
"over-shoulder toward blinding sky gap"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
src/musicspot_generator/cetridesete/song.mp3
Normal file
BIN
src/musicspot_generator/cetridesete/song.mp3
Normal file
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -4,6 +4,7 @@ import fs from 'fs/promises';
|
||||
|
||||
import { logger } from '../lib/logger';
|
||||
import { callOpenAI } from '../lib/openai';
|
||||
import { callLMStudio } from '../lib/lmstudio';
|
||||
import { generateImage as generateFaceImage } from '../lib/image-generator-face';
|
||||
|
||||
dotenv.config();
|
||||
@ -43,7 +44,7 @@ interface Server {
|
||||
}
|
||||
|
||||
const DEFAULT_SIZE: Size = { width: 720, height: 1280 };
|
||||
const FOLDER = process.argv[2] || process.env.MUSICSPOT_FOLDER || 'oputstise';
|
||||
const FOLDER = process.argv[2] || process.env.MUSICSPOT_FOLDER || 'zagreb';
|
||||
const FOLDER_SAFE = FOLDER.replace(/[/\\?%*:|"<>]/g, '_');
|
||||
const FACE_SRC = path.resolve(`src/musicspot_generator/${FOLDER}/face.png`);
|
||||
const GENERATED_DIR = path.resolve('generated');
|
||||
@ -130,6 +131,10 @@ Describe clearly and concretely:
|
||||
- Action/Expression: ${cut.action}
|
||||
- Lighting: please be creative and make beautiful lighting, I like something like luminous, colorful
|
||||
|
||||
Important:
|
||||
- adjust the outfit based on the camera framing, describe only what is visible.
|
||||
For example, if the framing is a close-up of the face, do not mention the outfit at all.
|
||||
|
||||
Only respond with JSON.
|
||||
`.trim();
|
||||
}
|
||||
@ -143,6 +148,25 @@ async function getImagePromptFromOpenAI(req: string): Promise<string> {
|
||||
return prompt.trim();
|
||||
}
|
||||
|
||||
const IMAGE_PROMPT_PROVIDER = (process.env.IMAGE_PROMPT_PROVIDER || 'lmstudio').toLowerCase();
|
||||
|
||||
async function getImagePromptFromLMStudio(req: string): Promise<string> {
|
||||
const res = await callLMStudio(req);
|
||||
const prompt = res?.imagePrompt || res?.image_prompt || res?.prompt;
|
||||
if (!prompt || typeof prompt !== 'string') {
|
||||
throw new Error('LM Studio failed to return imagePrompt JSON.');
|
||||
}
|
||||
return prompt.trim();
|
||||
}
|
||||
|
||||
async function getImagePrompt(req: string): Promise<string> {
|
||||
if (IMAGE_PROMPT_PROVIDER === 'openai') {
|
||||
return getImagePromptFromOpenAI(req);
|
||||
}
|
||||
// default to LM Studio
|
||||
return getImagePromptFromLMStudio(req);
|
||||
}
|
||||
|
||||
function pickServer(servers: Server[], idx: number): Server {
|
||||
if (servers.length === 0) {
|
||||
throw new Error('No servers configured.');
|
||||
@ -197,10 +221,10 @@ async function main() {
|
||||
const imgPromptReq = buildImagePromptRequest(cfg.character, scene, cut, cameraIntent);
|
||||
let imagePrompt: string;
|
||||
try {
|
||||
imagePrompt = await getImagePromptFromOpenAI(imgPromptReq);
|
||||
imagePrompt = await getImagePrompt(imgPromptReq);
|
||||
} catch (err) {
|
||||
logger.error(
|
||||
`OpenAI image prompt failed for scene ${scene.sceneId} cut ${cut.cutId} cam ${variantIndex}: ${err}`
|
||||
`${IMAGE_PROMPT_PROVIDER.toUpperCase()} image prompt failed for scene ${scene.sceneId} cut ${cut.cutId} cam ${variantIndex}: ${err}`
|
||||
);
|
||||
continue;
|
||||
}
|
||||
|
||||
Binary file not shown.
@ -43,7 +43,7 @@ interface Server {
|
||||
}
|
||||
|
||||
const DEFAULT_SIZE: Size = { width: 720, height: 1280 };
|
||||
const FOLDER = process.argv[2] || process.env.MUSICSPOT_FOLDER || 'oputstise';
|
||||
const FOLDER = process.argv[2] || process.env.MUSICSPOT_FOLDER || 'zagreb';
|
||||
const FOLDER_SAFE = FOLDER.replace(/[/\\?%*:|"<>]/g, '_');
|
||||
const GENERATED_DIR = path.resolve('generated');
|
||||
|
||||
@ -234,7 +234,7 @@ async function main() {
|
||||
serverForVideo.baseUrl!,
|
||||
serverForVideo.outputDir!,
|
||||
DEFAULT_SIZE,
|
||||
true,
|
||||
false,
|
||||
true
|
||||
);
|
||||
|
||||
|
||||
BIN
src/musicspot_generator/zagreb/face.png
Normal file
BIN
src/musicspot_generator/zagreb/face.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.9 MiB |
834
src/musicspot_generator/zagreb/scenes.json
Normal file
834
src/musicspot_generator/zagreb/scenes.json
Normal file
@ -0,0 +1,834 @@
|
||||
{
|
||||
"character": {
|
||||
"bodyType": "average",
|
||||
"hairStyle": "long blonde hair tied in a man bun, white skin, blue eyes, beard"
|
||||
},
|
||||
"scenes": [
|
||||
{
|
||||
"sceneId": 1,
|
||||
"season": "Autumn",
|
||||
"time": "Evening",
|
||||
"location": "Zagreb skyline viewpoint with light fog and warm city lights",
|
||||
"outfit": "dark gray adidas joggers with white side stripes, black heavyweight hoodie (hood down), light quilted autumn jacket in charcoal, white adidas sneakers slightly scuffed, black knit beanie",
|
||||
"cuts": [
|
||||
{
|
||||
"cutId": 1,
|
||||
"pose": "standing at viewpoint railing",
|
||||
"action": "looking over city while exhaling misty breath",
|
||||
"camera": [
|
||||
"fullbody shot with skyline and fog glow",
|
||||
"closeup on eyes and misty breath",
|
||||
"back shot framed by city lights"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 2,
|
||||
"pose": "hands in pockets",
|
||||
"action": "nodding head slowly to beat",
|
||||
"camera": [
|
||||
"fullbody shot silhouetted against skyline",
|
||||
"closeup on subtle head nod and beard",
|
||||
"side shot with drifting fog"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 3,
|
||||
"pose": "feet near railing edge",
|
||||
"action": "dancing: tight heel-toe shuffle forward and back, ankles loose, arms swinging low in relaxed groove",
|
||||
"camera": [
|
||||
"fullbody shot wide skyline backdrop",
|
||||
"closeup on footwork over wet stone",
|
||||
"side shot tracking along railing"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 4,
|
||||
"pose": "one arm lifted",
|
||||
"action": "dancing: step-touch left/right with rolling shoulders and head bobs on the snare",
|
||||
"camera": [
|
||||
"fullbody shot low angle, lights behind",
|
||||
"closeup on rolling shoulders and hoodie fabric",
|
||||
"back shot into glowing fog"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 5,
|
||||
"pose": "leaning against railing",
|
||||
"action": "staring straight into lens with confident half-smile",
|
||||
"camera": [
|
||||
"fullbody shot framed by rail",
|
||||
"closeup on confident stare",
|
||||
"side shot with fog drift"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"sceneId": 2,
|
||||
"season": "Autumn",
|
||||
"time": "Day",
|
||||
"location": "Inside Zagreb blue tram, sunlight streaks through windows",
|
||||
"outfit": "mid-blue jeans, white cotton t-shirt under light gray zip hoodie, navy bomber jacket, clean white adidas sneakers, simple black wristwatch",
|
||||
"cuts": [
|
||||
{
|
||||
"cutId": 1,
|
||||
"pose": "sitting by window",
|
||||
"action": "writing lyrics in notebook as city blurs past",
|
||||
"camera": [
|
||||
"fullbody shot seated by window",
|
||||
"closeup on pen and notebook",
|
||||
"side shot with city motion streaks"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 2,
|
||||
"pose": "standing near door holding rail",
|
||||
"action": "dancing: rail-hold groove with shoulder ticks and toe taps in sync with tram sway",
|
||||
"camera": [
|
||||
"fullbody shot vertical down tram aisle",
|
||||
"closeup on toe taps on rubber floor",
|
||||
"side shot from opposite pole"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 3,
|
||||
"pose": "leaning on glass",
|
||||
"action": "fogging window with breath then drawing a small heart",
|
||||
"camera": [
|
||||
"fullbody shot in window bay",
|
||||
"closeup on fingertip tracing heart",
|
||||
"side shot with sunlight flare"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 4,
|
||||
"pose": "feet apart, both hands on strap",
|
||||
"action": "dancing: micro two-step in place with chest pops on backbeat",
|
||||
"camera": [
|
||||
"fullbody shot in aisle",
|
||||
"closeup on chest pops through hoodie",
|
||||
"back shot down toward exit door"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 5,
|
||||
"pose": "stepping off tram",
|
||||
"action": "placing foot on wet pavement and glancing up",
|
||||
"camera": [
|
||||
"fullbody shot exiting with tram behind",
|
||||
"closeup on sneaker hitting puddle",
|
||||
"side shot tracking walk away"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"sceneId": 3,
|
||||
"season": "Autumn",
|
||||
"time": "Morning",
|
||||
"location": "Dolac market with red umbrellas, crisp air",
|
||||
"outfit": "black adidas joggers, cream knit t-shirt under a denim trucker jacket, white adidas sneakers with gray socks, fingerless knit gloves",
|
||||
"cuts": [
|
||||
{
|
||||
"cutId": 1,
|
||||
"pose": "walking through market",
|
||||
"action": "nodding to vendors and smiling",
|
||||
"camera": [
|
||||
"fullbody shot weaving among umbrellas",
|
||||
"closeup on smile and beard",
|
||||
"side shot with shoppers blurred"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 2,
|
||||
"pose": "open space between stalls",
|
||||
"action": "dancing: pivot-spin on heel, one arm slicing air, stopping on beat",
|
||||
"camera": [
|
||||
"fullbody shot centered under umbrellas",
|
||||
"closeup on pivoting sneaker",
|
||||
"back shot with umbrellas radiating"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 3,
|
||||
"pose": "holding an apple",
|
||||
"action": "taking a bite and chuckling",
|
||||
"camera": [
|
||||
"fullbody shot framed by produce colors",
|
||||
"closeup on bite and beard",
|
||||
"side shot with vendor in bokeh"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 4,
|
||||
"pose": "near stall edge",
|
||||
"action": "dancing: side-step bounce with finger snaps and quick shoulder check",
|
||||
"camera": [
|
||||
"fullbody shot on cobblestone",
|
||||
"closeup on finger snaps",
|
||||
"side shot past crates of apples"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 5,
|
||||
"pose": "sitting on bench",
|
||||
"action": "exhaling a long misty breath up to sky",
|
||||
"camera": [
|
||||
"fullbody shot bench among umbrellas",
|
||||
"closeup on breath plume",
|
||||
"back shot to morning light"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"sceneId": 4,
|
||||
"season": "Autumn",
|
||||
"time": "Afternoon",
|
||||
"location": "Graffiti alley glowing with neon tubes and hanging fog",
|
||||
"outfit": "charcoal adidas joggers, navy heavyweight hoodie layered under a black denim jacket, white adidas sneakers worn at toes, charcoal beanie, silver chain",
|
||||
"cuts": [
|
||||
{
|
||||
"cutId": 1,
|
||||
"pose": "line with two friends",
|
||||
"action": "dancing: synchronized stomp-stomp-slide combo with shoulder hits (together)",
|
||||
"camera": [
|
||||
"fullbody shot of trio in wide alley",
|
||||
"closeup on synchronized sneakers",
|
||||
"side shot panning across the line"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 2,
|
||||
"pose": "center of small circle",
|
||||
"action": "dancing: knee spin to floor to knee up while friends clap and hype (together focus on him)",
|
||||
"camera": [
|
||||
"fullbody shot near ground level",
|
||||
"closeup on balancing palm and sleeve",
|
||||
"back shot showing friends clapping"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 3,
|
||||
"pose": "leaning on wall",
|
||||
"action": "rapping directly to camera, neon flicker behind",
|
||||
"camera": [
|
||||
"fullbody shot against graffiti panel",
|
||||
"closeup on lips and breath in cold air",
|
||||
"side shot with neon reflections"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 4,
|
||||
"pose": "shoulder to shoulder with friends",
|
||||
"action": "dancing: side-step shuffle with hand waves and head whips (together)",
|
||||
"camera": [
|
||||
"fullbody shot three-wide groove",
|
||||
"closeup on hand waves across frame",
|
||||
"back shot down glowing alley"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 5,
|
||||
"pose": "arms stretched open",
|
||||
"action": "looking up as fog lifts around lights",
|
||||
"camera": [
|
||||
"fullbody shot silhouette in neon haze",
|
||||
"closeup on eyes lit by tubes",
|
||||
"side shot past a painted mural"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"sceneId": 5,
|
||||
"season": "Autumn",
|
||||
"time": "Evening",
|
||||
"location": "Sava riverbank at golden hour with low mist",
|
||||
"outfit": "mid-wash jeans, black long-sleeve tee under olive lightweight parka, white adidas sneakers with darker laces, gray knit scarf",
|
||||
"cuts": [
|
||||
{
|
||||
"cutId": 1,
|
||||
"pose": "walking riverside",
|
||||
"action": "dancing: loose arm swing with heel peels and forward glide",
|
||||
"camera": [
|
||||
"fullbody shot along river path",
|
||||
"closeup on heel peel on damp gravel",
|
||||
"side shot with river reflections"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 2,
|
||||
"pose": "hands in parka pockets",
|
||||
"action": "gazing at sun reflecting on water",
|
||||
"camera": [
|
||||
"fullbody shot silhouette at bank",
|
||||
"closeup on eyes catching gold",
|
||||
"back shot toward low sun"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 3,
|
||||
"pose": "standing by railing",
|
||||
"action": "tapping rhythm on rail with knuckles",
|
||||
"camera": [
|
||||
"fullbody shot framed by rail lines",
|
||||
"closeup on tapping knuckles",
|
||||
"side shot with mist ribboning"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 4,
|
||||
"pose": "open space at water edge",
|
||||
"action": "dancing: slide-to-cross step with chest pop accent and arm sweep",
|
||||
"camera": [
|
||||
"fullbody shot river behind",
|
||||
"closeup on chest pop under tee",
|
||||
"side shot tracking along water"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 5,
|
||||
"pose": "head tilted back",
|
||||
"action": "breathing out slowly, eyes closed",
|
||||
"camera": [
|
||||
"fullbody shot with fading sun",
|
||||
"closeup on breath plume dispersing",
|
||||
"back shot to amber sky"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"sceneId": 6,
|
||||
"season": "Autumn",
|
||||
"time": "Night",
|
||||
"location": "Ban Jelačić Square with neon ads and light fog",
|
||||
"outfit": "black adidas joggers, gray t-shirt, slate bomber jacket, white adidas sneakers, fingerless gloves",
|
||||
"cuts": [
|
||||
{
|
||||
"cutId": 1,
|
||||
"pose": "group line facing camera",
|
||||
"action": "dancing: bounce-bounce-step pattern with knee lifts in unison (together)",
|
||||
"camera": [
|
||||
"fullbody shot of group centered in square",
|
||||
"closeup on synchronized knees",
|
||||
"side shot with neon bokeh"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 2,
|
||||
"pose": "front of dance circle",
|
||||
"action": "dancing: spin in, arms open, stop on beat with chest hit (together feature)",
|
||||
"camera": [
|
||||
"fullbody shot in circle opening",
|
||||
"closeup on arm extension and jacket fold",
|
||||
"back shot toward statue and lights"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 3,
|
||||
"pose": "friends behind clapping",
|
||||
"action": "rapping at lens with fog swirling",
|
||||
"camera": [
|
||||
"fullbody shot square tiles reflecting",
|
||||
"closeup on lips and beard",
|
||||
"side shot past cheering friends"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 4,
|
||||
"pose": "two friends flanking",
|
||||
"action": "dancing: traveling shuffle diagonally with toe digs and head tilts (together)",
|
||||
"camera": [
|
||||
"fullbody shot three-across traveling",
|
||||
"closeup on toe digs kicking sparks of water",
|
||||
"back shot crossing square"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 5,
|
||||
"pose": "hands on hips",
|
||||
"action": "smiling up at neon glow",
|
||||
"camera": [
|
||||
"fullbody shot slight low angle",
|
||||
"closeup on smiling eyes",
|
||||
"side shot with tram passing blur"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"sceneId": 7,
|
||||
"season": "Autumn",
|
||||
"time": "Day",
|
||||
"location": "Corner café with fogged windows and warm Edison bulbs",
|
||||
"outfit": "dark jeans, soft oatmeal t-shirt, forest-green hoodie under tan canvas jacket, white adidas sneakers, wool cap",
|
||||
"cuts": [
|
||||
{
|
||||
"cutId": 1,
|
||||
"pose": "seated with two friends at table",
|
||||
"action": "dancing: table-top beat — finger drumming while shoulders groove (together)",
|
||||
"camera": [
|
||||
"fullbody shot across small table",
|
||||
"closeup on finger rhythms on wood",
|
||||
"side shot with fogged window"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 2,
|
||||
"pose": "standing by chair facing friend",
|
||||
"action": "dancing: mirrored mini two-step and clap on two (together)",
|
||||
"camera": [
|
||||
"fullbody shot of paired groove",
|
||||
"closeup on clapping hands",
|
||||
"back shot toward bar lights"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 3,
|
||||
"pose": "holding coffee cup",
|
||||
"action": "blowing steam off cup and smirking",
|
||||
"camera": [
|
||||
"fullbody shot seated relaxed",
|
||||
"closeup on steam curling",
|
||||
"side shot with bulbs in bokeh"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 4,
|
||||
"pose": "friends around hyping",
|
||||
"action": "dancing: quick spin ending in finger point to camera (together energy)",
|
||||
"camera": [
|
||||
"fullbody shot between tables",
|
||||
"closeup on finger point and grin",
|
||||
"back shot past other patrons"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 5,
|
||||
"pose": "leaning back in chair",
|
||||
"action": "exhaling lightly, calm confidence",
|
||||
"camera": [
|
||||
"fullbody shot reclined posture",
|
||||
"closeup on relaxed eyes",
|
||||
"side shot across window condensation"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"sceneId": 8,
|
||||
"season": "Autumn",
|
||||
"time": "Evening",
|
||||
"location": "Old Zagreb apartment balcony with laundry lines and city fog",
|
||||
"outfit": "black adidas joggers, slate long-sleeve t-shirt under navy quilted vest, white adidas sneakers, knit scarf",
|
||||
"cuts": [
|
||||
{
|
||||
"cutId": 1,
|
||||
"pose": "leaning on rail under warm bulb",
|
||||
"action": "writing lyric line in notebook",
|
||||
"camera": [
|
||||
"fullbody shot balcony edge",
|
||||
"closeup on pen and paper",
|
||||
"side shot past swaying laundry"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 2,
|
||||
"pose": "hands lifted",
|
||||
"action": "dancing: shoulder rolls with slow side travel, wrists loose",
|
||||
"camera": [
|
||||
"fullbody shot city behind",
|
||||
"closeup on rolling shoulders",
|
||||
"back shot toward foggy rooftops"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 3,
|
||||
"pose": "center balcony tile",
|
||||
"action": "dancing: foot slide-cross with quick head nod accents",
|
||||
"camera": [
|
||||
"fullbody shot top-down slight",
|
||||
"closeup on sliding sneakers on tiles",
|
||||
"side shot along rail"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 4,
|
||||
"pose": "headphones on",
|
||||
"action": "nodding in time, eyes closed",
|
||||
"camera": [
|
||||
"fullbody shot under balcony lamp",
|
||||
"closeup on serene face and beard",
|
||||
"back shot to dim streetlights"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 5,
|
||||
"pose": "sitting on chair",
|
||||
"action": "long breath into cold night air",
|
||||
"camera": [
|
||||
"fullbody shot with chair legs angled",
|
||||
"closeup on breath plume",
|
||||
"side shot from doorway"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"sceneId": 9,
|
||||
"season": "Autumn",
|
||||
"time": "Day",
|
||||
"location": "Neighborhood street football court, leaves on ground",
|
||||
"outfit": "navy tracksuit top, black adidas joggers, white adidas sneakers with turf dust, simple beanie",
|
||||
"cuts": [
|
||||
{
|
||||
"cutId": 1,
|
||||
"pose": "triangle with friends",
|
||||
"action": "passing football quickly between feet (together)",
|
||||
"camera": [
|
||||
"fullbody shot wide half-court",
|
||||
"closeup on ball taps and passes",
|
||||
"side shot through metal fence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 2,
|
||||
"pose": "center circle",
|
||||
"action": "dancing: soccer-shuffle — toe taps on ball with hip sway (together)",
|
||||
"camera": [
|
||||
"fullbody shot center circle",
|
||||
"closeup on rapid toe taps",
|
||||
"back shot with friends cheering"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 3,
|
||||
"pose": "near goalpost",
|
||||
"action": "dancing: step-over fake into spin and pose (solo flair)",
|
||||
"camera": [
|
||||
"fullbody shot near net",
|
||||
"closeup on foot feint over ball",
|
||||
"side shot across goal mesh"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 4,
|
||||
"pose": "leaning on post",
|
||||
"action": "chuckling at camera, breath visible",
|
||||
"camera": [
|
||||
"fullbody shot framed by net",
|
||||
"closeup on smile and breath",
|
||||
"back shot to autumn trees"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 5,
|
||||
"pose": "group line on sideline",
|
||||
"action": "dancing: circle footwork — alternating shuffles in and out (together)",
|
||||
"camera": [
|
||||
"fullbody shot line routine",
|
||||
"closeup on synchronized steps",
|
||||
"side shot along chalk line"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"sceneId": 10,
|
||||
"season": "Autumn",
|
||||
"time": "Night",
|
||||
"location": "Rainy cobblestone street with neon reflections",
|
||||
"outfit": "black jeans, charcoal hoodie with hood up, water-resistant black shell jacket, white adidas sneakers wet with rain",
|
||||
"cuts": [
|
||||
{
|
||||
"cutId": 1,
|
||||
"pose": "mid-street",
|
||||
"action": "kicking puddle to splash arcs of neon water",
|
||||
"camera": [
|
||||
"fullbody shot centered on reflections",
|
||||
"closeup on splash around sneaker",
|
||||
"back shot with neon signs"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 2,
|
||||
"pose": "feet planted wide",
|
||||
"action": "dancing: chest pulse on beat with slow head roll, rain dripping off brim",
|
||||
"camera": [
|
||||
"fullbody shot silhouette in rain",
|
||||
"closeup on chest pulse through hoodie",
|
||||
"side shot with water streaks"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 3,
|
||||
"pose": "arms open",
|
||||
"action": "letting rain hit face, eyes closed",
|
||||
"camera": [
|
||||
"fullbody shot T-pose slight",
|
||||
"closeup on raindrops on beard",
|
||||
"back shot with street glow"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 4,
|
||||
"pose": "pivot foot ready",
|
||||
"action": "dancing: 360° rain spin with heel skid and jacket flare",
|
||||
"camera": [
|
||||
"fullbody shot tracking spin",
|
||||
"closeup on heel skid and spray",
|
||||
"side shot following arc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 5,
|
||||
"pose": "hood low",
|
||||
"action": "staring into lens, breath steaming",
|
||||
"camera": [
|
||||
"fullbody shot still in rain",
|
||||
"closeup on intense eyes",
|
||||
"back shot with wet cobbles"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"sceneId": 11,
|
||||
"season": "Autumn",
|
||||
"time": "Morning",
|
||||
"location": "Zagreb Cathedral steps in pale fog",
|
||||
"outfit": "dark jeans, black crew tee, gray wool overcoat, white adidas sneakers, knit gloves",
|
||||
"cuts": [
|
||||
{
|
||||
"cutId": 1,
|
||||
"pose": "sitting mid-steps",
|
||||
"action": "writing lyrics steadily",
|
||||
"camera": [
|
||||
"fullbody shot wide steps and spires",
|
||||
"closeup on pen strokes",
|
||||
"side shot with drifting fog"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 2,
|
||||
"pose": "standing arms open",
|
||||
"action": "exhaling long breath to sky",
|
||||
"camera": [
|
||||
"fullbody shot facing façade",
|
||||
"closeup on breath plume",
|
||||
"back shot to gothic towers"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 3,
|
||||
"pose": "cleared area on steps",
|
||||
"action": "dancing: step-tap pattern up two steps, back down, snap on beat",
|
||||
"camera": [
|
||||
"fullbody shot across steps",
|
||||
"closeup on step taps",
|
||||
"side shot along handrail"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 4,
|
||||
"pose": "headphones on",
|
||||
"action": "slow nod timing to kick and snare",
|
||||
"camera": [
|
||||
"fullbody shot centered on landing",
|
||||
"closeup on nod and beard",
|
||||
"back shot to open square"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 5,
|
||||
"pose": "hands in coat pockets",
|
||||
"action": "looking up the tower silently",
|
||||
"camera": [
|
||||
"fullbody shot low angle",
|
||||
"closeup on upward gaze",
|
||||
"side shot with stone texture"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"sceneId": 12,
|
||||
"season": "Autumn",
|
||||
"time": "Night",
|
||||
"location": "Lantern-lit garden path with candle clusters and light ground fog",
|
||||
"outfit": "black adidas joggers, charcoal long-sleeve tee, midnight blue bomber, white adidas sneakers catching candle glints",
|
||||
"cuts": [
|
||||
{
|
||||
"cutId": 1,
|
||||
"pose": "walking along lantern path",
|
||||
"action": "lifting a lantern and holding it forward",
|
||||
"camera": [
|
||||
"fullbody shot through lantern aisle",
|
||||
"closeup on lantern glow on face",
|
||||
"back shot with lantern trail"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 2,
|
||||
"pose": "small clearing",
|
||||
"action": "dancing: lantern in left hand, slow side-glide with soft wrist circles",
|
||||
"camera": [
|
||||
"fullbody shot framed by candles",
|
||||
"closeup on circling wrist and flame",
|
||||
"side shot across floating fog"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 3,
|
||||
"pose": "at small garden table",
|
||||
"action": "resting chin on hands, dreamy stare",
|
||||
"camera": [
|
||||
"fullbody shot seated with lantern foreground",
|
||||
"closeup on gentle eyes",
|
||||
"back shot to candle clusters"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 4,
|
||||
"pose": "beneath hanging lights",
|
||||
"action": "dancing: slow turn with arm rise, ending in still pose under lights",
|
||||
"camera": [
|
||||
"fullbody shot low angle to lights",
|
||||
"closeup on raised palm",
|
||||
"side shot passing candle bokeh"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 5,
|
||||
"pose": "bare path",
|
||||
"action": "spinning lightly as jacket hem flows",
|
||||
"camera": [
|
||||
"fullbody shot tracking spin",
|
||||
"closeup on jacket swirl",
|
||||
"back shot retreating down path"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"sceneId": 13,
|
||||
"season": "Autumn",
|
||||
"time": "Evening",
|
||||
"location": "Warm recording studio with wooden panels, microphone on stand with pop filter, soft amber lamps",
|
||||
"outfit": "charcoal adidas joggers, black heavyweight t-shirt, dark zip hoodie open at chest, studio headphones, white adidas sneakers",
|
||||
"cuts": [
|
||||
{
|
||||
"cutId": 1,
|
||||
"pose": "standing at mic, one hand on headphones",
|
||||
"action": "singing through pop filter with eyes closed",
|
||||
"camera": [
|
||||
"fullbody shot booth and panels",
|
||||
"closeup on lips behind pop filter fabric",
|
||||
"side shot across mic arm"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 2,
|
||||
"pose": "one hand gripping mic stand",
|
||||
"action": "dancing: subtle knee bounce and torso sway while holding pitch",
|
||||
"camera": [
|
||||
"fullbody shot between panels",
|
||||
"closeup on torso sway and hoodie folds",
|
||||
"back shot from behind pop filter"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 3,
|
||||
"pose": "leaning slightly toward mic",
|
||||
"action": "soft smile between lines, breath visible",
|
||||
"camera": [
|
||||
"fullbody shot centered on stand",
|
||||
"closeup on smile and beard texture",
|
||||
"side shot with amber lamp flare"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 4,
|
||||
"pose": "adjusting headphones",
|
||||
"action": "dancing: micro step-touch in place with shoulder ticks as chorus hits",
|
||||
"camera": [
|
||||
"fullbody shot framed by acoustic panels",
|
||||
"closeup on headphone cup and hand",
|
||||
"back shot over shoulder into booth glass"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 5,
|
||||
"pose": "stool behind mic",
|
||||
"action": "holding lyric sheet steady, one line delivered",
|
||||
"camera": [
|
||||
"fullbody shot seated by stand",
|
||||
"closeup on lyric sheet print",
|
||||
"side shot past pop filter ring"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"sceneId": 14,
|
||||
"season": "Autumn",
|
||||
"time": "Day",
|
||||
"location": "Minimalist white studio booth, diffused panels, microphone with pop filter",
|
||||
"outfit": "light gray adidas joggers, crisp white t-shirt, soft white zip hoodie, clean white adidas sneakers, over-ear studio headphones",
|
||||
"cuts": [
|
||||
{
|
||||
"cutId": 1,
|
||||
"pose": "sitting on white stool at mic",
|
||||
"action": "singing gently into pop filter with steady breath",
|
||||
"camera": [
|
||||
"fullbody shot bright white booth",
|
||||
"closeup on mouth behind pop fabric",
|
||||
"side shot along mic arm and cable"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 2,
|
||||
"pose": "standing, lyric sheet in left hand",
|
||||
"action": "dancing: soft sway with sheet hand marking the beat while delivering a phrase",
|
||||
"camera": [
|
||||
"fullbody shot against white wall",
|
||||
"closeup on sheet hand pulsing beat",
|
||||
"back shot to frosted panel glow"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 3,
|
||||
"pose": "head slightly tilted",
|
||||
"action": "smiling at the take, exhale visible in cool booth",
|
||||
"camera": [
|
||||
"fullbody shot centered in booth",
|
||||
"closeup on gentle smile",
|
||||
"side shot with panel edge parallax"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 4,
|
||||
"pose": "hands lightly on headphones",
|
||||
"action": "dancing: tiny step-rock left-right, shoulders ticking to metronome",
|
||||
"camera": [
|
||||
"fullbody shot with mic foreground",
|
||||
"closeup on headphone cushions and fingers",
|
||||
"back shot over shoulder to pop filter"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cutId": 5,
|
||||
"pose": "one hand on mic stand",
|
||||
"action": "holding final note clean through pop filter",
|
||||
"camera": [
|
||||
"fullbody shot with stand and cable",
|
||||
"closeup on pop filter mesh catching light",
|
||||
"side shot from booth door"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
src/musicspot_generator/zagreb/song.mp3
Normal file
BIN
src/musicspot_generator/zagreb/song.mp3
Normal file
Binary file not shown.
Reference in New Issue
Block a user