Merge pull request #172 from AIrjen/new_mode
Artify, Flufferize and new mode + secrets
This commit is contained in:
+86
-1
@@ -18,7 +18,8 @@ OBPresets = OneButtonPresets()
|
||||
allpresets = [OBPresets.RANDOM_PRESET_OBP] + list(OBPresets.opb_presets.keys())
|
||||
|
||||
artists = ["all", "all (wild)", "none", "popular", "greg mode", "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", "gore", "graffiti", "graphic design", "high contrast", "horror", "impressionism", "installation", "landscape", "light", "line drawing", "low contrast", "luminism", "magical realism", "manga", "melanin", "messy", "monochromatic", "nature", "nudity", "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"]
|
||||
imagetypes = ["all", "all - force multiple", "photograph", "octane render","digital art","concept art", "painting", "portrait", "anime key visual", "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", "the tokinator"]
|
||||
artifyartists = ["all", "all (wild)", "popular", "greg mode", "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", "gore", "graffiti", "graphic design", "high contrast", "horror", "impressionism", "installation", "landscape", "light", "line drawing", "low contrast", "luminism", "magical realism", "manga", "melanin", "messy", "monochromatic", "nature", "nudity", "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"]
|
||||
imagetypes = ["all", "all - force multiple", "photograph", "octane render","digital art","concept art", "painting", "portrait", "anime key visual", "only other types", "only templates mode", "dynamic 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", "the tokinator"]
|
||||
subjects =["all", "object", "animal", "humanoid", "landscape", "concept"]
|
||||
genders = ["all", "male", "female"]
|
||||
emojis = [False, True]
|
||||
@@ -32,6 +33,12 @@ subjectsubtypesconcept = ["all"]
|
||||
#subjectsubtypeshumanoid = ["all", "generic humans", "generic human relations", "celebrities e.a.", "fictional characters", "humanoids", "based on job or title", "based on first name"]
|
||||
#subjectsubtypesconcept = ["all", "event", "the X of Y concepts", "lines from poems", "lines from songs"]
|
||||
|
||||
amountofflufflist = ["none", "dynamic", "short", "medium", "long"]
|
||||
fluff_reverse_polarity = [False,True]
|
||||
|
||||
artifymodeslist = ["standard", "remix", "super remix turbo"]
|
||||
artifyamountofartistslist = ["random", "0", "1", "2", "3", "4", "5"]
|
||||
|
||||
|
||||
# Load up stuff for personal artists list, if any
|
||||
# find all artist files starting with personal_artits in userfiles
|
||||
@@ -570,15 +577,91 @@ class AutoNegativePrompt:
|
||||
print("Generated negative prompt: " + generatedprompt)
|
||||
|
||||
return (generatedprompt,)
|
||||
|
||||
class OneButtonArtify:
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
def INPUT_TYPES(s):
|
||||
|
||||
return {
|
||||
"required": {
|
||||
"prompt": ("STRING", {"default": '', "multiline": True}),
|
||||
"artist": (artifyartists, {"default": "all"}),
|
||||
"amount_of_artists": (artifyamountofartistslist, {"default": "1"}),
|
||||
"artify_mode": (artifymodeslist, {"default": "standard"})
|
||||
},
|
||||
"optional": {
|
||||
"seed": ("INT", {"default": 0, "min": 0, "max": 0xFFFFFFFFFFFFFFFF}),
|
||||
},
|
||||
}
|
||||
|
||||
RETURN_TYPES = ("STRING",)
|
||||
RETURN_NAMES = ("artified_prompt",)
|
||||
|
||||
FUNCTION = "Comfy_OBP_Artify"
|
||||
|
||||
#OUTPUT_NODE = False
|
||||
|
||||
CATEGORY = "OneButtonPrompt"
|
||||
|
||||
def Comfy_OBP_Artify(self, prompt, artist, amount_of_artists,artify_mode, seed):
|
||||
# artify here
|
||||
artified_prompt = artify_prompt(prompt=prompt, artists=artist, amountofartists=amount_of_artists, mode=artify_mode, seed=seed)
|
||||
|
||||
print("Artified prompt: " + artified_prompt)
|
||||
|
||||
return (artified_prompt,)
|
||||
|
||||
class OneButtonFlufferize:
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
def INPUT_TYPES(s):
|
||||
|
||||
return {
|
||||
"required": {
|
||||
"prompt": ("STRING", {"default": '', "multiline": True}),
|
||||
"amount_of_fluff": (amountofflufflist, {"default": "dynamic"}),
|
||||
"reverse_polarity": (fluff_reverse_polarity, {"default": False}),
|
||||
},
|
||||
"optional": {
|
||||
"seed": ("INT", {"default": 0, "min": 0, "max": 0xFFFFFFFFFFFFFFFF}),
|
||||
},
|
||||
}
|
||||
|
||||
RETURN_TYPES = ("STRING",)
|
||||
RETURN_NAMES = ("fluffed_prompt",)
|
||||
|
||||
FUNCTION = "Comfy_OBP_Flufferize"
|
||||
|
||||
#OUTPUT_NODE = False
|
||||
|
||||
CATEGORY = "OneButtonPrompt"
|
||||
|
||||
def Comfy_OBP_Flufferize(self, prompt, amount_of_fluff, reverse_polarity, seed):
|
||||
# artify here
|
||||
fluffed_prompt = flufferizer(prompt=prompt, amountoffluff=amount_of_fluff, reverse_polarity=reverse_polarity, seed=seed)
|
||||
|
||||
print("Fluffed prompt: " + fluffed_prompt)
|
||||
|
||||
return (fluffed_prompt,)
|
||||
|
||||
|
||||
# A dictionary that contains all nodes you want to export with their names
|
||||
# NOTE: names should be globally unique
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
"OneButtonPrompt": OneButtonPrompt,
|
||||
"OneButtonPreset": OneButtonPreset,
|
||||
"OneButtonArtify": OneButtonArtify,
|
||||
"CreatePromptVariant": CreatePromptVariant,
|
||||
"SavePromptToFile": SavePromptToFile,
|
||||
"AutoNegativePrompt": AutoNegativePrompt,
|
||||
"OneButtonFlufferize": OneButtonFlufferize,
|
||||
|
||||
}
|
||||
|
||||
@@ -586,7 +669,9 @@ NODE_CLASS_MAPPINGS = {
|
||||
NODE_DISPLAY_NAME_MAPPINGS = {
|
||||
"OneButtonPrompt": "One Button Prompt",
|
||||
"OneButtonPreset": "One Button Preset",
|
||||
"OneButtonArtify": "One Button Artify",
|
||||
"CreatePromptVariant": "Create Prompt Variant",
|
||||
"SavePromptToFile": "Save Prompt To File",
|
||||
"AutoNegativePrompt": "Auto Negative Prompt",
|
||||
"OneButtonFlufferize": "One Button Flufferize",
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@ More of a Fooocus fan? Take a look at this excellent fork called [RuinedFooocus]
|
||||
- Has a set of __template prompts__ from various sources, __fully wildcarded__ and usable with Subject Override ==> [guide to prompt templates](https://github.com/AIrjen/OneButtonPrompt/blob/main/user_guides/templates.md)
|
||||
- Has multiple __prompt generation modes__ to choose from ==> [guide to prompt generation modes](https://github.com/AIrjen/OneButtonPrompt/blob/main/user_guides/prompt_generation_modes.md)
|
||||
- Stay in control, and fine-tune One Button Prompt with a __config__ file ==> [config file](https://github.com/AIrjen/OneButtonPrompt/blob/main/user_guides/config_file.md)
|
||||
- __Flufferize__ your prompt to enhance your results with Prompt Magic
|
||||
|
||||
## Important Notice
|
||||
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
import sys, os
|
||||
import random
|
||||
import uuid
|
||||
import re
|
||||
from datetime import datetime
|
||||
sys.path.append(os.path.abspath(".."))
|
||||
|
||||
|
||||
from build_dynamic_prompt import *
|
||||
|
||||
|
||||
|
||||
def generateprompts(amount = 1,prompt = "",artists="all",amountofartists = "1", mode="standard"):
|
||||
loops = int(amount) # amount of images to generate
|
||||
steps = 0
|
||||
originalpositiveprompt = prompt
|
||||
|
||||
while steps < loops:
|
||||
# build prompt
|
||||
if originalpositiveprompt == "":
|
||||
result = build_dynamic_prompt(insanitylevel=3)
|
||||
else:
|
||||
result = artify_prompt(prompt=prompt, artists=artists, amountofartists=amountofartists, mode=mode)
|
||||
result = flufferizer(prompt=result, reverse_polarity=True)
|
||||
print("ARTIFY COMPLETE: " + result)
|
||||
print("")
|
||||
print("loop " + str(steps))
|
||||
print("")
|
||||
|
||||
|
||||
steps += 1
|
||||
|
||||
|
||||
print("")
|
||||
print("All done!")
|
||||
|
||||
if __name__ == "__main__":
|
||||
generateprompts(10,"a norwegian forest cat", "all","random", "standard")
|
||||
+417
-79
@@ -16,6 +16,8 @@ def build_dynamic_prompt(insanitylevel = 5, forcesubject = "all", artists = "all
|
||||
|
||||
remove_weights = False
|
||||
less_verbose = False
|
||||
add_vomit = True
|
||||
add_quality = True
|
||||
|
||||
|
||||
# set seed
|
||||
@@ -84,6 +86,8 @@ def build_dynamic_prompt(insanitylevel = 5, forcesubject = "all", artists = "all
|
||||
# "Stable Cascade" -- Remove weights
|
||||
if(base_model == "Stable Cascade"):
|
||||
remove_weights = True
|
||||
add_vomit = False
|
||||
add_quality = False
|
||||
if(base_model == "SD1.5"):
|
||||
less_verbose = True
|
||||
|
||||
@@ -134,7 +138,7 @@ def build_dynamic_prompt(insanitylevel = 5, forcesubject = "all", artists = "all
|
||||
hairvomitlist = csv_to_list("hairvomit",antilist,"./csvfiles/",0,"?",False,False)
|
||||
|
||||
humanoidlist = csv_to_list("humanoids",antilist)
|
||||
imagetypelist = csv_to_list(csvfilename="imagetypes",antilist=antilist, insanitylevel=insanitylevel)
|
||||
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)
|
||||
@@ -187,6 +191,7 @@ def build_dynamic_prompt(insanitylevel = 5, forcesubject = "all", artists = "all
|
||||
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 = []
|
||||
|
||||
|
||||
@@ -351,6 +356,21 @@ def build_dynamic_prompt(insanitylevel = 5, forcesubject = "all", artists = "all
|
||||
|
||||
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,"?")
|
||||
|
||||
|
||||
# subjects
|
||||
@@ -806,6 +826,8 @@ def build_dynamic_prompt(insanitylevel = 5, forcesubject = "all", artists = "all
|
||||
onlysubjectmode = False
|
||||
stylesmode = False
|
||||
thetokinatormode = False
|
||||
dynamictemplatesmode = False
|
||||
artifymode = False
|
||||
|
||||
# determine wether we should go for a template or not. Not hooked up to insanitylevel
|
||||
if(imagetype == "only templates mode"):
|
||||
@@ -815,7 +837,11 @@ def build_dynamic_prompt(insanitylevel = 5, forcesubject = "all", artists = "all
|
||||
|
||||
if(imagetype == "art blaster mode"):
|
||||
specialmode = True
|
||||
artblastermode = True
|
||||
if(uncommon_dist(insanitylevel)):
|
||||
artblastermode = True
|
||||
else:
|
||||
onlysubjectmode = True
|
||||
artifymode = True
|
||||
print("Running in art blaster mode")
|
||||
|
||||
if(imagetype == "unique art mode"):
|
||||
@@ -862,6 +888,17 @@ def build_dynamic_prompt(insanitylevel = 5, forcesubject = "all", artists = "all
|
||||
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")
|
||||
|
||||
# just for testing, you can't choose this. Artify runs through Art Blaster instead.
|
||||
if(imagetype == "artify mode"):
|
||||
specialmode = True
|
||||
onlysubjectmode = True
|
||||
artifymode = True
|
||||
print("Running with artify mode")
|
||||
|
||||
# main stuff
|
||||
generatetype = not specialmode
|
||||
@@ -887,8 +924,8 @@ def build_dynamic_prompt(insanitylevel = 5, forcesubject = "all", artists = "all
|
||||
generatelighting = bool(lightinglist) and not specialmode
|
||||
generatemood = bool(moodlist) and not specialmode
|
||||
generatepose = bool(poselist) and not templatemode
|
||||
generatevomit = bool(vomitlist) and not specialmode
|
||||
generatequality = bool(qualitylist) and not specialmode
|
||||
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
|
||||
@@ -913,8 +950,8 @@ def build_dynamic_prompt(insanitylevel = 5, forcesubject = "all", artists = "all
|
||||
generateepisodetitle = bool(episodetitlelist) and not specialmode
|
||||
|
||||
generateminilocationaddition = bool(minilocationadditionslist) and not specialmode
|
||||
generateminivomit = bool(minivomitlist) and not specialmode
|
||||
generateimagetypequality = bool(imagetypequalitylist) and not specialmode and generateimagetypequality
|
||||
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
|
||||
|
||||
@@ -1080,7 +1117,7 @@ def build_dynamic_prompt(insanitylevel = 5, forcesubject = "all", artists = "all
|
||||
subjectchooser = ""
|
||||
mainchooser = ""
|
||||
|
||||
completeprompt += prefixprompt
|
||||
#completeprompt += prefixprompt
|
||||
|
||||
completeprompt += ", "
|
||||
|
||||
@@ -1312,6 +1349,8 @@ def build_dynamic_prompt(insanitylevel = 5, forcesubject = "all", artists = "all
|
||||
completeprompt += "-imagetype-, "
|
||||
if(unique_dist(insanitylevel) and bool(colorschemelist)):
|
||||
completeprompt += "-colorscheme-, "
|
||||
if(uncommon_dist(insanitylevel) and bool(artistlist)):
|
||||
completeprompt += "-artiststyle-, "
|
||||
step = step + 1
|
||||
|
||||
# start unique art here
|
||||
@@ -1333,6 +1372,8 @@ def build_dynamic_prompt(insanitylevel = 5, forcesubject = "all", artists = "all
|
||||
completeprompt += "-imagetype-, "
|
||||
if(unique_dist(insanitylevel) and bool(qualitylist)):
|
||||
completeprompt += "-quality-, "
|
||||
if(unique_dist(insanitylevel) and bool(artistlist)):
|
||||
completeprompt += "-artistdescription-, "
|
||||
|
||||
step = step + 1
|
||||
|
||||
@@ -1343,6 +1384,8 @@ def build_dynamic_prompt(insanitylevel = 5, forcesubject = "all", artists = "all
|
||||
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)):
|
||||
@@ -1368,6 +1411,8 @@ def build_dynamic_prompt(insanitylevel = 5, forcesubject = "all", artists = "all
|
||||
completeprompt += "-artmovement-, "
|
||||
if(unique_dist(insanitylevel) and bool(lightinglist)):
|
||||
completeprompt += "-lighting-, "
|
||||
if(unique_dist(insanitylevel) and bool(allstylessuffixlist)):
|
||||
completeprompt += "-allstylessuffix-, "
|
||||
step = step + 1
|
||||
|
||||
# start photo fantasy here
|
||||
@@ -1430,13 +1475,22 @@ def build_dynamic_prompt(insanitylevel = 5, forcesubject = "all", artists = "all
|
||||
|
||||
|
||||
|
||||
# start styles mode here
|
||||
# start styles mode here
|
||||
if(stylesmode == True):
|
||||
chosenstyle = random.choice(styleslist)
|
||||
chosenstyleprefix = chosenstyle.split("-subject-")[0]
|
||||
chosenstylesuffix= chosenstyle.split("-subject-")[1]
|
||||
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)"
|
||||
|
||||
|
||||
# start artist part
|
||||
@@ -2408,74 +2462,98 @@ def build_dynamic_prompt(insanitylevel = 5, forcesubject = "all", artists = "all
|
||||
completeprompt += ", "
|
||||
# end of the artist stuff
|
||||
if(thetokinatormode == False):
|
||||
# Add more quality while in greg mode lol
|
||||
if(originalartistchoice == "greg mode" and generatequality == True):
|
||||
completeprompt += "-quality-, "
|
||||
|
||||
# others
|
||||
if(chance_roll(max(1,insanitylevel -1), directionchance) and generatedirection == True):
|
||||
completeprompt += "-direction-, "
|
||||
|
||||
if(chance_roll(insanitylevel, moodchance) and generatemood == True):
|
||||
completeprompt += "-mood-, "
|
||||
|
||||
# add in some more mini vomits
|
||||
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-, "
|
||||
# todo
|
||||
descriptivemode = False
|
||||
# if we have artists, maybe go in artists descriptor mode
|
||||
if(templatemode == False and specialmode == False and "-artist-" in completeprompt and common_dist(max(8 - insanitylevel,3))):
|
||||
for i in range(random.randint(1,3)):
|
||||
# print("adding artist stuff")
|
||||
completeprompt += ", -artistdescription-"
|
||||
descriptivemode = True
|
||||
completeprompt += ", "
|
||||
|
||||
# determine wether we have a photo or not
|
||||
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 not, we could go in random styles descriptor mode
|
||||
elif(templatemode == False and specialmode == False and uncommon_dist(10 - insanitylevel)):
|
||||
for i in range(random.randint(1,max(7,insanitylevel + 2))):
|
||||
# print("adding random crap")
|
||||
completeprompt += ", -allstylessuffix-"
|
||||
descriptivemode = True
|
||||
completeprompt += ", "
|
||||
|
||||
if(chance_roll(insanitylevel, colorschemechance) and generatecolorscheme == True):
|
||||
completeprompt += "-colorscheme-, "
|
||||
# and on high levels, DO EVERYTHING :D
|
||||
if(descriptivemode == False or rare_dist(insanitylevel)):
|
||||
|
||||
# vomit some cool/wierd things into the prompt
|
||||
if(chance_roll(insanitylevel, vomit1chance) and generatevomit == True):
|
||||
completeprompt += "-vomit-, "
|
||||
if(chance_roll(insanitylevel, vomit2chance)):
|
||||
completeprompt += "-vomit-, "
|
||||
|
||||
# human specfic vomit
|
||||
if(mainchooser == "humanoid" and chance_roll(insanitylevel, humanvomitchance) and generatehumanvomit == True):
|
||||
completeprompt += "-humanvomit-, "
|
||||
if(chance_roll(insanitylevel, humanvomitchance)):
|
||||
completeprompt += "-humanvomit-, "
|
||||
|
||||
#adding a great work of art, like starry night has cool effects. But this should happen only very rarely.
|
||||
if(chance_roll(insanitylevel, greatworkchance) and generategreatwork == True):
|
||||
completeprompt += " in the style of -greatwork-, "
|
||||
|
||||
#adding a poemline. But this should happen only very rarely.
|
||||
if(chance_roll(insanitylevel, poemlinechance) and generatepoemline == True):
|
||||
completeprompt += " \"-poemline-\", "
|
||||
|
||||
#adding a songline. But this should happen only very rarely.
|
||||
if(chance_roll(insanitylevel, songlinechance) and generatesongline == True):
|
||||
completeprompt += " \"-songline-\", "
|
||||
|
||||
# everyone loves the adding quality. The better models don't need this, but lets add it anyway
|
||||
if((chance_roll(insanitylevel, quality1chance) or originalartistchoice == "greg mode") and generatequality == True):
|
||||
completeprompt += "-quality-, "
|
||||
if((chance_roll(insanitylevel, quality2chance) or originalartistchoice == "greg mode")):
|
||||
# Add more quality while in greg mode lol
|
||||
if(originalartistchoice == "greg mode" and generatequality == True):
|
||||
completeprompt += "-quality-, "
|
||||
|
||||
# others
|
||||
if(chance_roll(max(1,insanitylevel -1), directionchance) and generatedirection == True):
|
||||
completeprompt += "-direction-, "
|
||||
|
||||
if(chance_roll(insanitylevel, moodchance) and generatemood == True):
|
||||
completeprompt += "-mood-, "
|
||||
|
||||
# add in some more mini vomits
|
||||
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-, "
|
||||
|
||||
# determine wether we have a photo or not
|
||||
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-, "
|
||||
|
||||
# vomit some cool/wierd things into the prompt
|
||||
if(chance_roll(insanitylevel, vomit1chance) and generatevomit == True):
|
||||
completeprompt += "-vomit-, "
|
||||
if(chance_roll(insanitylevel, vomit2chance)):
|
||||
completeprompt += "-vomit-, "
|
||||
|
||||
# human specfic vomit
|
||||
if(mainchooser == "humanoid" and chance_roll(insanitylevel, humanvomitchance) and generatehumanvomit == True):
|
||||
completeprompt += "-humanvomit-, "
|
||||
if(chance_roll(insanitylevel, humanvomitchance)):
|
||||
completeprompt += "-humanvomit-, "
|
||||
|
||||
#adding a great work of art, like starry night has cool effects. But this should happen only very rarely.
|
||||
if(chance_roll(insanitylevel, greatworkchance) and generategreatwork == True):
|
||||
completeprompt += " in the style of -greatwork-, "
|
||||
|
||||
#adding a poemline. But this should happen only very rarely.
|
||||
if(chance_roll(insanitylevel, poemlinechance) and generatepoemline == True):
|
||||
completeprompt += " \"-poemline-\", "
|
||||
|
||||
#adding a songline. But this should happen only very rarely.
|
||||
if(chance_roll(insanitylevel, songlinechance) and generatesongline == True):
|
||||
completeprompt += " \"-songline-\", "
|
||||
|
||||
# everyone loves the adding quality. The better models don't need this, but lets add it anyway
|
||||
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-, "
|
||||
|
||||
|
||||
|
||||
# start second part of art blaster here
|
||||
@@ -2609,6 +2687,60 @@ def build_dynamic_prompt(insanitylevel = 5, forcesubject = "all", artists = "all
|
||||
# start styles mode here
|
||||
if(stylesmode == True):
|
||||
completeprompt += chosenstylesuffix
|
||||
|
||||
templatesmodechance = 0
|
||||
if(uncommon_dist(insanitylevel)):
|
||||
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
|
||||
|
||||
|
||||
# custom style list
|
||||
@@ -2746,10 +2878,20 @@ def build_dynamic_prompt(insanitylevel = 5, forcesubject = "all", artists = "all
|
||||
|
||||
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
|
||||
|
||||
# and then up the compounding stuff
|
||||
@@ -2773,7 +2915,8 @@ def build_dynamic_prompt(insanitylevel = 5, forcesubject = "all", artists = "all
|
||||
|
||||
|
||||
# In front and the back?
|
||||
completeprompt = parse_custom_functions(completeprompt, insanitylevel)
|
||||
if(dynamictemplatesmode == False):
|
||||
completeprompt = parse_custom_functions(completeprompt, insanitylevel)
|
||||
|
||||
# Sometimes change he/she to the actual subject
|
||||
# Doesnt work if someone puts in a manual subject
|
||||
@@ -3038,11 +3181,13 @@ def build_dynamic_prompt(insanitylevel = 5, forcesubject = "all", artists = "all
|
||||
"-charactertype-" in completeprompt or
|
||||
"-objectstohold-" in completeprompt or
|
||||
"-episodetitle-" in completeprompt or
|
||||
"-token-" in completeprompt):
|
||||
"-token-" in completeprompt or
|
||||
"-allstylessuffix-" in completeprompt or
|
||||
"-fluff-" 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-","-subjectfromfile-", "-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-"]
|
||||
,"-portraitartist-", "-characterartist-" , "-landscapeartist-", "-scifiartist-", "-graphicdesignartist-", "-digitalartist-", "-architectartist-", "-cinemaartist-", "-setting-", "-charactertype-", "-objectstohold-", "-episodetitle-", "-token-", "-allstylessuffix-", "-fluff-"]
|
||||
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]
|
||||
, portraitartistlist, characterartistlist, landscapeartistlist, scifiartistlist, graphicdesignartistlist, digitalartistlist, architectartistlist, cinemaartistlist, settinglist, charactertypelist, objectstoholdlist, episodetitlelist, tokenlist, allstylessuffixlist, flufferlist]
|
||||
|
||||
allwildcardslistwithhybrid = ["-material-", "-descriptor-", "-outfit-", "-conceptsuffix-","-culture-", "-objecttotal-", "-outfitprinttotal-", "-element-"]
|
||||
allwildcardslistwithhybridlists = [materiallist, descriptorlist,outfitlist,conceptsuffixlist,culturelist, objecttotallist, outfitprinttotallist, elementlist]
|
||||
@@ -3243,6 +3388,7 @@ def createpromptvariant(prompt = "", insanitylevel = 5, antivalues = "" , gender
|
||||
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)
|
||||
@@ -3255,6 +3401,12 @@ def createpromptvariant(prompt = "", insanitylevel = 5, antivalues = "" , gender
|
||||
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))
|
||||
|
||||
# build artists list
|
||||
if artists == "wild":
|
||||
artists = "all (wild)"
|
||||
@@ -3479,6 +3631,9 @@ def createpromptvariant(prompt = "", insanitylevel = 5, antivalues = "" , gender
|
||||
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 conceptprefixlist] and chance_roll(insanitylevel, "uncommon"):
|
||||
@@ -3647,6 +3802,9 @@ def createpromptvariant(prompt = "", insanitylevel = 5, antivalues = "" , gender
|
||||
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 nothing changed... Lets do at least something
|
||||
@@ -3784,12 +3942,14 @@ def createpromptvariant(prompt = "", insanitylevel = 5, antivalues = "" , gender
|
||||
"-setting-" in completeprompt or
|
||||
"-charactertype-" in completeprompt or
|
||||
"-objectstohold-" in completeprompt or
|
||||
"-episodetitle-" in completeprompt
|
||||
"-episodetitle-" in completeprompt or
|
||||
"-allstylessuffix-" in completeprompt or
|
||||
"-fluff-" 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-", "-subjectfromfile-", "-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-"]
|
||||
,"-portraitartist-", "-characterartist-" , "-landscapeartist-", "-scifiartist-", "-graphicdesignartist-", "-digitalartist-", "-architectartist-", "-cinemaartist-", "-setting-", "-charactertype-", "-objectstohold-", "-episodetitle-", "-allstylessuffix-", "-fluff-"]
|
||||
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]
|
||||
, portraitartistlist, characterartistlist, landscapeartistlist, scifiartistlist, graphicdesignartistlist, digitalartistlist, architectartistlist, cinemaartistlist, settinglist, charactertypelist, objectstoholdlist, episodetitlelist, allstylessuffixlist, flufferlist]
|
||||
|
||||
allwildcardslistwithhybrid = ["-material-", "-descriptor-", "-outfit-", "-conceptsuffix-","-culture-", "-objecttotal-", "-outfitprinttotal-", "-element-"]
|
||||
allwildcardslistwithhybridlists = [materiallist, descriptorlist,outfitlist,conceptsuffixlist,culturelist, objecttotallist, outfitprinttotallist, elementlist]
|
||||
@@ -3856,11 +4016,14 @@ def replacewildcard(completeprompt, insanitylevel, wildcard,listname, activatehy
|
||||
replacementvalue = ""
|
||||
|
||||
# override for artist and artiststyle, only for first artist
|
||||
if(wildcard == "-artist-" and "-artiststyle-" in completeprompt):
|
||||
if(wildcard == "-artist-" and ("-artiststyle-" in completeprompt or "-artistmedium-" in completeprompt or "-artistdescription-" in completeprompt)):
|
||||
artiststyles = []
|
||||
artiststyle = []
|
||||
chosenartiststyle = ""
|
||||
artiststyles = artist_category_by_category_csv_to_list("artists_and_category",replacementvalue)
|
||||
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)) # remove empty values
|
||||
@@ -3880,6 +4043,19 @@ def replacewildcard(completeprompt, insanitylevel, wildcard,listname, activatehy
|
||||
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)
|
||||
|
||||
|
||||
|
||||
# Sneaky overrides for "same" wildcards
|
||||
@@ -4110,6 +4286,152 @@ def enhance_positive(positive_prompt = "", amountofwords = 3):
|
||||
|
||||
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)
|
||||
|
||||
|
||||
# set seed
|
||||
# For use in ComfyUI (might bring to Automatic1111 as well)
|
||||
# lets do it when its larger than 0
|
||||
# Otherwise, just do nothing and it will keep on working based on an earlier set seed
|
||||
if(seed > 0):
|
||||
random.seed(seed)
|
||||
|
||||
|
||||
# first build up a complete anti list. Those values are removing during list building
|
||||
# this uses the antivalues string AND the antilist.csv
|
||||
emptylist = []
|
||||
antilist = csv_to_list("antilist",emptylist , "./userfiles/",1)
|
||||
|
||||
# clean up antivalue list:
|
||||
antilist = [s.strip().lower() for s in antilist]
|
||||
|
||||
# build artists list
|
||||
if artists == "wild":
|
||||
artists = "all (wild)"
|
||||
|
||||
# we want to create more cohorence, so we are adding all (wild) mode for the old logic
|
||||
|
||||
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 = []
|
||||
# create artist list to use in the code, maybe based on category or personal lists
|
||||
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) # add underscores back in
|
||||
artistlist = csv_to_list(artists,antilist,"./userfiles/")
|
||||
elif(artists != "none"):
|
||||
artistlist = csv_to_list("artists",antilist)
|
||||
|
||||
|
||||
# load up the styles list for the other modes
|
||||
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 "
|
||||
#Lets go effing artify this MF'er
|
||||
|
||||
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-, "
|
||||
|
||||
# now add the prompt in
|
||||
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:
|
||||
# else just go standard
|
||||
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
|
||||
|
||||
# set seed
|
||||
# For use in ComfyUI (might bring to Automatic1111 as well)
|
||||
# lets do it when its larger than 0
|
||||
# Otherwise, just do nothing and it will keep on working based on an earlier set seed
|
||||
if(seed > 0):
|
||||
random.seed(seed)
|
||||
|
||||
if(reverse_polarity):
|
||||
flufferlist = csv_to_list("antifluff") # all negative words
|
||||
else:
|
||||
flufferlist = csv_to_list("fluff")
|
||||
|
||||
# dynamic = based on prompt length + insanitylevel
|
||||
minfluff = 4
|
||||
maxfluff = 6
|
||||
# short = 4-6
|
||||
# medium = 5-8
|
||||
# long = 8-12
|
||||
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):
|
||||
# Extract the first word from the match
|
||||
words = match.group(0)[1:-1].split('|')
|
||||
@@ -4173,6 +4495,8 @@ def cleanup(completeprompt, advancedprompting, insanitylevel = 5):
|
||||
completeprompt = re.sub(' ,', ',', completeprompt)
|
||||
completeprompt = re.sub(',\(', ', (', completeprompt)
|
||||
|
||||
|
||||
|
||||
while " " in completeprompt:
|
||||
completeprompt = re.sub(' ', ' ', completeprompt)
|
||||
completeprompt = re.sub('a The', 'The', completeprompt)
|
||||
@@ -4194,10 +4518,18 @@ def cleanup(completeprompt, advancedprompting, insanitylevel = 5):
|
||||
|
||||
|
||||
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('shot shot', 'shot', completeprompt)
|
||||
|
||||
|
||||
completeprompt = re.sub('a his', 'his', completeprompt)
|
||||
@@ -4243,6 +4575,12 @@ def cleanup(completeprompt, advancedprompting, insanitylevel = 5):
|
||||
# Move the extracted LoRA's to the end of completeprompt
|
||||
#completeprompt += " " + " ".join(allLoRA)
|
||||
|
||||
completeprompt = completeprompt.replace(' . ', '. ')
|
||||
completeprompt = completeprompt.replace(', . ', '. ')
|
||||
completeprompt = completeprompt.replace(',. ', '. ')
|
||||
completeprompt = completeprompt.replace('., ', '. ')
|
||||
completeprompt = completeprompt.replace('. . ', '. ')
|
||||
|
||||
completeprompt = completeprompt.strip(", ")
|
||||
|
||||
return completeprompt
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"last_node_id": 223,
|
||||
"last_link_id": 333,
|
||||
"last_node_id": 225,
|
||||
"last_link_id": 337,
|
||||
"nodes": [
|
||||
{
|
||||
"id": 160,
|
||||
@@ -29,7 +29,9 @@
|
||||
}
|
||||
],
|
||||
"title": "CFG Scale",
|
||||
"properties": {},
|
||||
"properties": {
|
||||
"Run widget replace on values": false
|
||||
},
|
||||
"widgets_values": [
|
||||
8,
|
||||
"fixed"
|
||||
@@ -102,7 +104,9 @@
|
||||
}
|
||||
],
|
||||
"title": "Total Steps (Base + Ref.)",
|
||||
"properties": {},
|
||||
"properties": {
|
||||
"Run widget replace on values": false
|
||||
},
|
||||
"widgets_values": [
|
||||
30,
|
||||
"fixed"
|
||||
@@ -138,9 +142,11 @@
|
||||
}
|
||||
],
|
||||
"title": "Seed",
|
||||
"properties": {},
|
||||
"properties": {
|
||||
"Run widget replace on values": false
|
||||
},
|
||||
"widgets_values": [
|
||||
604260618514801,
|
||||
890019860370061,
|
||||
"randomize"
|
||||
],
|
||||
"color": "#432",
|
||||
@@ -160,7 +166,7 @@
|
||||
"flags": {
|
||||
"collapsed": false
|
||||
},
|
||||
"order": 13,
|
||||
"order": 17,
|
||||
"mode": 0,
|
||||
"inputs": [
|
||||
{
|
||||
@@ -171,7 +177,7 @@
|
||||
{
|
||||
"name": "text_g",
|
||||
"type": "STRING",
|
||||
"link": 325,
|
||||
"link": 336,
|
||||
"widget": {
|
||||
"name": "text_g"
|
||||
},
|
||||
@@ -180,7 +186,7 @@
|
||||
{
|
||||
"name": "text_l",
|
||||
"type": "STRING",
|
||||
"link": 326,
|
||||
"link": 337,
|
||||
"widget": {
|
||||
"name": "text_l"
|
||||
},
|
||||
@@ -225,7 +231,7 @@
|
||||
"1": 316.8831481933594
|
||||
},
|
||||
"flags": {},
|
||||
"order": 17,
|
||||
"order": 18,
|
||||
"mode": 0,
|
||||
"inputs": [
|
||||
{
|
||||
@@ -300,7 +306,7 @@
|
||||
},
|
||||
"widgets_values": [
|
||||
"enable",
|
||||
604260618514801,
|
||||
890019860370061,
|
||||
"fixed",
|
||||
30,
|
||||
8,
|
||||
@@ -341,7 +347,9 @@
|
||||
}
|
||||
],
|
||||
"title": "Steps On Base Model",
|
||||
"properties": {},
|
||||
"properties": {
|
||||
"Run widget replace on values": false
|
||||
},
|
||||
"widgets_values": [
|
||||
30,
|
||||
"fixed"
|
||||
@@ -361,7 +369,7 @@
|
||||
26
|
||||
],
|
||||
"flags": {},
|
||||
"order": 18,
|
||||
"order": 19,
|
||||
"mode": 0,
|
||||
"inputs": [
|
||||
{
|
||||
@@ -397,7 +405,7 @@
|
||||
"1": 102.28533172607422
|
||||
},
|
||||
"flags": {},
|
||||
"order": 19,
|
||||
"order": 20,
|
||||
"mode": 0,
|
||||
"inputs": [
|
||||
{
|
||||
@@ -439,7 +447,7 @@
|
||||
"1": 596.3757934570312
|
||||
},
|
||||
"flags": {},
|
||||
"order": 20,
|
||||
"order": 21,
|
||||
"mode": 0,
|
||||
"inputs": [
|
||||
{
|
||||
@@ -475,13 +483,13 @@
|
||||
"1": 166
|
||||
},
|
||||
"flags": {},
|
||||
"order": 15,
|
||||
"order": 16,
|
||||
"mode": 0,
|
||||
"inputs": [
|
||||
{
|
||||
"name": "positive_prompt",
|
||||
"type": "STRING",
|
||||
"link": 324,
|
||||
"link": 335,
|
||||
"widget": {
|
||||
"name": "positive_prompt"
|
||||
}
|
||||
@@ -517,56 +525,6 @@
|
||||
"color": "#2a363b",
|
||||
"bgcolor": "#3f5159"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"type": "CheckpointLoaderSimple",
|
||||
"pos": [
|
||||
-570,
|
||||
175
|
||||
],
|
||||
"size": {
|
||||
"0": 320.0830383300781,
|
||||
"1": 101.19705200195312
|
||||
},
|
||||
"flags": {},
|
||||
"order": 5,
|
||||
"mode": 0,
|
||||
"outputs": [
|
||||
{
|
||||
"name": "MODEL",
|
||||
"type": "MODEL",
|
||||
"links": [
|
||||
281
|
||||
],
|
||||
"slot_index": 0
|
||||
},
|
||||
{
|
||||
"name": "CLIP",
|
||||
"type": "CLIP",
|
||||
"links": [
|
||||
283,
|
||||
284
|
||||
],
|
||||
"slot_index": 1
|
||||
},
|
||||
{
|
||||
"name": "VAE",
|
||||
"type": "VAE",
|
||||
"links": [
|
||||
316
|
||||
],
|
||||
"slot_index": 2
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"Node name for S&R": "CheckpointLoaderSimple"
|
||||
},
|
||||
"widgets_values": [
|
||||
"sd_xl_base_1.0.safetensors"
|
||||
],
|
||||
"color": "#432",
|
||||
"bgcolor": "#653"
|
||||
},
|
||||
{
|
||||
"id": 219,
|
||||
"type": "PrimitiveNode",
|
||||
@@ -579,7 +537,7 @@
|
||||
"1": 58
|
||||
},
|
||||
"flags": {},
|
||||
"order": 6,
|
||||
"order": 5,
|
||||
"mode": 0,
|
||||
"outputs": [
|
||||
{
|
||||
@@ -596,7 +554,9 @@
|
||||
}
|
||||
],
|
||||
"title": "File Location",
|
||||
"properties": {},
|
||||
"properties": {
|
||||
"Run widget replace on values": false
|
||||
},
|
||||
"widgets_values": [
|
||||
"%date:yyyy-M-d%/ComfyUI"
|
||||
],
|
||||
@@ -615,7 +575,7 @@
|
||||
"1": 210
|
||||
},
|
||||
"flags": {},
|
||||
"order": 7,
|
||||
"order": 6,
|
||||
"mode": 0,
|
||||
"title": "Note - Empty Latent Image",
|
||||
"properties": {
|
||||
@@ -641,7 +601,7 @@
|
||||
"flags": {
|
||||
"collapsed": false
|
||||
},
|
||||
"order": 16,
|
||||
"order": 15,
|
||||
"mode": 0,
|
||||
"inputs": [
|
||||
{
|
||||
@@ -705,7 +665,7 @@
|
||||
"1": 58
|
||||
},
|
||||
"flags": {},
|
||||
"order": 8,
|
||||
"order": 7,
|
||||
"mode": 0,
|
||||
"properties": {
|
||||
"text": ""
|
||||
@@ -730,7 +690,7 @@
|
||||
"flags": {
|
||||
"collapsed": false
|
||||
},
|
||||
"order": 9,
|
||||
"order": 8,
|
||||
"mode": 0,
|
||||
"outputs": [
|
||||
{
|
||||
@@ -746,7 +706,9 @@
|
||||
}
|
||||
],
|
||||
"title": "Overwrite Subject",
|
||||
"properties": {},
|
||||
"properties": {
|
||||
"Run widget replace on values": false
|
||||
},
|
||||
"widgets_values": [
|
||||
""
|
||||
],
|
||||
@@ -767,7 +729,7 @@
|
||||
"flags": {
|
||||
"collapsed": false
|
||||
},
|
||||
"order": 10,
|
||||
"order": 9,
|
||||
"mode": 0,
|
||||
"outputs": [
|
||||
{
|
||||
@@ -783,13 +745,231 @@
|
||||
}
|
||||
],
|
||||
"title": "Overwrite Outfit",
|
||||
"properties": {},
|
||||
"properties": {
|
||||
"Run widget replace on values": false
|
||||
},
|
||||
"widgets_values": [
|
||||
""
|
||||
],
|
||||
"color": "#232",
|
||||
"bgcolor": "#353"
|
||||
},
|
||||
{
|
||||
"id": 16,
|
||||
"type": "PrimitiveNode",
|
||||
"pos": [
|
||||
-1242,
|
||||
-95
|
||||
],
|
||||
"size": {
|
||||
"0": 434.15277099609375,
|
||||
"1": 152.36099243164062
|
||||
},
|
||||
"flags": {},
|
||||
"order": 10,
|
||||
"mode": 0,
|
||||
"outputs": [
|
||||
{
|
||||
"name": "STRING",
|
||||
"type": "STRING",
|
||||
"links": [
|
||||
329
|
||||
],
|
||||
"slot_index": 0,
|
||||
"widget": {
|
||||
"name": "base_negative"
|
||||
}
|
||||
}
|
||||
],
|
||||
"title": "Negative Prompt",
|
||||
"properties": {
|
||||
"Run widget replace on values": false
|
||||
},
|
||||
"widgets_values": [
|
||||
"text, watermark\n"
|
||||
],
|
||||
"color": "#322",
|
||||
"bgcolor": "#533"
|
||||
},
|
||||
{
|
||||
"id": 221,
|
||||
"type": "OneButtonPrompt",
|
||||
"pos": [
|
||||
-630,
|
||||
-548
|
||||
],
|
||||
"size": {
|
||||
"0": 315,
|
||||
"1": 386
|
||||
},
|
||||
"flags": {},
|
||||
"order": 12,
|
||||
"mode": 0,
|
||||
"inputs": [
|
||||
{
|
||||
"name": "custom_subject",
|
||||
"type": "STRING",
|
||||
"link": 327,
|
||||
"widget": {
|
||||
"name": "custom_subject"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "custom_outfit",
|
||||
"type": "STRING",
|
||||
"link": 328,
|
||||
"widget": {
|
||||
"name": "custom_outfit"
|
||||
}
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "prompt",
|
||||
"type": "STRING",
|
||||
"links": [
|
||||
333,
|
||||
334
|
||||
],
|
||||
"shape": 3,
|
||||
"slot_index": 0
|
||||
},
|
||||
{
|
||||
"name": "prompt_g",
|
||||
"type": "STRING",
|
||||
"links": null,
|
||||
"shape": 3
|
||||
},
|
||||
{
|
||||
"name": "prompt_l",
|
||||
"type": "STRING",
|
||||
"links": null,
|
||||
"shape": 3
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"Node name for S&R": "OneButtonPrompt"
|
||||
},
|
||||
"widgets_values": [
|
||||
5,
|
||||
"all",
|
||||
"all",
|
||||
20,
|
||||
"all",
|
||||
"",
|
||||
"",
|
||||
"all",
|
||||
"all",
|
||||
"all",
|
||||
"all",
|
||||
false,
|
||||
"SDXL",
|
||||
1054047122686601,
|
||||
"randomize"
|
||||
],
|
||||
"color": "#2a363b",
|
||||
"bgcolor": "#3f5159"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"type": "CheckpointLoaderSimple",
|
||||
"pos": [
|
||||
-570,
|
||||
175
|
||||
],
|
||||
"size": {
|
||||
"0": 320.0830383300781,
|
||||
"1": 101.19705200195312
|
||||
},
|
||||
"flags": {},
|
||||
"order": 11,
|
||||
"mode": 0,
|
||||
"outputs": [
|
||||
{
|
||||
"name": "MODEL",
|
||||
"type": "MODEL",
|
||||
"links": [
|
||||
281
|
||||
],
|
||||
"slot_index": 0
|
||||
},
|
||||
{
|
||||
"name": "CLIP",
|
||||
"type": "CLIP",
|
||||
"links": [
|
||||
283,
|
||||
284
|
||||
],
|
||||
"slot_index": 1
|
||||
},
|
||||
{
|
||||
"name": "VAE",
|
||||
"type": "VAE",
|
||||
"links": [
|
||||
316
|
||||
],
|
||||
"slot_index": 2
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"Node name for S&R": "CheckpointLoaderSimple"
|
||||
},
|
||||
"widgets_values": [
|
||||
"dreamshaperXL10_alpha2Xl10.safetensors"
|
||||
],
|
||||
"color": "#432",
|
||||
"bgcolor": "#653"
|
||||
},
|
||||
{
|
||||
"id": 224,
|
||||
"type": "OneButtonFlufferize",
|
||||
"pos": [
|
||||
-197,
|
||||
-542
|
||||
],
|
||||
"size": {
|
||||
"0": 325.6371154785156,
|
||||
"1": 166.23045349121094
|
||||
},
|
||||
"flags": {},
|
||||
"order": 14,
|
||||
"mode": 0,
|
||||
"inputs": [
|
||||
{
|
||||
"name": "prompt",
|
||||
"type": "STRING",
|
||||
"link": 334,
|
||||
"widget": {
|
||||
"name": "prompt"
|
||||
}
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "fluffed_prompt",
|
||||
"type": "STRING",
|
||||
"links": [
|
||||
335,
|
||||
336,
|
||||
337
|
||||
],
|
||||
"shape": 3,
|
||||
"slot_index": 0
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"Node name for S&R": "OneButtonFlufferize"
|
||||
},
|
||||
"widgets_values": [
|
||||
"",
|
||||
"dynamic",
|
||||
false,
|
||||
921089971232293,
|
||||
"randomize"
|
||||
],
|
||||
"color": "#2a363b",
|
||||
"bgcolor": "#3f5159"
|
||||
},
|
||||
{
|
||||
"id": 223,
|
||||
"type": "AutoNegativePrompt",
|
||||
@@ -797,12 +977,12 @@
|
||||
-633,
|
||||
-113
|
||||
],
|
||||
"size": [
|
||||
327,
|
||||
170.40017700195312
|
||||
],
|
||||
"size": {
|
||||
"0": 327,
|
||||
"1": 174
|
||||
},
|
||||
"flags": {},
|
||||
"order": 14,
|
||||
"order": 13,
|
||||
"mode": 0,
|
||||
"inputs": [
|
||||
{
|
||||
@@ -843,126 +1023,12 @@
|
||||
"text, watermark\n",
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
"SDXL",
|
||||
209255417752634,
|
||||
"randomize"
|
||||
],
|
||||
"color": "#322",
|
||||
"bgcolor": "#533"
|
||||
},
|
||||
{
|
||||
"id": 221,
|
||||
"type": "OneButtonPrompt",
|
||||
"pos": [
|
||||
-630,
|
||||
-538
|
||||
],
|
||||
"size": {
|
||||
"0": 315,
|
||||
"1": 370
|
||||
},
|
||||
"flags": {},
|
||||
"order": 12,
|
||||
"mode": 0,
|
||||
"inputs": [
|
||||
{
|
||||
"name": "custom_subject",
|
||||
"type": "STRING",
|
||||
"link": 327,
|
||||
"widget": {
|
||||
"name": "custom_subject"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "custom_outfit",
|
||||
"type": "STRING",
|
||||
"link": 328,
|
||||
"widget": {
|
||||
"name": "custom_outfit"
|
||||
}
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "prompt",
|
||||
"type": "STRING",
|
||||
"links": [
|
||||
324,
|
||||
325,
|
||||
326,
|
||||
333
|
||||
],
|
||||
"shape": 3,
|
||||
"slot_index": 0
|
||||
},
|
||||
{
|
||||
"name": "prompt_g",
|
||||
"type": "STRING",
|
||||
"links": null,
|
||||
"shape": 3
|
||||
},
|
||||
{
|
||||
"name": "prompt_l",
|
||||
"type": "STRING",
|
||||
"links": null,
|
||||
"shape": 3
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"Node name for S&R": "OneButtonPrompt"
|
||||
},
|
||||
"widgets_values": [
|
||||
5,
|
||||
"all",
|
||||
"all",
|
||||
20,
|
||||
"all",
|
||||
"",
|
||||
"",
|
||||
"all",
|
||||
"all",
|
||||
"all",
|
||||
"all",
|
||||
false,
|
||||
0,
|
||||
"randomize"
|
||||
],
|
||||
"color": "#2a363b",
|
||||
"bgcolor": "#3f5159"
|
||||
},
|
||||
{
|
||||
"id": 16,
|
||||
"type": "PrimitiveNode",
|
||||
"pos": [
|
||||
-1242,
|
||||
-95
|
||||
],
|
||||
"size": {
|
||||
"0": 434.15277099609375,
|
||||
"1": 152.36099243164062
|
||||
},
|
||||
"flags": {},
|
||||
"order": 11,
|
||||
"mode": 0,
|
||||
"outputs": [
|
||||
{
|
||||
"name": "STRING",
|
||||
"type": "STRING",
|
||||
"links": [
|
||||
329
|
||||
],
|
||||
"slot_index": 0,
|
||||
"widget": {
|
||||
"name": "text_g"
|
||||
}
|
||||
}
|
||||
],
|
||||
"title": "Negative Prompt",
|
||||
"properties": {},
|
||||
"widgets_values": [
|
||||
"text, watermark\n"
|
||||
],
|
||||
"color": "#322",
|
||||
"bgcolor": "#533"
|
||||
}
|
||||
],
|
||||
"links": [
|
||||
@@ -1094,30 +1160,6 @@
|
||||
1,
|
||||
"STRING"
|
||||
],
|
||||
[
|
||||
324,
|
||||
221,
|
||||
0,
|
||||
218,
|
||||
0,
|
||||
"STRING"
|
||||
],
|
||||
[
|
||||
325,
|
||||
221,
|
||||
0,
|
||||
50,
|
||||
1,
|
||||
"STRING"
|
||||
],
|
||||
[
|
||||
326,
|
||||
221,
|
||||
0,
|
||||
50,
|
||||
2,
|
||||
"STRING"
|
||||
],
|
||||
[
|
||||
327,
|
||||
215,
|
||||
@@ -1173,6 +1215,38 @@
|
||||
223,
|
||||
0,
|
||||
"STRING"
|
||||
],
|
||||
[
|
||||
334,
|
||||
221,
|
||||
0,
|
||||
224,
|
||||
0,
|
||||
"STRING"
|
||||
],
|
||||
[
|
||||
335,
|
||||
224,
|
||||
0,
|
||||
218,
|
||||
0,
|
||||
"STRING"
|
||||
],
|
||||
[
|
||||
336,
|
||||
224,
|
||||
0,
|
||||
50,
|
||||
1,
|
||||
"STRING"
|
||||
],
|
||||
[
|
||||
337,
|
||||
224,
|
||||
0,
|
||||
50,
|
||||
2,
|
||||
"STRING"
|
||||
]
|
||||
],
|
||||
"groups": [],
|
||||
|
||||
+18
-3
@@ -121,6 +121,8 @@ def csv_to_list(csvfilename, antilist=[], directory="./csvfiles/", lowerandstrip
|
||||
|
||||
def artist_category_by_category_csv_to_list(csvfilename,artist):
|
||||
csvlist = []
|
||||
mediumlist = []
|
||||
descriptionlist = []
|
||||
script_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
full_path = os.path.join(script_dir, "./csvfiles/" )
|
||||
with open(full_path + csvfilename + ".csv", "r", newline="",encoding="utf8") as file:
|
||||
@@ -128,7 +130,9 @@ def artist_category_by_category_csv_to_list(csvfilename,artist):
|
||||
for row in reader:
|
||||
if(row["Artist"] == artist):
|
||||
csvlist.append(row["Tags"])
|
||||
return csvlist
|
||||
mediumlist.append(row["Medium"])
|
||||
descriptionlist.append(row["Description"])
|
||||
return csvlist, mediumlist, descriptionlist
|
||||
|
||||
def artist_category_csv_to_list(csvfilename,category):
|
||||
csvlist = []
|
||||
@@ -141,6 +145,16 @@ def artist_category_csv_to_list(csvfilename,category):
|
||||
csvlist.append(row["Artist"])
|
||||
return csvlist
|
||||
|
||||
def artist_descriptions_csv_to_list(csvfilename):
|
||||
csvlist = []
|
||||
script_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
full_path = os.path.join(script_dir, "./csvfiles/" )
|
||||
with open(full_path + csvfilename + ".csv", "r", newline="",encoding="utf8") as file:
|
||||
reader = csv.DictReader(file, delimiter=",")
|
||||
for row in reader:
|
||||
csvlist.append(row["Description"])
|
||||
return csvlist
|
||||
|
||||
def load_config_csv():
|
||||
csvlist = []
|
||||
script_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
@@ -242,5 +256,6 @@ def sort_and_dedupe_csv_file():
|
||||
# write each item on a new line
|
||||
fp.write("%s\n" % item)
|
||||
|
||||
if __name__ == "__main__":
|
||||
sort_and_dedupe_csv_file()
|
||||
|
||||
# sort_and_dedupe_csv_file()
|
||||
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
-color- dragon
|
||||
-color- creature
|
||||
-color- and -color- creature
|
||||
-food--o-saurus
|
||||
-conceptsuffix-beast
|
||||
Animal
|
||||
Abyssinian Cat
|
||||
Albatross
|
||||
|
||||
|
@@ -0,0 +1,111 @@
|
||||
Amateurish
|
||||
Amateurish composition
|
||||
Amateurish creative
|
||||
Arid
|
||||
Background uninspired
|
||||
bad atmosphere
|
||||
bad quality
|
||||
bad shadow
|
||||
Barren
|
||||
Basic
|
||||
Basic detail
|
||||
Basic dull focus
|
||||
Basic ordinary dim light
|
||||
Basic straightforward color
|
||||
Basic straightforward color composition
|
||||
Blur
|
||||
Blurry
|
||||
Blurry focus
|
||||
Clashing colors
|
||||
Cloudy
|
||||
Clumsy
|
||||
Cropped
|
||||
Coarse artistic composition
|
||||
Coarse detail
|
||||
Common
|
||||
Contaminated
|
||||
Copied
|
||||
Cut off
|
||||
Dim
|
||||
Dim illumination
|
||||
Dim light
|
||||
Diminished quality
|
||||
Disenchanted
|
||||
Disgrace
|
||||
Draft
|
||||
Dull
|
||||
Dull colors
|
||||
Dull light
|
||||
Duplicate
|
||||
Faded colors
|
||||
Illogical background
|
||||
Imperfect background
|
||||
Imperfect composition
|
||||
Imperfect symmetry
|
||||
Incoherent
|
||||
Insecure
|
||||
Insignificant
|
||||
Glitch
|
||||
Grainy
|
||||
Lacking detail
|
||||
Losing
|
||||
Low color focused
|
||||
Low contrasted
|
||||
Low enhanced
|
||||
Low intricate
|
||||
low quality
|
||||
Matte
|
||||
Mediocre aesthetic
|
||||
Mediocre color
|
||||
Mediocre composition
|
||||
Mild
|
||||
Monochrome
|
||||
ms paint
|
||||
Mundane
|
||||
Mundane atmosphere
|
||||
Mundane composition
|
||||
Negative emotional
|
||||
Not very
|
||||
Ordinary
|
||||
Ordinary basic rough coarse detail
|
||||
Ordinary detail
|
||||
Ordinary simple low quality color basic
|
||||
Overexposed
|
||||
Out of frame
|
||||
Pale colors
|
||||
Plain
|
||||
Plain clumsy
|
||||
Poorly lit
|
||||
Profane
|
||||
Realistic
|
||||
Rough
|
||||
Rough polished
|
||||
Rugged
|
||||
Simple
|
||||
Sketchy
|
||||
Stagnant
|
||||
Static
|
||||
Static background
|
||||
Static boring incomplete lackluster
|
||||
Static color
|
||||
Static composition
|
||||
Static dull atmosphere
|
||||
Static imperfect background
|
||||
Static plain composition
|
||||
Surface
|
||||
Ugly
|
||||
Unappealing composition
|
||||
Unattractive
|
||||
Unchanged
|
||||
Unimaginative
|
||||
Unimpressive
|
||||
Uninspirational
|
||||
Uninspired
|
||||
Unknown
|
||||
Unknown quality
|
||||
Unoriginal
|
||||
Unromantic
|
||||
Unstylish
|
||||
Untheatrical
|
||||
Void
|
||||
Worst quality
|
||||
|
+3592
-3592
File diff suppressed because it is too large
Load Diff
@@ -128,4 +128,5 @@ Charity
|
||||
Passion
|
||||
Bliss
|
||||
Awe
|
||||
Delight
|
||||
Delight
|
||||
Seasons
|
||||
|
@@ -213,6 +213,7 @@ Extreme
|
||||
Fairy-Tale
|
||||
Fallacious
|
||||
Familiar
|
||||
Fae
|
||||
Fantastical
|
||||
Fascinating
|
||||
Fashionable
|
||||
@@ -519,6 +520,7 @@ Sparkling
|
||||
Sparse
|
||||
Spellbinding
|
||||
Spiritual
|
||||
Spirit World
|
||||
Sprawling
|
||||
Squealing
|
||||
Stale
|
||||
|
||||
|
@@ -0,0 +1,130 @@
|
||||
advanced cinematic perfect light
|
||||
aesthetic
|
||||
ambient
|
||||
ambient atmosphere
|
||||
ambient background
|
||||
ambient illumination
|
||||
ambient light
|
||||
artistic
|
||||
atmosphere
|
||||
background inspired
|
||||
badge
|
||||
beautiful
|
||||
beautiful composition
|
||||
beautiful detailed
|
||||
beautiful detailed supreme quality color intricate
|
||||
beautiful elegant
|
||||
best
|
||||
cinematic
|
||||
cinematic atmosphere
|
||||
cinematic light
|
||||
cinematic perfect intricate stunning fine detail
|
||||
colorful
|
||||
complex
|
||||
complex artistic color composition
|
||||
complimentary colors
|
||||
confident
|
||||
contemporary
|
||||
contemporary fine detail
|
||||
cool colors
|
||||
creative
|
||||
cute
|
||||
deep aesthetic
|
||||
deep rich colors
|
||||
delicate
|
||||
detailed
|
||||
dramatic
|
||||
dynamic
|
||||
dynamic background
|
||||
dynamic cinematic color
|
||||
dynamic cinematic perfect background
|
||||
dynamic composition
|
||||
dynamic dramatic atmosphere
|
||||
dynamic dramatic beautiful full taking
|
||||
dynamic dramatic composition
|
||||
elaborate
|
||||
elegant
|
||||
enchanted
|
||||
enhanced quality
|
||||
epic
|
||||
epic atmosphere
|
||||
epic composition
|
||||
excellent composition
|
||||
exquisite color
|
||||
extremely rich detail
|
||||
extremely stylish
|
||||
fabulous colors
|
||||
fantastic aesthetic
|
||||
fertile
|
||||
fine artistic composition
|
||||
fine detail
|
||||
fine polished
|
||||
flowing
|
||||
full color
|
||||
glossy
|
||||
glowing
|
||||
gorgeous
|
||||
grand illumination
|
||||
great composition
|
||||
great light
|
||||
handsome
|
||||
highly color focused
|
||||
highly complex
|
||||
highly contrasted
|
||||
highly decorated
|
||||
highly detail
|
||||
highly detailed
|
||||
highly enhanced
|
||||
highly intricate
|
||||
holy
|
||||
illustrious
|
||||
illustrious quality
|
||||
imposing
|
||||
inspired
|
||||
intense
|
||||
intricate
|
||||
intricate artistic color
|
||||
intricate detail
|
||||
located artistic
|
||||
lush
|
||||
luxurious
|
||||
luxurious sharp focus
|
||||
luxury
|
||||
magic atmosphere
|
||||
magical
|
||||
magical atmosphere
|
||||
magical composition
|
||||
magnificent
|
||||
modified
|
||||
original
|
||||
perfect background
|
||||
perfect composition
|
||||
perfect symmetry
|
||||
polished
|
||||
positive emotional
|
||||
professional creative
|
||||
professional fine composition
|
||||
pure
|
||||
quality
|
||||
radiant
|
||||
rich deep colors
|
||||
rich vivid colors
|
||||
romantic
|
||||
set logical ambient background
|
||||
sharp focus
|
||||
shiny
|
||||
striking
|
||||
stunning
|
||||
stunning detail
|
||||
sublime
|
||||
sunny
|
||||
surreal
|
||||
theatrical
|
||||
unique
|
||||
very
|
||||
very coherent
|
||||
very inspirational
|
||||
vibrant
|
||||
vivid colors
|
||||
warm light
|
||||
winning
|
||||
|
@@ -82,6 +82,7 @@ Exotic
|
||||
Expressive
|
||||
Extraordinary
|
||||
Fairy-Tale
|
||||
Fae
|
||||
Fantastical
|
||||
Fantasy
|
||||
Fashionable
|
||||
@@ -174,6 +175,7 @@ Shabby
|
||||
Smart
|
||||
Smiling
|
||||
Spellbinding
|
||||
Spiritual
|
||||
Stressed
|
||||
Striking
|
||||
Stunning
|
||||
|
||||
|
@@ -14,4 +14,8 @@ colorful
|
||||
vibrant
|
||||
dramatic
|
||||
artistic
|
||||
-basicbitchdescriptor-
|
||||
-basicbitchdescriptor-
|
||||
candid
|
||||
amateurish
|
||||
top-notch
|
||||
superb
|
||||
|
@@ -35,4 +35,5 @@ Airbrush painting
|
||||
On pale black paper
|
||||
On pale -color- paper
|
||||
Anime
|
||||
Cinematic still
|
||||
Cinematic still
|
||||
OR(;2D;3D;uncommon) Game art
|
||||
|
@@ -1,7 +1,7 @@
|
||||
RAW photo
|
||||
Photograph
|
||||
Digital art
|
||||
3D Rendering
|
||||
OR(;2D;3D;uncommon) Game art
|
||||
Concept art
|
||||
Portrait
|
||||
Anime
|
||||
|
||||
|
@@ -14,4 +14,5 @@ Portrait
|
||||
Raw digital photo
|
||||
On pale black paper
|
||||
Anime
|
||||
Cinematic still
|
||||
Cinematic still
|
||||
OR(;2D;3D;uncommon) Game art
|
||||
|
@@ -121,6 +121,7 @@ Countess;female
|
||||
Court jester;both
|
||||
Cowboy;male
|
||||
Cowgirl;female
|
||||
Crone;female
|
||||
Crusader;both
|
||||
Cryptographer;both
|
||||
Curate;both
|
||||
|
||||
|
@@ -2,6 +2,7 @@
|
||||
-color- field
|
||||
-color- nebula
|
||||
-material- caverns
|
||||
-object--world
|
||||
Abbaye aux Dames
|
||||
Abu Dhabi
|
||||
Abyss
|
||||
|
||||
|
@@ -18,4 +18,7 @@ concept art
|
||||
Golden ratio
|
||||
Rule of Thirds
|
||||
award winning
|
||||
stylized
|
||||
stylized
|
||||
-allstylessuffix-
|
||||
-artistdescription-
|
||||
-fluff-
|
||||
|
@@ -11,6 +11,7 @@ Disgusting
|
||||
Embarrassing
|
||||
Energetic
|
||||
Evil
|
||||
Fae
|
||||
Fantasy
|
||||
Fairy-Tale
|
||||
Fearful
|
||||
@@ -39,6 +40,7 @@ Satisfying
|
||||
Sci-Fi
|
||||
Shameful
|
||||
Shameless
|
||||
Spiritual
|
||||
Suffering
|
||||
Surprising
|
||||
Tranquil
|
||||
|
||||
|
@@ -7,6 +7,7 @@ Dark
|
||||
Depressing
|
||||
Energetic
|
||||
Evil
|
||||
Fae
|
||||
Fantasy
|
||||
Fairy-Tale
|
||||
Fearful
|
||||
@@ -29,6 +30,7 @@ Romantic
|
||||
Sad
|
||||
Satisfying
|
||||
Sci-Fi
|
||||
Spiritual
|
||||
Suffering
|
||||
Surprising
|
||||
Tranquil
|
||||
|
||||
|
+3
-1
@@ -75,4 +75,6 @@ frolicking in a -minilocation-
|
||||
pointe pose
|
||||
Dancing and looking at camera
|
||||
Walking towards camera
|
||||
Walking away from camera
|
||||
Walking away from camera
|
||||
peace sign pose
|
||||
-humanexpression- pose
|
||||
|
@@ -37,4 +37,7 @@ Concept Art World
|
||||
contest winner
|
||||
Flickr
|
||||
Unsplash
|
||||
Pixabay
|
||||
Pixabay
|
||||
-fluff-
|
||||
-fluff-, -fluff-
|
||||
-fluff-, -fluff-, -fluff-
|
||||
|
@@ -5,6 +5,7 @@ Lord of the Rings
|
||||
Blade runner
|
||||
D&D
|
||||
Cyberpunk
|
||||
Fae
|
||||
Fantasy
|
||||
Dark Fantasy
|
||||
Corporate
|
||||
@@ -31,5 +32,6 @@ Matrix
|
||||
Mad Max
|
||||
Harry Potter
|
||||
Shadowrun
|
||||
Spirit world
|
||||
Neo-Tokyo
|
||||
Steampunk
|
||||
|
@@ -6,4 +6,5 @@ unique art mode
|
||||
massive madness mode
|
||||
photo fantasy mode
|
||||
subject only mode
|
||||
fixed styles mode
|
||||
fixed styles mode
|
||||
dynamic templates mode
|
||||
|
@@ -0,0 +1,21 @@
|
||||
a OR(-imagetype-;-artiststyle-;OR(-imagetype-;-artiststyle-;-othertype-;-artmovement-;OR(-colorscheme-;-colorcombination-))) OR(artwork;art) OR(by;designed by;stylized by;uncommon) -artist-, a OR(-artiststyle-;-imagetypequality-) OR(art;work;artwork) OR(with a OR(touch;splash;hint) of OR(-colorcombination- colors;-color-;-colorscheme-);reminiscent of -artmovement-;inspired by -artmovement-;taking influence from -artmovement-).
|
||||
a OR(-imagetype-;-artiststyle-;OR(-imagetype-;-artiststyle-;-othertype-;-artmovement-;OR(-colorscheme-;-colorcombination-))) OR(artwork;art) OR(by;designed by;stylized by;uncommon) -artist-, a OR(-artiststyle-;-imagetypequality-) OR(art;work;artwork)
|
||||
a OR(;-imagetypequality-;uncommon) a OR(;-imagetype-;uncommon) artwork in OR(;-imagetypequality-;uncommon) -artmovement- style
|
||||
a OR(;-shotsize- shot;uncommon) -descriptor- -imagetype- artwork inspired by OR(-setting- setting;-culture- setting).
|
||||
a OR(-colorscheme-;-colorcombination-) OR(;-basicbitchdescriptor-;-imagetypequality-;uncommon) OR(OR(;gradient;uncommon) background;art;artwork;image)
|
||||
a OR(-imagetype-;-othertype-) OR(artwork;art)
|
||||
a OR(;-shotsize- shot;uncommon) OR(;-photoaddition-;uncommon) photograph OR(;shot with a -camera-;shot with a -lens- lens;uncommon)
|
||||
Combining the styles of -artist- OR(;, -artist-;rare) and -artist-, this OR(;-artiststyle-;uncommon) OR(;-imagetypequality-;uncommon) image
|
||||
OR(Unique;one of a kind;-basicbitchdescriptor-) art in the form of a -othertype-.
|
||||
Capturing the OR(;feeling of;uncommon) -mood- OR(atmosphere;mood;ambience;energy;vibes), this -direction- OR(work;scene;image;art;artwork)
|
||||
The very -descriptor- OR(artwork;art;image;scene) is inspired by OR(-imagetype-;-othertype-;-artmovement-;OR(-colorscheme-;-colorcombination-))
|
||||
a -allstylessuffix- type of OR(artwork;art;image;scene)
|
||||
From the -age-, this OR(artwork;art;image;scene) OR(;based on OR(-imagetype-;-artiststyle-;-othertype-;-artmovement-);uncommon)
|
||||
In OR(-material-;-materialcombination-;-color-;-colorcombination-;-pattern-;-print-) material, this OR(;-imagetypequality-;uncommon) OR(artwork;art;sculpture;scene)
|
||||
-artist- is expressing OR(an -mood- mood;-imagetypequality- skill;the essence of -basicbitchdescriptor-;-artiststyle-;-fluff- art)
|
||||
This OR(photograph;artwork;art;sculpture;scene;-imagetype-) is shot in -shotsize- OR(;around -timeperiod-;uncommon)
|
||||
In OR(full;-imagetypequality-;-fluff-;uncommon) OR(-artmovement-;-basicbitchdescriptor-;-pattern-;-print-;-animal-;-allstylessuffix-;-rpgclass-) style.
|
||||
On a OR(-imagetypequality-;-basicbitchdescriptor-) OR(OR(;gradient;uncommon) background;art;artwork;image) OR(;in OR(-colorscheme-;-colorcombination-) colors;uncommon)
|
||||
a OR(-imagetypequality-;-basicbitchdescriptor-;-mood-)-style OR(OR(;gradient;uncommon) background;art;artwork;image)
|
||||
-artistdescription-, -artistmedium- by -artist-
|
||||
Art by -artist-, -fluff- defines the -colorscheme- backgroud, drawing inspiration from -greatwork-.
|
||||
|
@@ -0,0 +1,23 @@
|
||||
OR(Describing;Evoking) a sense of OR(-mood-;-descriptor-) OR(under;in;that is) -lighting- lighting. OR(;It is -quality-.;uncommon)
|
||||
It has OR(-colorcombination- colors;-color-;-colorscheme-) details.
|
||||
It is OR(evoking;capturing) the feeling of being -mood-.
|
||||
The quality is OR(;very;uncommon) -imagetypequality-. OR(; OR(The art has a;The artist used a;The image uses a;It has a;Including a) -vomit- type effect.;uncommon)
|
||||
The OR(artwork;art;image) is OR(by;designed by;stylized by) -artist- OR(;in a -artiststyle- style;uncommon).
|
||||
The -lighting- OR(art is -basicbitchdescriptor-;art is of -imagetypequality- quality;enhances the image).
|
||||
The overall style of the image is OR(-artmovement-;inspired by -artmovement-;inspired by -setting-).
|
||||
The -direction- OR(work;scene;image;art;artwork) OR(exudes;has) OR(-imagetypequality-;-mood-) vibes.
|
||||
The OR(work;scene;image;art;artwork) is -quality-.
|
||||
OR(It;The scene) is set on a OR(-color-;-colorscheme-;-colorcombination-) background.
|
||||
It is OR(captured in;lit by) -lighting- lighting.
|
||||
The OR(work;scene;image;art;artwork) is very OR(-imagetypequality-;-basicbitchdescriptor-;-descriptor-;-allstylessuffix-).
|
||||
The artist -artist- is capturing the essence of OR(being -mood-;-basicbitchdescriptor-;-descriptor-;-allstylessuffix-).
|
||||
The composition is OR(based on the rule of thirds;centered;off-center;-imagetypequality-;-basicbitchdescriptor-).
|
||||
OR(It;The scene) is set with a OR(dynamic;quality;still;tranquil;-imagetypequality-) composition.
|
||||
Blending different mediums such as -othertype- and -othertype-.
|
||||
Elements of OR(-colorcombination- colors;-color-;-colorscheme-;-setting-;-allstylessuffix-)
|
||||
It has detailing in OR(-material-;-materialcombination-).
|
||||
-artistdescription-, -artistdescription-, -artistdescription-.
|
||||
-allstylessuffix-, -allstylessuffix-, -allstylessuffix-, -allstylessuffix-, -allstylessuffix-, -allstylessuffix-.
|
||||
-quality-, -fluff-.
|
||||
OR(In the background;On top of the image;On the bottom of the image) OR(is the OR(;large;uncommon) text;are the words) "OR(-poemline-;-songline-;-episodetitle-)".
|
||||
The OR(;-imagetypequality-;-basicbitchdescriptor-;-descriptor-;uncommon) background is composed of OR(-material- materials;-pattern- patterns;-print- print).
|
||||
|
Can't render this file because it contains an unexpected character in line 22 and column 120.
|
@@ -495,4 +495,6 @@ illustration art by rhads, -subject-, cloudscape backgrounds, dark edges, yellow
|
||||
painting by James jean, abstract art, -subject-, detailed, vibrant, surrealism, fantastical
|
||||
portrait art by conrad roset, -subject-, blank background, watercolor, surrealism, mixed with natural elements
|
||||
digital artwork, art by beeple, -subject-, surrealism, futurism, color hue, creative
|
||||
pop art by Andy Warhol, -subject-, simple and flat, photocopies, vectorized, vibrant
|
||||
pop art by Andy Warhol, -subject-, simple and flat, photocopies, vectorized, vibrant
|
||||
beautiful classic japanese anime movie poster, -subject-, facing a giant robot, japanese poster title, vintage
|
||||
sticker, chibi cute 3d, rendered -subject- ((with a face)), with white perimeter, black background
|
||||
|
+10
-2
@@ -20,7 +20,7 @@
|
||||
-color- splash
|
||||
-colorcombination-
|
||||
-space-
|
||||
(-color- and -color-:0.7)
|
||||
-color- and -color-
|
||||
arcane
|
||||
Batik
|
||||
behance
|
||||
@@ -62,6 +62,7 @@ Encaustic Paint
|
||||
epic fantasy
|
||||
ethereal magical atmosphere
|
||||
expressive brush strokes
|
||||
fae folkore
|
||||
fairy tale
|
||||
Film grain
|
||||
Floral motifs
|
||||
@@ -126,6 +127,7 @@ Simplified style
|
||||
sloppy strokes
|
||||
Soutache
|
||||
Spirals
|
||||
Spirit world
|
||||
stylized
|
||||
sunbeam
|
||||
surreal design
|
||||
@@ -143,4 +145,10 @@ vignette
|
||||
vintage
|
||||
Vitrail
|
||||
Zentangle
|
||||
-element- and -element-
|
||||
-element- and -element-
|
||||
-allstylessuffix-
|
||||
-allstylessuffix-, -allstylessuffix-
|
||||
-allstylessuffix-, -allstylessuffix-, -allstylessuffix-
|
||||
-artistdescription-
|
||||
-artistdescription-, -artistdescription-
|
||||
-artistdescription-, -artistdescription-, -artistdescription-
|
||||
|
@@ -13,7 +13,7 @@ from call_extras import *
|
||||
from model_lists import *
|
||||
|
||||
|
||||
def generateimages(amount = 1, size = "all",model = "currently selected model",samplingsteps = "40",cfg= "7",hiresfix = True,hiressteps ="0",denoisestrength="0.6",samplingmethod="DPM++ SDE Karras", upscaler="R-ESRGAN 4x+", hiresscale="2",apiurl="http://127.0.0.1:7860",qualitygate=False,quality="7.6",runs="5",insanitylevel="5",subject="all", artist="all", imagetype="all",silentmode=False, workprompt="", antistring="",prefixprompt="", suffixprompt="", negativeprompt="",promptcompounderlevel = "1", seperator="comma", img2imgbatch = "1", img2imgsamplingsteps = "20", img2imgcfg = "7", img2imgsamplingmethod = "DPM++ SDE Karras", img2imgupscaler = "R-ESRGAN 4x+", img2imgmodel = "currently selected model", img2imgactivate = False, img2imgscale = "2", img2imgpadding = "64",img2imgdenoisestrength="0.3",ultimatesdupscale=False,usdutilewidth = "512", usdutileheight = "0", usdumaskblur = "8", usduredraw ="Linear", usduSeamsfix = "None", usdusdenoise = "0.35", usduswidth = "64", usduspadding ="32", usdusmaskblur = "8",controlnetenabled=False, controlnetmodel="",img2imgdenoisestrengthmod="-0.05",enableextraupscale = False,controlnetblockymode = False,extrasupscaler1 = "all",extrasupscaler2 ="all",extrasupscaler2visiblity="0.5",extrasupscaler2gfpgan="0",extrasupscaler2codeformer="0.15",extrasupscaler2codeformerweight="0.1",extrasresize="2",onlyupscale="false",givensubject="",smartsubject=True,giventypeofimage="",imagemodechance=20, gender="all", chosensubjectsubtypeobject="all", chosensubjectsubtypehumanoid="all", chosensubjectsubtypeconcept="all", increasestability = False, qualityhiresfix = False, qualitymode = "highest", qualitykeep="keep used", basesize = "512", promptvariantinsanitylevel = 0, givenoutfit = "", autonegativeprompt = True, autonegativepromptstrength = 0, autonegativepromptenhance = False, base_model = "SD1.5", OBP_preset = ""):
|
||||
def generateimages(amount = 1, size = "all",model = "currently selected model",samplingsteps = "40",cfg= "7",hiresfix = True,hiressteps ="0",denoisestrength="0.6",samplingmethod="DPM++ SDE Karras", upscaler="R-ESRGAN 4x+", hiresscale="2",apiurl="http://127.0.0.1:7860",qualitygate=False,quality="7.6",runs="5",insanitylevel="5",subject="all", artist="all", imagetype="all",silentmode=False, workprompt="", antistring="",prefixprompt="", suffixprompt="", negativeprompt="",promptcompounderlevel = "1", seperator="comma", img2imgbatch = "1", img2imgsamplingsteps = "20", img2imgcfg = "7", img2imgsamplingmethod = "DPM++ SDE Karras", img2imgupscaler = "R-ESRGAN 4x+", img2imgmodel = "currently selected model", img2imgactivate = False, img2imgscale = "2", img2imgpadding = "64",img2imgdenoisestrength="0.3",ultimatesdupscale=False,usdutilewidth = "512", usdutileheight = "0", usdumaskblur = "8", usduredraw ="Linear", usduSeamsfix = "None", usdusdenoise = "0.35", usduswidth = "64", usduspadding ="32", usdusmaskblur = "8",controlnetenabled=False, controlnetmodel="",img2imgdenoisestrengthmod="-0.05",enableextraupscale = False,controlnetblockymode = False,extrasupscaler1 = "all",extrasupscaler2 ="all",extrasupscaler2visiblity="0.5",extrasupscaler2gfpgan="0",extrasupscaler2codeformer="0.15",extrasupscaler2codeformerweight="0.1",extrasresize="2",onlyupscale="false",givensubject="",smartsubject=True,giventypeofimage="",imagemodechance=20, gender="all", chosensubjectsubtypeobject="all", chosensubjectsubtypehumanoid="all", chosensubjectsubtypeconcept="all", increasestability = False, qualityhiresfix = False, qualitymode = "highest", qualitykeep="keep used", basesize = "512", promptvariantinsanitylevel = 0, givenoutfit = "", autonegativeprompt = True, autonegativepromptstrength = 0, autonegativepromptenhance = False, base_model = "SD1.5", OBP_preset = "", amountoffluff = "none"):
|
||||
loops = int(amount) # amount of images to generate
|
||||
steps = 0
|
||||
upscalefilelist=[]
|
||||
@@ -143,6 +143,8 @@ def generateimages(amount = 1, size = "all",model = "currently selected model",s
|
||||
if(autonegativeprompt):
|
||||
negativeprompt = build_dynamic_negative(positive_prompt=randomprompt, insanitylevel=autonegativepromptstrength,enhance=autonegativepromptenhance, existing_negative_prompt=originalnegativeprompt, base_model=base_model)
|
||||
|
||||
randomprompt = flufferizer(prompt=randomprompt, amountoffluff=amountoffluff)
|
||||
|
||||
if(randomsubject == ""):
|
||||
# make the filename, from from a to the first comma
|
||||
# find the index of the first comma after "of a" or end of the prompt
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import json
|
||||
import os
|
||||
import shutil
|
||||
import random
|
||||
|
||||
|
||||
class OneButtonPresets:
|
||||
|
||||
+3
-3
@@ -98,14 +98,14 @@ if __name__ == "__main__":
|
||||
generateprompts(10,5
|
||||
,"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"
|
||||
,"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", "dynamic templates mode", "artify mode"
|
||||
, False # only artists
|
||||
,"","","PREFIXPROMPT"
|
||||
,"SUFFIXPROMPT"
|
||||
,"",1,""
|
||||
,"" # subject override
|
||||
,True, # smart subject
|
||||
"",20
|
||||
"",5
|
||||
, "all" # gender
|
||||
, "all" # object types
|
||||
, "all" # humanoid types -- all,generic humans,generic human relations, multiple humans, celebrities e.a.,fictional,humanoids, based on job or title,based on first name
|
||||
@@ -116,5 +116,5 @@ if __name__ == "__main__":
|
||||
, "" #outfit override
|
||||
, False #prompt_g_and_l
|
||||
, "Stable Cascade" #base model
|
||||
, "All (random)..." #preset "All (random)..."
|
||||
, "" #preset "All (random)..."
|
||||
)
|
||||
+37
-19
@@ -25,7 +25,7 @@ subjectsubtypesobject = ["all"]
|
||||
subjectsubtypeshumanoid = ["all"]
|
||||
subjectsubtypesconcept = ["all"]
|
||||
artists = ["all", "all (wild)", "none", "popular", "greg mode", "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", "gore", "graffiti", "graphic design", "high contrast", "horror", "impressionism", "installation", "landscape", "light", "line drawing", "low contrast", "luminism", "magical realism", "manga", "melanin", "messy", "monochromatic", "nature", "nudity", "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"]
|
||||
imagetypes = ["all", "all - force multiple", "photograph", "octane render","digital art","concept art", "painting", "portrait", "anime key visual", "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", "the tokinator"]
|
||||
imagetypes = ["all", "all - force multiple", "photograph", "octane render","digital art","concept art", "painting", "portrait", "anime key visual", "only other types", "only templates mode", "dynamic 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", "the tokinator"]
|
||||
promptmode = ["at the back", "in the front"]
|
||||
promptcompounder = ["1", "2", "3", "4", "5"]
|
||||
ANDtogglemode = ["none", "automatic", "prefix AND prompt + suffix", "prefix + prefix + prompt + suffix"]
|
||||
@@ -35,6 +35,8 @@ genders = ["all", "male", "female"]
|
||||
qualitymodelist = ["highest", "gated"]
|
||||
qualitykeeplist = ["keep used","keep all"]
|
||||
|
||||
amountofflufflist = ["none", "dynamic", "short", "medium", "long"]
|
||||
|
||||
#for autorun and upscale
|
||||
sizelist = ["all", "portrait", "wide", "square", "ultrawide", "ultraheight", "wild"]
|
||||
basesizelist = ["512", "768", "1024"]
|
||||
@@ -234,12 +236,15 @@ class Script(scripts.Script):
|
||||
|
||||
|
||||
def ui(self, is_img2img):
|
||||
def gen_prompt(insanitylevel, subject, artist, imagetype, antistring, prefixprompt, suffixprompt, promptcompounderlevel, seperator,givensubject,smartsubject,giventypeofimage, imagemodechance,chosengender, chosensubjectsubtypeobject, chosensubjectsubtypehumanoid, chosensubjectsubtypeconcept,givenoutfit, base_model, OBP_preset):
|
||||
def gen_prompt(insanitylevel, subject, artist, imagetype, antistring, prefixprompt, suffixprompt, promptcompounderlevel, seperator,givensubject,smartsubject,giventypeofimage, imagemodechance,chosengender, chosensubjectsubtypeobject, chosensubjectsubtypehumanoid, chosensubjectsubtypeconcept,givenoutfit, base_model, OBP_preset, amountoffluff):
|
||||
|
||||
promptlist = []
|
||||
|
||||
for i in range(5):
|
||||
promptlist.append(build_dynamic_prompt(insanitylevel,subject,artist, imagetype, False, antistring,prefixprompt,suffixprompt,promptcompounderlevel,seperator,givensubject,smartsubject, giventypeofimage, imagemodechance,chosengender, chosensubjectsubtypeobject, chosensubjectsubtypehumanoid, chosensubjectsubtypeconcept,True,False,-1,givenoutfit,False,base_model, OBP_preset))
|
||||
base_prompt = build_dynamic_prompt(insanitylevel,subject,artist, imagetype, False, antistring,prefixprompt,suffixprompt,promptcompounderlevel,seperator,givensubject,smartsubject, giventypeofimage, imagemodechance,chosengender, chosensubjectsubtypeobject, chosensubjectsubtypehumanoid, chosensubjectsubtypeconcept,True,False,-1,givenoutfit,False,base_model, OBP_preset)
|
||||
fluffed_prompt = flufferizer(prompt=base_prompt, amountoffluff=amountoffluff)
|
||||
promptlist.append(fluffed_prompt)
|
||||
|
||||
|
||||
return promptlist
|
||||
|
||||
@@ -510,23 +515,25 @@ class Script(scripts.Script):
|
||||
|
||||
only templates mode is perfect for beginners, who want to see some good results fast.
|
||||
|
||||
10. art blaster mode --> Special generation mode that focusses on art movements, stylings and artists.
|
||||
10. dynamic templates mode --> A method that uses prompts in a more natural language.
|
||||
|
||||
11. quality vomit mode --> Special generation mode that focusses on qualifiers and stylings.
|
||||
11. art blaster mode --> Special generation mode that focusses on art movements, stylings and artists.
|
||||
|
||||
12. color cannon mode --> Special generation mode that focusses on color scheme's and moods.
|
||||
12. quality vomit mode --> Special generation mode that focusses on qualifiers and stylings.
|
||||
|
||||
13. unique art mode --> Special generation mode that focusses on other image types, art movements, stylings and lighting.
|
||||
13. color cannon mode --> Special generation mode that focusses on color scheme's and moods.
|
||||
|
||||
14. massive madness mode --> Special generation mode, creates prompt soup. Almost pure randomness.
|
||||
14. unique art mode --> Special generation mode that focusses on other image types, art movements, stylings and lighting.
|
||||
|
||||
15. photo fantasy mode --> Special generation mode that focusses on photographs, cameras, lenses and lighting.
|
||||
15. massive madness mode --> Special generation mode, creates prompt soup. Almost pure randomness.
|
||||
|
||||
16. subject only mode --> Will only generate a subject, with no additional frills.
|
||||
16. photo fantasy mode --> Special generation mode that focusses on photographs, cameras, lenses and lighting.
|
||||
|
||||
17. fixed styles mode --> Generate a subject on top of a fixed style.
|
||||
17. subject only mode --> Will only generate a subject, with no additional frills.
|
||||
|
||||
18. the tokinator --> Complete random word gibberish mode, use at own risk
|
||||
18. fixed styles mode --> Generate a subject on top of a fixed style.
|
||||
|
||||
19. the tokinator --> Complete random word gibberish mode, use at own risk
|
||||
|
||||
### 🎲🖼️ One in X chance to use special image type mode
|
||||
|
||||
@@ -640,12 +647,20 @@ class Script(scripts.Script):
|
||||
SDXL --> More natural language (default)
|
||||
|
||||
Stable Cascade --> More natural language and no prompt weights
|
||||
|
||||
⭐ Flufferizer
|
||||
|
||||
A simple and quick implementiation of Fooocus prompt magic
|
||||
|
||||
</font>
|
||||
"""
|
||||
)
|
||||
with gr.Row(variant="compact"):
|
||||
base_model = gr.Dropdown(
|
||||
basemodelslist, label="✨ Base model", value="SDXL")
|
||||
with gr.Row(variant="compact"):
|
||||
amountoffluff = gr.Dropdown(
|
||||
amountofflufflist, label="⭐ Flufferizer", value="dynamic")
|
||||
with gr.Row(variant="compact"):
|
||||
with gr.Column(variant="compact"):
|
||||
promptcompounderlevel = gr.Dropdown(
|
||||
@@ -907,7 +922,7 @@ class Script(scripts.Script):
|
||||
extrasupscaler2codeformerweight = gr.Slider(0, 1, value="0.1", step=0.05, label="CodeFormer weight", visible = False)
|
||||
|
||||
|
||||
genprom.click(gen_prompt, inputs=[insanitylevel,subject, artist, imagetype, antistring,prefixprompt, suffixprompt,promptcompounderlevel, seperator, givensubject,smartsubject,giventypeofimage,imagemodechance, chosengender, chosensubjectsubtypeobject, chosensubjectsubtypehumanoid, chosensubjectsubtypeconcept, givenoutfit, base_model, OBP_preset], outputs=[prompt1, prompt2, prompt3,prompt4,prompt5])
|
||||
genprom.click(gen_prompt, inputs=[insanitylevel,subject, artist, imagetype, antistring,prefixprompt, suffixprompt,promptcompounderlevel, seperator, givensubject,smartsubject,giventypeofimage,imagemodechance, chosengender, chosensubjectsubtypeobject, chosensubjectsubtypehumanoid, chosensubjectsubtypeconcept, givenoutfit, base_model, OBP_preset, amountoffluff], outputs=[prompt1, prompt2, prompt3,prompt4,prompt5])
|
||||
|
||||
prompt1toworkflow.click(prompttoworkflowprompt, inputs=prompt1, outputs=workprompt)
|
||||
prompt2toworkflow.click(prompttoworkflowprompt, inputs=prompt2, outputs=workprompt)
|
||||
@@ -915,7 +930,7 @@ class Script(scripts.Script):
|
||||
prompt4toworkflow.click(prompttoworkflowprompt, inputs=prompt4, outputs=workprompt)
|
||||
prompt5toworkflow.click(prompttoworkflowprompt, inputs=prompt5, outputs=workprompt)
|
||||
|
||||
startmain.click(generateimages, inputs=[amountofimages,size,model,samplingsteps,cfg,hiresfix,hiressteps,denoisestrength,samplingmethod, upscaler,hiresscale, apiurl, qualitygate, quality, runs,insanitylevel,subject, artist, imagetype, silentmode, workprompt, antistring, prefixprompt, suffixprompt,negativeprompt,promptcompounderlevel, seperator, img2imgbatch, img2imgsamplingsteps, img2imgcfg, img2imgsamplingmethod, img2imgupscaler, img2imgmodel,img2imgactivate, img2imgscale, img2imgpadding,img2imgdenoisestrength,ultimatesdupscale,usdutilewidth, usdutileheight, usdumaskblur, usduredraw, usduSeamsfix, usdusdenoise, usduswidth, usduspadding, usdusmaskblur, controlnetenabled, controlnetmodel,img2imgdenoisestrengthmod,enableextraupscale,controlnetblockymode,extrasupscaler1,extrasupscaler2,extrasupscaler2visiblity,extrasupscaler2gfpgan,extrasupscaler2codeformer,extrasupscaler2codeformerweight,extrasresize,onlyupscale,givensubject,smartsubject,giventypeofimage,imagemodechance, chosengender, chosensubjectsubtypeobject, chosensubjectsubtypehumanoid, chosensubjectsubtypeconcept, increasestability, qualityhiresfix, qualitymode, qualitykeep, basesize, promptvariantinsanitylevel, givenoutfit, autonegativeprompt, autonegativepromptstrength, autonegativepromptenhance, base_model, OBP_preset])
|
||||
startmain.click(generateimages, inputs=[amountofimages,size,model,samplingsteps,cfg,hiresfix,hiressteps,denoisestrength,samplingmethod, upscaler,hiresscale, apiurl, qualitygate, quality, runs,insanitylevel,subject, artist, imagetype, silentmode, workprompt, antistring, prefixprompt, suffixprompt,negativeprompt,promptcompounderlevel, seperator, img2imgbatch, img2imgsamplingsteps, img2imgcfg, img2imgsamplingmethod, img2imgupscaler, img2imgmodel,img2imgactivate, img2imgscale, img2imgpadding,img2imgdenoisestrength,ultimatesdupscale,usdutilewidth, usdutileheight, usdumaskblur, usduredraw, usduSeamsfix, usdusdenoise, usduswidth, usduspadding, usdusmaskblur, controlnetenabled, controlnetmodel,img2imgdenoisestrengthmod,enableextraupscale,controlnetblockymode,extrasupscaler1,extrasupscaler2,extrasupscaler2visiblity,extrasupscaler2gfpgan,extrasupscaler2codeformer,extrasupscaler2codeformerweight,extrasresize,onlyupscale,givensubject,smartsubject,giventypeofimage,imagemodechance, chosengender, chosensubjectsubtypeobject, chosensubjectsubtypehumanoid, chosensubjectsubtypeconcept, increasestability, qualityhiresfix, qualitymode, qualitykeep, basesize, promptvariantinsanitylevel, givenoutfit, autonegativeprompt, autonegativepromptstrength, autonegativepromptenhance, base_model, OBP_preset, amountoffluff])
|
||||
interrupt.click(tryinterrupt, inputs=[apiurl])
|
||||
|
||||
automatedoutputsfolderbutton.click(openfolder)
|
||||
@@ -1221,12 +1236,12 @@ class Script(scripts.Script):
|
||||
|
||||
|
||||
|
||||
return [insanitylevel,subject, artist, imagetype, prefixprompt,suffixprompt,negativeprompt, promptcompounderlevel, ANDtoggle, silentmode, workprompt, antistring, seperator, givensubject, smartsubject, giventypeofimage, imagemodechance, chosengender, chosensubjectsubtypeobject, chosensubjectsubtypehumanoid, chosensubjectsubtypeconcept, promptvariantinsanitylevel, givenoutfit, autonegativeprompt, autonegativepromptstrength, autonegativepromptenhance, base_model, OBP_preset]
|
||||
return [insanitylevel,subject, artist, imagetype, prefixprompt,suffixprompt,negativeprompt, promptcompounderlevel, ANDtoggle, silentmode, workprompt, antistring, seperator, givensubject, smartsubject, giventypeofimage, imagemodechance, chosengender, chosensubjectsubtypeobject, chosensubjectsubtypehumanoid, chosensubjectsubtypeconcept, promptvariantinsanitylevel, givenoutfit, autonegativeprompt, autonegativepromptstrength, autonegativepromptenhance, base_model, OBP_preset, amountoffluff]
|
||||
|
||||
|
||||
|
||||
|
||||
def run(self, p, insanitylevel, subject, artist, imagetype, prefixprompt,suffixprompt,negativeprompt, promptcompounderlevel, ANDtoggle, silentmode, workprompt, antistring,seperator, givensubject, smartsubject, giventypeofimage, imagemodechance, chosengender, chosensubjectsubtypeobject, chosensubjectsubtypehumanoid, chosensubjectsubtypeconcept, promptvariantinsanitylevel, givenoutfit, autonegativeprompt, autonegativepromptstrength, autonegativepromptenhance, base_model, OBP_preset):
|
||||
def run(self, p, insanitylevel, subject, artist, imagetype, prefixprompt,suffixprompt,negativeprompt, promptcompounderlevel, ANDtoggle, silentmode, workprompt, antistring,seperator, givensubject, smartsubject, giventypeofimage, imagemodechance, chosengender, chosensubjectsubtypeobject, chosensubjectsubtypehumanoid, chosensubjectsubtypeconcept, promptvariantinsanitylevel, givenoutfit, autonegativeprompt, autonegativepromptstrength, autonegativepromptenhance, base_model, OBP_preset, amountoffluff):
|
||||
|
||||
images = []
|
||||
infotexts = []
|
||||
@@ -1300,7 +1315,9 @@ class Script(scripts.Script):
|
||||
|
||||
|
||||
#Here is where we build a "normal" prompt
|
||||
preppedprompt += build_dynamic_prompt(insanitylevel,subject,artist, imagetype, False, antistring, prefixprompt, suffixprompt,promptcompounderlevel, seperator,givensubject,smartsubject,giventypeofimage,imagemodechance,chosengender, chosensubjectsubtypeobject, chosensubjectsubtypehumanoid, chosensubjectsubtypeconcept,True,False,-1,givenoutfit, False, base_model, OBP_preset)
|
||||
base_prompt = build_dynamic_prompt(insanitylevel,subject,artist, imagetype, False, antistring, prefixprompt, suffixprompt,promptcompounderlevel, seperator,givensubject,smartsubject,giventypeofimage,imagemodechance,chosengender, chosensubjectsubtypeobject, chosensubjectsubtypehumanoid, chosensubjectsubtypeconcept,True,False,-1,givenoutfit, False, base_model, OBP_preset)
|
||||
fluffed_prompt = flufferizer(prompt=base_prompt, amountoffluff=amountoffluff)
|
||||
preppedprompt += fluffed_prompt
|
||||
|
||||
# set the artist mode back when done (for automatic mode)
|
||||
artist = artistcopy
|
||||
@@ -1311,7 +1328,8 @@ class Script(scripts.Script):
|
||||
p.negative_prompt = negativeprompt
|
||||
|
||||
if(silentmode == True):
|
||||
p.prompt = createpromptvariant(workprompt,promptvariantinsanitylevel)
|
||||
base_prompt = createpromptvariant(workprompt,promptvariantinsanitylevel)
|
||||
p.prompt = base_prompt
|
||||
|
||||
#for j in range(batchsize):
|
||||
|
||||
@@ -1321,7 +1339,7 @@ class Script(scripts.Script):
|
||||
print(p.prompt)
|
||||
|
||||
if(autonegativeprompt):
|
||||
p.negative_prompt = build_dynamic_negative(positive_prompt=p.prompt, insanitylevel=autonegativepromptstrength,enhance=autonegativepromptenhance, existing_negative_prompt=p.negative_prompt, base_model=base_model)
|
||||
p.negative_prompt = build_dynamic_negative(positive_prompt=base_prompt, insanitylevel=autonegativepromptstrength,enhance=autonegativepromptenhance, existing_negative_prompt=p.negative_prompt, base_model=base_model)
|
||||
|
||||
|
||||
promptlist = []
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
# ComfyUI integration
|
||||
One Button Prompt is now also a ComfyUI extension.
|
||||
|
||||
There are 4 nodes currently availabe, with One Button Prompt node being the main one.
|
||||
There are 7 nodes currently availabe, with One Button Prompt node being the main one.
|
||||
You can slam it in every workflow, where you replace it with the Positive Prompt node.
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
|
||||
## Installing in ComfyUI
|
||||
@@ -59,6 +60,30 @@ Has a simple prompt output and a preset selector. You can add new presets by man
|
||||
|
||||

|
||||
|
||||
## One Button Artify
|
||||
|
||||
One Button Artify works as an artist mixer for your prompt. Like SDXL styles, but for all artists known in Stable Diffusion.
|
||||
|
||||
It works best when adding a simple prompt.
|
||||
|
||||
It has the following settings to play with:
|
||||
|
||||
- Artist --> Selection of the style of artists to choose from.
|
||||
- amount_of_artists --> Amount of artists to generate. Select random, for a choice between 1 and 3.
|
||||
- artify_mode --> __standard__ adds tags according to the chosen artist. __remix__ chooses tags from different than the chosen artist. __super remix turbo__ chooses wildly from a long list of tags.
|
||||
|
||||

|
||||
> vibrant art by Chiho Aoshima, Digital Art, cute norwegian forest cat, Superflat art movement, kawaii aesthetics, fantastical and surreal imagery, blending traditional Japanese motifs with contemporary themes, vibrant colors, otherworldly landscapes, sharp focus, dynamic, contemporary, full color, grand illumination
|
||||
|
||||
## One Button Flufferize
|
||||
|
||||
One Button Prompts lightweight implementation of Fooocus Prompt Magic. It will enhance the output by adding quality tags at the end of your prompt. See the example above.
|
||||
|
||||
It is standardly set to __dynamic__. You can turn it off by choosing __none__.
|
||||
|
||||
Choose __short__, __medium__ or __long__ for more direct control.
|
||||
|
||||
Don't __reverse the polarity!__
|
||||
|
||||
## Create Prompt Variant
|
||||
You can use the "Create Prompt Variant" node, to create variants based on a prompt you input. The strength of the variant is set with the "insanity level" slider. Simply connect it between the positive prompt and the CLIP encoder module.
|
||||
|
||||
Reference in New Issue
Block a user