fixes use seed button for multiple dream queues

This commit is contained in:
tim h 2022-12-15 09:25:20 -06:00
parent 3207e86566
commit a7e02cd76d

View file

@ -102,9 +102,11 @@ const _dream = async (endpoint, request) => {
generating = false; generating = false;
} }
var responseSubdata = JSON.parse(data.info); var responseSubdata = JSON.parse(data.info);
stableDiffusionData.lastSeeds.push(...responseSubdata.all_seeds); var returnData = {
images: data.images,
return data.images; seeds: responseSubdata.all_seeds,
};
return returnData;
}; };
/** /**
@ -280,6 +282,7 @@ const _generate = async (endpoint, request, bb, options = {}) => {
let at = 0; let at = 0;
/** @type {Array<string|null>} */ /** @type {Array<string|null>} */
const images = [null]; const images = [null];
const seeds = [-1];
/** @type {HTMLDivElement} */ /** @type {HTMLDivElement} */
let imageSelectMenu = null; let imageSelectMenu = null;
// Layer for the images // Layer for the images
@ -363,8 +366,9 @@ const _generate = async (endpoint, request, bb, options = {}) => {
}); });
imageCollection.inputElement.appendChild(interruptButton); imageCollection.inputElement.appendChild(interruptButton);
stableDiffusionData.lastSeeds = []; var dreamData = await _dream(endpoint, requestCopy);
images.push(...(await _dream(endpoint, requestCopy))); images.push(...dreamData.images);
seeds.push(...dreamData.seeds);
stopDrawingStatus = true; stopDrawingStatus = true;
at = 1; at = 1;
} catch (e) { } catch (e) {
@ -384,7 +388,7 @@ const _generate = async (endpoint, request, bb, options = {}) => {
if (at < 0) at = images.length - 1; if (at < 0) at = images.length - 1;
imageindextxt.textContent = `${at}/${images.length - 1}`; imageindextxt.textContent = `${at}/${images.length - 1}`;
var seed = stableDiffusionData.lastSeeds[at - 1]; var seed = seeds[at];
seedbtn.title = "Use seed " + seed; seedbtn.title = "Use seed " + seed;
redraw(); redraw();
}; };
@ -394,7 +398,7 @@ const _generate = async (endpoint, request, bb, options = {}) => {
if (at >= images.length) at = 0; if (at >= images.length) at = 0;
imageindextxt.textContent = `${at}/${images.length - 1}`; imageindextxt.textContent = `${at}/${images.length - 1}`;
var seed = stableDiffusionData.lastSeeds[at - 1]; var seed = seeds[at];
seedbtn.title = "Use seed " + seed; seedbtn.title = "Use seed " + seed;
redraw(); redraw();
}; };
@ -438,7 +442,9 @@ const _generate = async (endpoint, request, bb, options = {}) => {
parseInt(requestCopy.seed) + parseInt(requestCopy.seed) +
requestCopy.batch_size * requestCopy.n_iter; requestCopy.batch_size * requestCopy.n_iter;
} }
images.push(...(await _dream(endpoint, requestCopy))); dreamData = await _dream(endpoint, requestCopy);
images.push(...dreamData.images);
seeds.push(...dreamData.seeds);
imageindextxt.textContent = `${at}/${images.length - 1}`; imageindextxt.textContent = `${at}/${images.length - 1}`;
} catch (e) { } catch (e) {
alert( alert(
@ -661,7 +667,7 @@ const _generate = async (endpoint, request, bb, options = {}) => {
img.addEventListener("load", () => { img.addEventListener("load", () => {
const response = prompt( const response = prompt(
"Enter new resource name", "Enter new resource name",
"Dream Resource " + stableDiffusionData.lastSeeds[at - 1] "Dream Resource " + seeds[at]
); );
if (response) { if (response) {
tools.stamp.state.addResource(response, img); tools.stamp.state.addResource(response, img);
@ -681,7 +687,7 @@ const _generate = async (endpoint, request, bb, options = {}) => {
const seedbtn = document.createElement("button"); const seedbtn = document.createElement("button");
seedbtn.textContent = "U"; seedbtn.textContent = "U";
seedbtn.title = "Use seed " + `${stableDiffusionData.lastSeeds[at - 1]}`; seedbtn.title = "Use seed " + `${seeds[at]}`;
seedbtn.addEventListener("click", () => { seedbtn.addEventListener("click", () => {
sendSeed(at); sendSeed(at);
}); });
@ -1879,5 +1885,5 @@ window.onbeforeunload = async () => {
function sendSeed(seedIndex) { function sendSeed(seedIndex) {
stableDiffusionData.seed = document.getElementById("seed").value = stableDiffusionData.seed = document.getElementById("seed").value =
stableDiffusionData.lastSeeds[seedIndex - 1]; seeds[seedIndex - 1];
} }