Skip to content

Commit c925b61

Browse files
authored
Merge pull request #3755 from vladmandic/dev
merge dev
2 parents 9f12223 + 037e663 commit c925b61

File tree

152 files changed

+82529
-1569
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

152 files changed

+82529
-1569
lines changed

.gitignore

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ build/
5151
dist/
5252

5353
# dynamically generated
54-
/repositories/ip-instruct/
54+
/repositories/deepseek-vl2/
5555

5656
# all dynamic stuff
5757
/extensions/**/*

.gitmodules

+2-2
Original file line numberDiff line numberDiff line change
@@ -23,5 +23,5 @@
2323
url = https://github.com/ArtVentureX/sd-webui-agent-scheduler
2424
ignore = dirty
2525
[submodule "extensions-builtin/sdnext-modernui"]
26-
path = extensions-builtin/sdnext-modernui
27-
url = https://github.com/BinaryQuantumSoul/sdnext-modernui
26+
path = extensions-builtin/sdnext-modernui
27+
url = https://github.com/BinaryQuantumSoul/sdnext-modernui

.pylintrc

+2
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,14 @@ ignore-paths=/usr/lib/.*$,
2323
modules/k-diffusion,
2424
modules/ldsr,
2525
modules/meissonic,
26+
modules/mod,
2627
modules/omnigen,
2728
modules/onnx_impl,
2829
modules/pag,
2930
modules/pixelsmith,
3031
modules/prompt_parser_xhinker.py,
3132
modules/pulid/eva_clip,
33+
modules/ras,
3234
modules/rife,
3335
modules/schedulers,
3436
modules/taesd,

.ruff.toml

