vibe-aigc 0.6.3__py3-none-any.whl → 0.7.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
vibe_aigc/knowledge.py CHANGED
@@ -112,11 +112,154 @@ class KnowledgeBase:
112
112
  name="noir",
113
113
  description="Dark, moody visual style from 1940s crime films",
114
114
  technical_specs={
115
- "lighting": ["low-key", "venetian blind shadows", "single source"],
116
- "color": ["desaturated", "high contrast", "black and white optional"],
117
- "composition": ["dutch angles", "deep shadows", "silhouettes"],
118
- "mood": ["cynical", "fatalistic", "morally ambiguous"]
119
- }
115
+ "lighting": ["low-key", "venetian blind shadows", "single source", "chiaroscuro"],
116
+ "color_grading": ["black and white", "high contrast", "crushed blacks", "silver gelatin look"],
117
+ "composition": ["dutch angles", "deep shadows", "silhouettes", "framing through doorways"],
118
+ "mood": ["cynical", "fatalistic", "morally ambiguous"],
119
+ "sd_prompt_tags": ["film noir", "black and white", "dramatic shadows", "venetian blinds",
120
+ "1940s", "detective", "femme fatale", "high contrast"]
121
+ },
122
+ examples=["Double Indemnity", "The Maltese Falcon", "The Third Man", "Chinatown"]
123
+ )
124
+
125
+ film.add_concept(
126
+ name="blade runner",
127
+ description="Neo-noir sci-fi aesthetic with neon-soaked rain and existential themes",
128
+ technical_specs={
129
+ "lighting": ["neon glow", "rain reflections", "volumetric fog", "teal-orange contrast"],
130
+ "color_grading": ["teal and orange", "high contrast", "crushed shadows", "neon highlights"],
131
+ "composition": ["wide establishing shots", "claustrophobic interiors", "eye-level conversations"],
132
+ "atmosphere": ["rain", "smoke", "fog", "steam vents"],
133
+ "sd_prompt_tags": ["blade runner", "neo-noir", "neon rain", "teal orange", "cyberpunk noir",
134
+ "dystopian", "replicant", "futuristic noir", "wet streets"]
135
+ },
136
+ examples=["Blade Runner", "Blade Runner 2049", "Dark City", "The Crow"]
137
+ )
138
+
139
+ film.add_concept(
140
+ name="neo-noir",
141
+ description="Modern interpretation of noir with color and contemporary settings",
142
+ technical_specs={
143
+ "lighting": ["neon sources", "practical lights", "motivated shadows", "rim lighting"],
144
+ "color_grading": ["teal-orange", "desaturated midtones", "neon accents", "high contrast"],
145
+ "composition": ["urban landscapes", "reflective surfaces", "rain-slicked streets"],
146
+ "themes": ["moral ambiguity", "corruption", "doomed protagonists"],
147
+ "sd_prompt_tags": ["neo-noir", "modern noir", "neon noir", "crime drama",
148
+ "night city", "rain", "moody", "cinematic"]
149
+ },
150
+ examples=["Drive", "Collateral", "Nightcrawler", "Sin City"]
151
+ )
152
+
153
+ film.add_concept(
154
+ name="cyberpunk",
155
+ description="High-tech dystopian future with stark class divides",
156
+ technical_specs={
157
+ "lighting": ["neon signs", "holographic displays", "harsh artificial light", "no natural light"],
158
+ "color_grading": ["cyan-magenta", "neon pink", "electric blue", "toxic green"],
159
+ "composition": ["dense vertical cities", "low angles", "overwhelming scale"],
160
+ "elements": ["chrome", "holograms", "augmented humans", "corporate logos"],
161
+ "sd_prompt_tags": ["cyberpunk", "neon city", "futuristic", "dystopian", "chrome",
162
+ "holograms", "night", "dense urban", "high tech low life"]
163
+ },
164
+ examples=["Ghost in the Shell", "Akira", "The Matrix", "Altered Carbon"]
165
+ )
166
+
167
+ film.add_concept(
168
+ name="anime",
169
+ description="Japanese animation aesthetic and cinematic techniques",
170
+ technical_specs={
171
+ "lighting": ["rim light halos", "dramatic backlighting", "colored shadows"],
172
+ "color_grading": ["vibrant saturation", "bold primaries", "gradient skies"],
173
+ "composition": ["speed lines", "impact frames", "dramatic poses", "reaction shots"],
174
+ "editing": ["still frames for impact", "rapid cuts", "held dramatic moments"],
175
+ "sd_prompt_tags": ["anime", "cel shaded", "vibrant colors", "dynamic pose",
176
+ "speed lines", "dramatic lighting", "Japanese animation"]
177
+ },
178
+ examples=["Akira", "Your Name", "Spirited Away", "Attack on Titan"]
179
+ )
180
+
181
+ film.add_concept(
182
+ name="ghibli",
183
+ description="Studio Ghibli's signature warm, whimsical aesthetic",
184
+ technical_specs={
185
+ "lighting": ["soft natural light", "golden hour warmth", "dappled sunlight through leaves"],
186
+ "color_grading": ["soft pastels", "warm earth tones", "watercolor palette", "gentle saturation"],
187
+ "composition": ["wide nature shots", "detailed backgrounds", "character in environment"],
188
+ "atmosphere": ["peaceful", "nostalgic", "magical realism"],
189
+ "sd_prompt_tags": ["studio ghibli", "ghibli style", "hand painted", "whimsical",
190
+ "soft colors", "nature", "miyazaki", "totoro style"]
191
+ },
192
+ examples=["My Neighbor Totoro", "Spirited Away", "Howl's Moving Castle", "Princess Mononoke"]
193
+ )
194
+
195
+ film.add_concept(
196
+ name="horror",
197
+ description="Unsettling visual style designed to create fear and dread",
198
+ technical_specs={
199
+ "lighting": ["underlit faces", "flickering sources", "motivated darkness", "single harsh source"],
200
+ "color_grading": ["desaturated", "sickly greens", "cold blues", "high contrast"],
201
+ "composition": ["dutch angles", "negative space", "obscured threats", "deep shadows"],
202
+ "techniques": ["fog", "practical effects", "sudden reveals", "slow builds"],
203
+ "sd_prompt_tags": ["horror", "creepy", "dark", "fog", "desaturated",
204
+ "dutch angle", "atmospheric horror", "dread"]
205
+ },
206
+ examples=["The Shining", "Hereditary", "The Exorcist", "A Quiet Place"]
207
+ )
208
+
209
+ film.add_concept(
210
+ name="vaporwave",
211
+ description="Retro-futuristic aesthetic blending 80s/90s nostalgia with surrealism",
212
+ technical_specs={
213
+ "lighting": ["neon pink/purple/cyan", "sunset gradients", "retro CRT glow"],
214
+ "color_grading": ["pink-purple-cyan triad", "saturated pastels", "chrome reflections"],
215
+ "composition": ["geometric grids", "floating objects", "Greek statues", "retro tech"],
216
+ "elements": ["VHS artifacts", "glitch effects", "palm trees", "dolphins", "sunsets"],
217
+ "sd_prompt_tags": ["vaporwave", "aesthetic", "retrowave", "80s", "pink purple cyan",
218
+ "neon", "glitch", "geometric", "retro futurism"]
219
+ },
220
+ examples=["Hotline Miami", "Far Cry 3: Blood Dragon", "Kung Fury"]
221
+ )
222
+
223
+ film.add_concept(
224
+ name="photorealistic",
225
+ description="Ultra-realistic visual presentation indistinguishable from reality",
226
+ technical_specs={
227
+ "lighting": ["natural light behavior", "global illumination", "subsurface scattering"],
228
+ "color_grading": ["minimal grading", "accurate skin tones", "natural contrast"],
229
+ "technical": ["high resolution (4K/8K)", "high frame rate option", "detailed textures"],
230
+ "composition": ["natural framing", "realistic depth of field", "authentic motion blur"],
231
+ "sd_prompt_tags": ["photorealistic", "hyperrealistic", "8k uhd", "RAW photo",
232
+ "detailed skin", "subsurface scattering", "ray tracing"]
233
+ },
234
+ examples=["Avatar", "The Lion King (2019)", "Planet Earth documentaries"]
235
+ )
236
+
237
+ film.add_concept(
238
+ name="impressionist",
239
+ description="Painterly visual style emphasizing light and atmosphere over detail",
240
+ technical_specs={
241
+ "lighting": ["diffused light", "color-in-shadow", "light as subject"],
242
+ "color_grading": ["visible color strokes", "complementary shadows", "vibrant but soft"],
243
+ "composition": ["en plein air framing", "everyday scenes", "emphasis on atmosphere"],
244
+ "texture": ["visible brushstrokes", "soft edges", "broken color"],
245
+ "sd_prompt_tags": ["impressionist", "painterly", "visible brushstrokes", "monet style",
246
+ "soft light", "atmospheric", "oil painting", "plein air"]
247
+ },
248
+ examples=["Loving Vincent", "What Dreams May Come", "Monet/Renoir paintings"]
249
+ )
250
+
251
+ film.add_concept(
252
+ name="surrealist",
253
+ description="Dreamlike imagery that defies logical reality",
254
+ technical_specs={
255
+ "lighting": ["impossible light sources", "dramatic shadows", "theatrical"],
256
+ "color_grading": ["heightened reality", "symbolic color", "dreamlike palette"],
257
+ "composition": ["impossible geometry", "scale distortion", "juxtaposition"],
258
+ "elements": ["melting objects", "floating elements", "recursive imagery", "symbolic objects"],
259
+ "sd_prompt_tags": ["surrealist", "surrealism", "dreamlike", "dali style",
260
+ "impossible geometry", "melting", "floating", "ethereal"]
261
+ },
262
+ examples=["Eternal Sunshine of the Spotless Mind", "Pan's Labyrinth", "Mulholland Drive", "Dali paintings"]
120
263
  )
