Fix: Windows access violation during startup when loading comfy_api_nodes (pydantic-core GC issue)
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 85/100
Línea de trabajo
Los cambios van en comfy_api_nodes/apis/__init__.py y nodes.py dentro de init_builtin_api_nodes(). Envuelve las importaciones de modelos y la carga de nodos con gc.disable()/gc.enable() como se especifica. Hecho significa que ComfyUI se inicia en Windows sin la violación de acceso tras varias ejecuciones.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem
On Windows, ComfyUI crashes at startup with Windows fatal exception: access violation while loading the built-in API nodes (comfy_api_nodes). The stack trace points to pydantic's schema generation, triggered during import of comfy_api_nodes/apis/__init__.py (a file with ~1000+ pydantic models).
Root cause
This is a known bug in pydantic-core on Windows: the cyclic garbage collector traverses pydantic-core's internal objects (validators/serializers) while they are still being constructed, corrupting refcounts and causing the access violation. Tracked in pydantic discussion #13839.
Fix
Disable the cyclic GC while constructing all pydantic models in apis/__init__.py and during the loading of built-in API nodes:
In comfy_api_nodes/apis/__init__.py (add at the top):
import gc as _gc
_gc_was_enabled = _gc.isenabled()
_gc.disable()
And at the very end of the file:
if _gc_was_enabled:
_gc.enable()
In nodes.py -> init_builtin_api_nodes():
import gc
gc_was_enabled = gc.isenabled()
gc.disable()
try:
for node_file in api_nodes_files:
if not await load_custom_node(node_file, module_parent="comfy_api_nodes"):
import_failed.append(os.path.basename(node_file))
finally:
if gc_was_enabled:
gc.enable()
Verification
Tested across 8 consecutive startup runs — all completed successfully with no access violations.
Environment
- Windows 11, Python 3.12.10
- pydantic 2.14.2, pydantic-core 2.50.2
- ComfyUI 0.42.5
- Lenguaje dominante
- Python
- Estrellas
- 146k
- Forks
- 17.4k
- Merge medio
- 19 h 44 min
- PR fusionados (30 d)
- 178
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Comfy-Org/ComfyUI
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
-
ROCm gfx1100: contiguous-k/v SDPA workaround is gfx1151-only, MiniMax H3 sampling 2.2x slower on RX 7900 XTXPosiblemente ocupada @TwelveNights la tomó hace 3 días. AbiertoPotential Bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Sub-quadratic attention is ~10x slower on long sequences on RDNA2 (gfx1030) because the key passed to bmm is non-contiguousPosiblemente ocupada @KornienkoDev la tomó hace 3 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
-
MoGe-3 output is nondeterministic on CUDA: sparse_pool3d_mean sums with float index_add_ (atomics)Posiblemente ocupada @potoior la tomó hace 9 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Comfy-Org/ComfyUI#17498 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
TRELLIS.2 texture bake fails under --bf16-vae: BakeTextureFromVoxel 'Got unsupported ScalarType BFloat16'Posiblemente ocupada @Shubham-Padkonde la tomó hace 11 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Los mantenedores suelen responder en 1 día
Todos los issues de Comfy-Org/ComfyUI
Issues similares
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
OCA/account-invoicing#2529 ·
Los mantenedores suelen responder en 1 día
-
area/ci
Dificultad 1/5 Menos de una hora Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día
-
ImageGen generate-batch aborts valid JSONL jobs containing a Unicode line separator in poster textAbiertobug imagen skills
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Email validation accepts a trailing newlinePosiblemente ocupada @marcello-pichini la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día