diff --git a/build_dynamic_prompt.py b/build_dynamic_prompt.py index e3bae58..801cd5e 100644 --- a/build_dynamic_prompt.py +++ b/build_dynamic_prompt.py @@ -78,10 +78,10 @@ def build_dynamic_prompt(insanitylevel = 5, forcesubject = "all", artists = "all culturelist = csv_to_list("cultures",antilist) descriptorlist = csv_to_list("descriptors",antilist) devmessagelist = csv_to_list("devmessages",antilist) - directionlist = csv_to_list("directions",antilist) + directionlist = csv_to_list(csvfilename="directions",antilist=antilist,insanitylevel=insanitylevel) emojilist = csv_to_list("emojis",antilist) eventlist = csv_to_list("events",antilist) - focuslist = csv_to_list("focus",antilist) + focuslist = csv_to_list(csvfilename="focus",antilist=antilist, insanitylevel=insanitylevel) greatworklist = csv_to_list("greatworks",antilist) haircolorlist = csv_to_list("haircolors",antilist) hairstylelist = csv_to_list("hairstyles",antilist) @@ -89,19 +89,18 @@ def build_dynamic_prompt(insanitylevel = 5, forcesubject = "all", artists = "all humanactivitylist = csv_to_list("human_activities",antilist) humanoidlist = csv_to_list("humanoids",antilist) imagetypelist = csv_to_list(csvfilename="imagetypes",antilist=antilist, insanitylevel=insanitylevel) - print(imagetypelist) joblist = csv_to_list(csvfilename="jobs",antilist=antilist,skipheader=True,gender=gender) - lenslist = csv_to_list("lenses",antilist) - lightinglist = csv_to_list("lighting",antilist) + lenslist = csv_to_list(csvfilename="lenses",antilist=antilist, insanitylevel=insanitylevel) + lightinglist = csv_to_list(csvfilename="lighting",antilist=antilist, insanitylevel=insanitylevel) malefemalelist = csv_to_list(csvfilename="malefemale",antilist=antilist,skipheader=True,gender=gender) manwomanlist = csv_to_list(csvfilename="manwoman",antilist=antilist,skipheader=True,gender=gender) - moodlist = csv_to_list("moods",antilist) + moodlist = csv_to_list(csvfilename="moods",antilist=antilist, insanitylevel=insanitylevel) othertypelist = csv_to_list("othertypes",antilist) poselist = csv_to_list("poses",antilist) qualitylist = csv_to_list("quality",antilist) - shotsizelist = csv_to_list("shotsizes",antilist) + shotsizelist = csv_to_list(csvfilename="shotsizes",antilist=antilist, insanitylevel=insanitylevel) timeperiodlist = csv_to_list("timeperiods",antilist) - vomitlist = csv_to_list("vomit",antilist) + vomitlist = csv_to_list(csvfilename="vomit",antilist=antilist, insanitylevel=insanitylevel) foodlist = csv_to_list("foods", antilist) genderdescriptionlist = csv_to_list(csvfilename="genderdescription",antilist=antilist,skipheader=True,gender=gender) minilocationlist = csv_to_list("minilocations", antilist) @@ -1156,16 +1155,8 @@ def build_dynamic_prompt(insanitylevel = 5, forcesubject = "all", artists = "all subjectchooser = "cardname" # After we chose the subject, lets set all things ready for He/She/It etc - if(subjectchooser in ["human", "job", "fictional", "non fictional", "humanoid", "manwomanrelation","firstname"]): - if(gender == "male"): - heshelist = ["he"] - hisherlist = ["his"] - himherlist = ["him"] - if(gender == "female"): - heshelist = ["she"] - hisherlist = ["her"] - himherlist = ["her"] - if(subjectchooser in ["manwomanmultiple"]): + + if(subjectchooser in ["manwomanmultiple"] and givensubject != "" and subtypehumanoid != "multiple humans"): heshelist = ["they"] hisherlist = ["their"] himherlist = ["them"] @@ -1174,6 +1165,25 @@ def build_dynamic_prompt(insanitylevel = 5, forcesubject = "all", artists = "all heshelist = ["one of them"] hisherlist = ["one of their"] himherlist = ["one of them"] + elif(subjectchooser in ["human", "job", "fictional", "non fictional", "humanoid", "manwomanrelation","firstname","manwomanmultiple"]): + if(gender == "male"): + heshelist = ["he"] + hisherlist = ["his"] + himherlist = ["him"] + if(gender == "female"): + heshelist = ["she"] + hisherlist = ["her"] + himherlist = ["her"] + if(subjectchooser in ["manwomanmultiple"] and givensubject == ""): + heshelist = ["they"] + hisherlist = ["their"] + himherlist = ["them"] + # on rare occasions do "one of them" + if(random.randint(0,20) == 0): + heshelist = ["one of them"] + hisherlist = ["one of their"] + himherlist = ["one of them"] + @@ -1757,7 +1767,10 @@ def build_dynamic_prompt(insanitylevel = 5, forcesubject = "all", artists = "all completeprompt += " " else: - completeprompt += " " + givensubject + " " + if(subjectchooser == "manwomanmultiple" and subtypehumanoid != "multiple humans"): + completeprompt += " " + givensubject + " and a -manwomanmultiple- " + else: + completeprompt += " " + givensubject + " " # sometimes add a suffix for more fun! @@ -2079,7 +2092,7 @@ def build_dynamic_prompt(insanitylevel = 5, forcesubject = "all", artists = "all # end of the artist stuff # others - if(chance_roll(insanitylevel, directionchance) and generatedirection == True): + if(chance_roll(max(1,insanitylevel -1), directionchance) and generatedirection == True): completeprompt += "-direction-, " if(chance_roll(insanitylevel, moodchance) and generatemood == True): @@ -2424,7 +2437,7 @@ def build_dynamic_prompt(insanitylevel = 5, forcesubject = "all", artists = "all # Convert the list back to a string completeprompt = "".join(completeprompt_list) - + # Sometimes change he/she to the actual subject if(mainchooser in ["animal", "object"] and givensubject == ""): sameobjectreplacementlist = ["-heshe-","-heshe-","-heshe-","-heshe-","-heshe-", "-sameothersubject-", "-sameothersubject-", "-sameothersubject-", "-sameothersubject-", "-sameothersubject-"] @@ -2470,6 +2483,10 @@ def build_dynamic_prompt(insanitylevel = 5, forcesubject = "all", artists = "all completeprompt = completeprompt.replace("-outfit-", overrideoutfit,1) completeprompt = completeprompt.replace("-minioutfit-", overrideoutfit,1) completeprompt = completeprompt.replace("-overrideoutfit-", overrideoutfit) + + if(givensubject != ""): + completeprompt = completeprompt.replace("-samehumansubject-", givensubject) + completeprompt = completeprompt.replace("-sameothersubject-", givensubject) # If we don't have an override outfit, then remove this part completeprompt = completeprompt.replace("-overrideoutfit-", "") @@ -3508,6 +3525,13 @@ def cleanup(completeprompt, advancedprompting, insanitylevel = 5): # some space tricks completeprompt = re.sub('- shaped', '-shaped', completeprompt) completeprompt = re.sub('echa- ', 'echa-', completeprompt) + completeprompt = re.sub('style -', 'style-', completeprompt) + + #small fix for multisubject thing + completeprompt = re.sub('a 2', '2', completeprompt) + completeprompt = re.sub('a 3', '3', completeprompt) + completeprompt = re.sub('a 4', '4', completeprompt) + completeprompt = re.sub('a 5', '5', completeprompt) # clean up some hacky multiples with adding a s to the end diff --git a/csv_reader.py b/csv_reader.py index 8f36558..170ff9b 100644 --- a/csv_reader.py +++ b/csv_reader.py @@ -50,7 +50,8 @@ def csv_to_list(csvfilename, antilist=[], directory="./csvfiles/", lowerandstrip full_path = os.path.join(script_dir, directory ) csvfilename = csvfilename + "_light" replacing = True - if(insanitylevel < 7 and random.randint(0,5) < 4 and replacing == False): + # under 7, than only SOMETIMES take the full list + if(insanitylevel < 7 and random.randint(0,13) < 12 and replacing == False): for filename in os.listdir(directoryfilesfolder): if(filename == lightfilename): # Just override the parameters, and let it run normally diff --git a/csvfiles/directions.csv b/csvfiles/directions.csv index 68b84f4..4c2a0f9 100644 --- a/csvfiles/directions.csv +++ b/csvfiles/directions.csv @@ -18,4 +18,5 @@ Movie still Anime screencap Overdetailed art ultrafine detailed -Fine art \ No newline at end of file +Fine art +detailed, masterpiece \ No newline at end of file diff --git a/csvfiles/directions_light.csv b/csvfiles/directions_light.csv new file mode 100644 index 0000000..6f25b3b --- /dev/null +++ b/csvfiles/directions_light.csv @@ -0,0 +1,9 @@ +Detailed illustration +Masterpiece +Realistic +Ultra Detailed +Ultra Real +Ultrarealistic +Movie still +Anime screencap +detailed, masterpiece \ No newline at end of file diff --git a/csvfiles/directions_medium.csv b/csvfiles/directions_medium.csv new file mode 100644 index 0000000..e5e41e2 --- /dev/null +++ b/csvfiles/directions_medium.csv @@ -0,0 +1,15 @@ +Detailed illustration +Illustration +Masterpiece +Realistic +Simple illustration +Ultra Detailed +Ultra Real +Ultrarealistic +Visual novel +Movie still +Anime screencap +Overdetailed art +ultrafine detailed +Fine art +detailed, masterpiece \ No newline at end of file diff --git a/csvfiles/focus.csv b/csvfiles/focus.csv index 47d096d..d69dd8d 100644 --- a/csvfiles/focus.csv +++ b/csvfiles/focus.csv @@ -9,4 +9,6 @@ FOV 90 degrees horizon-centered Wide view Panorama -Very wide view \ No newline at end of file +Very wide view +in focus +Sharp and in focus \ No newline at end of file diff --git a/csvfiles/focus_light.csv b/csvfiles/focus_light.csv new file mode 100644 index 0000000..9fe29e6 --- /dev/null +++ b/csvfiles/focus_light.csv @@ -0,0 +1,6 @@ +shallow depth of field +soft focus +Bokeh +Wide view +in focus +Sharp and in focus \ No newline at end of file diff --git a/csvfiles/focus_medium.csv b/csvfiles/focus_medium.csv new file mode 100644 index 0000000..3d70972 --- /dev/null +++ b/csvfiles/focus_medium.csv @@ -0,0 +1,9 @@ +shallow depth of field +deep focus +soft focus +Bokeh +Wide view +Panorama +Very wide view +in focus +Sharp and in focus \ No newline at end of file diff --git a/csvfiles/gregmode.csv b/csvfiles/gregmode.csv index 1bc3847..7f383c7 100644 --- a/csvfiles/gregmode.csv +++ b/csvfiles/gregmode.csv @@ -97,4 +97,5 @@ dan mumford and marc simonetti Android Jones, Ismail Inceoglu,Jean Baptiste mongue,James Jean,Erin Hanson and Dan Mumford Marek Okon and dan mumford Thomas Kinkade, Artgerm and Dan Mumford -Clive Barker, Dan Mumford, Butcher Billy and Russ Mills \ No newline at end of file +Clive Barker, Dan Mumford, Butcher Billy and Russ Mills +Peter Gric, Marco Mazzoni, Neil Blevins, Kim Keever, Victo Ngai and James Jean \ No newline at end of file diff --git a/csvfiles/imagetypes.csv b/csvfiles/imagetypes.csv index 95a3821..1863e7d 100644 --- a/csvfiles/imagetypes.csv +++ b/csvfiles/imagetypes.csv @@ -33,5 +33,6 @@ portrait Raw digital photo Airbrush painting On pale black paper +On pale -color- paper Anime Cinematic still \ No newline at end of file diff --git a/csvfiles/jobs.csv b/csvfiles/jobs.csv index d8b3d1f..fa32c31 100644 --- a/csvfiles/jobs.csv +++ b/csvfiles/jobs.csv @@ -93,6 +93,7 @@ Clerk;both Cloaked figure;both Clockmaker;both Clown;both +College student;both Colonel;both Command Sergeant Major;both Commander;both @@ -217,6 +218,7 @@ Gunnery Sergeant;both Guru;both Gypsy;both Harbinger;both +harajuku girl;female Harpist;both Healer;both Henchman;both diff --git a/csvfiles/lenses_light.csv b/csvfiles/lenses_light.csv new file mode 100644 index 0000000..5c5dcd5 --- /dev/null +++ b/csvfiles/lenses_light.csv @@ -0,0 +1,7 @@ +Depth of field 100mm +Depth of field 270mm +80mm +50mm +Selective focus +800mm lens +L USM \ No newline at end of file diff --git a/csvfiles/lenses_medium.csv b/csvfiles/lenses_medium.csv new file mode 100644 index 0000000..a048b82 --- /dev/null +++ b/csvfiles/lenses_medium.csv @@ -0,0 +1,13 @@ +Depth of field 100mm +Depth of field 270mm +80mm +50mm +35mm +F/1.8 +F/2.8 +F/5 +F/8 +F/14 +Selective focus +800mm lens +L USM \ No newline at end of file diff --git a/csvfiles/lighting_light.csv b/csvfiles/lighting_light.csv new file mode 100644 index 0000000..7e1f09a --- /dev/null +++ b/csvfiles/lighting_light.csv @@ -0,0 +1,11 @@ +natural lighting +side lit +soft light +cinematic lighting +moody lighting +dramatic lighting +studio lighting +Beautifully Lit +Cold Lighting +Warm lighting +Ambient lighting \ No newline at end of file diff --git a/csvfiles/lighting_medium.csv b/csvfiles/lighting_medium.csv new file mode 100644 index 0000000..96f5925 --- /dev/null +++ b/csvfiles/lighting_medium.csv @@ -0,0 +1,40 @@ +natural lighting +flat lighting +back-light +side light +side lit +soft light +soft lighting +hard light +broad lighting +short lighting +spotlit +spotlight +cinematic lighting +moody lighting +specular lighting +volumetric lighting +dramatic lighting +studio lighting +Reflected light +Direct light +Indirect light +Side lighting +Sun Rays +Nostalgic lighting +Lens Flare +Moonlit +Moonlight +Sunlight +Accent lighting +Rembrandt lighting +Candle light +Beautifully Lit +Ethereal Lighting +Starlight +Neon Light +Light and shadow plays +Dramatic spotlight +Cold Lighting +Warm lighting +Ambient lighting \ No newline at end of file diff --git a/csvfiles/minivomit.csv b/csvfiles/minivomit.csv index 9b7af27..90877b4 100644 --- a/csvfiles/minivomit.csv +++ b/csvfiles/minivomit.csv @@ -2,7 +2,7 @@ behance best quality majestic elegant --descriptor- +-basicbitchdescriptor- masterpiece -vomit- -mood- diff --git a/csvfiles/moods_light.csv b/csvfiles/moods_light.csv new file mode 100644 index 0000000..02e6bcc --- /dev/null +++ b/csvfiles/moods_light.csv @@ -0,0 +1,21 @@ +Amusing +Awe +Cosy +Dark +Depressing +Evil +Fantasy +Fairy-Tale +Grim +Happy +Hopeful +Horror +Joyful +Light +Lustful +Peaceful +Relaxed +Sci-Fi +Tranquil +Wonder +Zen \ No newline at end of file diff --git a/csvfiles/moods_medium.csv b/csvfiles/moods_medium.csv new file mode 100644 index 0000000..96b694e --- /dev/null +++ b/csvfiles/moods_medium.csv @@ -0,0 +1,36 @@ +Amusing +Awe +Confused +Cosy +Cozy +Dark +Depressing +Energetic +Evil +Fantasy +Fairy-Tale +Fearful +Flustered +Frightening +Grim +Happy +Hopeful +Hopeless +Horror +Joyful +Light +Lonely +Lustful +Peaceful +Proud +Regret +Relaxed +Romantic +Sad +Satisfying +Sci-Fi +Suffering +Surprising +Tranquil +Wonder +Zen \ No newline at end of file diff --git a/csvfiles/shotsizes.csv b/csvfiles/shotsizes.csv index 6e35835..cc8f894 100644 --- a/csvfiles/shotsizes.csv +++ b/csvfiles/shotsizes.csv @@ -13,8 +13,8 @@ extreme close-up shot extreme wide shot eye-level shot Fashion shot -Full length frame full body shot +Full length frame full shot ground level shot high angle shot @@ -31,9 +31,11 @@ medium wide shot modelshoot style shot over the shoulder shot overhead angle -Portait +Portrait POV shot -professional shot +professionally shot +profile +rear angle selfie selfie shot angle Sharp focus @@ -41,15 +43,13 @@ shot from behind shot from side shoulder-level shot side view shot +side-profile soft focus Street level shot Studio shot top-down view two shot angle +upper body shot wide angle wide shot -zoomed out -profile -side-profile -upper body shot -rear angle \ No newline at end of file +zoomed out \ No newline at end of file diff --git a/csvfiles/shotsizes_light.csv b/csvfiles/shotsizes_light.csv new file mode 100644 index 0000000..3bfdeb7 --- /dev/null +++ b/csvfiles/shotsizes_light.csv @@ -0,0 +1,14 @@ +body shot +cinematic shot +Fashion shot +full body shot +hip level shot +knee level shot +medium shot +modelshoot style shot +Portrait +rear angle +shot from behind +shot from side +side-profile +upper body shot \ No newline at end of file diff --git a/csvfiles/shotsizes_medium.csv b/csvfiles/shotsizes_medium.csv new file mode 100644 index 0000000..ce0adbf --- /dev/null +++ b/csvfiles/shotsizes_medium.csv @@ -0,0 +1,49 @@ +angle from above +angle from below +body shot +cinematic shot +close-up shot +Dutch angle shot +eye-level shot +Fashion shot +Fashion shot +full body shot +full body shot +Full length frame +ground level shot +high angle shot +hip level shot +hip level shot +knee level shot +knee level shot +low angle shot +medium close-up shot +medium shot +medium shot +medium wide shot +modelshoot style shot +modelshoot style shot +over the shoulder shot +overhead angle +Portrait +Portrait +POV shot +professionally shot +profile +rear angle +rear angle +selfie shot angle +Sharp focus +shot from behind +shot from behind +shot from side +shot from side +shoulder-level shot +side view shot +side-profile +side-profile +top-down view +upper body shot +upper body shot +wide angle +wide shot \ No newline at end of file diff --git a/csvfiles/vomit.csv b/csvfiles/vomit.csv index af0dc6e..e3d2d05 100644 --- a/csvfiles/vomit.csv +++ b/csvfiles/vomit.csv @@ -1,15 +1,17 @@ -(-colorcombination-:0.7) --colorcombination- details --colorcombination- dust particles --colorcombination- flakes --colorcombination- fractal art --colorcombination- splash +-basicbitchdescriptor- +-basicbitchdescriptor- and -basicbitchdescriptor- +-color- and -color- details +-color- and -color- dust particles +-color- and -color- flakes +-color- and -color- fractal art +-color- and -color- splash -color- background -color- details -color- dust particles -color- explosions -color- flakes -color- lightning bolts +-color- mist -color- outlines -color- paint splotches -color- palette @@ -18,7 +20,9 @@ -color- splash -colorcombination- -space- +(-color- and -color-:0.7) arcane +Batik behance behance HD biomorphic forms @@ -32,18 +36,29 @@ Complex background concept art Concept artist cosmic energy +Crepuscular Rays crisp lines +Cross Processing de dia los muertos +Decals +Decoupage delicate Digital distortions +Diorama Dota style +Double Exposure dreamy dreamy magical atmosphere dripping -color- dripping -color- and -color- dripping with -color- +Dufaycolor Photograph dynamic composition +Ebru Elegant +Embossing +Embroidery +Encaustic Paint epic fantasy ethereal magical atmosphere expressive brush strokes @@ -54,24 +69,28 @@ Folded -material- full of -color- full of color geometric patterns -glimmering transformation -glittering -glitter texture +Gilded gilded technique +glimmering transformation +glitter texture +glittering +Gold Leafing Golden ratio halation halftone texture hearthstone artwork icon style +Impasto Instagram -intricate details intricate +intricate details key visual Kintsugi layered textures League of Legends Splash Art Light sparkles Light streaks +Liminal dream Luminous trails made of -material- Magic the gathering @@ -99,9 +118,10 @@ rpg concept art Rule of Thirds sfumato sgraffito -sloppy strokes silhouette Simplified style +sloppy strokes +Soutache Spirals stylized sunbeam @@ -111,31 +131,12 @@ Swirling -color- Swirling -material- symbolism taiji +Temari triadic under water underpainting vibrant vignette vintage -Zentangle -Liminal dream --basicbitchdescriptor- --color- mist -Crepuscular Rays -Cross Processing -Decals -Decoupage -Diorama -Double Exposure -Dufaycolor Photograph -Ebru -Embossing -Embroidery -Encaustic Paint -Gilded -Gold Leafing -Impasto -Temari -Soutache Vitrail -Batik \ No newline at end of file +Zentangle \ No newline at end of file diff --git a/csvfiles/vomit_light.csv b/csvfiles/vomit_light.csv new file mode 100644 index 0000000..6125406 --- /dev/null +++ b/csvfiles/vomit_light.csv @@ -0,0 +1,44 @@ +-basicbitchdescriptor- +-basicbitchdescriptor- and -basicbitchdescriptor- +-color- and -color- details +-color- and -color- flakes +-color- background +-color- details +-colorcombination- +(-color- and -color-:0.7) +arcane +behance +behance HD +cinematic +Complex background +concept art +delicate +dreamy +dreamy magical atmosphere +dripping -color- and -color- +dynamic composition +Elegant +epic fantasy +ethereal magical atmosphere +expressive brush strokes +fairy tale +Floral motifs +hearthstone artwork +intricate details +Kintsugi +League of Legends Splash Art +Liminal dream +Magic the gathering +Movie concept art +opulent +Plain white background +poster art +rainbow swirl +rpg concept art +Rule of Thirds +stylized +surreal design +Swirling -color- +symbolism +vibrant +vintage \ No newline at end of file diff --git a/csvfiles/vomit_medium.csv b/csvfiles/vomit_medium.csv new file mode 100644 index 0000000..c8749fd --- /dev/null +++ b/csvfiles/vomit_medium.csv @@ -0,0 +1,106 @@ +-basicbitchdescriptor- +-basicbitchdescriptor- and -basicbitchdescriptor- +-color- and -color- details +-color- and -color- dust particles +-color- and -color- flakes +-color- background +-color- details +-color- dust particles +-color- flakes +-color- mist +-color- paint splotches +-color- sky +-color- splash +-colorcombination- +-space- +(-color- and -color-:0.7) +arcane +behance +behance HD +Bright design +cinematic +Complex background +concept art +Concept artist +cosmic energy +Crepuscular Rays +crisp lines +de dia los muertos +Decals +Decoupage +delicate +Dota style +Double Exposure +dreamy +dreamy magical atmosphere +dripping -color- and -color- +dynamic composition +Elegant +Embossing +Embroidery +epic fantasy +ethereal magical atmosphere +expressive brush strokes +fairy tale +Floral motifs +Folded -material- +full of -color- +full of color +geometric patterns +gilded technique +glimmering transformation +glitter texture +glittering +Gold Leafing +Golden ratio +hearthstone artwork +icon style +Impasto +Instagram +intricate +intricate details +key visual +Kintsugi +layered textures +League of Legends Splash Art +Light sparkles +Light streaks +Liminal dream +Luminous trails +made of -material- +Magic the gathering +matte +MOBA style +moody +Movie concept art +multidimensional +National Geographic +opulent +otherworldly +overlapping compositions +overly complex style +Paint splotches +Plain white background +poster art +rainbow swirl +raytraced reflections +rich color +rpg concept art +Rule of Thirds +sfumato +sgraffito +silhouette +Spirals +stylized +sunbeam +surreal design +Swirling +Swirling -color- +Swirling -material- +symbolism +triadic +under water +vibrant +vignette +vintage +Zentangle \ No newline at end of file diff --git a/prompttester.py b/prompttester.py index 5e30aa7..3d316af 100644 --- a/prompttester.py +++ b/prompttester.py @@ -52,6 +52,7 @@ def generateprompts(amount = 1,insanitylevel="5",subject="all", artist="all", im resultnew = resultnew.replace("-of-", " of ") resultnew = resultnew.replace("-the-", " the ") resultnew = resultnew.replace("-up-", " up ") + resultnew = resultnew.replace("-in-", " in ") matches = re.findall(r'-\w+-', resultnew) # Filter out matches with commas and spaces @@ -71,8 +72,8 @@ def generateprompts(amount = 1,insanitylevel="5",subject="all", artist="all", im print("") print("All done!") -generateprompts(10,3 - ,"all" # subject +generateprompts(10,5 + ,"" # subject ,"all" # artists ,"all" # image type "only other types", "only templates mode", "art blaster mode", "quality vomit mode", "color cannon mode", "unique art mode", "massive madness mode", "photo fantasy mode", "subject only mode", "fixed styles mode" , False # only artists