121
264
 
122
265
  # Techniques
@@ -281,16 +424,23 @@ class KnowledgeBase:
281
424
  # === AESTHETIC STYLES ===
282
425
  visual.add_concept(
283
426
  name="cyberpunk",
284
- description="Futuristic dystopian aesthetic with neon and tech",
427
+ description="Futuristic dystopian aesthetic with neon, chrome, and high-tech urban decay",
285
428
  technical_specs={
286
429
  "sd_prompt_tags": ["cyberpunk", "neon lights", "futuristic city", "rain",
287
- "holographic displays", "chrome", "dystopian"],
288
- "color_palette": ["#FF00FF", "#00FFFF", "#FF0080", "#00FF80", "#1a1a2e"],
289
- "lighting": ["neon glow", "rim lighting", "volumetric fog", "light rays"],
290
- "composition": ["low angle", "wide shot", "reflective surfaces"],
291
- "negative_prompt": ["natural lighting", "daytime", "pastoral", "bright colors"]
430
+ "holographic displays", "chrome", "dystopian", "night city",
431
+ "dense urban", "neon signs", "megacity", "high tech low life",
432
+ "augmented human", "corporate dystopia", "flying cars"],
433
+ "color_palette": ["#FF00FF", "#00FFFF", "#FF0080", "#00FF80", "#1a1a2e", "#39FF14"],
434
+ "lighting": ["neon glow", "rim lighting", "volumetric fog", "light rays",
435
+ "holographic light", "advertisement screens", "no natural light"],
436
+ "composition": ["low angle", "wide shot", "reflective surfaces", "vertical cities",
437
+ "overwhelming scale", "crowded streets", "layered depth"],
438
+ "elements": ["chrome surfaces", "holograms", "neon signs", "rain", "steam",
439
+ "cables and wires", "augmented reality overlays"],
440
+ "negative_prompt": ["natural lighting", "daytime", "pastoral", "clean", "rural",
441
+ "historical", "medieval", "nature"]
292
442
  },
