puts default scripts into separate file, begins possibility of user-defined script file

This commit is contained in:
tim h 2023-02-04 10:34:26 -06:00
parent c8ef073531
commit c41ec4be46
4 changed files with 50 additions and 67 deletions

16
defaultscripts.json Normal file
View file

@ -0,0 +1,16 @@
{
"defaultScripts": {
"Loopback": {
"titleText": "Params:\nloops (int) //def: 8\ndenoising_strength_change_factor (decimal, 0.90-1.10) //def: 0.99",
"scriptValues": "[8, 0.99]"
},
"Prompt matrix": {
"titleText": "Params:\nput_at_start (bool): expect pipe (|) delimited options at start of prompt //def: false\ndifferent_seeds (bool): use different seeds for each picture //def: false",
"scriptValues": "[false, false]"
},
"X/Y/Z plot": {
"titleText": "Params:\nx_type (int): index of axis type (see below) //def: 3\nx_values (mixed, str) //def: \"0.00-0.99 [4]\"\ny_type (int) //def: 4\ny_values (mixed, str) //def: \"5-30 [4]\"\nz_type (int) //def: 5\nz_values (mixed, str) //def: \"2.5-12.5 [4]\"\ndraw_legend (bool): return grid of all images //def: false\ninclude_lone_images (bool): return individual images //def: true\ninclude_subgrids (bool) //def: false\nno_fixed_seeds (bool): use different seeds for each picture //def: false\n\nAvailable axis types:\n0: Nothing\n1: Seed\n2: Var. seed\n3: Var. strength\n4: Steps\n5: Hires steps (txt2img only)\n6: CFG Scale\n7: Prompt S/R\n8: Prompt order\n9: Sampler (txt2img only)\n10: Sampler (img2img only)\n11: Checkpoint Name\n12: Sigma Churn\n13: Sigma min\n14: Sigma max\n15: Sigma noise\n16: Eta\n17: Clip skip\n18: Denoising\n19: Hires upscaler (txt2img only)\n20: Cond. Image Mask Weight (img2img only)\n21: VAE\n22: Styles",
"scriptValues": "[3, \"0.00-0.99 [4]\", 4, \"5-30 [4]\", 6, \"2.5-12.5 [4]\", false, true, false, false]"
}
}
}

View file

@ -371,13 +371,6 @@
<div id="script-select" class="script-select"> <div id="script-select" class="script-select">
<select id="script-selector" onchange="changeScript(event)"> <select id="script-selector" onchange="changeScript(event)">
<option id="no_selected_script" value="">Select a script...</option> <option id="no_selected_script" value="">Select a script...</option>
<option id="loopback" value="Loopback">
Loopback (img2img only)
</option>
<option id="prompt_matrix" value="Prompt matrix">
Prompt Matrix
</option>
<option id="xy_plot" value="X/Y/Z plot">X/Y/Z plot</option>
<option id="custom" value="custom">Other</option> <option id="custom" value="custom">Other</option>
</select> </select>
</div> </div>
@ -454,7 +447,7 @@
<!-- Content --> <!-- Content -->
<script src="js/prompt.js?v=7a1c68c" type="text/javascript"></script> <script src="js/prompt.js?v=7a1c68c" type="text/javascript"></script>
<script src="js/index.js?v=3642e58" type="text/javascript"></script> <script src="js/index.js?v=e87f7bf" type="text/javascript"></script>
<script <script
src="js/ui/floating/history.js?v=4f29db4" src="js/ui/floating/history.js?v=4f29db4"

View file

