Removed as now part of LoadImage node

This commit is contained in:
pythongosssss
2023-03-09 19:20:41 +00:00
parent ace9895bd0
commit 8010d9b056
3 changed files with 0 additions and 124 deletions
-35
View File
@@ -1,35 +0,0 @@
This will embed the selected image into the generated images which probably isnt desired
Havent checked if there is a better way to filter these out.
Current fix for this is to add this to execution.py:
def prune_prompt(prompt):
pruned_prompt = {}
for n in prompt:
class_type = prompt[n]['class_type']
class_def = nodes.NODE_CLASS_MAPPINGS[class_type]
valid_inputs = class_def.INPUT_TYPES()
pruned_prompt[n] = copy.deepcopy(prompt[n])
if "inputs" in pruned_prompt[n]:
for x in pruned_prompt[n]["inputs"]:
input_type = None
if ("required" in valid_inputs and x in valid_inputs["required"]):
input_type = valid_inputs["required"][x]
elif ("optional" in valid_inputs and x in valid_inputs["optional"]):
input_type = valid_inputs["optional"][x]
if input_type is not None and input_type[0] == "B64IMAGE":
pruned_prompt[n]["inputs"][x] = None
return pruned_prompt
And call that from
if h[x] == "PROMPT":
input_data_all[x] = prune_prompt(prompt)
It also requires increasing the maximum request size on the API in server.py
self.app = web.Application(client_max_size=20971520)
Or some other sensible limit
-54
View File
@@ -1,54 +0,0 @@
import { app } from "/scripts/app.js";
// Adds a new UploadImage node
const toBase64 = (file) =>
new Promise((resolve, reject) => {
const reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = () => resolve(reader.result);
reader.onerror = (error) => reject(error);
});
app.registerExtension({
name: "Comfy.UploadImage",
async getCustomWidgets() {
return {
B64IMAGE(node) {
let uploadWidget;
const fileInput = document.createElement("input");
Object.assign(fileInput, {
type: "file",
accept: "image/jpeg,image/png",
style: "display: none",
onchange: () => {
if (fileInput.files.length) {
const img = new Image();
img.onload = () => {
node.imgs = [img];
};
toBase64(fileInput.files[0]).then((d) => {
img.src = d;
});
}
},
});
document.body.append(fileInput);
uploadWidget = node.addWidget("button", "image", "image", () => {
fileInput.click();
});
uploadWidget.serializeValue = () => {
if(node.imgs && node.imgs.length) {
return node.imgs[0].src;
}
return null;
};
return { widget: uploadWidget };
},
};
},
});
-35
View File
@@ -1,35 +0,0 @@
from PIL import Image
import numpy as np
import torch
class UploadImage:
@classmethod
def INPUT_TYPES(s):
return {"required":
{"image": ("B64IMAGE",)},
}
CATEGORY = "image"
RETURN_TYPES = ("IMAGE",)
FUNCTION = "load_image"
def load_image(self, image):
from io import BytesIO
import re
import base64
if image.startswith("data:image/"):
image_data = re.sub('^data:image/.+;base64,', '', image)
i = Image.open(BytesIO(base64.b64decode(image_data)))
else:
raise Exception("Invalid image data")
image = i.convert("RGB")
image = np.array(image).astype(np.float32) / 255.0
image = torch.from_numpy(image)[None,]
return (image,)
NODE_CLASS_MAPPINGS = {
"UploadImage": UploadImage,
}