Nodes/ComfyUI-JurdnsModelSculptor/Jurdn's Model Sculptor (SDXL)
ComfyUI Node

Jurdn's Model Sculptor (SDXL)

Give your SDXL checkpoint a personality transplant — no merging required

By jurdnf·Created about a year ago·Updated about a year ago· 3
Jurdn's Model Sculptor (SDXL)
  • model
  • model
gradient_shape
strength0.10
target_blocks

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_blocks 0–11 are the downsampling path (structure), output_blocks 0–11 the upsampling path (where a lot of visible detail lives), middle_block the bottleneck, time_embed the timestep embeddings, label_emb the 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.

Categorymodels/advanced

Inputs (4)

NameTypeDefaultDescription
modelMODEL
gradient_shapeCOMBO10 options: Linear (Ascending), Linear (Descending), Ease In (Quadratic), Ease Out (Quadratic), Ease In/Out (Sine), Spike (Gaussian), +4
strengthFLOAT0.10-2–2
target_blocksCOMBO7 options: all, input_blocks, middle_block, output_blocks, time_embed, label_emb, +1

Outputs (1)

NameTypeDescription
modelMODEL