Prefix working with automatic

Moved cleaning into seperate function, now also works with calling for Artists only mode
This commit is contained in:
AIrjen
2023-05-29 07:37:50 +02:00
parent 208f142dfc
commit c39ad48527
3 changed files with 44 additions and 39 deletions
+35 -30
View File
@@ -548,7 +548,10 @@ def build_dynamic_prompt(insanitylevel = 5, forcesubject = "all", artists = "all
if(onlyartists == True):
completeprompt = completeprompt.strip(", ")
# clean it up
completeprompt = cleanup(completeprompt)
print("only generated these artists:" + completeprompt)
return completeprompt
@@ -1047,36 +1050,10 @@ def build_dynamic_prompt(insanitylevel = 5, forcesubject = "all", artists = "all
attachedlist = allwildcardslistwithhybridlists[allwildcardslistwithhybrid.index(wildcard)]
completeprompt = replacewildcard(completeprompt, insanitylevel, wildcard, attachedlist,True)
completeprompt = re.sub('\[ ', '[', completeprompt)
completeprompt = re.sub(' \]', ']', completeprompt)
completeprompt = re.sub(' \|', '|', completeprompt)
completeprompt = re.sub(' \"', '\"', completeprompt)
completeprompt = re.sub('\" ', '\"', completeprompt)
completeprompt = re.sub('\( ', '(', completeprompt)
completeprompt = re.sub(' \(', '(', completeprompt)
completeprompt = re.sub('\) ', ')', completeprompt)
completeprompt = re.sub(' \)', ')', completeprompt)
completeprompt = re.sub(' :', ':', completeprompt)
completeprompt = re.sub(',,', ', ', completeprompt)
completeprompt = re.sub(',,,', ', ', completeprompt)
completeprompt = re.sub(', ,', ',', completeprompt)
completeprompt = re.sub(' , ', ', ', completeprompt)
completeprompt = re.sub(',\(', ', (', completeprompt)
completeprompt = re.sub('a The', 'The', completeprompt)
completeprompt = re.sub(', ,', ',', completeprompt)
completeprompt = completeprompt.strip(", ")
# clean it up
completeprompt = cleanup(completeprompt)
#just for me, some fun with posting fake dev messages (ala old sim games)
if(random.randint(1, 50)==1):
@@ -1111,4 +1088,32 @@ def replacewildcard(completeprompt, insanitylevel, wildcard,listname, activatehy
completeprompt = completeprompt.replace(wildcard, random.choice(listname),1)
return completeprompt
def cleanup(completeprompt):
# all cleanup steps moved here
completeprompt = re.sub('\[ ', '[', completeprompt)
completeprompt = re.sub(' \]', ']', completeprompt)
completeprompt = re.sub(' \|', '|', completeprompt)
completeprompt = re.sub(' \"', '\"', completeprompt)
completeprompt = re.sub('\" ', '\"', completeprompt)
completeprompt = re.sub('\( ', '(', completeprompt)
completeprompt = re.sub(' \(', '(', completeprompt)
completeprompt = re.sub('\) ', ')', completeprompt)
completeprompt = re.sub(' \)', ')', completeprompt)
completeprompt = re.sub(' :', ':', completeprompt)
completeprompt = re.sub(',,', ', ', completeprompt)
completeprompt = re.sub(',,,', ', ', completeprompt)
completeprompt = re.sub(', ,', ',', completeprompt)
completeprompt = re.sub(' , ', ', ', completeprompt)
completeprompt = re.sub(',\(', ', (', completeprompt)
completeprompt = re.sub('a The', 'The', completeprompt)
completeprompt = re.sub(', ,', ',', completeprompt)
completeprompt = completeprompt.strip(", ")
return completeprompt
+6 -6
View File
@@ -10,22 +10,22 @@ from build_dynamic_prompt import *
def generateprompts(amount = 1,insanitylevel="5",subject="all", artist="all", imagetype="all",silentmode=False, workprompt="", antistring="",prefixprompt="", suffixprompt="", negativeprompt="",promptcompounderlevel = "1", seperator="comma",givensubject="",smartsubject=True,giventypeofimage=""):
def generateprompts(amount = 1,insanitylevel="5",subject="all", artist="all", imagetype="all",onlyartists=False, workprompt="", antistring="",prefixprompt="", suffixprompt="", negativeprompt="",promptcompounderlevel = "1", seperator="comma",givensubject="",smartsubject=True,giventypeofimage=""):
loops = int(amount) # amount of images to generate
steps = 0
insanitylevel = int(insanitylevel)
while steps < loops:
# build prompt
if(silentmode==True and workprompt == ""):
print("Trying to use provided workflow prompt, but is empty. Generating a random prompt instead.")
result = build_dynamic_prompt(insanitylevel,subject,artist,imagetype, False,antistring,prefixprompt,suffixprompt,promptcompounderlevel, seperator,givensubject,smartsubject,giventypeofimage)
result = build_dynamic_prompt(insanitylevel,subject,artist,imagetype, onlyartists,antistring,prefixprompt,suffixprompt,promptcompounderlevel, seperator,givensubject,smartsubject,giventypeofimage)
print("")
print("loop " + str(steps))
print("")
if(onlyartists == True):
print(result)
print("")
@@ -35,4 +35,4 @@ def generateprompts(amount = 1,insanitylevel="5",subject="all", artist="all", im
print("")
print("All done!")
generateprompts(100,10)
generateprompts(10,7,"all","all","all",True,"","","")
+3 -3
View File
@@ -654,9 +654,9 @@ class Script(scripts.Script):
print("Automatic and artist mode set to none, don't work together well. Ignoring this setting!")
artist = "all"
if(ANDtoggle == "automatic" and (prefixprompt != "")):
print("Automatic doesnt work well if there is an prefix prompt filled in. Ignoring this prompt fields!")
prefixprompt = ""
#if(ANDtoggle == "automatic" and (prefixprompt != "")):
# print("Automatic doesnt work well if there is an prefix prompt filled in. Ignoring this prompt fields!")
# prefixprompt = ""