Files
daxcay-ComfyUI-JDCN/JDCN_AnyFileListHelper.py
T
daxcay b5d49a1ebb Category Name Change and Making New REPO for Research tool
Decision was due to the increase of loading size of JDCN users who were not Using Reasearch nodes
2024-04-26 18:06:02 +05:30

101 lines
2.4 KiB
Python

import os
import glob
import torch
import numpy as np
from PIL import Image, ImageSequence
from .shared import FILE_EXTENSIONS
def filter_strings(input_list, search_for):
search_strings = search_for.split(",")
filtered_list = []
for string in input_list:
for search_string in search_strings:
if search_string.strip() in string:
filtered_list.append(string)
break
return filtered_list
def pickFolders(list):
filtered_list = []
for str in list:
if os.path.isdir(str):
filtered_list.append(str)
return filtered_list
class JDCN_AnyFileListHelper:
def __init__(self):
pass
@classmethod
def INPUT_TYPES(s):
FilterBy = [
"*",
"images",
"audio",
"video",
"text",
"folder"
]
FileExtensions = ["*"]
FileExtensions.extend(FILE_EXTENSIONS["images"])
FileExtensions.extend(FILE_EXTENSIONS["audio"])
FileExtensions.extend(FILE_EXTENSIONS["video"])
FileExtensions.extend(FILE_EXTENSIONS["text"])
return {
"required": {
"List": ("STRING", {"forceInput": True}),
"search": ("STRING", {}),
"filter_by": (FilterBy,),
"extension": (FileExtensions,),
},
}
INPUT_IS_LIST = True
RETURN_TYPES = ("STRING",)
RETURN_NAMES = ("out",)
OUTPUT_IS_LIST = (True,)
OUTPUT_NODE = True
FUNCTION = "make_list"
CATEGORY = "🔵 JDCN 🔵"
def make_list(self, List, search, filter_by, extension):
revised = filter_strings(List, search[0])
if len(revised) == 0:
return ([],)
if filter_by[0] == "folder":
revised = pickFolders(revised)
elif filter_by[0] == "*":
pass
else:
revised = filter_strings(revised, ",".join(FILE_EXTENSIONS[filter_by[0]]))
if len(revised) == 0:
return ([],)
if extension[0] != "*":
revised = filter_strings(revised, extension[0])
if len(revised) == 0:
return ([],)
return (revised,)
N_CLASS_MAPPINGS = {
"JDCN_AnyFileListHelper": JDCN_AnyFileListHelper,
}
N_DISPLAY_NAME_MAPPINGS = {
"JDCN_AnyFileListHelper": "JDCN_AnyFileListHelper",
}