Nodes/ComfyUI-ArchAi3d-Qwen/Simple Tile Sampler
ComfyUI Node

Simple Tile Sampler

A KSampler that knows it's sampling a tile

By amir84ferdos·Created 11 months ago·Updated 5 months ago· 70
Simple Tile Sampler
  • tile
  • model
  • positive
  • negative
  • vae
  • denoise_mask
  • control_image
  • controlnet
  • processed_tile
seed0
steps20
cfg7.00
sampler_name
scheduler
denoise0.50
control_strength1.00

In a tiled upscale, the sampler is where the actual work happens - and a plain KSampler is missing two things you want here: a way to denoise some pixels more than others (so seams stay locked to the neighbors), and a way to keep each tile faithful to the source (that's ControlNet Tile's whole job). This node is a KSampler wrapper with both options built in. Feed it one cropped tile, get back one processed tile.

It's the sampling core of the "Simple USDU" tiling subsystem in ComfyUI-ArchAi3d-Qwen, Amir Ferdos's pack. The pipeline it slots into is Cropper → Sampler → Compositor, and this is the middle step where pixels actually get regenerated.

What the extra inputs do

Beyond the usual sampler fields (model, positive/negative conditioning, vae, seed, steps, cfg, sampler_name, scheduler, and a denoise that defaults to 0.5), it has two optional paths that make it tile-aware:

  • denoise_mask - this is Differential Diffusion. Instead of one denoise strength for the whole latent, the node resizes your mask to latent resolution and sets it as the latent's noise_mask, so white regions denoise fully and black regions stay locked. Wire the Simple Edge Mask output here and your tile regenerates in the center while its borders stay put for blending.
  • control_image + controlnet + control_strength - applies a ControlNet (via ComfyUI's ControlNetApplyAdvanced) to the tile's conditioning. Feed it the original cropped tile as the control image and a Tile ControlNet, and the model is guided to preserve the source structure while adding detail - the single most reliable fix for the patchwork-artifact problem that plagues tiled upscaling without guidance.

Inputs & outputs at a glance

Required: tile (the cropped IMAGE), model, positive, negative, vae, seed, steps, cfg, sampler_name, scheduler, denoise. Optional: denoise_mask, control_image, controlnet, control_strength (default 1.0). Single output: processed_tile (IMAGE).

The mechanism is straightforward under the hood: VAE-encode the tile → apply noise mask / ControlNet if given → run common_ksampler → VAE-decode back. Nothing exotic - which is the point. It's a sampler shaped for tiles.

Installing

cd ComfyUI/custom_nodes
git clone https://github.com/amir84ferdos/ComfyUI-ArchAi3d-Qwen.git
cd ComfyUI-ArchAi3d-Qwen
pip install -r requirements.txt

Or ComfyUI Manager → "ArchAi3d Qwen". No model downloads. Free for personal use; commercial use needs the pack's paid license.

The honest take

This is a per-tile node, so a full upscale means one of these per tile (or a loop). On a big grid that's a lot of wiring, which is exactly why the Smart Tile side of this pack uses SEGS and Impact Pack's DetailerForEach machinery instead. Where this node earns its place: when you're building the Simple USDU pipeline deliberately and want to see - and control - exactly how each tile is sampled. Start with denoise around 0.4–0.5, add the Tile ControlNet before you start raising it, and keep the DiffDiff mask if seam consistency is your priority.

CategoryArchAi3d/Upscaling/Simple USDU

Inputs (15)

NameTypeDefaultDescription
tileIMAGE
modelMODEL
positiveCONDITIONING
negativeCONDITIONING
vaeVAE
seedINT00–18446744073709550000
stepsINT201–10000
cfgFLOAT7.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.500–1
denoise_maskoptMASK
control_imageoptIMAGE
controlnetoptCONTROL_NET
control_strengthoptFLOAT1.000–2

Outputs (1)

NameTypeDescription
processed_tileIMAGE