# One Node packs seven FLUX.2 klein workflows into one ComfyUI widget

> A ComfyUI custom node that hides the FLUX.2 klein graph behind a single widget with seven modes, from text to image through faceswap, pose transfer and upscaling. Two things complicate it: POSE drags in a second custom node and a 9B-only LoRA, and the 4B and 9B models carry different licences.

**yanokusnir-ai/one-node-flux-2-klein** — ComfyUI custom node for Flux 2 Klein: image generation, image editing, inpainting, outpainting, faceswap and more. All in a single self-contained UI widget.

- Repository: https://github.com/yanokusnir-ai/one-node-flux-2-klein
- Stars: 413 · Forks: 30
- Language: JavaScript
- License: not declared
- Published: 2026-09-20 · Updated: 2026-09-20 · Language: en
- Canonical page: https://hysenlabs.com/projects/yanokusnir-ai-one-node-flux-2-klein

## Seven modes behind one widget, and PAINT hides three tools of its own

The pitch is that there is no graph to build and no wires to connect, so the whole FLUX.2 klein workflow arrives as one node. Seven modes sit behind a single click to switch.

T2I is standard text to image. I2I is for variations and for nudging an image in a different direction. EDIT loads one or two reference images and describes the change. FACESWAP puts a face from a source image onto a target. POSE copies a pose from one image onto a character from a reference image. UPSCALE enlarges by 2x, 4x, 6x or 8x using SeedVR2.

PAINT is the odd one out because it is three tools wearing one label: Sketch with a full canvas, layers and brushes, Inpaint where you paint a mask and write what should be there instead, and Outpaint where you drag the edges to expand the image.

## POSE is the only mode that drags in a second custom node and a 9B-only LoRA

Most modes are self-contained once the FLUX.2 klein models are in place. POSE is not. It requires the DWPose preprocessor node, which comes from comfyui_controlnet_aux by Fannovel16, and it requires a RefControl pose LoRA, and that LoRA is specified as a 9B LoRA only for now.

That single constraint is what makes POSE expensive relative to its one click. If you are running the 4B variant, the mode that needs a 9B LoRA is the mode you cannot use without also downloading the larger weights.

FACESWAP has its own requirement but a softer one. It needs a Faceswap LoRA, and two versions are listed, BFS Head Swap v1 for 9b and a separate file for 4b, so it scales with whichever model you picked.

## The Windows portable build needs two commands run from the parent folder

Installation is a clone into the ComfyUI custom_nodes folder, and the inpaint and outpaint modes need a second one:

```
git clone https://github.com/yanokusnir-ai/one-node-flux-2-klein.git
```

```
git clone https://github.com/lquesada/ComfyUI-Inpaint-CropAndStitch.git
```

The Windows portable build is where the instructions get specific, because comfyui_controlnet_aux has its own Python dependencies that the portable bundle does not provide. From your ComfyUI_windows_portable folder, one after the other:

```
git clone https://github.com/Fannovel16/comfyui_controlnet_aux ComfyUI/custom_nodes/comfyui_controlnet_aux
```

```
python_embeded\python.exe -s -m pip install -r ComfyUI/custom_nodes/comfyui_controlnet_aux/requirements.txt
```

Note the relative path into ComfyUI/custom_nodes in both. On a venv, ComfyUI Desktop or Linux and Mac setups, the guidance is to follow the install instructions in the comfyui_controlnet_aux readme instead. Restart ComfyUI afterwards and the node appears as One Node · FLUX.2 [klein].

## Six model directories, and three of them only matter for one mode each

Any FLUX.2 klein model officially released by Black Forest Labs works, and the node needs a diffusion model, a matching text encoder and the VAE. The text encoder differs by variant: qwen_3_8b for the 9b models and qwen_3_4b for the 4b model, both placed in models/text_encoders/. The VAE is flux2-vae in models/vae/.

Beyond that baseline the directories map one to one onto specific modes. models/loras/ holds the Faceswap LoRA and the pose LoRA. models/background_removal/ holds birefnet, and that one is optional, needed only for the Remove Background feature in PAINT mode.

The SeedVR2 upscaler splits across two places that are easy to miss: its diffusion model goes in models/diffusion_models/ and its VAE, ema_vae_fp16, goes in models/vae/ alongside the flux2-vae. Both have to be set in Settings before UPSCALE will do anything.

## The 4B and 9B variants differ in licence, not only in VRAM

The variant choice is usually framed as a hardware question, and it is one, but the licence split is the harder constraint. The 4B model is released under Apache 2.0 and can be used freely including commercially. The 9B model is released under the FLUX Non-Commercial License by Black Forest Labs, which permits personal and research use and does not permit commercial use.

