Commit Graph

13713 Commits

Author SHA1 Message Date
Vladimir Mandic 8e04473ac4 rebuild ui
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-06-15 11:57:53 +02:00
Vladimir Mandic fd210da39f lint
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-06-15 08:45:58 +02:00
CalamitousFelicitousness 1be0867d1e refactor(lora): centralize universal passthrough prefixes in the shared resolver
transformer., bare-diffusers, and lora_transformer_ bases are already in
network-key form for every arch, yet each per-arch resolve_targets repeated the
same passthrough branch for them. Move that into a shared
PASSTHROUGH_PREFIXES_DEFAULT set consulted by resolve_group_targets, leaving each
arch's resolve_targets to only the prefixes it actually rewrites (kohya / BFL).
lycoris_ stays in flux2, the one arch that recognizes it.

Pure refactor: the same keys resolve to the same modules.
2026-06-14 18:22:41 +01:00
CalamitousFelicitousness 2d47b1f761 test(lora): cover OneTrainer lora_transformer_ format for native loaders
Add an end-to-end regression per diffusers arch (chroma, flux2, zimage, ernie)
that loads a lora_transformer_ diffusers-flat state dict and checks the
expected modules bind. The chroma suite also asserts the shared
resolve_group_targets passthrough runs above each arch's own resolve_targets,
which returns nothing for this prefix.
2026-06-14 18:22:41 +01:00
CalamitousFelicitousness 31c07dbaf9 fix(lora): load OneTrainer diffusers-format LoRAs via lora_transformer_ prefix
OneTrainer saves LoRAs against the diffusers layout, keying each module as
'lora_transformer_' + the underscore-flattened module path with QKV pre-split.
That is sdnext's own network_layer_mapping namespace, but the native loader did
not list it as a known prefix, so parse_key dropped every key and the network
loaded zero modules ("not loaded").

Add lora_transformer_ to KNOWN_PREFIXES_DEFAULT and resolve it in a shared
resolve_group_targets helper that passes the base through unchanged, with no
rename or chunking. Routing every family loader through the helper gives all
diffusers arches (chroma, flux2, zimage, ernie) OneTrainer support without
per-arch wiring.

