Commit Graph

13890 Commits

Author SHA1 Message Date
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
Claude 1fdb9ecfdb Fix XYZ grid sub-grid count ignoring sub-grids created with the main grid
draw_xyz_grid inserts one sub-grid per Z value whenever the main grid
or sub-grids are enabled, but have_subgrids only counted them when
'Include sub grids' was checked. With main grid on and sub grids off,
the Z sub-grids leaked into the results as ordinary images (shown in
the gallery, fed into video creation, misaligning infotexts) and the
removal branch was unreachable since its condition contradicted itself.
Count sub-grids based on the same condition that inserts them.

https: //claude.ai/code/session_014QWKWgKvMevcuvfCnsYoT2
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-12 02:41:29 -04:00
Claude 16145a5bdd Fix XYZ grid state leaks on invalid axis values
The always-on variant returned from its parse-error handler without
resetting the module-level active flag, silently disabling the XYZ grid
for every later generation until restart. The selectable variant
likewise returned without ending the job state it had begun.

https: //claude.ai/code/session_014QWKWgKvMevcuvfCnsYoT2
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-12 02:41:29 -04:00
Claude 5077db32a7 Fix FreeScale stage resolutions not snapped to multiple of 8
Operator precedence made 8 * w * x // 8 cancel out, so fractional scale
factors produced resolutions not divisible by 8 and broke the SDXL
latent shape requirements. Apply the same idiom as pixelsmith_ext.

https: //claude.ai/code/session_014QWKWgKvMevcuvfCnsYoT2
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-12 02:41:27 -04:00
Claude 20a148fd69 Fix FreeScale resolution check running after processing state is modified
The sub-1024 early return happened after init_images was nulled,
task_args were injected and the sampler overridden, so the fallback to
normal processing ran with a broken img2img setup. Check the resolution
before mutating the processing object.

https: //claude.ai/code/session_014QWKWgKvMevcuvfCnsYoT2
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-12 02:41:27 -04:00
Claude e6c13aab37 Fix PObject metadata keys that never match parsed infotext
Infotext parsing produces 'Negative prompt' and 'Variation seed', but
the save-image PObject looked up 'Negative_prompt' and 'Subseed', so
images saved from restored metadata always lost their negative prompt
and variation seed. Use the keys the parser actually emits, matching
the sibling lookups like 'CFG scale'.

https: //claude.ai/code/session_014QWKWgKvMevcuvfCnsYoT2
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-12 02:41:25 -04:00
Claude 077a82e99e Fix duplicated clause in compel prompt guard
The guard repeated 'conjunction.prompts is None' twice; the second copy
was meant to check for an empty list, so an empty (non-None) prompts
list raised IndexError inside the guard instead of returning the empty
fallback.

