feat(isolation): DynamicVRAM compatibility for process isolation

DynamicVRAM's on-demand model loading/offloading conflicted with  process isolation in three ways: RPC tensor transport stalls from mid-call GPU offload, race conditions between model lifecycle and active RPC operations, and false positive memory leak detection from changed finalizer patterns.

- Marshal CUDA tensors to CPU before RPC transport for dynamic models
- Add operation state tracking + quiescence waits at workflow boundaries
- Distinguish proxy reference release from actual leaks in cleanup_models_gc
- Fix init order: DynamicVRAM must initialize before isolation proxies
- Add RPC timeouts to prevent indefinite hangs on model unavailability
- Prevent proxy-of-proxy chains from DynamicVRAM model reload cycles
- Add torch.device/torch.dtype serializers for new DynamicVRAM RPC paths
- Guard isolation overhead so non-isolated workflows are unaffected
- Migrate env var to PYISOLATE_CHILD
This commit is contained in:
John Pollock
2026-03-04 23:48:02 -06:00
parent a0f8784e9f
commit 9250191c65
38 changed files with 94595 additions and 307 deletions

View File

@@ -10,6 +10,25 @@ homepage = "https://www.comfy.org/"
repository = "https://github.com/comfyanonymous/ComfyUI"
documentation = "https://docs.comfy.org/"
[tool.comfy.host]
allow_network = false
writable_paths = ["/dev/shm", "/tmp"]
[tool.comfy.host.whitelist]
"ComfyUI-Crystools" = "*"
"ComfyUI-Florence2" = "*"
"ComfyUI-GGUF" = "*"
"ComfyUI-KJNodes" = "*"
"ComfyUI-LTXVideo" = "*"
"ComfyUI-Manager" = "*"
"comfyui-depthanythingv2" = "*"
"comfyui-kjnodes" = "*"
"comfyui-videohelpersuite" = "*"
"comfyui_controlnet_aux" = "*"
"rgthree-comfy" = "*"
"was-ns" = "*"
"websocket_image_save.py" = "*"
[tool.ruff]
lint.select = [
"N805", # invalid-first-argument-name-for-method