diff --git a/build_dynamic_prompt.py b/build_dynamic_prompt.py index 8b7d4df..4cf8469 100644 --- a/build_dynamic_prompt.py +++ b/build_dynamic_prompt.py @@ -1544,7 +1544,7 @@ def build_dynamic_prompt(insanitylevel = 5, forcesubject = "all", artists = "all # start tokinator here if(thetokinatormode == True): - tokinatorsubtype = ["personification", "human form", "object", "landscape", "OR(creature;beast;animal;myth;concept;world;planet)", "building", "location", "shape", "-token-"] + tokinatorsubtype = ["personification", "human form", "object", "landscape", "OR(creature;beast;animal;myth;concept;world;planet)", "building", "location", "shape", "being", "-token-"] if(chance_roll(insanitylevel,"normal")): if(chance_roll(insanitylevel,"normal")): completeprompt += "(OR(;-imagetypequality-;uncommon) OR(-imagetype-;-othertype-;rare):1.3) " @@ -1596,6 +1596,15 @@ def build_dynamic_prompt(insanitylevel = 5, forcesubject = "all", artists = "all if(imagetype == "all" and chance_roll(insanitylevel, imagetypechance) and amountofimagetypes <= 1): amountofimagetypes = 1 + + # on lower insanity levels, almost force this + if(imagetype == "all" and insanitylevel <= 3 and amountofimagetypes <= 1 and random.randint(0,1)== 0): + amountofimagetypes = 1 + + if(imagetype == "all" and insanitylevel <= 2 and amountofimagetypes <= 1): + amountofimagetypes = 1 + + @@ -1615,9 +1624,11 @@ def build_dynamic_prompt(insanitylevel = 5, forcesubject = "all", artists = "all - if(random.randint(0,4) < 4): + if(random.randint(0,4) < 4 and insanitylevel > 3 ): # woops, never to this as wildcards. We need to know as early as possible wether something is a photo. Lets put it back! completeprompt += " " + random.choice(imagetypelist) + ", " + elif(random.randint(0,1) == 0 and insanitylevel <= 3): + completeprompt += " " + random.choice(imagetypelist) + ", " else: if(amountofimagetypes < 2 and random.randint(0,1) == 0): partlystylemode = True @@ -3805,6 +3816,12 @@ def build_dynamic_negative(positive_prompt = "", insanitylevel = 0, enhance = Fa artist_names = [artist.strip().lower() for artist in artistlist] # note, should we find a trick for some shorthands of artists?? + 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) diff --git a/csvfiles/descriptors.csv b/csvfiles/descriptors.csv index 6b47a72..a971b11 100644 --- a/csvfiles/descriptors.csv +++ b/csvfiles/descriptors.csv @@ -1,6 +1,7 @@ -space- -age- -agecalculator- +-material--plated 16-Bit 1600'S 1700'S @@ -535,6 +536,7 @@ Stupid Sturdy Sublime Substantive +Sultans Superficial Supernatural Supersized diff --git a/csvfiles/special_lists/artistshorthands.csv b/csvfiles/special_lists/artistshorthands.csv new file mode 100644 index 0000000..7b9fed5 --- /dev/null +++ b/csvfiles/special_lists/artistshorthands.csv @@ -0,0 +1,53 @@ +van gogh;Vincent van Gogh +Amano;Yoshitaka Amano +Asano;Inio Asano +Bagshaw;Tom Bagshaw +Beksinski;Zdzisław Beksiński +Bekzinski;Zdzisław Beksiński +Zdzislaw;Zdzisław Beksiński +Burton;Tim Burton +Cezanne;Paul Cézanne +Cushart;Krenz Cushart +Dittmann;Anna Dittmann +Durer;Albrecht Dürer +Faulkner;Iain Faulkner +Faust;Lauren Faust +Gaudi;Antoni Gaudí +Giger;H. R. (Hans Ruedi) Giger +Griffiths;Carne Griffiths +Grimm;Brothers Grimm +Groening;Matt Groening +Herge;Hergé +Hokusai;Katsushika Hokusai +Kahlo;Frida Kahlo +Kubrick;Stanley Kubrick +Lecouffe Deharme;Bastien Lecouffe-Deharme +LecouffeDeharme;Bastien Lecouffe-Deharme +Leyendecker;J.C. Leyendecker +Lichtenstein;Roy Lichtenstein +Lovecraft;H.P. Lovecraft +McFarlane;Todd McFarlane +Miyazaki;Hayao Miyazaki +Möbius;Moebius +Mucha;Alphonse Mucha +Mumford;Dan Mumford +OKeeffe;Georgia O'Keeffe +Picasso;Pablo Picasso +Pollock;Jackson Pollock +Rubens;Peter Paul Rubens +Rutkowski;Greg Rutkowski +Shimamoto;Shozo Shimamoto +Shinkai;Makoto Shinkhai +Tartakovsky;Genndy Tartakovsky +CHAMBA;theCHAMBA +RossDraws;Ross Draws +Vallejo;Boris Vallejo +Rembrandt;Rembrandt van Rijn +Vermeer;Johannes Vermeer +Waterhouse;John William Waterhouse +Stanislaw;Stanisław Wyspiański +Wyspianski;Stanisław Wyspiański +Yamamoto;Takato Yamamoto +Dabrowski;Kazimierz Dąbrowski +Mr Doodle;Mr. Doodle +Petruk;Alex Petruk (APe) \ No newline at end of file diff --git a/negativeprompttester.py b/negativeprompttester.py index e976f6f..95e93ee 100644 --- a/negativeprompttester.py +++ b/negativeprompttester.py @@ -32,4 +32,4 @@ def generateprompts(amount = 1,positive_prompt = "",insanitylevel="0",enhance=Fa print("") print("All done!") -generateprompts(1,"anime assassin",0,False,"") \ No newline at end of file +generateprompts(1,"art by van gogh, a celestial being",0,False,"") \ No newline at end of file diff --git a/prompttester.py b/prompttester.py index d91d03d..bc6af19 100644 --- a/prompttester.py +++ b/prompttester.py @@ -95,7 +95,7 @@ def generateprompts(amount = 1,insanitylevel="5",subject="all", artist="all", im print("") print("All done!") -generateprompts(10,5 +generateprompts(10,2 ,"all" # subject ,"all" # artists ,"all" # image type "only other types", "only templates mode", "art blaster mode", "quality vomit mode", "color cannon mode", "unique art mode", "massive madness mode", "photo fantasy mode", "subject only mode", "fixed styles mode"