Fixes #4877
2026-06-14 18:22:41 +01:00
Disty0 c8458ae0af SDNQ fix conv1d 2026-06-14 19:25:22 +03:00
Vladimir Mandic 7a0584ee4e sampler categories
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-06-14 09:35:56 +02:00
Vladimir Mandic 2ad8edd622 Merge pull request #4923 from vladmandic/sampler-dropdown-separators
Sampler dropdown separators
2026-06-14 08:53:16 +02:00
CalamitousFelicitousness 4a64ec428b feat(samplers): add DPM++ 3M SDE preset
DPMSolverMultistepScheduler implements 3rd-order sde-dpmsolver++, but the preset grid stopped at order 2 on the SDE row. Add the order-3 variant next to DPM++ SDE and DPM++ 2M SDE to complete it.
2026-06-14 01:42:26 +01:00
CalamitousFelicitousness e804d6df21 feat(samplers): group sampler dropdown into labeled sections
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.
2026-06-14 01:41:05 +01:00
Disty0 099b4e4214 SDNQ fix Diffusers API change breaking Transformers 2026-06-13 03:03:14 +03:00
Disty0 55f811e837 SDNQ add N4 Hadamard and set Hadamard Group Size to 256 2026-06-13 00:56:50 +03:00
Vladimir Mandic 25b6030d2b Merge pull request #4920 from QualiaRain/fix/assorted-logic-bugs
Fix dead ControlNet-union path, double video-VAE normalization, and four more logic bugs
2026-06-12 19:31:24 +02:00
Vladimir Mandic 698003b590 Merge pull request #4918 from QualiaRain/fix/ui-misc-guards
Fix parse_metadtaa typo, None-desc crash, and malformed-input crashes in UI/misc
2026-06-12 19:30:35 +02:00
Vladimir Mandic 8f4ea879b9 Merge pull request #4917 from QualiaRain/fix/model-vae-fixes
Fix wrong-variable checks in TE/quant loading and remote-VAE response handling
2026-06-12 19:28:33 +02:00
Vladimir Mandic dfc1fc70ab Merge pull request #4916 from QualiaRain/fix/processing-crash-guards
Fix dead init_images branch, dead timer profile mode, and empty-list crashes in processing
2026-06-12 19:26:13 +02:00
Vladimir Mandic 7a4cc1d43b Merge pull request #4915 from QualiaRain/fix/cli-api-guards
Fix crashes on malformed inputs in cli tools and API base64 helper
2026-06-12 19:25:26 +02:00
QualiaRain 8a8d99019a fix: dead hasattr-on-dict path, double video-vae normalization, undefined self.device, hyimage if/elif, attention-mask attr typo, wrong face logged
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-12 13:00:57 -04:00
QualiaRain 9f2374f5ff fix ui/misc: None desc crash, ratio/tile/lora split guards, parse_metadtaa typo, moondream type guard
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-12 13:00:50 -04:00
QualiaRain 023c829179 fix model/vae: wrong quant_config var, getattr guards, remote-vae latent_copy shadowing + response handling
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-12 13:00:39 -04:00
QualiaRain 6f8d79313a fix processing: init_images hasattr typo, empty-list guards, dead timer profile branch
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-12 13:00:31 -04:00
QualiaRain fd5b2b7feb lint: fix RUF013 implicit Optional in cli/process.py Result.__init__
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-12 13:00:24 -04:00
QualiaRain 584f2b84c4 fix cli+api: data-uri decode guards, mutable default, caption/ffprobe/palette IndexError guards
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-12 13:00:23 -04:00
Vladimir Mandic 1cf715fac2 add gemma-4-unified, tensor-compressed, qat
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-06-12 15:15:16 +02:00
Vladimir Mandic 469428b502 update transformers/diffusers and enhanced tests
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-06-12 15:15:16 +02:00
Vladimir Mandic 2a632920e1 Merge pull request #4919 from QualiaRain/fix/mutable-default-args
Fix mutable default arguments and wrong cfg gating eva_clip text checkpoint
2026-06-12 15:01:33 +02:00
Vladimir Mandic dedc0a3de7 Merge pull request #4914 from QualiaRain/fix/installer-guards
Fix installer self-update edge cases: dead None-check and three unguarded parses
2026-06-12 14:17:45 +02:00
QualiaRain ee8a513870 lint: normalize CRLF to LF in installer.py (C0327)
Windows editor introduced mixed line endings on our changed lines.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-12 05:46:39 -04:00
QualiaRain a127ae4e83 lint: fix RUF013 implicit Optional in model_google and eva_clip factory
Seven 'list = None' / 'list[...] = None' parameters lacked the | None
annotation required by PEP 484; ruff RUF013 flagged them in CI.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-12 05:41:52 -04:00
QualiaRain 6325f08be7 fix: mutable default arguments + wrong cfg var gating eva_clip text checkpoint download
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-12 05:08:03 -04:00
QualiaRain 3eb2af9726 fix installer: dead branch-None check, IndexError guards on branch/version/submodule parsing
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-12 05:08:02 -04:00
Vladimir Mandic 10414e01a1 Merge pull request #4912 from QualiaRain/fix/script-extension-fixes
Fix seven small bugs in script extensions
2026-06-12 10:49:39 +02:00
Vladimir Mandic 227e398024 Merge pull request #4913 from QualiaRain/fix/freescale-fixes
Fix FreeScale early-return state corruption and stage resolution rounding
2026-06-12 10:41:18 +02:00
Vladimir Mandic ccc8f92d05 Merge pull request #4911 from QualiaRain/fix/upscale-postprocess-fixes
Fix four small bugs in upscale and postprocess paths
2026-06-12 10:40:12 +02:00
Vladimir Mandic d1ba7eceea Merge pull request #4910 from QualiaRain/fix/parser-metadata-keys
Fix compel prompt guard duplicate clause and PObject infotext key mismatches
2026-06-12 10:38:36 +02:00
Vladimir Mandic 79e7976522 Merge pull request #4908 from QualiaRain/fix/processing-helpers-fixes
Fix four small logic errors in modules/processing_helpers.py
2026-06-12 10:37:31 +02:00
Vladimir Mandic b31efdb75b Merge pull request #4909 from QualiaRain/fix/xyz-grid-state-fixes
Fix XYZ grid state leaks and sub-grid gallery leak
2026-06-12 10:35:59 +02:00
Vladimir Mandic 8d1ec67c4a Merge pull request #4907 from QualiaRain/fix/prompts-from-file-batch-save
Fix prompts-from-file batch save metadata misalignment
2026-06-12 10:34:39 +02:00
QualiaRain 58386c657d Fix XYZ grid state.end leak on invalid axis values in xyz_grid_on
Same except-path as the previous commit: jobid is begun before the
try block but never ended on the error return, mirroring the
xyz_grid.py fix.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-12 02:42:15 -04:00
Claude 92517f8a58 Fix Remove Background mask-only and merge-alpha options
Both options inspected pp.image (the original input, normally RGB)
instead of the background-removed RGBA result, so the checkboxes did
nothing. merge_alpha also discarded the convert('RGB') return value.
Operate on the rembg output and keep the converted image.