+2
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,14 @@ exclude = [
1717
"modules/k-diffusion",
1818
"modules/ldsr",
1919
"modules/meissonic",
20+
"modules/mod",
2021
"modules/omnigen",
2122
"modules/pag",
2223
"modules/pixelsmith",
2324
"modules/postprocess/aurasr_arch.py",
2425
"modules/prompt_parser_xhinker.py",
2526
"modules/pulid/eva_clip",
27+
"modules/ras",
2628
"modules/rife",
2729
"modules/schedulers",
2830
"modules/segmoe",

CHANGELOG.md

+141
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,146 @@
11
# Change Log for SD.Next
22

3+
## Update for 2025-02-20
4+
5+
### Highlight for 2025-02-20
6+
7+
We're back with another update with nearly 100 commits!
8+
- Starting with massive UI update with full [localization](https://vladmandic.github.io/sdnext-docs/Locale/) for 8 languages
9+
and 100+ new [hints](https://vladmandic.github.io/sdnext-docs/Hints/)
10+
- Big update to [Docker](https://vladmandic.github.io/sdnext-docs/Docker/) containers
11+
with support for all major compute platforms
12+
- A lot of [outpainting](https://vladmandic.github.io/sdnext-docs/Outpaint/) goodies
13+
- Support for new models: [AlphaVLLM Lumina 2](https://github.com/Alpha-VLLM/Lumina-Image-2.0) and [Ostris Flex.1-Alpha](https://huggingface.co/ostris/Flex.1-alpha)
14+
- And new **Mixture-of-Diffusers** regional prompting & tiling pipeline
15+
- Follow-up to last weeks **interrogate/captioning** rewrite
16+
now with redesigned captioning UI, batch support, and much more
17+
plus **JoyTag**, **JoyCaption**, **PaliGemma**, **ToriiGate**, **Ovis2** added to list of supported models
18+
- Some changes to **prompt parsing** to allow more control as well as
19+
more flexibility when mouting SDNext server to custom URL
20+
- Of course, cumulative fixes...
21+
22+
*...and more* - see [changelog](https://github.com/vladmandic/sdnext/blob/dev/CHANGELOG.md) for full details!
23+
24+
### Details for 2025-02-20
25+
26+
- **User Interface**
27+
- **Hints**
28+
- added/updated 100+ ui hints!
29+
- [hints](https://vladmandic.github.io/sdnext-docs/Hints/) documentation and contribution guide
30+
- **Localization**
31+
- full ui localization!
32+
*english, croatian, spanish, french, italian, portuguese, chinese, japanese, korean, russian*
33+
- set in *settings -> user interface -> language*
34+
- [localization](https://vladmandic.github.io/sdnext-docs/Locale/) documentation
35+
- **UI**
36+
- force browser cache-invalidate on page load
37+
- configurable request timeout
38+
- modernui improve gallery styling
39+
- modernui improve networks styling
40+
- modernui support variable card size
41+
- **Docs**
42+
- New [Outpaint](https://vladmandic.github.io/sdnext-docs/Outpaint/) step-by-step guide
43+
- Updated [Docker](https://github.com/vladmandic/sdnext/wiki/Docker) guide
44+
includes build and publish and both local and cloud examples
45+
- **Models**
46+
- [AlphaVLLM Lumina 2](https://github.com/Alpha-VLLM/Lumina-Image-2.0)
47+
new foundation model for image generation based o Gemma-2-2B text encoder and a flow-based diffusion transformer
48+
fully supports offloading and on-the-fly quantization
49+
simply select from *networks -> models -> reference*
50+
- [Ostris Flex.1-Alpha](https://huggingface.co/ostris/Flex.1-alpha)
51+
originally based on *Flux.1-Schnell*, but retrained and with different architecture
52+
result is model smaller than *Flux.1-Dev*, but with similar capabilities
53+
fully supports offloading and on-the-fly quantization
54+
simply select from *networks -> models -> reference*
55+
- **Functions**
56+
- [Mixture-of-Diffusers](https://huggingface.co/posts/elismasilva/251775641926329)
57+
Regional tiling type of a solution for SDXL models
58+
select from *scripts -> mixture of diffusers*
59+
- [Automatic Color Inpaint]
60+
Automatically creates mask based on selected color and triggers inpaint
61+
simply select in *scripts -> automatic color inpaint* when in img2img mode
62+
- [RAS: Region-Adaptive Sampling](https://github.com/microsoft/RAS) *experimental*
63+
Speeds up SD3.5 models by sampling only regions of interest
64+
Enable in *settings -> pipeline modifiers -> ras*
65+
- **Interrogate/Captioning**
66+
- Redesigned captioning UI
67+
split from Process tab into separate tab
68+
split `clip` vs `vlm` models processing
69+
direct *send-to* buttons on all tabs: txt/img/ctrl->process/caption, process/caption->txt/img/ctrl
70+
- Advanced params:
71+
VLM: *max-tokens, num-beams, temperature, top-k, top-p, do-sample*
72+
CLiP: *min-length, max-length, chunk-size, min-flavors, max-flavors, flavor-count, num-beams*
73+
params are auto-saved in `config.json` and used when using quick interrogate
74+
params that are set to 0 mean use model defaults
75+
- Batch processing: VLM and CLiP
76+
for example, can be used to caption your training dataset in one go
77+
add option to append to captions file, can be used to run multiple captioning models in sequence
78+
add option to run recursively on all subfolders
79+
add progress bar
80+
- Add additional VLM models:
81+
[JoyTag](https://huggingface.co/fancyfeast/joytag)
82+
[JoyCaption 2](https://huggingface.co/fancyfeast/llama-joycaption-alpha-two-hf-llava)
83+
[Google PaliGemma 2](https://huggingface.co/google/paligemma2-3b-pt-224) 3B
84+
[ToriiGate 0.4](https://huggingface.co/Minthy/ToriiGate-v0.4-7B) 7B
85+
[AIDC Ovis2](https://huggingface.co/AIDC-AI/Ovis2-1B) 1B/2B/4B
86+
- *Note* some models require `flash-attn` to be installed
87+
due to binary/build dependencies, it should not be done automatically,
88+
see [flash-attn](https://github.com/Dao-AILab/flash-attention) for installation instructions
89+
- **Docker**
90+
- updated **CUDA** receipe to `torch==2.6.0` with `cuda==12.6` and add prebuilt image
91+
- added **ROCm** receipe and prebuilt image
92+
- added **IPEX** receipe and add prebuilt image
93+
- added **OpenVINO** receipe and prebuilt image
94+
- **System**
95+
- improve **python==3.12** compatibility
96+
- **Torch**
97+
- for **zluda** set default to `torch==2.6.0+cu118`
98+
- for **openvino** set default to `torch==2.6.0+cpu`
99+
- **OpenVINO**
100+
- update to `openvino==2025.0.0`
101+
- improve upscaler compatibility
102+
- enable upscaler compile by default
103+
- fix shape mismatch errors on too many resolution changes
104+
- **ZLUDA**
105+
- update to `zluda==3.8.8`
106+
- **Other**
107+
- **Asymmetric tiling**
108+
allows for configurable image tiling for x/y axis separately
109+
enable in *scripts -> asymmetric tiling*
110+
*note*: traditional symmetric tiling is achieved by setting circular mode for both x and y
111+
- **Styles**
112+
ability to save and/or restore prompts before or after parsing of wildcards
113+
set in *settings -> networks -> styles*
114+
- **Access tokens**
115+
persist *models -> hugginface -> token*
116+
persist *models -> civitai -> token*
117+
- global switch to lancosz method for all interal resize ops and bicubic for interpolation ops
118+
- **Text encoder**
119+
add advanced per-model options for text encoder
120+
set in *settings -> text encoder -> Optional*
121+
- **Subpath**
122+
allow setting additional mount subpath over which server url will be accessible
123+
set in *settings -> user interface*
124+
- **Prompt parsing**
125+
better handling of prompt parsing when using masking char `\`
126+
- **Fixes**
127+
- update torch nightly urls
128+
- docs/wiki always use relative links
129+
- ui use correct timezone for log display
130+
- ui improve settings search behavior
131+
- ui log scroll to bottom
132+
- ui fix send to inpaint/sketch
133+
- modernui add control init image toggle
134+
- modernui fix sampler advanced options
135+
- outpaint fixes
136+
- validate output before hires/refine
137+
- scheduler fix sigma index out of bounds
138+
- force pydantic version reinstall/reload
139+
- multi-unit when using controlnet-union
140+
- pulid with hidiffusion
141+
- api: stricter access control
142+
- api: universal handle mount subpaths
143+
3144
## Update for 2025-02-05
4145

5146
- refresh dev/master branches

README.md

+5
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
## SD.Next Features
2525

2626
All individual features are not listed here, instead check [ChangeLog](CHANGELOG.md) for full list of changes
27+
- Fully localized:
28+
**English | Chinese | Russian | Spanish | German | French | Italian | Portuguese | Japanese | Korean**
2729
- Multiple UIs!
2830
**Standard | Modern**
2931
- Multiple [diffusion models](https://vladmandic.github.io/sdnext-docs/Model-Support/)!
@@ -34,6 +36,7 @@ All individual features are not listed here, instead check [ChangeLog](CHANGELOG
3436
- Optimized processing with latest `torch` developments with built-in support for model compile, quantize and compress
3537
Compile backends: *Triton | StableFast | DeepCache | OneDiff | TeaCache | etc.*
3638
Quantization and compression methods: *BitsAndBytes | TorchAO | Optimum-Quanto | NNCF*
39+
- **Interrogate/Captioning** with 150+ **OpenCLiP** models and 20+ built-in **VLMs**
3740
- Built-in queue management
3841
- Built in installer with automatic updates and dependency management
3942
- Mobile compatible
@@ -68,6 +71,8 @@ SD.Next supports broad range of models: [supported models](https://vladmandic.gi
6871
- *ONNX/Olive*
6972
- *AMD* GPUs on Windows using **ZLUDA** libraries
7073

74+
Plus Docker container receipes for: [CUDA, ROCm, Intel IPEX and OpenVINO](https://vladmandic.github.io/sdnext-docs/Docker/)
75+
7176
## Getting started
7277

7378
- Get started with **SD.Next** by following the [installation instructions](https://vladmandic.github.io/sdnext-docs/Installation/)

TODO.md

+18-21
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,26 @@
22

33
Main ToDo list can be found at [GitHub projects](https://github.com/users/vladmandic/projects)
44

5-
## Pending
6-
7-
- LoRA direct with caching
8-
- Previewer issues
9-
- Redesign postprocessing
10-
115
## Future Candidates
126

13-
- Flux NF4 loader: <https://github.com/huggingface/diffusers/issues/9996>
14-
- IPAdapter negative: <https://github.com/huggingface/diffusers/discussions/7167>
15-
- Control API enhance scripts compatibility
16-
- PixelSmith: <https://github.com/Thanos-DB/Pixelsmith>
7+
- Redesign postprocessing
8+
- Flux NF4 loader: <https://github.com/huggingface/diffusers/issues/9996>
9+
- IPAdapter negative: <https://github.com/huggingface/diffusers/discussions/7167>
10+
- Control API enhance scripts compatibility
11+
- CogView4
1712

1813
## Code TODO
1914

20-
- TODO install: enable ROCm for windows when available
21-
- TODO resize image: enable full VAE mode for resize-latent
22-
- TODO processing: remove duplicate mask params
23-
- TODO flux: fix loader for civitai nf4 models
24-
- TODO model loader: implement model in-memory caching
25-
- TODO hypertile: vae breaks when using non-standard sizes
26-
- TODO model load: force-reloading entire model as loading transformers only leads to massive memory usage
27-
- TODO lora load: direct with bnb
28-
- TODO lora make: support quantized flux
29-
- TODO control: support scripts via api
30-
- TODO modernui: monkey-patch for missing tabs.select event
15+
- flux: loader for civitai nf4 models (fixme)
16+
- hypertile: vae breaks when using non-standard sizes (fixme)
17+
- install: enable ROCm for windows when available (fixme)
18+
- lora make support quantized flux (fixme)
19+
- lora: add other quantization types (fixme)
20+
- model load: force-reloading entire model as loading transformers only leads to massive memory usage (fixme)
21+
- model loader: implement model in-memory caching (fixme)
22+
- modernui: monkey-patch for missing tabs.select event (fixme)
23+
- processing: remove duplicate mask params (fixme)
24+
- resize image: enable full VAE mode for resize-latent (fixme)
25+
- sana: fails when quantized (fixme)
26+
- support scripts via api (fixme)
27+
- transformer from-single-file with quant (fixme)
File renamed without changes.

cli/hf-convert.py

-35
This file was deleted.

cli/image-encode.py

-1
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,3 @@ def encode(file: str):
2929
print('=== BEGIN ===')
3030
print(f'{b64}')
3131
print('=== END ===')
32-

cli/locale-sanitize-override.py

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#!/usr/bin/env python
2+
3+
# Remove the entries that no longer exist in locale from override.
4+
5+
import sys
6+
import json
7+
from rich import print # pylint: disable=redefined-builtin
8+
9+
if __name__ == "__main__":
10+
sys.argv.pop(0)
11+
if len(sys.argv) == 0:
12+
print('Invalid parameters.')
13+
sys.exit(1)
14+
filename = sys.argv[0]
15+
labels = []
16+
override = None
17+
try:
18+
with open('html/locale_en.json', 'r', encoding="utf-8") as f:
19+
locale = json.load(f)
20+
for v in locale.values():
21+
for item in v:
22+
labels.append(item['label'])
23+
with open(filename, 'r', encoding="utf-8") as f:
24+
override = json.load(f)
25+
except Exception:
26+
print('Invalid file format.')
27+
sys.exit(1)
28+
with open(filename, 'w', encoding="utf-8") as f:
29+
json.dump([item for item in override if item['label'] in labels], f, ensure_ascii=False)

0 commit comments

Comments
 (0)