384 Commits

Author SHA1 Message Date
Vladimir Mandic 63a5722429 prepare queue mgmt
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-08-22 11:24:41 +02:00
Vladimir Mandic 52f5c17435 update spandrel integation
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-08-21 09:35:15 +02:00
Vladimir Mandic ae8d559b50 swtich to igwn-segments
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-08-16 18:15:59 +02:00
Vladimir Mandic 76941efc7e strict typechecking
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-08-16 12:45:50 +02:00
Vladimir Mandic a882ce945b detailer.next
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-08-09 15:05:00 +02:00
Vladimir Mandic 4cf2854c93 update ruff and lint
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-07-24 18:20:41 +02:00
Vladimir Mandic 3a9ebc3494 process add video info and metadata
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-07-19 14:37:20 +02:00
Vladimir Mandic 98a7d17207 linting
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-07-03 22:05:33 +02:00
CalamitousFelicitousness 3dd0cd590c fix(pipelines): restore clip-skip text encoding for transformers 5.6+
The vendored encode_prompt copies in the PAG, APG, ControlNet-XS and differential
diffusion pipelines dereference the .text_model wrapper that transformers 5.6
removed from CLIPTextModel, so their clip-skip path crashes on SD1.5 and SDXL TE1.
Apply the same getattr(te, 'text_model', te) fix as the core parser.

