| import random
|
| import re
|
|
|
| if __package__ is None or __package__ == '':
|
|
|
|
|
| from csv_reader import *
|
| from random_functions import *
|
| from one_button_presets import OneButtonPresets
|
| from superprompter.superprompter import *
|
| else:
|
|
|
|
|
| from .csv_reader import *
|
| from .random_functions import *
|
| from .one_button_presets import OneButtonPresets
|
| from .superprompter.superprompter import *
|
|
|
| OBPresets = OneButtonPresets()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| def build_dynamic_prompt(insanitylevel = 5, forcesubject = "all", artists = "all", imagetype = "all", onlyartists = False, antivalues = "", prefixprompt = "", suffixprompt ="",promptcompounderlevel ="1", seperator = "comma", givensubject="",smartsubject = True,giventypeofimage="", imagemodechance = 20, gender = "all", subtypeobject="all", subtypehumanoid="all", subtypeconcept="all", advancedprompting=True, hardturnoffemojis=False, seed=-1, overrideoutfit="", prompt_g_and_l = False, base_model = "SD1.5", OBP_preset = "", prompt_enhancer = "none", subtypeanimal="all", subtypelocation="all", preset_prefix = "", preset_suffix = ""):
|
|
|
| remove_weights = False
|
| less_verbose = False
|
| add_vomit = True
|
| add_quality = True
|
| anime_mode = False
|
| configfilesuffix = ""
|
| if(forcesubject == "------ all"):
|
| forcesubject = "all"
|
|
|
| superprompter = False
|
| prompt_enhancer = prompt_enhancer.lower()
|
| if(prompt_enhancer == "superprompter" or prompt_enhancer == "superprompt" or prompt_enhancer == "superprompt-v1" or prompt_enhancer == "hyperprompt"):
|
| superprompter = True
|
| if(superprompter==True):
|
| base_model = "Stable Cascade"
|
|
|
|
|
| subjectlist = translate_main_subject(forcesubject)
|
| forcesubject = subjectlist[0]
|
|
|
|
|
|
|
| if(subtypeobject != "all" or subtypeobject != ""):
|
| subtypeobject = subjectlist[1]
|
| if(subtypeanimal != "all" or subtypeanimal != ""):
|
| subtypeanimal = subjectlist[1]
|
| if(subtypelocation != "all" or subtypelocation != ""):
|
| subtypelocation = subjectlist[1]
|
| if(subtypehumanoid != "all" or subtypehumanoid != ""):
|
| subtypehumanoid = subjectlist[1]
|
| if(subtypeconcept != "all" or subtypeconcept != ""):
|
| subtypeconcept = subjectlist[1]
|
|
|
|
|
|
|
|
|
|
|
| if(seed > 0):
|
| random.seed(seed)
|
|
|
| originalinsanitylevel = insanitylevel
|
| if(advancedprompting != False and random.randint(0,max(0, insanitylevel - 2)) <= 0):
|
| advancedprompting == False
|
|
|
| original_OBP_preset = OBP_preset
|
| if(OBP_preset == OBPresets.RANDOM_PRESET_OBP):
|
| obp_options = OBPresets.load_obp_presets()
|
| random_preset = random.choice(list(obp_options.keys()))
|
| print("Engaging randomized presets, locking on to: " + random_preset)
|
|
|
| selected_opb_preset = OBPresets.get_obp_preset(random_preset)
|
| insanitylevel = selected_opb_preset["insanitylevel"]
|
| forcesubject = selected_opb_preset["subject"]
|
| artists = selected_opb_preset["artist"]
|
| subtypeobject = selected_opb_preset["chosensubjectsubtypeobject"]
|
| subtypehumanoid = selected_opb_preset["chosensubjectsubtypehumanoid"]
|
| subtypeconcept = selected_opb_preset["chosensubjectsubtypeconcept"]
|
| gender = selected_opb_preset["chosengender"]
|
| imagetype = selected_opb_preset["imagetype"]
|
| imagemodechance = selected_opb_preset["imagemodechance"]
|
| givensubject = selected_opb_preset["givensubject"]
|
| smartsubject = selected_opb_preset["smartsubject"]
|
| overrideoutfit = selected_opb_preset["givenoutfit"]
|
| prefixprompt = selected_opb_preset["prefixprompt"]
|
| suffixprompt = selected_opb_preset["suffixprompt"]
|
| giventypeofimage = selected_opb_preset["giventypeofimage"]
|
| antistring = selected_opb_preset["antistring"]
|
|
|
|
|
| OBP_preset = ""
|
|
|
| if(OBP_preset != "" and OBP_preset != 'Custom...'):
|
| selected_opb_preset = OBPresets.get_obp_preset(OBP_preset)
|
| insanitylevel = selected_opb_preset["insanitylevel"]
|
| forcesubject = selected_opb_preset["subject"]
|
| artists = selected_opb_preset["artist"]
|
| subtypeobject = selected_opb_preset["chosensubjectsubtypeobject"]
|
| subtypehumanoid = selected_opb_preset["chosensubjectsubtypehumanoid"]
|
| subtypeconcept = selected_opb_preset["chosensubjectsubtypeconcept"]
|
| gender = selected_opb_preset["chosengender"]
|
| imagetype = selected_opb_preset["imagetype"]
|
| imagemodechance = selected_opb_preset["imagemodechance"]
|
| givensubject = selected_opb_preset["givensubject"]
|
| smartsubject = selected_opb_preset["smartsubject"]
|
| overrideoutfit = selected_opb_preset["givenoutfit"]
|
| prefixprompt = selected_opb_preset["prefixprompt"]
|
| suffixprompt = selected_opb_preset["suffixprompt"]
|
| giventypeofimage = selected_opb_preset["giventypeofimage"]
|
| antistring = selected_opb_preset["antistring"]
|
|
|
| prefixprompt = preset_prefix + ", " + prefixprompt
|
| suffixprompt = suffixprompt + ", " + preset_suffix
|
|
|
|
|
|
|
| if("-" in forcesubject):
|
| subjectlist = translate_main_subject(forcesubject)
|
| forcesubject = subjectlist[0]
|
|
|
|
|
|
|
| if(subtypeobject != "all" or subtypeobject != ""):
|
| subtypeobject = subjectlist[1]
|
| if(subtypeanimal != "all" or subtypeanimal != ""):
|
| subtypeanimal = subjectlist[1]
|
| if(subtypelocation != "all" or subtypelocation != ""):
|
| subtypelocation = subjectlist[1]
|
| if(subtypehumanoid != "all" or subtypehumanoid != ""):
|
| subtypehumanoid = subjectlist[1]
|
| if(subtypeconcept != "all" or subtypeconcept != ""):
|
| subtypeconcept = subjectlist[1]
|
|
|
|
|
| originalartistchoice = artists
|
| doartistnormal = True
|
| outfitmode = 0
|
|
|
| animalashuman = False
|
|
|
|
|
| partlystylemode = False
|
|
|
| if(OBP_preset=='Waifu''s' or OBP_preset=='Husbando''s'):
|
| basemodel = "Anime Model"
|
|
|
| base_model_options = ["SD1.5", "SDXL", "Stable Cascade", "Anime Model"]
|
| if base_model not in base_model_options:
|
| base_model = "SD1.5"
|
|
|
|
|
|
|
| if(base_model == "Stable Cascade"):
|
| remove_weights = True
|
| add_vomit = False
|
| add_quality = False
|
| if(base_model == "SD1.5"):
|
| less_verbose = True
|
| if(base_model == "Anime Model"):
|
| less_verbose = True
|
| advancedprompting = False
|
| anime_mode = True
|
| configfilesuffix = "anime"
|
|
|
|
|
| if((anime_mode or imagetype == "all - anime") and (artists == "all" or normal_dist(insanitylevel))):
|
| artists = "none"
|
|
|
|
|
|
|
|
|
| config = load_config_csv(configfilesuffix)
|
|
|
|
|
|
|
|
|
| emptylist = []
|
| antilist = csv_to_list("antilist",emptylist , "./userfiles/",1)
|
|
|
| antivaluelist = antivalues.split(",")
|
|
|
| antilist += antivaluelist
|
|
|
|
|
| antilist = [s.strip().lower() for s in antilist]
|
|
|
|
|
|
|
|
|
| if(gender=="all"):
|
| genderchoicelist = ["male", "female"]
|
| gender = random.choice(genderchoicelist)
|
| heshelist = ["it"]
|
| hisherlist = ["its"]
|
| himherlist = ["it"]
|
|
|
| oppositegender = "male"
|
| if(gender=="male"):
|
| oppositegender = "female"
|
|
|
|
|
|
|
| colorlist = csv_to_list("colors",antilist)
|
| animallist = csv_to_list("animals",antilist)
|
| materiallist = csv_to_list("materials",antilist)
|
| objectlist = csv_to_list("objects",antilist)
|
| fictionallist = csv_to_list(csvfilename="fictional characters",antilist=antilist,skipheader=True,gender=gender)
|
| nonfictionallist = csv_to_list(csvfilename="nonfictional characters",antilist=antilist,skipheader=True,gender=gender)
|
| oppositefictionallist = csv_to_list(csvfilename="fictional characters",antilist=antilist,skipheader=True,gender=oppositegender)
|
| oppositenonfictionallist = csv_to_list(csvfilename="nonfictional characters",antilist=antilist,skipheader=True,gender=oppositegender)
|
| conceptsuffixlist = csv_to_list("concept_suffix",antilist)
|
| buildinglist = csv_to_list("buildings",antilist)
|
| vehiclelist = csv_to_list("vehicles",antilist)
|
| outfitlist = csv_to_list("outfits",antilist)
|
| locationlist = csv_to_list("locations",antilist)
|
| backgroundlist = csv_to_list("backgrounds",antilist)
|
|
|
| accessorielist = csv_to_list("accessories",antilist,"./csvfiles/",0,"?",False,False,gender)
|
| artmovementlist = csv_to_list("artmovements",antilist)
|
| bodytypelist = csv_to_list("body_types",antilist=antilist,skipheader=True,gender=gender)
|
| cameralist = csv_to_list("cameras",antilist)
|
| colorschemelist = csv_to_list("colorscheme",antilist)
|
| conceptprefixlist = csv_to_list("concept_prefix",antilist)
|
| culturelist = csv_to_list("cultures",antilist)
|
| descriptorlist = csv_to_list("descriptors",antilist)
|
| devmessagelist = csv_to_list("devmessages",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(csvfilename="focus",antilist=antilist, insanitylevel=insanitylevel)
|
| greatworklist = csv_to_list("greatworks",antilist)
|
| haircolorlist = csv_to_list("haircolors",antilist)
|
| hairstylelist = csv_to_list("hairstyles",antilist)
|
| hairvomitlist = csv_to_list("hairvomit",antilist,"./csvfiles/",0,"?",False,False)
|
|
|
| humanoidlist = csv_to_list("humanoids",antilist)
|
| if(anime_mode or imagetype=="all - anime"):
|
| if(imagetype == "all"):
|
| imagetype = "all - anime"
|
| imagetypelist = csv_to_list(csvfilename="imagetypes_anime",antilist=antilist, insanitylevel=insanitylevel, delimiter="?")
|
| else:
|
| imagetypelist = csv_to_list(csvfilename="imagetypes",antilist=antilist, insanitylevel=insanitylevel, delimiter="?")
|
|
|
| joblist = csv_to_list(csvfilename="jobs",antilist=antilist,skipheader=True,gender=gender)
|
| 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(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(csvfilename="shotsizes",antilist=antilist, insanitylevel=insanitylevel)
|
| timeperiodlist = csv_to_list("timeperiods",antilist)
|
| vomitlist = csv_to_list(csvfilename="vomit",antilist=antilist, insanitylevel=insanitylevel)
|
| if(anime_mode):
|
| replacements = {
|
| "-allstylessuffix-": "-buildfacepart-",
|
| "-artistdescription-": "-buildfacepart-"
|
| }
|
|
|
| for i, item in enumerate(vomitlist):
|
| for old, new in replacements.items():
|
| item = item.replace(old, new)
|
| vomitlist[i] = item
|
|
|
|
|
| foodlist = csv_to_list("foods", antilist)
|
| genderdescriptionlist = csv_to_list(csvfilename="genderdescription",antilist=antilist,skipheader=True,gender=gender)
|
| minilocationlist = csv_to_list("minilocations", antilist)
|
| minioutfitlist = csv_to_list("minioutfits",antilist,"./csvfiles/",0,"?",False,False,gender)
|
| seasonlist = csv_to_list("seasons", antilist)
|
| elaborateoutfitlist = csv_to_list("elaborateoutfits", antilist)
|
| minivomitlist = csv_to_list("minivomit", antilist)
|
| imagetypequalitylist = csv_to_list("imagetypequality", antilist)
|
| rpgclasslist = csv_to_list("rpgclasses", antilist)
|
| brandlist = csv_to_list("brands", antilist)
|
| spacelist = csv_to_list("space", antilist)
|
| poemlinelist = csv_to_list("poemlines", antilist)
|
| songlinelist = csv_to_list("songlines", antilist)
|
| musicgenrelist = csv_to_list("musicgenres", antilist)
|
| manwomanrelationlist = csv_to_list(csvfilename="manwomanrelations",antilist=antilist,skipheader=True,gender=gender)
|
| manwomanmultiplelist = csv_to_list(csvfilename="manwomanmultiples",antilist=antilist,skipheader=True,gender=gender,delimiter="?")
|
| waterlocationlist = csv_to_list("waterlocations", antilist)
|
| containerlist = csv_to_list("containers", antilist)
|
| firstnamelist = csv_to_list(csvfilename="firstnames",antilist=antilist,skipheader=True,gender=gender)
|
| floralist = csv_to_list("flora", antilist)
|
| printlist = csv_to_list("prints", antilist)
|
| patternlist = csv_to_list("patterns", antilist)
|
| chairlist = csv_to_list("chairs", antilist)
|
| cardnamelist = csv_to_list("card_names", antilist)
|
| coveringlist = csv_to_list("coverings", antilist)
|
| facepartlist = csv_to_list("faceparts", antilist)
|
| outfitvomitlist = csv_to_list(csvfilename="outfitvomit",antilist=antilist,delimiter="?")
|
| humanvomitlist = csv_to_list("humanvomit", antilist)
|
| eyecolorlist = csv_to_list("eyecolors", antilist)
|
| fashiondesignerlist = csv_to_list("fashiondesigners", antilist)
|
| colorcombinationlist = csv_to_list("colorcombinations", antilist)
|
| materialcombinationlist = csv_to_list("materialcombinations", antilist)
|
| agelist = csv_to_list("ages", antilist)
|
| agecalculatorlist = csv_to_list("agecalculator", antilist)
|
| elementlist = csv_to_list("elements", antilist)
|
| settinglist = csv_to_list("settings", antilist)
|
| charactertypelist = csv_to_list("charactertypes", antilist)
|
| objectstoholdlist = csv_to_list("objectstohold", antilist)
|
| episodetitlelist = csv_to_list(csvfilename="episodetitles",antilist=antilist,skipheader=True)
|
| flufferlist = csv_to_list("fluff", antilist)
|
| tokenlist = []
|
|
|
|
|
| locationfantasylist = csv_to_list("locationsfantasy", antilist)
|
| locationscifilist = csv_to_list("locationsscifi", antilist)
|
| locationvideogamelist = csv_to_list("locationsvideogame", antilist)
|
| locationbiomelist = csv_to_list("locationsbiome", antilist)
|
| locationcitylist = csv_to_list("locationscities", antilist)
|
| birdlist = csv_to_list("birds", antilist)
|
| catlist = csv_to_list(csvfilename="cats", antilist=antilist,delimiter="?")
|
| doglist = csv_to_list(csvfilename="dogs", antilist=antilist,delimiter="?")
|
| insectlist = csv_to_list("insects", antilist)
|
| pokemonlist = csv_to_list("pokemon", antilist)
|
| pokemontypelist = csv_to_list("pokemontypes", antilist)
|
| occultlist = csv_to_list("occult", antilist)
|
| marinelifelist = csv_to_list("marinelife", antilist)
|
|
|
|
|
|
|
| outfitdescriptorlist = csv_to_list("outfitdescriptors",antilist)
|
| hairdescriptorlist = csv_to_list("hairdescriptors",antilist)
|
| humandescriptorlist = csv_to_list("humandescriptors",antilist)
|
| locationdescriptorlist = csv_to_list("locationdescriptors",antilist)
|
| basicbitchdescriptorlist = csv_to_list("basicbitchdescriptors",antilist)
|
| animaldescriptorlist = csv_to_list("animaldescriptors",antilist)
|
|
|
|
|
| descriptortotallist = descriptorlist + outfitdescriptorlist + hairdescriptorlist + humandescriptorlist + locationdescriptorlist + basicbitchdescriptorlist + animaldescriptorlist
|
|
|
| descriptorlist = []
|
| seen_items = set()
|
|
|
| for item in descriptortotallist:
|
|
|
| item_lower = item.lower()
|
|
|
| if item_lower not in seen_items:
|
| seen_items.add(item_lower)
|
| descriptorlist.append(item)
|
|
|
| humanlist = fictionallist + nonfictionallist + humanoidlist
|
| objecttotallist = objectlist + buildinglist + vehiclelist + foodlist + spacelist + floralist + containerlist + occultlist
|
| outfitprinttotallist = objecttotallist + locationlist + colorlist + musicgenrelist + seasonlist + animallist + patternlist
|
| if(less_verbose):
|
| humanactivitycheatinglist = ["-miniactivity- OR(in;at) a OR(-location-;-building-;-waterlocation-)",
|
| "-miniactivity- OR(in;at) a OR(-location-;-building-;-waterlocation-)",
|
| "-miniactivity- OR(in;at) a OR(-location-;-building-;-waterlocation-)",
|
| "-miniactivity- OR(in;at) a OR(-location-;-building-;-waterlocation-)",
|
| "-miniactivity- OR(in;at) a OR(-location-;-building-;-waterlocation-)",
|
| "-miniactivity- OR(in;at) a OR(-location-;-building-;-waterlocation-)",
|
| "-miniactivity- OR(in;at) a OR(-location-;-building-;-waterlocation-)"]
|
| else:
|
| humanactivitycheatinglist = ["OR(;, -heshe- is;uncommon) -miniactivity- OR(in;at) a OR(-location-;-building-;-waterlocation-)",
|
| "OR(;, -heshe- is;uncommon) -miniactivity- OR(in;at) a OR(-location-;-building-;-waterlocation-)",
|
| "OR(;, -heshe- is;uncommon) -miniactivity- OR(in;at) a OR(-location-;-building-;-waterlocation-)",
|
| "OR(;, -heshe- is;uncommon) -miniactivity- OR(in;at) a OR(-location-;-building-;-waterlocation-)",
|
| "OR(;, -heshe- is;uncommon) -miniactivity- OR(in;at) a OR(-location-;-building-;-waterlocation-)",
|
| "OR(;, -heshe- is;uncommon) -miniactivity- OR(in;at) a OR(-location-;-building-;-waterlocation-)",
|
| "OR(;, -heshe- is;uncommon) -miniactivity- OR(in;at) a OR(-location-;-building-;-waterlocation-)"]
|
|
|
|
|
| if artists == "wild":
|
| artists = "all (wild)"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| if(artists == "all" and rare_dist(insanitylevel)):
|
| artists = "all (wild)"
|
| originalartistchoice = artists
|
|
|
| artisttypes = ["popular", "3D", "abstract", "angular", "anime" ,"architecture", "art nouveau", "art deco", "baroque", "bauhaus", "cartoon", "character", "children's illustration", "cityscape", "cinema", "clean", "cloudscape", "collage", "colorful", "comics", "cubism", "dark", "detailed", "digital", "expressionism", "fantasy", "fashion", "fauvism", "figurativism", "graffiti", "graphic design", "high contrast", "horror", "impressionism", "installation", "landscape", "light", "line drawing", "low contrast", "luminism", "magical realism", "manga", "melanin", "messy", "monochromatic", "nature", "photography", "pop art", "portrait", "primitivism", "psychedelic", "realism", "renaissance", "romanticism", "scene", "sci-fi", "sculpture", "seascape", "space", "stained glass", "still life", "storybook realism", "street art", "streetscape", "surrealism", "symbolism", "textile", "ukiyo-e", "vibrant", "watercolor", "whimsical"]
|
| artiststyleselector = ""
|
| artiststyleselectormode = "normal"
|
| if(artists == "all" and normal_dist(insanitylevel + 1)):
|
| artiststyleselector = random.choice(artisttypes)
|
| artists = artiststyleselector
|
| elif(artists == "all"):
|
| artiststyleselectormode = "custom"
|
|
|
| if(random.randint(0,6) == 0 and onlyartists == False):
|
| generateartist = False
|
|
|
| elif(common_dist(max(3,insanitylevel))):
|
| artists = "popular"
|
| elif(random.randint(0,1) == 0):
|
|
|
| if(insanitylevel < 6):
|
|
|
|
|
| artists = "greg mode"
|
| else:
|
| artists = "popular"
|
| else:
|
| artists = "none"
|
|
|
| else:
|
| artiststyleselectormode = "custom"
|
|
|
|
|
|
|
| artistlist = []
|
|
|
| if(artists != "all (wild)" and artists != "all" and artists != "none" and artists.startswith("personal_artists") == False and artists.startswith("personal artists") == False and artists in artisttypes):
|
| artistlist = artist_category_csv_to_list("artists_and_category",artists)
|
| elif(artists.startswith("personal_artists") == True or artists.startswith("personal artists") == True):
|
| artists = artists.replace(" ","_",-1)
|
| artistlist = csv_to_list(artists,antilist,"./userfiles/")
|
| elif(artists != "none"):
|
| artistlist = csv_to_list("artists",antilist)
|
|
|
|
|
|
|
| fantasyartistlist = artist_category_csv_to_list("artists_and_category","fantasy")
|
| popularartistlist = artist_category_csv_to_list("artists_and_category","popular")
|
| romanticismartistlist = artist_category_csv_to_list("artists_and_category","romanticism")
|
| photographyartistlist = artist_category_csv_to_list("artists_and_category","photography")
|
| portraitartistlist = artist_category_csv_to_list("artists_and_category","portrait")
|
| characterartistlist = artist_category_csv_to_list("artists_and_category","character")
|
| landscapeartistlist = artist_category_csv_to_list("artists_and_category","landscape")
|
| scifiartistlist = artist_category_csv_to_list("artists_and_category","sci-fi")
|
| graphicdesignartistlist = artist_category_csv_to_list("artists_and_category","graphic design")
|
| digitalartistlist = artist_category_csv_to_list("artists_and_category","digital")
|
| architectartistlist = artist_category_csv_to_list("artists_and_category","architecture")
|
| cinemaartistlist = artist_category_csv_to_list("artists_and_category","cinema")
|
| gregmodelist = csv_to_list("gregmode", antilist)
|
|
|
|
|
|
|
| stylestiloralist = csv_to_list("styles_ti_lora",antilist,"./userfiles/")
|
| generatestyle = bool(stylestiloralist)
|
|
|
| custominputprefixlist = csv_to_list("custom_input_prefix",antilist,"./userfiles/")
|
| generatecustominputprefix = bool(custominputprefixlist)
|
|
|
| custominputmidlist = csv_to_list("custom_input_mid",antilist,"./userfiles/")
|
| generatecustominputmid = bool(custominputmidlist)
|
|
|
| custominputsuffixlist = csv_to_list("custom_input_suffix",antilist,"./userfiles/")
|
| generatecustominputsuffix = bool(custominputsuffixlist)
|
|
|
| customsubjectslist = csv_to_list("custom_subjects",antilist,"./userfiles/")
|
| customoutfitslist = csv_to_list("custom_outfits",antilist,"./userfiles/")
|
|
|
|
|
| backgroundtypelist = csv_to_list("backgroundtypes", antilist,"./csvfiles/special_lists/",0,"?")
|
| insideshotlist = csv_to_list("insideshots", antilist,"./csvfiles/special_lists/",0,"?")
|
| photoadditionlist = csv_to_list("photoadditions", antilist,"./csvfiles/special_lists/",0,"?")
|
| if(less_verbose):
|
| buildhairlist = csv_to_list("buildhair_less_verbose", antilist,"./csvfiles/special_lists/",0,"?")
|
| buildoutfitlist = csv_to_list("buildoutfit_less_verbose", antilist,"./csvfiles/special_lists/",0,"?")
|
| humanadditionlist = csv_to_list("humanadditions_less_verbose", antilist,"./csvfiles/special_lists/",0,"?")
|
| objectadditionslist = csv_to_list("objectadditions_less_verbose", antilist,"./csvfiles/special_lists/",0,"?")
|
| buildfacelist = csv_to_list("buildface_less_verbose", antilist,"./csvfiles/special_lists/",0,"?")
|
| buildaccessorielist = csv_to_list("buildaccessorie_less_verbose", antilist,"./csvfiles/special_lists/",0,"?")
|
| humanactivitylist = csv_to_list("human_activities_less_verbose",antilist,"./csvfiles/",0,"?",False,False)
|
| humanexpressionlist = csv_to_list("humanexpressions_less_verbose",antilist,"./csvfiles/",0,"?",False,False)
|
| else:
|
| buildhairlist = csv_to_list("buildhair", antilist,"./csvfiles/special_lists/",0,"?")
|
| buildoutfitlist = csv_to_list("buildoutfit", antilist,"./csvfiles/special_lists/",0,"?")
|
| humanadditionlist = csv_to_list("humanadditions", antilist,"./csvfiles/special_lists/",0,"?")
|
| objectadditionslist = csv_to_list("objectadditions", antilist,"./csvfiles/special_lists/",0,"?")
|
| buildfacelist = csv_to_list("buildface", antilist,"./csvfiles/special_lists/",0,"?")
|
| buildaccessorielist = csv_to_list("buildaccessorie", antilist,"./csvfiles/special_lists/",0,"?")
|
| humanactivitylist = csv_to_list("human_activities",antilist,"./csvfiles/",0,"?",False,False)
|
| humanexpressionlist = csv_to_list("humanexpressions",antilist,"./csvfiles/",0,"?",False,False)
|
|
|
| humanactivitylist = humanactivitylist + humanactivitycheatinglist
|
|
|
| animaladditionlist = csv_to_list("animaladditions", antilist,"./csvfiles/special_lists/",0,"?")
|
|
|
| minilocationadditionslist = csv_to_list("minilocationadditions", antilist,"./csvfiles/special_lists/",0,"?")
|
| overalladditionlist = csv_to_list("overalladditions", antilist,"./csvfiles/special_lists/",0,"?")
|
| imagetypemodelist = csv_to_list("imagetypemodes", antilist,"./csvfiles/special_lists/",0,"?")
|
| miniactivitylist = csv_to_list("miniactivity", antilist,"./csvfiles/special_lists/",0,"?")
|
| animalsuffixadditionlist = csv_to_list("animalsuffixadditions", antilist,"./csvfiles/special_lists/",0,"?")
|
| buildfacepartlist = csv_to_list("buildfaceparts", antilist,"./csvfiles/special_lists/",0,"?")
|
| conceptmixerlist = csv_to_list("conceptmixer", antilist,"./csvfiles/special_lists/",0,"?")
|
|
|
|
|
| tokinatorlist = csv_to_list("tokinator", antilist,"./csvfiles/templates/",0,"?")
|
| styleslist = csv_to_list("styles", antilist,"./csvfiles/templates/",0,"?")
|
| stylessuffix = [item.split('-subject-')[1] for item in styleslist]
|
| breakstylessuffix = [item.split(',') for item in stylessuffix]
|
| allstylessuffixlist = [value for sublist in breakstylessuffix for value in sublist]
|
| allstylessuffixlist = list(set(allstylessuffixlist))
|
|
|
| artistsuffix = artist_descriptions_csv_to_list("artists_and_category")
|
| breakartiststylessuffix = [item.split(',') for item in artistsuffix]
|
| artiststylessuffixlist = [value for sublist in breakartiststylessuffix for value in sublist]
|
| artiststylessuffixlist = list(set(artiststylessuffixlist))
|
| allstylessuffixlist += artiststylessuffixlist
|
|
|
|
|
|
|
| dynamictemplatesprefixlist = csv_to_list("dynamic_templates_prefix", antilist,"./csvfiles/templates/",0,"?")
|
| dynamictemplatessuffixlist = csv_to_list("dynamic_templates_suffix", antilist,"./csvfiles/templates/",0,"?")
|
|
|
|
|
|
|
| mainchooserlist = []
|
| objectwildcardlist = []
|
| locationwildcardlist = []
|
| animalwildcardlist = []
|
| hybridlist = []
|
| hybridhumanlist = []
|
| humanoidsubjectchooserlist = []
|
| eventsubjectchooserlist = []
|
| locationsubjectchooserlist = []
|
| addontolocationinsidelist = []
|
| addontolocationlist = []
|
|
|
|
|
| generatevehicle = True
|
| generateobject = True
|
| generatefood = True
|
| generatebuilding = True
|
| generatespace = True
|
| generateflora = True
|
| generateoccult = True
|
| generateconcept = True
|
|
|
| generateanimal = True
|
| generatebird = True
|
| generatecat = True
|
| generatedog = True
|
| generateinsect = True
|
| generatepokemon = True
|
| generatemarinelife = True
|
|
|
|
|
| generatemanwoman = True
|
| generatemanwomanrelation = True
|
| generatemanwomanmultiple = True
|
| generatefictionalcharacter = True
|
| generatenonfictionalcharacter = True
|
| generatehumanoids = True
|
| generatejob = True
|
| generatefirstnames = True
|
|
|
| generatelandscape = True
|
| generatelocation = True
|
| generatelocationfantasy = True
|
| generatelocationscifi = True
|
| generatelocationvideogame = True
|
| generatelocationbiome = True
|
| generatelocationcity = True
|
|
|
| generateevent = True
|
| generateconcepts = True
|
| generatepoemline = True
|
| generatesongline = True
|
| generatecardname = True
|
| generateepisodetitle = True
|
|
|
| custominputprefixrepeats = 2
|
| custominputprefixchance = 'uncommon'
|
|
|
| imagetypechance = 'normal'
|
| generateimagetype = True
|
| imagetypequalitychance = 'rare'
|
| generateimagetypequality = True
|
| generateminilocationaddition = True
|
| minilocationadditionchance = 'unique'
|
| artmovementprefixchance = 'unique'
|
| minivomitprefix1chance = 'rare'
|
| minivomitprefix2chance = 'unique'
|
| shotsizechance = 'uncommon'
|
|
|
| subjectdescriptor1chance = 'common'
|
| subjectdescriptor2chance = 'uncommon'
|
| subjectbodytypechance = 'normal'
|
| subjectculturechance = 'normal'
|
| subjectconceptsuffixchance = 'unique'
|
|
|
| subjectlandscapeinsideshotchance = 'unique'
|
| subjectlandscapeaddonlocationchance = 'normal'
|
| subjectlandscapeaddonlocationdescriptorchance = 'rare'
|
| subjectlandscapeaddonlocationculturechance = 'rare'
|
|
|
| objectadditionsrepeats = 2
|
| objectadditionschance = 'uncommon'
|
| humanadditionchance = 'rare'
|
| overalladditionchance = 'extraordinary'
|
|
|
| emojichance = 'legendary'
|
| buildfacechance = 'legendary'
|
| humanexpressionchance = 'rare'
|
| joboractivitychance = 'normal'
|
| humanvomitchance = 'rare'
|
|
|
| custominputmidrepeats = 2
|
| custominputmidchance = 'uncommon'
|
| minivomitmidchance = 'unique'
|
|
|
| outfitchance = 'normal'
|
| posechance = 'uncommon'
|
| hairchance = 'normal'
|
| accessorychance = 'normal'
|
| humanoidinsideshotchance = 'legendary'
|
| humanoidbackgroundchance = 'uncommon'
|
|
|
| landscapeminilocationchance = 'uncommon'
|
| generalminilocationchance = 'rare'
|
|
|
| timperiodchance = 'normal'
|
| focuschance = 'normal'
|
| directionchance = 'normal'
|
| moodchance = 'normal'
|
| minivomitsuffixchance = 'unique'
|
| artmovementchance = 'normal'
|
| lightingchance = 'normal'
|
| photoadditionchance = 'common'
|
| lenschance = 'normal'
|
| colorschemechance = 'normal'
|
| vomit1chance = 'uncommon'
|
| vomit2chance= 'uncommon'
|
| greatworkchance = 'novel'
|
| poemlinechance = 'novel'
|
| songlinechance = 'novel'
|
| quality1chance = 'uncommon'
|
| quality2chance = 'uncommon'
|
|
|
| customstyle1chance = 'uncommon'
|
| customstyle2chance = 'uncommon'
|
|
|
| custominputsuffixrepeats = 2
|
| custominputsuffixchance = 'uncommon'
|
|
|
| artistsatbackchance = 'uncommon'
|
|
|
| for item in config:
|
|
|
| if item[0] == 'subject_vehicle' and item[1] != 'on':
|
| generatevehicle = False
|
| if item[0] == 'subject_object' and item[1] != 'on':
|
| generateobject = False
|
| if item[0] == 'subject_food' and item[1] != 'on':
|
| generatefood = False
|
| if item[0] == 'subject_building' and item[1] != 'on':
|
| generatebuilding = False
|
| if item[0] == 'subject_space' and item[1] != 'on':
|
| generatespace = False
|
| if item[0] == 'subject_flora' and item[1] != 'on':
|
| generateflora = False
|
| if item[0] == 'subject_occult' and item[1] != 'on':
|
| generateoccult = False
|
|
|
| if item[0] == 'subject_animal' and item[1] != 'on':
|
| generateanimal = False
|
| if item[0] == 'subject_bird' and item[1] != 'on':
|
| generatebird = False
|
| if item[0] == 'subject_cat' and item[1] != 'on':
|
| generatecat = False
|
| if item[0] == 'subject_dog' and item[1] != 'on':
|
| generatedog = False
|
| if item[0] == 'subject_insect' and item[1] != 'on':
|
| generateinsect = False
|
| if item[0] == 'subject_pokemon' and item[1] != 'on':
|
| generatepokemon = False
|
| if item[0] == 'subject_marinelife' and item[1] != 'on':
|
| generatemarinelife = False
|
|
|
| if item[0] == 'subject_manwoman' and item[1] != 'on':
|
| generatemanwoman = False
|
| if item[0] == 'subject_manwomanrelation' and item[1] != 'on':
|
| generatemanwomanrelation = False
|
| if item[0] == 'subject_manwomanmultiple' and item[1] != 'on':
|
| generatemanwomanmultiple = False
|
| if item[0] == 'subject_fictional' and item[1] != 'on':
|
| generatefictionalcharacter = False
|
| if item[0] == 'subject_nonfictional' and item[1] != 'on':
|
| generatenonfictionalcharacter = False
|
| if item[0] == 'subject_humanoid' and item[1] != 'on':
|
| generatehumanoids = False
|
| if item[0] == 'subject_job' and item[1] != 'on':
|
| generatejob = False
|
| if item[0] == 'subject_firstnames' and item[1] != 'on':
|
| generatefirstnames = False
|
|
|
| if item[0] == 'subject_location' and item[1] != 'on':
|
| generatelocation = False
|
| if item[0] == 'subject_location_fantasy' and item[1] != 'on':
|
| generatelocationfantasy = False
|
| if item[0] == 'subject_location_scifi' and item[1] != 'on':
|
| generatelocationscifi = False
|
| if item[0] == 'subject_location_videogame' and item[1] != 'on':
|
| generatelocationvideogame = False
|
| if item[0] == 'subject_location_biome' and item[1] != 'on':
|
| generatelocationbiome = False
|
| if item[0] == 'subject_location_city' and item[1] != 'on':
|
| generatelocationcity = False
|
|
|
| if item[0] == 'subject_event' and item[1] != 'on':
|
| generateevent = False
|
| if item[0] == 'subject_concept' and item[1] != 'on':
|
| generateconcepts = False
|
| if item[0] == 'subject_poemline' and item[1] != 'on':
|
| generatepoemline = False
|
| if item[0] == 'subject_songline' and item[1] != 'on':
|
| generatesongline = False
|
| if item[0] == 'subject_cardname' and item[1] != 'on':
|
| generatecardname = False
|
| if item[0] == 'subject_episodetitle' and item[1] != 'on':
|
| generateepisodetitle = False
|
|
|
|
|
| if item[0] == 'custominputprefixrepeats':
|
| custominputprefixrepeats = int(item[1])
|
| if item[0] == 'custominputprefixchance':
|
| custominputprefixchance = item[1]
|
| if(custominputprefixchance == 'never'):
|
| generatecustominputprefix = False
|
| if item[0] == 'imagetypechance':
|
| imagetypechance = item[1]
|
| if(imagetypechance == 'never'):
|
| generateimagetype = False
|
| if item[0] == 'imagetypequalitychance':
|
| imagetypequalitychance = item[1]
|
| if(imagetypequalitychance == 'never'):
|
| generateimagetypequality = False
|
| if item[0] == 'minilocationadditionchance':
|
| minilocationadditionchance = item[1]
|
| if item[0] == 'artmovementprefixchance':
|
| artmovementprefixchance = item[1]
|
| if item[0] == 'minivomitprefix1chance':
|
| minivomitprefix1chance = item[1]
|
| if item[0] == 'minivomitprefix2chance':
|
| minivomitprefix2chance = item[1]
|
|
|
| if item[0] == 'shotsizechance':
|
| shotsizechance = item[1]
|
|
|
| if item[0] == 'subjectdescriptor1chance':
|
| subjectdescriptor1chance = item[1]
|
| if item[0] == 'subjectdescriptor2chance':
|
| subjectdescriptor2chance = item[1]
|
| if item[0] == 'subjectbodytypechance':
|
| subjectbodytypechance = item[1]
|
| if item[0] == 'subjectculturechance':
|
| subjectculturechance = item[1]
|
| if item[0] == 'subjectconceptsuffixchance':
|
| subjectconceptsuffixchance = item[1]
|
|
|
| if item[0] == 'subjectlandscapeinsideshotchance':
|
| subjectlandscapeinsideshotchance = item[1]
|
| if item[0] == 'subjectlandscapeaddonlocationchance':
|
| subjectlandscapeaddonlocationchance = item[1]
|
| if item[0] == 'subjectlandscapeaddonlocationdescriptorchance':
|
| subjectlandscapeaddonlocationdescriptorchance = item[1]
|
| if item[0] == 'subjectlandscapeaddonlocationculturechance':
|
| subjectlandscapeaddonlocationculturechance = item[1]
|
|
|
| if item[0] == 'objectadditionsrepeats':
|
| objectadditionsrepeats = int(item[1])
|
| if item[0] == 'objectadditionschance':
|
| objectadditionschance = item[1]
|
| if item[0] == 'humanadditionchance':
|
| humanadditionchance = item[1]
|
| if item[0] == 'overalladditionchance':
|
| overalladditionchance = item[1]
|
|
|
| if item[0] == 'emojichance':
|
| emojichance = item[1]
|
| if(hardturnoffemojis==True):
|
| emojichance='never'
|
| if item[0] == 'buildfacechance':
|
| buildfacechance = item[1]
|
| if item[0] == 'humanexpressionchance':
|
| humanexpressionchance = item[1]
|
| if item[0] == 'humanvomitchance':
|
| humanvomitchance = item[1]
|
| if item[0] == 'joboractivitychance':
|
| joboractivitychance = item[1]
|
|
|
| if item[0] == 'custominputmidrepeats':
|
| custominputmidrepeats = int(item[1])
|
| if item[0] == 'custominputmidchance':
|
| custominputmidchance = item[1]
|
| if item[0] == 'minivomitmidchance':
|
| minivomitmidchance = item[1]
|
|
|
| if item[0] == 'outfitchance':
|
| outfitchance = item[1]
|
| if item[0] == 'posechance':
|
| posechance = item[1]
|
| if item[0] == 'hairchance':
|
| hairchance = item[1]
|
| if item[0] == 'accessorychance':
|
| accessorychance = item[1]
|
| if item[0] == 'humanoidinsideshotchance':
|
| humanoidinsideshotchance = item[1]
|
| if item[0] == 'humanoidbackgroundchance':
|
| humanoidbackgroundchance = item[1]
|
|
|
| if item[0] == 'landscapeminilocationchance':
|
| landscapeminilocationchance = item[1]
|
| if item[0] == 'generalminilocationchance':
|
| generalminilocationchance = item[1]
|
|
|
| if item[0] == 'timperiodchance':
|
| timperiodchance = item[1]
|
| if item[0] == 'focuschance':
|
| focuschance = item[1]
|
| if item[0] == 'directionchance':
|
| directionchance = item[1]
|
| if item[0] == 'moodchance':
|
| moodchance = item[1]
|
| if item[0] == 'minivomitsuffixchance':
|
| minivomitsuffixchance = item[1]
|
| if item[0] == 'artmovementchance':
|
| artmovementchance = item[1]
|
| if item[0] == 'lightingchance':
|
| lightingchance = item[1]
|
| if item[0] == 'photoadditionchance':
|
| photoadditionchance = item[1]
|
| if item[0] == 'lenschance':
|
| lenschance = item[1]
|
| if item[0] == 'colorschemechance':
|
| colorschemechance = item[1]
|
| if item[0] == 'vomit1chance':
|
| vomit1chance = item[1]
|
| if item[0] == 'vomit2chance':
|
| vomit2chance = item[1]
|
| if item[0] == 'greatworkchance':
|
| greatworkchance = item[1]
|
| if item[0] == 'poemlinechance':
|
| poemlinechance = item[1]
|
| if item[0] == 'songlinechance':
|
| songlinechance = item[1]
|
| if item[0] == 'quality1chance':
|
| quality1chance = item[1]
|
| if item[0] == 'quality2chance':
|
| quality2chance = item[1]
|
|
|
| if item[0] == 'customstyle1chance':
|
| customstyle1chance = item[1]
|
| if item[0] == 'customstyle2chance':
|
| customstyle2chance = item[1]
|
|
|
| if item[0] == 'custominputsuffixrepeats':
|
| custominputsuffixrepeats = int(item[1])
|
| if item[0] == 'custominputsuffixchance':
|
| custominputsuffixchance = item[1]
|
|
|
| if item[0] == 'artistsatbackchance':
|
| artistsatbackchance = item[1]
|
|
|
|
|
| generatevehicle = bool(vehiclelist) and generatevehicle
|
| generateobject = bool(objectlist) and generateobject
|
| generatefood = bool(foodlist) and generatefood
|
| generatebuilding = bool(buildinglist) and generatebuilding
|
| generatespace = bool(spacelist) and generatespace
|
| generateflora = bool(floralist) and generateflora
|
| generateoccult = bool(occultlist) and generateoccult
|
| generateobject = generatevehicle or generateobject or generatefood or generatebuilding or generatespace or generateflora or generateoccult
|
|
|
|
|
| if(generatevehicle):
|
| objectwildcardlist.append("-vehicle-")
|
| hybridlist.append("-vehicle-")
|
| addontolocationlist.append("-vehicle-")
|
|
|
| if(generateobject):
|
| objectwildcardlist.append("-object-")
|
| hybridlist.append("-object-")
|
|
|
| if(generatefood):
|
| objectwildcardlist.append("-food-")
|
| hybridlist.append("-food-")
|
|
|
| if(generatespace):
|
| objectwildcardlist.append("-space-")
|
| hybridlist.append("-space-")
|
| addontolocationlist.append("-space-")
|
|
|
| if(generatebuilding):
|
| objectwildcardlist.append("-building-")
|
| hybridlist.append("-building-")
|
| addontolocationlist.append("-building-")
|
| addontolocationinsidelist.append("-building-")
|
|
|
| if(generateflora):
|
| objectwildcardlist.append("-flora-")
|
| hybridlist.append("-flora-")
|
| addontolocationlist.append("-flora-")
|
|
|
| if(generateoccult):
|
| objectwildcardlist.append("-occult-")
|
| hybridlist.append("-occult-")
|
| addontolocationlist.append("-occult-")
|
|
|
| if(generateobject):
|
| mainchooserlist.append("object")
|
|
|
| if(generatelandscape):
|
| mainchooserlist.append("landscape")
|
|
|
| if(generatelocationfantasy):
|
| locationwildcardlist.append("-locationfantasy-")
|
|
|
| if(generatelocationscifi):
|
| locationwildcardlist.append("-locationscifi-")
|
|
|
| if(generatelocationvideogame):
|
| locationwildcardlist.append("-locationvideogame-")
|
|
|
| if(generatelocationbiome):
|
| locationwildcardlist.append("-locationbiome-")
|
|
|
| if(generatelocationcity):
|
| locationwildcardlist.append("-locationcity-")
|
|
|
| if(generatelocation):
|
| locationwildcardlist.append("-location-")
|
|
|
| if(generateanimal):
|
| animalwildcardlist.append("-animal-")
|
|
|
| if(generatebird):
|
| animalwildcardlist.append("-bird-")
|
|
|
| if(generatecat):
|
| animalwildcardlist.append("-cat-")
|
|
|
| if(generatedog):
|
| animalwildcardlist.append("-dog-")
|
|
|
| if(generateinsect):
|
| animalwildcardlist.append("-insect-")
|
|
|
| if(generatepokemon):
|
| animalwildcardlist.append("-pokemon-")
|
|
|
| if(generatemarinelife):
|
| animalwildcardlist.append("-marinelife-")
|
|
|
| generatefictionalcharacter = bool(fictionallist) and generatefictionalcharacter
|
| generatenonfictionalcharacter = bool(nonfictionallist) and generatenonfictionalcharacter
|
| generatehumanoids = bool(humanoidlist) and generatehumanoids
|
| generatemanwoman = bool(manwomanlist) and generatemanwoman
|
| generatemanwomanrelation = bool(manwomanrelationlist) and generatemanwomanrelation
|
| generatemanwomanmultiple = bool(manwomanmultiplelist) and generatemanwomanmultiple
|
| generatejob = bool(joblist) and generatejob
|
| generatefirstnames = bool(firstnamelist) and generatefirstnames
|
| generatehumanoid = generatefictionalcharacter or generatenonfictionalcharacter or generatehumanoids or generatemanwoman or generatejob or generatemanwomanrelation or generatefirstnames or generatemanwomanmultiple
|
|
|
|
|
| if(generatefictionalcharacter):
|
| humanoidsubjectchooserlist.append("fictional")
|
| hybridlist.append("-fictional-")
|
| hybridhumanlist.append("-fictional-")
|
|
|
| if(generatefictionalcharacter):
|
| humanoidsubjectchooserlist.append("non fictional")
|
| hybridlist.append("-nonfictional-")
|
| hybridhumanlist.append("-nonfictional-")
|
|
|
| if(generatehumanoids):
|
| humanoidsubjectchooserlist.append("humanoid")
|
| hybridlist.append("-humanoid-")
|
| hybridhumanlist.append("-humanoid-")
|
|
|
| if(generatemanwoman):
|
| humanoidsubjectchooserlist.append("human")
|
|
|
| if(generatemanwomanrelation):
|
| humanoidsubjectchooserlist.append("manwomanrelation")
|
|
|
| if(generatemanwomanmultiple):
|
| humanoidsubjectchooserlist.append("manwomanmultiple")
|
|
|
| if(generatejob):
|
| humanoidsubjectchooserlist.append("job")
|
|
|
| if(generatehumanoid):
|
| mainchooserlist.append("humanoid")
|
|
|
| if(generatefirstnames):
|
| humanoidsubjectchooserlist.append("firstname")
|
|
|
|
|
| generateanimal = bool(animallist) and generateanimal
|
| generatebird = bool(birdlist) and generatebird
|
| generatecat = bool(catlist) and generatecat
|
| generatedog = bool(doglist) and generatedog
|
| generateinsect = bool(insectlist) and generateinsect
|
| generatepokemon = bool(pokemonlist) and generatepokemon
|
| generatemarinelife = bool(marinelifelist) and generatemarinelife
|
|
|
| generateanimaltotal = generateanimal or generatebird or generatecat or generatedog or generateinsect or generatepokemon or generatemarinelife
|
|
|
| if(generateanimal):
|
| hybridlist.append("-animal-")
|
| if(generatebird):
|
| hybridlist.append("-bird-")
|
| if(generatecat):
|
| hybridlist.append("-cat-")
|
| if(generatedog):
|
| hybridlist.append("-dog-")
|
| if(generateinsect):
|
| hybridlist.append("-insect-")
|
| if(generatepokemon):
|
| hybridlist.append("-pokemon-")
|
|
|
| if(generatemarinelife):
|
| hybridlist.append("-marinelife-")
|
|
|
| if(generateanimaltotal):
|
| mainchooserlist.append("animal")
|
|
|
| generatelocation = bool(locationlist) and generatelocation
|
| generatelocationfantasy = bool(locationfantasylist) and generatelocationfantasy
|
| generatelocationscifi = bool(locationscifilist) and generatelocationscifi
|
| generatelocationvideogame = bool(locationvideogamelist) and generatelocationvideogame
|
| generatelocationbiome = bool(locationbiomelist) and generatelocationbiome
|
| generatelocationcity = bool(locationcitylist) and generatelocationcity
|
| generatelandscape = generatelocation or generatelocationfantasy or generatelocationscifi or generatelocationvideogame or generatelocationbiome or generatelocationcity
|
|
|
| if(generatelandscape):
|
| addontolocationlist.append("-location-")
|
| addontolocationlist.append("-background-")
|
| addontolocationinsidelist.append("-location-")
|
| addontolocationinsidelist.append("-background-")
|
| locationsubjectchooserlist.append("landscape")
|
|
|
| if(generatelocation):
|
| locationsubjectchooserlist.append("location")
|
| if(generatelocationfantasy):
|
| locationsubjectchooserlist.append("fantasy location")
|
| if(generatelocationscifi):
|
| locationsubjectchooserlist.append("sci-fi location")
|
| if(generatelocationvideogame):
|
| locationsubjectchooserlist.append("videogame location")
|
| if(generatelocationbiome):
|
| locationsubjectchooserlist.append("biome")
|
| if(generatelocationcity):
|
| locationsubjectchooserlist.append("city")
|
|
|
| generateevent = bool(eventlist) and generateevent
|
| generateconcepts = bool(conceptprefixlist) and bool(conceptsuffixlist) and generateconcepts
|
| generatepoemline = bool(poemlinelist) and generatepoemline
|
| generatesongline = bool(songlinelist) and generatesongline
|
| generatecardname = bool(cardnamelist) and generatecardname
|
| generateepisodetitle = bool(episodetitlelist) and generateepisodetitle
|
|
|
|
|
|
|
| generateconcept = generateevent or generateconcepts or generatepoemline or generatesongline
|
|
|
| if(generateevent):
|
| eventsubjectchooserlist.append("event")
|
|
|
| if(generateconcepts):
|
| eventsubjectchooserlist.append("concept")
|
|
|
| if(generatepoemline):
|
| eventsubjectchooserlist.append("poemline")
|
|
|
| if(generatesongline):
|
| eventsubjectchooserlist.append("songline")
|
|
|
| if(generatecardname):
|
| eventsubjectchooserlist.append("cardname")
|
|
|
| if(generateepisodetitle):
|
| eventsubjectchooserlist.append("episodetitle")
|
|
|
| if(generateconcept):
|
| mainchooserlist.append("concept")
|
|
|
|
|
|
|
|
|
| if(random.randint(1,int(imagemodechance)) == 1 and (imagetype == "all" or imagetype == "all - anime") and giventypeofimage == "" and onlyartists == False):
|
| if(less_verbose):
|
| imagetypemodelist.remove("dynamic templates mode")
|
| if(anime_mode):
|
| imagetypemodelist.remove("only templates mode")
|
| imagetypemodelist.remove("massive madness mode")
|
| imagetypemodelist.remove("fixed styles mode")
|
| imagetypemodelist.remove("unique art mode")
|
| imagetype = random.choice(imagetypemodelist)
|
|
|
|
|
|
|
| specialmode = False
|
| templatemode = False
|
| artblastermode = False
|
| qualityvomitmode = False
|
| uniqueartmode = False
|
| colorcannonmode = False
|
| photofantasymode = False
|
| massivemadnessmode = False
|
| onlysubjectmode = False
|
| stylesmode = False
|
| thetokinatormode = False
|
| dynamictemplatesmode = False
|
| artifymode = False
|
|
|
|
|
| if(imagetype == "only templates mode"):
|
| specialmode = True
|
| templatemode = True
|
| print("Running with a randomized template instead of a randomized prompt")
|
|
|
| if(imagetype == "art blaster mode"):
|
| specialmode = True
|
| if(uncommon_dist(insanitylevel)):
|
| artblastermode = True
|
| elif(bool(artistlist)):
|
| onlysubjectmode = True
|
| artifymode = True
|
| else:
|
| artblastermode = True
|
| print("Running in art blaster mode")
|
|
|
| if(imagetype == "unique art mode"):
|
| specialmode = True
|
| uniqueartmode = True
|
| print("Running in unique art mode")
|
|
|
| if(imagetype == "quality vomit mode"):
|
| specialmode = True
|
| qualityvomitmode = True
|
| print("Running in quality vomit mode")
|
|
|
| if(imagetype == "color cannon mode"):
|
| specialmode = True
|
| colorcannonmode = True
|
| print("Running in color cannon mode")
|
|
|
| if(imagetype == "photo fantasy mode"):
|
| specialmode = True
|
| photofantasymode = True
|
| print("Running in photo fantasy mode")
|
|
|
| if(imagetype == "massive madness mode"):
|
| specialmode = True
|
| massivemadnessmode = True
|
| print("Running in massive madness mode")
|
| print("Are you ready for this?")
|
|
|
| if(imagetype == "subject only mode"):
|
| specialmode = True
|
| onlysubjectmode = True
|
| print("Running in only subject mode")
|
|
|
| if(imagetype == "fixed styles mode"):
|
| specialmode = True
|
| stylesmode = True
|
| print("Running with a randomized style instead of a randomized prompt")
|
|
|
| if(imagetype == "the tokinator"):
|
| specialmode = True
|
| thetokinatormode = True
|
|
|
| tokenlist = csv_to_list(csvfilename="tokens",antilist=antilist,skipheader=True)
|
| print("Running with a completely random set of words")
|
| print("All safety and logic is turned off")
|
|
|
| if(imagetype == "dynamic templates mode"):
|
| specialmode = True
|
| dynamictemplatesmode = True
|
| print("Running with dynamic templates mode")
|
|
|
|
|
| if(imagetype == "artify mode"):
|
| specialmode = True
|
| onlysubjectmode = True
|
| artifymode = True
|
| print("Running with artify mode")
|
|
|
|
|
| generatetype = not specialmode
|
| generatesubject = not templatemode
|
| if(thetokinatormode):
|
| generatesubject = False
|
|
|
|
|
| generateartist = bool(artistlist) and not specialmode
|
| if(thetokinatormode):
|
| generateartist = bool(artistlist)
|
| generateoutfit = bool(outfitlist) and not templatemode
|
| generatebodytype = bool(bodytypelist) and not templatemode
|
| generateaccessorie = bool(accessorielist) and not specialmode
|
| generateartmovement = bool(artmovementlist) and not specialmode
|
| generatecamera = bool(cameralist) and not specialmode
|
| generatecolorscheme = bool(colorschemelist) and not specialmode
|
| generatedescriptors = bool(descriptorlist) and not templatemode
|
| generatedirection = bool(directionlist) and not specialmode
|
| generatefocus = bool(focuslist) and not specialmode
|
| generatehairstyle = bool(hairstylelist) and not templatemode
|
| generatelens = bool(lenslist) and not specialmode
|
| generatelighting = bool(lightinglist) and not specialmode
|
| generatemood = bool(moodlist) and not specialmode
|
| generatepose = bool(poselist) and not templatemode
|
| generatevomit = bool(vomitlist) and not specialmode and add_vomit
|
| generatequality = bool(qualitylist) and not specialmode and add_quality
|
| generateshot = bool(shotsizelist) and not specialmode
|
| generatetimeperiod = bool(timeperiodlist) and not specialmode
|
| generateemoji = bool(emojilist) and not templatemode
|
| generateface = bool(buildfacelist) and not specialmode
|
| generatehumanexpression = bool(humanexpressionlist) and not specialmode
|
| generatehumanvomit = bool(humanvomitlist) and not specialmode
|
|
|
|
|
| generatebackground = bool(backgroundtypelist) and not specialmode
|
| generateinsideshot = bool(insideshotlist) and not specialmode
|
| generatephotoaddition = bool(photoadditionlist) and not specialmode
|
| generatehairstyle = bool(buildhairlist) and not templatemode
|
| generateoutfit = bool(buildoutfitlist) and not templatemode
|
| generateobjectaddition = bool(objectadditionslist) and not templatemode
|
| generatehumanaddition = bool(humanadditionlist) and not templatemode
|
| generateanimaladdition = bool(animaladditionlist) and not templatemode
|
| generateaccessories = bool(buildaccessorielist) and not templatemode
|
| generategreatwork = bool(greatworklist) and not specialmode
|
| generatepoemline = bool(poemlinelist) and not specialmode
|
| generatesongline = bool(songlinelist) and not specialmode
|
| generatecardname = bool(cardnamelist) and not specialmode
|
| generateepisodetitle = bool(episodetitlelist) and not specialmode
|
|
|
| generateminilocationaddition = bool(minilocationadditionslist) and not specialmode
|
| generateminivomit = bool(minivomitlist) and not specialmode and add_vomit
|
| generateimagetypequality = bool(imagetypequalitylist) and not specialmode and generateimagetypequality
|
| generateoveralladdition = bool(overalladditionlist) and not specialmode
|
| generateimagetype = bool(imagetypelist) and not specialmode and generateimagetype
|
|
|
|
|
|
|
| givensubjectlist = []
|
|
|
| if(givensubject != "" and smartsubject == True):
|
| givensubject = givensubject.lower()
|
|
|
|
|
|
|
|
|
|
|
|
|
| givensubjectlist = split_prompt_to_words(givensubject)
|
|
|
|
|
|
|
|
|
| foundinlist = any(word.lower() in [item.lower() for item in outfitlist] for word in givensubjectlist)
|
| keywordslist = ["wearing","outfit", "dressed"]
|
| keywordsinstring = any(word.lower() in givensubject.lower() for word in keywordslist)
|
| if(foundinlist == True or keywordsinstring == True):
|
| generateoutfit = False
|
|
|
|
|
| foundinlist = any(word.lower() in [item.lower() for item in bodytypelist] for word in givensubjectlist)
|
| keywordslist = ["bodytype","body type","model"]
|
| keywordsinstring = any(word.lower() in givensubject.lower() for word in keywordslist)
|
| if(foundinlist == True or keywordsinstring == True):
|
| generatebodytype = False
|
|
|
|
|
| foundinlist = any(word.lower() in [item.lower() for item in hairstylelist] for word in givensubjectlist)
|
| keywordslist = ["hair","hairstyle"]
|
| keywordsinstring = any(word.lower() in givensubject.lower() for word in keywordslist)
|
| if(foundinlist == True or keywordsinstring == True):
|
| generatehairstyle = False
|
|
|
|
|
| foundinlist = any(word.lower() in [item.lower() for item in descriptorlist] for word in givensubjectlist)
|
| foundinlist2 = any(word.lower() in [item.lower() for item in culturelist] for word in givensubjectlist)
|
| if(foundinlist == True or foundinlist2 == True):
|
| generatedescriptors = False
|
|
|
|
|
| foundinlist = any(word.lower() in [item.lower() for item in locationlist] for word in givensubjectlist)
|
| foundinlist2 = any(word.lower() in [item.lower() for item in buildinglist] for word in givensubjectlist)
|
| keywordslist = ["location","background", "inside", "at the", "in a"]
|
| keywordsinstring = any(word.lower() in givensubject.lower() for word in keywordslist)
|
| if(foundinlist == True or foundinlist2 == True or keywordsinstring == True):
|
| generatebackground = False
|
| generateinsideshot = False
|
|
|
|
|
| foundinlist = any(word.lower() in [item.lower() for item in accessorielist] for word in givensubjectlist)
|
| if(foundinlist == True):
|
| generateaccessorie = False
|
|
|
|
|
| foundinlist = any(word.lower() in [item.lower() for item in lenslist] for word in givensubjectlist)
|
| if(foundinlist == True):
|
| generatelens = False
|
|
|
|
|
| foundinlist = any(word.lower() in [item.lower() for item in lightinglist] for word in givensubjectlist)
|
| keywordslist = ["lighting"]
|
| keywordsinstring = any(word.lower() in givensubject.lower() for word in keywordslist)
|
| if(foundinlist == True or keywordsinstring == True):
|
| generatelighting = False
|
|
|
|
|
| foundinlist = any(word.lower() in [item.lower() for item in moodlist] for word in givensubjectlist)
|
| keywordslist = ["mood"]
|
| keywordsinstring = any(word.lower() in givensubject.lower() for word in keywordslist)
|
| if(foundinlist == True or keywordsinstring == True):
|
| generatemood = False
|
|
|
|
|
|
|
| foundinlist = any(word.lower() in [item.lower() for item in poselist] for word in givensubjectlist)
|
| keywordslist = ["pose", "posing"]
|
| keywordsinstring = any(word.lower() in givensubject.lower() for word in keywordslist)
|
| if(foundinlist == True or keywordsinstring == True):
|
| generatepose = False
|
|
|
|
|
| foundinlist = any(word.lower() in [item.lower() for item in qualitylist] for word in givensubjectlist)
|
| keywordslist = ["quality"]
|
| keywordsinstring = any(word.lower() in givensubject.lower() for word in keywordslist)
|
| if(foundinlist == True or keywordsinstring == True):
|
| generatequality = False
|
|
|
|
|
| foundinlist = any(word.lower() in [item.lower() for item in shotsizelist] for word in givensubjectlist)
|
| keywordslist = ["shot"]
|
| keywordsinstring = any(word.lower() in givensubject.lower() for word in keywordslist)
|
| if(foundinlist == True or keywordsinstring == True):
|
| generateshot = False
|
|
|
|
|
| foundinlist = any(word.lower() in [item.lower() for item in timeperiodlist] for word in givensubjectlist)
|
| if(foundinlist == True):
|
| generatetimeperiod = False
|
|
|
|
|
| foundinlist = any(word.lower() in [item.lower() for item in vomitlist] for word in givensubjectlist)
|
| if(foundinlist == True):
|
| generatevomit = False
|
|
|
|
|
| foundinlist = any(word.lower() in [item.lower() for item in directionlist] for word in givensubjectlist)
|
| if(foundinlist == True):
|
| generatedirection = False
|
|
|
|
|
| foundinlist = any(word.lower() in [item.lower() for item in focuslist] for word in givensubjectlist)
|
| if(foundinlist == True):
|
| generatefocus = False
|
|
|
|
|
| foundinlist = any(word.lower() in [item.lower() for item in artmovementlist] for word in givensubjectlist)
|
| if(foundinlist == True):
|
| generateartmovement = False
|
|
|
|
|
| foundinlist = any(word.lower() in [item.lower() for item in cameralist] for word in givensubjectlist)
|
| if(foundinlist == True):
|
| generatecamera = False
|
|
|
|
|
| foundinlist = any(word.lower() in [item.lower() for item in colorschemelist] for word in givensubjectlist)
|
| if(foundinlist == True):
|
| generatecolorscheme = False
|
|
|
|
|
|
|
| subjectingivensubject = False
|
| if("subject" in list(map(str.lower, givensubjectlist)) and smartsubject == True):
|
| givensubjectpromptlist = givensubject.split("subject")
|
| subjectingivensubject = True
|
|
|
| completeprompt = ""
|
|
|
|
|
|
|
|
|
| promptstocompound = int(promptcompounderlevel)
|
| compoundcounter = 0
|
|
|
| while compoundcounter < promptstocompound:
|
| isphoto = 0
|
| othertype = 0
|
| humanspecial = 0
|
| animaladdedsomething = 0
|
| isweighted = 0
|
| amountofimagetypes = 0
|
| hybridorswap = ""
|
| artistmode = "normal"
|
| insideshot = 0
|
| buildingfullmode = False
|
| subjectchooser = ""
|
| mainchooser = ""
|
|
|
|
|
|
|
| completeprompt += ", "
|
|
|
| if(templatemode==True):
|
| templatelist = csv_to_list("templates", antilist,"./csvfiles/templates/",1,";",True)
|
|
|
|
|
|
|
|
|
|
|
|
|
| targettemplateenvironment = "all"
|
| templateenvironmentsources = "all"
|
|
|
|
|
|
|
|
|
| templateprompts = [templateprompt[0] for templateprompt in templatelist if( (templateprompt[1] == targettemplateenvironment or targettemplateenvironment =="all") and (templateprompt[2] == templateenvironmentsources or templateenvironmentsources == "all") and (templateprompt[3] == forcesubject or forcesubject == "all") ) ]
|
| templatepromptcreator = [templateprompt[1] for templateprompt in templatelist if( (templateprompt[1] == targettemplateenvironment or targettemplateenvironment =="all") and (templateprompt[2] == templateenvironmentsources or templateenvironmentsources == "all") and (templateprompt[3] == forcesubject or forcesubject == "all") ) ]
|
| templatesubjects= [templateprompt[4] for templateprompt in templatelist if( (templateprompt[1] == targettemplateenvironment or targettemplateenvironment =="all") and (templateprompt[2] == templateenvironmentsources or templateenvironmentsources == "all") and (templateprompt[3] == forcesubject or forcesubject == "all") )]
|
|
|
|
|
| chosentemplate = random.choice(templateprompts)
|
| templateindex = templateprompts.index(chosentemplate)
|
|
|
| print("Processing a prompt that was inspired from: " + templatepromptcreator[templateindex])
|
|
|
|
|
| if(givensubject==""):
|
| completeprompt += chosentemplate.replace("-subject-",templatesubjects[templateindex] )
|
| elif(givensubject != "" and subjectingivensubject == False):
|
| completeprompt += chosentemplate.replace("-subject-",givensubject )
|
| elif(givensubject != "" and subjectingivensubject == True):
|
| completeprompt += chosentemplate.replace("-subject-", givensubjectpromptlist[0] + " " + templatesubjects[templateindex] + " " + givensubjectpromptlist[1])
|
|
|
|
|
|
|
|
|
| for i in range(custominputprefixrepeats):
|
| if(chance_roll(insanitylevel, custominputprefixchance) and generatecustominputprefix == True):
|
| completeprompt += random.choice(custominputprefixlist) + ", "
|
|
|
|
|
|
|
| if(insanitylevel==0):
|
| insanitylevel = random.randint(1, 10)
|
| insanitylevel3 = int((insanitylevel/3) + 1.20)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| artiststylelistforchecking = ["popular", "3D", "anime" "art nouveau", "art deco", "character", "fantasy", "fashion", "manga", "photography","portrait","sci-fi"]
|
| if((artiststyleselector in artiststylelistforchecking
|
| or artists in artiststylelistforchecking)
|
| and (forcesubject == "all" or forcesubject == "")):
|
|
|
|
|
|
|
|
|
|
|
| if(random.randint(0,6) > max(2,insanitylevel -2) and "concept" in mainchooserlist):
|
| mainchooserlist.remove("concept")
|
| if(random.randint(0,6) > max(2,insanitylevel -2) and "landscape" in mainchooserlist):
|
| mainchooserlist.remove("landscape")
|
| if(random.randint(0,6) > max(2,insanitylevel -2) and "object" in mainchooserlist):
|
| mainchooserlist.remove("object")
|
| if(random.randint(0,6) > max(2,insanitylevel -2) and "animal" in mainchooserlist):
|
| mainchooserlist.remove("animal")
|
|
|
|
|
|
|
| artiststylelistforchecking = ["architecture","bauhaus", "cityscape", "cinema", "cloudscape","impressionism", "installation", "landscape","magical realism", "nature", "romanticism","seascape", "space", "streetscape"]
|
|
|
| if((artiststyleselector in artiststylelistforchecking
|
| or artists in artiststylelistforchecking)
|
| and (forcesubject == "all" or forcesubject == "")):
|
|
|
|
|
|
|
|
|
| if(random.randint(0,6) > max(2,insanitylevel -2) and "concept" in mainchooserlist):
|
| mainchooserlist.remove("concept")
|
| if(random.randint(0,6) > max(2,insanitylevel -2) and "animal" in mainchooserlist):
|
| mainchooserlist.remove("animal")
|
| if(random.randint(0,6) > max(2,insanitylevel -2) and "object" in mainchooserlist):
|
| mainchooserlist.remove("object")
|
| if(random.randint(0,8) > max(2,insanitylevel -2) and "humanoid" in mainchooserlist):
|
| mainchooserlist.remove("humanoid")
|
|
|
|
|
| if(anime_mode and (forcesubject == "all" or forcesubject == "")):
|
| if(random.randint(0,11) > max(2,insanitylevel -2) and "concept" in mainchooserlist):
|
| mainchooserlist.remove("concept")
|
| if(random.randint(0,11) > max(2,insanitylevel -2) and "landscape" in mainchooserlist):
|
| mainchooserlist.remove("landscape")
|
| if(random.randint(0,11) > max(2,insanitylevel -2) and "object" in mainchooserlist):
|
| mainchooserlist.remove("object")
|
| if(random.randint(0,8) > max(2,insanitylevel -2) and "animal" in mainchooserlist):
|
| mainchooserlist.remove("animal")
|
|
|
|
|
|
|
| mainchooser = random.choice(mainchooserlist)
|
|
|
| if(forcesubject != "" and forcesubject != "all"):
|
| mainchooser = forcesubject
|
|
|
| if(mainchooser == "object"):
|
| subjectchooser = "object"
|
| if(mainchooser == "animal" and (random.randint(0,5) == 5 or anime_mode)):
|
|
|
|
|
| animalashuman = True
|
| if(mainchooser == "humanoid"):
|
|
|
|
|
|
|
|
|
|
|
| humanoidsubjectchooserlistbackup = humanoidsubjectchooserlist.copy()
|
| if(random.randint(0,20) > max(2,insanitylevel -2) and "manwomanrelation" in humanoidsubjectchooserlist):
|
| humanoidsubjectchooserlist.remove("manwomanrelation")
|
| if(random.randint(0,30) > max(2,insanitylevel -2) and "manwomanmultiple" in humanoidsubjectchooserlist):
|
| humanoidsubjectchooserlist.remove("manwomanmultiple")
|
| if(random.randint(0,7) > max(2,insanitylevel -2) and "firstname" in humanoidsubjectchooserlist):
|
| humanoidsubjectchooserlist.remove("firstname")
|
| if(random.randint(0,5) > max(2,insanitylevel -2) and "job" in humanoidsubjectchooserlist):
|
| humanoidsubjectchooserlist.remove("job")
|
| if(random.randint(0,5) > max(2,insanitylevel -2) and "fictional" in humanoidsubjectchooserlist):
|
| humanoidsubjectchooserlist.remove("fictional")
|
| if(random.randint(0,5) > max(2,insanitylevel -2) and "non fictional" in humanoidsubjectchooserlist):
|
| humanoidsubjectchooserlist.remove("non fictional")
|
| if(random.randint(0,5) > max(2,insanitylevel -2) and "humanoid" in humanoidsubjectchooserlist):
|
| humanoidsubjectchooserlist.remove("humanoid")
|
|
|
| if(random.randint(0,4) > max(2,insanitylevel -2) and "human" in humanoidsubjectchooserlist):
|
| humanoidsubjectchooserlist.remove("human")
|
|
|
|
|
| if(not bool(humanoidsubjectchooserlist)):
|
| humanoidsubjectchooserlist = humanoidsubjectchooserlistbackup
|
|
|
| subjectchooser = random.choice(humanoidsubjectchooserlist)
|
|
|
|
|
|
|
| if(subtypehumanoid != "all"):
|
| if(subtypehumanoid == "generic humans"):
|
| subjectchooser = "human"
|
| elif(subtypehumanoid == "generic human relations"):
|
| subjectchooser = "manwomanrelation"
|
| elif(subtypehumanoid == "multiple humans"):
|
| subjectchooser = "manwomanmultiple"
|
| elif(subtypehumanoid == "celebrities e.a."):
|
| subjectchooser = "non fictional"
|
| elif(subtypehumanoid == "fictional characters"):
|
| subjectchooser = "fictional"
|
| elif(subtypehumanoid == "humanoids"):
|
| subjectchooser = "humanoid"
|
| elif(subtypehumanoid == "based on job or title"):
|
| subjectchooser = "job"
|
| elif(subtypehumanoid == "based on first name"):
|
| subjectchooser = "firstname"
|
| else:
|
| subjectchooser = subtypehumanoid
|
| if(mainchooser == "landscape"):
|
| subjectchooser = random.choice(locationsubjectchooserlist)
|
|
|
| if(mainchooser == "concept"):
|
|
|
| subjectchooser = random.choice(eventsubjectchooserlist)
|
| if(subtypeconcept != "all"):
|
| if(subtypeconcept == "event"):
|
| subjectchooser = "event"
|
| elif(subtypeconcept == "the X of Y concepts"):
|
| subjectchooser = "concept"
|
| elif(subtypeconcept == "lines from poems"):
|
| subjectchooser = "poemline"
|
| elif(subtypeconcept == "lines from songs"):
|
| subjectchooser = "songline"
|
| elif(subtypeconcept == "names from card based games"):
|
| subjectchooser = "cardname"
|
| elif(subtypeconcept == "episode titles from tv shows"):
|
| subjectchooser = "episodetitle"
|
| elif(subtypeconcept == "concept mixer"):
|
| subjectchooser = "conceptmixer"
|
| else:
|
| subjectchooser = subtypeconcept
|
|
|
|
|
|
|
| if(not less_verbose and subjectchooser in ["manwomanmultiple"] and givensubject != "" and subtypehumanoid != "multiple humans"):
|
| heshelist = ["they"]
|
| hisherlist = ["their"]
|
| himherlist = ["them"]
|
|
|
| if(random.randint(0,20) == 0):
|
| heshelist = ["one of them"]
|
| hisherlist = ["one of their"]
|
| himherlist = ["one of them"]
|
| elif(not less_verbose and 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(not less_verbose and subjectchooser in ["manwomanmultiple"] and givensubject == ""):
|
| heshelist = ["they"]
|
| hisherlist = ["their"]
|
| himherlist = ["them"]
|
|
|
| if(random.randint(0,20) == 0):
|
| heshelist = ["one of them"]
|
| hisherlist = ["one of their"]
|
| himherlist = ["one of them"]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| if(artblastermode==True):
|
| step = 0
|
| end = random.randint(1, insanitylevel) + 1
|
| while step < end:
|
| if(uncommon_dist(insanitylevel) and bool(artistlist)):
|
| completeprompt += "-artist-, "
|
| if(uncommon_dist(insanitylevel) and bool(artmovementlist)):
|
| completeprompt += "-artmovement-, "
|
| if(unique_dist(insanitylevel) and bool(vomitlist)):
|
| completeprompt += "-vomit-, "
|
| if(unique_dist(insanitylevel) and bool(imagetypelist)):
|
| completeprompt += "-imagetype-, "
|
| if(unique_dist(insanitylevel) and bool(colorschemelist)):
|
| completeprompt += "-colorscheme-, "
|
| if(uncommon_dist(insanitylevel) and bool(artistlist)):
|
| completeprompt += "-artiststyle-, "
|
| step = step + 1
|
|
|
|
|
|
|
| if(uniqueartmode==True):
|
| step = 0
|
| end = random.randint(1, insanitylevel) + 1
|
| while step < end:
|
| if(uncommon_dist(insanitylevel) and bool(othertypelist)):
|
| completeprompt += "-othertype-, "
|
| if(uncommon_dist(insanitylevel) and bool(artmovementlist)):
|
| completeprompt += "-artmovement-, "
|
| if(uncommon_dist(insanitylevel) and bool(colorschemelist)):
|
| completeprompt += "-colorscheme-, "
|
| if(rare_dist(insanitylevel) and bool(vomitlist)):
|
| completeprompt += "-vomit-, "
|
| if(rare_dist(insanitylevel) and bool(lightinglist)):
|
| completeprompt += "-lighting-, "
|
| if(unique_dist(insanitylevel) and bool(imagetypelist)):
|
| completeprompt += "-imagetype-, "
|
| if(unique_dist(insanitylevel) and bool(qualitylist)):
|
| completeprompt += "-quality-, "
|
| if(unique_dist(insanitylevel) and bool(artistlist)):
|
| completeprompt += "-artistdescription-, "
|
|
|
| step = step + 1
|
|
|
|
|
| if(qualityvomitmode==True):
|
| step = 0
|
| end = random.randint(1, insanitylevel) + 1
|
| while step < end:
|
| if(uncommon_dist(insanitylevel) and bool(vomitlist)):
|
| completeprompt += "-vomit-, "
|
| if(uncommon_dist(insanitylevel) and bool(flufferlist)):
|
| completeprompt += "-fluff-, "
|
| if(uncommon_dist(insanitylevel) and bool(qualitylist)):
|
| completeprompt += "-quality-, "
|
| if(unique_dist(insanitylevel) and bool(minivomitlist)):
|
| completeprompt += "-minivomit-, "
|
| if(unique_dist(insanitylevel) and bool(artmovementlist)):
|
| completeprompt += "-artmovement-, "
|
| if(unique_dist(insanitylevel) and bool(colorschemelist)):
|
| completeprompt += "-colorscheme-, "
|
| step = step + 1
|
|
|
|
|
| if(colorcannonmode == True):
|
| step = 0
|
| end = random.randint(1, insanitylevel) + 1
|
| while step < end:
|
| if(uncommon_dist(insanitylevel) and bool(moodlist)):
|
| completeprompt += "-mood-, "
|
| if(uncommon_dist(insanitylevel) and bool(colorschemelist)):
|
| completeprompt += "-colorscheme-, "
|
| if(rare_dist(insanitylevel) and bool(vomitlist)):
|
| completeprompt += "-vomit-, "
|
| if(unique_dist(insanitylevel) and bool(artmovementlist)):
|
| completeprompt += "-artmovement-, "
|
| if(unique_dist(insanitylevel) and bool(lightinglist)):
|
| completeprompt += "-lighting-, "
|
| if(unique_dist(insanitylevel) and bool(allstylessuffixlist)):
|
| completeprompt += "-allstylessuffix-, "
|
| step = step + 1
|
|
|
|
|
| if(photofantasymode == True):
|
| step = 0
|
| end = random.randint(1, insanitylevel) + 1
|
| if(common_dist(insanitylevel)):
|
| if(uncommon_dist(insanitylevel)):
|
| completeprompt += "-imagetypequality- "
|
| completeprompt += " photograph, "
|
| while step < end:
|
| if(uncommon_dist(insanitylevel) and bool(lightinglist)):
|
| completeprompt += "-photoaddition-, "
|
| if(uncommon_dist(insanitylevel) and bool(lightinglist)):
|
| completeprompt += "-lighting-, "
|
| if(uncommon_dist(insanitylevel) and bool(cameralist)):
|
| completeprompt += "-camera-, "
|
| if(rare_dist(insanitylevel) and bool(lenslist)):
|
| completeprompt += "-lens-, "
|
| if(unique_dist(insanitylevel) and bool(moodlist)):
|
| completeprompt += "-mood-, "
|
| if(unique_dist(insanitylevel) and bool(colorschemelist)):
|
| completeprompt += "-colorscheme-, "
|
| step = step + 1
|
|
|
|
|
| if(massivemadnessmode == True):
|
| step = 0
|
| end = random.randint(1, insanitylevel) + 1
|
| while step < end:
|
| if(rare_dist(insanitylevel) and bool(artistlist)):
|
| completeprompt += "-artist-, "
|
| if(rare_dist(insanitylevel) and bool(descriptorlist)):
|
| completeprompt += "-descriptor-, "
|
| if(rare_dist(insanitylevel) and bool(moodlist)):
|
| completeprompt += "-mood-, "
|
| if(rare_dist(insanitylevel) and bool(colorschemelist)):
|
| completeprompt += "-colorscheme-, "
|
| if(rare_dist(insanitylevel) and bool(vomitlist)):
|
| completeprompt += "-vomit-, "
|
| if(rare_dist(insanitylevel) and bool(artmovementlist)):
|
| completeprompt += "-artmovement-, "
|
| if(rare_dist(insanitylevel) and bool(lightinglist)):
|
| completeprompt += "-lighting-, "
|
| if(rare_dist(insanitylevel) and bool(minilocationadditionslist)):
|
| completeprompt += "-minilocationaddition-, "
|
| if(rare_dist(insanitylevel) and bool(materiallist)):
|
| completeprompt += "-material-, "
|
| if(rare_dist(insanitylevel) and bool(conceptsuffixlist)):
|
| completeprompt += "-conceptsuffix-, "
|
| if(rare_dist(insanitylevel) and bool(qualitylist)):
|
| completeprompt += "-quality-, "
|
| if(rare_dist(insanitylevel) and bool(cameralist)):
|
| completeprompt += "-camera-, "
|
| if(rare_dist(insanitylevel) and bool(lenslist)):
|
| completeprompt += "-lens-, "
|
| if(rare_dist(insanitylevel) and bool(imagetypelist)):
|
| completeprompt += "-imagetype-, "
|
| step = step + 1
|
|
|
|
|
|
|
|
|
| if(stylesmode == True):
|
| chosenstyle = random.choice(styleslist)
|
| chosenstyleprefix = chosenstyle.split("-subject-")[0]
|
| chosenstylesuffix = chosenstyle.split("-subject-")[1]
|
| completeprompt += chosenstyleprefix
|
|
|
| if(dynamictemplatesmode == True):
|
| if(artists == "none"):
|
| dynamictemplatesprefixlist = [sentence for sentence in dynamictemplatesprefixlist if "-artist-" not in sentence.lower()]
|
| chosenstyleprefix = random.choice(dynamictemplatesprefixlist)
|
| completeprompt += chosenstyleprefix
|
| if(chosenstyleprefix[-1] == "."):
|
| completeprompt += " OR(Capturing a; Describing a;Portraying a;Featuring a)"
|
| else:
|
| completeprompt += " OR(with a;capturing a; describing a;portraying a;of a;featuring a)"
|
|
|
|
|
|
|
|
|
|
|
| artistsplacement = "front"
|
|
|
| if(random.randint(0, 2) == 0 and onlyartists == False):
|
| artistlocations = ["back", "middle"]
|
| artistsplacement = random.choice(artistlocations)
|
|
|
| if(artists != "none" and artistsplacement == "front" and generateartist == True):
|
| doartistnormal = True
|
| if(artists == "greg mode"):
|
| artistbylist = ["art by", "designed by", "stylized by", "by"]
|
| completeprompt += random.choice(artistbylist) + " -gregmode-, "
|
| doartistnormal = False
|
|
|
| elif(originalartistchoice == "all" and random.randint(0,3) == 0):
|
| if(mainchooser in ["humanoid", "animal"]):
|
| artistbylist = ["art by", "designed by", "stylized by", "by"]
|
| completeprompt += random.choice(artistbylist) + " OR(-portraitartist-;-characterartist-), OR(-portraitartist-;-characterartist-) OR(;and OR(-fantasyartist-;-scifiartist-;-photographyartist-;-digitalartist-;-graphicdesignartist-);uncommon), "
|
| doartistnormal = False
|
|
|
| elif(mainchooser in ["landscape"]):
|
| artistbylist = ["art by", "designed by", "stylized by", "by"]
|
| completeprompt += random.choice(artistbylist) + " OR(-landscapeartist-;-digitalartist-), OR(-landscapeartist-;-graphicdesignartist-) OR(;and OR(-fantasyartist-;-scifiartist-;-photographyartist-;-digitalartist-;-graphicdesignartist-);uncommon), "
|
| doartistnormal = False
|
|
|
| elif(subjectchooser in ["building"]):
|
| artistbylist = ["art by", "designed by", "stylized by", "by"]
|
| completeprompt += random.choice(artistbylist) + " OR(-landscapeartist-;-architectartist-), OR(-landscapeartist-;-architectartist-) OR(;and OR(-fantasyartist-;-scifiartist-;-photographyartist-;-digitalartist-;-graphicdesignartist-);uncommon), "
|
| doartistnormal = False
|
|
|
|
|
| elif(random.randint(0,5) == 0):
|
| artistbylist = ["art by", "designed by", "stylized by", "by"]
|
| completeprompt += random.choice(artistbylist) + " OR(-portraitartist-;-characterartist-;-fantasyartist-;-scifiartist-;-photographyartist-;-digitalartist-;-graphicdesignartist-), OR(-portraitartist-;-characterartist-;-fantasyartist-;-scifiartist-;-photographyartist-;-digitalartist-;-graphicdesignartist-) and OR(-portraitartist-;-characterartist-;-fantasyartist-;-scifiartist-;-photographyartist-;-digitalartist-;-graphicdesignartist-)"
|
| doartistnormal = False
|
|
|
|
|
|
|
| if(doartistnormal):
|
|
|
|
|
| step = random.randint(0, 1)
|
| minstep = step
|
| end = random.randint(1, insanitylevel3)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| modeselector = random.randint(0,10)
|
| if modeselector < 5 and end - step >= 2:
|
| artistmodeslist = ["hybrid", "stopping", "adding", "switching", "enhancing"]
|
| artistmode = artistmodeslist[modeselector]
|
| if(advancedprompting == False):
|
| artistmode = "normal"
|
| if (artistmode in ["hybrid","switching"] and end - step == 1):
|
| artistmode = "normal"
|
|
|
| if(onlyartists == True and artistmode == "enhancing"):
|
| artistmode = "normal"
|
|
|
| if(len(artistlist) < 3):
|
| artistmode = "normal"
|
| if(onlyartists == True and step == end):
|
| step = step - 1
|
|
|
| if artistmode in ["hybrid", "stopping", "adding","switching"]:
|
| completeprompt += " ["
|
|
|
| while step < end:
|
| if(normal_dist(insanitylevel) and remove_weights == False):
|
| isweighted = 1
|
|
|
| if isweighted == 1:
|
| completeprompt += " ("
|
|
|
|
|
| if(step == minstep):
|
|
|
| if(giventypeofimage=="" and imagetype == "all" and random.randint(0, 1) == 0):
|
| if(artiststyleselectormode == "normal"):
|
| completeprompt += artiststyleselector + " art "
|
| else:
|
| completeprompt += "-artiststyle- art "
|
| artistbylist = ["art by", "designed by", "stylized by", "by"]
|
| else:
|
| artistbylist = [""]
|
| completeprompt += random.choice(artistbylist) + " -artist-"
|
|
|
| if isweighted == 1:
|
| completeprompt += ":" + str(1 + (random.randint(-3,3)/10)) + ")"
|
|
|
| if artistmode in ["hybrid"] and not end - step == 1:
|
| completeprompt += "|"
|
| if artistmode in ["switching"] and not end - step == 1:
|
| completeprompt += ":"
|
|
|
| if artistmode not in ["hybrid", "switching"]and not end - step > 1:
|
| completeprompt += ","
|
| elif artistmode not in ["hybrid", "switching"]and not end - step == 1:
|
| completeprompt += " and "
|
|
|
| isweighted = 0
|
|
|
| step = step + 1
|
|
|
| if artistmode in ["stopping"]:
|
| completeprompt += "::"
|
| completeprompt += str(random.randint(1,19))
|
|
|
| if artistmode in ["switching","adding"]:
|
| completeprompt += ":" + str(random.randint(1,18))
|
| if artistmode in ["hybrid", "stopping","adding", "switching"]:
|
| completeprompt += "] "
|
|
|
|
|
| if(onlyartists == True):
|
|
|
| completeprompt = parse_custom_functions(completeprompt, insanitylevel)
|
|
|
|
|
| completeprompt = replacewildcard(completeprompt, insanitylevel, "-artist-", artistlist, False, False)
|
| completeprompt = replacewildcard(completeprompt, insanitylevel, "-gregmode-", gregmodelist, False, False)
|
|
|
| completeprompt = replacewildcard(completeprompt, insanitylevel, "-fantasyartist-", fantasyartistlist, False, False)
|
| completeprompt = replacewildcard(completeprompt, insanitylevel, "-popularartist-", popularartistlist, False, False)
|
| completeprompt = replacewildcard(completeprompt, insanitylevel, "-romanticismartist-", romanticismartistlist, False, False)
|
| completeprompt = replacewildcard(completeprompt, insanitylevel, "-photographyartist-", photographyartistlist, False, False)
|
| completeprompt = replacewildcard(completeprompt, insanitylevel, "-portraitartist-", portraitartistlist, False, False)
|
| completeprompt = replacewildcard(completeprompt, insanitylevel, "-characterartist-", characterartistlist, False, False)
|
| completeprompt = replacewildcard(completeprompt, insanitylevel, "-landscapeartist-", landscapeartistlist, False, False)
|
| completeprompt = replacewildcard(completeprompt, insanitylevel, "-scifiartist-", scifiartistlist, False, False)
|
| completeprompt = replacewildcard(completeprompt, insanitylevel, "-graphicdesignartist-", graphicdesignartistlist, False, False)
|
| completeprompt = replacewildcard(completeprompt, insanitylevel, "-digitalartist-", digitalartistlist, False, False)
|
| completeprompt = replacewildcard(completeprompt, insanitylevel, "-architectartist-", architectartistlist, False, False)
|
| completeprompt = replacewildcard(completeprompt, insanitylevel, "-cinemaartist-", cinemaartistlist, False, False)
|
|
|
|
|
| completeprompt = cleanup(completeprompt, advancedprompting, insanitylevel)
|
|
|
| print("only generated these artists:" + completeprompt)
|
| return completeprompt
|
|
|
|
|
| completeprompt += ", "
|
|
|
|
|
|
|
| if(giventypeofimage=="" and imagetype == "all" and random.randint(0, 2) == 0):
|
| completeprompt += "-artiststyle- art, "
|
|
|
|
|
| if artistmode in ["enhancing"]:
|
| completeprompt += " ["
|
|
|
|
|
|
|
| if(thetokinatormode == True):
|
| tokinatorsubtype = ["personification", "human form", "object", "landscape", "OR(creature;beast;animal;myth;concept;world;planet)", "building", "location", "shape", "being", "-token-"]
|
| if(anime_mode and gender == "male"):
|
| tokinatorsubtype = ["(1boy, solo)"]
|
| if(anime_mode and gender == "female"):
|
| tokinatorsubtype = ["(1girl, solo)"]
|
| if(chance_roll(insanitylevel,"normal")):
|
| if(chance_roll(insanitylevel,"normal") and remove_weights == False):
|
| completeprompt += "(OR(;-imagetypequality-;uncommon) OR(-imagetype-;-othertype-;rare):1.3) "
|
| else:
|
| completeprompt += "OR(;-imagetypequality-;uncommon) OR(-imagetype-;-othertype-;rare) "
|
| completeprompt += random.choice(tokinatorlist)
|
| completeprompt = completeprompt.replace("-tokensubtype-", random.choice(tokinatorsubtype))
|
|
|
| if("subject" in givensubject and smartsubject):
|
| givensubject = givensubject.replace("subject", "-token-")
|
|
|
| if(givensubject == "" and overrideoutfit == ""):
|
| completeprompt = completeprompt.replace("-subject-", "-token-")
|
| elif(givensubject == "" and overrideoutfit != "" and "-outfit-" not in completeprompt):
|
| completeprompt = completeprompt.replace("-subject-", "-token- wearing a OR(-token-;;normal) -outfit-")
|
| elif(givensubject != "" and overrideoutfit != "" and "-outfit-" not in completeprompt):
|
| completeprompt = completeprompt.replace("-subject-", givensubject + " wearing a OR(-token-;;normal) -outfit-")
|
| else:
|
| completeprompt = completeprompt.replace("-subject-", givensubject)
|
|
|
| if(overrideoutfit == ""):
|
| completeprompt = completeprompt.replace("-outfit-", "-token-")
|
| else:
|
| completeprompt = completeprompt.replace("-outfit-", overrideoutfit)
|
|
|
|
|
|
|
|
|
|
|
| if(giventypeofimage == "" and (imagetype == "none" or giventypeofimage=="none") ):
|
| generatetype = False
|
| if(giventypeofimage=="" and generatetype == True):
|
| if(imagetype != "all" and imagetype != "all - force multiple" and imagetype != "only other types" and imagetype != "all - anime"):
|
|
|
| completeprompt += " " + imagetype + ", "
|
| elif(imagetype == "all - force multiple" or unique_dist(insanitylevel) and not anime_mode):
|
| amountofimagetypes = random.randint(2,3)
|
| elif(imagetype == "only other types"):
|
| if(amountofimagetypes < 2 and random.randint(0,2) == 0):
|
| partlystylemode = True
|
| print("Ohhh! Adding some secret sauce to this prompt")
|
| chosenstyle = random.choice(styleslist)
|
| chosenstyleprefix = chosenstyle.split("-subject-")[0]
|
| chosenstylesuffix = chosenstyle.split("-subject-")[1]
|
|
|
| completeprompt += " " + chosenstyleprefix + ", "
|
| else:
|
| othertype = 1
|
| completeprompt += random.choice(othertypelist)
|
|
|
| if((imagetype == "all" or imagetype == "all - anime") and chance_roll(insanitylevel, imagetypechance) and amountofimagetypes <= 1):
|
| amountofimagetypes = 1
|
|
|
|
|
| if((imagetype == "all" or imagetype == "all - anime") and insanitylevel <= 3 and amountofimagetypes <= 1 and random.randint(0,1)== 0):
|
| amountofimagetypes = 1
|
|
|
| if((imagetype == "all" or imagetype == "all - anime") and insanitylevel <= 2 and amountofimagetypes <= 1):
|
| amountofimagetypes = 1
|
|
|
|
|
|
|
|
|
|
|
| for i in range(amountofimagetypes):
|
|
|
| if((chance_roll(insanitylevel, imagetypequalitychance) or originalartistchoice == "greg mode") and generateimagetypequality):
|
| completeprompt += "-imagetypequality- "
|
|
|
| if(imagetype == "all - anime" and not anime_mode):
|
| completeprompt += " anime"
|
| if(random.randint(0,4) < 4 and insanitylevel > 3 ):
|
|
|
| completeprompt += " " + random.choice(imagetypelist) + ", "
|
| elif(random.randint(0,1) == 0 and insanitylevel <= 3):
|
| completeprompt += " " + random.choice(imagetypelist) + ", "
|
| elif(not anime_mode):
|
| if(amountofimagetypes < 2 and random.randint(0,1) == 0):
|
| partlystylemode = True
|
| print("Ohhh! Adding some secret sauce to this prompt")
|
| chosenstyle = random.choice(styleslist)
|
| chosenstyleprefix = chosenstyle.split("-subject-")[0]
|
| chosenstylesuffix = chosenstyle.split("-subject-")[1]
|
|
|
| completeprompt += " " + chosenstyleprefix + ", "
|
| else:
|
| othertype = 1
|
| completeprompt += " " + random.choice(othertypelist) + ", "
|
|
|
| if(othertype==1):
|
| completeprompt += " of a "
|
| else:
|
| completeprompt += ", "
|
| elif(generatetype == True):
|
| othertype = 1
|
| completeprompt += giventypeofimage + " of a "
|
|
|
|
|
|
|
| if(superprompter == True):
|
| insanitylevel = max(1, insanitylevel-4)
|
|
|
| if(chance_roll(insanitylevel, minilocationadditionchance) and generateminilocationaddition == True):
|
| completeprompt += " -minilocationaddition-, "
|
|
|
| if(chance_roll(insanitylevel, artmovementprefixchance) and generateartmovement == True):
|
| generateartmovement = False
|
| completeprompt += " -artmovement-, "
|
|
|
| if(chance_roll(insanitylevel, minivomitprefix1chance) and generateminivomit == True):
|
| completeprompt += " -minivomit-, "
|
|
|
| if(chance_roll(insanitylevel, minivomitprefix2chance) and generateminivomit == True):
|
| completeprompt += " -minivomit-, "
|
|
|
|
|
|
|
|
|
|
|
| if(mainchooser in ["object", "animal", "humanoid", "concept"] and othertype == 0 and "portrait" not in completeprompt and generateshot == True and chance_roll(insanitylevel,shotsizechance)):
|
| completeprompt += "-shotsize- of a "
|
| elif("portrait" in completeprompt and generateshot == True and partlystylemode == False):
|
| completeprompt += " , close up of a "
|
| elif(mainchooser in ["landscape"] and generateshot == True and partlystylemode == False):
|
| completeprompt += " landscape of a "
|
| elif(generateshot == True):
|
| completeprompt += ", "
|
|
|
| genjoboractivity = False
|
|
|
|
|
|
|
| completeprompt += " @@@ "
|
|
|
|
|
| if(generatesubject == True):
|
|
|
|
|
|
|
|
|
|
|
|
|
| if(overrideoutfit!=""):
|
| outfitmode = 2
|
| if(animalashuman or subjectchooser in ["human","fictional", "non fictional", "humanoid", "manwomanrelation","manwomanmultiple", "firstname"] and chance_roll(insanitylevel, outfitchance) and generateoutfit == True and humanspecial != 1):
|
| if(random.randint(0,10)==0):
|
| outfitmode = 1
|
| else:
|
| outfitmode = 2
|
|
|
| if(outfitmode == 1):
|
| completeprompt += "OR(wearing;dressed in;in;normal) OR(;OR(;a very;rare) -outfitdescriptor-;normal) OR(;-color-;uncommon) OR(;-culture-;uncommon) OR(;-material-;rare) -outfit-, "
|
| if(extraordinary_dist(insanitylevel)):
|
| completeprompt += " -outfitvomit-, "
|
|
|
|
|
|
|
| if(subjectingivensubject):
|
| completeprompt += " " + givensubjectpromptlist[0] + " "
|
|
|
|
|
| if(novel_dist(insanitylevel) and (animalashuman or subjectchooser in ["human", "job", "fictional", "non fictional", "humanoid", "manwomanrelation","firstname"])):
|
| buildingfullmode = True
|
| insideshot = 1
|
| heshelist = ["they"]
|
| hisherlist = ["their"]
|
| himherlist = ["them"]
|
| completeprompt += "a OR(-building-;-location-;-waterlocation-;-container-;-background-;rare) full of "
|
|
|
|
|
|
|
| descriptorsintheback = random.randint(0,2)
|
| if(descriptorsintheback < 2):
|
|
|
| if(chance_roll(insanitylevel, subjectdescriptor1chance) and generatedescriptors == True):
|
| if(animalashuman or subjectchooser in ["human", "job", "fictional", "non fictional", "humanoid", "manwomanrelation", "manwomanmultiple","firstname"]):
|
| if(anime_mode and random.randint(0,2)<2):
|
| completeprompt += "-basicbitchdescriptor- "
|
| else:
|
| completeprompt += "-humandescriptor- "
|
| elif(mainchooser == "landscape"):
|
| completeprompt += "-locationdescriptor- "
|
| elif(mainchooser == "animal"):
|
| completeprompt += "-animaldescriptor- "
|
| else:
|
| completeprompt += "-descriptor- "
|
|
|
| if(chance_roll(insanitylevel, subjectdescriptor2chance) and generatedescriptors == True):
|
| if(animalashuman or subjectchooser in ["human", "job", "fictional", "non fictional", "humanoid", "manwomanrelation", "manwomanmultiple","firstname"]):
|
| if(anime_mode and random.randint(0,2)<2):
|
| completeprompt += "-basicbitchdescriptor- "
|
| else:
|
| completeprompt += "-humandescriptor- "
|
| elif(mainchooser == "landscape"):
|
| completeprompt += "-locationdescriptor- "
|
| elif(mainchooser == "animal"):
|
| completeprompt += "-animaldescriptor- "
|
| else:
|
| completeprompt += "-descriptor- "
|
|
|
|
|
| if(mainchooser in ["animal", "object", "landscape", "concept"] and unique_dist(insanitylevel)):
|
| completeprompt += " OR(-color-;-colorcombination-) "
|
|
|
|
|
| if(subjectchooser in ["human", "job", "fictional", "non fictional", "humanoid", "manwomanrelation", "manwomanmultiple","firstname"] and extraordinary_dist(insanitylevel)):
|
| completeprompt += str(random.randint(20,99)) + " OR(y.o.;year old) "
|
|
|
| if((animalashuman or subjectchooser in ["human", "job", "fictional", "non fictional", "humanoid", "manwomanrelation", "manwomanmultiple","firstname"]) and chance_roll(insanitylevel, subjectbodytypechance) and generatebodytype == True):
|
| completeprompt += "-bodytype- "
|
|
|
| if((animalashuman or subjectchooser in ["object","human", "job", "fictional", "non fictional", "humanoid", "manwomanrelation", "manwomanmultiple","firstname"]) and chance_roll(insanitylevel, subjectculturechance) and generatedescriptors == True):
|
| completeprompt += "-culture- "
|
|
|
| if(mainchooser == "object"):
|
|
|
| completeprompt += " -objectstrengthstart-"
|
|
|
| if(subtypeobject != "all"):
|
| if(subtypeobject == "generic objects"):
|
| objectwildcardlist = ["-object-"]
|
| if(subtypeobject == "vehicles"):
|
| objectwildcardlist = ["-vehicle-"]
|
| if(subtypeobject == "food"):
|
| objectwildcardlist = ["-food-"]
|
| if(subtypeobject == "buildings"):
|
| objectwildcardlist = ["-building-"]
|
| if(subtypeobject == "space"):
|
| objectwildcardlist = ["-space-"]
|
| if(subtypeobject == "flora"):
|
| objectwildcardlist = ["-flora-"]
|
|
|
|
|
|
|
| subjectchooser = subtypeobject
|
|
|
|
|
|
|
|
|
|
|
|
|
| if(givensubject == "" or (subjectingivensubject and givensubject != "")):
|
|
|
| if(rare_dist(insanitylevel) and advancedprompting == True):
|
| hybridorswaplist = ["hybrid", "swap"]
|
| hybridorswap = random.choice(hybridorswaplist)
|
| completeprompt += "["
|
|
|
| chosenobjectwildcard = random.choice(objectwildcardlist)
|
|
|
| completeprompt += chosenobjectwildcard + " "
|
|
|
| if(hybridorswap == "hybrid"):
|
| if(uncommon_dist(insanitylevel)):
|
| completeprompt += "|" + random.choice(objectwildcardlist) + "] "
|
| else:
|
| completeprompt += "|"
|
| completeprompt += chosenobjectwildcard + " "
|
| completeprompt += "] "
|
| if(hybridorswap == "swap"):
|
| if(uncommon_dist(insanitylevel)):
|
| completeprompt += ":" + random.choice(objectwildcardlist) + ":" + str(random.randint(1,5)) + "] "
|
| else:
|
| completeprompt += ":"
|
| completeprompt += chosenobjectwildcard + " "
|
| completeprompt += ":" + str(random.randint(1,5)) + "] "
|
| else:
|
| completeprompt += " " + givensubject + " "
|
|
|
| hybridorswap = ""
|
|
|
| if(mainchooser == "animal"):
|
|
|
| completeprompt += " -objectstrengthstart-"
|
| if(anime_mode
|
| and "1girl" not in givensubject
|
| and "1boy" not in givensubject):
|
| anthrolist = ["anthro", "anthrophomorphic", "furry"]
|
|
|
|
|
| if(gender=="male"):
|
| completeprompt += random.choice(anthrolist) + ", 1boy, solo, "
|
| else:
|
| completeprompt += random.choice(anthrolist) + ", 1girl, solo, "
|
|
|
|
|
| if(givensubject == "" or (subjectingivensubject and givensubject != "")):
|
|
|
| if(subtypeanimal != "all"):
|
| if(subtypeanimal=="generic animal"):
|
| animalwildcardlist = ["-animal-"]
|
| elif(subtypeanimal=="bird"):
|
| animalwildcardlist = ["-bird-"]
|
| elif(subtypeanimal=="cat"):
|
| animalwildcardlist = ["-cat-"]
|
| elif(subtypeanimal=="dog"):
|
| animalwildcardlist = ["-dog-"]
|
| elif(subtypeanimal=="insect"):
|
| animalwildcardlist = ["-insect-"]
|
| elif(subtypeanimal=="pokemon"):
|
| animalwildcardlist = ["-pokemon-"]
|
| elif(subtypeanimal=="marine life"):
|
| animalwildcardlist = ["-marinelife-"]
|
|
|
|
|
| chosenanimalwildcard = random.choice(animalwildcardlist)
|
|
|
| if(rare_dist(insanitylevel) and advancedprompting == True):
|
| hybridorswaplist = ["hybrid", "swap"]
|
| hybridorswap = random.choice(hybridorswaplist)
|
| completeprompt += "["
|
|
|
| if(unique_dist(insanitylevel) and generateanimaladdition == True):
|
| animaladdedsomething = 1
|
| completeprompt += "-animaladdition- " + chosenanimalwildcard + " "
|
| if(animaladdedsomething != 1):
|
| completeprompt += chosenanimalwildcard + " "
|
|
|
|
|
|
|
| if(hybridorswap == "hybrid"):
|
| if(uncommon_dist(insanitylevel)):
|
| completeprompt += "|" + random.choice(hybridlist) + "] "
|
| else:
|
| completeprompt += "| " + chosenanimalwildcard + " ] "
|
| if(hybridorswap == "swap"):
|
| if(uncommon_dist(insanitylevel)):
|
| completeprompt += ":" + random.choice(hybridlist) + ":" + str(random.randint(1,5)) + "] "
|
| else:
|
| completeprompt += ":" + chosenanimalwildcard + ":" + str(random.randint(1,5)) + "] "
|
| else:
|
| completeprompt += " " + givensubject + " "
|
|
|
| hybridorswap = ""
|
|
|
|
|
|
|
| if((animalashuman or subjectchooser in ["human","fictional", "non fictional", "humanoid", "manwomanrelation", "manwomanmultiple","firstname"]) and chance_roll(insanitylevel, joboractivitychance) and humanspecial != 1 and generatesubject == True):
|
| genjoboractivity = True
|
| genjoboractivitylocationslist = ["front","middle", "middle","back","back", "back"]
|
| genjoboractivitylocation = random.choice(genjoboractivitylocationslist)
|
|
|
|
|
| if(genjoboractivity and genjoboractivitylocation=="front"):
|
| completeprompt += "-job- "
|
|
|
|
|
|
|
| if(mainchooser == "humanoid"):
|
|
|
| completeprompt += " -objectstrengthstart-"
|
|
|
| if(anime_mode
|
| and "1girl" not in givensubject
|
| and "1boy" not in givensubject):
|
| if(subjectchooser != "manwomanmultiple"):
|
| if(gender=="male"):
|
| completeprompt += "1boy, solo, "
|
| else:
|
| completeprompt += "1girl, solo, "
|
| else:
|
| if(gender=="male"):
|
| completeprompt += "multipleboys, "
|
| else:
|
| completeprompt += "multiplegirls, "
|
|
|
| if(givensubject == "" or (subjectingivensubject and givensubject != "")):
|
|
|
| if(subjectchooser == "human" and not anime_mode):
|
| completeprompt += "-manwoman-"
|
|
|
| if(subjectchooser == "manwomanrelation"):
|
| completeprompt += "-manwomanrelation-"
|
|
|
| if(subjectchooser == "manwomanmultiple"):
|
| completeprompt += "-manwomanmultiple-"
|
|
|
| if(subjectchooser == "job"):
|
| if(not anime_mode):
|
| completeprompt += "-malefemale- "
|
| completeprompt += "-job-"
|
|
|
| if(subjectchooser == "fictional"):
|
| if(rare_dist(insanitylevel) and advancedprompting == True and buildingfullmode == False):
|
| hybridorswaplist = ["hybrid", "swap"]
|
| hybridorswap = random.choice(hybridorswaplist)
|
| completeprompt += "["
|
|
|
|
|
| if(novel_dist(insanitylevel)):
|
| completeprompt += gender + " version of -oppositefictional-"
|
| else:
|
| completeprompt += "-fictional-"
|
|
|
| if(hybridorswap == "hybrid"):
|
| completeprompt += "|" + random.choice(hybridhumanlist) + " ] "
|
| if(hybridorswap == "swap"):
|
| completeprompt += ":" + random.choice(hybridhumanlist) + ":" + str(random.randint(1,5)) + "] "
|
| hybridorswap = ""
|
|
|
| if(subjectchooser == "non fictional"):
|
| if(rare_dist(insanitylevel) and advancedprompting == True and buildingfullmode == False):
|
| hybridorswaplist = ["hybrid", "swap"]
|
| hybridorswap = random.choice(hybridorswaplist)
|
| completeprompt += "["
|
|
|
| if(novel_dist(insanitylevel)):
|
| completeprompt += gender + " version of -oppositenonfictional-"
|
| else:
|
| completeprompt += "-nonfictional-"
|
|
|
| if(hybridorswap == "hybrid"):
|
| completeprompt += "|" + random.choice(hybridhumanlist) + "] "
|
| if(hybridorswap == "swap"):
|
| completeprompt += ":" + random.choice(hybridhumanlist) + ":" + str(random.randint(1,5)) + "] "
|
| hybridorswap = ""
|
|
|
| if(subjectchooser == "humanoid"):
|
| if(gender != "all"):
|
| completeprompt += "-malefemale- "
|
| if(rare_dist(insanitylevel) and advancedprompting == True and buildingfullmode == False):
|
| hybridorswaplist = ["hybrid", "swap"]
|
| hybridorswap = random.choice(hybridorswaplist)
|
| completeprompt += "["
|
|
|
| completeprompt += "-humanoid-"
|
|
|
| if(hybridorswap == "hybrid"):
|
| completeprompt += "|" + random.choice(hybridhumanlist) + "] "
|
| if(hybridorswap == "swap"):
|
| completeprompt += ":" + random.choice(hybridhumanlist) + ":" + str(random.randint(1,5)) + "] "
|
| hybridorswap = ""
|
|
|
| if(subjectchooser == "firstname"):
|
| if(rare_dist(insanitylevel) and advancedprompting == True and buildingfullmode == False):
|
| hybridorswaplist = ["hybrid", "swap"]
|
| hybridorswap = random.choice(hybridorswaplist)
|
| completeprompt += "["
|
|
|
| completeprompt += "-firstname-"
|
|
|
| if(hybridorswap == "hybrid"):
|
| completeprompt += "|" + "-firstname-" + "] "
|
| if(hybridorswap == "swap"):
|
| completeprompt += ":" + "-firstname-" + ":" + str(random.randint(1,5)) + "] "
|
| hybridorswap = ""
|
| if(buildingfullmode == True):
|
| completeprompt += "s"
|
| completeprompt += " "
|
|
|
| else:
|
| if(subjectchooser == "manwomanmultiple" and subtypehumanoid != "multiple humans" and givensubject not in ["1girl", "1boy", "solo"]):
|
| if(random.randint(0,1) == 1):
|
| completeprompt += " " + givensubject + " and a -manwomanmultiple- "
|
| else:
|
| completeprompt += " a OR(group;couple;crowd;bunch) of " + givensubject + " "
|
| else:
|
| completeprompt += " " + givensubject + " "
|
|
|
|
|
|
|
| if( (mainchooser == "humanoid" or mainchooser == "animal" or mainchooser == "object") and chance_roll(insanitylevel, subjectconceptsuffixchance)):
|
| completeprompt += " of -conceptsuffix- "
|
|
|
| if(mainchooser == "humanoid" or mainchooser == "animal" or mainchooser == "object"):
|
|
|
| completeprompt += "-objectstrengthend-"
|
|
|
| if(mainchooser == 'animal' and legendary_dist(insanitylevel)):
|
| animaladdedsomething = 1
|
| completeprompt += " -animalsuffixaddition- "
|
|
|
|
|
| if(mainchooser == "landscape"):
|
|
|
| completeprompt += " -objectstrengthstart-"
|
|
|
|
|
| if(givensubject == "" or (subjectingivensubject and givensubject != "")):
|
| if(rare_dist(insanitylevel) and advancedprompting == True):
|
| hybridorswaplist = ["hybrid", "swap"]
|
| hybridorswap = random.choice(hybridorswaplist)
|
| completeprompt += "["
|
|
|
| if(subtypelocation != "all"):
|
| if(subtypelocation=="location"):
|
| locationwildcardlist = ["-location-"]
|
| elif(subtypelocation=="fantasy location"):
|
| locationwildcardlist = ["-locationfantasy-"]
|
| elif(subtypelocation=="videogame location"):
|
| locationwildcardlist = ["-locationvideogame-"]
|
| elif(subtypelocation=="sci-fi location"):
|
| locationwildcardlist = ["-locationscifi-"]
|
| elif(subtypelocation=="biome"):
|
| locationwildcardlist = ["-locationbiome-"]
|
| elif(subtypelocation=="city"):
|
| locationwildcardlist = ["-locationcity-"]
|
|
|
|
|
| chosenlocationwildcard = random.choice(locationwildcardlist)
|
| completeprompt += chosenlocationwildcard + " "
|
|
|
| if(hybridorswap == "hybrid"):
|
| completeprompt += "|" + chosenlocationwildcard + "] "
|
| if(hybridorswap == "swap"):
|
| completeprompt += ":" + chosenlocationwildcard + ":" + str(random.randint(1,5)) + "] "
|
| else:
|
| completeprompt += " " + givensubject + " "
|
|
|
| hybridorswap = ""
|
|
|
|
|
| completeprompt += "-objectstrengthend-"
|
|
|
|
|
| if(chance_roll(max(1,insanitylevel-2), subjectlandscapeaddonlocationchance) and insideshot == 0):
|
| insideshot = 1
|
|
|
| if(mainchooser=="humanoid" and legendary_dist(insanitylevel)):
|
| completeprompt += " looking at a -addontolocationinside- "
|
| elif(mainchooser=="humanoid" and legendary_dist(insanitylevel)):
|
| completeprompt += " facing a -addontolocationinside- "
|
| elif(legendary_dist(insanitylevel)):
|
| completeprompt += " in the distance there is a -addontolocationinside- "
|
| else:
|
| completeprompt += " from inside of a -addontolocationinside- "
|
|
|
| if(chance_roll(insanitylevel, subjectlandscapeaddonlocationchance) and insideshot == 0):
|
| completeprompt += " and "
|
| if(chance_roll(insanitylevel, subjectlandscapeaddonlocationdescriptorchance)):
|
| completeprompt += "-locationdescriptor- "
|
| if(chance_roll(insanitylevel, subjectlandscapeaddonlocationculturechance)):
|
| completeprompt += "-culture- "
|
|
|
|
|
| if(random.randint(0,1) == 1):
|
| completeprompt += "-addontolocation- "
|
| else:
|
| completeprompt += "-background- "
|
|
|
|
|
| if(mainchooser == "concept"):
|
|
|
| completeprompt += " -objectstrengthstart- "
|
| if(subjectchooser == "conceptmixer"):
|
|
|
| chosenconceptmixerprelist = random.choice(conceptmixerlist)
|
| chosenconceptmixerlist = chosenconceptmixerprelist.split("@")
|
| chosenconceptmixer = ''.join([chosenconceptmixerlist[0]])
|
| chosenconceptmixersubject = ''.join([chosenconceptmixerlist[1]])
|
|
|
|
|
| if(givensubject==""):
|
| chosenconceptmixer = chosenconceptmixer.replace("-subject-",chosenconceptmixersubject )
|
| elif(givensubject != "" and subjectingivensubject == False):
|
| chosenconceptmixer = chosenconceptmixer.replace("-subject-",givensubject )
|
|
|
| if(overrideoutfit!="" and ("-outfit-" in chosenconceptmixer or "-minioutfit-" in chosenconceptmixer)):
|
| chosenconceptmixer = chosenconceptmixer.replace("-outfit-",overrideoutfit )
|
| chosenconceptmixer = chosenconceptmixer.replace("-minioutfit-",overrideoutfit )
|
| outfitmode = 1
|
|
|
| completeprompt += chosenconceptmixer
|
| elif(givensubject == "" or (subjectingivensubject and givensubject != "")):
|
| if(subjectchooser == "event"):
|
| completeprompt += " \"-event-\" "
|
|
|
| if(subjectchooser == "concept"):
|
| completeprompt += " \"The -conceptprefix- of -conceptsuffix-\" "
|
|
|
| if(subjectchooser == "poemline"):
|
| completeprompt += " \"-poemline-\" "
|
|
|
| if(subjectchooser == "songline"):
|
| completeprompt += " \"-songline-\" "
|
|
|
| if(subjectchooser == "cardname"):
|
| completeprompt += " \"-cardname-\" "
|
|
|
| if(subjectchooser == "episodetitle"):
|
| completeprompt += " \"-episodetitle-\" "
|
|
|
|
|
|
|
|
|
| elif(givensubject != "" and subjectchooser == "concept" and subjectingivensubject == False):
|
| if(random.randint(0,3) == 0):
|
| completeprompt += " \"The -conceptprefix- of " + givensubject + "\" "
|
| else:
|
| completeprompt += " \"The " + givensubject + " of -conceptsuffix-\" "
|
| else:
|
| completeprompt += " " + givensubject + " "
|
|
|
|
|
| completeprompt += " -objectstrengthend-"
|
|
|
| if(subjectingivensubject):
|
| completeprompt += " " + givensubjectpromptlist[1] + " "
|
|
|
| if(genjoboractivity and genjoboractivitylocation=="middle"):
|
| joboractivitylist = [joblist,humanactivitylist]
|
| completeprompt += random.choice(random.choice(joboractivitylist)) + ", "
|
|
|
| if(descriptorsintheback == 2):
|
|
|
| if(chance_roll(insanitylevel, subjectdescriptor1chance) and generatedescriptors == True):
|
| if(animalashuman or subjectchooser in ["human", "job", "fictional", "non fictional", "humanoid", "manwomanrelation","manwomanmultiple", "firstname"]):
|
| if(less_verbose):
|
| if(anime_mode and random.randint(0,2)<2):
|
| completeprompt += ", -basicbitchdescriptor- "
|
| else:
|
| completeprompt += ", -humandescriptor- "
|
| elif(random.randint(0,3) > 0):
|
| completeprompt += ", OR(;-heshe- is;normal) OR(;very;rare) -humandescriptor- "
|
| elif(subjectchooser == "manwomanmultiple"):
|
| completeprompt += ", the -samehumansubject- are OR(;very;rare) -humandescriptor-"
|
| else:
|
| completeprompt += ", OR(the -manwoman-;-samehumansubject-) is OR(;very;rare) -humandescriptor-"
|
| elif(mainchooser == "landscape"):
|
| if(less_verbose):
|
| completeprompt += ", -locationdescriptor- "
|
| else:
|
| completeprompt += ", OR(;-heshe- is;normal) OR(;very;rare) -locationdescriptor- "
|
| elif(mainchooser == "animal"):
|
| if(less_verbose):
|
| completeprompt += ", -animaldescriptor- "
|
| else:
|
| completeprompt += ", OR(;-heshe- is;normal) OR(;very;rare) -animaldescriptor- "
|
| else:
|
| if(less_verbose):
|
| completeprompt += ", -descriptor- "
|
| else:
|
| completeprompt += ", OR(;-heshe- is;normal) OR(;very;rare) -descriptor- "
|
|
|
| if(chance_roll(insanitylevel, subjectdescriptor2chance) and generatedescriptors == True):
|
| if(animalashuman or subjectchooser in ["human", "job", "fictional", "non fictional", "humanoid", "manwomanrelation","manwomanmultiple","firstname"]):
|
| if(less_verbose):
|
| completeprompt += ", -humandescriptor- "
|
| else:
|
| completeprompt += " and -humandescriptor- "
|
| elif(mainchooser == "landscape"):
|
| if(less_verbose):
|
| completeprompt += ", -locationdescriptor- "
|
| else:
|
| completeprompt += " and -locationdescriptor- "
|
| elif(mainchooser == "animal"):
|
| if(less_verbose):
|
| completeprompt += ", -animaldescriptor- "
|
| else:
|
| completeprompt += " and -animaldescriptor- "
|
| else:
|
| if(less_verbose):
|
| completeprompt += ", -descriptor- "
|
| else:
|
| completeprompt += " and -descriptor- "
|
| completeprompt += ", "
|
|
|
| if(superprompter == True):
|
| insanitylevel = originalinsanitylevel
|
|
|
| if(thetokinatormode == False):
|
|
|
| for i in range(objectadditionsrepeats):
|
| if(mainchooser == "object" and chance_roll(insanitylevel, objectadditionschance) and generateobjectaddition == True):
|
| completeprompt += ", -objectaddition- , "
|
|
|
|
|
|
|
| if((animalashuman or subjectchooser in ["human","fictional", "non fictional", "humanoid", "manwomanrelation","manwomanmultiple","firstname"]) and chance_roll(insanitylevel, humanadditionchance) and generatehumanaddition == True):
|
| humanspecial = 1
|
| completeprompt += "-humanaddition- "
|
|
|
| completeprompt += ", "
|
|
|
|
|
| if(chance_roll(insanitylevel, overalladditionchance) and generateoveralladdition == True):
|
| completeprompt += "-overalladdition- "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| if((animalashuman or subjectchooser in ["human","fictional", "non fictional", "humanoid", "manwomanrelation","manwomanmultiple","firstname"]) and chance_roll(insanitylevel, emojichance) and generateemoji== True):
|
| completeprompt += "-emoji-, "
|
|
|
|
|
| if((animalashuman or subjectchooser in ["animal as human,","human","fictional", "non fictional", "humanoid", "manwomanrelation","manwomanmultiple","firstname"]) and chance_roll(insanitylevel, humanexpressionchance) and generatehumanexpression== True):
|
| completeprompt += "-humanexpression-, "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| if(genjoboractivity and genjoboractivitylocation=="back"):
|
| if(random.randint(0,1)==0):
|
| completeprompt += ", " + random.choice(humanactivitylist)+ ", "
|
| else:
|
| completeprompt += ", OR(,; as a;rare) -job-, "
|
|
|
|
|
|
|
|
|
|
|
| if(subjectchooser in ["human", "humanoid", "manwomanrelation","firstname"] and chance_roll(insanitylevel, buildfacechance) and generateface== True):
|
| completeprompt += random.choice(buildfacelist) + ", "
|
|
|
|
|
|
|
|
|
|
|
| for i in range(custominputmidrepeats):
|
| if(chance_roll(insanitylevel, custominputmidchance) and generatecustominputmid == True):
|
| completeprompt += random.choice(custominputmidlist) + ", "
|
|
|
|
|
| if(chance_roll(insanitylevel, minivomitmidchance) and generateminivomit == True):
|
| completeprompt += " -minivomit-, "
|
|
|
|
|
|
|
| if(outfitmode == 2):
|
| completeprompt += " " + random.choice(buildoutfitlist) + ", "
|
| if(extraordinary_dist(insanitylevel)):
|
| completeprompt += " -outfitvomit-, "
|
| elif(outfitmode == 2 and overrideoutfit != "" and imagetype != "only templates mode"):
|
| completeprompt += " " + random.choice(buildoutfitlist) + ", "
|
| if(extraordinary_dist(insanitylevel)):
|
| completeprompt += " -outfitvomit-, "
|
|
|
|
|
|
|
| if((animalashuman or subjectchooser in ["human","fictional", "non fictional", "humanoid", "manwomanrelation","manwomanmultiple", "firstname"]) and chance_roll(insanitylevel, posechance) and humanspecial != 1 and generatepose == True):
|
| completeprompt += random.choice(poselist) + ", "
|
|
|
| if(subjectchooser in ["human","job","fictional", "non fictional", "humanoid", "manwomanrelation","manwomanmultiple", "firstname"] and chance_roll(insanitylevel, hairchance) and generatehairstyle == True):
|
| completeprompt += random.choice(buildhairlist) + ", "
|
| if(unique_dist(insanitylevel)):
|
| completeprompt += " -hairvomit-, "
|
|
|
| if((animalashuman or subjectchooser in ["human","fictional", "non fictional", "humanoid", "manwomanrelation","manwomanmultiple", "firstname"]) and chance_roll(insanitylevel, accessorychance) and generateaccessorie == True and generateaccessories == True):
|
| completeprompt += random.choice(buildaccessorielist) + ", "
|
|
|
| if(chance_roll(insanitylevel, humanoidinsideshotchance) and subjectchooser not in ["landscape", "concept"] and generateinsideshot == True):
|
| insideshot = 1
|
| completeprompt += random.choice(insideshotlist) + ", "
|
|
|
| if(subjectchooser not in ["landscape", "concept"] and humanspecial != 1 and insideshot == 0 and chance_roll(insanitylevel, humanoidbackgroundchance) and generatebackground == True):
|
| completeprompt += random.choice(backgroundtypelist) + ", "
|
|
|
|
|
| if(subjectchooser in ["landscape"] and chance_roll(insanitylevel, landscapeminilocationchance) and generateminilocationaddition == True):
|
| completeprompt += " -minilocationaddition-, "
|
|
|
| if(chance_roll(insanitylevel, generalminilocationchance) and generateminilocationaddition == True):
|
| completeprompt += " -minilocationaddition-, "
|
|
|
|
|
|
|
| completeprompt += " @@@ "
|
|
|
|
|
|
|
| if(originalartistchoice == "greg mode" and generatequality == True):
|
| completeprompt += "-quality-, "
|
|
|
|
|
| if(chance_roll(insanitylevel, timperiodchance) or subjectchooser=="landscape"):
|
| if(generatetimeperiod == True):
|
| completeprompt += "-timeperiod-, "
|
|
|
| if(mainchooser not in ["landscape"] and chance_roll(insanitylevel, focuschance) and generatefocus == True):
|
| completeprompt += "-focus-, "
|
|
|
|
|
|
|
|
|
| if(artists != "none" and artistsplacement == "middle" and generateartist == True):
|
| completeprompt += ", "
|
| doartistnormal = True
|
| if(artists == "greg mode"):
|
| artistbylist = ["art by", "designed by", "stylized by", "by"]
|
| completeprompt += random.choice(artistbylist) + " -gregmode-, "
|
| doartistnormal = False
|
|
|
|
|
| elif(originalartistchoice == "all" and random.randint(0,3) == 0):
|
| if(mainchooser in ["humanoid", "animal"]):
|
| artistbylist = ["art by", "designed by", "stylized by", "by"]
|
| completeprompt += random.choice(artistbylist) + " OR(-portraitartist-;-characterartist-), OR(-portraitartist-;-characterartist-) OR(;and OR(-fantasyartist-;-scifiartist-;-photographyartist-;-digitalartist-;-graphicdesignartist-);uncommon), "
|
| doartistnormal = False
|
|
|
| elif(mainchooser in ["landscape"]):
|
| artistbylist = ["art by", "designed by", "stylized by", "by"]
|
| completeprompt += random.choice(artistbylist) + " OR(-landscapeartist-;-digitalartist-), OR(-landscapeartist-;-graphicdesignartist-) OR(;and OR(-fantasyartist-;-scifiartist-;-photographyartist-;-digitalartist-;-graphicdesignartist-);uncommon), "
|
| doartistnormal = False
|
|
|
| elif(subjectchooser in ["building"]):
|
| artistbylist = ["art by", "designed by", "stylized by", "by"]
|
| completeprompt += random.choice(artistbylist) + " OR(-landscapeartist-;-architectartist-), OR(-landscapeartist-;-architectartist-) OR(;and OR(-fantasyartist-;-scifiartist-;-photographyartist-;-digitalartist-;-graphicdesignartist-);uncommon), "
|
| doartistnormal = False
|
|
|
| if(doartistnormal):
|
|
|
|
|
| if(giventypeofimage=="" and imagetype == "all" and random.randint(0, 2) == 0):
|
| completeprompt += "-artiststyle- art, "
|
|
|
|
|
| step = random.randint(0, 1)
|
| minstep = step
|
| end = random.randint(1, insanitylevel3)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| modeselector = random.randint(0,10)
|
| if modeselector < 4 and end - step >= 2:
|
| artistmodeslist = ["hybrid", "stopping", "adding", "switching"]
|
| artistmode = artistmodeslist[modeselector]
|
| if(advancedprompting == False):
|
| artistmode = "normal"
|
| if artistmode in ["hybrid","switching"] and end - step == 1:
|
| artistmode = "normal"
|
|
|
| if(len(artistlist) < 3):
|
| artistmode = "normal"
|
|
|
| if artistmode in ["hybrid", "stopping", "adding","switching"]:
|
| completeprompt += " ["
|
|
|
| while step < end:
|
| if(normal_dist(insanitylevel) and remove_weights == False):
|
| isweighted = 1
|
|
|
| if isweighted == 1:
|
| completeprompt += " ("
|
|
|
|
|
| if(step == minstep):
|
|
|
| if(giventypeofimage=="" and imagetype == "all" and random.randint(0, 1) == 0):
|
| if(artiststyleselectormode == "normal"):
|
| completeprompt += artiststyleselector + " art "
|
| else:
|
| completeprompt += "-artiststyle- art "
|
| artistbylist = ["art by", "designed by", "stylized by", "by"]
|
| else:
|
| artistbylist = [""]
|
| completeprompt += random.choice(artistbylist) + " -artist-"
|
|
|
| if isweighted == 1:
|
| completeprompt += ":" + str(1 + (random.randint(-3,3)/10)) + ")"
|
|
|
| if artistmode in ["hybrid"] and not end - step == 1:
|
| completeprompt += "|"
|
| if artistmode in ["switching"] and not end - step == 1:
|
| completeprompt += ":"
|
|
|
| if artistmode not in ["hybrid", "switching"]and not end - step == 1:
|
| completeprompt += ","
|
|
|
| isweighted = 0
|
|
|
| step = step + 1
|
|
|
| if artistmode in ["stopping"]:
|
| completeprompt += "::"
|
| completeprompt += str(random.randint(1,19))
|
|
|
| if artistmode in ["switching","adding"]:
|
| completeprompt += ":" + str(random.randint(1,18))
|
| if artistmode in ["hybrid", "stopping","adding", "switching"]:
|
| completeprompt += "] "
|
|
|
| completeprompt += ", "
|
|
|
| if(thetokinatormode == False):
|
|
|
|
|
| descriptivemode = False
|
|
|
| if(not anime_mode and not less_verbose and templatemode == False and specialmode == False and "-artist-" in completeprompt and uncommon_dist(max(8 - insanitylevel,3))):
|
| for i in range(random.randint(1,3)):
|
|
|
| completeprompt += ", -artistdescription-"
|
| descriptivemode = True
|
| completeprompt += ", "
|
|
|
|
|
|
|
|
|
| elif(not anime_mode and not less_verbose and templatemode == False and specialmode == False and legendary_dist(10 - insanitylevel)):
|
| for i in range(random.randint(1,max(7,insanitylevel + 2))):
|
|
|
| completeprompt += ", -allstylessuffix-"
|
| descriptivemode = True
|
| completeprompt += ", "
|
|
|
|
|
| if(descriptivemode == False or rare_dist(insanitylevel)):
|
|
|
|
|
| if(originalartistchoice == "greg mode" and generatequality == True):
|
| completeprompt += "-quality-, "
|
|
|
|
|
| if(chance_roll(max(1,insanitylevel -1), directionchance) and generatedirection == True):
|
| completeprompt += "-direction-, "
|
|
|
| if(chance_roll(insanitylevel, moodchance) and generatemood == True):
|
| completeprompt += "-mood-, "
|
|
|
|
|
| if(chance_roll(insanitylevel, minivomitsuffixchance) and generateminivomit == True):
|
| completeprompt += " -minivomit-, "
|
|
|
| if(chance_roll(insanitylevel, artmovementchance) and generateartmovement == True):
|
| completeprompt += "-artmovement-, "
|
|
|
| if(chance_roll(insanitylevel, lightingchance) and generatelighting == True):
|
| completeprompt += "-lighting-, "
|
|
|
|
|
| if("photo" in completeprompt.lower()):
|
| isphoto = 1
|
|
|
| if(chance_roll(insanitylevel, photoadditionchance) and isphoto == 1 and generatephotoaddition == True):
|
| completeprompt += random.choice(photoadditionlist) + ", "
|
|
|
| if(isphoto == 1 and generatecamera == True):
|
| completeprompt += "-camera-, "
|
|
|
| if(chance_roll(insanitylevel, lenschance) or isphoto == 1):
|
| if(generatelens == True):
|
| completeprompt += "-lens-, "
|
|
|
| if(chance_roll(insanitylevel, colorschemechance) and generatecolorscheme == True):
|
| completeprompt += "-colorscheme-, "
|
|
|
|
|
| if(chance_roll(insanitylevel, vomit1chance) and generatevomit == True):
|
| completeprompt += "-vomit-, "
|
| if(chance_roll(insanitylevel, vomit2chance)):
|
| completeprompt += "-vomit-, "
|
|
|
|
|
| if(mainchooser == "humanoid" and chance_roll(insanitylevel, humanvomitchance) and generatehumanvomit == True):
|
| completeprompt += "-humanvomit-, "
|
| if(chance_roll(insanitylevel, humanvomitchance)):
|
| completeprompt += "-humanvomit-, "
|
|
|
|
|
| if(chance_roll(insanitylevel, greatworkchance) and generategreatwork == True):
|
| completeprompt += " in the style of -greatwork-, "
|
|
|
|
|
| if(chance_roll(insanitylevel, poemlinechance) and generatepoemline == True):
|
| completeprompt += " \"-poemline-\", "
|
|
|
|
|
| if(chance_roll(insanitylevel, songlinechance) and generatesongline == True):
|
| completeprompt += " \"-songline-\", "
|
|
|
|
|
| if((chance_roll(insanitylevel, quality1chance) or originalartistchoice == "greg mode") and generatequality == True):
|
| completeprompt += "-quality-, "
|
| if((chance_roll(insanitylevel, quality2chance) or originalartistchoice == "greg mode")):
|
| completeprompt += "-quality-, "
|
|
|
|
|
|
|
|
|
| if(artblastermode==True):
|
| step = 0
|
| end = random.randint(1, insanitylevel) + 1
|
| while step < end:
|
| if(uncommon_dist(insanitylevel) and bool(artistlist)):
|
| completeprompt += "-artist-, "
|
| if(uncommon_dist(insanitylevel) and bool(artmovementlist)):
|
| completeprompt += "-artmovement-, "
|
| if(unique_dist(insanitylevel) and bool(vomitlist)):
|
| completeprompt += "-vomit-, "
|
| if(unique_dist(insanitylevel) and bool(imagetypelist)):
|
| completeprompt += "-imagetype-, "
|
| if(unique_dist(insanitylevel) and bool(colorschemelist)):
|
| completeprompt += "-colorscheme-, "
|
| step = step + 1
|
|
|
|
|
| if(uniqueartmode==True):
|
| step = 0
|
| end = random.randint(1, insanitylevel) + 1
|
| while step < end:
|
| if(uncommon_dist(insanitylevel) and bool(artmovementlist)):
|
| completeprompt += "-artmovement-, "
|
| if(uncommon_dist(insanitylevel) and bool(colorschemelist)):
|
| completeprompt += "-colorscheme-, "
|
| if(rare_dist(insanitylevel) and bool(vomitlist)):
|
| completeprompt += "-vomit-, "
|
| if(rare_dist(insanitylevel) and bool(lightinglist)):
|
| completeprompt += "-lighting-, "
|
| if(unique_dist(insanitylevel) and bool(qualitylist)):
|
| completeprompt += "-quality-, "
|
| if(unique_dist(insanitylevel) and bool(artistlist)):
|
| completeprompt += "-artist-, "
|
| if(novel_dist(insanitylevel) and bool(greatworklist)):
|
| completeprompt += "in style of -greatwork-, "
|
| if(novel_dist(insanitylevel) and bool(poemlinelist)):
|
| completeprompt += "\"-poemline-\", "
|
| if(novel_dist(insanitylevel) and bool(songlinelist)):
|
| completeprompt += "\"-songline-\", "
|
|
|
| step = step + 1
|
|
|
|
|
|
|
| if(qualityvomitmode==True):
|
| step = 0
|
| end = random.randint(1, insanitylevel) + 1
|
| while step < end:
|
| if(uncommon_dist(insanitylevel) and bool(vomitlist)):
|
| completeprompt += "-vomit-, "
|
| if(uncommon_dist(insanitylevel) and bool(qualitylist)):
|
| completeprompt += "-quality-, "
|
| if(unique_dist(insanitylevel) and bool(minivomitlist)):
|
| completeprompt += "-minivomit-, "
|
| if(unique_dist(insanitylevel) and bool(artmovementlist)) :
|
| completeprompt += "-artmovement-, "
|
| if(unique_dist(insanitylevel) and bool(colorschemelist)):
|
| completeprompt += "-colorscheme-, "
|
| step = step + 1
|
|
|
|
|
| if(colorcannonmode == True):
|
| step = 0
|
| end = random.randint(1, insanitylevel) + 1
|
| while step < end:
|
| if(uncommon_dist(insanitylevel) and bool(moodlist)):
|
| completeprompt += "-mood-, "
|
| if(uncommon_dist(insanitylevel) and bool(colorschemelist)):
|
| completeprompt += "-colorscheme-, "
|
| if(rare_dist(insanitylevel) and bool(vomitlist)):
|
| completeprompt += "-vomit-, "
|
| if(unique_dist(insanitylevel) and bool(artmovementlist)):
|
| completeprompt += "-artmovement-, "
|
| if(unique_dist(insanitylevel) and bool(lightinglist)):
|
| completeprompt += "-lighting-, "
|
| step = step + 1
|
|
|
|
|
|
|
| if(photofantasymode == True):
|
| step = 0
|
| end = random.randint(1, insanitylevel) + 1
|
| while step < end:
|
| if(uncommon_dist(insanitylevel) and bool(lightinglist)):
|
| completeprompt += "-lighting-, "
|
| if(uncommon_dist(insanitylevel) and bool(cameralist)):
|
| completeprompt += "-camera-, "
|
| if(rare_dist(insanitylevel) and bool(lenslist)):
|
| completeprompt += "-lens-, "
|
| if(unique_dist(insanitylevel) and bool(moodlist)):
|
| completeprompt += "-mood-, "
|
| if(unique_dist(insanitylevel) and bool(colorschemelist)):
|
| completeprompt += "-colorscheme-, "
|
| step = step + 1
|
|
|
|
|
| if(massivemadnessmode == True):
|
| completeprompt += ", "
|
| step = 0
|
| end = random.randint(1, insanitylevel) + 1
|
| while step < end:
|
| if(rare_dist(insanitylevel) and bool(artistlist)):
|
| completeprompt += "-artist-, "
|
| if(rare_dist(insanitylevel) and bool(descriptorlist)):
|
| completeprompt += "-descriptor-, "
|
| if(rare_dist(insanitylevel) and bool(moodlist)):
|
| completeprompt += "-mood-, "
|
| if(rare_dist(insanitylevel) and bool(colorschemelist)):
|
| completeprompt += "-colorscheme-, "
|
| if(rare_dist(insanitylevel) and bool(vomitlist)):
|
| completeprompt += "-vomit-, "
|
| if(rare_dist(insanitylevel) and bool(artmovementlist)):
|
| completeprompt += "-artmovement-, "
|
| if(rare_dist(insanitylevel) and bool(lightinglist)):
|
| completeprompt += "-lighting-, "
|
| if(rare_dist(insanitylevel) and bool(minilocationadditionslist)):
|
| completeprompt += "-minilocationaddition-, "
|
| if(rare_dist(insanitylevel) and bool(materiallist)):
|
| completeprompt += "-material-, "
|
| if(rare_dist(insanitylevel) and bool(conceptsuffixlist)):
|
| completeprompt += "-conceptsuffix-, "
|
| if(rare_dist(insanitylevel) and bool(qualitylist)):
|
| completeprompt += "-quality-, "
|
| if(rare_dist(insanitylevel) and bool(cameralist)):
|
| completeprompt += "-camera-, "
|
| step = step + 1
|
|
|
|
|
| if(stylesmode == True):
|
| completeprompt += chosenstylesuffix
|
|
|
| templatesmodechance = 0
|
| if(uncommon_dist(insanitylevel) and not anime_mode):
|
| templatesmodechance = 1
|
|
|
| if(dynamictemplatesmode == True and templatesmodechance == 1):
|
| for i in range(random.randint(1,max(2,insanitylevel))):
|
| completeprompt += ", -allstylessuffix-"
|
|
|
|
|
|
|
| if(dynamictemplatesmode == True and common_dist(insanitylevel) and templatesmodechance == 0):
|
| if("-artist-" in completeprompt or artists == "none"):
|
| dynamictemplatessuffixlist = [sentence for sentence in dynamictemplatessuffixlist if "-artist-" not in sentence.lower()]
|
| dynamictemplatessuffixlist = [sentence for sentence in dynamictemplatessuffixlist if "-artiststyle-" not in sentence.lower()]
|
| dynamictemplatessuffixlist = [sentence for sentence in dynamictemplatessuffixlist if "-artistdescription-" not in sentence.lower()]
|
| if("-lighting-" in completeprompt):
|
| dynamictemplatessuffixlist = [sentence for sentence in dynamictemplatessuffixlist if "-lighting-" not in sentence.lower()]
|
| if("-shotsize-" in completeprompt):
|
| dynamictemplatessuffixlist = [sentence for sentence in dynamictemplatessuffixlist if "-shotsize-" not in sentence.lower()]
|
| if("-artmovement-" in completeprompt):
|
| dynamictemplatessuffixlist = [sentence for sentence in dynamictemplatessuffixlist if "-artmovement-" not in sentence.lower()]
|
| if("-imagetype-" in completeprompt or "-othertype-" in completeprompt ):
|
| dynamictemplatessuffixlist = [sentence for sentence in dynamictemplatessuffixlist if "-imagetype-" not in sentence.lower()]
|
| dynamictemplatessuffixlist = [sentence for sentence in dynamictemplatessuffixlist if "-othertype-" not in sentence.lower()]
|
| if("-colorcombination-" in completeprompt or "-colorscheme" in completeprompt ):
|
| dynamictemplatessuffixlist = [sentence for sentence in dynamictemplatessuffixlist if "-colorcombination-" not in sentence.lower()]
|
| dynamictemplatessuffixlist = [sentence for sentence in dynamictemplatessuffixlist if "-colorscheme-" not in sentence.lower()]
|
| if("-mood-" in completeprompt or "-humanexpression" in completeprompt ):
|
| dynamictemplatessuffixlist = [sentence for sentence in dynamictemplatessuffixlist if "-mood-" not in sentence.lower()]
|
| dynamictemplatessuffixlist = [sentence for sentence in dynamictemplatessuffixlist if "-humanexpression-" not in sentence.lower()]
|
| chosenstylesuffix = random.choice(dynamictemplatessuffixlist)
|
| completeprompt += ". " + chosenstylesuffix
|
|
|
| if(normal_dist(insanitylevel)):
|
| if("-artist-" in completeprompt):
|
| dynamictemplatessuffixlist = [sentence for sentence in dynamictemplatessuffixlist if "-artist-" not in sentence.lower()]
|
| if("-lighting-" in completeprompt):
|
| dynamictemplatessuffixlist = [sentence for sentence in dynamictemplatessuffixlist if "-lighting-" not in sentence.lower()]
|
| if("-shotsize-" in completeprompt):
|
| dynamictemplatessuffixlist = [sentence for sentence in dynamictemplatessuffixlist if "-shotsize-" not in sentence.lower()]
|
| if("-artmovement-" in completeprompt):
|
| dynamictemplatessuffixlist = [sentence for sentence in dynamictemplatessuffixlist if "-artmovement-" not in sentence.lower()]
|
| if("-imagetype-" in completeprompt or "-othertype-" in completeprompt ):
|
| dynamictemplatessuffixlist = [sentence for sentence in dynamictemplatessuffixlist if "-imagetype-" not in sentence.lower()]
|
| dynamictemplatessuffixlist = [sentence for sentence in dynamictemplatessuffixlist if "-othertype-" not in sentence.lower()]
|
| if("-colorcombination-" in completeprompt or "-colorscheme" in completeprompt ):
|
| dynamictemplatessuffixlist = [sentence for sentence in dynamictemplatessuffixlist if "-colorcombination-" not in sentence.lower()]
|
| dynamictemplatessuffixlist = [sentence for sentence in dynamictemplatessuffixlist if "-colorscheme-" not in sentence.lower()]
|
| if("-mood-" in completeprompt or "-humanexpression" in completeprompt ):
|
| dynamictemplatessuffixlist = [sentence for sentence in dynamictemplatessuffixlist if "-mood-" not in sentence.lower()]
|
| dynamictemplatessuffixlist = [sentence for sentence in dynamictemplatessuffixlist if "-humanexpression-" not in sentence.lower()]
|
| chosenstylesuffix = random.choice(dynamictemplatessuffixlist)
|
| completeprompt += " " + chosenstylesuffix
|
|
|
|
|
|
|
| if(chance_roll(insanitylevel, customstyle1chance) and generatestyle == True):
|
| completeprompt += "-styletilora-, "
|
| if(chance_roll(insanitylevel, customstyle2chance)):
|
| completeprompt += "-styletilora-, "
|
|
|
|
|
|
|
| for i in range(custominputsuffixrepeats):
|
| if(chance_roll(insanitylevel, custominputsuffixchance) and generatecustominputsuffix == True):
|
| completeprompt += random.choice(custominputsuffixlist) + ", "
|
|
|
|
|
|
|
| if artistmode in ["enhancing"]:
|
| completeprompt += "::" + str(random.randint(1,17)) + "] "
|
|
|
|
|
|
|
| if(artists != "none" and artistsplacement == "back" and generateartist == True):
|
| completeprompt += ", "
|
| doartistnormal = True
|
| if(artists == "greg mode"):
|
| artistbylist = ["art by", "designed by", "stylized by", "by"]
|
| completeprompt += random.choice(artistbylist) + " -gregmode- ,"
|
| doartistnormal = False
|
|
|
|
|
| elif(originalartistchoice == "all" and random.randint(0,3) == 0):
|
| if(mainchooser in ["humanoid", "animal"]):
|
| artistbylist = ["art by", "designed by", "stylized by", "by"]
|
| completeprompt += random.choice(artistbylist) + " OR(-portraitartist-;-characterartist-), OR(-portraitartist-;-characterartist-) OR(;and OR(-fantasyartist-;-scifiartist-;-photographyartist-;-digitalartist-;-graphicdesignartist-);uncommon), "
|
| doartistnormal = False
|
|
|
| elif(mainchooser in ["landscape"]):
|
| artistbylist = ["art by", "designed by", "stylized by", "by"]
|
| completeprompt += random.choice(artistbylist) + " OR(-landscapeartist-;-digitalartist-), OR(-landscapeartist-;-graphicdesignartist-) OR(;and OR(-fantasyartist-;-scifiartist-;-photographyartist-;-digitalartist-;-graphicdesignartist-);uncommon), "
|
| doartistnormal = False
|
|
|
| elif(subjectchooser in ["building"]):
|
| artistbylist = ["art by", "designed by", "stylized by", "by"]
|
| completeprompt += random.choice(artistbylist) + " OR(-landscapeartist-;-architectartist-), OR(-landscapeartist-;-architectartist-) OR(;and OR(-fantasyartist-;-scifiartist-;-photographyartist-;-digitalartist-;-graphicdesignartist-);uncommon), "
|
| doartistnormal = False
|
|
|
| if(doartistnormal):
|
|
|
| step = random.randint(0, 1)
|
| minstep = step
|
| end = random.randint(1, insanitylevel3)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| modeselector = random.randint(0,10)
|
| if modeselector < 4 and end - step >= 2:
|
| artistmodeslist = ["hybrid", "stopping", "adding", "switching"]
|
| artistmode = artistmodeslist[modeselector]
|
| if(advancedprompting == False):
|
| artistmode = "normal"
|
| if artistmode in ["hybrid","switching"] and end - step == 1:
|
| artistmode = "normal"
|
|
|
| if(len(artistlist) < 3):
|
| artistmode = "normal"
|
|
|
| if artistmode in ["hybrid", "stopping", "adding","switching"]:
|
| completeprompt += " ["
|
|
|
| while step < end:
|
| if(normal_dist(insanitylevel) and remove_weights == False):
|
| isweighted = 1
|
|
|
| if isweighted == 1:
|
| completeprompt += " ("
|
|
|
|
|
| if(step == minstep):
|
|
|
| if(giventypeofimage=="" and imagetype == "all" and random.randint(0, 1) == 0):
|
| if(artiststyleselectormode == "normal"):
|
| completeprompt += artiststyleselector + " art "
|
| else:
|
| completeprompt += "-artiststyle- art "
|
| artistbylist = ["art by", "designed by", "stylized by", "by"]
|
| else:
|
| artistbylist = [""]
|
| completeprompt += random.choice(artistbylist) + " -artist-"
|
|
|
| if isweighted == 1:
|
| completeprompt += ":" + str(1 + (random.randint(-3,3)/10)) + ")"
|
|
|
| if artistmode in ["hybrid"] and not end - step == 1:
|
| completeprompt += "|"
|
| if artistmode in ["switching"] and not end - step == 1:
|
| completeprompt += ":"
|
|
|
| if artistmode not in ["hybrid", "switching"]and not end - step == 1:
|
| completeprompt += ","
|
|
|
| isweighted = 0
|
|
|
| step = step + 1
|
|
|
| if artistmode in ["stopping"]:
|
| completeprompt += "::"
|
| completeprompt += str(random.randint(1,19))
|
|
|
| if artistmode in ["switching","adding"]:
|
| completeprompt += ":" + str(random.randint(1,18))
|
| if artistmode in ["hybrid", "stopping","adding", "switching"]:
|
| completeprompt += "] "
|
|
|
|
|
|
|
|
|
| if(partlystylemode == True):
|
|
|
| chosenstylesuffixlist = chosenstylesuffix.split(",")
|
| for i in range(len(chosenstylesuffixlist)):
|
| if(random.randint(3, 10)<insanitylevel):
|
| chosenstylesuffixlist.pop(random.randint(0, len(chosenstylesuffixlist)-1))
|
| chosenstylesuffixcomplete = ", ".join(chosenstylesuffixlist)
|
|
|
|
|
| completeprompt += ", " + chosenstylesuffixcomplete
|
|
|
| if(artifymode == True):
|
| amountofartists = "random"
|
| if(unique_dist(insanitylevel)):
|
| mode = "super remix turbo"
|
| elif(legendary_dist(insanitylevel)):
|
| mode = "remix"
|
| else:
|
| mode = "standard"
|
| completeprompt = artify_prompt(insanitylevel=insanitylevel,prompt=completeprompt, artists=artists, amountofartists=amountofartists, mode=mode, seed=seed)
|
|
|
| completeprompt += " -tempnewwords- "
|
| completeprompt += ", "
|
|
|
| completeprompt = prefixprompt + ", " + completeprompt
|
| completeprompt += suffixprompt
|
|
|
|
|
| compoundcounter += 1
|
|
|
|
|
| if(compoundcounter < promptstocompound):
|
| if(seperator == "comma"):
|
| completeprompt += " \n , "
|
| else:
|
| completeprompt += " \n " + seperator + " "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| if(dynamictemplatesmode == False):
|
| completeprompt = parse_custom_functions(completeprompt, insanitylevel)
|
|
|
|
|
|
|
| if(mainchooser == "humanoid" and (givensubject == "" or subjectingivensubject and givensubject != "") and subjectchooser != "manwomanmultiple"):
|
| samehumanreplacementlist = ["-heshe-","-heshe-","-heshe-","-heshe-","-heshe-", "-samehumansubject-", "-samehumansubject-", "-samehumansubject-", "-samehumansubject-", "-samehumansubject-"]
|
| random.shuffle(samehumanreplacementlist)
|
|
|
|
|
| completeprompt_list = list(completeprompt)
|
|
|
| for i in range(len(completeprompt_list) - len("-heshe-") + 1):
|
| if "".join(completeprompt_list[i:i+len("-heshe-")]) == "-heshe-":
|
|
|
| replacement = samehumanreplacementlist.pop()
|
| completeprompt_list[i:i+len("-heshe-")] = replacement
|
|
|
|
|
| completeprompt = "".join(completeprompt_list)
|
|
|
|
|
| if(mainchooser in ["animal", "object"] and (givensubject == "" or subjectingivensubject and givensubject != "")):
|
| sameobjectreplacementlist = ["-heshe-","-heshe-","-heshe-","-heshe-","-heshe-", "-sameothersubject-", "-sameothersubject-", "-sameothersubject-", "-sameothersubject-", "-sameothersubject-"]
|
| random.shuffle(sameobjectreplacementlist)
|
|
|
| completeprompt_list = list(completeprompt)
|
|
|
|
|
| for i in range(len(completeprompt_list) - len("-heshe-") + 1):
|
| if "".join(completeprompt_list[i:i+len("-heshe-")]) == "-heshe-":
|
|
|
| replacement = sameobjectreplacementlist.pop()
|
| completeprompt_list[i:i+len("-heshe-")] = replacement
|
|
|
| completeprompt = "".join(completeprompt_list)
|
|
|
|
|
| if(rare_dist(insanitylevel)):
|
| completeprompt = completeprompt.replace("-hairdescriptor-", "-descriptor-")
|
|
|
|
|
| if(rare_dist(insanitylevel)):
|
| completeprompt = completeprompt.replace("-humandescriptor-", "-descriptor-")
|
|
|
|
|
| if(rare_dist(insanitylevel)):
|
| completeprompt = completeprompt.replace("-locationdescriptor-", "-descriptor-")
|
|
|
|
|
| if(rare_dist(insanitylevel)):
|
| completeprompt = completeprompt.replace("-animaldescriptor-", "-descriptor-")
|
|
|
|
|
|
|
| if(unique_dist(insanitylevel)):
|
| completeprompt = completeprompt.replace("-culture-", "traditional -culture-")
|
|
|
|
|
|
|
|
|
| if(unique_dist(insanitylevel)):
|
| completeprompt = completeprompt.replace("-outfit-", "-minioutfit-",1)
|
| if(rare_dist(insanitylevel)):
|
| completeprompt = completeprompt.replace("-outfitdescriptor-", "-descriptor-")
|
|
|
|
|
| if("-outfit-" in overrideoutfit):
|
| if(chance_roll(insanitylevel, "common")):
|
| overrideoutfit = overrideoutfit.replace("-outfit-", random.choice(outfitlist))
|
| else:
|
| overrideoutfit = overrideoutfit.replace("-outfit-", random.choice(minioutfitlist))
|
|
|
| if(overrideoutfit != ""):
|
| completeprompt = completeprompt.replace("-sameoutfit-", overrideoutfit)
|
| completeprompt = completeprompt.replace("-outfit-", overrideoutfit,1)
|
| completeprompt = completeprompt.replace("-minioutfit-", overrideoutfit,1)
|
| completeprompt = completeprompt.replace("-overrideoutfit-", overrideoutfit)
|
|
|
| if(givensubject != "" and subjectingivensubject == False):
|
| completeprompt = completeprompt.replace("-samehumansubject-", givensubject)
|
| completeprompt = completeprompt.replace("-sameothersubject-", givensubject)
|
|
|
|
|
|
|
|
|
| completeprompt = completeprompt.replace("-overrideoutfit-", "")
|
|
|
|
|
| if(insanitylevel > 7 and unique_dist(insanitylevel)):
|
| completeprompt = completeprompt.replace("-descriptor-", "-artmovement-",1)
|
|
|
|
|
| if(random.randint(0,insanitylevel) == 0 and insanitylevel < 5):
|
| completeprompt = completeprompt.replace("-locationdescriptor-", "-basicbitchdescriptor-")
|
| completeprompt = completeprompt.replace("-humandescriptor-", "-basicbitchdescriptor-")
|
| completeprompt = completeprompt.replace("-outfitdescriptor-", "-basicbitchdescriptor-")
|
| completeprompt = completeprompt.replace("-descriptor-", "-basicbitchdescriptor-")
|
| completeprompt = completeprompt.replace("-animaldescriptor-", "-basicbitchdescriptor-")
|
|
|
|
|
| if(random.randint(0,max(0, insanitylevel - 2)) <= 0):
|
| completeprompt = completeprompt.replace("-color- and -color-", "-colorcombination-")
|
|
|
| colorreplacementlist = ["-color-","-color-","-color-","-colorcombination-","-colorcombination-", "-colorcombination-", "-colorcombination-", "-colorcombination-", "-colorcombination-", "-colorcombination-"]
|
| random.shuffle(colorreplacementlist)
|
|
|
|
|
| completeprompt_list = list(completeprompt)
|
|
|
| for i in range(len(completeprompt_list) - len("-color-") + 1):
|
| if "".join(completeprompt_list[i:i+len("-color-")]) == "-color-":
|
|
|
| replacement = colorreplacementlist.pop()
|
| completeprompt_list[i:i+len("-color-")] = replacement
|
|
|
|
|
| completeprompt = "".join(completeprompt_list)
|
|
|
|
|
|
|
| if(random.randint(0,max(0, insanitylevel - 4)) <= 0):
|
| completeprompt = completeprompt.replace("-material- and -material-", "-materialcombination-")
|
|
|
| materialreplacementlist = ["-material-","-material-","-material-","-materialcombination-","-materialcombination-", "-materialcombination-", "-materialcombination-", "-materialcombination-", "-materialcombination-", "-materialcombination-"]
|
| random.shuffle(materialreplacementlist)
|
|
|
|
|
| completeprompt_list = list(completeprompt)
|
|
|
| for i in range(len(completeprompt_list) - len("-material-") + 1):
|
| if "".join(completeprompt_list[i:i+len("-material-")]) == "-material-":
|
|
|
| replacement = materialreplacementlist.pop()
|
| completeprompt_list[i:i+len("-material-")] = replacement
|
|
|
|
|
| completeprompt = "".join(completeprompt_list)
|
|
|
|
|
|
|
|
|
|
|
| while (
|
| "-color-" in completeprompt or
|
| "-material-" in completeprompt or
|
| "-animal-" in completeprompt or
|
| "-object-" in completeprompt or
|
| "-fictional-" in completeprompt or
|
| "-nonfictional-" in completeprompt or
|
| "-conceptsuffix-" in completeprompt or
|
| "-building-" in completeprompt or
|
| "-vehicle-" in completeprompt or
|
| "-outfit-" in completeprompt or
|
| "-location-" in completeprompt or
|
| "-conceptprefix-" in completeprompt or
|
| "-descriptor-" in completeprompt or
|
| "-food-" in completeprompt or
|
| "-haircolor-" in completeprompt or
|
| "-hairstyle-" in completeprompt or
|
| "-job-" in completeprompt or
|
| "-culture-" in completeprompt or
|
| "-accessory-" in completeprompt or
|
| "-humanoid-" in completeprompt or
|
| "-manwoman-" in completeprompt or
|
| "-human-" in completeprompt or
|
| "-colorscheme-" in completeprompt or
|
| "-mood-" in completeprompt or
|
| "-genderdescription-" in completeprompt or
|
| "-artmovement-" in completeprompt or
|
| "-malefemale-" in completeprompt or
|
| "-objecttotal-" in completeprompt or
|
| "-outfitprinttotal-" in completeprompt or
|
| "-bodytype-" in completeprompt or
|
| "-minilocation-" in completeprompt or
|
| "-minilocationaddition-" in completeprompt or
|
| "-pose-" in completeprompt or
|
| "-season-" in completeprompt or
|
| "-minioutfit-" in completeprompt or
|
| "-elaborateoutfit-" in completeprompt or
|
| "-minivomit-" in completeprompt or
|
| "-vomit-" in completeprompt or
|
| "-rpgclass-" in completeprompt or
|
| "-subjectfromfile-" in completeprompt or
|
| "-outfitfromfile-" in completeprompt or
|
| "-brand-" in completeprompt or
|
| "-space-" in completeprompt or
|
| "-artist-" in completeprompt or
|
| "-imagetype-" in completeprompt or
|
| "-othertype-" in completeprompt or
|
| "-quality-" in completeprompt or
|
| "-lighting-" in completeprompt or
|
| "-camera-" in completeprompt or
|
| "-lens-" in completeprompt or
|
| "-imagetypequality-" in completeprompt or
|
| "-poemline-" in completeprompt or
|
| "-songline-" in completeprompt or
|
| "-greatwork-" in completeprompt or
|
| "-fantasyartist-" in completeprompt or
|
| "-popularartist-" in completeprompt or
|
| "-romanticismartist-" in completeprompt or
|
| "-photographyartist-" in completeprompt or
|
| "-emoji-" in completeprompt or
|
| "-timeperiod-" in completeprompt or
|
| "-shotsize-" in completeprompt or
|
| "-musicgenre-" in completeprompt or
|
| "-animaladdition-" in completeprompt or
|
| "-addontolocationinside-" in completeprompt or
|
| "-addontolocation-" in completeprompt or
|
| "-objectaddition-" in completeprompt or
|
| "-humanaddition-" in completeprompt or
|
| "-overalladdition-" in completeprompt or
|
| "-focus-" in completeprompt or
|
| "-direction-" in completeprompt or
|
| "-styletilora-" in completeprompt or
|
| "-manwomanrelation-" in completeprompt or
|
| "-manwomanmultiple-" in completeprompt or
|
| "-waterlocation-" in completeprompt or
|
| "-container-" in completeprompt or
|
| "-firstname-" in completeprompt or
|
| "-flora-" in completeprompt or
|
| "-print-" in completeprompt or
|
| "-miniactivity-" in completeprompt or
|
| "-pattern-" in completeprompt or
|
| "-animalsuffixaddition-" in completeprompt or
|
| "-chair-" in completeprompt or
|
| "-cardname-" in completeprompt or
|
| "-covering-" in completeprompt or
|
| "-heshe-" in completeprompt or
|
| "-hisher-" in completeprompt or
|
| "-himher-" in completeprompt or
|
| "-outfitdescriptor-" in completeprompt or
|
| "-hairdescriptor-" in completeprompt or
|
| "-hairvomit-" in completeprompt or
|
| "-humandescriptor-" in completeprompt or
|
| "-facepart-" in completeprompt or
|
| "-buildfacepart-" in completeprompt or
|
| "-outfitvomit-" in completeprompt or
|
| "-locationdescriptor-" in completeprompt or
|
| "-basicbitchdescriptor-" in completeprompt or
|
| "-animaldescriptor-" in completeprompt or
|
| "-humanexpression-" in completeprompt or
|
| "-humanvomit-" in completeprompt or
|
| "-eyecolor-" in completeprompt or
|
| "-fashiondesigner-" in completeprompt or
|
| "-colorcombination-" in completeprompt or
|
| "-materialcombination-" in completeprompt or
|
| "-oppositefictional-" in completeprompt or
|
| "-oppositenonfictional-" in completeprompt or
|
| "-photoaddition-" in completeprompt or
|
| "-age-" in completeprompt or
|
| "-agecalculator-" in completeprompt or
|
| "-gregmode-" in completeprompt or
|
| "-portraitartist-" in completeprompt or
|
| "-characterartist-" in completeprompt or
|
| "-landscapeartist-" in completeprompt or
|
| "-scifiartist-" in completeprompt or
|
| "-graphicdesignartist-" in completeprompt or
|
| "-digitalartist-" in completeprompt or
|
| "-architectartist-" in completeprompt or
|
| "-cinemaartist-" in completeprompt or
|
| "-element-" in completeprompt or
|
| "-setting-" in completeprompt or
|
| "-charactertype-" in completeprompt or
|
| "-objectstohold-" in completeprompt or
|
| "-episodetitle-" in completeprompt or
|
| "-token-" in completeprompt or
|
| "-allstylessuffix-" in completeprompt or
|
| "-fluff-" in completeprompt or
|
| "-event-" in completeprompt or
|
| "-background-" in completeprompt or
|
| "-occult-" in completeprompt or
|
| "-locationfantasy-" in completeprompt or
|
| "-locationscifi-" in completeprompt or
|
| "-locationvideogame-" in completeprompt or
|
| "-locationbiome-" in completeprompt or
|
| "-locationcity-" in completeprompt or
|
| "-bird-" in completeprompt or
|
| "-cat-" in completeprompt or
|
| "-dog-" in completeprompt or
|
| "-insect-" in completeprompt or
|
| "-pokemon-" in completeprompt or
|
| "-pokemontype-" in completeprompt or
|
| "-marinelife-" in completeprompt):
|
| allwildcardslistnohybrid = [ "-color-","-object-", "-animal-", "-fictional-","-nonfictional-","-building-","-vehicle-","-location-","-conceptprefix-","-food-","-haircolor-","-hairstyle-","-job-", "-accessory-", "-humanoid-", "-manwoman-", "-human-", "-colorscheme-", "-mood-", "-genderdescription-", "-artmovement-", "-malefemale-", "-bodytype-", "-minilocation-", "-minilocationaddition-", "-pose-", "-season-", "-minioutfit-", "-elaborateoutfit-", "-minivomit-", "-vomit-", "-rpgclass-", "-subjectfromfile-","-outfitfromfile-", "-brand-", "-space-", "-artist-", "-imagetype-", "-othertype-", "-quality-", "-lighting-", "-camera-", "-lens-","-imagetypequality-", "-poemline-", "-songline-", "-greatwork-", "-fantasyartist-", "-popularartist-", "-romanticismartist-", "-photographyartist-", "-emoji-", "-timeperiod-", "-shotsize-", "-musicgenre-", "-animaladdition-", "-addontolocationinside-", "-addontolocation-", "-objectaddition-", "-humanaddition-", "-overalladdition-", "-focus-", "-direction-", "-styletilora-", "-manwomanrelation-", "-waterlocation-", "-container-", "-firstname-", "-flora-", "-print-", "-miniactivity-", "-pattern-", "-animalsuffixaddition-", "-chair-", "-cardname-", "-covering-", "-heshe-", "-hisher-", "-himher-", "-outfitdescriptor-", "-hairdescriptor-", "-hairvomit-", "-humandescriptor-", "-manwomanmultiple-", "-facepart-", "-buildfacepart-", "-outfitvomit-", "-locationdescriptor-", "-basicbitchdescriptor-", "-animaldescriptor-", "-humanexpression-", "-humanvomit-", "-eyecolor-", "-fashiondesigner-", "-colorcombination-", "-materialcombination-", "-oppositefictional-", "-oppositenonfictional-", "-photoaddition-", "-age-", "-agecalculator-", "-gregmode-"
|
| ,"-portraitartist-", "-characterartist-" , "-landscapeartist-", "-scifiartist-", "-graphicdesignartist-", "-digitalartist-", "-architectartist-", "-cinemaartist-", "-setting-", "-charactertype-", "-objectstohold-", "-episodetitle-", "-token-", "-allstylessuffix-", "-fluff-", "-event-", "-background-"
|
| , "-occult-", "-locationfantasy-", "-locationscifi-", "-locationvideogame-", "-locationbiome-", "-locationcity-", "-bird-", "-cat-", "-dog-", "-insect-", "-pokemon-", "-pokemontype-", "-marinelife-"]
|
| allwildcardslistnohybridlists = [colorlist, objectlist, animallist, fictionallist, nonfictionallist, buildinglist, vehiclelist, locationlist,conceptprefixlist,foodlist,haircolorlist, hairstylelist,joblist, accessorielist, humanoidlist, manwomanlist, humanlist, colorschemelist, moodlist, genderdescriptionlist, artmovementlist, malefemalelist, bodytypelist, minilocationlist, minilocationadditionslist, poselist, seasonlist, minioutfitlist, elaborateoutfitlist, minivomitlist, vomitlist, rpgclasslist, customsubjectslist, customoutfitslist, brandlist, spacelist, artistlist, imagetypelist, othertypelist, qualitylist, lightinglist, cameralist, lenslist, imagetypequalitylist, poemlinelist, songlinelist, greatworklist, fantasyartistlist, popularartistlist, romanticismartistlist, photographyartistlist, emojilist, timeperiodlist, shotsizelist, musicgenrelist, animaladditionlist, addontolocationinsidelist, addontolocationlist, objectadditionslist, humanadditionlist, overalladditionlist, focuslist, directionlist, stylestiloralist, manwomanrelationlist, waterlocationlist, containerlist, firstnamelist, floralist, printlist, miniactivitylist, patternlist, animalsuffixadditionlist, chairlist, cardnamelist, coveringlist, heshelist, hisherlist, himherlist, outfitdescriptorlist, hairdescriptorlist, hairvomitlist, humandescriptorlist, manwomanmultiplelist, facepartlist, buildfacepartlist, outfitvomitlist, locationdescriptorlist, basicbitchdescriptorlist, animaldescriptorlist, humanexpressionlist, humanvomitlist, eyecolorlist, fashiondesignerlist, colorcombinationlist, materialcombinationlist, oppositefictionallist, oppositenonfictionallist, photoadditionlist, agelist, agecalculatorlist, gregmodelist
|
| , portraitartistlist, characterartistlist, landscapeartistlist, scifiartistlist, graphicdesignartistlist, digitalartistlist, architectartistlist, cinemaartistlist, settinglist, charactertypelist, objectstoholdlist, episodetitlelist, tokenlist, allstylessuffixlist, flufferlist, eventlist, backgroundlist
|
| , occultlist, locationfantasylist, locationscifilist, locationvideogamelist, locationbiomelist, locationcitylist, birdlist, catlist, doglist, insectlist, pokemonlist, pokemontypelist, marinelifelist]
|
|
|
| allwildcardslistwithhybrid = ["-material-", "-descriptor-", "-outfit-", "-conceptsuffix-","-culture-", "-objecttotal-", "-outfitprinttotal-", "-element-"]
|
| allwildcardslistwithhybridlists = [materiallist, descriptorlist,outfitlist,conceptsuffixlist,culturelist, objecttotallist, outfitprinttotallist, elementlist]
|
|
|
|
|
|
|
| for wildcard in allwildcardslistnohybrid:
|
| attachedlist = allwildcardslistnohybridlists[allwildcardslistnohybrid.index(wildcard)]
|
| completeprompt = replacewildcard(completeprompt, insanitylevel, wildcard, attachedlist,False, advancedprompting, artiststyleselector)
|
|
|
|
|
|
|
| for wildcard in allwildcardslistwithhybrid:
|
| attachedlist = allwildcardslistwithhybridlists[allwildcardslistwithhybrid.index(wildcard)]
|
| completeprompt = replacewildcard(completeprompt, insanitylevel, wildcard, attachedlist,True, advancedprompting, artiststyleselector)
|
|
|
|
|
| completeprompt = replace_user_wildcards(completeprompt)
|
|
|
|
|
|
|
|
|
|
|
| matches = []
|
| if(givensubject != ""):
|
| pattern = r'\(\w+:\d+\.\d+\)'
|
| matches = re.findall(pattern, givensubject)
|
|
|
|
|
| if(len(completeprompt) > 325 and matches == [] and remove_weights == False):
|
| if(len(completeprompt) < 375):
|
| strenght = "1.1"
|
| elif(len(completeprompt) < 450):
|
| strenght = "1.2"
|
| else:
|
| strenght = "1.3"
|
| completeprompt = completeprompt.replace("-objectstrengthstart-","(")
|
| completeprompt = completeprompt.replace("-objectstrengthend-",":" + strenght + ")")
|
| else:
|
| completeprompt = completeprompt.replace("-objectstrengthstart-","")
|
| completeprompt = completeprompt.replace("-objectstrengthend-","")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| completeprompt = parse_custom_functions(completeprompt, insanitylevel)
|
|
|
|
|
| if(templatemode == False and specialmode == False and base_model != "Stable Cascade"):
|
|
|
|
|
| maxamountofwords = max(0, -1 + random.randint(0,4),6 - insanitylevel)
|
| amountofwords = random.randint(0,maxamountofwords)
|
|
|
| if(amountofwords > 0):
|
| enhance_positive_words = enhance_positive(completeprompt, amountofwords)
|
| completeprompt = completeprompt.replace("-tempnewwords-", enhance_positive_words)
|
| completeprompt = completeprompt.replace("-tempnewwords-", "")
|
|
|
|
|
| completeprompt = cleanup(completeprompt, advancedprompting, insanitylevel)
|
|
|
|
|
| if("@@@" in completeprompt and prompt_g_and_l == True):
|
| promptlist = completeprompt.split("@@@")
|
| prompt_g = cleanup(promptlist[1], advancedprompting, insanitylevel)
|
| prompt_l = cleanup((promptlist[0] + ", " + promptlist[2]).replace("of a",""), advancedprompting, insanitylevel)
|
| if("@@@" in completeprompt and superprompter == True):
|
|
|
| promptlist = completeprompt.split("@@@")
|
| subjectprompt = cleanup(promptlist[1], advancedprompting, insanitylevel)
|
| startprompt = cleanup(promptlist[0], advancedprompting, insanitylevel)
|
| endprompt = cleanup(promptlist[2], advancedprompting, insanitylevel)
|
| superpromptresult = one_button_superprompt(insanitylevel=insanitylevel, prompt=subjectprompt, seed=seed, override_subject=givensubject, override_outfit=overrideoutfit, chosensubject=subjectchooser, gender=gender, restofprompt = startprompt + endprompt)
|
| completeprompt = startprompt + ", " + superpromptresult + ", " + endprompt
|
| prompt_g = superpromptresult
|
| prompt_l = completeprompt
|
| elif(prompt_g_and_l == True):
|
| prompt_g = completeprompt
|
| prompt_l = completeprompt
|
|
|
| completeprompt = completeprompt.replace(" @@@ ", " ")
|
| completeprompt = completeprompt.replace("@@@ ", " ")
|
| completeprompt = completeprompt.replace(" @@@", " ")
|
| completeprompt = completeprompt.replace("@@@", " ")
|
| completeprompt = cleanup(completeprompt, advancedprompting, insanitylevel)
|
|
|
|
|
| if(random.randint(1, 50)==1):
|
| print("")
|
| print(random.choice(devmessagelist))
|
| print("")
|
|
|
| print(completeprompt)
|
|
|
| if(prompt_g_and_l == False):
|
| return completeprompt
|
| else:
|
| return completeprompt, prompt_g, prompt_l
|
|
|
|
|
|
|
| def createpromptvariant(prompt = "", insanitylevel = 5, antivalues = "" , gender = "all", artists = "all", advancedprompting = True):
|
|
|
|
|
|
|
|
|
| prompt = prompt.strip()
|
|
|
|
|
|
|
| emptylist = []
|
| antilist = csv_to_list("antilist",emptylist , "./userfiles/",1)
|
| antivaluelist = antivalues.split(",")
|
|
|
| antilist += antivaluelist
|
|
|
|
|
|
|
| colorlist = csv_to_list("colors",antilist)
|
| animallist = csv_to_list("animals",antilist)
|
| materiallist = csv_to_list("materials",antilist)
|
| objectlist = csv_to_list("objects",antilist)
|
| fictionallist = csv_to_list(csvfilename="fictional characters",antilist=antilist,skipheader=True,gender=gender)
|
| nonfictionallist = csv_to_list(csvfilename="nonfictional characters",antilist=antilist,skipheader=True,gender=gender)
|
| conceptsuffixlist = csv_to_list("concept_suffix",antilist)
|
| buildinglist = csv_to_list("buildings",antilist)
|
| vehiclelist = csv_to_list("vehicles",antilist)
|
| outfitlist = csv_to_list("outfits",antilist)
|
| locationlist = csv_to_list("locations",antilist)
|
| backgroundlist = csv_to_list("backgrounds",antilist)
|
| locationlist = locationlist + backgroundlist
|
|
|
| accessorielist = csv_to_list("accessories",antilist,"./csvfiles/",0,"?")
|
| artmovementlist = csv_to_list("artmovements",antilist)
|
| bodytypelist = csv_to_list("body_types",antilist)
|
| cameralist = csv_to_list("cameras",antilist)
|
| colorschemelist = csv_to_list("colorscheme",antilist)
|
| conceptprefixlist = csv_to_list("concept_prefix",antilist)
|
| culturelist = csv_to_list("cultures",antilist)
|
| descriptorlist = csv_to_list("descriptors",antilist)
|
| devmessagelist = csv_to_list("devmessages",antilist)
|
| directionlist = csv_to_list("directions",antilist)
|
| emojilist = csv_to_list("emojis",antilist)
|
| eventlist = csv_to_list("events",antilist)
|
| focuslist = csv_to_list("focus",antilist)
|
| greatworklist = csv_to_list("greatworks",antilist)
|
| haircolorlist = csv_to_list("haircolors",antilist)
|
| hairstylelist = csv_to_list("hairstyles",antilist)
|
| hairvomitlist = csv_to_list("hairvomit",antilist,"./csvfiles/",0,"?",False,False)
|
| humanactivitylist = csv_to_list("human_activities",antilist,"./csvfiles/",0,"?",False,False)
|
| humanoidlist = csv_to_list("humanoids",antilist)
|
| imagetypelist = csv_to_list("imagetypes",antilist)
|
| joblist = joblist = csv_to_list(csvfilename="jobs",antilist=antilist,skipheader=True,gender=gender)
|
| lenslist = csv_to_list("lenses",antilist)
|
| lightinglist = csv_to_list("lighting",antilist)
|
| 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)
|
| othertypelist = csv_to_list("othertypes",antilist)
|
| poselist = csv_to_list("poses",antilist)
|
| qualitylist = csv_to_list("quality",antilist)
|
| shotsizelist = csv_to_list("shotsizes",antilist)
|
| timeperiodlist = csv_to_list("timeperiods",antilist)
|
| vomitlist = csv_to_list("vomit",antilist)
|
| foodlist = csv_to_list("foods", antilist)
|
| genderdescriptionlist = csv_to_list(csvfilename="genderdescription",antilist=antilist,skipheader=True,gender=gender)
|
| minilocationlist = csv_to_list("minilocations", antilist)
|
| minioutfitlist = csv_to_list("minioutfits",antilist,"./csvfiles/",0,"?",False,False,gender)
|
| seasonlist = csv_to_list("seasons", antilist)
|
| elaborateoutfitlist = csv_to_list("elaborateoutfits", antilist)
|
| minivomitlist = csv_to_list("minivomit", antilist)
|
| imagetypequalitylist = csv_to_list("imagetypequality", antilist)
|
| rpgclasslist = csv_to_list("rpgclasses", antilist)
|
| brandlist = csv_to_list("brands", antilist)
|
| spacelist = csv_to_list("space", antilist)
|
| poemlinelist = csv_to_list("poemlines", antilist)
|
| songlinelist = csv_to_list("songlines", antilist)
|
| musicgenrelist = csv_to_list("musicgenres", antilist)
|
| manwomanrelationlist = csv_to_list(csvfilename="manwomanrelations",antilist=antilist,skipheader=True,gender=gender)
|
| manwomanmultiplelist = csv_to_list(csvfilename="manwomanmultiples",antilist=antilist,skipheader=True,gender=gender,delimiter="?")
|
| waterlocationlist = csv_to_list("waterlocations", antilist)
|
| containerlist = csv_to_list("containers", antilist)
|
| firstnamelist = csv_to_list(csvfilename="firstnames",antilist=antilist,skipheader=True,gender=gender)
|
| floralist = csv_to_list("flora", antilist)
|
| printlist = csv_to_list("prints", antilist)
|
| patternlist = csv_to_list("patterns", antilist)
|
| chairlist = csv_to_list("chairs", antilist)
|
| cardnamelist = csv_to_list("card_names", antilist)
|
| coveringlist = csv_to_list("coverings", antilist)
|
| facepartlist = csv_to_list("faceparts", antilist)
|
| humanexpressionlist = csv_to_list(csvfilename="humanexpressions",antilist=antilist,delimiter="?")
|
| humanvomitlist = csv_to_list("humanvomit", antilist)
|
| eyecolorlist = csv_to_list("eyecolors", antilist)
|
| fashiondesignerlist = csv_to_list("fashiondesigners", antilist)
|
| colorcombinationlist = csv_to_list("colorcombinations", antilist)
|
| materialcombinationlist = csv_to_list("materialcombinations", antilist)
|
| agelist = csv_to_list("ages", antilist)
|
| agecalculatorlist = csv_to_list("agecalculator", antilist)
|
| elementlist = csv_to_list("elements", antilist)
|
| settinglist = csv_to_list("settings", antilist)
|
| charactertypelist = csv_to_list("charactertypes", antilist)
|
| objectstoholdlist = csv_to_list("objectstohold", antilist)
|
| episodetitlelist = csv_to_list(csvfilename="episodetitles",antilist=antilist,skipheader=True)
|
| flufferlist = csv_to_list("fluff", antilist)
|
|
|
| outfitdescriptorlist = csv_to_list("outfitdescriptors",antilist)
|
| hairdescriptorlist = csv_to_list("hairdescriptors",antilist)
|
| humandescriptorlist = csv_to_list("humandescriptors",antilist)
|
| locationdescriptorlist = csv_to_list("locationdescriptors",antilist)
|
| basicbitchdescriptorlist = csv_to_list("basicbitchdescriptors",antilist)
|
| animaldescriptorlist = csv_to_list("animaldescriptors",antilist)
|
|
|
| humanlist = fictionallist + nonfictionallist + humanoidlist + malefemalelist + manwomanlist + manwomanrelationlist + manwomanmultiplelist
|
| objecttotallist = objectlist + buildinglist + vehiclelist + foodlist + spacelist + floralist + containerlist
|
| outfitprinttotallist = objecttotallist + locationlist + colorlist + musicgenrelist + seasonlist + animallist + patternlist
|
|
|
| styleslist = csv_to_list("styles", antilist,"./csvfiles/templates/",0,"?")
|
| stylessuffix = [item.split('-subject-')[1] for item in styleslist]
|
| breakstylessuffix = [item.split(',') for item in stylessuffix]
|
| allstylessuffixlist = [value for sublist in breakstylessuffix for value in sublist]
|
| allstylessuffixlist = list(set(allstylessuffixlist))
|
|
|
|
|
| if artists == "wild":
|
| artists = "all (wild)"
|
| artistlist = []
|
|
|
| if(artists != "all" and artists != "none" and artists.startswith("personal_artists") == False and artists.startswith("personal artists") == False):
|
| artistlist = artist_category_csv_to_list("artists_and_category",artists)
|
| elif(artists.startswith("personal_artists") == True or artists.startswith("personal artists") == True):
|
| artists = artists.replace(" ","_",-1)
|
| artistlist = csv_to_list(artists,antilist,"./userfiles/")
|
| elif(artists != "none"):
|
| artistlist = csv_to_list("artists",antilist)
|
|
|
|
|
| fantasyartistlist = artist_category_csv_to_list("artists_and_category","fantasy")
|
| popularartistlist = artist_category_csv_to_list("artists_and_category","popular")
|
| romanticismartistlist = artist_category_csv_to_list("artists_and_category","romanticism")
|
| photographyartistlist = artist_category_csv_to_list("artists_and_category","photography")
|
| portraitartistlist = artist_category_csv_to_list("artists_and_category","portrait")
|
| characterartistlist = artist_category_csv_to_list("artists_and_category","character")
|
| landscapeartistlist = artist_category_csv_to_list("artists_and_category","landscape")
|
| scifiartistlist = artist_category_csv_to_list("artists_and_category","sci-fi")
|
| graphicdesignartistlist = artist_category_csv_to_list("artists_and_category","graphic design")
|
| digitalartistlist = artist_category_csv_to_list("artists_and_category","digital")
|
| architectartistlist = artist_category_csv_to_list("artists_and_category","architecture")
|
| cinemaartistlist = artist_category_csv_to_list("artists_and_category","cinema")
|
| gregmodelist = csv_to_list("gregmode", antilist)
|
|
|
|
|
|
|
| locationfantasylist = csv_to_list("locationsfantasy", antilist)
|
| locationscifilist = csv_to_list("locationsscifi", antilist)
|
| locationvideogamelist = csv_to_list("locationsvideogame", antilist)
|
| locationbiomelist = csv_to_list("locationsbiome", antilist)
|
| locationcitylist = csv_to_list("locationscities", antilist)
|
| birdlist = csv_to_list("birds", antilist)
|
| catlist = csv_to_list("cats", antilist)
|
| doglist = csv_to_list("dogs", antilist)
|
| insectlist = csv_to_list("insects", antilist)
|
| pokemonlist = csv_to_list("pokemon", antilist)
|
| pokemontypelist = csv_to_list("pokemontypes", antilist)
|
| occultlist = csv_to_list("occult", antilist)
|
| marinelifelist = csv_to_list("marinelife", antilist)
|
|
|
|
|
| stylestiloralist = csv_to_list("styles_ti_lora",antilist,"./userfiles/")
|
| generatestyle = bool(stylestiloralist)
|
|
|
| custominputprefixlist = csv_to_list("custom_input_prefix",antilist,"./userfiles/")
|
| generatecustominputprefix = bool(custominputprefixlist)
|
|
|
| custominputmidlist = csv_to_list("custom_input_mid",antilist,"./userfiles/")
|
| generatecustominputmid = bool(custominputmidlist)
|
|
|
| custominputsuffixlist = csv_to_list("custom_input_suffix",antilist,"./userfiles/")
|
| generatecustominputsuffix = bool(custominputsuffixlist)
|
|
|
| customsubjectslist = csv_to_list("custom_subjects",antilist,"./userfiles/")
|
| customoutfitslist = csv_to_list("custom_outfits",antilist,"./userfiles/")
|
|
|
|
|
| backgroundtypelist = csv_to_list("backgroundtypes", antilist,"./csvfiles/special_lists/",0,"?")
|
| insideshotlist = csv_to_list("insideshots", antilist,"./csvfiles/special_lists/",0,"?")
|
| photoadditionlist = csv_to_list("photoadditions", antilist,"./csvfiles/special_lists/",0,"?")
|
| buildhairlist = csv_to_list("buildhair", antilist,"./csvfiles/special_lists/",0,"?")
|
| buildoutfitlist = csv_to_list("buildoutfit", antilist,"./csvfiles/special_lists/",0,"?")
|
| objectadditionslist = csv_to_list("objectadditions", antilist,"./csvfiles/special_lists/",0,"?")
|
| humanadditionlist = csv_to_list("humanadditions", antilist,"./csvfiles/special_lists/",0,"?")
|
| animaladditionlist = csv_to_list("animaladditions", antilist,"./csvfiles/special_lists/",0,"?")
|
| buildaccessorielist = csv_to_list("buildaccessorie", antilist,"./csvfiles/special_lists/",0,"?")
|
| minilocationadditionslist = csv_to_list("minilocationadditions", antilist,"./csvfiles/special_lists/",0,"?")
|
| overalladditionlist = csv_to_list("overalladditions", antilist,"./csvfiles/special_lists/",0,"?")
|
| imagetypemodelist = csv_to_list("imagetypemodes", antilist,"./csvfiles/special_lists/",0,"?")
|
| miniactivitylist = csv_to_list("miniactivity", antilist,"./csvfiles/special_lists/",0,"?")
|
|
|
|
|
| prompt = prompt.replace(",", " , ")
|
| prompt = prompt.replace("(", " ( ")
|
| prompt = prompt.replace(")", " ) ")
|
| prompt = prompt.replace("[", " [ ")
|
| prompt = prompt.replace("]", " ] ")
|
| prompt = prompt.replace("|", " | ")
|
| prompt = prompt.replace(":", " : ")
|
|
|
| prompt = " " + prompt
|
|
|
| originalprompt = prompt
|
| originaloriginalprompt = prompt
|
|
|
| basicenhance = ", OR(-vomit-;-imagetype-;-basicbitchdescriptor-;-mood-;-lighting-;-descriptor-), "
|
|
|
|
|
|
|
|
|
| words = prompt.split()
|
| num_words = len(words)
|
| if(num_words < 15 and common_dist(insanitylevel)):
|
|
|
| if(common_dist(insanitylevel)):
|
|
|
| if(random.randint(0,1)== 0):
|
| prompt += basicenhance
|
| else:
|
| prompt = basicenhance + prompt
|
| if(common_dist(insanitylevel)):
|
| prompt += basicenhance
|
| prompt = parse_custom_functions(prompt, insanitylevel)
|
|
|
|
|
| amountofwords = random.randint(0,3)
|
| if(amountofwords > 0):
|
| enhance_positive_words = enhance_positive(prompt, amountofwords)
|
| prompt += enhance_positive_words
|
|
|
|
|
| originalprompt = prompt
|
|
|
| combinations_list = []
|
|
|
| for length in range(1, 5):
|
| for start_idx in range(num_words - length + 1):
|
| end_idx = start_idx + length
|
| combination = ' '.join(words[start_idx:end_idx])
|
| combinations_list.append(combination)
|
|
|
| maxamountofruns = 4
|
| runs = 0
|
|
|
| if(insanitylevel != 0):
|
| print("")
|
| print("Creating a prompt variation")
|
| print("")
|
| while(originalprompt == prompt and runs != maxamountofruns):
|
| for combination in combinations_list:
|
| lowercase_combination = combination.lower()
|
| combination = " " + combination + " "
|
|
|
|
|
| if lowercase_combination in [x.lower() for x in humanlist] and chance_roll(insanitylevel, "rare"):
|
| prompt = prompt.replace(combination," -human- ")
|
|
|
| if lowercase_combination in [x.lower() for x in objecttotallist] and chance_roll(insanitylevel, "rare"):
|
| prompt = prompt.replace(combination," -objecttotal- ")
|
|
|
| if lowercase_combination in [x.lower() for x in artistlist] and chance_roll(insanitylevel, "rare"):
|
| prompt = prompt.replace(combination," -artist- ")
|
|
|
|
|
| if lowercase_combination in [x.lower() for x in colorlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -color- ")
|
|
|
| if lowercase_combination in [x.lower() for x in animallist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -animal- ")
|
|
|
| if lowercase_combination in [x.lower() for x in objectlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -object- ")
|
|
|
| if lowercase_combination in [x.lower() for x in fictionallist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -fictional- ")
|
|
|
|
|
| if lowercase_combination in [x.lower() for x in nonfictionallist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -nonfictional- ")
|
|
|
|
|
|
|
|
|
|
|
|
|
| if lowercase_combination in [x.lower() for x in buildinglist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -building- ")
|
|
|
|
|
| if lowercase_combination in [x.lower() for x in vehiclelist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -vehicle- ")
|
|
|
|
|
| if lowercase_combination in [x.lower() for x in outfitlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -outfit- ")
|
|
|
|
|
| if lowercase_combination in [x.lower() for x in locationlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -location- ")
|
|
|
| if lowercase_combination in [x.lower() for x in backgroundlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -background- ")
|
|
|
|
|
| if lowercase_combination in [x.lower() for x in accessorielist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -accessory- ")
|
|
|
|
|
| if lowercase_combination in [x.lower() for x in artmovementlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -artmovement- ")
|
|
|
|
|
| if lowercase_combination in [x.lower() for x in bodytypelist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -bodytype- ")
|
|
|
|
|
| if lowercase_combination in [x.lower() for x in cameralist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -camera- ")
|
|
|
|
|
| if lowercase_combination in [x.lower() for x in colorschemelist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -colorscheme- ")
|
|
|
| if lowercase_combination in [x.lower() for x in eyecolorlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -eyecolor- ")
|
|
|
| if lowercase_combination in [x.lower() for x in fashiondesignerlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -fashiondesigner- ")
|
|
|
| if lowercase_combination in [x.lower() for x in colorcombinationlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -colorcombination- ")
|
|
|
| if lowercase_combination in [x.lower() for x in materialcombinationlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -materialcombination- ")
|
|
|
| if lowercase_combination in [x.lower() for x in photoadditionlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -photoaddition- ")
|
|
|
| if lowercase_combination in [x.lower() for x in agelist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -age- ")
|
|
|
| if lowercase_combination in [x.lower() for x in agecalculatorlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -agecalculator- ")
|
|
|
| if lowercase_combination in [x.lower() for x in gregmodelist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -gregmode- ")
|
|
|
| if lowercase_combination in [x.lower() for x in elementlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -element- ")
|
|
|
| if lowercase_combination in [x.lower() for x in settinglist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -setting- ")
|
|
|
| if lowercase_combination in [x.lower() for x in charactertypelist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -charactertype- ")
|
| if lowercase_combination in [x.lower() for x in objectstoholdlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -objectstohold- ")
|
| if lowercase_combination in [x.lower() for x in episodetitlelist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -episodetitle- ")
|
|
|
| if lowercase_combination in [x.lower() for x in flufferlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -fluff- ")
|
|
|
| if lowercase_combination in [x.lower() for x in occultlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -occult- ")
|
| if lowercase_combination in [x.lower() for x in locationfantasylist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -locationfantasy- ")
|
| if lowercase_combination in [x.lower() for x in locationscifilist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -locationscifi- ")
|
| if lowercase_combination in [x.lower() for x in locationvideogamelist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -locationvideogame- ")
|
| if lowercase_combination in [x.lower() for x in locationbiomelist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -locationbiome- ")
|
| if lowercase_combination in [x.lower() for x in locationcitylist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -locationcity- ")
|
|
|
| if lowercase_combination in [x.lower() for x in birdlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -bird- ")
|
| if lowercase_combination in [x.lower() for x in catlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -cat- ")
|
| if lowercase_combination in [x.lower() for x in doglist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -dog- ")
|
| if lowercase_combination in [x.lower() for x in insectlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -insect- ")
|
| if lowercase_combination in [x.lower() for x in pokemonlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -pokemon- ")
|
| if lowercase_combination in [x.lower() for x in marinelifelist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -marinelife- ")
|
|
|
| if lowercase_combination in [x.lower() for x in pokemontypelist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -pokemontype- ")
|
|
|
|
|
|
|
|
|
|
|
| if lowercase_combination in [x.lower() for x in culturelist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -culture- ")
|
|
|
|
|
| if lowercase_combination in [x.lower() for x in descriptorlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -descriptor- ")
|
|
|
| if lowercase_combination in [x.lower() for x in outfitdescriptorlist] and chance_roll(insanitylevel, "rare"):
|
| prompt = prompt.replace(combination," -outfitdescriptor- ")
|
| if lowercase_combination in [x.lower() for x in hairdescriptorlist] and chance_roll(insanitylevel, "rare"):
|
| prompt = prompt.replace(combination," -hairdescriptor- ")
|
| if lowercase_combination in [x.lower() for x in hairvomitlist] and chance_roll(insanitylevel, "rare"):
|
| prompt = prompt.replace(combination," -hairvomit- ")
|
| if lowercase_combination in [x.lower() for x in humandescriptorlist] and chance_roll(insanitylevel, "rare"):
|
| prompt = prompt.replace(combination," -humandescriptor- ")
|
| if lowercase_combination in [x.lower() for x in locationdescriptorlist] and chance_roll(insanitylevel, "rare"):
|
| prompt = prompt.replace(combination," -locationdescriptor- ")
|
| if lowercase_combination in [x.lower() for x in basicbitchdescriptorlist] and chance_roll(insanitylevel, "rare"):
|
| prompt = prompt.replace(combination," -basicbitchdescriptor- ")
|
| if lowercase_combination in [x.lower() for x in animaldescriptorlist] and chance_roll(insanitylevel, "rare"):
|
| prompt = prompt.replace(combination," -animaldescriptor- ")
|
|
|
| if lowercase_combination in [x.lower() for x in directionlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -direction- ")
|
|
|
| if lowercase_combination in [x.lower() for x in emojilist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -emoji- ")
|
|
|
| if lowercase_combination in [x.lower() for x in humanexpressionlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -humanexpression- ")
|
| if lowercase_combination in [x.lower() for x in humanvomitlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -humanvomit- ")
|
|
|
| if lowercase_combination in [x.lower() for x in eventlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -event- ")
|
|
|
| if lowercase_combination in [x.lower() for x in focuslist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -focus- ")
|
|
|
| if lowercase_combination in [x.lower() for x in greatworklist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -greatwork- ")
|
|
|
| if lowercase_combination in [x.lower() for x in haircolorlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -haircolor- ")
|
|
|
| if lowercase_combination in [x.lower() for x in hairstylelist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -hairstyle- ")
|
|
|
| if lowercase_combination in [x.lower() for x in directionlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -direction- ")
|
|
|
| if lowercase_combination in [x.lower() for x in humanoidlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -humanoid- ")
|
|
|
| if lowercase_combination in [x.lower() for x in joblist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -job- ")
|
|
|
| if lowercase_combination in [x.lower() for x in lenslist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -lens- ")
|
| if lowercase_combination in [x.lower() for x in lightinglist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -lighting- ")
|
| if lowercase_combination in [x.lower() for x in malefemalelist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -malefemale- ")
|
| if lowercase_combination in [x.lower() for x in manwomanlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -manwoman- ")
|
| if lowercase_combination in [x.lower() for x in moodlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -mood- ")
|
| if lowercase_combination in [x.lower() for x in othertypelist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -othertype- ")
|
| if lowercase_combination in [x.lower() for x in poselist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -pose- ")
|
| if lowercase_combination in [x.lower() for x in qualitylist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -quality- ")
|
| if lowercase_combination in [x.lower() for x in shotsizelist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -shotsize- ")
|
| if lowercase_combination in [x.lower() for x in timeperiodlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -timeperiod- ")
|
| if lowercase_combination in [x.lower() for x in vomitlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -vomit- ")
|
| if lowercase_combination in [x.lower() for x in foodlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -food- ")
|
| if lowercase_combination in [x.lower() for x in genderdescriptionlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -genderdescription- ")
|
| if lowercase_combination in [x.lower() for x in minilocationlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -minilocation- ")
|
| if lowercase_combination in [x.lower() for x in minioutfitlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -minioutfit- ")
|
| if lowercase_combination in [x.lower() for x in lenslist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -lens- ")
|
| if lowercase_combination in [x.lower() for x in seasonlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -season- ")
|
| if lowercase_combination in [x.lower() for x in imagetypequalitylist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -imagetypequality- ")
|
| if lowercase_combination in [x.lower() for x in rpgclasslist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -rpgclass- ")
|
| if lowercase_combination in [x.lower() for x in brandlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -brand- ")
|
| if lowercase_combination in [x.lower() for x in spacelist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -space- ")
|
| if lowercase_combination in [x.lower() for x in poemlinelist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -poemline- ")
|
| if lowercase_combination in [x.lower() for x in songlinelist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -songline- ")
|
| if lowercase_combination in [x.lower() for x in musicgenrelist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -musicgenre- ")
|
| if lowercase_combination in [x.lower() for x in manwomanrelationlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -manwomanrelation- ")
|
| if lowercase_combination in [x.lower() for x in manwomanmultiplelist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -manwomanmultiple- ")
|
| if lowercase_combination in [x.lower() for x in waterlocationlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -waterlocation- ")
|
| if lowercase_combination in [x.lower() for x in containerlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -container- ")
|
| if lowercase_combination in [x.lower() for x in firstnamelist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -firstname- ")
|
| if lowercase_combination in [x.lower() for x in floralist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -flora- ")
|
| if lowercase_combination in [x.lower() for x in printlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -print- ")
|
| if lowercase_combination in [x.lower() for x in miniactivitylist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -miniactivity- ")
|
| if lowercase_combination in [x.lower() for x in patternlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -pattern- ")
|
| if lowercase_combination in [x.lower() for x in chairlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -chair- ")
|
| if lowercase_combination in [x.lower() for x in cardnamelist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -cardname- ")
|
| if lowercase_combination in [x.lower() for x in coveringlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -covering- ")
|
| if lowercase_combination in [x.lower() for x in facepartlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -facepart- ")
|
|
|
|
|
| if lowercase_combination in [x.lower() for x in fantasyartistlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -fantasyartist- ")
|
| if lowercase_combination in [x.lower() for x in popularartistlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -popularartist- ")
|
| if lowercase_combination in [x.lower() for x in romanticismartistlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -romanticismartist- ")
|
| if lowercase_combination in [x.lower() for x in photographyartistlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -photographyartist- ")
|
| if lowercase_combination in [x.lower() for x in portraitartistlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -portraitartist- ")
|
| if lowercase_combination in [x.lower() for x in characterartistlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -characterartist- ")
|
| if lowercase_combination in [x.lower() for x in landscapeartistlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -landscapeartist- ")
|
| if lowercase_combination in [x.lower() for x in scifiartistlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -scifiartist- ")
|
| if lowercase_combination in [x.lower() for x in graphicdesignartistlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -graphicdesignartist- ")
|
| if lowercase_combination in [x.lower() for x in architectartistlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -architectartist- ")
|
| if lowercase_combination in [x.lower() for x in cinemaartistlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -cinemaartist- ")
|
|
|
|
|
| if lowercase_combination in [x.lower() for x in stylestiloralist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -styletilora- ")
|
| if lowercase_combination in [x.lower() for x in waterlocationlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -waterlocation- ")
|
|
|
| if lowercase_combination in [x.lower() for x in allstylessuffixlist] and chance_roll(insanitylevel, "uncommon"):
|
| prompt = prompt.replace(combination," -allstylessuffix- ")
|
|
|
| runs += 1
|
|
|
|
|
| if(prompt.lower().strip() == originaloriginalprompt.lower().strip()):
|
| if(random.randint(0,1)==0):
|
| prompt += basicenhance
|
| else:
|
| prompt = basicenhance + ", " + prompt
|
|
|
| if(chance_roll(insanitylevel, "common")):
|
| prompt += basicenhance
|
|
|
| if(chance_roll(insanitylevel, "common")):
|
| enhance_positive_words = enhance_positive(prompt, 1)
|
| prompt += enhance_positive_words
|
|
|
| prompt = parse_custom_functions(prompt, insanitylevel)
|
|
|
|
|
| prompt = prompt.replace(" :", ":")
|
| prompt = prompt.replace(": ", ":")
|
|
|
| completeprompt = prompt
|
|
|
|
|
| while (
|
| "-color-" in completeprompt or
|
| "-material-" in completeprompt or
|
| "-animal-" in completeprompt or
|
| "-object-" in completeprompt or
|
| "-fictional-" in completeprompt or
|
| "-nonfictional-" in completeprompt or
|
| "-conceptsuffix-" in completeprompt or
|
| "-building-" in completeprompt or
|
| "-vehicle-" in completeprompt or
|
| "-outfit-" in completeprompt or
|
| "-location-" in completeprompt or
|
| "-conceptprefix-" in completeprompt or
|
| "-descriptor-" in completeprompt or
|
| "-food-" in completeprompt or
|
| "-haircolor-" in completeprompt or
|
| "-hairstyle-" in completeprompt or
|
| "-job-" in completeprompt or
|
| "-culture-" in completeprompt or
|
| "-accessory-" in completeprompt or
|
| "-humanoid-" in completeprompt or
|
| "-manwoman-" in completeprompt or
|
| "-human-" in completeprompt or
|
| "-colorscheme-" in completeprompt or
|
| "-mood-" in completeprompt or
|
| "-genderdescription-" in completeprompt or
|
| "-artmovement-" in completeprompt or
|
| "-malefemale-" in completeprompt or
|
| "-objecttotal-" in completeprompt or
|
| "-outfitprinttotal-" in completeprompt or
|
| "-bodytype-" in completeprompt or
|
| "-minilocation-" in completeprompt or
|
| "-minilocationaddition-" in completeprompt or
|
| "-pose-" in completeprompt or
|
| "-season-" in completeprompt or
|
| "-minioutfit-" in completeprompt or
|
| "-elaborateoutfit-" in completeprompt or
|
| "-minivomit-" in completeprompt or
|
| "-vomit-" in completeprompt or
|
| "-rpgclass-" in completeprompt or
|
| "-subjectfromfile-" in completeprompt or
|
| "-outfitfromfile-" in completeprompt or
|
| "-brand-" in completeprompt or
|
| "-space-" in completeprompt or
|
| "-artist-" in completeprompt or
|
| "-imagetype-" in completeprompt or
|
| "-othertype-" in completeprompt or
|
| "-quality-" in completeprompt or
|
| "-lighting-" in completeprompt or
|
| "-camera-" in completeprompt or
|
| "-lens-" in completeprompt or
|
| "-imagetypequality-" in completeprompt or
|
| "-poemline-" in completeprompt or
|
| "-songline-" in completeprompt or
|
| "-greatwork-" in completeprompt or
|
| "-fantasyartist-" in completeprompt or
|
| "-popularartist-" in completeprompt or
|
| "-romanticismartist-" in completeprompt or
|
| "-photographyartist-" in completeprompt or
|
| "-emoji-" in completeprompt or
|
| "-timeperiod-" in completeprompt or
|
| "-shotsize-" in completeprompt or
|
| "-musicgenre-" in completeprompt or
|
| "-animaladdition-" in completeprompt or
|
| "-objectaddition-" in completeprompt or
|
| "-humanaddition-" in completeprompt or
|
| "-overalladdition-" in completeprompt or
|
| "-focus-" in completeprompt or
|
| "-direction-" in completeprompt or
|
| "-styletilora-" in completeprompt or
|
| "-manwomanrelation-" in completeprompt or
|
| "-manwomanmultiple-" in completeprompt or
|
| "-waterlocation-" in completeprompt or
|
| "-container-" in completeprompt or
|
| "-firstname-" in completeprompt or
|
| "-flora-" in completeprompt or
|
| "-print-" in completeprompt or
|
| "-miniactivity-" in completeprompt or
|
| "-pattern-" in completeprompt or
|
| "-chair-" in completeprompt or
|
| "-cardname-" in completeprompt or
|
| "-covering-" in completeprompt or
|
| "-outfitdescriptor-" in completeprompt or
|
| "-hairdescriptor-" in completeprompt or
|
| "-hairvomit-" in completeprompt or
|
| "-humandescriptor-" in completeprompt or
|
| "-facepart-" in completeprompt or
|
| "-locationdescriptor-" in completeprompt or
|
| "-basicbitchdescriptor-" in completeprompt or
|
| "-animaldescriptor-" in completeprompt or
|
| "-humanexpression-" in completeprompt or
|
| "-humanvomit-" in completeprompt or
|
| "-eyecolor-" in completeprompt or
|
| "-fashiondesigner-" in completeprompt or
|
| "-colorcombination-" in completeprompt or
|
| "-materialcombination-" in completeprompt or
|
| "-photoaddition-" in completeprompt or
|
| "-age-" in completeprompt or
|
| "-agecalculator-" in completeprompt or
|
| "-gregmode-" in completeprompt or
|
| "-portraitartist-" in completeprompt or
|
| "-characterartist-" in completeprompt or
|
| "-landscapeartist-" in completeprompt or
|
| "-scifiartist-" in completeprompt or
|
| "-graphicdesignartist-" in completeprompt or
|
| "-digitalartist-" in completeprompt or
|
| "-architectartist-" in completeprompt or
|
| "-cinemaartist-" in completeprompt or
|
| "-element-" in completeprompt or
|
| "-setting-" in completeprompt or
|
| "-charactertype-" in completeprompt or
|
| "-objectstohold-" in completeprompt or
|
| "-episodetitle-" in completeprompt or
|
| "-allstylessuffix-" in completeprompt or
|
| "-fluff-" in completeprompt or
|
| "-event-" in completeprompt or
|
| "-background-" in completeprompt or
|
| "-occult-" in completeprompt or
|
| "-locationfantasy-" in completeprompt or
|
| "-locationscifi-" in completeprompt or
|
| "-locationvideogame-" in completeprompt or
|
| "-locationbiome-" in completeprompt or
|
| "-locationcity-" in completeprompt or
|
| "-bird-" in completeprompt or
|
| "-cat-" in completeprompt or
|
| "-dog-" in completeprompt or
|
| "-insect-" in completeprompt or
|
| "-pokemon-" in completeprompt or
|
| "-pokemontype-" in completeprompt or
|
| "-marinelife-" in completeprompt
|
| ):
|
| allwildcardslistnohybrid = [ "-color-","-object-", "-animal-", "-fictional-","-nonfictional-","-building-","-vehicle-","-location-","-conceptprefix-","-food-","-haircolor-","-hairstyle-","-job-", "-accessory-", "-humanoid-", "-manwoman-", "-human-", "-colorscheme-", "-mood-", "-genderdescription-", "-artmovement-", "-malefemale-", "-bodytype-", "-minilocation-", "-minilocationaddition-", "-pose-", "-season-", "-minioutfit-", "-elaborateoutfit-", "-minivomit-", "-vomit-", "-rpgclass-", "-subjectfromfile-", "-outfitfromfile-", "-brand-", "-space-", "-artist-", "-imagetype-", "-othertype-", "-quality-", "-lighting-", "-camera-", "-lens-","-imagetypequality-", "-poemline-", "-songline-", "-greatwork-", "-fantasyartist-", "-popularartist-", "-romanticismartist-", "-photographyartist-", "-emoji-", "-timeperiod-", "-shotsize-", "-musicgenre-", "-animaladdition-", "-objectaddition-", "-humanaddition-", "-overalladdition-", "-focus-", "-direction-", "-styletilora-", "-manwomanrelation-", "-waterlocation-", "-container-", "-firstname-", "-flora-", "-print-", "-miniactivity-", "-pattern-", "-chair-", "-cardname-", "-covering-", "-outfitdescriptor-", "-hairdescriptor-", "-hairvomit-", "-humandescriptor-", "-manwomanmultiple-", "-facepart-", "-locationdescriptor-", "-basicbitchdescriptor-", "-animaldescriptor-", "-humanexpression-", "-humanvomit-", "-eyecolor-", "-fashiondesigner-", "-colorcombination-", "-materialcombination-", "-photoaddition-", "-age-", "-agecalculator-", "-gregmode-"
|
| ,"-portraitartist-", "-characterartist-" , "-landscapeartist-", "-scifiartist-", "-graphicdesignartist-", "-digitalartist-", "-architectartist-", "-cinemaartist-", "-setting-", "-charactertype-", "-objectstohold-", "-episodetitle-", "-allstylessuffix-", "-fluff-", "-event-", "-background-"
|
| , "-occult-", "-locationfantasy-", "-locationscifi-", "-locationvideogame-", "-locationbiome-", "-locationcity-", "-bird-", "-cat-", "-dog-", "-insect-", "-pokemon-", "-pokemontype-", "-marinelife-"]
|
| allwildcardslistnohybridlists = [colorlist, objectlist, animallist, fictionallist, nonfictionallist, buildinglist, vehiclelist, locationlist,conceptprefixlist,foodlist,haircolorlist, hairstylelist,joblist, accessorielist, humanoidlist, manwomanlist, humanlist, colorschemelist, moodlist, genderdescriptionlist, artmovementlist, malefemalelist, bodytypelist, minilocationlist, minilocationadditionslist, poselist, seasonlist, minioutfitlist, elaborateoutfitlist, minivomitlist, vomitlist, rpgclasslist, customsubjectslist, customoutfitslist, brandlist, spacelist, artistlist, imagetypelist, othertypelist, qualitylist, lightinglist, cameralist, lenslist, imagetypequalitylist, poemlinelist, songlinelist, greatworklist, fantasyartistlist, popularartistlist, romanticismartistlist, photographyartistlist, emojilist, timeperiodlist, shotsizelist, musicgenrelist, animaladditionlist, objectadditionslist, humanadditionlist, overalladditionlist, focuslist, directionlist, stylestiloralist, manwomanrelationlist, waterlocationlist, containerlist, firstnamelist, floralist, printlist, miniactivitylist, patternlist, chairlist, cardnamelist, coveringlist, outfitdescriptorlist, hairdescriptorlist, hairvomitlist, humandescriptorlist, manwomanmultiplelist, facepartlist, locationdescriptorlist, basicbitchdescriptorlist, animaldescriptorlist, humanexpressionlist, humanvomitlist, eyecolorlist, fashiondesignerlist, colorcombinationlist, materialcombinationlist, photoadditionlist, agelist, agecalculatorlist, gregmodelist
|
| , portraitartistlist, characterartistlist, landscapeartistlist, scifiartistlist, graphicdesignartistlist, digitalartistlist, architectartistlist, cinemaartistlist, settinglist, charactertypelist, objectstoholdlist, episodetitlelist, allstylessuffixlist, flufferlist, eventlist, backgroundlist
|
| , occultlist, locationfantasylist, locationscifilist, locationvideogamelist, locationbiomelist, locationcitylist, birdlist, catlist, doglist, insectlist, pokemonlist, pokemontypelist, marinelifelist]
|
|
|
| allwildcardslistwithhybrid = ["-material-", "-descriptor-", "-outfit-", "-conceptsuffix-","-culture-", "-objecttotal-", "-outfitprinttotal-", "-element-"]
|
| allwildcardslistwithhybridlists = [materiallist, descriptorlist,outfitlist,conceptsuffixlist,culturelist, objecttotallist, outfitprinttotallist, elementlist]
|
|
|
|
|
|
|
| for wildcard in allwildcardslistnohybrid:
|
| attachedlist = allwildcardslistnohybridlists[allwildcardslistnohybrid.index(wildcard)]
|
| completeprompt = replacewildcard(completeprompt, insanitylevel, wildcard, attachedlist,False, advancedprompting)
|
|
|
|
|
|
|
| for wildcard in allwildcardslistwithhybrid:
|
| attachedlist = allwildcardslistwithhybridlists[allwildcardslistwithhybrid.index(wildcard)]
|
| completeprompt = replacewildcard(completeprompt, insanitylevel, wildcard, attachedlist,True, advancedprompting)
|
|
|
|
|
|
|
|
|
| completeprompt = cleanup(completeprompt, advancedprompting, insanitylevel)
|
|
|
|
|
|
|
|
|
|
|
| return completeprompt
|
|
|
|
|
| def replacewildcard(completeprompt, insanitylevel, wildcard,listname, activatehybridorswap, advancedprompting, artiststyleselector = ""):
|
|
|
| if(len(listname) == 0):
|
|
|
| completeprompt = completeprompt.replace(wildcard, "",1)
|
| else:
|
|
|
| while wildcard in completeprompt:
|
| if(unique_dist(insanitylevel) and activatehybridorswap == True and len(listname)>2 and advancedprompting==True):
|
| hybridorswaplist = ["hybrid", "swap"]
|
| hybridorswap = random.choice(hybridorswaplist)
|
| replacementvalue = random.choice(listname)
|
| listname.remove(replacementvalue)
|
| hybridorswapreplacementvalue = "[" + replacementvalue
|
|
|
| if(hybridorswap == "hybrid"):
|
| replacementvalue = random.choice(listname)
|
| listname.remove(replacementvalue)
|
| hybridorswapreplacementvalue += "|" + replacementvalue + "] "
|
| if(hybridorswap == "swap"):
|
| replacementvalue = random.choice(listname)
|
| listname.remove(replacementvalue)
|
| hybridorswapreplacementvalue += ":" + replacementvalue + ":" + str(random.randint(1,20)) + "] "
|
|
|
| completeprompt = completeprompt.replace(wildcard, hybridorswapreplacementvalue,1)
|
|
|
|
|
| if(bool(listname)):
|
| replacementvalue = random.choice(listname)
|
| if(wildcard not in ["-heshe-", "-himher-","-hisher-"]):
|
| listname.remove(replacementvalue)
|
|
|
|
|
|
|
| else:
|
| replacementvalue = ""
|
|
|
|
|
| if(wildcard == "-artist-" and ("-artiststyle-" in completeprompt or "-artistmedium-" in completeprompt or "-artistdescription-" in completeprompt)):
|
| artiststyles = []
|
| artiststyle = []
|
| chosenartiststyle = ""
|
| artistscomplete = artist_category_by_category_csv_to_list("artists_and_category",replacementvalue)
|
| artiststyles = artistscomplete[0]
|
| artistmediums = artistscomplete[1]
|
| artistdescriptions = artistscomplete[2]
|
| artiststyle = [x.strip() for x in artiststyles[0].split(",")]
|
|
|
| artiststyle = list(filter(lambda x: len(x) > 0, artiststyle))
|
|
|
| if(artiststyleselector in artiststyle):
|
| artiststyle.remove(artiststyleselector)
|
|
|
|
|
| if("nudity" in artiststyle):
|
| artiststyle.remove("nudity")
|
|
|
|
|
|
|
| while bool(artiststyle) and "-artiststyle-" in completeprompt:
|
|
|
| chosenartiststyle = random.choice(artiststyle)
|
| completeprompt = completeprompt.replace("-artiststyle-",chosenartiststyle ,1)
|
| artiststyle.remove(chosenartiststyle)
|
|
|
| if("-artistmedium-" in completeprompt):
|
| if(artistmediums[0].lower() not in completeprompt.lower()):
|
| completeprompt = completeprompt.replace("-artistmedium-",artistmediums[0] ,1)
|
|
|
| if("-artistdescription-" in completeprompt):
|
| completeprompt = completeprompt.replace("-artistdescription-",artistdescriptions[0] ,1)
|
|
|
| while bool(artiststyle) and "-artiststyle-" in completeprompt:
|
|
|
| chosenartiststyle = random.choice(artiststyle)
|
| completeprompt = completeprompt.replace("-artiststyle-",chosenartiststyle ,1)
|
| artiststyle.remove(chosenartiststyle)
|
|
|
|
|
|
|
|
|
|
|
| if(wildcard == "-outfit-" or wildcard == "-minioutfit-"):
|
| completeprompt = completeprompt.replace("-sameoutfit-", replacementvalue,1)
|
|
|
|
|
|
|
| if "from" in replacementvalue:
|
|
|
| from_index = replacementvalue.find("from")
|
|
|
|
|
| replacementvalueforoverrides = replacementvalue[:from_index].strip()
|
| else:
|
| replacementvalueforoverrides = replacementvalue
|
|
|
| if(wildcard in ["-human-"
|
| ,"-humanoid-"
|
| , "-manwoman-"
|
| , "-manwomanrelation-"
|
| , "-manwomanmultiple-"]
|
| and "-samehumansubject-" in completeprompt):
|
| if(completeprompt.index(wildcard) < completeprompt.index("-samehumansubject-")):
|
| completeprompt = completeprompt.replace("-samehumansubject-", "the " + replacementvalueforoverrides)
|
|
|
| if(wildcard in ["-fictional-"
|
| , "-nonfictional-"
|
| , "-firstname-"
|
| , "-oppositefictional-"
|
| , "-oppositenonfictional-"]
|
| and "-samehumansubject-" in completeprompt):
|
| if(completeprompt.index(wildcard) < completeprompt.index("-samehumansubject-")):
|
| completeprompt = completeprompt.replace("-samehumansubject-", replacementvalueforoverrides)
|
|
|
|
|
| if(wildcard in ["-job-"]
|
| and "-samehumansubject-" in completeprompt):
|
| if(completeprompt.index(wildcard) < completeprompt.index("-samehumansubject-")):
|
| completeprompt = completeprompt.replace("-samehumansubject-", "the " + replacementvalueforoverrides)
|
|
|
|
|
|
|
| if(wildcard in ["-malefemale-"]
|
| and "-samehumansubject-" in completeprompt):
|
| if(completeprompt.index(wildcard) < completeprompt.index("-samehumansubject-")):
|
| completeprompt = completeprompt.replace("-samehumansubject-", "the " + replacementvalueforoverrides)
|
|
|
| if(wildcard in ["-animal-"
|
| , "-object-"
|
| , "-vehicle-"
|
| , "-food-"
|
| , "-objecttotal-"
|
| , "-space-"
|
| , "-flora-"
|
| , "-location-"
|
| , "-building-"]
|
| and "-sameothersubject-" in completeprompt):
|
| if(completeprompt.index(wildcard) < completeprompt.index("-sameothersubject-")):
|
| completeprompt = completeprompt.replace("-sameothersubject-", "the " + replacementvalueforoverrides)
|
|
|
|
|
|
|
| completeprompt = completeprompt.replace(wildcard, replacementvalue,1)
|
|
|
|
|
|
|
|
|
| return completeprompt
|
|
|
| def build_dynamic_negative(positive_prompt = "", insanitylevel = 0, enhance = False, existing_negative_prompt = "", base_model="SD1.5"):
|
|
|
|
|
| negative_primer = []
|
| negative_result = []
|
| all_negative_words_list = []
|
| remove_weights = False
|
|
|
|
|
| base_model_options = ["SD1.5", "SDXL", "Stable Cascade"]
|
| if base_model not in base_model_options:
|
| base_model = "SD1.5"
|
|
|
|
|
|
|
| if base_model == "Stable Cascade":
|
| remove_weights = True
|
|
|
|
|
|
|
| negative_primer, negative_result = load_negative_list()
|
|
|
|
|
| artistlist, categorylist = load_all_artist_and_category()
|
|
|
| artist_names = [artist.strip().lower() for artist in artistlist]
|
|
|
|
|
| artistshorthands = csv_to_list(csvfilename="artistshorthands",directory="./csvfiles/special_lists/",delimiter="?")
|
| for shorthand in artistshorthands:
|
| parts = shorthand.split(';')
|
| if parts[0] in positive_prompt:
|
| positive_prompt = positive_prompt.lower().replace(parts[0].lower(), parts[1].lower())
|
|
|
|
|
| for artist_name, category in zip(artist_names, categorylist):
|
| positive_prompt = positive_prompt.lower().replace(artist_name, category)
|
|
|
|
|
| allwords = split_prompt_to_words(positive_prompt)
|
|
|
|
|
|
|
|
|
| for word in allwords:
|
| if(word.lower() in negative_primer):
|
| index_of_word = negative_primer.index(word.lower())
|
| all_negative_words_list.append(negative_result[index_of_word])
|
|
|
| all_negative_words = ", ".join(all_negative_words_list)
|
| all_negative_words_list = all_negative_words.split(",")
|
| all_negative_words_list = [elem.strip().lower() for elem in all_negative_words_list]
|
|
|
|
|
|
|
|
|
|
|
| if enhance == True:
|
| enhancelist = ["worst quality", "low quality", "normal quality", "lowres", "low details", "oversaturated", "undersaturated", "overexposed", "underexposed", "grayscale", "bw", "bad photo", "bad photography", "bad art", "watermark", "signature", "text font", "username", "error", "logo", "words", "letters", "digits", "autograph", "trademark", "name", "blur", "blurry", "grainy", "ugly", "asymmetrical", "poorly lit", "bad shadow", "draft", "cropped", "out of frame", "cut off", "censored", "jpeg artifacts", "out of focus", "glitch", "duplicate"]
|
| all_negative_words_list += enhancelist
|
|
|
|
|
|
|
| removalchance = int((insanitylevel) * 10)
|
|
|
| for i in range(len(all_negative_words_list)):
|
| if(random.randint(1, 100)<removalchance):
|
| all_negative_words_list.pop(random.randint(0, len(all_negative_words_list)-1))
|
|
|
|
|
|
|
| all_negative_words_list = [word for word in all_negative_words_list if word not in allwords]
|
|
|
|
|
|
|
| word_count = {}
|
| for word in all_negative_words_list:
|
| if word in word_count:
|
| word_count[word] += 1
|
| else:
|
| word_count[word] = 1
|
|
|
|
|
| unique_words = []
|
| for word, count in word_count.items():
|
| if(count > 2 and remove_weights == False):
|
|
|
| counttotal = count
|
| if(counttotal > 3):
|
| counttotal = 3
|
| unique_words.append(f"({word}:1.{counttotal})")
|
| else:
|
| unique_words.append(word)
|
|
|
| negative_result = ", ".join(unique_words)
|
|
|
| negative_result += ", " + existing_negative_prompt
|
|
|
| return negative_result
|
|
|
| def enhance_positive(positive_prompt = "", amountofwords = 3):
|
|
|
|
|
| wordcombilist = csv_to_list(csvfilename="wordcombis", directory="./csvfiles/special_lists/",delimiter="?")
|
|
|
|
|
| artistlist, categorylist = load_all_artist_and_category()
|
|
|
| artist_names = [artist.strip().lower() for artist in artistlist]
|
|
|
|
|
| artistshorthands = csv_to_list(csvfilename="artistshorthands",directory="./csvfiles/special_lists/",delimiter="?")
|
| for shorthand in artistshorthands:
|
| parts = shorthand.split(';')
|
| if parts[0] in positive_prompt:
|
| positive_prompt = positive_prompt.lower().replace(parts[0].lower(), parts[1].lower())
|
|
|
|
|
| for artist_name, category in zip(artist_names, categorylist):
|
| positive_prompt = positive_prompt.lower().replace(artist_name, category)
|
|
|
| allwords = split_prompt_to_words(positive_prompt)
|
| allwords = [elem.strip().lower() for elem in allwords]
|
|
|
| newwordlist = []
|
| addwords = ""
|
| wordsfound = 0
|
|
|
|
|
|
|
| for combiset in wordcombilist:
|
|
|
| combiwords = set(combiset.split(', '))
|
| for combiword in combiwords:
|
| for word in allwords:
|
| if(word.lower() == combiword.lower()):
|
|
|
| wordsfound += 1
|
| combiwords2 = set(combiset.split(', '))
|
|
|
| combiwords2 = [word for word in combiwords2 if word not in allwords]
|
|
|
| if(combiwords2):
|
| newwordlist.append(random.choice(combiwords2))
|
|
|
|
|
|
|
| newwordlist = [word for word in newwordlist if word not in allwords]
|
| newwordlist = list(set(newwordlist))
|
|
|
|
|
| for i in range(0,amountofwords):
|
| if(len(newwordlist) > 0):
|
| addwords += ", " + newwordlist.pop(random.randrange(len(newwordlist)))
|
|
|
|
|
|
|
| return addwords
|
|
|
| def artify_prompt(insanitylevel = 5, prompt = "", artists = "all", amountofartists = "1", mode="standard", seed = -1):
|
| if(amountofartists=="random"):
|
| intamountofartists = random.randint(1,int((insanitylevel/3) + 1.20))
|
| else:
|
| intamountofartists = int(amountofartists)
|
|
|
|
|
|
|
|
|
|
|
|
|
| if(seed > 0):
|
| random.seed(seed)
|
|
|
|
|
|
|
|
|
| emptylist = []
|
| antilist = csv_to_list("antilist",emptylist , "./userfiles/",1)
|
|
|
|
|
| antilist = [s.strip().lower() for s in antilist]
|
|
|
|
|
| if artists == "wild":
|
| artists = "all (wild)"
|
|
|
|
|
|
|
| artisttypes = ["popular", "3D", "abstract", "angular", "anime" ,"architecture", "art nouveau", "art deco", "baroque", "bauhaus", "cartoon", "character", "children's illustration", "cityscape", "cinema", "clean", "cloudscape", "collage", "colorful", "comics", "cubism", "dark", "detailed", "digital", "expressionism", "fantasy", "fashion", "fauvism", "figurativism", "graffiti", "graphic design", "high contrast", "horror", "impressionism", "installation", "landscape", "light", "line drawing", "low contrast", "luminism", "magical realism", "manga", "melanin", "messy", "monochromatic", "nature", "photography", "pop art", "portrait", "primitivism", "psychedelic", "realism", "renaissance", "romanticism", "scene", "sci-fi", "sculpture", "seascape", "space", "stained glass", "still life", "storybook realism", "street art", "streetscape", "surrealism", "symbolism", "textile", "ukiyo-e", "vibrant", "watercolor", "whimsical"]
|
| artiststyleselector = ""
|
| artiststyleselectormode = "normal"
|
| artiststyleselector = random.choice(artisttypes)
|
|
|
| artistlist = []
|
|
|
| if(artists != "all (wild)" and artists != "all" and artists != "none" and artists.startswith("personal_artists") == False and artists.startswith("personal artists") == False and artists in artisttypes):
|
| artistlist = artist_category_csv_to_list("artists_and_category",artists)
|
| elif(artists.startswith("personal_artists") == True or artists.startswith("personal artists") == True):
|
| artists = artists.replace(" ","_",-1)
|
| artistlist = csv_to_list(artists,antilist,"./userfiles/")
|
| elif(artists != "none"):
|
| artistlist = csv_to_list("artists",antilist)
|
|
|
|
|
|
|
| styleslist = csv_to_list("styles", antilist,"./csvfiles/templates/",0,"?")
|
| stylessuffix = [item.split('-subject-')[1] for item in styleslist]
|
| breakstylessuffix = [item.split(',') for item in stylessuffix]
|
| allstylessuffixlist = [value for sublist in breakstylessuffix for value in sublist]
|
| allstylessuffixlist = list(set(allstylessuffixlist))
|
|
|
| artistsuffix = artist_descriptions_csv_to_list("artists_and_category")
|
| breakartiststylessuffix = [item.split(',') for item in artistsuffix]
|
| artiststylessuffixlist = [value for sublist in breakartiststylessuffix for value in sublist]
|
| artiststylessuffixlist = list(set(artiststylessuffixlist))
|
| allstylessuffixlist += artiststylessuffixlist
|
|
|
| completeprompt = ""
|
| if(common_dist(insanitylevel)):
|
| completeprompt += "-artiststyle- "
|
| completeprompt += "art by "
|
|
|
|
|
| for i in range(0,intamountofartists):
|
| if(intamountofartists > 1 and i == intamountofartists - 2):
|
| completeprompt += "-artist- and "
|
| else:
|
| completeprompt += "-artist-, "
|
|
|
| if(uncommon_dist(insanitylevel)):
|
| completeprompt += "-artistmedium-, "
|
|
|
|
|
| completeprompt += prompt
|
|
|
| if(mode.lower() == "remix"):
|
| for i in range(0,intamountofartists):
|
| completeprompt += ", " + artistsuffix.pop(artistsuffix.index(random.choice(artistsuffix)))
|
|
|
| elif(mode.lower() == "super remix turbo"):
|
| for i in range(0,intamountofartists*4):
|
| completeprompt += ", " + allstylessuffixlist.pop(allstylessuffixlist.index(random.choice(allstylessuffixlist)))
|
|
|
| else:
|
|
|
| for i in range(0,intamountofartists):
|
| completeprompt += ", -artistdescription-"
|
|
|
|
|
|
|
|
|
| while ("-artist-" in completeprompt):
|
|
|
| completeprompt = replacewildcard(completeprompt,5,"-artist-", artistlist,"","",artiststyleselector)
|
|
|
|
|
| return completeprompt
|
|
|
|
|
| def flufferizer(prompt = "", amountoffluff = "dynamic", seed = -1, reverse_polarity = False):
|
| if(amountoffluff == "none"):
|
| return prompt
|
|
|
|
|
|
|
|
|
|
|
| if(seed > 0):
|
| random.seed(seed)
|
|
|
| if(reverse_polarity):
|
| flufferlist = csv_to_list("antifluff")
|
| else:
|
| flufferlist = csv_to_list("fluff")
|
|
|
|
|
| minfluff = 4
|
| maxfluff = 6
|
|
|
|
|
|
|
| if(amountoffluff == "dynamic"):
|
|
|
| if(len(prompt) < 150):
|
| amountoffluff = "long"
|
| elif(len(prompt) < 250):
|
| amountoffluff = "medium"
|
| else:
|
| amountoffluff = "short"
|
|
|
| if(amountoffluff == "long"):
|
| minfluff = 8
|
| maxfluff = 12
|
| if(amountoffluff == "medium"):
|
| minfluff = 5
|
| maxfluff = 8
|
|
|
| for i in range(0,random.randint(minfluff, maxfluff)):
|
| prompt += ", " + flufferlist.pop(flufferlist.index(random.choice(flufferlist)))
|
|
|
| return prompt
|
|
|
|
|
|
|
|
|
| def replace_match(match):
|
|
|
| words = match.group(0)[1:-1].split('|')
|
| return words[0]
|
|
|
| def cleanup(completeprompt, advancedprompting, insanitylevel = 5):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| if(advancedprompting==False):
|
| hybridpattern = r'\[\w+\|\w+\]'
|
|
|
| completeprompt = re.sub(hybridpattern, replace_match, completeprompt)
|
|
|
|
|
| completeprompt = completeprompt.replace("[", " ")
|
| completeprompt = completeprompt.replace("]", " ")
|
| completeprompt = completeprompt.replace("|", " ")
|
|
|
|
|
| completeprompt = re.sub(r'\(\:\d+\.\d+\)', '', completeprompt)
|
|
|
|
|
| if(insanitylevel < 7):
|
| completeprompt = completeprompt.replace("DayGlo", " ")
|
| completeprompt = completeprompt.replace("fluorescent", " ")
|
|
|
|
|
| completeprompt = re.sub(r'\[ ', '[', completeprompt)
|
| completeprompt = re.sub(r'\[,', '[', completeprompt)
|
| completeprompt = re.sub(r' \]', ']', completeprompt)
|
| completeprompt = re.sub(r' \|', '|', completeprompt)
|
|
|
|
|
| completeprompt = re.sub(r'\( ', '(', completeprompt)
|
| completeprompt = re.sub(r' \(', '(', completeprompt)
|
| completeprompt = re.sub(r'\) ', ')', completeprompt)
|
| completeprompt = re.sub(r' \)', ')', completeprompt)
|
|
|
| completeprompt = re.sub(' :', ':', completeprompt)
|
| completeprompt = re.sub(',::', '::', completeprompt)
|
| completeprompt = re.sub(',:', ':', completeprompt)
|
|
|
| completeprompt = re.sub(',,', ', ', completeprompt)
|
| completeprompt = re.sub(',,', ', ', completeprompt)
|
| completeprompt = re.sub(',,,', ', ', completeprompt)
|
| completeprompt = re.sub(', ,', ',', completeprompt)
|
| completeprompt = re.sub(' , ', ', ', completeprompt)
|
| completeprompt = re.sub(' ,', ',', completeprompt)
|
| completeprompt = re.sub(' ,', ',', completeprompt)
|
| completeprompt = re.sub(' ,', ',', completeprompt)
|
| completeprompt = re.sub(r',\(', ', (', completeprompt)
|
|
|
|
|
|
|
| while " " in completeprompt:
|
| completeprompt = re.sub(' ', ' ', completeprompt)
|
| completeprompt = re.sub('a The', 'The', completeprompt)
|
| completeprompt = re.sub('the the', 'the', completeprompt)
|
| completeprompt = re.sub(', ,', ',', completeprompt)
|
| completeprompt = re.sub(',,', ',', completeprompt)
|
|
|
| completeprompt = re.sub(', of a', ' of a', completeprompt)
|
| completeprompt = re.sub('of a,', 'of a', completeprompt)
|
| completeprompt = re.sub('of a of a', 'of a', completeprompt)
|
| completeprompt = re.sub(' a a ', ' a ', completeprompt)
|
|
|
|
|
| completeprompt = re.sub(' a a', ' an a', completeprompt)
|
| completeprompt = re.sub(' a e', ' an e', completeprompt)
|
| completeprompt = re.sub(' a i', ' an i', completeprompt)
|
| completeprompt = re.sub(' a u', ' an u', completeprompt)
|
| completeprompt = re.sub(' a o', ' an o', completeprompt)
|
|
|
|
|
| completeprompt = re.sub('art art', 'art', completeprompt)
|
| completeprompt = re.sub('Art art', 'art', completeprompt)
|
| completeprompt = re.sub('lighting lighting', 'lighting', completeprompt)
|
| completeprompt = re.sub('Lighting lighting', 'lighting', completeprompt)
|
| completeprompt = re.sub('light lighting', 'light', completeprompt)
|
| completeprompt = re.sub('-artiststyle- art,', '', completeprompt)
|
| completeprompt = re.sub('-artiststyle- art', '', completeprompt)
|
| completeprompt = re.sub('-artiststyle-', '', completeprompt)
|
| completeprompt = re.sub('-artistmedium-', '', completeprompt)
|
| completeprompt = re.sub('-artistdescription-', '', completeprompt)
|
| completeprompt = re.sub('- art ', '', completeprompt)
|
|
|
| completeprompt = re.sub('anime anime', 'anime', completeprompt)
|
| completeprompt = re.sub('anime, anime', 'anime', completeprompt)
|
|
|
| completeprompt = re.sub('shot shot', 'shot', completeprompt)
|
|
|
|
|
| completeprompt = re.sub('a his', 'his', completeprompt)
|
| completeprompt = re.sub('a her', 'her', completeprompt)
|
| completeprompt = re.sub('they is', 'they are', completeprompt)
|
| completeprompt = re.sub('they has', 'they have', completeprompt)
|
|
|
|
|
| completeprompt = re.sub('- shaped', '-shaped', completeprompt)
|
| completeprompt = re.sub('echa- ', 'echa-', completeprompt)
|
| completeprompt = re.sub('style -', 'style-', completeprompt)
|
| completeprompt = re.sub(', as a', ' as a', completeprompt)
|
|
|
|
|
|
|
| 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)
|
|
|
|
|
|
|
| completeprompt = re.sub('fs ', 'ves ', completeprompt)
|
| completeprompt = re.sub('fs,', 'ves,', completeprompt)
|
| completeprompt = re.sub('sss ', 'ss ', completeprompt)
|
| completeprompt = re.sub('sss,', 'ss,', completeprompt)
|
| completeprompt = re.sub(' Mans', ' Men,', completeprompt)
|
| completeprompt = re.sub(' mans', ' men', completeprompt)
|
| completeprompt = re.sub(' Womans,', ' Women', completeprompt)
|
| completeprompt = re.sub(' womans,', ' women,', completeprompt)
|
| completeprompt = re.sub(r'\(Mans', '(Men,', completeprompt)
|
| completeprompt = re.sub(r'\(mans', '(men', completeprompt)
|
| completeprompt = re.sub(r'\(Womans', '(Women', completeprompt)
|
| completeprompt = re.sub(r'\(womans', '(women', completeprompt)
|
|
|
| completeprompt = re.sub('-sameothersubject-', 'it', completeprompt)
|
| completeprompt = re.sub('-samehumansubject-', 'the person', completeprompt)
|
|
|
|
|
| completeprompt = re.sub(r'(?<!\()\s?\(', ' (', completeprompt)
|
| completeprompt = re.sub(r'\)(?![\s)])', ') ', completeprompt)
|
|
|
|
|
|
|
|
|
| completeprompt = completeprompt.replace(' . ', '. ')
|
| completeprompt = completeprompt.replace(', . ', '. ')
|
| completeprompt = completeprompt.replace(',. ', '. ')
|
| completeprompt = completeprompt.replace('., ', '. ')
|
| completeprompt = completeprompt.replace('. . ', '. ')
|
|
|
| completeprompt = completeprompt.strip(", ")
|
|
|
| return completeprompt
|
|
|
| def custom_or(values, insanitylevel = 5):
|
|
|
| last_element = values[-1]
|
| first_element = values[0]
|
|
|
|
|
| if last_element in ['always', 'common', 'normal','uncommon', 'rare', 'legendary','unique', 'extraordinary', 'novel', 'never']:
|
|
|
| if not(chance_roll(insanitylevel, last_element)):
|
| return first_element
|
|
|
| else:
|
| values.remove(first_element)
|
| values.remove(last_element)
|
| selected_value = random.choice(values)
|
| return selected_value
|
|
|
|
|
| else:
|
|
|
| selected_value = random.choice(values)
|
| return selected_value
|
|
|
| def parse_custom_functions(completeprompt, insanitylevel = 5):
|
|
|
|
|
|
|
| ORpattern = r'OR\((.*?)\)'
|
| ORbasesearch = 'OR('
|
|
|
|
|
|
|
| while re.findall(ORpattern, completeprompt):
|
|
|
|
|
|
|
| startofOR = completeprompt.rfind(ORbasesearch)
|
|
|
| lastpartofcompleteprompt = completeprompt[startofOR:]
|
|
|
|
|
| matches = re.findall(ORpattern, lastpartofcompleteprompt)
|
|
|
|
|
| matches.sort(key=len)
|
|
|
|
|
| match = matches[0]
|
|
|
| or_replacement = ""
|
|
|
|
|
|
|
| arguments = [arg.strip() for arg in match.split(';')]
|
|
|
|
|
|
|
|
|
|
|
|
|
| or_replacement = custom_or(arguments, insanitylevel)
|
| completematch = 'OR(' + match + ')'
|
| completeprompt = completeprompt.replace(completematch, or_replacement)
|
|
|
|
|
|
|
| return completeprompt
|
|
|
| def split_prompt_to_words(text):
|
|
|
|
|
|
|
| text = re.sub(r'[^a-zA-Z,-]', ' ', text)
|
|
|
|
|
| words = re.split(r'[,\s]+', text)
|
|
|
| words = [word.strip() for word in words]
|
|
|
|
|
| words = [word for word in words if word]
|
|
|
|
|
| listsinglewords = list(set(words))
|
|
|
|
|
| if ',' in text:
|
| allwords = text.split(',')
|
| else:
|
| allwords = [text]
|
|
|
| words = [word.strip().lower() for word in allwords]
|
|
|
|
|
| listwords = list(set(filter(None, words)))
|
|
|
| totallist = listsinglewords + listwords
|
|
|
| totallist = list(set(filter(None, totallist)))
|
|
|
| return totallist
|
|
|
| def one_button_superprompt(insanitylevel = 5, prompt = "", seed = -1, override_subject = "" , override_outfit = "", chosensubject ="", gender = "", restofprompt = "", superpromptstyle = "", setnewtokens = 0, remove_bias = True):
|
|
|
| if(seed <= 0):
|
| seed = random.randint(1,1000000)
|
|
|
| done = False
|
| load_models()
|
|
|
| superprompterstyleslist = csv_to_list("superprompter_styles")
|
| descriptorlist = csv_to_list("descriptors")
|
| devmessagessuperpromptlist = csv_to_list("devmessages_superprompt")
|
|
|
| usestyle = False
|
| if(superpromptstyle != "" and superpromptstyle != "all"):
|
| usestyle = True
|
|
|
| restofprompt = restofprompt.lower()
|
| question = ""
|
|
|
|
|
|
|
|
|
| allLoRA = re.findall(r"<[^>]+>", prompt)
|
|
|
|
|
| prompt = re.sub(r"<[^>]+>", "", prompt)
|
| override_subject = re.sub(r"<[^>]+>", "", override_subject)
|
|
|
| temperature_lookup = {
|
| 1: 0.01,
|
| 2: 0.1,
|
| 3: 0.3,
|
| 4: 0.5,
|
| 5: 0.6,
|
| 6: 0.7,
|
| 7: 1.0,
|
| 8: 2.5,
|
| 9: 5.0,
|
| 10: 10.0
|
| }
|
|
|
| max_new_tokens_lookup = {
|
| 1: 45,
|
| 2: 45,
|
| 3: 50,
|
| 4: 55,
|
| 5: 60,
|
| 6: 70,
|
| 7: 90,
|
| 8: 100,
|
| 9: 150,
|
| 10: 255
|
| }
|
|
|
| top_p_lookup = {
|
| 1: 0.1,
|
| 2: 1.0,
|
| 3: 1.3,
|
| 4: 1.5,
|
| 5: 1.6,
|
| 6: 1.75,
|
| 7: 2.0,
|
| 8: 3.0,
|
| 9: 5.0,
|
| 10: 15.0
|
| }
|
|
|
| chosensubject_lookup = {
|
| "humanoid": "fantasy character",
|
| "manwomanrelation": "person",
|
| "manwomanmultiple": "people",
|
| "firstname": "",
|
| "job": "person",
|
| "fictional": "fictional character",
|
| "non fictional": "person",
|
| "human": "person",
|
| "animal": "animal",
|
| "animal as human": "human creature",
|
| "landscape": "landscape",
|
| "concept": "concept",
|
| "event": "concept",
|
| "concept": "concept",
|
| "poemline": "concept",
|
| "songline": "concept",
|
| "cardname": "concept",
|
| "episodetitle": "concept",
|
| "generic objects": "object",
|
| "vehicles": "vehicle",
|
| "food": "food",
|
| "building": "building",
|
| "space": "space",
|
| "flora": "nature",
|
| }
|
|
|
| j = 0
|
| temperature = temperature_lookup.get(insanitylevel, 0.5)
|
| if(setnewtokens < 1):
|
| max_new_tokens = max_new_tokens_lookup.get(insanitylevel, 70)
|
| else:
|
| max_new_tokens = setnewtokens
|
| top_p = top_p_lookup.get(insanitylevel, 1.6)
|
| subject_to_generate = chosensubject_lookup.get(chosensubject, "")
|
|
|
| translation_table_remove_stuff = str.maketrans('', '', '.,:()<>|[]"" ')
|
| translation_table_remove_numbers = str.maketrans('', '', '0123456789:()<>|[]""')
|
|
|
|
|
| possible_words_to_check = override_subject.lower().split() + override_outfit.lower().split()
|
|
|
| words_to_check = []
|
| words_to_remove = ['subject', 'solo', '1girl', '1boy']
|
| for word in possible_words_to_check:
|
| word = word.translate(translation_table_remove_stuff)
|
|
|
| if word not in words_to_remove:
|
| if (not word.startswith("-") and not word.endswith("-")) and (not word.startswith("_") and not word.endswith("_")) :
|
| words_to_check.append(word)
|
|
|
|
|
| if chosensubject not in ("humanoid","firstname","job","fictional","non fictional","human"):
|
| gender = ""
|
| if(superpromptstyle == "" or superpromptstyle == "all"):
|
| if "fantasy" in restofprompt or "d&d" in restofprompt or "dungeons and dragons" in restofprompt or "dungeons and dragons" in restofprompt:
|
| superpromptstyle = "fantasy style"
|
| elif "sci-fi" in restofprompt or "scifi" in restofprompt or "science fiction" in restofprompt:
|
| superpromptstyle = random.choice(["sci-fi style","futuristic"])
|
| elif "cyberpunk" in restofprompt:
|
| superpromptstyle = "cyberpunk"
|
| elif "horror" in restofprompt:
|
| superpromptstyle = "horror themed"
|
| elif "evil" in restofprompt:
|
| superpromptstyle = "evil"
|
| elif "cinestill" in restofprompt or "movie still" in restofprompt or "cinematic" in restofprompt or "epic" in restofprompt:
|
| superpromptstyle = random.choice(["cinematic","epic"])
|
| elif "fashion" in restofprompt:
|
| superpromptstyle = random.choice(["elegant","glamourous"])
|
| elif "cute" in restofprompt or "adorable" in restofprompt or "kawaii" in restofprompt:
|
| superpromptstyle = random.choice(["cute","adorable", "kawaii"])
|
|
|
| else:
|
| superpromptstyle = random.choice(superprompterstyleslist)
|
|
|
| if(words_to_check):
|
| question += "Make sure the subject is used: " + ', '.join(words_to_check) + " \n"
|
|
|
| imagetype = ""
|
| if "portrait" in restofprompt:
|
| imagetype = "a portrait"
|
| elif "painting" in restofprompt:
|
| imagetype = "a painting"
|
| elif "digital art" in restofprompt:
|
| imagetype = "a digital artwork"
|
| elif "concept" in restofprompt:
|
| imagetype = "concept art"
|
| elif "pixel" in restofprompt:
|
| imagetype = "pixel art"
|
| elif "game" in restofprompt:
|
| imagetype = "video game artwork"
|
|
|
| if imagetype != "" and (normal_dist(insanitylevel) or usestyle == True):
|
| question += "Expand the following " + gender + " " + subject_to_generate + " prompt to describe " + superpromptstyle + " " + imagetype + ": "
|
| elif imagetype != "":
|
| question += "Expand the following " + gender + " " + subject_to_generate + " prompt to describe " + imagetype + ": "
|
| elif(normal_dist(insanitylevel) or usestyle == True):
|
| question += "Expand the following " + gender + " " + subject_to_generate + " prompt to make it more " + superpromptstyle
|
| else:
|
| question += "Expand the following " + gender + " " + subject_to_generate + " prompt to add more detail: "
|
|
|
|
|
|
|
| prompt = prompt.translate(translation_table_remove_numbers)
|
|
|
| while done == False:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| superpromptresult = answer(input_text=question + prompt, max_new_tokens=max_new_tokens, repetition_penalty=2.0, temperature=temperature, top_p=top_p, top_k=10, seed=seed)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| period_index = superpromptresult.rfind('.')
|
| comma_index = superpromptresult.rfind(',')
|
|
|
|
|
| cut_off_index = max(period_index, comma_index)
|
|
|
|
|
| if cut_off_index != -1:
|
| superpromptresult = superpromptresult[:cut_off_index + 1]
|
| else:
|
| superpromptresult = superpromptresult
|
|
|
|
|
|
|
| if(common_dist(insanitylevel) and remove_bias):
|
| superpromptresult = remove_superprompt_bias(superpromptresult=superpromptresult, insanitylevel=insanitylevel, override_outfit=override_outfit)
|
|
|
|
|
|
|
|
|
| i = 0
|
| for word in words_to_check:
|
| if word not in superpromptresult.lower() and word != "subject":
|
| i += 1
|
|
|
|
|
| if(i==0 or j == 20 or insanitylevel >= 9):
|
| done = True
|
|
|
| else:
|
| seed += 100
|
| j += 1
|
| if(temperature < 0.5):
|
| temperature += 0.05 + round((1/random.randint(15,25)),2)
|
| else:
|
| temperature -= 0.1
|
|
|
| if(top_p < 1.0):
|
| top_p += 0.2 + round((1/random.randint(25,35)),2)
|
| else:
|
| top_p -= 0.3
|
| max_new_tokens += 3
|
| print("")
|
| print(random.choice(devmessagessuperpromptlist) + "... Retrying...")
|
| print("")
|
|
|
|
|
|
|
| superpromptresult += " " + " ".join(allLoRA)
|
|
|
| return superpromptresult
|
|
|
| def remove_superprompt_bias(superpromptresult = "", insanitylevel = 5, override_outfit = ""):
|
|
|
| if(" green eye" in superpromptresult):
|
| eyecolorslist = csv_to_list("eyecolors")
|
| eyecolorslist = [x for x in eyecolorslist if not x.startswith('-')]
|
| neweyecolor = " " + random.choice(eyecolorslist).lower() + " eye"
|
|
|
| superpromptresult = superpromptresult.replace(" green eye", neweyecolor)
|
|
|
| if(" white gown" in superpromptresult
|
| or " white dress" in superpromptresult
|
| or " black suit" in superpromptresult):
|
| colorcombinationslist = csv_to_list("colorcombinations")
|
| colorcombinationslist = [x for x in colorcombinationslist if not x.startswith('-')]
|
| colorslist = csv_to_list("colors")
|
| colorslist = [x for x in colorslist if not x.startswith('-')]
|
| if(normal_dist(insanitylevel)):
|
| newcolordress = " " + random.choice(colorcombinationslist).lower() + " dress"
|
| newcolorgown = " " + random.choice(colorcombinationslist).lower() + " gown"
|
| newcolorsuit = " " + random.choice(colorcombinationslist).lower() + " suit"
|
| else:
|
| newcolordress = " " + random.choice(colorslist).lower() + " dress"
|
| newcolorgown = " " + random.choice(colorslist).lower() + " gown"
|
| newcolorsuit = " " + random.choice(colorcombinationslist).lower() + " suit"
|
|
|
|
|
|
|
| superpromptresult = superpromptresult.replace(" white dress", newcolordress)
|
| superpromptresult = superpromptresult.replace(" white gown", newcolorgown)
|
| superpromptresult = superpromptresult.replace(" black suit", newcolorsuit)
|
| if(" gown" in superpromptresult
|
| or " dress" in superpromptresult
|
| or " suit" in superpromptresult
|
| and not "gown" in override_outfit
|
| and not "dress" in override_outfit
|
| and not "suit " in override_outfit
|
| and not " dressed" in superpromptresult
|
| and not " suited" in superpromptresult):
|
| if(override_outfit == ""):
|
| outfitslist = csv_to_list("outfits")
|
| outfitslist = [x for x in outfitslist if not x.startswith('-')]
|
| newoutfit = " " + random.choice(outfitslist).lower()
|
| else:
|
| newoutfit = " " + override_outfit
|
| superpromptresult = superpromptresult.replace(" dress", newoutfit)
|
| superpromptresult = superpromptresult.replace(" gown", newoutfit)
|
| superpromptresult = superpromptresult.replace(" suit", newoutfit)
|
| if(" sleek " in superpromptresult):
|
|
|
| descriptorslist = csv_to_list("descriptors")
|
| descriptorslist = [x for x in descriptorslist if not x.startswith('-')]
|
| newdescriptor = " " + random.choice(descriptorslist).lower() + " "
|
|
|
|
|
| superpromptresult = superpromptresult.replace(" sleek ", newdescriptor)
|
|
|
|
|
| if("lush green meadow" in superpromptresult):
|
|
|
| backgroundlist = csv_to_list("backgrounds")
|
| backgroundlist = [x for x in backgroundlist if not x.startswith('-')]
|
| newbackground = random.choice(backgroundlist).lower()
|
|
|
|
|
| superpromptresult = superpromptresult.replace("lush green meadow", newbackground)
|
|
|
| if("long, flowing hair" in superpromptresult):
|
|
|
| hairstylelist = csv_to_list("hairstyles2")
|
| hairstylelist = [x for x in hairstylelist if not x.startswith('-')]
|
| newhairstyle = random.choice(hairstylelist).lower()
|
|
|
|
|
| superpromptresult = superpromptresult.replace("long, flowing hair", newhairstyle)
|
|
|
| return superpromptresult
|
|
|
| def replace_user_wildcards(completeprompt):
|
| for i in range(0,10):
|
| user_wildcards_list = re.findall(r'-[\w_]*-', completeprompt)
|
| for user_wildcard in user_wildcards_list:
|
| user_wildcard_clean = user_wildcard.strip("-")
|
| wordlist = csv_to_list(csvfilename=user_wildcard_clean, directory="./userfiles/wildcards/")
|
| if(wordlist):
|
| completeprompt = completeprompt.replace(user_wildcard, random.choice(wordlist),1)
|
|
|
| return completeprompt
|
|
|
| def translate_main_subject(main_subject=""):
|
| subjecttype_lookup = {
|
| "all": ["all", "all"],
|
| "random": ["all", "all"],
|
| "--- all": ["all", "all"],
|
| "------all": ["all", "all"],
|
| "------ all": ["all", "all"],
|
|
|
| "object - all": ["object", "all"],
|
| "--- object - all": ["object", "all"],
|
| "object": ["object", "all"],
|
| "object - generic": ["object", "all"],
|
| "generic object": ["object", "generic objects"],
|
| "generic objects": ["object", "generic objects"],
|
| "genericobject": ["object", "generic objects"],
|
| "genericobjects": ["object", "generic objects"],
|
| "object - vehicle": ["object", "vehicles"],
|
| "vehicle": ["object", "vehicles"],
|
| "vehicles": ["object", "vehicles"],
|
| "object - food": ["object", "food"],
|
| "food": ["object", "food"],
|
| "object - building": ["object", "buildings"],
|
| "building": ["object", "buildings"],
|
| "buildings": ["object", "buildings"],
|
| "object - space": ["object", "space"],
|
| "space": ["object", "space"],
|
| "object - flora": ["object", "flora"],
|
| "flora": ["object", "flora"],
|
| "nature": ["object", "flora"],
|
|
|
| "animal - all": ["animal", "all"],
|
| "--- animal - all": ["animal", "all"],
|
| "animal": ["animal", "all"],
|
| "animals": ["animal", "all"],
|
| "animal - generic": ["animal", "generic animal"],
|
| "generic animal": ["animal", "generic animal"],
|
| "generic animals": ["animal", "generic animal"],
|
| "genericanimal": ["animal", "generic animal"],
|
| "genericanimals": ["animal", "generic animal"],
|
| "animal - cat": ["animal", "cat"],
|
| "cat": ["animal", "cat"],
|
| "cats": ["animal", "cat"],
|
| "animal - dog": ["animal", "dog"],
|
| "dog": ["animal", "dog"],
|
| "dogs": ["animal", "dog"],
|
| "animal - bird": ["animal", "bird"],
|
| "bird": ["animal", "bird"],
|
| "birds": ["animal", "bird"],
|
| "animal - insect": ["animal", "insect"],
|
| "insect": ["animal", "insect"],
|
| "insects": ["animal", "insect"],
|
| "animal - pokémon": ["animal", "pokemon"],
|
| "animal - pokemon": ["animal", "pokemon"],
|
| "pokemon": ["animal", "pokemon"],
|
| "pokemons": ["animal", "pokemon"],
|
| "pokémon": ["animal", "pokemon"],
|
| "pokémons": ["animal", "pokemon"],
|
| "animal - marine life": ["animal", "marine life"],
|
| "marine life": ["animal", "marine life"],
|
| "marinelife": ["animal", "marine life"],
|
| "ocean gang": ["animal", "marine life"],
|
| "oceangang": ["animal", "marine life"],
|
| "marine": ["animal", "marine life"],
|
|
|
| "human - all": ["humanoid", "all"],
|
| "--- human - all": ["humanoid", "all"],
|
| "human": ["humanoid", "all"],
|
| "humans": ["humanoid", "all"],
|
| "person": ["humanoid", "all"],
|
| "persons": ["humanoid", "all"],
|
| "people": ["humanoid", "all"],
|
| "man": ["humanoid", "all"],
|
| "woman": ["humanoid", "all"],
|
| "male": ["humanoid", "all"],
|
| "female": ["humanoid", "all"],
|
| "guy": ["humanoid", "all"],
|
| "girl": ["humanoid", "all"],
|
| "human - generic": ["humanoid", "human"],
|
| "generic human": ["humanoid", "human"],
|
| "generic humans": ["humanoid", "human"],
|
| "generichuman": ["humanoid", "human"],
|
| "generichumans": ["humanoid", "human"],
|
| "human - relations": ["humanoid","manwomanrelation"],
|
| "relations": ["humanoid","manwomanrelation"],
|
| "human relations": ["humanoid","manwomanrelation"],
|
| "humanrelations": ["humanoid","manwomanrelation"],
|
| "human - celebrity": ["humanoid","non fictional"],
|
| "celebrities": ["humanoid","non fictional"],
|
| "celebrity": ["humanoid","non fictional"],
|
| "human - fictional": ["humanoid","fictional"],
|
| "fictional characters": ["humanoid","fictional"],
|
| "fictional character": ["humanoid","fictional"],
|
| "fictionalcharacters": ["humanoid","fictional"],
|
| "fictionalcharacter": ["humanoid","fictional"],
|
| "fictional": ["humanoid","fictional"],
|
| "human - humanoids": ["humanoid","humanoid"],
|
| "humanoid": ["humanoid","humanoid"],
|
| "humanoids": ["humanoid","humanoid"],
|
| "human - job/title": ["humanoid","job"],
|
| "job": ["humanoid","job"],
|
| "jobs": ["humanoid","job"],
|
| "title": ["humanoid","job"],
|
| "titles": ["humanoid","job"],
|
| "human - first name": ["humanoid","firstname"],
|
| "first name": ["humanoid","firstname"],
|
| "firstname": ["humanoid","firstname"],
|
| "human - multiple": ["humanoid","manwomanmultiple"],
|
| "multiplehumans": ["humanoid","manwomanmultiple"],
|
| "multiple": ["humanoid","manwomanmultiple"],
|
|
|
| "landscape - all": ["landscape","all"],
|
| "--- landscape - all": ["landscape","all"],
|
| "landscape": ["landscape","all"],
|
| "landscapes": ["landscape","all"],
|
| "landscape - generic": ["landscape","location"],
|
| "landscape generic": ["landscape","location"],
|
| "landscapes generic": ["landscape","location"],
|
| "landscapegeneric": ["landscape","location"],
|
| "landscapesgeneric": ["landscape","location"],
|
| "genericlandscape": ["landscape","location"],
|
| "generic landscape": ["landscape","location"],
|
| "genericlandscapes": ["landscape","location"],
|
| "generic landscapes": ["landscape","location"],
|
| "landscape - fantasy": ["landscape","fantasy location"],
|
| "landscape fantasy": ["landscape","fantasy location"],
|
| "landscapefantasy": ["landscape","fantasy location"],
|
| "fantasylandscape": ["landscape","fantasy location"],
|
| "fantasy landscape": ["landscape","fantasy location"],
|
| "landscape - videogame": ["landscape","videogame location"],
|
| "landscape videogame": ["landscape","videogame location"],
|
| "landscapevideogame": ["landscape","videogame location"],
|
| "videogamelandscape": ["landscape","videogame location"],
|
| "videogame landscape": ["landscape","videogame location"],
|
| "landscape - sci-fi": ["landscape","sci-fi location"],
|
| "landscape sci-fi": ["landscape","sci-fi location"],
|
| "landscapesci-fi": ["landscape","sci-fi location"],
|
| "sci-filandscape": ["landscape","sci-fi location"],
|
| "sci-fi landscape": ["landscape","sci-fi location"],
|
| "landscape - scifi": ["landscape","sci-fi location"],
|
| "landscape scifi": ["landscape","sci-fi location"],
|
| "landscapescifi": ["landscape","sci-fi location"],
|
| "scifilandscape": ["landscape","sci-fi location"],
|
| "scifi landscape": ["landscape","sci-fi location"],
|
| "landscape - biome": ["landscape","biome"],
|
| "landscape biome": ["landscape","biome"],
|
| "landscapebiome": ["landscape","biome"],
|
| "biomelandscape": ["landscape","biome"],
|
| "biome landscape": ["landscape","biome"],
|
| "biome": ["landscape","biome"],
|
| "biomes": ["landscape","biome"],
|
| "landscape - city": ["landscape","city"],
|
| "landscape city": ["landscape","city"],
|
| "landscapecity": ["landscape","city"],
|
| "citylandscape": ["landscape","city"],
|
| "city landscape": ["landscape","city"],
|
| "city": ["landscape","city"],
|
| "cities": ["landscape","city"],
|
|
|
| "concept - all": ["concept", "all"],
|
| "--- concept - all": ["concept", "all"],
|
| "concept": ["concept", "all"],
|
| "concepts": ["concept", "all"],
|
| "concept - event": ["concept", "event"],
|
| "event": ["concept", "event"],
|
| "events": ["concept", "event"],
|
| "concept - the x of y": ["concept", "concept"],
|
| "xofy": ["concept", "concept"],
|
| "thexofy": ["concept", "concept"],
|
| "concept - poem lines": ["concept", "poemline"],
|
| "poem": ["concept", "poemline"],
|
| "poems": ["concept", "poemline"],
|
| "poemline": ["concept", "poemline"],
|
| "poemlines": ["concept", "poemline"],
|
| "concept - song lines": ["concept", "songline"],
|
| "song": ["concept", "songline"],
|
| "songs": ["concept", "songline"],
|
| "songline": ["concept", "songline"],
|
| "songlines": ["concept", "songline"],
|
| "concept - card names": ["concept", "cardname"],
|
| "cards": ["concept", "cardname"],
|
| "card": ["concept", "cardname"],
|
| "cardgame": ["concept", "cardname"],
|
| "cardgames": ["concept", "cardname"],
|
| "cardname": ["concept", "cardname"],
|
| "cardnames": ["concept", "cardname"],
|
| "concept - episode titles": ["concept", "episodetitle"],
|
| "episode": ["concept", "episodetitle"],
|
| "episodes": ["concept", "episodetitle"],
|
| "episodetitle": ["concept", "episodetitle"],
|
| "episodetitles": ["concept", "episodetitle"],
|
| "tv": ["concept", "episodetitle"],
|
| "tv shows": ["concept", "episodetitle"],
|
| "tvshows": ["concept", "episodetitle"],
|
| "concept - mixer": ["concept", "conceptmixer"],
|
| "concept mixer": ["concept", "conceptmixer"],
|
| "conceptmixer": ["concept", "conceptmixer"],
|
| "mixer": ["concept", "conceptmixer"],
|
| }
|
|
|
| subjecttype = subjecttype_lookup.get(main_subject, ["all", "all"])
|
|
|
| return subjecttype |