Added a utility node for cleaning up directory

This commit is contained in:
Aryan185
2025-11-12 14:12:31 +00:00
parent 6664a5d987
commit 0af0ffa376
2 changed files with 60 additions and 2 deletions
+3 -2
View File
@@ -10,8 +10,9 @@ from .gemini_segment import NODE_CLASS_MAPPINGS as GEMINI_SEGMENT_MAPPINGS, NODE
from .nano_banana import NODE_CLASS_MAPPINGS as NANO_BANANA_MAPPINGS, NODE_DISPLAY_NAME_MAPPINGS as NANO_BANANA_DISPLAY
from .gemini_tts import NODE_CLASS_MAPPINGS as GEMINI_TTS_MAPPINGS, NODE_DISPLAY_NAME_MAPPINGS as GEMINI_TTS_DISPLAY
from .elevenlabs_tts import NODE_CLASS_MAPPINGS as ELEVENLABS_TTS_MAPPINGS, NODE_DISPLAY_NAME_MAPPINGS as ELEVENLABS_TTS_DISPLAY
from .cleanup import NODE_CLASS_MAPPINGS as CLEANUP_MAPPINGS, NODE_DISPLAY_NAME_MAPPINGS as CLEANUP_DISPLAY
NODE_CLASS_MAPPINGS = {**PRO_MAPPINGS, **MAX_MAPPINGS, **GEMINI_MAPPINGS, **GPT_IMAGE_MAPPINGS, **IMAGEN_IMAGE_MAPPINGS, **IMAGEN_EDIT_MAPPINGS, **VEO_MAPPINGS, **VEO_GEMINI_MAPPINGS, **GEMINI_SEGMENT_MAPPINGS, **NANO_BANANA_MAPPINGS, **GEMINI_TTS_MAPPINGS, **ELEVENLABS_TTS_MAPPINGS}
NODE_DISPLAY_NAME_MAPPINGS = {**PRO_DISPLAY, **MAX_DISPLAY, **GEMINI_DISPLAY, **GPT_IMAGE_DISPLAY, **IMAGEN_IMAGE_DISPLAY, **IMAGEN_EDIT_DISPLAY, **VEO_DISPLAY, **VEO_GEMINI_DISPLAY, **GEMINI_SEGMENT_DISPLAY, **NANO_BANANA_DISPLAY, **GEMINI_TTS_DISPLAY, **ELEVENLABS_TTS_DISPLAY}
NODE_CLASS_MAPPINGS = {**PRO_MAPPINGS, **MAX_MAPPINGS, **GEMINI_MAPPINGS, **GPT_IMAGE_MAPPINGS, **IMAGEN_IMAGE_MAPPINGS, **IMAGEN_EDIT_MAPPINGS, **VEO_MAPPINGS, **VEO_GEMINI_MAPPINGS, **GEMINI_SEGMENT_MAPPINGS, **NANO_BANANA_MAPPINGS, **GEMINI_TTS_MAPPINGS, **ELEVENLABS_TTS_MAPPINGS, **CLEANUP_MAPPINGS}
NODE_DISPLAY_NAME_MAPPINGS = {**PRO_DISPLAY, **MAX_DISPLAY, **GEMINI_DISPLAY, **GPT_IMAGE_DISPLAY, **IMAGEN_IMAGE_DISPLAY, **IMAGEN_EDIT_DISPLAY, **VEO_DISPLAY, **VEO_GEMINI_DISPLAY, **GEMINI_SEGMENT_DISPLAY, **NANO_BANANA_DISPLAY, **GEMINI_TTS_DISPLAY, **ELEVENLABS_TTS_DISPLAY, **CLEANUP_DISPLAY}
__all__ = ['NODE_CLASS_MAPPINGS', 'NODE_DISPLAY_NAME_MAPPINGS']
+57
View File
@@ -0,0 +1,57 @@
import os
import time
import shutil
from comfy.comfy_types.node_typing import IO
class ClearDirectoryNode:
@classmethod
def INPUT_TYPES(cls):
return {
"required": {
"directory": ("STRING", {"default": ""}),
"sleep_seconds": ("FLOAT", {"default": 1.0, "min": 0.0}),
},
"optional": {
"any_input": (IO.ANY,),
}
}
RETURN_TYPES = (IO.ANY, "STRING")
RETURN_NAMES = ("any_output", "status")
FUNCTION = "clear_and_return"
CATEGORY = "Utility/File"
def clear_and_return(self, directory, sleep_seconds, any_input=None):
if not directory:
return (any_input, "no_directory_provided")
dirpath = os.path.expanduser(directory)
if not os.path.exists(dirpath):
return (any_input, f"directory_not_found:{dirpath}")
if not os.path.isdir(dirpath):
return (any_input, f"not_a_directory:{dirpath}")
try:
time.sleep(float(sleep_seconds))
except Exception:
pass
try:
for name in os.listdir(dirpath):
path = os.path.join(dirpath, name)
try:
if os.path.islink(path) or os.path.isfile(path):
os.remove(path)
elif os.path.isdir(path):
shutil.rmtree(path)
except Exception as e:
return (any_input, f"error_removing:{path}:{e}")
return (any_input, "cleared")
except Exception as e:
return (any_input, f"error:{e}")
NODE_CLASS_MAPPINGS = {"ClearDirectoryNode": ClearDirectoryNode}
NODE_DISPLAY_NAME_MAPPINGS = {"ClearDirectoryNode": "Clear Directory After Sleep"}