Add zimage to allow_native so lora_force_diffusers picks between
native and diffusers. Before this, zimage always took the diffusers
path regardless of the setting.
pipelines/z_image/zimage_lora.py reads the safetensors and writes
directly into network_layer_mapping, so Z-Image LoRAs no longer go
through the diffusers PEFT converter that raised KeyError on
state dicts with partial alpha keys.
Key formats handled: ai-toolkit, kohya lora_unet_, bare transformer.
and no-prefix. Pre-refactor fused attention.qkv is split into
to_q/k/v; attention.out and attention.wo are renamed to
attention.to_out.0. Alpha and dora_scale are preserved.
upstream UniPCMultistepScheduler.set_timesteps unconditionally moves self.sigmas to CPU after building them. multistep_uni_p_bh_update / multistep_uni_c_bh_update then constructs a torch.ones(..., device=sample.device) tensor and calls torch.stack([..., self.sigmas[...]]) — crashing at inference step >= 2 whenever the model runs on a non-CPU device (CUDA, ROCm, MPS).
Monkey-patch set_timesteps so that, after the upstream call, self.sigmas is moved back to the requested device. Applied once at import time inside the existing sampler-load try/except block so failures are silent-logged and never break the rest of the sampler registry.
Civitai stopped validating baseModels on /api/v1/models (returns 200 with
empty items on unknown values), which left API clients without a way to
discover the values. Right now /images still does, I will get a separate
PR to put something more robust in place.
Right-clicking the "Send to Images" button now offers two entries:
one copies the prompt only, the other copies all generation parameters
except the image itself. Available in gallery, txt2img, img2img, and
extras. Keeps the results toolbar compact.
- extend ParamBinding with skip_image and only_prompt flags
- create prompt/params variants in all four output panels
- register per-tab context menu entries scoped to #{tab}_tabitem
- match menu selectors via e.target.closest for nested-icon clicks
- document the right-click surface in the "➠ Control" locale hint
list_models() ended with `checkpoints_list = dict(sorted(...))`, which rebound
the module-level name to a fresh dict object. sd_models.py line 18 does
`from modules.sd_checkpoint import ... checkpoints_list`, capturing a reference
to the original dict at import time. Every subsequent list_models() call
cleared and refilled the sd_checkpoint binding but left the sd_models binding
frozen at the state it had after the first call. ui_extra_networks_checkpoints,
ui_models, extras, xyz_grid_classes, and sd-extension-system-info all read
through sd_models.checkpoints_list, so none of them could see models added
after startup without a full restart.
Sort in place instead, preserving dict identity so every importer stays in
sync with sd_checkpoint.checkpoints_list.
The VP update formula uses lambda=sigma/alpha which blows up to ~1e8
for flow matching (where alpha=1-sigma approaches 0). This makes
r_fn=fn(next)/fn(curr) collapse to ~0, causing the sampler to discard
the previous sample and independently re-predict x0 at each step.
Set alpha=1 and lambda=sigma for flow matching so the VP formula
naturally reduces to the correct form r_f*x + (1-r_f)*x0 with
lambda in [0,1] where the noise function produces meaningful ratios.
The 2nd/3rd order derivative denominators (lambda_curr - prev_lambda)
are always negative since lambda decreases during denoising.
The .clamp(min=1e-10) forced these to a tiny positive value, causing
d_x0 to explode by ~1e18 and producing NaN output.
- Add _safe_div helper that returns zero for near-zero denominators
while preserving the sign for normal values
- Replace .clamp(min=1e-10) with _safe_div in both 2nd and 3rd order
- add to prompt enhance models, img2img, and models_cls
- add to vlm/caption models
- update _load_gemma class selection for gemma 4
- bump transformers pin to 5.5.0.dev for gemma4 architecture support
- create scripts/autocomplete.py as always-on script with dictionary
management UI (dropdown, refresh, update, settings controls)
- move autocomplete settings from Settings > Extra Networks to hidden
options, controlled via script UI with JS config bridge
- remove early exit in autocomplete.js when no dictionaries enabled,
allowing dictionaries enabled via script UI to work without reload
- add id-based suffix matching to setHints.js for unique button hints
- add locale_en.json entries with tooltips for all autocomplete controls