293
- examples=["Blade Runner", "Ghost in the Shell", "Akira"]
443
+ examples=["Blade Runner", "Ghost in the Shell", "Akira", "Cyberpunk 2077", "The Matrix"]
294
444
  )
295
445
 
296
446
  visual.add_concept(
@@ -306,30 +456,175 @@ class KnowledgeBase:
306
456
  }
307
457
  )
308
458
 
459
+ visual.add_concept(
460
+ name="blade runner",
461
+ description="Neo-noir sci-fi with rain, neon, and teal-orange color grading",
462
+ technical_specs={
463
+ "sd_prompt_tags": ["blade runner", "neo-noir", "neon rain", "cyberpunk noir",
464
+ "wet streets", "neon reflections", "teal orange color grading",
465
+ "dystopian city", "replicant", "futuristic noir", "smog",
466
+ "holographic advertisements", "flying cars"],
467
+ "color_palette": ["#008080", "#FF6B35", "#1a1a2e", "#FF00FF", "#00FFFF"],
468
+ "lighting": ["neon glow", "rain reflections", "volumetric fog", "teal-orange contrast",
469
+ "backlit silhouettes", "practical neon sources"],
470
+ "composition": ["wide establishing shots", "eye-level dialogue", "reflective puddles",
471
+ "steam vents", "layered depth"],
472
+ "negative_prompt": ["bright", "sunny", "daytime", "cheerful", "clean", "pastoral"]
473
+ },
474
+ examples=["Blade Runner", "Blade Runner 2049", "Dark City"]
475
+ )
476
+
309
477
  visual.add_concept(
310
478
  name="anime",
311
- description="Japanese animation style",
479
+ description="Japanese animation style with cel shading and dynamic energy",
312
480
  technical_specs={
313
481
  "sd_prompt_tags": ["anime", "cel shading", "vibrant colors",
314
- "detailed eyes", "dramatic pose"],
315
- "models": ["anything-v5", "counterfeit-v3", "waifu-diffusion"],
482
+ "detailed eyes", "dramatic pose", "speed lines",
483
+ "dynamic action", "anime lighting", "manga style"],
484
+ "models": ["anything-v5", "counterfeit-v3", "waifu-diffusion", "animagine-xl"],
316
485
  "cfg_scale": 7,
317
- "negative_prompt": ["realistic", "photographic", "3d render", "western"]
318
- }
486
+ "lighting": ["rim light halos", "dramatic backlighting", "colored shadows",
487
+ "anime glow", "light rays"],
488
+ "composition": ["dynamic angles", "action poses", "impact frames", "close-up reactions"],
489
+ "negative_prompt": ["realistic", "photographic", "3d render", "western", "blurry"]
490
+ },
491
+ examples=["Demon Slayer", "Attack on Titan", "My Hero Academia"]
492
+ )
493
+
494
+ visual.add_concept(
495
+ name="ghibli",
496
+ description="Studio Ghibli's soft, whimsical, hand-painted aesthetic",
497
+ technical_specs={
498
+ "sd_prompt_tags": ["studio ghibli", "ghibli style", "hayao miyazaki",
499
+ "hand painted", "soft colors", "whimsical", "nature",
500
+ "watercolor", "peaceful", "magical", "totoro style",
501
+ "detailed background", "cozy"],
502
+ "color_palette": ["#87CEEB", "#90EE90", "#F5DEB3", "#FFB6C1", "#E6E6FA"],
503
+ "lighting": ["soft natural light", "golden hour", "dappled sunlight",
504
+ "gentle shadows", "warm diffused light"],
505
+ "composition": ["wide landscape shots", "character in nature", "detailed environments",
506
+ "peaceful scenes", "flying sequences"],
507
+ "cfg_scale": 7,
508
+ "negative_prompt": ["dark", "gritty", "realistic", "violent", "horror", "cyberpunk"]
509
+ },
510
+ examples=["Spirited Away", "My Neighbor Totoro", "Howl's Moving Castle", "Kiki's Delivery Service"]
511
+ )
512
+
513
+ visual.add_concept(
514
+ name="noir",
515
+ description="Classic film noir with black and white, dramatic shadows",
516
+ technical_specs={
517
+ "sd_prompt_tags": ["film noir", "black and white", "monochrome",
518
+ "dramatic shadows", "venetian blind shadows", "1940s",
519
+ "detective", "femme fatale", "high contrast", "chiaroscuro",
520
+ "moody", "cigarette smoke", "fedora"],
521
+ "color_palette": ["#000000", "#FFFFFF", "#333333", "#666666", "#999999"],
522
+ "lighting": ["low-key lighting", "single source", "venetian blinds",
523
+ "hard shadows", "silhouettes", "rim light"],
524
+ "composition": ["dutch angles", "framing through doorways", "long shadows",
525
+ "reflections", "staircase shots"],
526
+ "negative_prompt": ["color", "colorful", "bright", "cheerful", "daytime", "sunny"]
527
+ },
528
+ examples=["Double Indemnity", "The Maltese Falcon", "The Third Man", "Sin City"]
529
+ )
530
+
531
+ visual.add_concept(
532
+ name="horror",
533
+ description="Unsettling horror aesthetic with desaturation and dread",
534
+ technical_specs={
535
+ "sd_prompt_tags": ["horror", "creepy", "dark", "atmospheric horror",
536
+ "fog", "mist", "desaturated", "gloomy", "ominous",
537
+ "dread", "unsettling", "eerie", "sinister"],
538
+ "color_palette": ["#1a1a2e", "#2d3436", "#636e72", "#74b9ff", "#a29bfe"],
539
+ "lighting": ["underlit faces", "flickering light", "harsh single source",
540
+ "motivated darkness", "cold blue light", "practical candles"],
541
+ "composition": ["dutch angles", "negative space", "obscured threats",
542
+ "deep shadows", "off-center framing", "low angles"],
543
+ "atmosphere": ["fog", "mist", "rain", "decay", "abandoned"],
544
+ "negative_prompt": ["bright", "cheerful", "colorful", "sunny", "happy", "vibrant"]
545
+ },
546
+ examples=["The Shining", "Hereditary", "Silent Hill", "Resident Evil"]
547
+ )
548
+
549
+ visual.add_concept(
550
+ name="vaporwave",
551
+ description="Retro 80s/90s aesthetic with pink, purple, cyan, and glitch effects",
552
+ technical_specs={
553
+ "sd_prompt_tags": ["vaporwave", "aesthetic", "retrowave", "80s aesthetic",
554
+ "neon pink", "neon purple", "cyan", "glitch art",
555
+ "geometric", "grid", "palm trees", "sunset gradient",
556
+ "greek statue", "VHS", "retro futurism", "synthwave"],
557
+ "color_palette": ["#FF6AD5", "#C774E8", "#AD8CFF", "#8795E8", "#94D0FF", "#00FFFF"],
558
+ "lighting": ["neon glow", "sunset gradient", "CRT screen glow",
559
+ "chrome reflections", "rim lighting"],
560
+ "composition": ["geometric grids", "floating objects", "perspective grids",
561
+ "tiled patterns", "chrome spheres", "sunset backgrounds"],
562
+ "effects": ["VHS artifacts", "scan lines", "glitch", "chromatic aberration"],
563
+ "negative_prompt": ["realistic", "natural", "muted colors", "organic", "modern"]
564
+ },
565
+ examples=["Hotline Miami", "Far Cry 3: Blood Dragon", "Kung Fury"]
566
+ )
567
+
568
+ visual.add_concept(
569
+ name="impressionist",
570
+ description="Painterly style with visible brushstrokes and light effects",
571
+ technical_specs={
572
+ "sd_prompt_tags": ["impressionist", "impressionism", "oil painting",
573
+ "visible brushstrokes", "monet style", "renoir style",
574
+ "plein air", "soft light", "atmospheric", "painterly",
575
+ "dappled light", "broken color"],
576
+ "color_palette": ["#87CEEB", "#F0E68C", "#DDA0DD", "#98FB98", "#FFB6C1"],
577
+ "lighting": ["diffused natural light", "dappled sunlight", "golden hour",
578
+ "reflected light", "color in shadows"],
579
+ "composition": ["en plein air framing", "everyday scenes", "landscapes",
580
+ "water reflections", "garden scenes"],
581
+ "texture": ["thick impasto", "broken color", "soft edges", "atmospheric blur"],
582
+ "negative_prompt": ["sharp", "photorealistic", "digital", "clean lines", "flat color"]
583
+ },
584
+ examples=["Claude Monet", "Pierre-Auguste Renoir", "Loving Vincent"]
585
+ )
586
+
587
+ visual.add_concept(
588
+ name="surrealist",
589
+ description="Dreamlike imagery with impossible geometry and Dali-esque elements",
590
+ technical_specs={
591
+ "sd_prompt_tags": ["surrealist", "surrealism", "dali style", "dreamlike",
592
+ "impossible geometry", "melting", "floating objects",
593
+ "ethereal", "magritte style", "escher style",
594
+ "recursive", "distorted reality", "symbolic"],
595
+ "color_palette": ["#E6D5B8", "#87CEEB", "#F4A460", "#DEB887", "#C0C0C0"],
596
+ "lighting": ["dramatic shadows", "impossible light sources", "theatrical",
597
+ "dreamlike glow", "multiple light sources"],
598
+ "composition": ["impossible perspectives", "scale distortion", "juxtaposition",
599
+ "floating elements", "infinite landscapes", "recursive patterns"],
600
+ "elements": ["melting clocks", "floating stones", "impossible architecture",
601
+ "symbolic objects", "metamorphosis"],
602
+ "negative_prompt": ["realistic", "normal", "ordinary", "mundane", "photographic"]
603
+ },
604
+ examples=["Salvador Dali", "Rene Magritte", "M.C. Escher", "Pan's Labyrinth"]
319
605
  )
