diff options
Diffstat (limited to 'internal/config')
| -rw-r--r-- | internal/config/config.go | 30 | ||||
| -rw-r--r-- | internal/config/config_test.go | 25 |
2 files changed, 55 insertions, 0 deletions
diff --git a/internal/config/config.go b/internal/config/config.go index a79c1ce..4107d61 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -103,6 +103,11 @@ type StyleConfig struct { Manga []string `mapstructure:"manga" yaml:"manga"` Horror []string `mapstructure:"horror" yaml:"horror"` Watercolor []string `mapstructure:"watercolor" yaml:"watercolor"` + Pulp []string `mapstructure:"pulp" yaml:"pulp"` + Mecha []string `mapstructure:"mecha" yaml:"mecha"` + PixelArt []string `mapstructure:"pixel_art" yaml:"pixel_art"` + InkWash []string `mapstructure:"ink_wash" yaml:"ink_wash"` + Clay []string `mapstructure:"clay" yaml:"clay"` } // NarrationConfig stores narration prompt knobs. @@ -188,6 +193,26 @@ func DefaultConfig() *Config { "pure transparent watercolor storybook comic style, visible cold-press paper grain, watery pigment blooms, uneven wash edges, granulation, soft bleeding colors, pale layered washes, loose pencil underdrawing, no digital airbrush, no oil-paint texture, no glossy comic coloring", "hand-painted watercolor children's adventure style, translucent pastel washes, wet-on-wet skies, dry-brush texture, white paper highlights, delicate ink-and-pencil outlines, puddled pigment edges, airy negative space, gentle low-contrast rendering", }, + Pulp: []string{ + "retro pulp adventure cover style, painted poster energy, dramatic rim light, saturated inks, worn paper grain, bold composition, vintage print imperfections", + "mid-century pulp sci-fi comic style, chromatic airbrushed highlights, atomic-age props, bold diagonals, distressed halftone texture, high adventure mood", + }, + Mecha: []string{ + "high-detail mecha comic style, hard-surface armor plates, mechanical joints, cockpit glass reflections, technical line art, industrial lighting", + "anime mecha action page style, towering robots, dynamic perspective, panel-like motion energy, sparks and smoke, crisp cel-shaded rendering", + }, + PixelArt: []string{ + "16-bit pixel-art comic scene, limited palette, clean pixel clusters, deliberate dithering, retro game-era perspective, sharp pixel edges", + "retro pixel-art storyboard style, chunky sprites, high-contrast palette ramps, tiled-environment texture, no anti-aliasing, classic console look", + }, + InkWash: []string{ + "ink-wash brush painting style, sumi-e inspired strokes, expressive black ink gradients, controlled bleed on paper, minimal but dramatic composition", + "monochrome ink-and-wash comic style, calligraphic brush lines, soft gray washes, negative-space storytelling, textured rice-paper feel", + }, + Clay: []string{ + "stop-motion clay diorama style, hand-sculpted clay characters, thumbprint texture, miniature set lighting, tactile handcrafted look", + "plasticine comic tableau style, sculpted figures, soft studio shadows, practical miniature props, playful clay surface detail", + }, }, Narration: NarrationConfig{ Voices: []string{ @@ -454,6 +479,11 @@ func setDefaults(v *viper.Viper, cfg *Config) { v.SetDefault("styles.manga", cfg.Styles.Manga) v.SetDefault("styles.horror", cfg.Styles.Horror) v.SetDefault("styles.watercolor", cfg.Styles.Watercolor) + v.SetDefault("styles.pulp", cfg.Styles.Pulp) + v.SetDefault("styles.mecha", cfg.Styles.Mecha) + v.SetDefault("styles.pixel_art", cfg.Styles.PixelArt) + v.SetDefault("styles.ink_wash", cfg.Styles.InkWash) + v.SetDefault("styles.clay", cfg.Styles.Clay) v.SetDefault("narration.voices", cfg.Narration.Voices) v.SetDefault("narration.chunk_words", cfg.Narration.ChunkWords) diff --git a/internal/config/config_test.go b/internal/config/config_test.go index 98b72db..c7aa2c8 100644 --- a/internal/config/config_test.go +++ b/internal/config/config_test.go @@ -58,6 +58,16 @@ styles: - custom horror watercolor: - custom watercolor + pulp: + - custom pulp + mecha: + - custom mecha + pixel_art: + - custom pixel art + ink_wash: + - custom ink wash + clay: + - custom clay narration: chunk_words: 42 `)), 0o644); err != nil { @@ -119,6 +129,21 @@ narration: if got, want := len(cfg.Styles.Watercolor), 1; got != want || cfg.Styles.Watercolor[0] != "custom watercolor" { t.Fatalf("Styles.Watercolor = %#v, want %q", cfg.Styles.Watercolor, "custom watercolor") } + if got, want := len(cfg.Styles.Pulp), 1; got != want || cfg.Styles.Pulp[0] != "custom pulp" { + t.Fatalf("Styles.Pulp = %#v, want %q", cfg.Styles.Pulp, "custom pulp") + } + if got, want := len(cfg.Styles.Mecha), 1; got != want || cfg.Styles.Mecha[0] != "custom mecha" { + t.Fatalf("Styles.Mecha = %#v, want %q", cfg.Styles.Mecha, "custom mecha") + } + if got, want := len(cfg.Styles.PixelArt), 1; got != want || cfg.Styles.PixelArt[0] != "custom pixel art" { + t.Fatalf("Styles.PixelArt = %#v, want %q", cfg.Styles.PixelArt, "custom pixel art") + } + if got, want := len(cfg.Styles.InkWash), 1; got != want || cfg.Styles.InkWash[0] != "custom ink wash" { + t.Fatalf("Styles.InkWash = %#v, want %q", cfg.Styles.InkWash, "custom ink wash") + } + if got, want := len(cfg.Styles.Clay), 1; got != want || cfg.Styles.Clay[0] != "custom clay" { + t.Fatalf("Styles.Clay = %#v, want %q", cfg.Styles.Clay, "custom clay") + } if got, want := cfg.Narration.ChunkWords, 42; got != want { t.Fatalf("Narration.ChunkWords = %d, want %d", got, want) } |
