The init-image snap rounds to the VAE factor, but the LLaDA pipeline needs
16 for its transformer patch and 32 when editing, since the source image is
halved for the semantic encoder. The pipeline now declares patch_size for
the shared rounding and init_image_multiple for input images, and
get_vae_scale_factor honours the latter when an init image is present.
check_inputs reads the same attributes.
Reorder samplers_data_diffusers into recognizable solver-family groups (Euler, DPM/DPM++, UniPC/DEIS, Heun/KDPM2, ER-SDE, Classic, Distilled, Misc), each ending with its FlowMatch variants, and Res4Lyf as a fenced experimental section, so the dropdown is scannable.
Dividers are SamplerData sentinels with U+2500 names: create_sampler keeps the current scheduler when one is selected, get_sampler_name falls back to Default, set_samplers and validate_sampler_name exclude them, and a visible_samplers() helper drops them from the xyz axes, detailer, and folder pickers. The main and refine dropdowns render them as section labels. No sampler is removed or renamed, so saved infotexts, styles, and API calls keep resolving.
Same inversion as the slerp() near-parallel shortcut: at val=0 the
expression returned hi instead of lo, opposite to both the
near-orthogonal shortcut and the general slerp path in the same
function.
Co-Authored-By: Claude <noreply@anthropic.com>
The nearly-parallel fast path interpolated in the wrong direction:
at val=0 it returned hi instead of lo, opposite to both the general
slerp formula below and the sibling near-orthogonal shortcut. Affects
subseed/variation strength when base and subseed noise are nearly
parallel.
https: //claude.ai/code/session_014QWKWgKvMevcuvfCnsYoT2
Co-Authored-By: Claude <noreply@anthropic.com>
The truthiness filter removed valid seed 0 from p.seeds, causing an
unseeded generator for single images and a generator/batch length
mismatch for batches. Filter only None entries; 0 is a legitimate seed
per get_fixed_seed.
https: //claude.ai/code/session_014QWKWgKvMevcuvfCnsYoT2
Co-Authored-By: Claude <noreply@anthropic.com>
torch.cat was indented into the per-item loop, so with two or more
latents the first iteration replaced the list with a tensor and the
next iteration concatenated its dim-0 slices, destroying the batch
dimension. Concatenate once after the loop.
https: //claude.ai/code/session_014QWKWgKvMevcuvfCnsYoT2
Co-Authored-By: Claude <noreply@anthropic.com>
create_sampler restored the model default scheduler on a prediction-type
mismatch, on an unknown sampler config, and on any scheduler-constructor
exception regardless of schedulers_fallback; only SD_SAMPLER_DEBUG could turn
the prediction mismatch into an error. Raise like the other capability gates
when the fallback setting is disabled.
An unresolved sampler name substituted UniPC before any of those gates could
run; pass the requested name through instead, so it falls back to the model
default (or raises when fallback is disabled) and the infotext records
Default rather than the unresolved name. find_sampler now also resolves an
unspecified sampler to Default instead of UniPC, matching the platform
default used everywhere else.