diff options
Diffstat (limited to 'internal/image/styles.go')
| -rw-r--r-- | internal/image/styles.go | 100 |
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 +} |
