summaryrefslogtreecommitdiff
path: root/internal/image/styles.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/image/styles.go')
-rw-r--r--internal/image/styles.go100
1 files changed, 100 insertions, 0 deletions
diff --git a/internal/image/styles.go b/internal/image/styles.go
new file mode 100644
index 0000000..387760b
--- /dev/null
+++ b/internal/image/styles.go
@@ -0,0 +1,100 @@
+package image
+
+import "math/rand"
+
+const defaultArtisticStyle = "simple illustration"
+
+// ArtisticStyles contains the shared pool of artistic styles used for image prompts.
+var ArtisticStyles = []string{
+ "Photorealism", "Hyperrealism", "Surrealism", "Impressionism",
+ "Minimalism", "Pop Art", "Art Nouveau", "Digital Art",
+ "Watercolor", "Oil Painting", "Pencil Sketch", "Ink Drawing",
+ "3D Rendering", "Low Poly Art", "Pixel Art", "Vector Art",
+ "Collage", "Mixed Media", "Contemporary Art", "Abstract Expressionism",
+ "Cubism", "Pointillism", "Fauvism", "Art Deco",
+ "Baroque", "Renaissance", "Romanticism", "Realism",
+ "Post-Impressionism", "Expressionism", "Constructivism", "Suprematism",
+ "Dadaism", "Futurism", "Op Art", "Kinetic Art",
+ "Street Art", "Graffiti Art", "Installation Art", "Land Art",
+ "Conceptual Art", "Performance Art", "Video Art", "Net Art",
+ "Generative Art", "Algorithmic Art", "Fractal Art", "Glitch Art",
+ "Vaporwave", "Synthwave", "Cyberpunk", "Steampunk",
+ "Fantasy Art", "Science Fiction Art", "Horror Art", "Gothic Art",
+ "Anime", "Manga", "Comic Book Art", "Cartoon",
+ "Caricature", "Editorial Illustration", "Children's Book Illustration", "Fashion Illustration",
+ "Architectural Rendering", "Technical Illustration", "Scientific Illustration", "Medical Illustration",
+ "Botanical Illustration", "Zoological Illustration", "Astronomical Art", "Paleoart",
+ "Infographic", "Data Visualization", "Typography Art", "Calligraphy",
+ "Mosaic", "Stained Glass", "Tapestry", "Embroidery",
+ "Sculpture", "Ceramics", "Pottery", "Glass Art",
+ "Metalwork", "Jewelry Design", "Woodcarving", "Paper Art",
+ "Origami", "Kirigami", "Quilling", "Book Art",
+ "Photography", "Documentary Photography", "Portrait Photography", "Landscape Photography",
+ "Macro Photography", "Aerial Photography", "Underwater Photography", "Astrophotography",
+ "Film Noir", "Vintage Photography", "Polaroid", "Double Exposure",
+ "HDR Photography", "Long Exposure", "Tilt-Shift", "Infrared Photography",
+ "Monochrome", "Sepia Tone", "Cross-Processing", "Cyanotype",
+ "Folk Art", "Outsider Art", "Naive Art", "Aboriginal Art",
+ "African Art", "Asian Art", "Islamic Art", "Celtic Art",
+ "Byzantine Art", "Medieval Art", "Pre-Columbian Art", "Ancient Egyptian Art",
+ "Ancient Greek Art", "Ancient Roman Art", "Cave Painting", "Petroglyphs",
+ "Bauhaus", "De Stijl", "Vienna Secession", "Arts and Crafts Movement",
+ "Prairie School", "International Style", "Brutalism", "Deconstructivism",
+ "Parametric Design", "Biomimicry", "Sustainable Design", "Universal Design",
+ "Retro Futurism", "Dieselpunk", "Atompunk", "Biopunk",
+ "Afrofuturism", "Solarpunk", "Post-Apocalyptic", "Dystopian Art",
+ "Psychedelic Art", "Visionary Art", "Lowbrow Art", "Outsider Art",
+ "Trompe-l'oeil", "Anamorphic Art", "Optical Illusion", "Impossible Objects",
+ "Sacred Geometry", "Mandala", "Yantra", "Celtic Knots",
+ "Stippling", "Hatching", "Cross-Hatching", "Scumbling",
+ "Impasto", "Glazing", "Scumbling", "Sgraffito",
+ "Encaustic", "Fresco", "Tempera", "Gouache",
+ "Pastel", "Charcoal", "Conte", "Silverpoint",
+ "Linocut", "Woodcut", "Etching", "Lithography",
+ "Screen Printing", "Monotype", "Collagraph", "Digital Print",
+ "Augmented Reality Art", "Virtual Reality Art", "Interactive Art", "Projection Mapping",
+ "Light Art", "Neon Art", "Holographic Art", "Laser Art",
+ "Sound Art", "Bio Art", "Eco Art", "Social Practice Art",
+ "Relational Aesthetics", "Participatory Art", "Community Art", "Activist Art",
+ "Feminist Art", "Queer Art", "Postcolonial Art", "Decolonial Art",
+ "Metamodernism", "Post-Internet Art", "Post-Digital Art", "New Aesthetic",
+ "Speculative Design", "Critical Design", "Design Fiction", "Adversarial Design",
+ "Transitional Design", "Transformation Design", "Service Design", "Experience Design",
+ "Slow Design", "Emotional Design", "Inclusive Design", "Regenerative Design",
+ "Biophilic Design", "Cradle to Cradle", "Circular Design", "Zero Waste Design",
+ "Modular Design", "Open Design", "Co-Design", "Participatory Design",
+ "Flat Design", "Material Design", "Neumorphism", "Glassmorphism",
+ "Maximalism", "Eclecticism", "Kitsch", "Camp",
+ "Wabi-Sabi", "Hygge", "Lagom", "Ikigai",
+ "Feng Shui", "Vastu Shastra", "Sacred Architecture", "Organic Architecture",
+ "Vernacular Architecture", "Adaptive Reuse", "Green Architecture", "Living Architecture",
+ "Kinetic Architecture", "Responsive Architecture", "Parametric Architecture", "Algorithmic Architecture",
+ "Blob Architecture", "Deconstructivist Architecture", "High-Tech Architecture", "Neo-Futurism",
+ "Critical Regionalism", "Tropical Modernism", "Desert Modernism", "Scandinavian Design",
+ "Japanese Design", "Italian Design", "German Design", "Dutch Design",
+ "Memphis Group", "Radical Design", "Anti-Design", "Superstudio",
+ "Archigram", "Metabolism", "Structuralism", "Postmodernism",
+ "Minimalist Photography", "Conceptual Photography", "Staged Photography", "Candid Photography",
+}
+
+func pickArtisticStyle() string {
+ if len(ArtisticStyles) == 0 {
+ return ""
+ }
+
+ styles := append([]string(nil), ArtisticStyles...)
+ rand.Shuffle(len(styles), func(i, j int) {
+ styles[i], styles[j] = styles[j], styles[i]
+ })
+
+ return styles[0]
+}
+
+func chooseArtisticStyle() string {
+ style := pickArtisticStyle()
+ if style == "" {
+ return defaultArtisticStyle
+ }
+
+ return style
+}