WindowSeat Model Loader
The 'no-op' node hiding a 41GB first run
- model
This node does exactly one thing - load a model - and it's where all your first-run patience lives. WindowSeat Model Loader takes no inputs and hands you a single WINDOWSEAT_MODEL output. That's it. It's the front half of the WindowSeat reflection-removal pair, and if you've ever photographed anything through glass and wished the photographer staring back at you wasn't in the frame, this pack is why you're here.
WindowSeat is Huawei's Bayerlab project ("Reflection Removal through Efficient Adaptation of Diffusion Transformers," arXiv 2512.05000, late 2025). This ComfyUI port is by toshas - Anton Obukhov, one of the paper's authors and the same person behind the Marigold depth-estimation spaces. In the graph it's a two-node workflow: this loader, then the removal node.
What actually happens when it loads
The loader is one function call deep into a Hugging Face haul. It grabs Qwen/Qwen-Image-Edit-2509 from the Hub - but only the transformer and vae subfolders, skipping the text encoder entirely because the model uses precomputed text embeddings. Then it stacks on the huawei-bayerlab/windowseat-reflection-removal-v1-0 LoRA and NF4-quantizes that ~20B transformer with bitsandbytes.
Here's the honest math: that transformer is roughly 41GB in fp16, and the loader downloads it before quantizing it down to something that fits in memory. So the first time you queue a workflow with this node, expect a 40+GB download and a bit of a wait. That's not a bug - it's the node's entire job, done once.
After that first slog, things get fast, because the node keeps a class-level cache: the model loads once and stays in VRAM for the rest of the session. Queue a second image and the loader is a no-op; all the work happens in the reflection-removal node downstream.
Installing it
Either route gets you the same two nodes:
cd ComfyUI/custom_nodes
git clone https://github.com/toshas/ComfyUI-WindowSeat.git
cd ComfyUI-WindowSeat
pip install -r requirements.txt
Or search "WindowSeat" in ComfyUI Manager and install from there. The dependency list is genuinely heavy for a custom node - torch>=2.5, diffusers>=0.36, transformers>=4.40, peft, and bitsandbytes for the NF4 quantization - and that last one is the usual suspect when installs go sideways. The README also warns you may hit a security error inside Manager, because the pack installs its own requirements; the fix is to temporarily relax Manager's security policy (there's a link in the README), install, then restore it. Custom nodes run arbitrary Python, so don't leave that policy loosened.
When it breaks
- Model won't load: check Hugging Face access and run
huggingface-cli login. Some downloads are gated or flaky on fresh setups. - bitsandbytes fails to import: it's historically the flakiest dependency on Windows. Make sure it installed a matching wheel for your CUDA version rather than silently degrading.
- Out of memory: the README wants 24GB VRAM, and it means it. The quantized model is small-ish, but there's no real floor - if it OOMs here, the removal node will too.
The model output wires straight into WindowSeat Reflection Removal's model input, and then you're actually removing reflections.
Inputs (0)
No inputs
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model | WINDOWSEAT_MODEL | — |