xxxxxxxxxx
76
let local_sd_api = "https://gpu.gohai.xyz:3000/";
let imgs = [];
let state = 1;
function setup() {
createCanvas(400, 400);
requestLSD("GET", "sdapi/v1/options", gotOptions);
}
function gotOptions(results) {
console.log("Current model " + results.sd_model_checkpoint);
if (
results.sd_model_checkpoint != "sd_xl_refiner_1.0.safetensors [7440042bbd]"
) {
selectModel("sd_xl_refiner_1.0.safetensors [7440042bbd]");
} else {
modelReady();
}
}
function selectModel(sd_model_checkpoint) {
let options = {
sd_model_checkpoint: sd_model_checkpoint,
};
console.log("Changing to " + sd_model_checkpoint);
requestLSD("POST", "sdapi/v1/options", options, modelReady);
}
function modelReady() {
console.log("Model ready");
predict("An astronaut riding a rainbow unicorn");
}
function predict(prompt) {
let modelInput = {
prompt: prompt
};
console.log("txt2img: " + prompt);
requestLSD("POST", "sdapi/v1/txt2img", modelInput, donePredicting);
}
function donePredicting(results) {
if (results && results.images.length > 0) {
loadImage("data:image/png;base64," + results.images[0], imageLoaded);
}
}
function imageLoaded(img) {
imgs.push(img);
console.log("New image ready, now " + imgs.length + " in array");
}
function draw() {
background(255);
if (state == 1) {
// state transition
if (imgs.length == 1) {
console.log("Going to state 2");
predict("A house made out of cheese");
state++;
}
} else if (state == 2) {
image(imgs[0], 0, 0, width, height);
// state transition
if (imgs.length == 2 && mouseIsPressed) {
console.log("Going to state 3");
state++;
}
} else if (state == 3) {
image(imgs[1], 0, 0, width, height);
}
}