SDXL ONE STUDIO (TJ)
The beta all-in-one node for people who still live in SDXL
- pipe
- image
SDXL ONE STUDIO (TJ) is the odd one out in the TJ NODE STUDIO ONE family. Its siblings wrap the new hotness - Z-Image Turbo, Flux.2 Klein, Krea 2, Qwen Image Edit. This one wraps SDXL, the 2023 base model whose fine-tune ecosystem still owns anime and uncensored realism niches even as everyone argues about which 2026 model replaces it. If you have a folder of SDXL checkpoints, a pile of LoRAs, and no appetite for downloading a 24GB model and learning a new prompting style, this node gives you the family's one-node UI on hardware you already run.
Read that first sentence carefully, though: the README is upfront that SDXL ONE STUDIO is a test/beta version. Core features work, but the UI and options can change without notice. If you're building a serious production workflow on it today, you're the beta tester.
How it works
Same architecture as the rest of the pack - the Python node is a thin wrapper that returns the last generated image as an IMAGE, and the JavaScript builds and runs the actual graph per mode. Which means the house rule applies here harder than anywhere: generate with the node's ▶ Generate button, not ComfyUI's RUN. RUN only re-emits the most recent image through the output slot. And there's a bonus gotcha on top: this node's UPSCALE mode is the family's oddball too - it uses an ESRGAN model plus a refiner KSampler pass, not the SeedVR2 path the other four nodes share.
The inputs and outputs that matter
One optional input, prompt_override - a multiline STRING prepended before your prompt, your hook for driving it from outside. One output, image (IMAGE). Everything else lives in the panel and the ⚙ Settings gear, and there's a lot of it.
The two things worth knowing about Settings: you load the model either as a single CKPT file (simplest - models/checkpoints/) or as separate UNET + DualCLIP(L/G) + VAE (models/diffusion_models/, models/text_encoders/, models/vae/), and the separate mode is what lets you use GGUF or FP8 lightweight UNETs. There's a badge on the node showing which mode you're in. A Refiner checkpoint is always optional in both modes - an SDXL-Refiner-family model, loaded independently - which is a slightly nostalgic touch, since the community collectively decided to ignore the refiner years ago.
The panel handles T2I, I2I, a fullscreen inpaint mask editor (zoom up to 32×, brush/eraser, built on VAEEncodeForInpaint), outpaint with top/bottom/left/right pixel control, and that ESRGAN upscale. It also inherits the family's shared niceties: prompt templates, the compare slider, and the built-in gallery.
Installing it
ComfyUI Manager (search ComfyUI-TJ_NODE_STUDIO_ONE) or:
cd ComfyUI/custom_nodes
git clone https://github.com/designloves2/ComfyUI-TJ_NODE_STUDIO_ONE.git
Restart, then run the bundled install_requirements.sh / install_requirements.bat for the shared dependencies. Models: any SDXL checkpoint (say, sd_xl_base_1.0.safetensors or a CivitAI fine-tune) for CKPT mode, or the three separate files for UNET mode, and an ESRGAN model like 4x-UltraSharp.pth into models/upscale_models/ before you try the upscale mode.
Where people get stuck
Given it's a beta, treat the usual failure modes with extra patience. The README's own troubleshooting table covers the family-wide classics - model not showing in the dropdown (hit ↻ Refresh Models), upscale model list empty (check models/SEEDVR2/… though this node's upscale wants an ESRGAN model in models/upscale_models/ instead). The genuinely SDXL-specific notes: remember the refiner, if you use one, is a separate download; and if you're on low VRAM, the separate UNET mode with an FP8 or GGUF UNET is the point of the feature - that's the whole reason it exists.
Is it worth installing over plain ComfyUI with an SDXL checkpoint? If you've bought into the one-node, no-wiring idea and you want it on a model that fits your existing files and GPU, yes - with the beta warning tattooed on the box. If you want stability or are only here because the pack is already installed, stock SDXL in a normal workflow is still the safer bet until this one graduates past test status.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt_overrideopt | STRING | External prompt override — prepended before the internal prompt. | |
| pipeopt | TJ_PROMPT_PIPE | PromptDB pipe (TJ_NODE). At generation, fields present in the pipe override this node's settings; missing fields keep the node's own values. The node's UI is never changed. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |