Nodes/ComfyUI-HSWQ-Loader-and-Tools/HSWQ Ultimate SD Upscale
ComfyUI Node

HSWQ Ultimate SD Upscale

Ultimate SD Upscale, bundled in-tree and tuned for the HSWQ stack

By ussoewwin·Created 9 months ago·Updated a day ago· 17
HSWQ Ultimate SD Upscale
  • image
  • model
  • positive
  • negative
  • vae
  • upscale_model
  • IMAGE
upscale_byAuto
target_height4320
seed0
steps20
cfg8.00
sampler_name
scheduler
denoise0.20
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
batch_size1
tensor_boostfalse

Ultimate SD Upscale is the tiled-upscaling workhorse that got big in A1111 and carried over to ComfyUI: upscale the image with a pixel upscaler, then run a diffusion img2img pass on overlapping tiles so the model adds real detail without ever seeing the whole huge image at once - which is how you get 4K output on a 12 GB card. This node is that, shipped inside the HSWQ pack as a self-contained copy, with the original ComfyUI_UltimateSDUpscale package deliberately not required at runtime. It's based on ssitu's GPL-3.0 project, and the README says so openly.

What's actually different here

  • Color normalization. Nunchaku SDXL VAE output comes back in a compressed range (roughly 0.15–0.85), which reads as pale, washed-out color. This node normalizes VAE output to full 0.0–1.0 range before upscaling, fixing that specific failure out of the box.
  • FP8/torch.compile compat patches. On load it applies patches for copy shape mismatches, FP8 linear/addmm bias–out_features mismatches, and control embedder weight layout issues, so the node actually works with HSWQ FP8 models and torch.compile.
  • Standalone. No separate install of ssitu's pack, no module-name collisions with other custom nodes.

How the upscaling is sized

  • upscale_by - the big one. Auto reads the input image height and sets scale = target_height / input_height, clamped to 0.05–4.0. Or pick a fixed magnification from the dropdown (0.05 to 4.00 in 0.05 steps) and target_height is ignored.
  • Example straight from the README: input height 1080, upscale_by = Auto, target_height = 4320 → scale 4.0 → output 4320px tall.

The rest is the standard Ultimate SD Upscale kit: upscale_model (an ESRGAN-style pixel upscaler), tile_width / tile_height (512 default), mask_blur, tile_padding, mode_type (Linear / Chess / None - tile order), the seam-fix family (None / Band Pass / Half Tile / Half Tile + Intersections with seam_fix_denoise, seam_fix_width, seam_fix_mask_blur, seam_fix_padding), plus the sampling set - seed, steps, cfg, sampler_name, scheduler, denoise (0.2 default, the classic light-touch tile value), positive, negative, vae, model, image. Two settings deserve special attention:

  • batch_size - defaults to 1. The tooltip is a trap warning: higher values are faster but eat VRAM, and if you get tensor-size mismatches with FP8/FP4 quantized models, set this to 1. It's the first thing to check when a tiled run starts erroring on quantized weights.
  • tensor_boost - off by default, and the README's guidance is to keep it off for tiled upscaling. Turning it on enables Per-Weight CUDA Graph acceleration for SDXL ConvRot NVFP4 on Blackwell, and it costs several GB of VRAM in CUDA Graph arenas. The intended pairing is: Tensor Boost on for the fixed-resolution base pass in the HSWQ Sampler, off here for the tiles, because per-tile shape changes stack graph arenas and can spill to system RAM. Recommended hardware for that path: RTX 5090 with 32 GB+.

Gotchas

Beyond the batch_size and tensor_boost notes, remember the pack's standing rule: if you're upscaling HSWQ ConvRot INT8/NVFP4 models, put General Purge VRAM V2 from ComfyUI-DistorchMemoryManager at the end of the workflow with the HSWQ toggle on, or the second run can fail on residual NVFP4 pools. And if you're not running the HSWQ stack at all, ssitu's standalone Ultimate SD Upscale is the more widely documented choice - this node's edge cases (color normalization, FP8 patches) only matter to this ecosystem.

Install: ComfyUI Manager or git clone https://github.com/ussoewwin/ComfyUI-HSWQ-Loader-and-Tools into custom_nodes, then restart.

Categoryimage/upscaling

Inputs (28)

NameTypeDefaultDescription
imageIMAGEThe image to upscale.
modelMODELThe model to use for image-to-image.
positiveCONDITIONINGThe positive conditioning for each tile.
negativeCONDITIONINGThe negative conditioning for each tile.
vaeVAEThe VAE model to use for tiles.
upscale_byCOMBOAutoChoose 'Auto' to calculate the scale from target vertical pixels, or select a fixed magnification.
target_heightINT432064–8192Target output height in pixels. Used only when upscale_by is 'Auto'.
seedINT00–18446744073709550000The seed to use for image-to-image.
stepsINT201–10000The number of steps to use for each tile.
cfgFLOAT8.000–100The CFG scale to use for each tile.
sampler_nameCOMBOThe sampler to use for each tile.
schedulerCOMBOThe scheduler to use for each tile.
denoiseFLOAT0.200–1The denoising strength to use for each tile.
upscale_modelUPSCALE_MODELThe upscaler model for upscaling the image.
mode_typeCOMBOThe tiling order to use for the redraw step.
tile_widthINT51264–8192The width of each tile.
tile_heightINT51264–8192The height of each tile.
mask_blurINT80–64The blur radius for the mask.
tile_paddingINT320–8192The padding to apply between tiles.
seam_fix_modeCOMBOThe seam fix mode to use.
seam_fix_denoiseFLOAT1.000–1The denoising strength to use for the seam fix.
seam_fix_widthINT640–8192The width of the bands used for the Band Pass seam fix mode.
seam_fix_mask_blurINT80–64The blur radius for the seam fix mask.
seam_fix_paddingINT160–8192The padding to apply for the seam fix tiles.
force_uniform_tilesBOOLEANtrueForce all tiles to be the same as the set tile size, even when tiles could be smaller. This can help prevent the model from working with irregular tile sizes.
tiled_decodeBOOLEANfalseWhether to use tiled decoding when decoding tiles.
batch_sizeINT11–4096The number of tiles to process in a batch. Higher values can reduce processing time but use more VRAM. If you get tensor size mismatch with FP8/FP4 (quantized) models, set this to 1.
tensor_boostBOOLEANfalseEnable Blackwell Per-Weight CUDA Graph Tensor Boost during USDU tile upscaling. ON raises VRAM by several GB; RTX 5090 32GB+ recommended. Keep OFF for tiled upscale.

Outputs (1)

NameTypeDescription
IMAGEIMAGEThe final upscaled image.