@nodaro/prompts 1.48.0 → 1.49.0

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.
Files changed (74) hide show
  1. package/dist/{catalog-packs-CAK42voB.d.ts → catalog-packs-BzzZCjbz.d.ts} +1 -1
  2. package/dist/{catalog-packs-BDsrv8St.d.cts → catalog-packs-C--EzV3K.d.cts} +1 -1
  3. package/dist/{chunk-PJFX3MFI.cjs → chunk-3AVLIA4B.cjs} +18 -18
  4. package/dist/{chunk-PJFX3MFI.cjs.map → chunk-3AVLIA4B.cjs.map} +1 -1
  5. package/dist/{chunk-JV2WSMAA.cjs → chunk-3HMMG6W4.cjs} +8 -8
  6. package/dist/{chunk-JV2WSMAA.cjs.map → chunk-3HMMG6W4.cjs.map} +1 -1
  7. package/dist/{chunk-XBRW75LM.js → chunk-3J52HGBL.js} +4 -4
  8. package/dist/{chunk-XBRW75LM.js.map → chunk-3J52HGBL.js.map} +1 -1
  9. package/dist/{chunk-LD47QOKS.js → chunk-4V4JJUEH.js} +92 -53
  10. package/dist/chunk-4V4JJUEH.js.map +1 -0
  11. package/dist/{chunk-YXJSPQC6.js → chunk-7C7XLZPU.js} +3 -3
  12. package/dist/{chunk-YXJSPQC6.js.map → chunk-7C7XLZPU.js.map} +1 -1
  13. package/dist/{chunk-MYVJVOPB.cjs → chunk-7VVVHIMH.cjs} +39 -39
  14. package/dist/{chunk-MYVJVOPB.cjs.map → chunk-7VVVHIMH.cjs.map} +1 -1
  15. package/dist/{chunk-GZVCBSFG.js → chunk-FDTRN7OE.js} +5 -5
  16. package/dist/{chunk-GZVCBSFG.js.map → chunk-FDTRN7OE.js.map} +1 -1
  17. package/dist/{chunk-54BYDWAM.cjs → chunk-GTN3UO74.cjs} +102 -55
  18. package/dist/chunk-GTN3UO74.cjs.map +1 -0
  19. package/dist/{chunk-XGNUOU4F.cjs → chunk-KBIA4R6X.cjs} +125 -125
  20. package/dist/{chunk-XGNUOU4F.cjs.map → chunk-KBIA4R6X.cjs.map} +1 -1
  21. package/dist/{chunk-JHRVNWBS.js → chunk-MJ5OXUDF.js} +6 -6
  22. package/dist/{chunk-JHRVNWBS.js.map → chunk-MJ5OXUDF.js.map} +1 -1
  23. package/dist/{chunk-Z755PH3K.cjs → chunk-NBJR7JS4.cjs} +49 -49
  24. package/dist/{chunk-Z755PH3K.cjs.map → chunk-NBJR7JS4.cjs.map} +1 -1
  25. package/dist/{chunk-KNAKOSKV.cjs → chunk-NET25TEQ.cjs} +13 -13
  26. package/dist/{chunk-KNAKOSKV.cjs.map → chunk-NET25TEQ.cjs.map} +1 -1
  27. package/dist/{chunk-36XMRVY4.js → chunk-NRBO4I4G.js} +4 -4
  28. package/dist/{chunk-36XMRVY4.js.map → chunk-NRBO4I4G.js.map} +1 -1
  29. package/dist/{chunk-IMQB7GIK.cjs → chunk-OXJ5GN57.cjs} +35 -35
  30. package/dist/{chunk-IMQB7GIK.cjs.map → chunk-OXJ5GN57.cjs.map} +1 -1
  31. package/dist/{chunk-BTV2I7EN.js → chunk-PJPCNKEJ.js} +3 -3
  32. package/dist/{chunk-BTV2I7EN.js.map → chunk-PJPCNKEJ.js.map} +1 -1
  33. package/dist/{chunk-XZXUU3YH.js → chunk-QN3OP6TG.js} +8 -3
  34. package/dist/chunk-QN3OP6TG.js.map +1 -0
  35. package/dist/{chunk-UNR34GYU.cjs → chunk-WW7IHRIE.cjs} +8 -3
  36. package/dist/chunk-WW7IHRIE.cjs.map +1 -0
  37. package/dist/{chunk-CMEUYFBZ.js → chunk-XVAVCHPJ.js} +4 -4
  38. package/dist/{chunk-CMEUYFBZ.js.map → chunk-XVAVCHPJ.js.map} +1 -1
  39. package/dist/entries/assembly.cjs +29 -29
  40. package/dist/entries/assembly.js +6 -6
  41. package/dist/entries/catalog-packs.d.cts +3 -3
  42. package/dist/entries/catalog-packs.d.ts +3 -3
  43. package/dist/entries/person.d.cts +2 -2
  44. package/dist/entries/person.d.ts +2 -2
  45. package/dist/entries/picker-art.cjs +19 -19
  46. package/dist/entries/picker-art.d.cts +5 -0
  47. package/dist/entries/picker-art.d.ts +5 -0
  48. package/dist/entries/picker-art.js +1 -1
  49. package/dist/entries/picker-catalogs.cjs +57 -57
  50. package/dist/entries/picker-catalogs.d.cts +2 -2
  51. package/dist/entries/picker-catalogs.d.ts +2 -2
  52. package/dist/entries/picker-catalogs.js +5 -5
  53. package/dist/entries/pickers.cjs +407 -375
  54. package/dist/entries/pickers.d.cts +52 -2
  55. package/dist/entries/pickers.d.ts +52 -2
  56. package/dist/entries/pickers.js +3 -3
  57. package/dist/entries/prompt-builder.cjs +76 -76
  58. package/dist/entries/prompt-builder.js +5 -5
  59. package/dist/index.cjs +577 -545
  60. package/dist/index.d.cts +3 -3
  61. package/dist/index.d.ts +3 -3
  62. package/dist/index.js +9 -9
  63. package/dist/{picker-catalogs-BiRCs_5G.d.cts → picker-catalogs-BylSIFKL.d.cts} +9 -0
  64. package/dist/{picker-catalogs-CX8pHi8q.d.ts → picker-catalogs-DHRyjPXb.d.ts} +9 -0
  65. package/package.json +2 -2
  66. package/src/__tests__/style-media.test.ts +141 -0
  67. package/src/__tests__/style-video-wording.test.ts +22 -7
  68. package/src/picker-art/look-preview-sets.ts +5 -0
  69. package/src/picker-catalogs.ts +19 -0
  70. package/src/style.ts +134 -50
  71. package/dist/chunk-54BYDWAM.cjs.map +0 -1
  72. package/dist/chunk-LD47QOKS.js.map +0 -1
  73. package/dist/chunk-UNR34GYU.cjs.map +0 -1
  74. package/dist/chunk-XZXUU3YH.js.map +0 -1
@@ -3,7 +3,7 @@
3
3
  var chunk3UEA3UHQ_cjs = require('./chunk-3UEA3UHQ.cjs');
4
4
  var chunkK6NT635Z_cjs = require('./chunk-K6NT635Z.cjs');
5
5
  var chunkFY4AMIDB_cjs = require('./chunk-FY4AMIDB.cjs');
6
- var chunkUNR34GYU_cjs = require('./chunk-UNR34GYU.cjs');
6
+ var chunkWW7IHRIE_cjs = require('./chunk-WW7IHRIE.cjs');
7
7
  var catalogs = require('@nodaro/shared/catalogs');
8
8
 
9
9
  // src/catalog-overlay.ts
