first set of changes

This commit is contained in:
AIrjen
2024-02-24 09:53:10 +01:00
parent 82550b9579
commit 3281db5f19
5 changed files with 411 additions and 17 deletions
+27 -1
View File
@@ -2,6 +2,8 @@ import random
import re
from csv_reader import *
from random_functions import *
from one_button_presets import OneButtonPresets
OBPresets = OneButtonPresets()
@@ -10,7 +12,7 @@ from random_functions import *
# insanity level controls randomness of propmt 0-10
# forcesubject van be used to force a certain type of subject
# Set artistmode to none, to exclude artists
def build_dynamic_prompt(insanitylevel = 5, forcesubject = "all", artists = "all", imagetype = "all", onlyartists = False, antivalues = "", prefixprompt = "", suffixprompt ="",promptcompounderlevel ="1", seperator = "comma", givensubject="",smartsubject = True,giventypeofimage="", imagemodechance = 20, gender = "all", subtypeobject="all", subtypehumanoid="all", subtypeconcept="all", advancedprompting=True, hardturnoffemojis=False, seed=-1, overrideoutfit="", prompt_g_and_l = False, base_model = "SD1.5"):
def build_dynamic_prompt(insanitylevel = 5, forcesubject = "all", artists = "all", imagetype = "all", onlyartists = False, antivalues = "", prefixprompt = "", suffixprompt ="",promptcompounderlevel ="1", seperator = "comma", givensubject="",smartsubject = True,giventypeofimage="", imagemodechance = 20, gender = "all", subtypeobject="all", subtypehumanoid="all", subtypeconcept="all", advancedprompting=True, hardturnoffemojis=False, seed=-1, overrideoutfit="", prompt_g_and_l = False, base_model = "SD1.5", OBP_preset = ""):
remove_weights = False
less_verbose = False
@@ -27,6 +29,30 @@ def build_dynamic_prompt(insanitylevel = 5, forcesubject = "all", artists = "all
if(advancedprompting != False and random.randint(0,max(0, insanitylevel - 2)) <= 0):
advancedprompting == False
if(OBP_preset == OBPresets.RANDOM_PRESET_OBP):
obp_options = OBPresets.load_obp_presets()
random_preset = random.choice(list(obp_options.keys()))
print("Engaging randomized presets, locking on to: " + random_preset)
selected_opb_preset = OBPresets.get_obp_preset(random_preset)
insanitylevel = selected_opb_preset["insanitylevel"]
forcesubject = selected_opb_preset["subject"]
artists = selected_opb_preset["artist"]
subtypeobject = selected_opb_preset["chosensubjectsubtypeobject"]
subtypehumanoid = selected_opb_preset["chosensubjectsubtypehumanoid"]
subtypeconcept = selected_opb_preset["chosensubjectsubtypeconcept"]
gender = selected_opb_preset["chosengender"]
imagetype = selected_opb_preset["imagetype"]
imagemodechance = selected_opb_preset["imagemodechance"]
givensubject = selected_opb_preset["givensubject"]
smartsubject = selected_opb_preset["smartsubject"]
overrideoutfit = selected_opb_preset["givenoutfit"]
prefixprompt = selected_opb_preset["prefixprompt"]
suffixprompt = selected_opb_preset["suffixprompt"]
giventypeofimage = selected_opb_preset["giventypeofimage"]
antistring = selected_opb_preset["antistring"]
originalartistchoice = artists
doartistnormal = True
outfitmode = 0
+2
View File
@@ -1,6 +1,7 @@
import json
import os
import shutil
import random
class OneButtonPresets:
@@ -8,6 +9,7 @@ class OneButtonPresets:
DEFAULT_OBP_FILE = os.path.join(script_dir, "./presets/obp_presets.default")
OBP_FILE = os.path.join(script_dir, "./userfiles/obp_presets.json")
CUSTOM_OBP = "Custom..."
RANDOM_PRESET_OBP = "All (random)..."
def __init__(self):
self.opb_presets = self.load_obp_presets()
+4 -3
View File
@@ -10,7 +10,7 @@ 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, base_model = "SD1.5"):
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, base_model = "SD1.5", OBP_preset = ""):
loops = int(amount) # amount of images to generate
steps = 0
@@ -18,7 +18,7 @@ def generateprompts(amount = 1,insanitylevel="5",subject="all", artist="all", im
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, base_model)
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, base_model, OBP_preset)
result = resultlist[0]
print("prompt_g")
print(resultlist[1])
@@ -26,7 +26,7 @@ def generateprompts(amount = 1,insanitylevel="5",subject="all", artist="all", im
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, base_model)
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, base_model, OBP_preset)
print("")
print("loop " + str(steps))
print("")
@@ -115,4 +115,5 @@ generateprompts(10,5
, "" #outfit override
, False #prompt_g_and_l
, "SDXL" #base model
, "All (random)..." #preset "All (random)..."
)
+16 -13
View File
@@ -234,12 +234,12 @@ 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):
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):
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))
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))
return promptlist
@@ -272,13 +272,15 @@ class Script(scripts.Script):
Presets can be used to store and load settings.
Set the One Button Preset to __"Custom..."__ to show all settings. The settings will give you more control over what you wish to generate.
Choose __"All (random)..."__ to get a random preset each prompt generation.
</font>
""")
# Part of presets
with gr.Row():
OBP_preset = gr.Dropdown(
label="One Button Preset",
choices=[OBPresets.CUSTOM_OBP] + list(OBPresets.opb_presets.keys()),
choices=[OBPresets.RANDOM_PRESET_OBP] + [OBPresets.CUSTOM_OBP] + list(OBPresets.opb_presets.keys()),
value="Standard",
)
@@ -905,7 +907,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], 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], outputs=[prompt1, prompt2, prompt3,prompt4,prompt5])
prompt1toworkflow.click(prompttoworkflowprompt, inputs=prompt1, outputs=workprompt)
prompt2toworkflow.click(prompttoworkflowprompt, inputs=prompt2, outputs=workprompt)
@@ -913,7 +915,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])
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])
interrupt.click(tryinterrupt, inputs=[apiurl])
automatedoutputsfolderbutton.click(openfolder)
@@ -982,9 +984,7 @@ class Script(scripts.Script):
}
obp_options[obp_preset_name] = opts
OBPresets.save_obp_preset(obp_options)
choices = list(obp_options.keys()) + [
OBPresets.CUSTOM_OBP
]
choices = [OBPresets.RANDOM_PRESET_OBP] + list(obp_options.keys()) + [OBPresets.CUSTOM_OBP]
return gr.update(choices=choices, value=obp_preset_name)
else:
return gr.update()
@@ -1019,9 +1019,12 @@ class Script(scripts.Script):
# Skip if Custom was selected
if selection == OBPresets.CUSTOM_OBP:
return [gr.update()] * 16
# Update Custom values based on selected One Button preset
selected_opb_preset = OBPresets.get_obp_preset(selection)
if selection == OBPresets.RANDOM_PRESET_OBP:
selected_opb_preset = OBPresets.get_obp_preset("Standard")
else:
selected_opb_preset = OBPresets.get_obp_preset(selection)
return [
insanitylevel.update(value=selected_opb_preset["insanitylevel"]),
subject.update(value=selected_opb_preset["subject"]),
@@ -1218,12 +1221,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]
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]
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):
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):
images = []
infotexts = []
@@ -1297,7 +1300,7 @@ 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)
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)
# set the artist mode back when done (for automatic mode)
artist = artistcopy
+362
View File
@@ -0,0 +1,362 @@
{
"Standard": {
"insanitylevel": 5,
"subject": "all",
"artist": "all",
"chosensubjectsubtypeobject": "all",
"chosensubjectsubtypehumanoid": "all",
"chosensubjectsubtypeconcept": "all",
"chosengender": "all",
"imagetype": "all",
"imagemodechance": 20,
"givensubject": "",
"smartsubject": true,
"givenoutfit": "",
"prefixprompt": "",
"suffixprompt": "",
"giventypeofimage": "",
"antistring": ""
},
"Consistent results": {
"insanitylevel": 2,
"subject": "concept",
"artist": "none",
"chosensubjectsubtypeobject": "flora",
"chosensubjectsubtypehumanoid": "generic humans",
"chosensubjectsubtypeconcept": "names from card based games",
"chosengender": "all",
"imagetype": "fixed styles mode",
"imagemodechance": "20",
"givensubject": "",
"smartsubject": true,
"givenoutfit": "",
"prefixprompt": "",
"suffixprompt": "",
"giventypeofimage": "",
"antistring": ""
},
"Unique People Portraits": {
"insanitylevel": 3,
"subject": "humanoid",
"artist": "photography",
"chosensubjectsubtypeobject": "all",
"chosensubjectsubtypehumanoid": "based on first name",
"chosensubjectsubtypeconcept": "all",
"chosengender": "all",
"imagetype": "portrait",
"imagemodechance": "100",
"givensubject": "",
"smartsubject": true,
"givenoutfit": "",
"prefixprompt": "photograph",
"suffixprompt": "",
"giventypeofimage": "",
"antistring": ""
},
"Artful People Portraits": {
"insanitylevel": 5,
"subject": "humanoid",
"artist": "character",
"chosensubjectsubtypeobject": "all",
"chosensubjectsubtypehumanoid": "generic humans",
"chosensubjectsubtypeconcept": "all",
"chosengender": "all",
"imagetype": "art blaster mode",
"imagemodechance": 20,
"givensubject": "",
"smartsubject": true,
"givenoutfit": "",
"prefixprompt": "",
"suffixprompt": "portrait art by -artist-",
"giventypeofimage": "",
"antistring": ""
},
"D&D Style Portraits": {
"insanitylevel": 2,
"subject": "humanoid",
"artist": "fantasy",
"chosensubjectsubtypeobject": "all",
"chosensubjectsubtypehumanoid": "humanoids",
"chosensubjectsubtypeconcept": "all",
"chosengender": "all",
"imagetype": "digital art",
"imagemodechance": "100",
"givensubject": "",
"smartsubject": true,
"givenoutfit": "",
"prefixprompt": "D&D style portrait, fantasy",
"suffixprompt": "detailed face",
"giventypeofimage": "",
"antistring": ""
},
"Cybernetic Animals": {
"insanitylevel": 3,
"subject": "animal",
"artist": "sci-fi",
"chosensubjectsubtypeobject": "all",
"chosensubjectsubtypehumanoid": "generic humans",
"chosensubjectsubtypeconcept": "all",
"chosengender": "all",
"imagetype": "digital art",
"imagemodechance": 100,
"givensubject": "robotic subject",
"smartsubject": true,
"givenoutfit": "cybernetics",
"prefixprompt": "sci-fi",
"suffixprompt": "",
"giventypeofimage": "",
"antistring": ""
},
"Greg mode - The Preset": {
"insanitylevel": 3,
"subject": "humanoid",
"artist": "greg mode",
"chosensubjectsubtypeobject": "all",
"chosensubjectsubtypehumanoid": "generic humans",
"chosensubjectsubtypeconcept": "all",
"chosengender": "all",
"imagetype": "digital art",
"imagemodechance": 100,
"givensubject": "",
"smartsubject": true,
"givenoutfit": "-outfit-",
"prefixprompt": "",
"suffixprompt": "",
"giventypeofimage": "",
"antistring": ""
},
"Cyberpunk Characters": {
"insanitylevel": 3,
"subject": "humanoid",
"artist": "character",
"chosensubjectsubtypeobject": "all",
"chosensubjectsubtypehumanoid": "all",
"chosensubjectsubtypeconcept": "all",
"chosengender": "all",
"imagetype": "concept art",
"imagemodechance": "100",
"givensubject": "cyborg subject, background is night city, neon-lit",
"smartsubject": true,
"givenoutfit": "",
"prefixprompt": "cyberpunk",
"suffixprompt": "neon hue, shadowrun",
"giventypeofimage": "",
"antistring": ""
},
"Waifu's": {
"insanitylevel": 7,
"subject": "humanoid",
"artist": "none",
"chosensubjectsubtypeobject": "all",
"chosensubjectsubtypehumanoid": "generic humans",
"chosensubjectsubtypeconcept": "all",
"chosengender": "female",
"imagetype": "subject only mode",
"imagemodechance": "20",
"givensubject": "-basicbitchdescriptor- 1girl, solo,",
"smartsubject": true,
"givenoutfit": "",
"prefixprompt": "(((masterpiece))), (((best quality))), anime style, 2d,",
"suffixprompt": "key visual",
"giventypeofimage": "",
"antistring": ""
},
"Husbando's": {
"insanitylevel": 7,
"subject": "humanoid",
"artist": "none",
"chosensubjectsubtypeobject": "all",
"chosensubjectsubtypehumanoid": "generic humans",
"chosensubjectsubtypeconcept": "all",
"chosengender": "male",
"imagetype": "subject only mode",
"imagemodechance": "20",
"givensubject": "-basicbitchdescriptor- 1boy, solo,",
"smartsubject": true,
"givenoutfit": "",
"prefixprompt": "(((masterpiece))), (((best quality))), anime style, 2d,",
"suffixprompt": "key visual",
"giventypeofimage": "",
"antistring": ""
},
"Fashion Models": {
"insanitylevel": 3,
"subject": "humanoid",
"artist": "fashion",
"chosensubjectsubtypeobject": "all",
"chosensubjectsubtypehumanoid": "generic humans",
"chosensubjectsubtypeconcept": "all",
"chosengender": "all",
"imagetype": "photograph",
"imagemodechance": "100",
"givensubject": "supermodel",
"smartsubject": true,
"givenoutfit": "fashion outfit",
"prefixprompt": "",
"suffixprompt": "",
"giventypeofimage": "Fashion photography",
"antistring": ""
},
"WIERD HATS": {
"insanitylevel": 4,
"subject": "humanoid",
"artist": "none",
"chosensubjectsubtypeobject": "all",
"chosensubjectsubtypehumanoid": "generic humans",
"chosensubjectsubtypeconcept": "all",
"chosengender": "all",
"imagetype": "photograph",
"imagemodechance": "100",
"givensubject": "",
"smartsubject": true,
"givenoutfit": "headwear",
"prefixprompt": "",
"suffixprompt": "",
"giventypeofimage": "",
"antistring": ""
},
"Wallpaper art": {
"insanitylevel": 3,
"subject": "concept",
"artist": "digital",
"chosensubjectsubtypeobject": "all",
"chosensubjectsubtypehumanoid": "all",
"chosensubjectsubtypeconcept": "the X of Y concepts",
"chosengender": "female",
"imagetype": "all",
"imagemodechance": 6,
"givensubject": "",
"smartsubject": true,
"givenoutfit": "",
"prefixprompt": "small centered composition, product shot, plain background",
"suffixprompt": "",
"giventypeofimage": "wallpaper art, in the center is an image",
"antistring": ""
},
"The Connaisseur": {
"insanitylevel": 5,
"subject": "concept",
"artist": "all (wild)",
"chosensubjectsubtypeobject": "all",
"chosensubjectsubtypehumanoid": "all",
"chosensubjectsubtypeconcept": "lines from poems",
"chosengender": "female",
"imagetype": "unique art mode",
"imagemodechance": 20,
"givensubject": "",
"smartsubject": true,
"givenoutfit": "",
"prefixprompt": "",
"suffixprompt": "",
"giventypeofimage": "",
"antistring": ""
},
"Interesting Landscapes": {
"insanitylevel": 5,
"subject": "landscape",
"artist": "landscape",
"chosensubjectsubtypeobject": "buildings",
"chosensubjectsubtypehumanoid": "all",
"chosensubjectsubtypeconcept": "all",
"chosengender": "all",
"imagetype": "all",
"imagemodechance": 100,
"givensubject": "",
"smartsubject": true,
"givenoutfit": "",
"prefixprompt": "",
"suffixprompt": "",
"giventypeofimage": "",
"antistring": ""
},
"Relaxing Seascapes": {
"insanitylevel": 4,
"subject": "concept",
"artist": "seascape",
"chosensubjectsubtypeobject": "buildings",
"chosensubjectsubtypehumanoid": "all",
"chosensubjectsubtypeconcept": "all",
"chosengender": "all",
"imagetype": "painting",
"imagemodechance": 100,
"givensubject": "seascape",
"smartsubject": true,
"givenoutfit": "",
"prefixprompt": "",
"suffixprompt": "",
"giventypeofimage": "",
"antistring": ""
},
"Architecture": {
"insanitylevel": 3,
"subject": "object",
"artist": "architecture",
"chosensubjectsubtypeobject": "buildings",
"chosensubjectsubtypehumanoid": "all",
"chosensubjectsubtypeconcept": "all",
"chosengender": "all",
"imagetype": "all",
"imagemodechance": 100,
"givensubject": "",
"smartsubject": true,
"givenoutfit": "",
"prefixprompt": "building",
"suffixprompt": "",
"giventypeofimage": "architecture",
"antistring": ""
},
"Nature": {
"insanitylevel": 4,
"subject": "object",
"artist": "nature",
"chosensubjectsubtypeobject": "flora",
"chosensubjectsubtypehumanoid": "generic humans",
"chosensubjectsubtypeconcept": "all",
"chosengender": "all",
"imagetype": "all",
"imagemodechance": "6",
"givensubject": "",
"smartsubject": true,
"givenoutfit": "",
"prefixprompt": "",
"suffixprompt": "",
"giventypeofimage": "",
"antistring": ""
},
"Let the CFG sort it out": {
"insanitylevel": 2,
"subject": "concept",
"artist": "all (wild)",
"chosensubjectsubtypeobject": "buildings",
"chosensubjectsubtypehumanoid": "all",
"chosensubjectsubtypeconcept": "all",
"chosengender": "all",
"imagetype": "all",
"imagemodechance": 1,
"givensubject": "-cardname-, -episodetitle-, \"-poemline-\", \"-songline-\"",
"smartsubject": true,
"givenoutfit": "",
"prefixprompt": "",
"suffixprompt": "",
"giventypeofimage": "",
"antistring": ""
},
"Now this is podracing": {
"insanitylevel": 9,
"subject": "concept",
"artist": "all (wild)",
"chosensubjectsubtypeobject": "flora",
"chosensubjectsubtypehumanoid": "generic humans",
"chosensubjectsubtypeconcept": "all",
"chosengender": "all",
"imagetype": "massive madness mode",
"imagemodechance": "20",
"givensubject": "",
"smartsubject": true,
"givenoutfit": "",
"prefixprompt": "",
"suffixprompt": "",
"giventypeofimage": "",
"antistring": ""
}
}