Nodes/ComfyUI_Seamless_Patten/SeamlessKSamplerAdvanced
ComfyUI Node

SeamlessKSamplerAdvanced

Seamless tiling with KSamplerAdvanced's step control

By moyi7712·Created 2 years ago·Updated about a year ago· 20
SeamlessKSamplerAdvanced
  • model
  • positive
  • negative
  • latent_image
  • LATENT
add_noise
noise_seed0
steps20
cfg8.0
sampler_name
scheduler
start_at_step0
end_at_step10000
return_with_leftover_noise

Same trick as SeamlessKSampler, one step further into the weeds. SeamlessKSamplerAdvanced is the pack's moyi7712/ComfyUI_Seamless_Patten version of KSamplerAdvanced: it wraps the whole denoise in circular padding - every Conv2d flipped so the left edge meets the right and the top meets the bottom - but hands you the advanced sampler's step controls so you can decide where in the trajectory the wrapping happens and what the latent looks like when it comes out.

When you reach for it

Only bother if you already know why you'd use KSamplerAdvanced. The extra fields exist for img2img, inpainting, and multi-pass workflows: you want to seed from an existing latent, denoise only part of the trajectory, or hand off a latent with leftover noise for a second pass. If you're doing straightforward text-to-image tiles, the plain SeamlessKSampler is the simpler tool. This one is for when your seamless generation is part of a bigger graph and you need control over the stages.

The mechanism

Identical core to SeamlessKSampler: before sampling it walks the diffusion model and sets padding_mode = 'circular' on every Conv2d (wrapping feature maps into a torus), calls the same common_ksampler ComfyUI's own advanced sampler uses, then restores the original padding modes. Circular padding is active for the full run - no early-unwrap like SeamlessApply does. What differs is the interface, which maps straight onto KSamplerAdvanced's inputs.

Inputs that matter

  • noise_seed (INT) - note the name: it's noise_seed, not seed, matching the stock KSamplerAdvanced. Same idea.
  • add_noise (enable/disable) - disable when the input latent already has the right noise (e.g. the second stage of a hires-fix chain).
  • start_at_step / end_at_step (INT, defaults 0 / 10000) - the slice of the denoise this pass covers. With no denoise input on this node, this is how you control partial sampling. For img2img you'll typically set start_at_step above 0 or end_at_step below steps.
  • return_with_leftover_noise (disable/enable) - leave noise in the output latent for a follow-up pass.
  • steps, cfg, sampler_name (44), scheduler (9), positive, negative, latent_image - all as usual.

Output is a single LATENT, straight into VAEDecode or a second sampler pass.

Install

No dependencies, no models - just the pack:

# ComfyUI Manager: search "Seamless" → Install → Restart
cd ComfyUI/custom_nodes
git clone https://github.com/moyi7712/ComfyUI_Seamless_Patten
# restart ComfyUI

Gotchas

  • Same in-place footgun as SeamlessKSampler. This node does not clone the model - it flips padding modes on the shared diffusion model and restores them after. If sampling errors mid-run, the restore never happens and the model stays in circular-padding mode for the session. Weird outputs after a failed queue run → reload the checkpoint.
  • There's no denoise input here (the source hardcodes it at 1.0), so don't go looking for it - control partial denoise via start_at_step / end_at_step.
  • Full-pass circular padding is aggressive on fine detail. If textures start looking "wrappy," compare against SeamlessApply, which only wraps the early structural phase of the denoise.
CategorySeamless

Inputs (13)

NameTypeDefaultDescription
modelMODEL
add_noiseCOMBO2 options: enable, disable
noise_seedINT00–18446744073709550000
stepsINT201–10000
cfgFLOAT8.00–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
positiveCONDITIONING
negativeCONDITIONING
latent_imageLATENT
start_at_stepINT00–10000
end_at_stepINT100000–10000
return_with_leftover_noiseCOMBO2 options: disable, enable

Outputs (1)

NameTypeDescription
LATENTLATENT