@@ -266,56 +266,69 @@ function buildAtmosphereTerms(value) {
266
266
  var ATMOSPHERE_IDS = ATMOSPHERES.map((a) => a.id);
267
267
 
268
268
  // src/style.ts
269
+ var STYLE_MEDIUMS = ["photo", "3d", "2d"];
270
+ var STYLE_MEDIA = ["image", "video"];
269
271
  var STYLES = [
270
- { id: "3d-render", label: "3D Render", description: "Modern CGI render with clean shading", promptHint: "3D rendered style, modern CGI aesthetic with clean shading, subtle ambient occlusion and crisp materials", videoPromptHint: "Stylised 3D render animation, computer-generated: every person, vehicle and room modelled in smooth matte CG surfaces, simplified clean forms, soft studio lighting, gentle ambient occlusion, bright clean colours." },
271
- { id: "anime", label: "Anime", description: "Japanese animation look", promptHint: "anime style, Japanese animation aesthetic with bold cel-shaded lines, expressive eyes and saturated colors", videoPromptHint: "2D Japanese anime, hand-drawn cel animation: clean thin ink line art, flat cel shading with one hard shadow tone, large expressive eyes, hair drawn as solid shapes, saturated colours, painted backgrounds." },
272
- { id: "children-book", label: "Children's Book", description: "Warm illustrated storybook", promptHint: "children's book illustration style, warm hand-drawn storybook look with soft shapes, friendly characters and inviting colors", term: "children's book illustration", videoPromptHint: "2D children's picture-book illustration, hand-drawn: soft pencil outlines, gentle gouache and coloured-pencil fills, rounded friendly shapes, warm inviting colours, simple storybook backgrounds." },
273
- { id: "cinematic", label: "Cinematic", description: "Film-grade dramatic image", promptHint: "cinematic film style, dramatic lighting with cinematic color grading, widescreen aesthetic and film-like depth of field", videoPromptHint: "Live-action cinema footage, shot on film: dramatic motivated lighting, rich cinematic colour grading, shallow depth of field, widescreen framing, fine film grain." },
274
- { id: "comic-book", label: "Comic Book", description: "Inked panels with flat color", promptHint: "comic book style, bold inked outlines, halftone shading and flat saturated comic panel colors", term: "comic book art", videoPromptHint: "2D comic-book illustration, hand-inked: bold black ink outlines, halftone dot shading, flat saturated panel colours, hard-edged shadow shapes, strong graphic contrast." },
275
- { id: "digital-art", label: "Digital Art", description: "Polished digital illustration", promptHint: "digital art style, polished digital painting with smooth brushwork, vibrant colors and clean rendering", videoPromptHint: "2D digital illustration, hand-painted on a tablet: crisp ink outlines, smooth brushwork, soft blended shading, vibrant saturated colours, clean polished rendering, glowing highlights." },
276
- { id: "fantasy", label: "Fantasy", description: "Epic high-fantasy illustration", promptHint: "fantasy art style, epic high-fantasy illustration with painterly detail, magical atmosphere and rich lore-driven mood", term: "fantasy art", videoPromptHint: "2D high-fantasy illustration, hand-painted: fine ink outlines, rich painterly detail, ornate costumes and settings, magical glowing light, deep atmospheric colours, epic dramatic mood." },
277
- { id: "minimalist", label: "Minimalist", description: "Simple shapes, lots of whitespace", promptHint: "minimalist style, reduced composition with simple shapes, limited palette and generous negative space", videoPromptHint: "Minimalist 2D animation, flat graphic: simple geometric shapes, clean thin outlines, a limited palette of two or three flat colours, smooth untextured surfaces, generous empty space." },
278
- { id: "noir", label: "Noir", description: "High-contrast B&W film noir", promptHint: "film noir style, high-contrast black-and-white imagery, deep shadows, venetian-blind lighting and moody 1940s cinema feel", term: "film noir", videoPromptHint: "Live-action black-and-white film noir, shot on film: every shot in high-contrast black and white, deep black shadows, hard venetian-blind light patterns, smoky 1940s atmosphere, fine film grain." },
279
- { id: "oil-painting", label: "Oil Painting", description: "Thick brush strokes, classical canvas", promptHint: "oil painting style, visible thick brush strokes on canvas with rich pigment, classical painterly texture and warm tonal blending", videoPromptHint: "2D oil-painted illustration, hand-painted on canvas: dark painted outlines, thick visible brush strokes, rich layered pigment, canvas weave texture, warm tonal blending, classical painterly light." },
280
- { id: "pencil-sketch", label: "Pencil Sketch", description: "Hand-drawn graphite drawing", promptHint: "pencil sketch style, hand-drawn graphite drawing with visible hatching, soft smudges and raw paper texture", videoPromptHint: "2D graphite pencil illustration, hand-drawn on paper: dark pencil outlines, loose sketchy pencil lines, cross-hatched shading, soft smudges, grey tones on raw off-white paper." },
281
- { id: "photorealistic", label: "Photorealistic", description: "Indistinguishable from a photograph", promptHint: "photorealistic style, high-fidelity photographic realism with natural lighting, accurate materials and DSLR-grade detail", videoPromptHint: "Photorealistic live-action footage, shot on a high-end cinema camera: natural lighting, true-to-life skin and materials, accurate colour, sharp lifelike detail." },
282
- { id: "pixel-art", label: "Pixel Art", description: "Retro game-style pixel grid", promptHint: "pixel art style, retro low-resolution pixel grid aesthetic with limited palette and hard-edged chunky sprites", videoPromptHint: "2D retro pixel-art animation, 16-bit video game sprites: dark one-pixel sprite outlines, a visible square pixel grid, hard-edged chunky sprites, a limited colour palette, dithered shading, crisp unsmoothed pixel edges." },
283
- { id: "pop-art", label: "Pop Art", description: "Bold colors, Warhol/Lichtenstein", promptHint: "pop art style, bold saturated colors, Ben-Day dots and high-contrast Warhol/Lichtenstein-inspired graphic look", videoPromptHint: "Flat 2D cel-shaded comic illustration, hand-drawn: thick uniform black ink outlines, flat colour fills, Ben-Day dot shading, bold saturated primary colours, high contrast." },
284
- { id: "retro-vintage", label: "Retro / Vintage", description: "Faded nostalgic film look", promptHint: "retro vintage style, faded nostalgic film look with muted colors, subtle grain and old-photograph warmth", term: "retro vintage film look", videoPromptHint: "Vintage live-action footage, shot on old film stock: faded muted colours, warm yellowed tones, soft halation, visible film grain and light scratches." },
285
- { id: "watercolor", label: "Watercolor", description: "Soft transparent washes", promptHint: "watercolor style, soft transparent washes with bleeding edges, paper grain and delicate pigment pooling", videoPromptHint: "2D watercolour illustration, hand-painted: fine ink outlines, soft transparent washes, bleeding wet edges, pooled pigment, visible paper grain." },
286
- { id: "concept-art", label: "Concept Art", description: "Film/game pre-production painting", promptHint: "concept art style, painterly film and game pre-production illustration with dramatic lighting, moody atmosphere and loose brushwork emphasizing scale and storytelling", videoPromptHint: "2D film concept-art illustration, digitally painted: rough ink outlines, loose expressive brushwork, dramatic cinematic lighting, moody atmospheric colours, an epic sense of scale." },
287
- { id: "impressionism", label: "Impressionism", description: "Monet-style dabbed brushwork", promptHint: "impressionist style, Monet-inspired visible dabbed brush strokes, soft natural light, pastel palette and loose color mixing that captures atmosphere over detail", term: "impressionist painting", videoPromptHint: "2D impressionist illustration, Monet-inspired: thin dark outlines, visible dabbed brush strokes, broken colour, soft natural light, a pastel palette, loosely blended atmosphere." },
288
- { id: "surrealism", label: "Surrealism", description: "Dreamlike Dal\xED-inspired", promptHint: "surrealist style, Dal\xED-inspired dreamlike imagery with impossible geometry, melting forms, floating elements and uncanny color combinations", term: "surrealist painting", videoPromptHint: "2D surrealist illustration, Dal\xED-inspired: fine dark outlines, smooth academic oil rendering, dreamlike impossible geometry, melting and floating forms, long hard shadows, uncanny colour." },
289
- { id: "cyberpunk", label: "Cyberpunk", description: "Neon-lit dystopian future", promptHint: "cyberpunk style, neon-lit dystopian future aesthetic with magenta and cyan glow, rain-slick reflections, high-tech low-life mood and dense urban detail", videoPromptHint: "Live-action cyberpunk film, shot at night: every location lit by neon magenta and cyan light, wet reflective surfaces, haze and holographic glow, dense high-tech detail, deep night shadows." },
290
- { id: "steampunk", label: "Steampunk", description: "Victorian brass + machinery", promptHint: "steampunk style, Victorian-era brass and copper machinery, exposed gears and pipes, sepia tones and retrofuturistic mechanical detail", videoPromptHint: "Live-action steampunk film: Victorian costumes and sets of brass and copper machinery, exposed gears and pipes, warm sepia lighting, retrofuturistic mechanical detail." },
291
- { id: "vaporwave", label: "Vaporwave", description: "80s pastel digital retro", promptHint: "vaporwave style, 1980s digital retro aesthetic with pastel pink and teal palette, chrome text, glitch artifacts, palm silhouettes and dreamlike sunset grids", videoPromptHint: "2D vaporwave digital illustration, 1980s retro-digital: clean neon outlines, a pastel pink and teal palette, chrome gradients, neon grid horizons, glitch artifacts, palm silhouettes against a sunset." },
292
- { id: "low-poly", label: "Low Poly", description: "Faceted geometric 3D", promptHint: "low poly style, faceted geometric 3D aesthetic with visible flat triangular faces, simplified forms and crisp shadow edges between facets", videoPromptHint: "Stylised low poly 3D animation, computer-generated: every person, face, vehicle and room built from large flat-shaded triangles, visible facets on every surface, flat untextured colours, crisp shadow edges between facets." },
293
- { id: "ink-wash", label: "Ink Wash", description: "East-Asian sumi-e brush", promptHint: "ink wash sumi-e style, East-Asian brush painting on rice paper with bold gestural black brush strokes, soft ink bleeding and generous negative space", term: "sumi-e ink wash painting", videoPromptHint: "2D East-Asian sumi-e ink wash illustration, brushed on rice paper: bold black brush outlines in gestural strokes, soft ink bleeding, grey diluted washes, generous empty space." },
294
- { id: "isometric", label: "Isometric", description: "3/4 axonometric view", promptHint: "isometric style, 3/4 axonometric projection with clean geometric forms, bright saturated flat colors and uniform lighting like a tile-based game or architectural diagram", videoPromptHint: "Isometric game-style 3D illustration: clean geometric blocky forms, bright saturated flat colours, uniform soft lighting, crisp edges, a miniature diorama look." },
295
- { id: "flat-vector", label: "Flat Vector", description: "Modern flat illustration", promptHint: "flat vector illustration style, modern SaaS-style flat shapes with bright solid colors, no gradients or shadows, clean geometry and friendly simplified forms", term: "flat vector illustration", videoPromptHint: "Flat 2D vector illustration, motion-graphics style: thin dark outlines, clean geometric shapes, bright solid colour fills, crisp clean edges, simplified friendly forms, flat backgrounds." },
296
- { id: "ukiyo-e", label: "Ukiyo-e", description: "Japanese woodblock print", promptHint: "ukiyo-e style, traditional Japanese woodblock print with bold outlined flat color planes, Hokusai-inspired palette and stylized natural elements", videoPromptHint: "Animated Japanese ukiyo-e woodblock print, Hokusai-inspired: bold black outlines, flat planes of colour, subtle woodgrain paper texture, an indigo and earth-tone palette, stylised waves, clouds and natural elements." },
297
- { id: "graffiti", label: "Graffiti", description: "Street-art spray paint", promptHint: "graffiti street art style, vivid urban spray-paint aesthetic with bold tag lettering, drip textures, stencil edges and gritty wall surfaces", term: "graffiti street art", videoPromptHint: "Street-art graffiti animation, spray-painted on walls: vivid spray-paint colours, bold outlines, drips and overspray, stencil edges, gritty brick and concrete textures." },
298
- { id: "claymation", label: "Claymation", description: "Tactile stop-motion clay", promptHint: "claymation stop-motion style, tactile handcrafted clay figures with visible fingerprints, rounded plasticine forms and warm diorama lighting reminiscent of Aardman productions", videoPromptHint: "Stop-motion claymation, handmade: every person, vehicle and set sculpted from matte plasticine clay with visible fingerprints and tool marks, rounded simplified forms, miniature handcrafted diorama sets, soft warm studio lighting." },
299
- { id: "glitch-art", label: "Glitch Art", description: "Digital corruption + datamosh", promptHint: "glitch art style, digital corruption aesthetic with chromatic aberration, RGB channel shifts, horizontal scanline tearing, pixel sorting and datamoshed compression artifacts", videoPromptHint: "Glitch-art digital video, datamoshed in every frame: strong chromatic aberration with red and cyan fringes on every edge, RGB channel shifts, horizontal scanline tearing, pixel-sorting streaks, blocky compression artifacts." },
300
- { id: "ascii-art", label: "ASCII Art", description: "Monochrome terminal characters", promptHint: "ASCII art style, monochrome terminal aesthetic built from text characters (@ # %, . :) forming the image, green-on-black old-computer vibe, monospace typography and character-grid rendering", videoPromptHint: "ASCII-art animation, rendered in text characters: every shape built from monospace characters (@ # % . :), green on black, a terminal character grid, old-computer screen glow." },
301
- { id: "blueprint", label: "Blueprint", description: "Technical drawing on blue", promptHint: "blueprint technical drawing style, white line work on deep cyan-blue paper with dimension lines, annotations, orthographic projections and engineering-schematic precision", term: "blueprint technical drawing", videoPromptHint: "2D blueprint technical drawing, drafted by hand: crisp white outlines on deep cyan-blue paper, dimension lines and annotations, orthographic construction lines, engineering-schematic precision." },
302
- { id: "stained-glass", label: "Stained Glass", description: "Leaded colored glass mosaic", promptHint: "stained glass window style, tessellated colored glass panels separated by thick black lead lines, luminous backlit jewel tones and church-window composition", videoPromptHint: "Animated stained-glass window: every shape made of coloured glass panels separated by thick black lead lines, luminous backlit jewel tones, a church-window composition." },
303
- { id: "chalkboard", label: "Chalkboard", description: "White chalk on slate", promptHint: "chalkboard style, white and pastel chalk on dark slate with smudged edges, visible chalk dust, hand-drawn marks and classroom-lecture feel", term: "chalk drawing on blackboard", videoPromptHint: "2D chalk illustration, hand-drawn on a blackboard: bold white chalk outlines, pastel chalk colour on dark slate, smudged edges, visible chalk dust, hand-drawn classroom sketch marks." },
304
- { id: "paper-cutout", label: "Paper Cutout", description: "Layered cut paper + shadows", promptHint: "paper cutout papercraft style, Matisse-inspired layered cut paper shapes with visible paper texture, clean scissor edges and soft drop shadows between layered planes", videoPromptHint: "2D paper cutout stop-motion animation, handcrafted: every person, vehicle and set cut from layered coloured paper, thin dark outlines, visible paper texture, clean scissor edges, drop shadows between layers, Matisse-inspired flat colours." },
305
- { id: "illuminated", label: "Illuminated Manuscript", description: "Gold leaf + calligraphy", promptHint: "illuminated manuscript style, medieval parchment with gold leaf accents, ornate decorative borders with vines and creatures, calligraphic script and jewel-toned miniature paintings", videoPromptHint: "2D medieval illuminated-manuscript illustration, hand-painted: fine black ink outlines, parchment texture, gold leaf accents, ornate decorative borders with vines, jewel-toned miniature painting, flat medieval perspective." },
306
- { id: "pixar-3d", label: "Pixar 3D", description: "Polished character animation CG", promptHint: "Pixar-style 3D character animation, polished CG with appealing rounded character design, soft subsurface skin shading, cinematic key lighting and expressive animated feature-film quality", term: "pixar-style 3d animation", videoPromptHint: "Pixar-style 3D animated feature film: appealing rounded character designs, soft subsurface skin shading, polished CG materials, cinematic key lighting, expressive animation." },
307
- { id: "caricature", label: "Caricature", description: "Exaggerated stylized portrait", promptHint: "caricature illustration style, an exaggerated stylized portrait with a comically oversized head on a small body, amplified signature features \u2014 large nose, wide grin, oversized eyes \u2014 drawn with confident ink lines and watery color washes in the tradition of street-fair sketch artists", videoPromptHint: "2D caricature illustration, hand-drawn: confident black ink outlines, oversized heads on small bodies, exaggerated signature features, loose watercolour washes, a street-fair sketch-artist look." },
308
- { id: "fresco", label: "Fresco", description: "Renaissance plaster wall painting", promptHint: "rendered as a fresco painting in the style of a Renaissance ceiling, mineral pigments soaked into wet lime plaster with a chalky matte surface, softly weathered tonal range, faint craquelure and warm earthen palette reminiscent of Michelangelo's Sistine Chapel", videoPromptHint: "2D Renaissance fresco illustration, painted on wet lime plaster: dark painted outlines, mineral pigments, a chalky matte surface, softly weathered tones, faint craquelure, a warm earthen palette." },
309
- { id: "mosaic", label: "Mosaic", description: "Byzantine tessera tile composition", promptHint: "rendered as a mosaic composed of small hand-cut tesserae in stone, ceramic and gilded glass, visible grout lines between every tile, faceted highlights catching the light and a Byzantine / ancient-Roman aesthetic with stylized figures on a shimmering gold ground", videoPromptHint: "2D Byzantine mosaic: every shape built from small hand-cut tesserae of stone, ceramic and gilded glass, each figure outlined in a row of dark tesserae, visible grout lines between tiles, faceted glints, a shimmering gold ground." },
310
- { id: "woodcut", label: "Woodcut", description: "D\xFCrer-era relief print woodblock", promptHint: "rendered as a woodcut relief print, bold stark black ink on cream paper with assertive carved lines, parallel hatching for tonal shading, high-contrast graphic shapes and the wiry expressive line-work of D\xFCrer-era Northern Renaissance prints", videoPromptHint: "2D woodcut relief-print illustration, D\xFCrer-era: bold carved black outlines, stark black ink on cream paper, parallel hatching for shading, high-contrast graphic shapes." },
311
- { id: "etching", label: "Etching", description: "Rembrandt-style intaglio print", promptHint: "rendered as an intaglio etching, dense fine cross-hatched lines bitten into a copper plate, rich velvety blacks against warm cream paper, delicate tonal gradations and the introspective chiaroscuro of a Rembrandt print", videoPromptHint: "2D intaglio etching illustration, Rembrandt-style: fine black etched outlines, dense cross-hatched lines, rich velvety blacks on warm cream paper, delicate tonal gradations, deep chiaroscuro." },
312
- { id: "lithograph", label: "Lithograph", description: "Toulouse-Lautrec stone-printed poster", promptHint: "rendered as a stone lithograph, soft graphite-like tonal range with grainy crayon textures, flat areas of limited spot color, slightly off-register edges and the bold poster-art sensibility of a Toulouse-Lautrec belle-\xE9poque print", videoPromptHint: "2D stone-lithograph poster illustration, Toulouse-Lautrec style: every person and room drawn in fluid black brush outlines, flat areas of limited spot colour, grainy crayon textures on cream paper, off-register edges, bold poster shapes." },
313
- { id: "charcoal", label: "Charcoal Drawing", description: "Smudgeable black tonal study", promptHint: "rendered as a charcoal drawing on toothy paper, soft black and grey tonal masses with smudged blended midtones, sharp accented darks, expressive gestural strokes and the raw immediacy of a fine-art figure study", videoPromptHint: "Rough 2D charcoal sketch, hand-drawn on white paper: every person and every face drawn in heavy black charcoal outlines and loose hatched strokes, white paper showing through, smudged edges, bold gestural lines." },
314
- { id: "pastel", label: "Pastel", description: "Degas-era soft chalk pastel", promptHint: "rendered as a soft chalk pastel drawing, dry powdery pigment laid in feathered strokes on tinted paper with luminous dusty colors, gently blended edges and the dreamy Degas-era atmosphere of dancers in stage light", term: "soft pastel drawing", videoPromptHint: "2D soft-pastel illustration, hand-drawn on tinted paper: dark pastel outlines, dry powdery pigment in feathered strokes, luminous dusty colours, gently blended edges, a Degas-era softness." },
315
- { id: "acrylic-paint", label: "Acrylic Paint", description: "Fast-drying opaque acrylic on canvas", promptHint: "rendered as an acrylic painting on canvas, fast-drying opaque pigment with crisp sharp edges, confident quick brush strokes, high-key saturated color and a flatter more graphic finish than traditional oil paint", term: "acrylic painting", videoPromptHint: "2D acrylic illustration, hand-painted on canvas: bold dark outlines, opaque fast-drying pigment, crisp sharp edges, confident quick brush strokes, high-key saturated colours, a flat graphic finish." },
316
- { id: "mixed-media", label: "Mixed Media", description: "Collage + paint + ink hybrid", promptHint: "rendered as a mixed-media artwork combining torn paper collage, acrylic paint, ink and graphite on a layered substrate, heterogeneous textures, visible tape and stitching, and an exuberant hand-assembled studio-art quality", videoPromptHint: "2D mixed-media collage illustration, hand-assembled: bold ink outlines, torn paper collage, acrylic paint and graphite layers, varied textures, visible tape and stitching." },
317
- { id: "manga", label: "Manga", description: "Inked B&W Japanese comic panel", promptHint: "rendered as inked manga panel art, crisp black ink on white with confident line weight variation, screen-tone dot patterns for shading, dramatic speed lines and the distinctly Japanese black-and-white comic aesthetic \u2014 separate from full-color anime", videoPromptHint: "Animated black-and-white Japanese manga, hand-inked: crisp black ink line art with varied line weight, screentone dot shading, speed lines, stark black and white." },
318
- { id: "early-color-photo", label: "Early Color Photo", description: "Prokudin-Gorsky / autochrome early-1900s color", promptHint: "rendered as an early-1900s color photograph in the Prokudin-Gorsky / autochrome tradition \u2014 soft three-colour-separation registration, muted dye-toned palette, fine grain and a gentle antique warmth", term: "early autochrome color photograph", videoPromptHint: "Early-1900s autochrome colour photography, in motion: soft three-colour registration, a muted dye-toned palette, fine grain, gentle antique warmth." }
272
+ { id: "3d-render", label: "3D Render", description: "Modern CGI render with clean shading", promptHint: "3D rendered style, modern CGI aesthetic with clean shading, subtle ambient occlusion and crisp materials", videoPromptHint: "Stylised 3D render animation, computer-generated: every person, vehicle and room modelled in smooth matte CG surfaces, simplified clean forms, soft studio lighting, gentle ambient occlusion, bright clean colours.", medium: "3d" },
273
+ { id: "anime", label: "Anime", description: "Japanese animation look", promptHint: "anime style, Japanese animation aesthetic with bold cel-shaded lines, expressive eyes and saturated colors", videoPromptHint: "2D Japanese anime, hand-drawn cel animation: clean thin ink line art, flat cel shading with one hard shadow tone, large expressive eyes, hair drawn as solid shapes, saturated colours, painted backgrounds.", medium: "2d" },
274
+ { id: "children-book", label: "Children's Book", description: "Warm illustrated storybook", promptHint: "children's book illustration style, warm hand-drawn storybook look with soft shapes, friendly characters and inviting colors", term: "children's book illustration", videoPromptHint: "2D children's picture-book illustration, hand-drawn: soft pencil outlines, gentle gouache and coloured-pencil fills, rounded friendly shapes, warm inviting colours, simple storybook backgrounds.", medium: "2d" },
275
+ { id: "cinematic", label: "Cinematic", description: "Film-grade dramatic image", promptHint: "cinematic film style, dramatic lighting with cinematic color grading, widescreen aesthetic and film-like depth of field", videoPromptHint: "Live-action cinema footage, shot on film: dramatic motivated lighting, rich cinematic colour grading, shallow depth of field, widescreen framing, fine film grain.", medium: "photo" },
276
+ { id: "comic-book", label: "Comic Book", description: "Inked panels with flat color", promptHint: "comic book style, bold inked outlines, halftone shading and flat saturated comic panel colors", term: "comic book art", videoPromptHint: "2D comic-book illustration, hand-inked: bold black ink outlines, halftone dot shading, flat saturated panel colours, hard-edged shadow shapes, strong graphic contrast.", medium: "2d" },
277
+ { id: "digital-art", label: "Digital Art", description: "Polished digital illustration", promptHint: "digital art style, polished digital painting with smooth brushwork, vibrant colors and clean rendering", videoPromptHint: "2D digital illustration, hand-painted on a tablet: crisp ink outlines, smooth brushwork, soft blended shading, vibrant saturated colours, clean polished rendering, glowing highlights.", medium: "2d" },
278
+ { id: "fantasy", label: "Fantasy", description: "Epic high-fantasy illustration", promptHint: "fantasy art style, epic high-fantasy illustration with painterly detail, magical atmosphere and rich lore-driven mood", term: "fantasy art", videoPromptHint: "2D high-fantasy illustration, hand-painted: fine ink outlines, rich painterly detail, ornate costumes and settings, magical glowing light, deep atmospheric colours, epic dramatic mood.", medium: "2d", restyle: false },
279
+ { id: "minimalist", label: "Minimalist", description: "Simple shapes, lots of whitespace", promptHint: "minimalist style, reduced composition with simple shapes, limited palette and generous negative space", videoPromptHint: "Minimalist 2D animation, flat graphic: simple geometric shapes, clean thin outlines, a limited palette of two or three flat colours, smooth untextured surfaces, generous empty space.", medium: "2d" },
280
+ { id: "noir", label: "Noir", description: "High-contrast B&W film noir", promptHint: "film noir style, high-contrast black-and-white imagery, deep shadows, venetian-blind lighting and moody 1940s cinema feel", term: "film noir", videoPromptHint: "Live-action black-and-white film noir, shot on film: every shot in high-contrast black and white, deep black shadows, hard venetian-blind light patterns, smoky 1940s atmosphere, fine film grain.", medium: "photo", tones: "black-and-white" },
281
+ { id: "oil-painting", label: "Oil Painting", description: "Thick brush strokes, classical canvas", promptHint: "oil painting style, visible thick brush strokes on canvas with rich pigment, classical painterly texture and warm tonal blending", videoPromptHint: "2D oil-painted illustration, hand-painted on canvas: dark painted outlines, thick visible brush strokes, rich layered pigment, canvas weave texture, warm tonal blending, classical painterly light.", medium: "2d" },
282
+ { id: "pencil-sketch", label: "Pencil Sketch", description: "Hand-drawn graphite drawing", promptHint: "pencil sketch style, hand-drawn graphite drawing with visible hatching, soft smudges and raw paper texture", videoPromptHint: "2D graphite pencil illustration, hand-drawn on paper: dark pencil outlines, loose sketchy pencil lines, cross-hatched shading, soft smudges, grey tones on raw off-white paper.", medium: "2d", tones: "black-and-white" },
283
+ { id: "photorealistic", label: "Photorealistic", description: "Indistinguishable from a photograph", promptHint: "photorealistic style, high-fidelity photographic realism with natural lighting, accurate materials and DSLR-grade detail", videoPromptHint: "Photorealistic live-action footage, shot on a high-end cinema camera: natural lighting, true-to-life skin and materials, accurate colour, sharp lifelike detail.", medium: "photo" },
284
+ { id: "pixel-art", label: "Pixel Art", description: "Retro game-style pixel grid", promptHint: "pixel art style, retro low-resolution pixel grid aesthetic with limited palette and hard-edged chunky sprites", videoPromptHint: "2D retro pixel-art animation, 16-bit video game sprites: dark one-pixel sprite outlines, a visible square pixel grid, hard-edged chunky sprites, a limited colour palette, dithered shading, crisp unsmoothed pixel edges.", medium: "2d" },
285
+ { id: "pop-art", label: "Pop Art", description: "Bold colors, Warhol/Lichtenstein", promptHint: "pop art style, bold saturated colors, Ben-Day dots and high-contrast Warhol/Lichtenstein-inspired graphic look", videoPromptHint: "Flat 2D cel-shaded comic illustration, hand-drawn: thick uniform black ink outlines, flat colour fills, Ben-Day dot shading, bold saturated primary colours, high contrast.", medium: "2d" },
286
+ { id: "retro-vintage", label: "Retro / Vintage", description: "Faded nostalgic film look", promptHint: "retro vintage style, faded nostalgic film look with muted colors, subtle grain and old-photograph warmth", term: "retro vintage film look", videoPromptHint: "Vintage live-action footage, shot on old film stock: faded muted colours, warm yellowed tones, soft halation, visible film grain and light scratches.", medium: "photo" },
287
+ { id: "watercolor", label: "Watercolor", description: "Soft transparent washes", promptHint: "watercolor style, soft transparent washes with bleeding edges, paper grain and delicate pigment pooling", videoPromptHint: "2D watercolour illustration, hand-painted: fine ink outlines, soft transparent washes, bleeding wet edges, pooled pigment, visible paper grain.", medium: "2d" },
288
+ { id: "concept-art", label: "Concept Art", description: "Film/game pre-production painting", promptHint: "concept art style, painterly film and game pre-production illustration with dramatic lighting, moody atmosphere and loose brushwork emphasizing scale and storytelling", videoPromptHint: "2D film concept-art illustration, digitally painted: rough ink outlines, loose expressive brushwork, dramatic cinematic lighting, moody atmospheric colours, an epic sense of scale.", medium: "2d", restyle: false },
289
+ { id: "impressionism", label: "Impressionism", description: "Monet-style dabbed brushwork", promptHint: "impressionist style, Monet-inspired visible dabbed brush strokes, soft natural light, pastel palette and loose color mixing that captures atmosphere over detail", term: "impressionist painting", videoPromptHint: "2D impressionist illustration, Monet-inspired: thin dark outlines, visible dabbed brush strokes, broken colour, soft natural light, a pastel palette, loosely blended atmosphere.", medium: "2d" },
290
+ { id: "surrealism", label: "Surrealism", description: "Dreamlike Dal\xED-inspired", promptHint: "surrealist style, Dal\xED-inspired dreamlike imagery with impossible geometry, melting forms, floating elements and uncanny color combinations", term: "surrealist painting", videoPromptHint: "2D surrealist illustration, Dal\xED-inspired: fine dark outlines, smooth academic oil rendering, dreamlike impossible geometry, melting and floating forms, long hard shadows, uncanny colour.", medium: "2d", restyle: false },
291
+ { id: "cyberpunk", label: "Cyberpunk", description: "Neon-lit dystopian future", promptHint: "cyberpunk style, neon-lit dystopian future aesthetic with magenta and cyan glow, rain-slick reflections, high-tech low-life mood and dense urban detail", videoPromptHint: "Live-action cyberpunk film, shot at night: every location lit by neon magenta and cyan light, wet reflective surfaces, haze and holographic glow, dense high-tech detail, deep night shadows.", medium: "photo" },
292
+ { id: "steampunk", label: "Steampunk", description: "Victorian brass + machinery", promptHint: "steampunk style, Victorian-era brass and copper machinery, exposed gears and pipes, sepia tones and retrofuturistic mechanical detail", videoPromptHint: "Live-action steampunk film: Victorian costumes and sets of brass and copper machinery, exposed gears and pipes, warm sepia lighting, retrofuturistic mechanical detail.", medium: "photo" },
293
+ { id: "vaporwave", label: "Vaporwave", description: "80s pastel digital retro", promptHint: "vaporwave style, 1980s digital retro aesthetic with pastel pink and teal palette, chrome text, glitch artifacts, palm silhouettes and dreamlike sunset grids", videoPromptHint: "2D vaporwave digital illustration, 1980s retro-digital: clean neon outlines, a pastel pink and teal palette, chrome gradients, neon grid horizons, glitch artifacts, palm silhouettes against a sunset.", medium: "2d" },
294
+ { id: "low-poly", label: "Low Poly", description: "Faceted geometric 3D", promptHint: "low poly style, faceted geometric 3D aesthetic with visible flat triangular faces, simplified forms and crisp shadow edges between facets", videoPromptHint: "Stylised low poly 3D animation, computer-generated: every person, face, vehicle and room built from large flat-shaded triangles, visible facets on every surface, flat untextured colours, crisp shadow edges between facets.", medium: "3d" },
295
+ { id: "ink-wash", label: "Ink Wash", description: "East-Asian sumi-e brush", promptHint: "ink wash sumi-e style, East-Asian brush painting on rice paper with bold gestural black brush strokes, soft ink bleeding and generous negative space", term: "sumi-e ink wash painting", videoPromptHint: "2D East-Asian sumi-e ink wash illustration, brushed on rice paper: bold black brush outlines in gestural strokes, soft ink bleeding, grey diluted washes, generous empty space.", medium: "2d", tones: "black-and-white" },
296
+ { id: "isometric", label: "Isometric", description: "3/4 axonometric view", promptHint: "isometric style, 3/4 axonometric projection with clean geometric forms, bright saturated flat colors and uniform lighting like a tile-based game or architectural diagram", videoPromptHint: "Isometric game-style 3D illustration: clean geometric blocky forms, bright saturated flat colours, uniform soft lighting, crisp edges, a miniature diorama look.", medium: "3d" },
297
+ { id: "flat-vector", label: "Flat Vector", description: "Modern flat illustration", promptHint: "flat vector illustration style, modern SaaS-style flat shapes with bright solid colors, no gradients or shadows, clean geometry and friendly simplified forms", term: "flat vector illustration", videoPromptHint: "Flat 2D vector illustration, motion-graphics style: thin dark outlines, clean geometric shapes, bright solid colour fills, crisp clean edges, simplified friendly forms, flat backgrounds.", medium: "2d" },
298
+ { id: "ukiyo-e", label: "Ukiyo-e", description: "Japanese woodblock print", promptHint: "ukiyo-e style, traditional Japanese woodblock print with bold outlined flat color planes, Hokusai-inspired palette and stylized natural elements", videoPromptHint: "Animated Japanese ukiyo-e woodblock print, Hokusai-inspired: bold black outlines, flat planes of colour, subtle woodgrain paper texture, an indigo and earth-tone palette, stylised waves, clouds and natural elements.", medium: "2d" },
299
+ { id: "graffiti", label: "Graffiti", description: "Street-art spray paint", promptHint: "graffiti street art style, vivid urban spray-paint aesthetic with bold tag lettering, drip textures, stencil edges and gritty wall surfaces", term: "graffiti street art", videoPromptHint: "Street-art graffiti animation, spray-painted on walls: vivid spray-paint colours, bold outlines, drips and overspray, stencil edges, gritty brick and concrete textures.", medium: "2d" },
300
+ { id: "claymation", label: "Claymation", description: "Tactile stop-motion clay", promptHint: "claymation stop-motion style, tactile handcrafted clay figures with visible fingerprints, rounded plasticine forms and warm diorama lighting reminiscent of Aardman productions", videoPromptHint: "Stop-motion claymation, handmade: every person, vehicle and set sculpted from matte plasticine clay with visible fingerprints and tool marks, rounded simplified forms, miniature handcrafted diorama sets, soft warm studio lighting.", medium: "3d" },
301
+ { id: "glitch-art", label: "Glitch Art", description: "Digital corruption + datamosh", promptHint: "glitch art style, digital corruption aesthetic with chromatic aberration, RGB channel shifts, horizontal scanline tearing, pixel sorting and datamoshed compression artifacts", videoPromptHint: "Glitch-art digital video, datamoshed in every frame: strong chromatic aberration with red and cyan fringes on every edge, RGB channel shifts, horizontal scanline tearing, pixel-sorting streaks, blocky compression artifacts.", medium: "photo" },
302
+ { id: "ascii-art", label: "ASCII Art", description: "Monochrome terminal characters", promptHint: "ASCII art style, monochrome terminal aesthetic built from text characters (@ # %, . :) forming the image, green-on-black old-computer vibe, monospace typography and character-grid rendering", videoPromptHint: "ASCII-art animation, rendered in text characters: every shape built from monospace characters (@ # % . :), green on black, a terminal character grid, old-computer screen glow.", medium: "2d", tones: "one-colour" },
303
+ { id: "blueprint", label: "Blueprint", description: "Technical drawing on blue", promptHint: "blueprint technical drawing style, white line work on deep cyan-blue paper with dimension lines, annotations, orthographic projections and engineering-schematic precision", term: "blueprint technical drawing", videoPromptHint: "2D blueprint technical drawing, drafted by hand: crisp white outlines on deep cyan-blue paper, dimension lines and annotations, orthographic construction lines, engineering-schematic precision.", medium: "2d", tones: "one-colour" },
304
+ { id: "stained-glass", label: "Stained Glass", description: "Leaded colored glass mosaic", promptHint: "stained glass window style, tessellated colored glass panels separated by thick black lead lines, luminous backlit jewel tones and church-window composition", videoPromptHint: "Animated stained-glass window: every shape made of coloured glass panels separated by thick black lead lines, luminous backlit jewel tones, a church-window composition.", medium: "2d" },
305
+ { id: "chalkboard", label: "Chalkboard", description: "White chalk on slate", promptHint: "chalkboard style, white and pastel chalk on dark slate with smudged edges, visible chalk dust, hand-drawn marks and classroom-lecture feel", term: "chalk drawing on blackboard", videoPromptHint: "2D chalk illustration, hand-drawn on a blackboard: bold white chalk outlines, pastel chalk colour on dark slate, smudged edges, visible chalk dust, hand-drawn classroom sketch marks.", medium: "2d", tones: "one-colour" },
306
+ { id: "paper-cutout", label: "Paper Cutout", description: "Layered cut paper + shadows", promptHint: "paper cutout papercraft style, Matisse-inspired layered cut paper shapes with visible paper texture, clean scissor edges and soft drop shadows between layered planes", videoPromptHint: "2D paper cutout stop-motion animation, handcrafted: every person, vehicle and set cut from layered coloured paper, thin dark outlines, visible paper texture, clean scissor edges, drop shadows between layers, Matisse-inspired flat colours.", medium: "2d" },
307
+ { id: "illuminated", label: "Illuminated Manuscript", description: "Gold leaf + calligraphy", promptHint: "illuminated manuscript style, medieval parchment with gold leaf accents, ornate decorative borders with vines and creatures, calligraphic script and jewel-toned miniature paintings", videoPromptHint: "2D medieval illuminated-manuscript illustration, hand-painted: fine black ink outlines, parchment texture, gold leaf accents, ornate decorative borders with vines, jewel-toned miniature painting, flat medieval perspective.", medium: "2d" },
308
+ { id: "pixar-3d", label: "Pixar 3D", description: "Polished character animation CG", promptHint: "Pixar-style 3D character animation, polished CG with appealing rounded character design, soft subsurface skin shading, cinematic key lighting and expressive animated feature-film quality", term: "pixar-style 3d animation", videoPromptHint: "Pixar-style 3D animated feature film: appealing rounded character designs, soft subsurface skin shading, polished CG materials, cinematic key lighting, expressive animation.", medium: "3d" },
309
+ { id: "caricature", label: "Caricature", description: "Exaggerated stylized portrait", promptHint: "caricature illustration style, an exaggerated stylized portrait with a comically oversized head on a small body, amplified signature features \u2014 large nose, wide grin, oversized eyes \u2014 drawn with confident ink lines and watery color washes in the tradition of street-fair sketch artists", videoPromptHint: "2D caricature illustration, hand-drawn: confident black ink outlines, oversized heads on small bodies, exaggerated signature features, loose watercolour washes, a street-fair sketch-artist look.", medium: "2d" },
310
+ { id: "fresco", label: "Fresco", description: "Renaissance plaster wall painting", promptHint: "rendered as a fresco painting in the style of a Renaissance ceiling, mineral pigments soaked into wet lime plaster with a chalky matte surface, softly weathered tonal range, faint craquelure and warm earthen palette reminiscent of Michelangelo's Sistine Chapel", videoPromptHint: "2D Renaissance fresco illustration, painted on wet lime plaster: dark painted outlines, mineral pigments, a chalky matte surface, softly weathered tones, faint craquelure, a warm earthen palette.", medium: "2d" },
311
+ { id: "mosaic", label: "Mosaic", description: "Byzantine tessera tile composition", promptHint: "rendered as a mosaic composed of small hand-cut tesserae in stone, ceramic and gilded glass, visible grout lines between every tile, faceted highlights catching the light and a Byzantine / ancient-Roman aesthetic with stylized figures on a shimmering gold ground", videoPromptHint: "2D Byzantine mosaic: every shape built from small hand-cut tesserae of stone, ceramic and gilded glass, each figure outlined in a row of dark tesserae, visible grout lines between tiles, faceted glints, a shimmering gold ground.", medium: "2d" },
312
+ { id: "woodcut", label: "Woodcut", description: "D\xFCrer-era relief print woodblock", promptHint: "rendered as a woodcut relief print, bold stark black ink on cream paper with assertive carved lines, parallel hatching for tonal shading, high-contrast graphic shapes and the wiry expressive line-work of D\xFCrer-era Northern Renaissance prints", videoPromptHint: "2D woodcut relief-print illustration, D\xFCrer-era: bold carved black outlines, stark black ink on cream paper, parallel hatching for shading, high-contrast graphic shapes.", medium: "2d", tones: "black-and-white" },
313
+ { id: "etching", label: "Etching", description: "Rembrandt-style intaglio print", promptHint: "rendered as an intaglio etching, dense fine cross-hatched lines bitten into a copper plate, rich velvety blacks against warm cream paper, delicate tonal gradations and the introspective chiaroscuro of a Rembrandt print", videoPromptHint: "2D intaglio etching illustration, Rembrandt-style: fine black etched outlines, dense cross-hatched lines, rich velvety blacks on warm cream paper, delicate tonal gradations, deep chiaroscuro.", medium: "2d", tones: "black-and-white" },
314
+ { id: "lithograph", label: "Lithograph", description: "Toulouse-Lautrec stone-printed poster", promptHint: "rendered as a stone lithograph, soft graphite-like tonal range with grainy crayon textures, flat areas of limited spot color, slightly off-register edges and the bold poster-art sensibility of a Toulouse-Lautrec belle-\xE9poque print", videoPromptHint: "2D stone-lithograph poster illustration, Toulouse-Lautrec style: every person and room drawn in fluid black brush outlines, flat areas of limited spot colour, grainy crayon textures on cream paper, off-register edges, bold poster shapes.", medium: "2d" },
315
+ { id: "charcoal", label: "Charcoal Drawing", description: "Smudgeable black tonal study", promptHint: "rendered as a charcoal drawing on toothy paper, soft black and grey tonal masses with smudged blended midtones, sharp accented darks, expressive gestural strokes and the raw immediacy of a fine-art figure study", videoPromptHint: "Rough 2D charcoal sketch, hand-drawn on white paper: every person and every face drawn in heavy black charcoal outlines and loose hatched strokes, white paper showing through, smudged edges, bold gestural lines.", medium: "2d", tones: "black-and-white" },
316
+ { id: "pastel", label: "Pastel", description: "Degas-era soft chalk pastel", promptHint: "rendered as a soft chalk pastel drawing, dry powdery pigment laid in feathered strokes on tinted paper with luminous dusty colors, gently blended edges and the dreamy Degas-era atmosphere of dancers in stage light", term: "soft pastel drawing", videoPromptHint: "2D soft-pastel illustration, hand-drawn on tinted paper: dark pastel outlines, dry powdery pigment in feathered strokes, luminous dusty colours, gently blended edges, a Degas-era softness.", medium: "2d" },
317
+ { id: "acrylic-paint", label: "Acrylic Paint", description: "Fast-drying opaque acrylic on canvas", promptHint: "rendered as an acrylic painting on canvas, fast-drying opaque pigment with crisp sharp edges, confident quick brush strokes, high-key saturated color and a flatter more graphic finish than traditional oil paint", term: "acrylic painting", videoPromptHint: "2D acrylic illustration, hand-painted on canvas: bold dark outlines, opaque fast-drying pigment, crisp sharp edges, confident quick brush strokes, high-key saturated colours, a flat graphic finish.", medium: "2d" },
318
+ { id: "mixed-media", label: "Mixed Media", description: "Collage + paint + ink hybrid", promptHint: "rendered as a mixed-media artwork combining torn paper collage, acrylic paint, ink and graphite on a layered substrate, heterogeneous textures, visible tape and stitching, and an exuberant hand-assembled studio-art quality", videoPromptHint: "2D mixed-media collage illustration, hand-assembled: bold ink outlines, torn paper collage, acrylic paint and graphite layers, varied textures, visible tape and stitching.", medium: "2d" },
319
+ { id: "manga", label: "Manga", description: "Inked B&W Japanese comic panel", promptHint: "rendered as inked manga panel art, crisp black ink on white with confident line weight variation, screen-tone dot patterns for shading, dramatic speed lines and the distinctly Japanese black-and-white comic aesthetic \u2014 separate from full-color anime", videoPromptHint: "Animated black-and-white Japanese manga, hand-inked: crisp black ink line art with varied line weight, screentone dot shading, speed lines, stark black and white.", medium: "2d", tones: "black-and-white" },
320
+ { id: "early-color-photo", label: "Early Color Photo", description: "Prokudin-Gorsky / autochrome early-1900s color", promptHint: "rendered as an early-1900s color photograph in the Prokudin-Gorsky / autochrome tradition \u2014 soft three-colour-separation registration, muted dye-toned palette, fine grain and a gentle antique warmth", term: "early autochrome color photograph", videoPromptHint: "Early-1900s autochrome colour photography, in motion: soft three-colour registration, a muted dye-toned palette, fine grain, gentle antique warmth.", medium: "photo" },
321
+ // Video-only styles (`media: ["video"]`): material and 3D-animation looks
322
+ // that restyle a whole clip. Each video wording is the line that restyled
323
+ // every shot of the same live-action clip in a Seedance 2.5 test (medium
324
+ // first, then its concrete techniques after a colon); Felt Puppet's names
325
+ // the set's materials one by one, which felted the cars, street and
326
+ // curtains as well as the people.
327
+ { id: "felt-puppet", label: "Felt Puppet", description: "Needle-felted stop-motion puppets and set", promptHint: "needle-felted stop-motion puppet style, soft fuzzy wool-felt characters with simple stitched features and bead eyes, fabric clothes, in a handmade felt miniature set", videoPromptHint: "Needle-felted stop-motion puppet animation, handmade: every person a felt puppet with soft fuzzy wool-felt skin, simple stitched features, small bead-like eyes and hair of felted wool strands, clothes sewn from real fabric with visible weave. The whole set is a handmade felt miniature: every car a fuzzy felt-covered model with felt seats, every wall, floor, curtain, table, chair and plant made of felt or wool fabric with visible fibres, the street and sky felt too; warm soft studio light on a tabletop miniature set, a slight stop-motion step to the motion.", medium: "3d", media: ["video"] },
328
+ { id: "knitted-yarn", label: "Knitted Yarn", description: "A world knitted from wool yarn", promptHint: "knitted yarn style, characters as knitted dolls with visible knit loops and chunky yarn hair in a miniature world knitted from wool", term: "knitted yarn miniature", videoPromptHint: "Knitted yarn stop-motion animation, handmade: every person a knitted doll with yarn skin in visible knit loops, hair of chunky yarn strands, clothes knitted in cable and rib stitch; every car, building, road, tree and sky knitted from wool yarn with visible stitches; soft warm studio light on a tabletop miniature set, a slight stop-motion step to the motion.", medium: "3d", media: ["video"] },
329
+ { id: "toy-figure-3d", label: "Toy Figure 3D", description: "Rounded vinyl toy figures", promptHint: "3D toy figure style, rounded vinyl toy characters with glossy plastic skin, oversized heads and moulded hair in a chunky toy-model world", term: "3D vinyl toy figure", videoPromptHint: "Stylised 3D toy animation, computer-generated: every person a rounded vinyl toy figure with smooth glossy plastic skin, a simplified oversized head, small dot eyes and moulded plastic hair, clothes as moulded painted plastic; every car, room and prop a chunky rounded toy model with soft bevelled edges; bright clean colours, soft studio lighting.", medium: "3d", media: ["video"] },
330
+ { id: "painterly-3d", label: "Painterly 3D", description: "Storybook 3D with a hand-painted finish", promptHint: "painterly 3D animation style, stylised 3D characters with soft rounded features textured with visible painted brush strokes in a storybook-painted world", videoPromptHint: "Painterly 3D animation, computer-generated with a hand-painted finish: every person a stylised 3D character with soft rounded features and expressive eyes, skin, hair and clothes textured with visible painted brush strokes; every room and landscape a 3D set painted like a storybook illustration; warm glowing light, rich soft colours.", medium: "3d", media: ["video"] },
331
+ { id: "painted-clay", label: "Painted Clay", description: "Sculpted clay with a painted finish", promptHint: "painted clay style, matte sculpted clay figures with visible thumbprints and tool marks, hand-painted in soft gouache colour", term: "painted clay sculpture", videoPromptHint: "Sculpted clay animation with a painted finish, handmade: every person sculpted from matte clay with visible thumbprints and tool marks, painted in soft gouache colour; every car, room and prop sculpted and hand-painted the same way; warm painterly light, a slight stop-motion step to the motion.", medium: "3d", media: ["video"] }
319
332
  ];
320
333
  var styleById = new Map(STYLES.map((s) => [s.id, s]));
321
334
  function getStyle(id) {
@@ -342,6 +355,26 @@ function getStyleVideoPromptHint(id) {
342
355
  function getStyleTerm(id) {
343
356
  return chunkFY4AMIDB_cjs.resolveTerm(getStyle(id));
344
357
  }
358
+ function getStyleMedium(id) {
359
+ const s = getStyle(id);
360
+ if (!s) return void 0;
361
+ return STYLE_MEDIUMS.includes(s.medium) ? s.medium : "2d";
362
+ }
363
+ function getStyleTones(id) {
364
+ return getStyle(id)?.tones;
365
+ }
366
+ function styleOffersMedia(style, media) {
367
+ return style.media === void 0 || style.media.includes(media);
368
+ }
369
+ function stylesForMedia(styles, media) {
370
+ return styles.filter((s) => styleOffersMedia(s, media));
371
+ }
372
+ function styleOffersRestyle(style) {
373
+ return style.restyle !== false;
374
+ }
375
+ function stylesForRestyle(styles) {
376
+ return styles.filter((s) => styleOffersMedia(s, "video") && styleOffersRestyle(s));
377
+ }
345
378
  var STYLE_IDS = STYLES.map((s) => s.id);
346
379
 
347
380
  // src/color-look.ts
@@ -17812,6 +17845,8 @@ function toOptions(arr, categoryField) {
17812
17845
  };
17813
17846
  if (e.description) opt.description = e.description;
17814
17847
  if (e.videoPromptHint) opt.videoPromptHint = e.videoPromptHint;
17848
+ if (e.media) opt.media = e.media;
17849
+ if (e.restyle === false) opt.restyle = false;
17815
17850
  if (categoryField) opt.category = e[categoryField];
17816
17851
  if (e.adultOnly) opt.adultOnly = true;
17817
17852
  if (e.instant) opt.instant = true;
@@ -18399,7 +18434,7 @@ function summarizePickerCatalogs(opts = {}) {
18399
18434
  // Every option the detail call will return, whichever kind — a single-dim
18400
18435
  // catalog with secondary dimensions carries both.
18401
18436
  optionCount: all.length,
18402
- imageCount: images ? all.filter(({ field, option }) => chunkUNR34GYU_cjs.pickerOptionImageUrl(c, field, option.id, images) !== void 0).length : 0
18437
+ imageCount: images ? all.filter(({ field, option }) => chunkWW7IHRIE_cjs.pickerOptionImageUrl(c, field, option.id, images) !== void 0).length : 0
18403
18438
  };
18404
18439
  });
18405
18440
  }