320
606
 
321
607
  visual.add_concept(
322
608
  name="photorealistic",
323
- description="Realistic, photo-quality images",
609
+ description="Ultra-realistic photo-quality images indistinguishable from photographs",
324
610
  technical_specs={
325
- "sd_prompt_tags": ["photorealistic", "hyperrealistic", "8k", "uhd",
326
- "RAW photo", "dslr", "soft lighting", "high detail"],
327
- "models": ["realistic-vision", "deliberate", "photon"],
611
+ "sd_prompt_tags": ["photorealistic", "hyperrealistic", "8k uhd", "RAW photo",
612
+ "dslr", "high detail", "sharp focus", "detailed skin texture",
613
+ "subsurface scattering", "ray tracing", "global illumination",
614
+ "studio lighting", "professional photography"],
615
+ "models": ["realistic-vision", "deliberate", "photon", "juggernaut-xl"],
328
616
  "cfg_scale": 5,
329
617
  "steps": 30,
618
+ "lighting": ["natural light", "studio lighting", "soft diffused light",
619
+ "golden hour", "rim lighting", "catch lights in eyes"],
620
+ "composition": ["shallow depth of field", "bokeh", "eye-level perspective",
621
+ "professional framing", "natural poses"],
622
+ "color_palette": ["natural skin tones", "accurate colors", "subtle grading"],
330
623
  "negative_prompt": ["cartoon", "anime", "painting", "illustration",
331
- "drawing", "artificial", "fake"]
332
- }
624
+ "drawing", "artificial", "fake", "oversaturated",
625
+ "plastic skin", "doll-like", "cgi"]
626
+ },
627
+ examples=["Stock photography", "Portrait photography", "Product photography"]
333
628
  )
334
629
 
335
630
  visual.add_concept(
@@ -532,9 +827,10 @@ class KnowledgeBase:
532
827
  self._domains["animation"] = anim
533
828
 
534
829
  def _load_audio_knowledge(self) -> None:
535
- """Audio and sound design knowledge."""
830
+ """Audio, sound design, and film scoring knowledge."""
536
831
  audio = DomainKnowledge(domain="audio")
537
832
 
833
+ # === MUSICAL STYLES ===
538
834
  audio.add_concept(
539
835
  name="ambient",
540
836
  description="Background environmental soundscapes",
@@ -567,6 +863,7 @@ class KnowledgeBase:
567
863
  "techniques": ["dissonance", "sudden silence", "infrasound",
568
864
  "reversed audio", "distorted voices"],
569
865
  "elements": ["drones", "metallic scrapes", "heartbeat", "breathing"],
866
+ "intervals": ["minor 2nd", "tritone", "diminished chords"],
570
867
  "music_gen_prompt": "dark ambient, horror, unsettling, dissonant, tension"
571
868
  },
572
869
  examples=["Akira Yamaoka", "Goblin", "John Carpenter"]
@@ -596,6 +893,174 @@ class KnowledgeBase:
596
893
  examples=["Kavinsky", "Carpenter Brut", "Perturbator"]
597
894
  )
