✨ Arthemy Model Tuner (SDXL)
Turn Any SDXL Checkpoint Into a Set of Sliders — No Merge, No Retraining
- model
- MODEL
- info
Merging has a dirty secret: people spend hours in SDXL Block Merge chasing the perfect block blend, then have to redo the whole dance the moment they switch checkpoints. The ✨ Arthemy Model Tuner (SDXL) steals that idea and makes it live. It gives you block-level control over a single model - as eleven sliders - mid-generation, with nothing trained, nothing merged, nothing saved to disk.
It slots in between your CheckpointLoaderSimple and KSampler: feed it the MODEL, move some sliders, and out comes a patched clone of the model. It's the sibling node to the Arthemy CLIP Tuner from the same pack, and both come from Aledelpho, a CivitAI model maker (the Arthemy Painter Illustrious line) who built his own merging notes into this node. He announced it on r/StableDiffusion in January 2026; the community verdict was basically "cool, but it takes fiddling" - which, fair.
How it works
SDXL's U-Net has 19 blocks: 9 input, 1 middle, 9 output. The node groups them into named areas - IN_Layout_Geometry covers blocks 0–1, IN_Perspective_Masses 2–3, IN_Subject_Identity 4–5, IN_Global_Composition 6–8, then MID_Core_Concept (block 9), and on the output side OUT_Art_Style_Medium, OUT_Material_Substance, OUT_Lighting_Atmosphere, OUT_Shadows_Depth, OUT_Texture_Details, and OUT_Final_Sharpness across blocks 10–18. Roughly: the input blocks steer structure and composition, the middle block is the semantic core, and the output blocks are style, lighting, texture and sharpness.
Each slider scales its block's weights by a multiplier, applied through ComfyUI's standard patch mechanism (add_patches, strength = value − 1) - the same machinery LoRAs ride on, minus the trained delta. Because it works on model.clone(), the original checkpoint is untouched. That means you can branch two tuners side by side with different settings and A/B them in one run, which is a genuinely nice "live tuning" trick.
The inputs that matter
model- from any SDXL-family checkpoint loader (Illustrious and NAI fine-tunes work too).mode- Real Value is a straight linear multiplier: brutally sensitive, keep it between 0.8 and 1.2 and step by 0.01–0.02. Soft Value applies a gentler curve, so you can sweep the whole 0–2 range without blowing things up. Start in Soft.base_scale- a global multiplier applied to every block before the individual sliders. Think "overall model intensity," not a daily driver.- The eleven grouped sliders - the actual tuning surface.
vectors_override- the hidden power tool. It's an unlabeled string input that takes a comma-separated list of exactly 19 floats, one per block, bypassing the groups entirely. Once you know your checkpoint's trouble blocks, this is how you stop fighting the grouping.
Outputs are a patched MODEL (wire it into the sampler - the only thing that matters) and an info string reporting how many weights got patched.
Install
Clone it into custom_nodes and restart:
cd ComfyUI/custom_nodes
git clone https://github.com/aledelpho/Arthemy_Live-Tuner-SDXL-ComfyUI.git
No requirements.txt, no pip install, no model downloads - it's plain Python on top of comfy.sd and torch, one of the cleanest installs in the ecosystem. ComfyUI Manager will usually find it as "Arthemy" if you search; the clone is the guaranteed path. The repo ships a Athemy-Tuner-SDXL.json example workflow with both tuners wired correctly - drag it in to see the intended layout.
Common issues
First, the classic: the patched MODEL must be what feeds KSampler. If the sampler still gets its model straight from the checkpoint loader, your sliders are decorative.
Second, sensitivity. Real Value at 1.5+ will melt your image, and the author's own examples show how touchy the good sliders are: OUT_Art_Style_Medium at just 1.05 is already a strong style shift, while OUT_Shadows_Depth at 1.20 is described as "a crazy amount." Small steps, one slider at a time, and compare against a base run.
Third - and this is the honest limitation - the README flat-out warns these blocks don't operate in isolation. Bump Shadows and you'll also shift overall contrast and mood; the areas are experimental guidelines, not circuit diagrams. It's also strictly SDXL: the block map assumes the 19-block layout, and on a Flux checkpoint the node finds no input_blocks/output_blocks to address, falls back to base_scale on everything, and behaves weirdly. Keep it pointed at SDXL, Illustrious, or NAI.
If the fiddliness frustrates you, that's expected - the community's main request was per-slider X/Y grid examples, which says everything about how the first release feels. It rewards patience, and it's the only tool of its kind that gives you Block Merge's control without committing to a merge.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| mode | COMBO | 2 options: Soft Value, Real Value | |
| base_scale | FLOAT | 1.000–2 | Global multiplier applied to all blocks before individual tuning. |
| vectors_override | STRING | — | |
| IN_Layout_Geometry | FLOAT | 1.000–2 | — |
| IN_Perspective_Masses | FLOAT | 1.000–2 | — |
| IN_Subject_Identity | FLOAT | 1.000–2 | — |
| IN_Global_Composition | FLOAT | 1.000–2 | — |
| MID_Core_Concept | FLOAT | 1.000–2 | — |
| OUT_Art_Style_Medium | FLOAT | 1.000–2 | — |
| OUT_Material_Substance | FLOAT | 1.000–2 | — |
| OUT_Lighting_Atmosphere | FLOAT | 1.000–2 | — |
| OUT_Shadows_Depth | FLOAT | 1.000–2 | — |
| OUT_Texture_Details | FLOAT | 1.000–2 | — |
| OUT_Final_Sharpness | FLOAT | 1.000–2 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |
| info | STRING | — |