https: //claude.ai/code/session_014QWKWgKvMevcuvfCnsYoT2
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-12 02:41:35 -04:00
Claude 9c0ab938f2 Fix SD Upscale task_args image fallback never triggering
hasattr() on the task_args dict checked for an attribute instead of a
key, so it was always False and images passed via task_args were
ignored. Use dict.get instead.

https: //claude.ai/code/session_014QWKWgKvMevcuvfCnsYoT2
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-12 02:41:35 -04:00
Claude 77f7fc61bd Fix UnboundLocalError when resize gets an invalid upscaler name
The invalid-upscaler warning referenced selected_upscaler, which is only
assigned when a matching upscaler was found, so an unknown name (stale
infotext, removed upscaler) crashed the resize instead of falling back
to plain resampling.

https: //claude.ai/code/session_014QWKWgKvMevcuvfCnsYoT2
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-12 02:41:34 -04:00
Claude 1225abc265 Fix Simple Upscale crash when upscaler name is not found
A stale or renamed upscaler name fell through after the debug log and
dereferenced None in upscale(), raising AttributeError. Return early
like the standard upscale class does.

https: //claude.ai/code/session_014QWKWgKvMevcuvfCnsYoT2
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-12 02:41:34 -04:00
Claude 6ef1228727 Fix per-script timing always recording zero
ScriptSummary.record reset the reference timestamp immediately before
measuring against it, so every recorded duration was ~0 and report()
never logged script timings. Measure against the previous timestamp,
then advance it.

https: //claude.ai/code/session_014QWKWgKvMevcuvfCnsYoT2
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-12 02:41:32 -04:00
Claude 642e891c81 Fix AnimateDiff error reporting
errors.display received the literal string 'e' instead of the caught
exception, losing the traceback on adapter load failures. The restore
debug log also nulled loaded_adapter before printing it, so it always
showed adapter=None.

https: //claude.ai/code/session_014QWKWgKvMevcuvfCnsYoT2
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-12 02:41:32 -04:00
Claude ba8b6d23e8 Fix LBM output never resized back to input dimensions
PIL Image.resize returns a new image; the result was discarded, so the
final output stayed at the snapped aspect-ratio bucket size instead of
being restored to the original input size.

https: //claude.ai/code/session_014QWKWgKvMevcuvfCnsYoT2
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-12 02:41:32 -04:00
Claude fd38a9bf63 Fix FreeU crash in ConsiStory script
Enabling FreeU called len() on the checkbox bool instead of the parsed
preset list, raising TypeError and aborting the run. Even without the
crash, all four FreeU parameters were passed the same value. Use the
parsed freeu_preset values, and log the invalid input before clearing it.

https: //claude.ai/code/session_014QWKWgKvMevcuvfCnsYoT2
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-12 02:41:32 -04:00
Claude cfcc7c7338 Fix MuLan negative prompt overwriting the positive prompt
When negative_prompt arrived as a list, the unwrap assigned it to
p.prompt instead of p.negative_prompt, replacing the user's prompt with
the negative prompt text and passing an unsupported list to the
pipeline.

https: //claude.ai/code/session_014QWKWgKvMevcuvfCnsYoT2
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-12 02:41:32 -04:00
Claude 7851afc707 Fix IP-Instruct crash in after() hook
The framework passes the script's ui values positionally, but after()
only accepted keyword args, so every run raised TypeError after
processing and the original pipeline was never restored. Accept *args
like sibling scripts.

https: //claude.ai/code/session_014QWKWgKvMevcuvfCnsYoT2
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-12 02:41:31 -04:00
Claude 00eff5e803 Fix PixelSmith proceeding on unsupported model types
The unsupported-model warning fell through and switched non-SDXL models
into PixelSmithXLPipeline with an SDXL VAE, corrupting the pipeline.
Return early like every sibling script does after this check.

https: //claude.ai/code/session_014QWKWgKvMevcuvfCnsYoT2
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-12 02:41:31 -04:00