Nodes/ComfyUI Ultimate SD Upscale FLS LLLite/Ultimate SD Upscale (FLS + LLLite Tile Repair)
ComfyUI Node

Ultimate SD Upscale (FLS + LLLite Tile Repair)

One of the only ControlNets that actually does something on Anima

By Lebensignal·Created 2 months ago·Updated 2 months ago· 10
Ultimate SD Upscale (FLS + LLLite Tile Repair)
  • image
  • model
  • positive
  • negative
  • vae
  • upscale_model
  • IMAGE
upscale_by2.00
seed0
steps20
cfg8.00
sampler_name
scheduler
denoise0.20
fovea_strength5.0
sharpness1.00
mask_inertia0.85
lllite_model_nameanima_tiled_lllite_v1.safetensors
lllite_strength0.90
lllite_start_percent0.000
lllite_end_percent0.900
mode_type
tile_width512
tile_height512
mask_blur8
tile_padding32
seam_fix_mode
seam_fix_denoise1.00
seam_fix_width64
seam_fix_mask_blur8
seam_fix_padding16
force_uniform_tilestrue
tiled_decodefalse

Everything in the plain UltimateSDUpscaleFLS node is here too - same tiling engine, same FLSampler detail injection - plus one thing bolted on: an Anima-specific ControlNet-LLLite pass aimed at tile repair. That's a bigger deal than it sounds, because Anima, the 2B anime DiT that's been eating into Illustrious's share since mid-2026, basically doesn't have ControlNet. The one real option across the whole model is kohya-ss's experimental ControlNet-LLLite port, and most of what's been trained for it is reported near-inert - people who've tried the pose model say it had no effect at all at inference. Tile/repair conditioning (the weights this node is built for) is one of the few LLLite models the community actually cites as doing something, alongside a separate regional-conditioning model from a different author. If you're upscaling Anima output and want the tiles to stay faithful to the source instead of drifting, this is close to the only lever you've got right now.

How it works

Tiling and FLS detail injection work exactly as in the plain node - mode_type, the fovea_strength/sharpness/mask_inertia trio, and the seam-fix pass all carry over unchanged. What's added is a second conditioning path running alongside the sampler: a ControlNet-LLLite apply step, which is a lightweight, LoRA-like module injected into the model's attention and MLP layers rather than a full duplicated ControlNet encoder. That's the general LLLite trick, and it's how kohya gets control conditioning onto DiT architectures that don't have a UNet to hang a classic ControlNet off. The tile/repair weights condition each tile against the original image so the upscale pass doesn't invent detail that contradicts the source - the same job ControlNet Tile does for SD/SDXL tiled upscales, just via a different mechanism, because Anima has no equivalent of its own.

The inputs and outputs that matter

Everything from the plain node carries over - image, model, positive/negative, vae, upscale_model, upscale_by, denoise, the tiling and seam-fix group, the FLS knobs - plus four LLLite-specific fields. lllite_model_name is read from ComfyUI's controlnet models folder and defaults to anima_tiled_lllite_v1.safetensors, the tile/repair weight this node is built around; set it to None to skip LLLite entirely and behave like the plain FLS node. lllite_strength (default 0.9, range 0–2) is how hard the conditioning pulls, and lllite_start_percent/lllite_end_percent (default 0 to 0.9) set the portion of the sampling schedule LLLite stays active for. Community reports on this specific tile/repair model land around 0.8 strength with denoise near 0.5 as a workable starting point - close to the node's own defaults, so treat those as your baseline rather than a ceiling to push past. Output is a single IMAGE, same as the plain node.

How to install it

Same base install as the plain FLS node - search "ComfyUI Ultimate SD Upscale FLS LLLite" in Manager, or:

cd ComfyUI/custom_nodes
git clone https://github.com/Lebensignal/ComfyUI-UltimateSDUpscale-FLS-LLLite.git

Restart, and let the first-run auto-download of the Coyote-A upscale script finish (see the plain node's install steps if you're offline). This node needs two more things the plain one doesn't:

  1. The Anima LLLite apply node, expected specifically at ComfyUI/custom_nodes/ComfyUI-Anima-LLLite. Install kohya-ss's ComfyUI-Anima-LLLite into that exact folder before restarting, or the LLLite path has nothing to hand off to.
  2. The weights themselves, dropped into ComfyUI/models/controlnet. The README points at LAXMAYDAY/Anima_Tile_and_Repair_ControlNet-LLLite on HuggingFace (or the CivitAI mirror it also links). Neither the apply node nor the weights ship with this pack - the README is explicit that no model weights are redistributed here.

Common issues & troubleshooting

lllite_model_name dropdown only shows "None." The weights aren't in ComfyUI/models/controlnet, or the filename doesn't match what the node expects. Fix the path, then restart - the dropdown populates at startup, not live.

LLLite conditioning does nothing, no matter the strength. This is a real, documented failure mode for other Anima LLLite models (openpose in particular), not something unique to your setup - kohya's port is explicitly experimental. Tile/repair is one of the better-behaved ones, but if you're seeing zero effect, confirm the ComfyUI-Anima-LLLite apply node pack is actually installed and loaded (check the console at startup) before assuming your settings are wrong.

This only makes sense with an Anima checkpoint. The LLLite weights are trained against Anima's specific architecture - wiring this node into an SDXL, SD1.5, or Illustrious workflow won't do anything useful even if it doesn't error outright. If you're not on Anima, you want the plain UltimateSDUpscaleFLS node instead.

Effect is too subtle or too aggressive. Start near lllite_strength 0.8–0.9 with denoise around 0.5 - the range people report actually working - then pull lllite_end_percent down if late-stage tiles are getting over-conditioned toward the source and losing the detail FLS is adding.

Categoryimage/upscaling

Inputs (32)

NameTypeDefaultDescription
imageIMAGE
modelMODEL
positiveCONDITIONING
negativeCONDITIONING
vaeVAE
upscale_byFLOAT2.000.05–4
seedINT00–18446744073709550000
stepsINT201–10000
cfgFLOAT8.000–100
sampler_nameCOMBO44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
schedulerCOMBO9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3
denoiseFLOAT0.200–1
fovea_strengthFLOAT5.00–10
sharpnessFLOAT1.000–3
mask_inertiaFLOAT0.850–0.99
lllite_model_nameCOMBOanima_tiled_lllite_v1.safetensors2 options: None, anima_tiled_lllite_v1.safetensors
lllite_strengthFLOAT0.900–2
lllite_start_percentFLOAT0.0000–1
lllite_end_percentFLOAT0.9000–1
upscale_modelUPSCALE_MODEL
mode_typeCOMBO3 options: Linear, Chess, None
tile_widthINT51264–8192
tile_heightINT51264–8192
mask_blurINT80–64
tile_paddingINT320–8192
seam_fix_modeCOMBO4 options: None, Band Pass, Half Tile, Half Tile + Intersections
seam_fix_denoiseFLOAT1.000–1
seam_fix_widthINT640–8192
seam_fix_mask_blurINT80–64
seam_fix_paddingINT160–8192
force_uniform_tilesBOOLEANtrue
tiled_decodeBOOLEANfalse

Outputs (1)

NameTypeDescription
IMAGEIMAGE