save changes

This commit is contained in:
2025-09-17 19:59:53 +02:00
parent b153826a0d
commit f8adaf050e
14 changed files with 1979 additions and 499 deletions

View File

@ -216,7 +216,7 @@
},
"63": {
"inputs": {
"frame_rate": 32,
"frame_rate": 25,
"loop_count": 0,
"filename_prefix": "RADOMVIDEOMAKERVIDEO",
"format": "video/h264-mp4",

View File

@ -216,7 +216,7 @@
},
"63": {
"inputs": {
"frame_rate": 32,
"frame_rate": 25,
"loop_count": 0,
"filename_prefix": "wan22_",
"format": "video/h264-mp4",

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

View 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 partners 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 tomorrows 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"
]
}
]
}
]
}

View 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"
]
}
]
}
]
}

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -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;
}

View File

@ -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
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

View 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"
]
}
]
}
]
}

Binary file not shown.