@ -144,6 +144,7 @@ var host = "";
var url = "/sdapi/v1/"; var url = "/sdapi/v1/";
const basePixelCount = 64; //64 px - ALWAYS 64 PX const basePixelCount = 64; //64 px - ALWAYS 64 PX
var focused = true; var focused = true;
let defaultScripts = {};
function startup() { function startup() {
testHostConfiguration(); testHostConfiguration();
@ -170,6 +171,7 @@ function startup() {
changeRestoreFaces(); changeRestoreFaces();
changeSyncCursorSize(); changeSyncCursorSize();
checkFocus(); checkFocus();
loadDefaultScripts();
} }
function setFixedHost(h, changePromptMessage) { function setFixedHost(h, changePromptMessage) {
@ -1358,6 +1360,19 @@ function checkFocus() {
} }
} }
async function loadDefaultScripts() {
selector = document.getElementById("script-selector");
const response = await fetch("./defaultscripts.json");
const json = await response.json();
for (const key in json.defaultScripts) {
var opt = document.createElement("option");
opt.value = opt.innerHTML = key;
selector.appendChild(opt);
}
defaultScripts = json;
//return json;
}
function changeScript(evt) { function changeScript(evt) {
let enable = () => { let enable = () => {
scriptName.disabled = false; scriptName.disabled = false;
@ -1371,63 +1386,6 @@ function changeScript(evt) {
scriptName.value = selected; scriptName.value = selected;
disable(); disable();
switch (selected) { switch (selected) {
case "Loopback": {
scriptArgs.value = "[8, 0.99]";
scriptArgs.title =
"Params:\n" +
"loops (int) //def: 8\n" +
"denoising_strength_change_factor (decimal, 0.90-1.10) //def: 0.99";
break;
}
case "Prompt matrix": {
scriptArgs.value = "[false, false]";
scriptArgs.title =
"Params:\n" +
"put_at_start (bool): expect pipe (|) delimited options at start of prompt //def: false\n" +
"different_seeds (bool): use different seeds for each picture //def: false";
break;
}
case "X/Y/Z plot": {
scriptArgs.value =
'[3, "0.00-0.99 [4]", 4, "5-30 [4]", 6, "2.5-12.5 [4]", false, true, false, false]';
scriptArgs.title =
"Params:\n" +
"x_type (int): index of axis type (see below) //def: 3\n" +
'x_values (mixed, str) //def: "0.00-0.99 [4]"\n' +
"y_type (int) //def: 4\n" +
'y_values (mixed, str) //def: "5-30 [4]"\n' +
"z_type (int) //def: 5\n" +
'z_values (mixed, str) //def: "2.5-12.5 [4]"\n' +
"draw_legend (bool): return grid of all images //def: false\n" +
"include_lone_images (bool): return individual images //def: true\n" +
"include_subgrids (bool) //def: false\n" +
"no_fixed_seeds (bool): use different seeds for each picture //def: false\n\n" +
"Available axis types:\n" +
"0: Nothing\n" +
"1: Seed\n" +
"2: Var. seed\n" +
"3: Var. strength\n" +
"4: Steps\n" +
"5: Hires steps (txt2img only)\n" +
"6: CFG Scale\n" +
"7: Prompt S/R\n" +
"8: Prompt order\n" +
"9: Sampler (txt2img only)\n" +
"10: Sampler (img2img only)\n" +
"11: Checkpoint Name\n" +
"12: Sigma Churn\n" +
"13: Sigma min\n" +
"14: Sigma max\n" +
"15: Sigma noise\n" +
"16: Eta\n" +
"17: Clip skip\n" +
"18: Denoising\n" +
"19: Hires upscaler (txt2img only)\n" +
"20: Cond. Image Mask Weight (img2img only)\n" +
"21: VAE\n" +
"22: Styles";
break;
}
case "custom": { case "custom": {
scriptName.value = ""; scriptName.value = "";
scriptArgs.value = ""; scriptArgs.value = "";
@ -1435,10 +1393,20 @@ function changeScript(evt) {
enable(); enable();
break; break;
} }
case "": case "": {
default: { // specifically no selected script
scriptArgs.value = ""; scriptArgs.value = "";
scriptArgs.title = ""; scriptArgs.title = "";
break;
}
default: {
// check defaultScripts objects for selected script
scriptName.value = selected;
scriptArgs.value = defaultScripts.defaultScripts[selected].scriptValues;
scriptArgs.title = defaultScripts.defaultScripts[selected].titleText;
// if not found, check user scripts
// if not found, wtf
} }
} }
} }

6
userdefinedscripts.json Normal file
View file

@ -0,0 +1,6 @@
{
"userScript1": {
"title": "template",
"scriptValues": "[1, 0.999, true, \"4-10 [3]\", \"test text\"]"
}
}