Comfy-Org / Comfy-Org/comfy-aimdo

System-wide network/internet throughput drops drastically after a generation runs, persists until ComfyUI process is closed

Open
#87 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C
Stars
67
Forks
39
Avg merge
1d 25m
Merged PRs (30d)
10

Description

Environment

GPU: NVIDIA GeForce GTX 1650 (4096 MB VRAM, Turing architecture)
System RAM: 16 GB
OS: Windows
ComfyUI: portable Windows build, revision 30 bb131be9, released 2026-06-30
comfy-aimdo version: 0.4.10
comfy-kitchen version: 0.2.16
PyTorch: 2.12.0+cu126
Tested with Dynamic VRAM both enabled (default) and explicitly disabled (--disable-dynamic-vram) — see below

Symptom

Once at least one image generation has run in a ComfyUI session, overall system network throughput (measured with Ookla Speedtest, in Chrome, on a separate network-facing app) drops drastically — from a normal baseline of ~130 Mbps down to roughly 1–11 Mbps. This degraded state:

Persists through idle periods (i.e. it does NOT recover once the generation finishes and the queue is empty — confirmed by running a speedtest while ComfyUI was confirmed idle/no job running, well after the prompt had finished).
Recovers immediately upon fully closing the ComfyUI console/process (confirmed multiple times back-to-back: ~1.5–11 Mbps while running → ~130+ Mbps within seconds of closing the console window).
Is reproducible across multiple separate test sessions on different days.

What I ruled out

The ComfyUI python.exe process itself sending/receiving data: Task Manager's per-process Network column consistently shows ~0 Mb/s for the ComfyUI python.exe process throughout, even while the system-wide speedtest result is degraded. Confirmed via "Open file location" that the process is specifically ...\ComfyUI_windows_portable\python_embeded\python.exe (Python 3.12.10), not a different Python install.
Antivirus/firewall interference: added an explicit outbound+inbound Windows Firewall block rule for that exact python.exe path — made no difference to the symptom.
Other local Python processes: found other unrelated Python 3.10 processes running on the machine at the same time (a separate in-house application), confirmed via file path that they are unrelated to ComfyUI.
General connection instability: the connection (T-Mobile fixed wireless) is otherwise consistently stable — confirmed via repeated speedtests with ComfyUI fully closed, always in the 100+ Mbps range.

Hardware/driver angle I suspect (unconfirmed)

Given the pattern — only starts after the first active generation, not tied to whether a job is currently running, and only clears on full process exit — I suspect this may be related to comfy-aimdo's on-demand VRAM paging (VBAR reservation via cuMemAddressReserve/cuMemMap, CUDA driver hooking — "installing 6 hooks" in the startup log) staying active/resident for the lifetime of the process rather than being released between jobs. I don't have low-level tooling to confirm this is actually the cause vs. some other driver-level interaction (e.g. WDDM/GPU driver behavior specific to older Turing cards like the GTX 1650), so flagging it as a hypothesis rather than a diagnosis.

Steps to reproduce

Start ComfyUI (portable Windows build) with a GPU-heavy workflow (in my case: Z-Image Turbo GGUF Q4_K_M, 768x768, 8 steps).
Confirm baseline network speed with ComfyUI closed (should be normal for your connection).
Start ComfyUI, run one generation to completion.
With the queue empty and ComfyUI idle, run a speedtest again — throughput drops drastically.
Fully close the ComfyUI console — throughput recovers within seconds.

Question

Has anyone else observed anything like this? Is there a known interaction between the Dynamic VRAM / comfy-aimdo CUDA hooking mechanism and network throughput, particularly on older (Turing-generation) GPUs? Happy to provide full startup + generation logs if useful.

Contributor guide

Open the contributing guide

Research direction

Reproduce the issue with the portable Windows build, the stated GPU-heavy workflow, and both Dynamic VRAM modes, measuring speed before and after a generation and after process exit. Start with the startup and generation logs, especially the “installing 6 hooks” message, and compare the behavior with --disable-dynamic-vram. Done means confirming or ruling out a persistent comfy-aimdo/CUDA-hooking interaction and documenting the evidence.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
ai-infra-agents, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.