Hmm, it looks like ReActor can be quite fragile around ComfyUI updates:
I do not think this is simply “the NVIDIA driver update broke ReActor.”
My guess is that your environment is now in a mixed state:
ComfyUI was updated or moved to a newer Python / PyTorch / CUDA stack
↓
The new ComfyUI stack required a newer NVIDIA driver
↓
The driver update made the base ComfyUI stack partially usable again
↓
But ReActor still depends on ONNX Runtime GPU / CUDA DLLs / cuDNN / Python wheels
↓
Those ReActor-side dependencies no longer match cleanly
↓
Trying an NSFW fork or another ReActor variant probably made the Python environment more mixed
So the problem is probably not one single thing. It is more likely a combination of:
- ComfyUI base stack change
- NVIDIA driver requirement
- PyTorch CUDA version
- ONNX Runtime GPU provider
- CUDA / cuDNN DLL loading
- ReActor install script / Python environment
- possibly a fork or NSFW variant modifying dependencies
- video workflow instability on top of that
That is why reinstalling only the NVIDIA driver, or only reinstalling ReActor from Manager, may not fix it.
The important distinction
There are two different GPU stacks involved here:
ComfyUI / PyTorch stack:
used for most image generation
ReActor / ONNX Runtime stack:
used for face analysis / face swap / face restore paths
These can break independently.
So this can happen:
torch.cuda.is_available() == True
ComfyUI can generate images
but ReActor still fails
because ONNX Runtime CUDAExecutionProvider is broken
That is a common source of confusion.
Why the driver update may have been necessary
The current ComfyUI Windows portable documentation says the portable build includes Python 3.13 and PyTorch CUDA 13.0, and it tells users to update NVIDIA drivers if ComfyUI does not start:
For CUDA 13.x, NVIDIA’s compatibility table requires a 580+ NVIDIA driver:
So updating the driver was probably reasonable.
But the driver is only one layer. ReActor can still fail if ONNX Runtime GPU, cuDNN, CUDA DLLs, or Python wheels are mismatched.
Why ReActor specifically can break after updates
ReActor is not just a simple ComfyUI node. It pulls in a separate face-processing stack.
Relevant docs and reports:
ONNX Runtime’s CUDA provider documentation is especially important because it explains that CUDA and cuDNN major versions must match the ONNX Runtime build. In particular, cuDNN 8.x and cuDNN 9.x builds are not interchangeable.
That means ReActor can fail even if the rest of ComfyUI looks okay.
There are also similar ReActor failure reports:
-
Missing cublasLt64_12.dll from onnxruntime_providers_cuda.dll:
-
Similar CUDA / CPU tensor / CUDA provider problems:
-
Python 3.13 + GPEN-BFR restore path producing CUDA DLL errors:
-
ReActor using CPU instead of GPU on newer ComfyUI portable / Python 3.13 setups:
-
ReActor install script failing because it could not find ComfyUI’s embedded Python and tried to use system Python instead:
-
Manager install / ReActor import failure:
These are not all exactly the same as your case, but they show the same general pattern: ReActor can break when ComfyUI, Python, PyTorch, ONNX Runtime, CUDA, cuDNN, and custom-node updates move together.
I would not keep repairing the current folder in-place
Because you already tried several things, the current environment may be hard to reason about.
It may now contain some combination of:
official ReActor
old ReActor files
Manager-installed files
fork / NSFW variant files
onnxruntime
onnxruntime-gpu
changed numpy / opencv / protobuf / insightface packages
possibly packages installed into system Python
possibly packages installed into ComfyUI embedded Python
At that point, it is very hard to know which layer is broken.
So I would not keep pressing random fixes in the current folder.
I would do this instead:
1. Preserve the broken folder as a backup
2. Create a clean updated ComfyUI portable install next to it
3. Confirm the clean ComfyUI base works
4. Confirm PyTorch CUDA works
5. Move models only
6. Install official ReActor only
7. Verify ONNX Runtime providers
8. Test ReActor on one still image
9. Only then move old workflows and video nodes back
This is usually faster than trying to surgically repair a mixed Python environment.
Recommended recovery path
Step 0: Stop changing the broken install
Rename the current folder, but do not delete it:
ComfyUI_windows_portable
->
ComfyUI_windows_portable_broken_backup
Keep it because it may contain:
models/
input/
output/
user/
workflows/
ReActor face models
logs
custom-node list
But do not copy these wholesale into the new install:
python_embeded/
custom_nodes/
Especially do not copy python_embeded. If that environment is already mixed, copying it transfers the problem.
ComfyUI Portable uses its own embedded Python environment:
So the Python environment matters a lot.
Step 1: Save a diagnostic snapshot of the broken install
From the broken folder, run:
cd C:\path\to\ComfyUI_windows_portable_broken_backup
nvidia-smi > recovery-baseline.txt
.\python_embeded\python.exe -c "import sys; print(sys.version)" >> recovery-baseline.txt
.\python_embeded\python.exe -c "import torch; print('torch=', torch.__version__); print('torch cuda=', torch.version.cuda); print('cuda available=', torch.cuda.is_available()); print(torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'no gpu')" >> recovery-baseline.txt
.\python_embeded\python.exe -c "import onnxruntime as ort; print('ort=', ort.__version__); print('providers=', ort.get_available_providers())" >> recovery-baseline.txt
.\python_embeded\python.exe -m pip freeze > pip-freeze-broken.txt
If some of these fail, that is okay. The failure itself is useful information.
Step 2: Verify the NVIDIA driver once
Run:
nvidia-smi
Check the driver version.
If your ComfyUI portable build is the new CUDA 13.0 one, the driver should be 580+ according to NVIDIA’s CUDA compatibility table:
Do not keep reinstalling drivers repeatedly. Verify it once, then move on.
Also note: the CUDA Version shown by nvidia-smi is the maximum CUDA API version supported by the driver. It is not necessarily the same as the CUDA version used by PyTorch inside ComfyUI. For that, use torch.version.cuda.
Step 3: Create a fresh ComfyUI portable install
Create a clean folder, for example:
C:\AI\ComfyUI_clean\
At this stage, do not install:
ReActor
ReActor NSFW fork
video custom nodes
old custom_nodes
old python_embeded
Start clean ComfyUI with custom nodes disabled:
cd C:\AI\ComfyUI_clean
.\python_embeded\python.exe -s ComfyUI\main.py --disable-all-custom-nodes --windows-standalone-build
ComfyUI documents this troubleshooting method here:
Then run a very basic built-in image workflow.
At this point you are only testing:
driver
ComfyUI base
embedded Python
PyTorch
basic image generation
You are not testing ReActor yet.
If this fails
If clean ComfyUI cannot generate one basic image, stop. ReActor is not the problem yet.
If this works
Then the base environment is probably good, and you can move to ReActor later.
Step 4: Verify PyTorch CUDA in the clean install
In the clean folder:
cd C:\AI\ComfyUI_clean
.\python_embeded\python.exe -c "import torch; print('torch=', torch.__version__); print('torch cuda=', torch.version.cuda); print('cuda available=', torch.cuda.is_available()); print(torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'no gpu')"
You want:
cuda available = True
GPU name printed
Reference:
If torch.cuda.is_available() is false, do not install ReActor yet. Fix the base GPU/PyTorch/driver problem first.
Step 5: Move models, not the entire old environment
Move or share only the model files.
Typical folders:
models/checkpoints/
models/vae/
models/clip/
models/clip_vision/
models/loras/
models/controlnet/
models/upscale_models/
models/diffusion_models/
models/text_encoders/
models/insightface/
models/reactor/
If the models are large, use extra_model_paths.yaml instead of copying everything:
The goal is:
new clean program environment
+
old model files
not:
new clean program environment
+
old broken Python packages
Step 6: Install only the official ReActor
Use the official repository:
Install it into the clean ComfyUI:
cd C:\AI\ComfyUI_clean\ComfyUI\custom_nodes
git clone https://github.com/Gourieff/ComfyUI-ReActor
cd ComfyUI-ReActor
install.bat
Important: the installer must use the ComfyUI portable embedded Python.
If you see a prompt like this:
I couldn't find an embedded version of Python,
but I did find Python <version> in your Windows PATH.
Would you like to proceed with the install using that version? (Y/N)
I would answer N and stop.
That is very close to this failure mode:
For portable ComfyUI, using system Python is usually the wrong direction. You want packages installed into the ComfyUI instance you actually run.
Step 7: Check ONNX Runtime after ReActor install
Before opening your old workflow, run:
cd C:\AI\ComfyUI_clean
.\python_embeded\python.exe -c "import onnxruntime as ort; print('ort=', ort.__version__); print('providers=', ort.get_available_providers())"
Ideal result:
['CUDAExecutionProvider', 'CPUExecutionProvider']
If you only see:
['CPUExecutionProvider']
then ReActor may still import, but ONNX Runtime GPU is not working.
Also check whether both CPU and GPU ONNX Runtime packages are present:
.\python_embeded\python.exe -m pip list | findstr /i "onnxruntime"
Be suspicious of a mixed state like:
onnxruntime
onnxruntime-gpu
The important documentation is here:
The key idea is:
PyTorch CUDA working does not automatically prove ONNX Runtime CUDA is working.
They are related, but not identical.
Step 8: Test ReActor with one still image
Do not test video first.
Do not test the old workflow first.
Do not turn on face restore / GPEN / Face Boost first.
Start with the smallest possible workflow:
Load Image
Load Image
ReActorFaceSwap
Save Image
Start with:
Face Restore: off
Face Boost: off
Video: off
Batch size: tiny
Then test in this order:
1. still image face swap
2. still image face swap + face restore
3. small image batch
4. short low-resolution video
5. normal video
6. face restore / boost / upscale in video
This order matters because some reports involve the restore/boost paths and CUDA DLL failures:
Step 9: Replace the ReActor node in old workflows
Do not simply open the old workflow and press Queue.
ReActor’s README says old workflow nodes may need to be deleted and re-added after updates, because node inputs or definitions can change:
So the safer process is:
open old workflow
delete old ReActor node
add new ReActor node from the current install
reconnect inputs
save as a new workflow
test on one image
This avoids confusing an old serialized node definition with a CUDA or ONNX problem.
Step 10: Bring video custom nodes back last
The “browser refresh” / reconnect symptom during video generation may be a separate issue from ReActor.
ComfyUI uses WebSocket communication for execution progress, node status, error/debug information, and queue updates:
If the backend process crashes, hangs, runs out of VRAM/RAM, or a custom video node throws an exception, the browser may appear to refresh or reconnect.
So test video in this order:
1. video workflow without ReActor
2. short low-resolution video without ReActor
3. short low-resolution video with ReActor
4. normal video with ReActor
5. face restore / boost / upscale only after that
If video fails without ReActor, ReActor is not the remaining main problem.
What I would avoid
Until the clean environment works, I would avoid:
ComfyUI Manager -> Update All repeatedly
installing several ReActor variants
mixing official ReActor with NSFW forks
copying old custom_nodes wholesale
copying old python_embeded
using system Python pip
running random pip install -U commands
testing directly with a large video workflow
enabling Face Boost / GPEN / restore in the first test
Especially avoid commands like this unless you know exactly why:
pip install -U onnxruntime-gpu numpy opencv-python torch
If you must use pip in ComfyUI portable, use the embedded Python for the specific ComfyUI install you are running:
C:\AI\ComfyUI_clean\python_embeded\python.exe -m pip <package>
not just:
pip <package>
ComfyUI custom-node dependency docs:
Success checklist
I would consider the updated environment repaired only after these are true:
nvidia-smi works
driver version is suitable for the ComfyUI CUDA stack
fresh ComfyUI portable starts
basic image generation works
torch.cuda.is_available() is True
ReActor imports without error
onnxruntime.get_available_providers() includes CUDAExecutionProvider
minimal still-image ReActor workflow works
old workflow works after replacing the ReActor node
short video workflow works without ReActor
short video workflow works with ReActor
full video workflow works
Short version
I would not try to keep repairing the current folder in-place.
I would:
1. rename the broken install and keep it as backup
2. install a fresh current ComfyUI portable
3. confirm basic ComfyUI + PyTorch CUDA first
4. move models only
5. install only official ReActor
6. verify ONNX Runtime providers
7. test one still image
8. replace old ReActor nodes in workflows
9. bring video workflows back last
That gives you the best chance of ending up with a properly updated environment instead of a half-rolled-back, half-updated one.