598
895
 
896
+ # === FILM SCORING CONCEPTS ===
897
+ audio.add_concept(
898
+ name="leitmotif",
899
+ description="Recurring musical theme associated with a character, place, or idea",
900
+ technical_specs={
901
+ "usage": ["character introduction", "emotional callback", "thematic unity"],
902
+ "implementation": ["short melodic phrase", "distinctive instrumentation",
903
+ "variations for mood changes"],
904
+ "variations": ["major/minor for hero/villain", "tempo for tension",
905
+ "orchestration for scale"],
906
+ "music_gen_prompt": "memorable melody, thematic, cinematic, character theme"
907
+ },
908
+ examples=["Imperial March (Vader)", "Hedwig's Theme (Harry Potter)",
909
+ "The Shire (Lord of the Rings)", "Jaws theme"]
910
+ )
911
+
912
+ audio.add_concept(
913
+ name="diegetic",
914
+ description="Sound that exists within the story world (characters can hear it)",
915
+ technical_specs={
916
+ "types": ["radio music", "live performance", "ambient sounds", "dialogue"],
917
+ "mixing": ["room acoustics", "distance attenuation", "occlusion"],
918
+ "contrast": "Can transition to non-diegetic for emotional effect",
919
+ "examples_in_film": ["record player scene", "band at party", "car radio"]
920
+ },
921
+ examples=["Guardians of the Galaxy Awesome Mix", "Baby Driver car scenes"]
922
+ )
923
+
924
+ audio.add_concept(
925
+ name="non-diegetic",
926
+ description="Sound added for audience only (score, narration, sound effects)",
927
+ technical_specs={
928
+ "types": ["underscore", "voiceover narration", "emotional sound design"],
929
+ "purpose": ["guide emotion", "build tension", "signal genre"],
930
+ "mixing": ["full stereo/surround", "clean signal", "no room tone"],
931
+ "technique": "Often starts diegetic then swells to non-diegetic"
932
+ },
933
+ examples=["Film scores", "Documentary narration", "Laugh tracks"]
934
+ )
935
+
936
+ audio.add_concept(
937
+ name="underscore",
938
+ description="Background music supporting scenes without being noticed",
939
+ technical_specs={
940
+ "characteristics": ["subtle", "supports dialogue", "emotionally guiding"],
941
+ "mixing": ["ducking under dialogue", "sparse arrangement", "low register"],
942
+ "music_gen_prompt": "subtle underscore, minimal, background, cinematic, gentle"
943
+ }
944
+ )
945
+
946
+ audio.add_concept(
947
+ name="stinger",
948
+ description="Short, sharp musical accent for dramatic effect",
949
+ technical_specs={
950
+ "usage": ["jump scares", "reveals", "dramatic moments", "scene transitions"],
951
+ "characteristics": ["sudden", "dissonant", "brief (1-3 seconds)"],
952
+ "instruments": ["brass hits", "string stabs", "percussion hits", "synth blasts"],
953
+ "music_gen_prompt": "dramatic hit, stinger, impact, brass, sudden"
954
+ },
955
+ examples=["Horror jump scares", "Netflix 'tudum'", "Law & Order 'dun dun'"]
956
+ )
957
+
958
+ # === GENRE MOODS ===
959
+ audio.add_concept(
960
+ name="action score",
961
+ description="High-energy music for action sequences",
962
+ technical_specs={
963
+ "tempo": "120-160 BPM",
964
+ "elements": ["driving percussion", "brass stabs", "string ostinatos",
965
+ "synth bass", "rhythmic urgency"],
966
+ "dynamics": ["loud overall", "impact hits", "brief quiet for contrast"],
967
+ "structure": ["building intensity", "peaks at action climax"],
968
+ "music_gen_prompt": "action, intense, percussion, brass, driving beat, cinematic"
969
+ },
970
+ examples=["Mad Max Fury Road", "John Wick", "Mission Impossible"]
971
+ )
972
+
973
+ audio.add_concept(
974
+ name="romantic score",
975
+ description="Emotional, sweeping music for love scenes",
976
+ technical_specs={
977
+ "tempo": "60-80 BPM",
978
+ "elements": ["strings", "piano", "woodwinds", "harp", "warm pads"],
979
+ "harmony": ["major keys", "suspended chords", "rising progressions"],
980
+ "dynamics": ["soft to swelling", "intimate to grand"],
981
+ "music_gen_prompt": "romantic, emotional, strings, piano, sweeping, tender"
982
+ },
983
+ examples=["Titanic", "The Notebook", "Pride and Prejudice"]
984
+ )
985
+
986
+ audio.add_concept(
987
+ name="thriller score",
988
+ description="Suspenseful music building tension and unease",
989
+ technical_specs={
990
+ "tempo": "variable, often accelerating",
991
+ "elements": ["ostinato patterns", "rising pitch", "dissonant intervals",
992
+ "sparse textures", "electronic elements"],
993
+ "techniques": ["silence", "sudden dynamics", "heartbeat rhythms"],
994
+ "music_gen_prompt": "suspense, tension, thriller, dark, building, ominous"
995
+ },
996
+ examples=["Inception", "Sicario", "Gone Girl"]
997
+ )
998
+
999
+ audio.add_concept(
1000
+ name="comedy score",
1001
+ description="Light, playful music for comedic moments",
1002
+ technical_specs={
1003
+ "tempo": "100-140 BPM (often bouncy)",
1004
+ "elements": ["pizzicato strings", "woodwinds", "xylophone", "light percussion"],
1005
+ "characteristics": ["staccato", "major keys", "playful melodies", "cartoonish"],
1006
+ "techniques": ["mickey-mousing (matching action)", "awkward pauses"],
1007
+ "music_gen_prompt": "comedy, playful, light, bouncy, whimsical, quirky"
1008
+ },
1009
+ examples=["Home Alone", "The Grand Budapest Hotel", "Pixar films"]
1010
+ )
1011
+
1012
+ audio.add_concept(
1013
+ name="western score",
1014
+ description="Classic American frontier sound",
1015
+ technical_specs={
1016
+ "elements": ["solo trumpet", "harmonica", "acoustic guitar", "whistling",
1017
+ "twangy electric guitar", "orchestral swells"],
1018
+ "characteristics": ["wide open spaces", "heroic themes", "lonely melodies"],
1019
+ "music_gen_prompt": "western, frontier, harmonica, acoustic guitar, cinematic"
1020
+ },
1021
+ examples=["Ennio Morricone", "Django Unchained", "No Country for Old Men"]
1022
+ )
1023
+
1024
+ # === PACING CONCEPTS ===
1025
+ audio.add_concept(
1026
+ name="musical pacing",
1027
+ description="Using tempo and rhythm to control scene energy",
1028
+ technical_specs={
1029
+ "slow_scene": {"tempo": "40-70 BPM", "usage": "emotional, reflective, intimate"},
1030
+ "medium_scene": {"tempo": "80-110 BPM", "usage": "dialogue, exploration, transition"},
1031
+ "fast_scene": {"tempo": "120-180 BPM", "usage": "action, chase, climax"},
1032
+ "techniques": ["tempo acceleration for building tension",
1033
+ "tempo deceleration for resolution",
1034
+ "rubato for emotional emphasis"]
1035
+ }
1036
+ )
1037
+
1038
+ audio.add_concept(
1039
+ name="dynamic arc",
1040
+ description="Volume and intensity shaping over time",
1041
+ technical_specs={
1042
+ "shapes": {
1043
+ "crescendo": "quiet to loud, building anticipation",
1044
+ "decrescendo": "loud to quiet, resolution or dread",
1045
+ "swell": "quiet-loud-quiet, emotional peaks",
1046
+ "plateau": "sustained intensity for action"
1047
+ },
1048
+ "mixing": ["automate volume", "add/remove layers", "EQ brightness"]
1049
+ }
1050
+ )
1051
+
1052
+ audio.add_concept(
1053
+ name="silence",
1054
+ description="Strategic use of no music for dramatic effect",
1055
+ technical_specs={
1056
+ "usage": ["before jump scare", "after revelation", "intimate dialogue",
1057
+ "documentary realism", "uncomfortable tension"],
1058
+ "duration": {"brief": "1-3 sec impact", "extended": "10+ sec dread/realism"},
1059
+ "techniques": ["cut music abruptly for shock", "fade out for resolution"]
1060
+ },
1061
+ examples=["No Country for Old Men (mostly no score)", "A Quiet Place"]
1062
+ )
1063
+
599
1064
  # Techniques
600
1065
  audio.add_technique("sound layering", [
601
1066
  "Start with base/fundamental sound",
@@ -613,6 +1078,29 @@ class KnowledgeBase:
613
1078
  "Cut to silence before climax"
614
1079
  ])
615
1080
 
1081
+ audio.add_technique("spotting", [
1082
+ "Watch scene without music to understand natural rhythm",
1083
+ "Identify key emotional beats and hit points",
1084
+ "Decide diegetic vs non-diegetic needs",
1085
+ "Note dialogue that needs music ducking",
1086
+ "Plan music entry/exit points at natural scene breaks"
1087
+ ])
1088
+
1089
+ audio.add_technique("mickey-mousing", [
1090
+ "Match music directly to on-screen action",
1091
+ "Accent movements with stings or motifs",
1092
+ "Use for comedy or heightened stylization",
1093
+ "Avoid for realistic drama (too cartoonish)"
1094
+ ])
1095
+
1096
+ # Constraints
1097
+ audio.add_constraint("dialogue scenes", [
1098
+ "Keep underscore minimal and low-register",
1099
+ "Avoid melodic content that competes with speech",
1100
+ "Duck music volume during dialogue",
1101
+ "Enter/exit music during pauses when possible"
1102
+ ])
1103
+
616
1104
  self._domains["audio"] = audio
617
1105
 
618
1106
  def _load_character_knowledge(self) -> None: