ComfyUI Said the Render Took 5 Seconds — Two Reasons the Number Was Not Real
2 September 2026
I set out to measure how long ComfyUI takes to generate an image, and the numbers that came back made no sense.
The pictures appeared. The timer said five seconds. On one run it said zero.
This article records the two reasons ComfyUI reported times that were not real, and how to tell each one apart. Both were found on the machines here, and the commands I used are included so you can check the same thing yourself.
When a render finishes in five seconds, what is actually happening inside ComfyUI?
How I measured, and on what hardware
Two machines were used.
| Machine | Graphics card | VRAM |
|---|---|---|
| Desktop (Ubuntu) | RTX 3090 | 24GB |
| Mini PC | RTX 5060 Ti / RTX 3060 | 16GB / 12GB |
VRAM is the memory that belongs to the graphics card itself. It is separate from the memory in the computer, and image and video models are loaded into it before any calculation starts.
Every condition was repeated at least three times. A single run cannot tell you whether something was slow once or slow always.
Reason 1: the render that finished in five seconds
The same picture was generated five times with the same settings, and each run was timed.
| Run | Time |
|---|---|
| 1st | 245.3 s |
| 2nd | 5.0 s |
| 3rd | 0.0 s |
| 4th | 5.1 s |
| 5th | 5.0 s |
245 seconds became 5 seconds. Nothing got faster. From the second run onward, ComfyUI was handing back the previous result.
ComfyUI keeps what each node was given, and skips the calculation when the inputs have not changed. While you are building a workflow this is a help. While you are timing one, it is a trap.
The seed counts as part of those inputs. The seed is the starting point for the random numbers, so the same seed produces the same picture — which means repeating a run without changing it produces no calculation at all.
The fix is to change the seed on every measurement.
# change the seed on every measurement
for i in 1 2 3 4 5; do
SEED=$((9100 + i)) ./bench.py
done
How to spot it
The elapsed time is the clue. When 245 seconds turns into 5, treat it as no calculation having happened. The 0.0 second run leaves no room for doubt.
If you genuinely need to repeat a run with the same seed, restart ComfyUI in between. A restart clears what it remembered.
Reason 2: the card that was not doing the work
With two graphics cards in the mini PC, timing the RTX 3060 gave 36.2 seconds — about the same as the RTX 5060 Ti.
The other numbers recorded alongside it did not agree.
| Recorded | Value |
|---|---|
| Elapsed time | 36.2 s |
| VRAM in use | 12 MiB |
| Power draw | 20 W |
12 MiB of VRAM and 20 watts. That card was doing nothing. The work was happening on the RTX 5060 Ti next to it, and 36.2 seconds was its number.
The cause is a startup option. --cuda-device decides which graphics card ComfyUI uses, and leaving it out selects the first one.
How many cards are installed makes no difference to that choice. With two or with three, omitting the option runs the first. The more cards you add, the better the odds that the one you meant to measure stays silent.
# first card (an RTX 5060 Ti here)
python main.py --port 8188 --cuda-device 0
# second card (RTX 3060). Give it a different port
python main.py --port 8189 --cuda-device 1
Which card holds which number is shown by:
nvidia-smi --query-gpu=index,name,memory.total --format=csv,noheader
Measured again with the second card actually selected, the RTX 3060 took 63.0 seconds — 1.74 times the 36.2 seconds of the RTX 5060 Ti. Nothing like the first figure.
How to spot it
Looking at the generated picture will never reveal this. Watching VRAM and power draw during the run will: they show whether that card is doing anything at all.
# print the state of the chosen card once a second
nvidia-smi --query-gpu=memory.used,power.draw,utilization.gpu \
--format=csv,noheader -i 1 -l 1
On a card that is not working, both stay flat.
What the two failures have in common
Neither one produces an error. The run completes, the picture is fine, and only the number is wrong.
| Record alongside the time | What it tells you |
|---|---|
| Elapsed time | A change of an order of magnitude suggests nothing was calculated |
| VRAM in use | Flat means that card is not working |
| Power draw | The same. Around 20 W is idle |
| Seed | Whether it was changed on every run |
Watch the timer alone and both slip past you.
What I did not measure this time
The seed finding is about how ComfyUI reuses results. Whether other image generation software behaves the same way was not checked.
The card numbering was observed on a machine with two cards attached through an adapter. Whether the same order appears with two cards seated directly on a motherboard was not verified here.
Two cards is as far as this went. Omitting the option selects the first card by definition of the startup option, so that part does not depend on the count, but how the numbering falls out with three or more was not measured.
In summary: record more than the clock
Two things made ComfyUI report times that were not real.
The first was repeating a run without changing the seed, so nothing after the first run was calculated. When 245 seconds turns into 5, be suspicious.
The second was leaving out the startup option, so the work happened on a different card from the one being measured. If VRAM and power draw are flat, that card is not working.
Neither raises an error, so the elapsed time on its own will not tell you. Record VRAM and power draw next to it and both become visible.
Getting image generation running in the first place is covered here.










Discussion
New Comments
No comments yet. Be the first one!