179 Commits

Author SHA1 Message Date
Vladimir Mandic e17efc19f7 update upscaler workflow
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-08-22 20:10:02 +02:00
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
CalamitousFelicitousness cce3a80b0c fix(video): correct codec option strings to the key=value form
parse_options reads : and , as separators and = as the only assignment, so a
segment without = becomes a valueless flag set to 1. The shipped strings used
ffmpeg command line spelling, which parses without error into other values.

- crf:16 parsed to {'crf': '1', '16': '1'}, encoding every api, framepack and
  seedvr video near lossless rather than at crf 16
- crf=23:b:v=0 pinned the generic bitrate option to 1 bit per second on vp8 and
  vp9, collapsing their output
- qscale:v=3 reached mpeg4 and mjpeg as nothing at all, replaced by an explicit
  quantizer range
- test-video-codecs.py asserts every preset segment carries an assignment
2026-08-17 03:04:59 +01:00
Vladimir Mandic 76941efc7e strict typechecking
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-08-16 12:45:50 +02:00
Vladimir Mandic 3f69bee9dd refactor modular
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-08-12 14:24:09 +02:00
Vladimir Mandic 8018578059 video processing preserve audio
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-07-27 14:23:14 +02:00
Vladimir Mandic 53e69c7ec2 seedvr enhancements
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-07-21 15:59:45 +02:00
Vladimir Mandic 1281cf8132 add process video
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-07-20 21:44:43 +02:00
Vladimir Mandic 8c0cd148be fix seedvr-7b
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-07-19 12:07:34 +02:00
Vladimir Mandic 42cb4cf489 explicit seedvr implementation
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-07-18 10:35:07 +02:00
Vladimir Mandic 98a7d17207 linting
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-07-03 22:05:33 +02:00
Vladimir Mandic a4d107a919 refactor detailer
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-07-03 21:03:28 +02:00
Vladimir Mandic fcee7e23f2 add experimental pruna
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-07-02 11:25:33 +02:00
Vladimir Mandic 81437ff051 cleanup seedvr
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-06-23 13:55:47 +02:00
CalamitousFelicitousness 0769d423a7 fix(upscale): make SeedVR2 generation_step patch idempotent
UpscalerSeedVR.load_model() rebinds the module-global
generation.generation_step (called by name inside generation_loop) to
the instance's model_step wrapper, keeping the previous value to call
back into. That global was never restored, so the second pass through
load_model() saved the wrapper itself as the "original", making
model_step() call itself -> RecursionError.

The second pass is reached on any model (re)load: with upscaler_unload
enabled (self.model reset to None after each run) every subsequent run
recurses, and switching SeedVR variants (self.model_loaded != model_name)
triggers it even without unload.

Stash the pristine generation_step on the module once and have the
wrapper call that, so repeated loads never wrap the wrapper.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 10:18:21 +01:00
Disty0 78243b70a4 sharpfin don't use antialias with area mode 2026-06-15 23:41:58 +03:00
Vladimir Mandic f69ce0d845 update requirements
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-06-15 14:55:14 +02: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
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
CalamitousFelicitousness f9ab0bf04d feat(api): add detailer postprocess script and /sdapi/v1/detail endpoint
Surface YoloRestorer.restore() as a standalone operation: a Detailer
postprocessing script in the Process tab and a thin /sdapi/v1/detail
endpoint, neither requiring a base generation pass.

- modules/postprocess/yolo.py: YoloRestorer.make_processing() builds the
  synthetic Img2Img processing object both entry points feed to restore(),
  resolving the seed so the inpaint passes are reproducible
- modules/api/process.py: post_detail handler exposes the full detailer
  parameter set and returns the detailed image plus optional annotations
  as base64
- scripts/postprocessing_detailer.py: reuses shared.yolo.ui('extras') and
  runs through make_processing()
- modules/postprocessing.py: run_extras takes a per-script script_args
  dict, also letting the extras API drive other scripts such as Remove
  background; omitting it leaves existing callers unchanged
- modules/api/models.py: ReqDetail / ResDetail
- modules/processing_info.py: guard create_infotext's Image/Hires CFG
  reporting against an unset (None) cfg_image, matching the is-not-None
  checks the other cfg_image readers use; the detailer inpaint pass runs
  with it unset
- test/test-detailer-api.py: covers both paths; effect tests measure the
  diff inside the detected region with extreme isolated parameter values,
  and the suite disables model quantization for the run and restores the
  original settings afterward
2026-06-01 00:25:59 +01: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 4747ca2fc0 lora change detection improvements
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-05-09 09:38:54 +02:00
awsr 278990a3d2 Fix detailer segmentation 2026-05-07 13:36:45 -07:00
awsr ff247d8fd2 Merge branch 'dev' into RUF013 2026-03-24 07:12:51 -07:00
awsr fb853af4b0 RUF013 updates 2026-03-24 04:58:19 -07:00
CalamitousFelicitousness 0d248c45e7 fix(upscaler): convert non-RGB images before ESRGAN forward pass 2026-03-23 02:12:59 +00:00
vladmandic 6427b799e9 merge: modules/postprocess/yolo.py 2026-03-17 10:50:09 +01:00
vladmandic de7959397c fb merge phase 3
Signed-off-by: vladmandic <mandic00@live.com>
2026-03-16 10:32:12 +01:00
vladmandic 6a9b9297c1 cleanup yolo
Signed-off-by: vladmandic <mandic00@live.com>
2026-03-16 08:30:23 +01:00
vladmandic 9013ba7bf1 cleanup yolo
Signed-off-by: vladmandic <mandic00@live.com>
2026-03-14 13:01:51 +01:00
vladmandic 2fb9e2115e merge: modules/postprocess/yolo.py 2026-03-14 12:56:06 +01:00
Vladimir Mandic 47543663f9 cleanup references to p.sd_model
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-02-19 20:48:42 +01:00
Vladimir Mandic f78f0eb4a5 refactor imports 2026-02-19 15:28:24 +01:00
Vladimir Mandic 216558185b update installer usage 2026-02-19 12:21:46 +01:00
Vladimir Mandic d65a2d1ebc ruff lint 2026-02-19 11:13:44 +01:00
Vladimir Mandic e5c494f999 cleanup logger 2026-02-19 11:09:13 +01:00
Vladimir Mandic a3074baf8b unified logger 2026-02-19 09:46:42 +01:00
Vladimir Mandic bfe014f5da modernize typing 2026-02-19 09:15:37 +01:00
Vladimir Mandic 6fdd3a53cf reduce mandatory requirements
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-02-18 17:53:08 +01:00
Vladimir Mandic d6bbfe3dc2 experimental python==3.14 support
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-02-17 22:08:36 +01:00
vladmandic ccd3e2e489 cleanup settings
Signed-off-by: vladmandic <mandic00@live.com>
2026-02-12 10:30:39 +01:00
vladmandic da1cf2f996 refactor image methods
Signed-off-by: vladmandic <mandic00@live.com>
2026-02-11 12:29:00 +01:00
vladmandic 1b4f94660f cleanup
Signed-off-by: vladmandic <mandic00@live.com>
2026-02-11 11:15:59 +01:00
Vladimir Mandic 41f206dec9 Merge pull request #4637 from CalamitousFelicitousness/refactor/remove-face-restoration
Refactor/remove face restoration
2026-02-11 11:12:34 +01:00