So the decision has two axes. Pick 9B if your VRAM supports it and your work is personal or research. Pick 4B if it is commercial, and accept the smaller weights. If you use the 9B model, complying with that licence is stated as your responsibility rather than the node author's.

The model picks cascade into the LoRA choices too, since the Faceswap LoRA is published per variant and the pose LoRA exists only in a 9B version.

## The README promises no restrictions while the repository records no licence

There is a gap worth naming before you fork anything. The README states that the node itself is fully open source with no restrictions. The repository metadata for the project does not record a licence at all.

Those two statements do not cancel each other out and one is not evidence for the other. An author's assertion in a README is a claim about intent; a licence file is the grant. If you intend to redistribute or embed the code, the absence of a declared licence is the thing that governs you, and it should be resolved with the author before you rely on the sentence in the README.

By contrast the model licences are spelled out in detail, which makes the gap on the code itself stand out rather than blend in.

## Scale by longer side shrinks the image first, which is backwards on purpose

The UPSCALE mode arrived on July 17, 2026 and it has an option that reads like a mistake. Alongside choosing 2x, 4x, 6x or 8x there is an optional Scale by longer side that shrinks the source before enlarging it.

The stated reason is that SeedVR2 works best on small resolutions and on pixelated inputs, which is the same reason it was chosen as the main upscaler. Downscaling first and then upscaling often produces cleaner results than enlarging the original pixels directly, so the backwards-looking step is the part doing the work.

The same mode is reachable without switching modes: after any generation an Upscale button appears in the bottom left of the preview, and it will upscale the image you just made or whichever one is selected in a batch. SeedVR2 still needs its own model and VAE configured in Settings first.

## No tagged releases, and the tutorial predates the current node

Two signals tell you how to date what you are installing. The repository has no GitHub releases, so there is no version to install by name and nothing to diff between, and the last push was 2026-08-06.

The video tutorial carries its own warning that the node has been updated since it was recorded, with a pointer to the changelog as the place to catch up. That is the normal state of a screen-recorded demo for a UI tool, but combined with the absence of releases it means the only reliable way to know what you have is to read the changelog and then look at the node in your own ComfyUI.

The tree itself is small: __init__.py and nodes.py at the top level, config.json, an assets folder with the demo image, web/ for the widget front end and workflows/ for the packaged graphs.

## Conclusion

Adopt One Node if you want a single widget instead of a graph and you already work in ComfyUI, since the install is one clone and the modes are one click apart. Skip it if you need POSE, which costs you a second custom node, a pip install on the Windows portable build and a 9B-only LoRA, and skip it if 9B is your only option and the work is commercial, because that variant is under a non-commercial licence. Before you start, decide between the 4B and 9B models on licence grounds and not on size alone, place the six model directories before you launch rather than after, and check the changelog, because the tutorial video predates the current node and the last push was 2026-08-06 with no tagged release to diff against.

## FAQ

### What are the different versions of FLUX.2 Klein?

Two variants are supported: 4B and 9B. They need different text encoders, qwen_3_4b for the 4b model and qwen_3_8b for the 9b models, and they carry different licences. The 4B is released under Apache 2.0 and is usable commercially, while the 9B is released under the FLUX Non-Commercial License, which allows personal and research use only.

### What is FLUX 2 Klein for?

Inside this ComfyUI node it is the model behind seven modes: text to image, image to image, edit from one or two reference images, a PAINT group covering sketch, inpaint and outpaint, faceswap, pose transfer and SeedVR2 upscaling. Any FLUX.2 klein model officially released by Black Forest Labs works with the node.

### Does FLUX 2 Klein take negative prompts?

The repository does not address negative prompts anywhere in its documentation. What it documents is mode selection, reference images, a denoise style Change strength slider on inpainting and at the same idea in Image to Image, where 100 percent fully repaints the masked area and is the default.

### Is FLUX 1 better than FLUX 2?

No comparison with earlier FLUX versions appears in this repository. Its scope is FLUX.2 klein specifically, and the only version comparison it makes is between the 4B and 9B variants of klein on size, text encoder, LoRA availability and licence.

## Sources

- [Issues](https://github.com/yanokusnir-ai/one-node-flux-2-klein/issues)
- [README](https://github.com/yanokusnir-ai/one-node-flux-2-klein/blob/master/README.md)
- [yanokusnir-ai/one-node-flux-2-klein on GitHub](https://github.com/yanokusnir-ai/one-node-flux-2-klein)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/yanokusnir-ai-one-node-flux-2-klein