@@ -18417,6 +18452,10 @@ function projectOption(o, detail, image) {
18417
18452
  function projectOptionFields(o, detail, image) {
18418
18453
  const extras = {
18419
18454
  ...o.motion ? { motion: o.motion } : {},
18455
+ // A style's media rides at both detail levels: a thin client filters its image style list by it.
18456
+ ...o.media ? { media: [...o.media] } : {},
18457
+ // A style restyle lists leave out says so at both detail levels too.
18458
+ ...o.restyle === false ? { restyle: false } : {},
18420
18459
  ...image ? { imageUrl: image.url } : {},
18421
18460
  ...image?.srcSet ? { imageSrcSet: image.srcSet } : {}
18422
18461
  };
@@ -18436,7 +18475,7 @@ function catalogSections(c, images) {
18436
18475
  if (!source) return void 0;
18437
18476
  const present = new Set((c.dimensions ?? []).map((d) => d.field));
18438
18477
  return source.map((s) => {
18439
- const imageUrl = images ? chunkUNR34GYU_cjs.pickerSectionImageUrl(s.label, images) : void 0;
18478
+ const imageUrl = images ? chunkWW7IHRIE_cjs.pickerSectionImageUrl(s.label, images) : void 0;
18440
18479
  return { label: s.label, fields: s.fields.filter((f) => present.has(f)), ...imageUrl ? { imageUrl } : {} };
18441
18480
  }).filter((s) => s.fields.length > 0);
18442
18481
  }
@@ -18454,7 +18493,7 @@ function projectPickerCatalog(c, opts = {}) {
18454
18493
  detail
18455
18494
  };
18456
18495
  const images = opts.images;
18457
- const imageOf = (field, o) => images ? chunkUNR34GYU_cjs.pickerOptionImage(c, field, o.id, images) : void 0;
18496
+ const imageOf = (field, o) => images ? chunkWW7IHRIE_cjs.pickerOptionImage(c, field, o.id, images) : void 0;
18458
18497
  const projectDims = (dims2) => dims2.map((d) => ({
18459
18498
  field: d.field,
18460
18499
  label: d.label,
@@ -18600,6 +18639,8 @@ exports.SINGING_STYLES = SINGING_STYLES;
18600
18639
  exports.SMOKE_PUFF_STYLE = SMOKE_PUFF_STYLE;
18601
18640
  exports.STYLES = STYLES;
18602
18641
  exports.STYLE_IDS = STYLE_IDS;
18642
+ exports.STYLE_MEDIA = STYLE_MEDIA;
18643
+ exports.STYLE_MEDIUMS = STYLE_MEDIUMS;
18603
18644
  exports.STYLINGS = STYLINGS;
18604
18645
  exports.STYLING_DIMENSION_LABELS = STYLING_DIMENSION_LABELS;
18605
18646
  exports.STYLING_DIMENSION_ORDER = STYLING_DIMENSION_ORDER;
@@ -18806,8 +18847,10 @@ exports.getSingingStyle = getSingingStyle;
18806
18847
  exports.getSingingStyleTerm = getSingingStyleTerm;
18807
18848
  exports.getStyle = getStyle;
18808
18849
  exports.getStyleLabel = getStyleLabel;
18850
+ exports.getStyleMedium = getStyleMedium;
18809
18851
  exports.getStylePromptHint = getStylePromptHint;
18810
18852
  exports.getStyleTerm = getStyleTerm;
18853
+ exports.getStyleTones = getStyleTones;
18811
18854
  exports.getStyleVideoPromptHint = getStyleVideoPromptHint;
18812
18855
  exports.getStyling = getStyling;
18813
18856
  exports.getStylingDimensionLimit = getStylingDimensionLimit;
@@ -18853,6 +18896,10 @@ exports.projectPickerCatalog = projectPickerCatalog;
18853
18896
  exports.readTransitionOptionValues = readTransitionOptionValues;
18854
18897
  exports.renderTransitionBases = renderTransitionBases;
18855
18898
  exports.setComposedCatalogResolver = setComposedCatalogResolver;
18899
+ exports.styleOffersMedia = styleOffersMedia;
18900
+ exports.styleOffersRestyle = styleOffersRestyle;
18901
+ exports.stylesForMedia = stylesForMedia;
18902
+ exports.stylesForRestyle = stylesForRestyle;
18856
18903
  exports.summarizePickerCatalogs = summarizePickerCatalogs;
18857
- //# sourceMappingURL=chunk-54BYDWAM.cjs.map
18858
- //# sourceMappingURL=chunk-54BYDWAM.cjs.map
18904
+ //# sourceMappingURL=chunk-GTN3UO74.cjs.map
18905
+ //# sourceMappingURL=chunk-GTN3UO74.cjs.map