-
Notifications
You must be signed in to change notification settings - Fork 0
/
constants.py
1630 lines (1615 loc) · 54.1 KB
/
constants.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
import os
import secrets
from dotenv import load_dotenv
load_dotenv()
### AWS
AWS_ACCESS_KEY_ID = os.getenv("AWS_ACCESS_KEY_ID")
AWS_SECRET_ACCESS_KEY = os.getenv("AWS_SECRET_ACCESS_KEY")
AWS_S3_BUCKET = "aicalart"
### OpenAI
AICALART_OPENAI_KEY = os.getenv("AICALART_OPENAI_KEY") # named thusly because it collided with another OPENAI_KEY
GPT_MODEL = "gpt-4o"
IMAGE_MODEL = "dall-e-3"
### Google Calendar
GOOGLE_CALENDAR_ID = os.getenv("GOOGLE_CALENDAR_ID")
SCOPES = ["https://www.googleapis.com/auth/calendar.readonly"]
### Prompt styles
# You can change this to what you want in .env via `ALWAYS_INCLUDE_IN_PROMPT`, but you should know Hobbes would not approve of that.
ALWAYS_INCLUDE_IN_PROMPT = os.getenv(
"ALWAYS_INCLUDE_IN_PROMPT",
"You always place your beloved orange tabby domestic shorthair cat, Hobbes, in every piece you create.",
)
STYLE_BASES = [
"1910's black and white newspaper satirical comic drawings",
"3D objects on flat surfaces",
"3D scribbles",
"Acid Western",
"Alien Botanical Gardens",
"American Western landscape",
"Ancient Astronaut Ruins",
"Antigravity Architecture",
"Aqueous Abstractions",
"Arabesque calligraphy",
"Arachnid Artistry",
"Arcadian Afterlife",
"Arcane Alchemy",
"Arctic Aurora",
"Art Deco architecture",
"Art Informel",
"Art Nouveau poster",
"Arte Povera",
"Ashcan School",
"Assemblage art",
"Astral Automata",
"Auroral Abstracts",
"Baroquerior",
"Basquiat",
"Bioluminescent Underwater World",
"Bionic Fauna",
"Bosch",
"Botticelli",
"Bruegel",
"Candy-Colored Nightmares",
"Caravaggio",
"Castle Rave",
"Cezanne",
"Chagall",
"Chimeric Creatures",
"Chronicle Carvings",
"Chrono-Collages",
"Color Field Painting",
"Conceptual Art",
"Constable",
"Courbet",
"Crystalline Constructs",
"Cubist still life",
"Cyber-Gothic Cathedral",
"Cyber-Primitive Wilderness",
"Cybernetic Calligraphy",
"Cyberpunk alleyway",
"Da Vinci",
"Dadaism",
"Dali",
"De Stijl",
"Degas",
"Digital Nomad Diaries",
"Digital painting",
"Dimensional Doorways",
"Dreamcatcher Webs",
"Dystopian Megacity",
"Earthworks",
"Eco-Futurist Habitats",
"El Greco",
"Electromagnetic Elegance",
"Elemental Elegance",
"Environmental art",
"Ephemeral Embroidery",
"Ethereal Light Showers",
"European abstract painting",
"Expressionist urban scene",
"Fauvism",
"Fluxus movement",
"Fossilized Futures",
"Fractal Fantasy",
"Frozen Fantasies",
"Futurism dynamic movement",
"Garden of eden",
"Gauguin",
"Geothermal Graffiti",
"Ghostly Victorian Manor",
"Goya",
"Graffiti street art",
"Gravitational Graffiti",
"Greco-Roman inspiration",
"Happenings",
"Hard-Edge Painting",
"Haring",
"Harlem Renaissance vibrancy",
"High Renaissance",
"Hokusai",
"Holographic Histories",
"Hopper",
"Hyperbolic Horizons",
"Hyperrealistic",
"Ice Age Revival",
"Impressionist landscape",
"Invisible Cities",
"Iridescent Illusions",
"Japanese ukiyo-e woodblock prints",
"Kahlo",
"Kandinsky",
"Klee",
"Klimt",
"Kubrick",
"LSD-inspired",
"Liquid Light Art",
"Lowbrow",
"Luminous Labyrinths",
"Lunar Land Art",
"Lunar Landscapes",
"Lunar Linocuts",
"Lunar Lithographs",
"Lunar Lithography",
"Lunar Monuments",
"Lyrical Abstraction",
"Magic Realism",
"Magnetic Murals",
"Magritte",
"Manet",
"Matisse",
"Mechanical Renaissance",
"Medieval illuminated manuscript",
"Metal lithograph",
"Michelangelo",
"Minimalist abstract art",
"Modigliani",
"Monet",
"Morisot",
"Mr. Rogers Neighborhood",
"Munch",
"Mutant Metropolis",
"Mystic Mandalas",
"Mystical Library",
"Mythical Mosaics",
"Nano-Art",
"Nanotech Nostalgia",
"Nautical Nouveau",
"Nebular Needlework",
"Neo-Baroque",
"Neo-Dada",
"Neo-Expressionism",
"Neo-Geo",
"Neo-plasticism",
"Neoclassicism",
"Neon Jungle",
"Nouveau Réalisme",
"O'Keeffe",
"Oceanic Opulence",
"Oceanic Oracles",
"Op Art",
"Orbital Ornaments",
"Outsider Art",
"Phantasmagoric Portals",
"Phantom Orchestra",
"Photonic Paintings",
"Photorealism",
"Picasso",
"Pictorial Puzzles",
"Pissarro",
"Plasma Portraits",
"Polarized Panoramas",
"Pollock",
"Polydimensional Paintings",
"Pop Art collage",
"Post-Apocalyptic Nomad Tribes",
"Post-Impressionism",
"Post-Modernism",
"Postminimalism",
"Psychedelic art",
"Quantum Jungle",
"Quantum Quilts",
"Raphael",
"Rayonism",
"Rembrandt",
"Renaissance portrait",
"Renoir",
"Retro-Futuristic Suburbia",
"Rodin",
"Romanticism",
"Rothko",
"Runic Resonance",
"Sargent",
"Schiele",
"Seurat",
"Shadow Puppetry",
"Skyward Sculptures",
"Social Realism",
"Solar Flare Canvases",
"Solar Sculptures",
"Sonic Sculptures",
"Space Elevator Art",
"Spectral Cities",
"Steampunk Acid Circus",
"Steampunk Cityscape",
"Subterranean Sanctuaries",
"Suprematism",
"Surrealist dream scene",
"Symbiotic Sculptures",
"Symbolism",
"Synesthetic Symphony",
"Tachisme",
"Quentin Tarantino-inspired",
"Techno-Totems",
"Temporal Tapestries",
"Terraformed Topographies",
"Time-Traveling Train Stations",
"Titian",
"Toulouse-Lautrec",
"Traditional Chinese ink painting",
"Transavantgarde",
"Turner",
"Urban Shamanism",
"Urban exploration",
"Van Gogh",
"Velasquez",
"Vermeer",
"Victorian gothic horror revival",
"Victorian-era mechanics",
"Video art",
"Virtual Zen Gardens",
"Vortex Visions",
"Vorticism",
"Warhol",
"Warp Speed Canvases",
"Whistler",
"Woven Worlds",
"Young British Artists",
"Zombie Formalism",
]
STYLE_PHRASES = [
"abstract and intricate animal designs",
"abstract industrial themes",
"abstraction",
"absurdity",
"acoustical aesthetics",
"activist messages",
"advanced technology",
"aerial artistry",
"aesthetic errors",
"african tribal patterns",
"alien divas",
"alien entomology",
"alien landscapes",
"altered lifeforms",
"amazonian tribal art",
"analytical approaches to intellectual exploration",
"ancient Egyptian mural",
"ancient tomorrow",
"anti-art sentiments",
"anti-commercial stance",
"anti-religious imagery",
"aquatic divination",
"arcane knowledge",
"architectural focusrdimensional Dreamscape",
"aristocratic leisure",
"art brut",
"art in harmony with nature",
"art that challenges",
"artistic innovation",
"artistically altered planets",
"ascendant installations",
"assemblage",
"astral arrangements",
"astronomical claywork",
"atomic precision",
"atomic-age homes",
"audienceraction",
"auditory hues",
"augmented reality overlays",
"auroral aesthetics",
"balanced compositions",
"bauhaus design",
"below-surface beauty",
"bioengineered cityscapes",
"bizarre juxtapositions",
"black and white contrasts",
"bold angular forms",
"bold brush strokes",
"bold color blocks",
"bold colors",
"bold lines",
"bold spray paint",
"bold typography",
"brass and copper tones",
"bright colors",
"brushwork",
"byzantine mosaic",
"camera-like precision",
"caribbean palette",
"cartoon-inspired",
"cave creations",
"celestial calligraphy",
"challenging traditional norms",
"charged beauty",
"chiaroscuro lighting",
"chilly imaginations",
"chronology cloths",
"chronology structures",
"cityscapes",
"classic 50s American diner aesthetics",
"classical beauty",
"classical harmony",
"classical virtuality",
"clean lines",
"clockwork da Vincis",
"clockwork locomotives-era transit",
"cloud-touching creations",
"collage",
"color-shifting art",
"color-sound fusion",
"computer-generated scenes",
"conceptual aesthetics",
"conceptual art",
"concrete jungles",
"confectionary creeps",
"constructivism",
"consumer culture symbols",
"contemporary subjects",
"coral-covered ruins",
"corrupted cityscapes",
"counter-culture themes",
"crater canvases",
"crater sculptures",
"crystal structures",
"cultural criticism",
"cultural festivities",
"cybernetic Michelangelos",
"cybernetic animals",
"cybernetic idols",
"cybernetic sand patterns",
"cyclonic creations",
"decorative motifs",
"depth-defying canvases",
"depth-infused drawings",
"desert landscapes",
"desert wanderers",
"detailed plant drawings",
"detailed precision",
"detailed realism",
"digital deities",
"digital detective stories",
"digital faeries",
"digital gargoyles",
"digital script",
"digital tranquility",
"digital tribalism",
"distinct brush strokes",
"distinct color boundaries",
"distorted color",
"diverse materials",
"doorways to the unknown",
"dramatic compositions",
"dramatic lighting",
"dreamlike entrances",
"dreamlike imagery",
"dynamic figures",
"dystopian themes",
"early 20th-century",
"earthy sophistication",
"eclectic styles",
"eco-friendly installations",
"ecological awareness",
"ecological innovations",
"ecological themes",
"eerie candlelight",
"eerie mansions",
"eight-legged elegance",
"electric faces",
"electronic spirits",
"elegant curves",
"elegant scenes",
"emotional distortion",
"emotional impact",
"emotional palettes",
"emotional resonance",
"emotionalnsity",
"emotive expression",
"enchanted books",
"enchanted inscriptions",
"entrance to the unknown",
"environmental scale",
"ephemeral narratives",
"epic narratives",
"era-embroidered patterns",
"era-stacked buildings",
"esoteric symbols",
"ethereal atmosphere",
"ethereal concerts",
"ethereal landscapes",
"ethereal luminance",
"ethereal realms",
"ethereal urbanity",
"everyday life",
"everyday materials",
"evolutionary urbanism",
"expansive skies",
"experimental compositions",
"experimental presentations",
"exploring",
"expressive figures",
"extraterrestrial earthworks",
"extraterrestrial flora",
"fabric galaxies",
"fantastical amalgamations",
"fantastical elements",
"fauna",
"ferrofluid designs",
"fiery palettes",
"fine brushwork",
"flat colors",
"flat surfaces",
"fleeting needlework",
"floating buildings",
"flora",
"floral motifs",
"flowing radiance",
"fluid forms",
"fluid luminosity",
"fluid shapes",
"fluorescent flora",
"folklore fragments",
"found objects",
"fragmented objects",
"free-flowing paint",
"frontier spirit",
"frosty creations",
"frozen landscapes",
"frozen luminosity",
"functional simplicity",
"functionality",
"fusion of primitive and futuristic elements",
"futuristic bio-organic architecture",
"futuristic dystopia",
"futuristic urban sprawl",
"futuristic vision",
"gateway art",
"gear-driven sculptures",
"gem-inspired architecture",
"geometric abstraction",
"geometric forms",
"geometric patterns",
"geometric shapes",
"ghostly metropolises",
"ghostly musicians",
"glowing abstractions",
"glowing colors",
"glowing fauna",
"glowing marine life",
"glowing paths",
"glowing profiles",
"glowing skies",
"glowing weather patterns",
"gold backgrounds",
"gold leaf",
"gothic",
"grand scale",
"green-tech environments",
"hallucinogenic inspiration",
"haloed figures",
"haunted portraits",
"haunting landscapes",
"heavenly landscapes",
"heavenly machinery",
"heliocentric installations",
"hieroglyphs",
"high-tech low-life",
"historical dramas",
"historical grandeur",
"historical mashups",
"historical narratives",
"history in fabric",
"history in wood",
"holographic details",
"humanist ideals",
"humorous",
"hybrid beings",
"hyper-realistic imagery",
"hyper-realistic shadows",
"hyperfast art",
"ice cream hot fudge sundae dessert landscapes",
"ice-crafted art",
"icy spectacles",
"idea over form",
"idealized forms",
"imagined metropolises",
"indigenous patterns",
"industrial themes",
"infinite landscapes",
"interactive flora",
"interdimensional imagery",
"intricate lettering",
"intricate tile work",
"iron filings art",
"ironic sensibility",
"irony",
"irreverent style",
"island landscapes",
"jazz age influence",
"jungle scenes",
"kaleidoscopic designs",
"kinetic op art",
"landscape focus",
"large solid colors",
"large-scale land alteration",
"lava-inspired murals",
"lavish gardens",
"legendary tiles",
"levitating designs",
"light and dark play",
"light refraction",
"light-based art",
"light-filled mazes",
"light-filtered landscapes",
"light-reflective creations",
"light-speed creations",
"limited color palette",
"liquid landscapes",
"living art forms",
"living structures",
"longships",
"lost alien civilizations",
"low-gravity artistry",
"luminescent landscapes",
"luminous likenesses",
"luminous precipitation",
"luxurious details",
"magical experiments",
"magical symbols",
"magma tags",
"magnetic fields in art",
"magnetic patterns",
"makeshift settlements",
"mammoth herds",
"marine mysticism",
"masks",
"mathematical beauty",
"mechanical elements",
"medieval themes",
"mermaid realms",
"microscopic memories",
"microscopic sculptures",
"mind-bending imagery",
"mineral formations",
"minimalism",
"mixed media",
"modern aesthetic",
"modern energy",
"modern life",
"modernist architecture",
"modernrpretation",
"molecular landscapes",
"molecular mementos",
"momentary patterns",
"moon surface installations",
"moon-based architecture",
"mountains",
"movement across planes",
"moving images",
"mughal miniature painting",
"multi-layered art",
"multi-layered performances",
"multi-layered sketches",
"multimedia installations",
"multiple viewpoints",
"musical geometry",
"muted colors",
"mysterious artifacts",
"mystical graffiti",
"mystical laboratories",
"mystical vibrations",
"mythical forest cyber life",
"mythical mashups",
"mythological scenes",
"mythological themes",
"narrative sculptures",
"natural beauty",
"natural grace",
"natural materials",
"natural motifs",
"natural scenes",
"nature",
"nature themes",
"nature's power",
"nature-inspired chic",
"neo-Tokyo cyberpunk",
"neoclassicism",
"neon lights",
"neon wildlife",
"neon-lit slums",
"new media exploration",
"new perception approaches",
"nightmare filters",
"non-Euclidean geometry",
"non-figurative",
"non-geometric forms",
"non-objective forms",
"non-traditional media",
"norse mythology",
"northern hues",
"northern light-inspired creations",
"northern lights inspired",
"northern radiance",
"nostalgic tomorrow",
"oceanic curves",
"optical artistry",
"optical illusions",
"optimistic future visions",
"orbital aesthetics",
"orbital spray",
"organic materials",
"ornamental lines",
"ornate carving",
"ornate churches",
"ornate detailing",
"ornate elegance",
"otherworldly landscapes",
"outdoor installations",
"outdoor scenery",
"outsider art",
"overlapping transparent planes",
"particle patchworks",
"pastoral paradise",
"performance art",
"period costumes with a twist",
"personal expression",
"personal mysticism",
"petrified technology",
"phantom skylines",
"physics-inspired fabrics",
"pixel-based creativity",
"polar light art",
"pop surrealism",
"portals to other realms",
"post-apocalyptic tribal futurism",
"pre-raphaelite romanticism",
"prehistoric survival",
"primary colors",
"primitive figures",
"prismatic effects",
"probabilistic wildlife",
"process-focused",
"profile figures",
"projected heritage",
"psychedelic experiences",
"pyramids",
"quantum realm abstract art",
"radiant bursts",
"radiant downpours",
"radiant forms",
"radiant portraits",
"radiant puzzles",
"raw aesthetics",
"raw creativity",
"raw imagerynse colors",
"readymade objects",
"realistic details",
"reclaimed technology",
"religious themes gone awry",
"repetitive motifs",
"retro space gearrplanetary cuisine",
"retro-futuristic",
"retro-futuristic diner on Mars",
"return to figurative painting",
"rich colors",
"rich textures",
"robotic handwriting",
"robotic wildlife",
"rococo pastoral",
"romantic scenes",
"royal courts",
"royal portraits",
"rugged terrain",
"runes",
"sacred geometry",
"satellite adornments",
"scandinavian contemporary design",
"scientific art",
"sculpted worlds",
"sculptural techniques",
"sea-inspired art nouveau",
"sea-inspired splendor",
"self-taught artists",
"shock tactics",
"silhouette storytelling",
"silk-inspired creations",
"simple actions",
"simple forms",
"simplicity",
"simplified forms",
"site-specific",
"sleek designs",
"social justice themes",
"soft brushstrokes",
"sound-shaped art",
"space age retro futurism",
"space opera sets",
"space station decor",
"space-themed art",
"spacecrafts with otherworldly designs",
"spacefaring arthropods",
"spacefaring tales",
"spatial choreography",
"spatial concerns",
"spectral elegance",
"spectral symphonies",
"speed lines",
"spiderweb designs",
"spiral aesthetics",
"spirit animals in the city",
"spiritual patterns",
"spiritual symbolism",
"spiritual threads",
"spontaneous brushwork",
"spontaneous creation",
"star-forming stitches",
"star-guided journeys",
"star-powered robots",
"star-script",
"starlit dwellings",
"starry art",
"starry pottery",
"steam-powered clowns",
"steam-powered machinery",
"steampunk inventions",
"stone-age sci-fi",
"storytelling reliefs",
"straight lines",
"strong outlines",
"stylized plants",
"subatomic foliage",
"subatomic particle designs",
"subatomic patterns",
"subconscious art",
"submerged Victorian cities",
"submerged cities",
"sugary scares",
"sun-inspired art",
"sun-powered art",
"surreal ecosystems",
"surreal gateways",
"surreal growth",
"surreal landscapes",
"surreal natural laws",
"surreal normalcy",
"surreal portals",
"surreal steampunk dreamscapes",
"surreal vistas",
"survivalist culture",
"survivalist themes",
"suspended structures",
"sustainable utopias",
"sweet horror",
"swirling art",
"swirling patterns",
"tapestry planets",
"tattooed berzerkers",
"tattoos",
"techno-lettering",
"techno-nature",
"techno-savannahs",
"technological exploration",
"temporal montages",
"temporal platforms",
"textile universes",
"textural abstraction",
"three-dimensional compositions",
"three-dimensional pasts",
"time-layered art",
"time-themed architecture",
"time-threaded art",
"time-woven fabrics",
"towering artworks",
"towering skyscrapers",
"transient stitches",
"travel-inspired pixels",
"trompe-l'oeil realism",
"tropical scenes",
"unconventional mediums",
"underground visual art",
"underwater luxury",
"universal harmony",
"unseen urbanism",
"urban expression",
"urban realism",
"velocity visuals",
"vertical voyages",
"vibrant colors",
"vibrant contrasts",
"vibrant distortions",
"vibrant ecosystems",
"vibrant life",
"victorian botanical illustrations",
"viking",
"vintage carnival aesthetics",
"vintage futurism",
"vintage style",
"virtual antiquity",
"virtual brushes",
"virtual spirituality",
"virtual vignettes",
"virtual voyages",
"visual conundrums",
"visual disruptions",
"visual effects",
"visual illusions",
"visual music",
"visualizations of quantum physics concepts",
"visualized soundwaves",
"vivid colors",
"volcanic street art",
"wanderlust web art",
"water themes",
"water-based art",
"weightless street art",
"wild brush strokes",
"woven chronologies",
"woven fantasies",
"zero-g tags",
]
def generate_random_style():
base = secrets.choice(STYLE_BASES)
phrases = ", ".join(secrets.choice(STYLE_PHRASES) for _ in range(secrets.randbelow(3) + 1))
return f"{base}, {phrases}"
### Holidays and Silly Days span from 2023-11-25 to 2024-12-31
HOLIDAYS = {
"2023-11-25": "International Day for the Elimination of Violence against Women",
"2023-11-27": "Cyber Monday",
"2023-11-28": "National Day of Giving",
"2023-11-29": "International Day of Solidarity with the Palestinian People",
"2023-11-30": "Day of Remembrance for all Victims of Chemical Warfare",
"2023-12-01": "Rosa Parks Day",
"2023-12-02": "International Day for the Abolition of Slavery",
"2023-12-03": "International Day of Persons with Disabilities",
"2023-12-04": "International Day of Banks",
"2023-12-05": "World Soil Day",
"2023-12-06": "St Nicholas Day",
"2023-12-07": "Pearl Harbor Remembrance Day",
"2023-12-08": "Hanukkah (first day)",
"2023-12-09": "International Day of Veterinary Medicine",
"2023-12-10": "Human Rights Day",
"2023-12-11": "International Mountain Day",
"2023-12-12": "Feast of Our Lady of Guadalupe",
"2023-12-13": "National Guard Birthday",
"2023-12-15": "Bill of Rights Day",
"2023-12-17": "Wright Brothers Day",
"2023-12-18": "Arabic Language Day",
"2023-12-20": "International Human Solidarity Day",
"2023-12-21": "December Solstice",
"2023-12-23": "Festivus",
"2023-12-24": "Christmas Eve",
"2023-12-25": "Christmas Day",
"2023-12-26": "Day After Christmas Day",
"2023-12-27": "International Day of Epidemic Preparedness",
"2023-12-31": "New Year's Eve",
"2024-01-01": "New Year's Day",
"2024-01-04": "World Braille Day",
"2024-01-06": "Epiphany",
"2024-01-07": "International Programmers' Day",
"2024-01-08": "War on Poverty Day",
"2024-01-13": "Stephen Foster Memorial Day",
"2024-01-14": "Orthodox New Year",
"2024-01-15": "Martin Luther King Jr. Day",
"2024-01-19": "World Quark Day",
"2024-01-21": "World Religion Day",
"2024-01-24": "International Day of Education",
"2024-01-25": "Tu Bishvat/Tu B'Shevat",
"2024-01-26": "International Customs Day",
"2024-01-27": "International Day of Commemoration in Memory of the Victims of the Holocaust",
"2024-01-28": "World Leprosy Day",
"2024-01-29": "Kansas Day",
"2024-02-01": "First Day of Black History Month",
"2024-02-02": "National Wear Red Day",
"2024-02-04": "Rosa Parks Day",
"2024-02-06": "Safer Internet Day",
"2024-02-07": "Isra and Mi'raj",
"2024-02-10": "Chinese New Year",
"2024-02-11": "Super Bowl",
"2024-02-12": "Lincoln's Birthday",
"2024-02-13": "Shrove Tuesday/Mardi Gras",
"2024-02-14": "Statehood Day",
"2024-02-15": "Susan B. Anthony's Birthday",
"2024-02-16": "Elizabeth Peratrovich Day",
"2024-02-19": "Daisy Gatson Bates Day",
"2024-02-20": "World Day of Social Justice",
"2024-02-21": "International Mother Language Day",
"2024-02-25": "George Rogers Clark Day",
"2024-02-28": "Linus Pauling Day",
"2024-02-29": "Leap Day",
"2024-03-01": "First Day of Irish American Heritage Month",
"2024-03-02": "Texas Independence Day",
"2024-03-03": "World Wildlife Day",
"2024-03-04": "Casimir Pulaski Day",
"2024-03-05": "Town Meeting Day",
"2024-03-08": "International Women's Day",
"2024-03-10": "Daylight Saving Time starts",
"2024-03-11": "Ramadan Starts",
"2024-03-14": "World Kidney Day",
"2024-03-17": "St. Patrick's Day",
"2024-03-18": "Awkward Moments Day",
"2024-03-19": "March Equinox",
"2024-03-20": "International Day of Happiness",
"2024-03-21": "International Day of Forests",
"2024-03-22": "World Water Day",
"2024-03-23": "World Meteorological Day",
"2024-03-24": "International Day for the Dignity of Victims",
"2024-03-25": "Seward's Day",
"2024-03-26": "Prince Jonah Kuhio Kalanianaole Day",
"2024-03-28": "Maundy Thursday",
"2024-03-29": "National Vietnam War Veterans Day",
"2024-03-30": "Doctors' Day",
"2024-03-31": "Easter",
"2024-04-01": "April Fool's Day",
"2024-04-02": "Pascua Florida Day",
"2024-04-04": "United Nations' Mine Awareness Day",
"2024-04-05": "International Day of Conscience",
"2024-04-06": "National Tartan Day",
"2024-04-07": "Day of Remembrance of the Victims of the Rwanda War",
"2024-04-09": "National Library Workers' Day",
"2024-04-10": "Eric and Rachel's Wedding Anniversary",
"2024-04-12": "International Day of Human Space Flight",
"2024-04-13": "Thomas Jefferson's Birthday",
"2024-04-14": "World Chagas Disease Day",
"2024-04-15": "Boston Marathon",
"2024-04-16": "Emancipation Day",
"2024-04-18": "International Day for Monuments and Sites",
"2024-04-20": "Chinese Language Day",
"2024-04-21": "San Jacinto Day",
"2024-04-22": "National Girl Scout Leaders Day",
"2024-04-23": "English Language Day",
"2024-04-24": "Administrative Professionals Day",
"2024-04-25": "Take our Daughters and Sons to Work Day",
"2024-04-26": "National Help A Horse Day",
"2024-04-28": "World Day for Safety and Health at Work",
"2024-04-29": "World Wish Day",
"2024-04-30": "International Jazz Day",
"2024-05-01": "First Day of Jewish American Heritage Month",
"2024-05-02": "National Day of Prayer",
"2024-05-03": "Kentucky Oaks",
"2024-05-05": "Cinco de Mayo",
"2024-05-06": "National Nurses Day",
"2024-05-08": "Victory in Europe Day",
"2024-05-09": "Ascension Day",
"2024-05-10": "Military Spouse Appreciation Day",
"2024-05-11": "World Migratory Bird Day",
"2024-05-12": "Mother's Day",
"2024-05-14": "Primary Election Day",
"2024-05-16": "International Day of Light",
"2024-05-17": "Endangered Species Day",
"2024-05-18": "Preakness Stakes",
"2024-05-19": "World Baking Day",
"2024-05-20": "World Autoimmune / Autoinflammatory Arthritis Day",
"2024-05-21": "International Tea Day",
"2024-05-22": "Harvey Milk Day",
"2024-05-23": "Day of Vesak",
"2024-05-25": "National Missing Children's Day",
"2024-05-26": "Lag BaOmer",
"2024-05-27": "Memorial Day",
"2024-05-29": "International Day of United Nations Peacekeepers",
"2024-05-30": "Corpus Christi",
"2024-05-31": "World No Tobacco Day",
"2024-06-01": "Statehood Day",
"2024-06-02": "Native American Day",
"2024-06-03": "National Egg Day",
"2024-06-04": "International Day of Victims of Aggression",
"2024-06-05": "International Day for the Fight against Illegal Fishing",
"2024-06-06": "D-Day",
"2024-06-07": "World Food Safety Day",
"2024-06-08": "Belmont Stakes",
"2024-06-11": "Kamehameha Day",
"2024-06-12": "Loving Day",
"2024-06-13": "International Albinism Awareness Day",