File size: 5,044 Bytes
56dd783
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
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,insanitylevel="5",subject="all", artist="all", imagetype="all",onlyartists=False, workprompt="", antistring="",prefixprompt="", suffixprompt="", negativeprompt="",promptcompounderlevel = "1", seperator="comma",givensubject="",smartsubject=True,giventypeofimage="",imagemodechance=20, gender = "all", subtypeobject = "all", subtypehumanoid = "all", subtypeconcept = "all", advancedprompting = True, hardturnoffemojis=False, seed=0, overrideoutfit="", prompt_g_and_l = False):
    loops = int(amount)  # amount of images to generate
    steps = 0
   
    insanitylevel = int(insanitylevel)
    while steps < loops:
        # build prompt
        if(prompt_g_and_l == True):
            resultlist = build_dynamic_prompt(insanitylevel,subject,artist,imagetype, onlyartists,antistring,prefixprompt,suffixprompt,promptcompounderlevel, seperator,givensubject,smartsubject,giventypeofimage,imagemodechance, gender, subtypeobject, subtypehumanoid, subtypeconcept, advancedprompting, hardturnoffemojis, seed, overrideoutfit, prompt_g_and_l)
            result = resultlist[0]
            print("prompt_g")
            print(resultlist[1])
            print("prompt_l")
            print(resultlist[2])

        else:
            result = build_dynamic_prompt(insanitylevel,subject,artist,imagetype, onlyartists,antistring,prefixprompt,suffixprompt,promptcompounderlevel, seperator,givensubject,smartsubject,giventypeofimage,imagemodechance, gender, subtypeobject, subtypehumanoid, subtypeconcept, advancedprompting, hardturnoffemojis, seed, overrideoutfit, prompt_g_and_l)
        print("")
        print("loop " + str(steps))
        print("")
        if(onlyartists == True):
            print(result)
            print("")
        
        if(result.count("-")>1 and imagetype == "only templates"):
            print("Is there a mistake in wildcards?")
            print("")
            print(result)
            break
            
        if(givensubject != "" and givensubject not in result and imagetype == "only templates"):
            print("No givensubject, there must be an issue:")
            print("")
            print(result)
            break

        if(overrideoutfit != "" and overrideoutfit not in result and onlyartists == False):
            print("The outfit override is not showing up!")
            print("")
            print(result)
            break

        if(" OR " in result or ";" in result):
            print("There is a mistake in a OR statement")
            print("")
            print(result)
            break
        
        # Use regex to find words enclosed by hyphens, the wildcards1
        # make some minor exceptions
        resultnew = result
        resultnew = resultnew.replace("-eye-", " eye ")
        resultnew = resultnew.replace("-of-", " of ")
        resultnew = resultnew.replace("-the-", " the ")
        resultnew = resultnew.replace("-up-", " up ")
        resultnew = resultnew.replace("-in-", " in ")
        resultnew = resultnew.replace("-au-", " au ")
        resultnew = resultnew.replace("-da-", " da ")
        resultnew = resultnew.replace("-doo-", " doo ")
        resultnew = resultnew.replace("-and-", " and ")
        matches = re.findall(r'-\w+-', resultnew)

        # Filter out matches with commas and spaces
        wildcards = [match for match in matches if ',' not in match and ' ' not in match]
        

        if(wildcards):
            print("There is a wildcard still in the prompt")
            print("")
            print(result)
            break

        #if("game" in result or "movie" in result or "series" in result):
        #    print("TEST THIS")
        #    print("")
         #   print(result)
        #    break


        steps += 1
    

    print("")
    print("All done!")

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"
                , False # only artists
                ,"","","PREFIXPROMPT" 
                ,"SUFFIXPROMPT"
                ,"",1,""
                ,"" # subject override
                ,True, # smart subject
                "",20
                , "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
                , "all" # concept types
                , False  # prompt switching
                , True  # Turn off emojis
                , 0  # seed
                , "" #outfit override
                , False #prompt_g_and_l
                )