Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
12ddad3cfb |
@@ -39,38 +39,18 @@ class ComfyUIDeployExternalImageBatch:
|
||||
|
||||
CATEGORY = "image"
|
||||
|
||||
def process_image(self, image):
|
||||
image = ImageOps.exif_transpose(image)
|
||||
image = image.convert("RGB")
|
||||
image = np.array(image).astype(np.float32) / 255.0
|
||||
image_tensor = torch.from_numpy(image)[None,]
|
||||
return image_tensor
|
||||
|
||||
def run(self, input_id, images=None, default_value=None, display_name=None, description=None):
|
||||
import requests
|
||||
import zipfile
|
||||
import io
|
||||
|
||||
processed_images = []
|
||||
try:
|
||||
images_list = json.loads(images) # Assuming images is a JSON array string
|
||||
print(images_list)
|
||||
for img_input in images_list:
|
||||
if img_input.startswith('http'):
|
||||
import requests
|
||||
from io import BytesIO
|
||||
print("Fetching image from url: ", img_input)
|
||||
response = requests.get(img_input)
|
||||
image = Image.open(BytesIO(response.content))
|
||||
elif img_input.startswith('http') and img_input.endswith('.zip'):
|
||||
print("Fetching zip file from url: ", img_input)
|
||||
response = requests.get(img_input)
|
||||
zip_file = zipfile.ZipFile(io.BytesIO(response.content))
|
||||
for file_name in zip_file.namelist():
|
||||
if file_name.lower().endswith(('.png', '.jpg', '.jpeg')):
|
||||
with zip_file.open(file_name) as file:
|
||||
image = Image.open(file)
|
||||
image = self.process_image(image)
|
||||
processed_images.append(image)
|
||||
elif img_input.startswith('data:image/png;base64,') or img_input.startswith('data:image/jpeg;base64,') or img_input.startswith('data:image/jpg;base64,'):
|
||||
import base64
|
||||
from io import BytesIO
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
import folder_paths
|
||||
from PIL import Image, ImageOps
|
||||
import numpy as np
|
||||
import torch
|
||||
import folder_paths
|
||||
from tqdm import tqdm
|
||||
|
||||
class AnyType(str):
|
||||
def __ne__(self, __value: object) -> bool:
|
||||
return False
|
||||
|
||||
|
||||
WILDCARD = AnyType("*")
|
||||
|
||||
|
||||
class OuterPortLoadModel:
|
||||
@classmethod
|
||||
def INPUT_TYPES(s):
|
||||
return {
|
||||
"required": {
|
||||
"ckpt_name": (folder_paths.get_filename_list("checkpoints"), {"tooltip": "The name of the checkpoint (model) to load."}),
|
||||
}
|
||||
}
|
||||
RETURN_TYPES = ("MODEL", "CLIP", "VAE")
|
||||
OUTPUT_TOOLTIPS = ("The model used for denoising latents.",
|
||||
"The CLIP model used for encoding text prompts.",
|
||||
"The VAE model used for encoding and decoding images to and from latent space.")
|
||||
FUNCTION = "load_checkpoint"
|
||||
|
||||
CATEGORY = "loaders"
|
||||
DESCRIPTION = "Loads a diffusion model checkpoint, diffusion models are used to denoise latents."
|
||||
|
||||
def load_checkpoint(self, ckpt_name):
|
||||
ckpt_path = folder_paths.get_full_path("checkpoints", ckpt_name)
|
||||
out = comfy.sd.load_checkpoint_guess_config(ckpt_path, output_vae=True, output_clip=True, embedding_directory=folder_paths.get_folder_paths("embeddings"))
|
||||
return out[:3]
|
||||
|
||||
NODE_CLASS_MAPPINGS = {"OuterPortLoadModel": OuterPortLoadModel}
|
||||
NODE_DISPLAY_NAME_MAPPINGS = {"OuterPortLoadModel": "Outer Port Load Model"}
|
||||
Reference in New Issue
Block a user