From 5c91f58c2406d19cc3c9b63b491291b5ff0efa96 Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Sat, 22 Aug 2026 11:45:06 +0200 Subject: [PATCH 1/2] update todo/changelog Signed-off-by: Vladimir Mandic --- CHANGELOG.md | 5 +++-- TODO.md | 29 +++++++++++++---------------- 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 442734c6d..59a304765 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Change Log for SD.Next -## Highlights for 2026-08-21 +## Highlights for 2026-08-22 Time for a new release, this is a larger one! Main focus is improving video workflows which also brings full support for new [MiniMax H3](https://vladmandic.github.io/sdnext-docs/MiniMax) and [LTXVideo-2.5](https://vladmandic.github.io/sdnext-docs/LTX) @@ -16,7 +16,7 @@ Plus quite a lot more, see full [changelog](https://github.com/vladmandic/automa [Home](https://vladmandic.github.io/sdnext/) | [ChangeLog](https://github.com/vladmandic/automatic/blob/master/CHANGELOG.md) | [Docs](https://vladmandic.github.io/sdnext-docs/) | [Discord](https://discord.com/invite/sd-next-federal-batch-inspectors-1101998836328697867) | [Sponsor](https://github.com/sponsors/vladmandic) -## Details for 2026-08-21 +## Details for 2026-08-22 - **Models** - [MiniMax H3](https://huggingface.co/MiniMaxAI/MiniMax-H3) available in *base* and *ref* variants @@ -90,6 +90,7 @@ Plus quite a lot more, see full [changelog](https://github.com/vladmandic/automa - hf: init hf env variables before gradio load - lora: skip init and rebuild offload state - lora: keep network multiplier on change + - lora: handle networks when delta does not fit - auth: improve handling of hf auth - load: improve pipeline detection for non-cached models - offload: cleanup alt offload codepaths diff --git a/TODO.md b/TODO.md index 76b356d1c..fa8284d50 100644 --- a/TODO.md +++ b/TODO.md @@ -12,35 +12,30 @@ ## Features +### Assigned + +- Object clear remover for Kanvas: [Object clear](https://huggingface.co/jixin0101/ObjectClear), @vladmandic +- OpenAI API interface for image generation, @vladmandic +- Lightweight scheduler/queue manager, @vladmandic +- Integrate natural language image search: [ImageDB](https://github.com/vladmandic/imagedb), @vladmandic +- Support cloud providers, @CalamitousFelicitousness + ### Roadmap -- Video upscaling: nvidia-vfx, ltx-upscaler, etc. +- Video upscaling: LTX-Upscaler - Video capabilities to processing tab, add RIFE, upscaling (once available) -- Object clear remover for Kanvas: [Object clear](https://huggingface.co/jixin0101/ObjectClear) -- OpenAI API interface for image generation -- Lightweight scheduler/queue manager - Distraction-free UI mode with prompt-only, chat-based interface - Revisit transformer caching for modular pipelines - Revisit guidance for modular pipelines - Implement modular for some image models - Video models: support finetunes - -### Assigned - -- Support cloud providers, @CalamitousFelicitousness - -### Unassigned - - Incorporate [prompting guides](https://github.com/CalamitousFelicitousness/ai-prompting-guides) -- Video models: add to Reference +- Video models: use Networks/Reference instead of custom - UI Lite vs Expert mode -- Auto handle scheduler `prediction_type` -- JSON image metadata - Expand custom VAE support - Refactor: remove obsolete code: - Remove `olive-ai` -- Integrate natural language image search - - [ImageDB](https://github.com/vladmandic/imagedb) + ### OnHold @@ -48,11 +43,13 @@ - [QuantFunc](https://huggingface.co/QuantFunc/Klein-9B-Series): once its released as sdk - LoRA add OMI format support for SD35/FLUX.1 - Remote Text-Encoder support, sidelined for the moment +- Auto handle scheduler `prediction_type` - Multi-user support - Settings profile manager - TensorRT acceleration - Cache models in memory - Unify *huggingface* and *diffusers* model folders +- JSON image metadata ### Modular From 69d8f4f7c4384900efaf861b1b2450c2a6f2d57f Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Sat, 22 Aug 2026 16:08:58 +0200 Subject: [PATCH 2/2] handle torchsde Signed-off-by: Vladimir Mandic --- CHANGELOG.md | 2 ++ modules/sd_samplers_diffusers.py | 17 +++++++++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 59a304765..615ca5c1c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ and improves general video processing with flexible video upscaling, updated int - New [group offload](https://vladmandic.github.io/sdnext-docs/Offload/#group) option which is more aggressive than the default balanced offload - Extended model support for [Nunchaku-Lite](https://github.com/rootonchair/nunchaku-lite) engine - A lot of [SDNQ](https://github.com/Disty0/sdnq) *quantization and attention* optimizations and features +- Updated [SD.Next Launcher](https://github.com/vladmandic/sdnext-launcher) Plus quite a lot more, see full [changelog](https://github.com/vladmandic/automatic/blob/dev/CHANGELOG.md) for details! @@ -113,6 +114,7 @@ Plus quite a lot more, see full [changelog](https://github.com/vladmandic/automa - api: process - api: auth via remote-ip - krea2: fallback to base pipeline/transformer for nunchaku-lite + - torchsde: handle obsolete dependency ## Update for 2026-08-07 diff --git a/modules/sd_samplers_diffusers.py b/modules/sd_samplers_diffusers.py index 6b67e7d57..c64145f3c 100644 --- a/modules/sd_samplers_diffusers.py +++ b/modules/sd_samplers_diffusers.py @@ -3,6 +3,7 @@ import re import copy import inspect import diffusers +from installer import install from modules import shared, errors from modules.logger import log from modules.sd_hijack_schedulers import init_hijack, hijack_unipc, attach_scale_noise_if_missing # pylint: disable=unused-import @@ -20,13 +21,11 @@ hijack_unipc() try: from diffusers import ( CMStochasticIterativeScheduler, - CosineDPMSolverMultistepScheduler, DDIMScheduler, DDPMScheduler, DEISMultistepScheduler, DPMSolverMultistepInverseScheduler, DPMSolverMultistepScheduler, - DPMSolverSDEScheduler, DPMSolverSinglestepScheduler, EDMDPMSolverMultistepScheduler, EDMEulerScheduler, @@ -54,6 +53,20 @@ except Exception as e: if os.environ.get('SD_SAMPLER_DEBUG', None) is not None: errors.display(e, 'Samplers') +try: + install('trampoline==0.1.2', 'trampoline', quiet=True, no_deps=True) + install('torchsde==0.2.6', 'torchsde', quiet=True, no_deps=True) + from diffusers import ( + DPMSolverSDEScheduler, + CosineDPMSolverMultistepScheduler, + ) +except Exception as e: + DPMSolverSDEScheduler = None + CosineDPMSolverMultistepScheduler = None + log.error(f'Sampler import: version={diffusers.__version__} error: {e}') + if os.environ.get('SD_SAMPLER_DEBUG', None) is not None: + errors.display(e, 'Samplers') + # SD.Next Schedulers try: # from modules.schedulers.scheduler_tcd import TCDScheduler # pylint: disable=ungrouped-imports