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