Dreamspire's picture
custom_nodes
f2dbf59
import gc
import torch.cuda
import comfy.model_management
class AnyType(str):
"""A special class that is always equal in not equal comparisons. Credit to pythongosssss"""
def __eq__(self, __value: object) -> bool:
return True
def __ne__(self, __value: object) -> bool:
return False
any = AnyType("*")
class PurgeVRAMNode:
def __init__(self):
pass
@classmethod
def INPUT_TYPES(cls):
return {
"required": {
"anything": (any, {}),
"purge_cache": ("BOOLEAN", {"default": True}),
"purge_models": ("BOOLEAN", {"default": True}),
},
"optional": {
}
}
RETURN_TYPES = ()
FUNCTION = "purge_vram"
CATEGORY = "tbox/other"
OUTPUT_NODE = True
def purge_vram(self, anything, purge_cache, purge_models):
gc.collect()
if torch.cuda.is_available():
torch.cuda.empty_cache()
torch.cuda.ipc_collect()
if purge_models:
comfy.model_management.unload_all_models()
comfy.model_management.soft_empty_cache()
return (None,)