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", "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 }