https: //claude.ai/code/session_014QWKWgKvMevcuvfCnsYoT2
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-12 02:41:25 -04:00
QualiaRain 0002062367 Fix inverted lerp weights in slerp_alt near-parallel shortcut
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>
2026-06-12 02:28:42 -04:00
Claude ace616d287 Fix inverted lerp weights in slerp near-parallel shortcut
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>
2026-06-12 02:27:51 -04:00
Claude 26a58b46fb Fix seed 0 being dropped from generator seeds
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>
2026-06-12 02:27:51 -04:00
Claude e7d7e699e1 Fix latent concatenation running inside the loop in resize_hires
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>
2026-06-12 02:27:50 -04:00
QualiaRain d361705280 fix prompts-from-file batch save metadata misalignment
The script concatenated each per-line result's images and infotexts INCLUDING the per-line grid, while all_seeds/all_prompts hold only real images and the final Processed gets index_of_first_image=0. With batch count > 1 the interleaved grids shift every index, so the manual save button writes neighboring images' metadata and filenames (and indexes past the end of infotexts for the last image). Slice each per-line result from proc.index_of_first_image so grids never enter the combined result and all lists stay 1:1 with the gallery. Fixes #2385.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-12 01:58:37 -04:00
Pablo Hellmann 6b568014bd Added wd-vit-tagger-v3 large variant 2026-06-11 20:59:38 +02:00
Vladimir Mandic df568f9d4b update changelog
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-06-11 14:30:55 +02:00
Vladimir Mandic d38feefebd Merge pull request #4905 from QualiaRain/fix/infotext-padding
Fix batch list padding in create_infotext corrupting infotext indices
2026-06-11 08:22:24 +02:00
Vladimir Mandic 745ccae962 Merge pull request #4904 from QualiaRain/fix/assorted-typos
Fix assorted small typos: dead __str__, unformatted messages, preview min-height
2026-06-11 08:20:07 +02:00
Vladimir Mandic 639f3c9a3e Merge pull request #4903 from QualiaRain/fix/mixture-tiling-dimensions
Fix transposed tile dimensions in mixture tiling script
2026-06-11 08:12:58 +02:00
QualiaRain 2b9a387670 fix transposed tile dimensions in mixture tiling script
tile_width/tile_height and tile_col_overlap/tile_row_overlap were cross-assigned from p.height/p.width, transposing output geometry for every non-square tile size. Fixes #4902.
2026-06-11 02:04:14 -04:00
Claude 7d1ba849e1 fix batch list padding in create_infotext corrupting infotext indices
padding loops used insert(0) which shifts existing prompt/seed entries
to higher indices, so subsequent index lookups - including the caller's
own p.prompts[i]/p.seeds[i] reads on the same aliased lists - return
values belonging to a different image; append preserves existing
index-to-entry mapping and pads missing slots at the end

https://claude.ai/code/session_01UZT4ypkGQH5fzJ89dXPFYp
2026-06-11 01:42:42 -04:00
QualiaRain 148a7883a2 Fix assorted small typos: dead __str__, unformatted messages, preview min-height, tooltip
- processing.py: __str___ misspelled dunder never dispatched; rename to __str__
- demofusion.py: missing f-prefix printed literal {width}x{height} in user-facing error
- sparse_backend.py: missing f-prefix printed literal {size} in ValueError
- generation_parameters_copypaste.py: debug message typo 'Not not registered'
- progressBar.ts: live-preview gallery minHeight computed from naturalWidth; mirrors the adjacent maxHeight line (naturalHeight)
- settings.ts: stray } in settings-tab tooltip
2026-06-11 01:42:29 -04:00
Vladimir Mandic e10b45d815 Merge pull request #4901 from liutyi/dev
Ideogram 4 two reference images
2026-06-10 13:22:39 +02:00
Oleksandr Liutyi 7eb3676ff8 Ideogram 4 two reference images 2026-06-10 10:28:27 +00:00
Vladimir Mandic a8b0f66ef9 downgrade diffusers
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-06-10 11:57:34 +02:00
Vladimir Mandic e53c8ef1da bump transformers and diffusers
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-06-10 08:30:44 +02:00
Vladimir Mandic ee3a466ad9 patch getexif
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-06-10 08:20:25 +02:00
Vladimir Mandic 72b2f0d7be bump compel
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-06-10 08:09:00 +02:00
Vladimir Mandic f4a03d4510 Merge pull request #4900 from vladmandic/fix/sampler-fallback-paths
Fix/sampler fallback paths
2026-06-10 07:24:12 +02:00
CalamitousFelicitousness a3407efa81 test: add sampler differential API tester
Drives txt2img/img2img with the full per-sampler scheduler-option matrix
(sigma method, prediction type, timestep spacing, beta schedule, solver
order, shift, low order, thresholding, dynamic shift, rescale betas), one
option at a time over a pinned baseline, and measures every case against
the default: applied, inert, marginal, rejected, or fallback. Detects
silent fallback via the infotext Scheduler class and annotates every saved
image with its full requested configuration. --sweep runs a reduced matrix
per sampler and emits an empirical capability report.
2026-06-10 03:08:20 +01:00