From 9fa60570240ef3ffb74283fb97e08d21eb915ca3 Mon Sep 17 00:00:00 2001 From: Meisoftcoltd <38667978+Meisoftcoltd@users.noreply.github.com> Date: Thu, 2 Apr 2026 07:05:16 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20Implementar=20limpieza=20extrema=20de?= =?UTF-8?q?=20VRAM=20autom=C3=A1tica=20en=20SequentialLoopTrigger?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Añadir las dependencias gc, torch y comfy.model_management en loop.py. - Implementar vaciado profundo de VRAM al finalizar la generación de frames en el método trigger_next. - Asegurar reinicio del contador global_accumulated_frames. - Incluir soporte multiplataforma para el vaciado de cachés de PyTorch (CUDA, ROCm y MPS para Mac). --- loop.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/loop.py b/loop.py index c34cff4..80c91b1 100644 --- a/loop.py +++ b/loop.py @@ -2,6 +2,9 @@ import random import time import urllib.request import json +import gc +import torch +import comfy.model_management as mm from . import register_node global_loop_index = 0 @@ -114,5 +117,26 @@ class SequentialLoopTrigger: global_loop_index = 0 global_accumulated_frames = 0 + # --- LIMPIEZA EXTREMA DE VRAM AUTOMÁTICA (Multi-Plataforma) --- + print(f" -> 🧹 Iniciando vaciado automático de VRAM...") + try: + # 1. Obligamos al motor interno de ComfyUI a soltar los modelos + mm.unload_all_models() + mm.soft_empty_cache() + except Exception as e: + print(f" -> ⚠️ Aviso: No se pudo usar model_management: {e}") + + # 2. Forzamos al recolector de basura de Python + gc.collect() + + # 3. Le arrancamos a PyTorch la memoria reservada (CUDA, ROCm y Mac MPS) + if torch.cuda.is_available(): + torch.cuda.empty_cache() + torch.cuda.ipc_collect() + elif hasattr(torch.backends, "mps") and torch.backends.mps.is_available(): + torch.mps.empty_cache() + + print(f" -> ✨ VRAM liberada con éxito. Gráfica lista para nuevos flujos.") + print(f"{'='*50}\n") return ()