FLUX.2 Klein 9B LoRA · Edit
Klein 9B LoRA Edit
- image_urls
- loras
- images
- task id
The biggest Klein thread of 2026 was a three-LoRA realism stack on Klein 9B - a smartphone-snapshot look, a skin fix, a detail pass - run overnight on a 3060 Ti. This node is that workflow plus an edit: a source image, an instruction, and up to three weight files, for about 3.78 credits ($0.0378) an image.
Where this sits in the pack's editing ladder
Four editing nodes, one model family: Klein 4B Edit at 1.89, Klein 9B Edit at 2.44, Klein 4B LoRA Edit at 3.06, and this one at 3.78. The only difference between each pair is whether the endpoint will load your weights and how big the model is. If you don't have a LoRA to load, the 2.44 node will do everything this one does and charge you less - there's no hidden quality bonus.
What you're buying with the extra credit and a half is the ability to say "make this photo look like my work" and have the model fix the content at the same time. In practice that means looks no prompt can hold: specific film grain, a particular skin treatment, a lens signature, the flat-but-real look of a phone camera that those realism LoRAs were built for.
Wiring the stack
loras wants a POPNOW_LORAS value, which only the PopNow LoRA node produces. Give that node a source - a .safetensors in ComfyUI/models/loras (uploaded once, cached around 12 hours), a Hugging Face repo id or page, a Civitai model page, or a direct https:// link - plus a scale, then connect it. Chain one PopNow LoRA into the next to stack, up to three on this endpoint.
Two rules that save failed runs. Size first: this is a 9B endpoint, so a 4B LoRA won't load, and a FLUX.1 LoRA isn't even compatible architecture (Flux 2 uses a Qwen3 encoder where Flux.1 had CLIP+T5). Second: Klein 9B tolerates stacking unusually well - three at 1.0 each is a documented, working configuration, not a dare. Nothing else in the open-weight space shrugs off a stack like that.
The edit fields
image_urls is Autogrow: connect an image, get another socket, up to three. The service numbers them image 1–image 3 and you can address them by position in the prompt. Each socket may carry a batch and every image in that batch counts as its own reference, so keep it to one image per socket unless you enjoy 400 errors that name a field instead of a picture.
prompt gets 5,000 characters, and it starts with the trigger phrase - the tooltip says so, and skipping it is the single most common reason a stacked LoRA seems to do nothing. After that, prose with the change and the invariants spelled out: rtx_snapshot, skin_fix, keep the face and posture of image 1, remove the window glare. No weighting syntax; it's disabled for this encoder.
aspect_ratio defaults to auto to match your first source. resolution is 1k or 2k, and the editing endpoints charge a flat rate rather than a size tier, so 2k currently costs the same as 1k - take it. seed is fixed until you flip control after generate to randomize, which is also the only way to tell your stack is working when comparing strengths.
Outputs
images - an ordinary IMAGE batch. task id - a string for the API console and support.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/popnow-ai/popnow-comfyui
# restart ComfyUI
Or Manager → Custom Nodes Manager → PopNow → Install. Then a key from popnow.ai/api/console/keys into Settings > PopNow, restart again so the catalog is read from your account. No dependencies - the pack's list is empty - but you need a ComfyUI recent enough for the V3 node API these nodes are built on.
The part the showcase threads leave out
The thread that made this stack famous also had a comment section full of melted hands and phantom second bodies. Stacked LoRAs amplify whatever the base model is already weak at, and Klein's weak spot is anatomy. Editing doesn't fix that; a source image helps, a good instruction helps, and a hand that comes back wrong is a re-roll or an inpaint, not a prompt problem. Budget a few reruns per keeper - at four cents a try, that's a fair price.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Say what to change and what must stay the same. Put a LoRA trigger phrase first. | |
| image_urls | COMFY_AUTOGROW_V3 | One to three source images, in the order your prompt refers to them. | |
| aspect_ratio | COMBO | auto | Output aspect ratio; auto keeps the shape of the first source image. |
| resolution | COMBO | 1k | Output size tier when you choose an aspect ratio; with auto the result keeps the shape of the first source image at about one megapixel. |
| seed | INT | 00–2147483647 | Same seed and settings, same result. Set 'control after generate' to randomize to get a new result on every run; every run is billed. |
| lorasopt | POPNOW_LORAS | Up to three LoRA weight files trained for FLUX.2 [klein] 9B (the distilled or the Base build), each with its own strength. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| task id | STRING | The PopNow task id, for the API console logs or support. |