Files
fn_registry/python/functions/ml/comfyui_interrupt_queue.md
T
egutierrez d3f05a19a5 feat(ml): auto-commit con 11 cambios
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-24 01:39:30 +02:00

2.6 KiB

name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, params, output, tested, tests, test_file_path, file_path
name kind lang domain version purity signature description tags uses_functions uses_types returns returns_optional error_type imports params output tested tests test_file_path file_path
comfyui_interrupt_queue function py ml 1.0.0 impure def comfyui_interrupt_queue(server: str = "127.0.0.1:8188") -> dict Corta la generacion en curso de ComfyUI (POST /interrupt) y devuelve el estado de la cola (GET /queue). Devuelve {ok, interrupted, queue_running, queue_pending, error}. NO lanza excepcion en fallo de red: degrada a {ok: False, error}. /interrupt corta solo el prompt en ejecucion, no vacia los pendientes. Impura: HTTP POST + GET, solo stdlib (urllib, json).
comfyui
ml
queue
interrupt
control
http
false error_go_core
name desc
server host:port del servidor ComfyUI sin esquema (default '127.0.0.1:8188').
dict con ok (bool, True si interrupt + lectura de cola OK), interrupted (bool, True si POST /interrupt respondio), queue_running (int, prompts ejecutandose), queue_pending (int, prompts encolados), error (str, vacio si todo OK). false
python/functions/ml/comfyui_interrupt_queue.py

Ejemplo

import sys, os
sys.path.insert(0, os.path.join(os.environ["HOME"], "fn_registry", "python", "functions"))
from ml.comfyui_interrupt_queue import comfyui_interrupt_queue

res = comfyui_interrupt_queue()
# {'ok': True, 'interrupted': True, 'queue_running': 0, 'queue_pending': 0, 'error': ''}
if res["ok"] and res["interrupted"]:
    print(f"cortado; pendientes en cola: {res['queue_pending']}")

O lanzable directo con: ./fn run comfyui_interrupt_queue.

Cuando usarla

Para abortar una generacion que se esta tomando demasiado, que tira de mas VRAM de la prevista, o tras encolar por error un workflow pesado. Tambien para inspeccionar de un vistazo cuanto queda en cola (queue_running / queue_pending) sin parsear el JSON de /queue a mano. Es el freno de mano del round-trip build -> submit -> wait.

Gotchas

  • /interrupt corta SOLO el prompt en ejecucion; los pendientes (queue_pending) siguen y el siguiente arranca de inmediato. Para vaciar la cola entera hay que llamar POST /queue con {"clear": true} (no lo hace esta funcion — solo corta
    • lee).
  • No es idempotente en el sentido de "sin efecto": si hay algo ejecutandose, lo mata. Si la cola esta vacia, el interrupt es inocuo (interrupted=True igual).
  • En fallo de red NO lanza: devuelve ok=False con el mensaje en error. Comprueba ok antes de fiarte de los conteos.
  • Tras el interrupt conviene liberar VRAM con POST /free si vas a encolar otro trabajo pesado (esta funcion no lo hace).