Mirrors upstream diffusers, which still carries this deref in pipeline
encode_prompt; only the single-file loader was fixed there.
2026-06-25 02:25:33 +01:00
QualiaRain c0f5f41042 fix(control): remove inert DWPose (Legacy) pose-model selector
The DWPose (Legacy) "Pose Model" (Tiny/Medium/Large) radio wrote to
config['DWPose (Legacy)']['model'], but the rtmlib backend
(RtmlibPoseDetector.from_pretrained) only takes the mode string and
always loads RTMPose 'lightweight' - it never reads that key (the only
config[...]['model'] readers are the SegmentAnything branch). The
selector was a no-op left over from the removed mmpose DWPose processor
(see #4956).

Remove the radio, its dead 'model' config key (both the module-level and
delay_load_config dicts), and its update_settings slot; reindex the
remaining settings 18..27. The settings list stays 1:1 with the UI
controls (re-derived the append-order -> update_settings map to confirm).

No runtime behavior change. The alternative - keep the capability by
mapping Tiny/Medium/Large onto rtmlib's mode - is intentionally not taken
here since it would change which model loads.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-22 10:28:59 -04:00
QualiaRain b83ad23856 fix(control): update stale processor names after rename
update_settings() and the XYZ [Control] Processor axis still used
pre-rename names ('MediaPipe Face', 'DWPose', 'SegmentAnything') that
no longer exist as config keys after 8d4ebcd5e.

- update_settings(): update stale keys to 'MediaPipe Face (Legacy)',
  'DWPose (Legacy)', 'SegmentAnything 1.0' -- the KeyError at
  'MediaPipe Face' (line 182) was silently dropping all settings after
  position 13 on every panel change
- DWPose (Legacy) config: add missing 'model' key so update_settings
  can persist the Pose Model radio value without crashing
- processor.processors list: remove stale 'DWPose' entry (already
  present as 'DWPose (Legacy)') that caused XYZ [Control] Processor
  to offer an unloadable option

Fixes #4953

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-22 08:08:02 -04:00
QualiaRain fdb27bb5af fix(control): SegmentAnything fails to load after processor rename
The "processors multiple fixes" rename split 'SegmentAnything' / 'SAM 2.1'
into 'SegmentAnything 1.0' / 'SegmentAnything 2.1' but left Processor.load()
matching the old name by substring:

    elif 'SegmentAnything' in processor_id:
        ... config['SegmentAnything']['model'] ...

Post-rename this (a) raises KeyError because 'SegmentAnything' is no longer
a config key, so both SAM processors fail to load, and (b) wrongly routes
'SegmentAnything 2.1' (a Sam2Detector loaded via load_config) into the
SAM-v1 weight path instead of letting it fall through to the generic
load_config branch.

Match the v1 id exactly and key off config[processor_id], restoring the
pre-rename routing: v1.0 -> explicit SAM-v1 branch, v2.1 -> load_config.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-21 23:41:32 -04:00
Vladimir Mandic afc1a043b6 vae_scale_factor override
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-06-20 10:49:43 +02:00
Vladimir Mandic 8d4ebcd5ef processors multiple fixes
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-06-18 11:45:34 +02:00
Vladimir Mandic 7c81bc2d50 lint fixes
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-06-18 11:45:34 +02:00
Vladimir Mandic 524c059b79 Merge pull request #4931 from QualiaRain/fix/controlnet-unit-guards
fix(control-units): list zimage controlnets under 'all'; fix LLLite output-block fall-through
2026-06-16 08:37:12 +02:00
QualiaRain bbbb450884 fix(control-units): list zimage controlnets under 'all'; fix LLLite output-block fall-through
api_list_models omitted the 'or model_type == all' clause for zimage, so ZImage ControlNets never appeared in the all listing - added it to match every other family. lite_model used pass for the unimplemented root==output branch, which fell through to b = getattr(b, attn_name) with b unbound or stale from a prior iteration (UnboundLocalError or wrong-block patch); use continue to skip it.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-15 15:20:07 -04:00
QualiaRain a6b4614e25 fix(control): advance video frames via cap, not the always-None video var
The VideoCapture is stored in cap, but the per-frame read and skip/yield guards referenced video, which is set to None at function entry and never reassigned. As a result only the first frame of a video input was processed.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-15 15:20:06 -04: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
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
Vladimir Mandic 5e99dee3c2 full codespell coverage
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-06-04 12:36:10 +02:00
Vladimir Mandic f25f325efb fixes based on full skills run
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-06-04 11:10:26 +02:00
Vladimir Mandic 2af67b76d0 lint
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-06-02 17:13:08 +02:00
Vladimir Mandic 35aa8c6422 fix openpose and add test-compile
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-06-02 17:06:18 +02:00
Vladimir Mandic 01a68baa47 update masking
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-05-19 11:56:20 +02:00
Vladimir Mandic f67562b912 - all guidance values set to -1 to enable using model defaults
- log default values used if not overriden by user
- rename inconsistent guidance variables:

p.cfg_scale
p.image_cfg_scale -> p.cfg_image
p.diffusers_guidance_rescale -> p.cfg_rescale
p.pag_scale -> p.cfg_true
p.pag_adaptive -> p.cfg_adaptive

Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-05-16 11:06:23 +02:00
Vladimir Mandic ce726bf084 pil patches
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-05-16 08:32:45 +02:00
Vladimir Mandic 6c2a56ff71 more pylint fixes
Co-authored-by: Copilot <copilot@github.com>
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-05-11 08:57:16 +02:00
Vladimir Mandic feeafc6286 strict ruff without exclude
Co-authored-by: Copilot <copilot@github.com>
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-05-11 08:36:49 +02:00
Vladimir Mandic c8d6fd5cf8 Revert "much stricter ruff linting"
This reverts commit 310dbf1574.
2026-05-11 08:13:57 +02:00
Vladimir Mandic 310dbf1574 much stricter ruff linting
Co-authored-by: Copilot <copilot@github.com>
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-05-11 07:15:37 +02:00
Vladimir Mandic 7ee740e744 add hidream-o1
Co-authored-by: Copilot <copilot@github.com>
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-05-10 21:45:58 +02:00
Vladimir Mandic 2a14d73fab add skip processing option
Co-authored-by: Copilot <copilot@github.com>
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-04-30 10:06:55 +02:00
Vladimir Mandic 66a270dc16 cleanup
Co-authored-by: Copilot <copilot@github.com>
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-04-30 09:32:10 +02:00
Vladimir Mandic eaf06fbc74 all direct input images
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-04-30 09:30:11 +02:00
Vladimir Mandic 68f1c73e1f remove process preview
Co-authored-by: Copilot <copilot@github.com>
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-04-29 07:59:43 +02:00
CalamitousFelicitousness ba4436916d fix(control): prevent duplicate save_video and unmask video module shadow
When a video script (animatediff, text2video, image2video, stablevideodiffusion)
runs via Control tab, both the script's save and control_run's end-of-run save
fired. The latter crashed silently because the local `video` cv2 capture name at
control_run:584 shadowed the modules.video import, so the duplicate was hidden
and the gallery video link never propagated.

- alias import as video_module to bypass the shadow
- p.video_saved marker set by each script
- control_run skips its end-of-run save when the marker is set
2026-04-27 01:32:30 +01:00
CalamitousFelicitousness 7d77b01c3d feat(video): wire scripts and control to video_interpolate field
Set p.video_interpolate at run() entry so process_images_inner picks up
the helper. Save calls keep their existing kwargs; the sentinel guard
skips re-interpolation when the helper already ran.

- animatediff, text2video, image2video, stablevideodiffusion route
  mp4_interpolate into p.video_interpolate
- modules/control/run.py routes the request video_interpolate arg
- xyz_grid intentionally untouched: its end-of-axis save_video stitches
  the cell slideshow, not per-cell videos; a future video_interpolate
  axis would set p.video_interpolate per cell via axis_options
2026-04-26 03:09:27 +01:00
vladmandic 93f948af13 control add error handling
Signed-off-by: vladmandic <mandic00@live.com>
2026-04-12 19:06:09 +02:00
awsr c003b0eb48 PIL Image.Image type fix 2026-04-06 01:06:19 -07:00
awsr 2675e68813 Revert minor change
Will re-implement in a separate PR
2026-03-25 13:55:56 -07:00
awsr 375591ecdd Revert non-critical changes
The following errors are re-introduced and will need follow-up:
- models.py, line 92
- sd_unet.py, line 41
- sd_models.py, line 1440
2026-03-25 13:47:27 -07:00
awsr ff247d8fd2 Merge branch 'dev' into RUF013 2026-03-24 07:12:51 -07:00
vladmandic 53839e464c remove legacy quant loaders
Signed-off-by: vladmandic <mandic00@live.com>
2026-03-24 15:01:07 +01:00
awsr b75a1f971f RUF013 update + minor typing fixes 2026-03-24 03:39:02 -07:00
vladmandic 936216e20d merge: modules/control/run.py 2026-03-16 08:10:48 +01:00
vladmandic ee6cadfa9c cleanup
Signed-off-by: vladmandic <mandic00@live.com>
2026-03-13 11:42:16 +01:00
vladmandic 0838b938e1 merge: modules/control/run.py 2026-03-13 11:01:01 +01:00
vladmandic a3668e9f0c merge: modules/control/unit.py 2026-03-12 14:16:51 +01:00