Jurdn's Model Sculptor (SDXL)
Give your SDXL checkpoint a personality transplant — no merging required
- model
- model
The real product of SDXL was never the base model - it was the finetune library that grew on top of it: Illustrious, NoobAI, Pony, Juggernaut, RealVis. Jurdn's Model Sculptor (SDXL) is a way to bend those finetunes without merging two checkpoints, training a LoRA, or touching a file on disk. It takes your loaded SDXL-family model, scales different UNet blocks by different amounts, and returns a patched copy that behaves like a cousin of the original. Think of it as per-layer volume knobs on an already-good model.
It's the same pack as the Flux and SD3 sculptors, just mapped onto SDXL's anatomy - and honestly, it's the most useful of the three. That's not a knock on the others; it's a comment on where the user base still lives. The SDXL anime hierarchy and the unrestricted realism niche never moved, and the README explicitly blesses finetunes: anything based on SDXL (Illustrious included) works.
How it works
The node clones your model, pulls the weights under diffusion_model., generates a curve with one value per selected block, and applies each value as a weight scale. Through ComfyUI's patch machinery each affected layer ends up multiplied by about 1 + (curve value × strength). So at the default 0.1, a Spike (Gaussian) boosts the middle layers ~10% and leaves the ends alone. Negative strength inverts the whole curve - a Dip becomes a Spike, a descending ramp becomes ascending.
The inputs that matter
Four required inputs, that's all.
- model - from Load Diffusion Model, wired directly.
- gradient_shape - the same ten curves as the Flux node: Linear up/down, Ease In/Out (Quadratic and Sine), Spike (Gaussian), Dip (Inverse Gaussian), Steps up/down, Random (Noise).
- strength - default 0.1, range −2 to 2. It's a multiplier, so 0.3 means a 30% weight bump on affected layers. Start at 0.1 and stay south of 0.3 until you know what you're doing.
- target_blocks - seven options.
input_blocks0–11 are the downsampling path (structure),output_blocks0–11 the upsampling path (where a lot of visible detail lives),middle_blockthe bottleneck,time_embedthe timestep embeddings,label_embthe conditioning/class embeddings, plus "all" and Input & Output (Synced Shape) which runs the same curve symmetrically down both halves.
The two you'll actually tune: target_blocks (input vs output is the difference between restructuring an image and re-texturing it) and strength. If you want a blunt style knob, scaling label_emb does a surprising amount with very small strengths. Output is a single MODEL that replaces the loader's wire into your KSampler.
Install
This is the same pack as the Flux sculptor, so it's one install for all three:
cd ComfyUI/custom_nodes
git clone https://github.com/jurdnf/ComfyUI-JurdnsModelSculptor.git
Restart ComfyUI after, or grab it via ComfyUI Manager under "ComfyUI-JurdnsModelSculptor". There's no requirements.txt - no extra pip dependencies, no model downloads. Nodes land under models/advanced.
Where people get burned
- Architecture mismatch. Feed a non-SDXL model in and the console prints
Found 0 patches matching target prefixes, then the node returns your model untouched. If nothing changes and your terminal is quiet, that's the first thing to check. - Stacking. Connect directly from Load Diffusion Model, as the README insists. Because the node patches a clone, sculpting after a LoRA or chaining two sculptors compounds the effects.
- Random (Noise). Unseeded RNG means a different sculpt every run - great for exploring, bad for anything you want to reproduce. Pick a deterministic shape instead.
- Overcooking. Remember
1 + curve × strength: at 1.0 you're doubling weights on the peak layers, and output_blocks at double strength is how you get crunchy, oversharpened messes. The subtle range is the point of this node.
Quick experiment worth your time: an Illustrious checkpoint, Dip across input_blocks and Spike across output_blocks, run as the second pass of a hires-fix. If you don't like it, you've changed nothing on disk.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| gradient_shape | COMBO | 10 options: Linear (Ascending), Linear (Descending), Ease In (Quadratic), Ease Out (Quadratic), Ease In/Out (Sine), Spike (Gaussian), +4 | |
| strength | FLOAT | 0.10-2–2 | — |
| target_blocks | COMBO | 7 options: all, input_blocks, middle_block, output_blocks, time_embed, label_emb, +1 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |