Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

merge dev #3755

Merged
merged 99 commits into from
Feb 20, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
99 commits
Select commit Hold shift + click to select a range
959f9e2
fix startup with skip
vladmandic Feb 5, 2025
47b4848
add asymmetric tiling
vladmandic Feb 6, 2025
e018ed6
ui quality-of-life improvements
vladmandic Feb 6, 2025
cd1a9c5
ui log scroll to bottom
vladmandic Feb 6, 2025
4f09014
zluda torch 2.6.0
lshqqytiger Feb 7, 2025
c30b275
update changelog
vladmandic Feb 7, 2025
5f6a363
update cli tools
vladmandic Feb 7, 2025
7041b2b
Update OpenVINO to 2025.0.0
Disty0 Feb 8, 2025
8873b2f
massive hints update
vladmandic Feb 7, 2025
a19ec07
massive update to hints and add localization engine
vladmandic Feb 8, 2025
3fcc93c
create locales: hr,de,es,fr,it,pt,zh,ja,ko,ru
vladmandic Feb 8, 2025
e578afc
update locales
vladmandic Feb 8, 2025
1acbabb
Upate OpenVINO to PyTorch 2.6 and fix mismatched shapes error on too …
Disty0 Feb 8, 2025
59911b7
OpenVINO enable Upscaler compile by default
Disty0 Feb 8, 2025
c79d125
Fix messed up logging with OpenVINO
Disty0 Feb 8, 2025
a77bd98
Don't force VAE compile with OpenVINO and set min detected memory for…
Disty0 Feb 8, 2025
57a80a7
correct awkward or incorrect Korean localizations
lshqqytiger Feb 9, 2025
a34d331
Correct DPM++ 1S naming and add DPM++ SDE preset
Disty0 Feb 9, 2025
d01fefd
add locale override capabilities
vladmandic Feb 9, 2025
343f11a
correct links
vladmandic Feb 9, 2025
92f494c
update outpaint
vladmandic Feb 9, 2025
9bd68d3
modernui add control init image toggle
vladmandic Feb 9, 2025
b4881ae
ui fix send to inpaint/sketch
vladmandic Feb 9, 2025
ca7db28
cleanup extension installer
vladmandic Feb 9, 2025
510ff7e
Move Korean localizations to override_ko.json
lshqqytiger Feb 10, 2025
a671501
minify override_ko.json
lshqqytiger Feb 10, 2025
92e7e74
persist hf and civitai tokens
vladmandic Feb 10, 2025
9686e08
fix locale override merge
vladmandic Feb 10, 2025
6270fd8
update nightly url
vladmandic Feb 10, 2025
640aff8
global lancosz
vladmandic Feb 10, 2025
c608674
styles support parsed and upparsed save and apply
vladmandic Feb 11, 2025
78125d8
validate base before hires/refine
vladmandic Feb 11, 2025
82ff868
update docker info
vladmandic Feb 11, 2025
1a8af2b
update dockerfile.cuda
vladmandic Feb 11, 2025
5df9321
Add ipex dockerfile
Disty0 Feb 12, 2025
27931dc
Add Dockerfile.rocm
Disty0 Feb 12, 2025
47de843
Add Dockerfile.openvino
Disty0 Feb 12, 2025
1d53354
add flex.1-alpha
vladmandic Feb 12, 2025
a7ccea6
add lumina2
vladmandic Feb 12, 2025
761d04d
add mod regional tiling
vladmandic Feb 12, 2025
f450157
update changelog
vladmandic Feb 12, 2025
e8bf91c
update wiki
vladmandic Feb 12, 2025
bf74ea2
fix mod typo
vladmandic Feb 12, 2025
013aaec
scheduler fix sigma index out of bounds
vladmandic Feb 12, 2025
d9583df
modernui fix sampler advanced options
vladmandic Feb 12, 2025
7d76f82
mod handle prompt-list
vladmandic Feb 12, 2025
260bfc4
update changelog
vladmandic Feb 12, 2025
0204eac
force pydantic reinstall/reload
vladmandic Feb 12, 2025
5dacd91
cleanup
vladmandic Feb 13, 2025
9ce34b4
multi controlnet-union
vladmandic Feb 13, 2025
00be489
modernui fixes
vladmandic Feb 13, 2025
49712ab
update requirements
vladmandic Feb 13, 2025
5ee6768
Merge branch 'master' into dev
vladmandic Feb 13, 2025
f94196b
Rename ROCm Flash atten hijack to CK Flash atten and enable AOTriton …
Disty0 Feb 13, 2025
d73a185
interposer prototype
vladmandic Feb 13, 2025
13e9f4f
flash attn triton is already merged into main
lshqqytiger Feb 14, 2025
6564174
zluda v3.8.8
lshqqytiger Feb 14, 2025
1ffa124
IPEX use native torch.xpu.mem_get_info
Disty0 Feb 14, 2025
bb8368e
Revert torch.xpu.mem_get_info
Disty0 Feb 14, 2025
877c488
pulid with hidiffusion
vladmandic Feb 14, 2025
dbf20d1
api refactor: force access control and handle subpaths
vladmandic Feb 14, 2025
342a757
update modernui
vladmandic Feb 14, 2025
878cab0
Reverse the sdpa hijcak order
Disty0 Feb 14, 2025
15e95c9
migration v2
Artheriax Feb 14, 2025
b437fe4
prompt parsing with explicit masking
vladmandic Feb 14, 2025
1e8267e
fix based on vlad's review
Artheriax Feb 14, 2025
73b0652
update changelog
vladmandic Feb 14, 2025
e43ba5d
add Unique labeling
Artheriax Feb 14, 2025
09d2213
Merge branch 'dev' into automatic-color-inpaint
vladmandic Feb 14, 2025
c430d32
Merge pull request #3760 from Artheriax/automatic-color-inpaint
vladmandic Feb 14, 2025
896fab1
update aci
vladmandic Feb 14, 2025
8e5e592
add aci to changelog
vladmandic Feb 14, 2025
32fe60b
update aci
vladmandic Feb 14, 2025
f8de92e
fix zluda installer bug
lshqqytiger Feb 15, 2025
067512b
fix
lshqqytiger Feb 15, 2025
23134eb
use symlink if possible
lshqqytiger Feb 15, 2025
227a419
quick controlnet fix
vladmandic Feb 15, 2025
9f59967
fix bug
lshqqytiger Feb 15, 2025
09fa340
remove unused import
lshqqytiger Feb 15, 2025
dc551bf
Set blaslt_tensile_libpath to empty string instead of None
Disty0 Feb 15, 2025
1f2fc92
add joytag
vladmandic Feb 15, 2025
abd439d
add joycaption
vladmandic Feb 15, 2025
c2ec624
update readme
vladmandic Feb 15, 2025
8906f96
deepseek-vl2 experiments
vladmandic Feb 15, 2025
af3a5d9
update wiki
vladmandic Feb 15, 2025
e95bd93
caption ui redesign
vladmandic Feb 15, 2025
f3dd9b9
vlm advanced settings and batch processing
vladmandic Feb 15, 2025
5e12985
configurable request timeout
vladmandic Feb 16, 2025
a4b3dc2
modernize clip interrogate
vladmandic Feb 17, 2025
41426c7
update changelog and todo
vladmandic Feb 17, 2025
b699015
caption tab modernui support
vladmandic Feb 17, 2025
60a7549
configurable card sizes
vladmandic Feb 17, 2025
4d9d9cb
update changelog
vladmandic Feb 17, 2025
d6cb50f
style fix
vladmandic Feb 17, 2025
1ee151b
update diffusers
vladmandic Feb 18, 2025
5eb123d
update changelog
vladmandic Feb 18, 2025
041f0bb
regenerate locales and rerun all translations
vladmandic Feb 18, 2025
6cf445d
add ras-sd35 experimental
vladmandic Feb 18, 2025
037e663
bump changelog
vladmandic Feb 20, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ build/
dist/

# dynamically generated
/repositories/ip-instruct/
/repositories/deepseek-vl2/

# all dynamic stuff
/extensions/**/*
Expand Down
4 changes: 2 additions & 2 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,5 @@
url = https://github.com/ArtVentureX/sd-webui-agent-scheduler
ignore = dirty
[submodule "extensions-builtin/sdnext-modernui"]
path = extensions-builtin/sdnext-modernui
url = https://github.com/BinaryQuantumSoul/sdnext-modernui
path = extensions-builtin/sdnext-modernui
url = https://github.com/BinaryQuantumSoul/sdnext-modernui
2 changes: 2 additions & 0 deletions .pylintrc
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,14 @@ ignore-paths=/usr/lib/.*$,
modules/k-diffusion,
modules/ldsr,
modules/meissonic,
modules/mod,
modules/omnigen,
modules/onnx_impl,
modules/pag,
modules/pixelsmith,
modules/prompt_parser_xhinker.py,
modules/pulid/eva_clip,
modules/ras,
modules/rife,
modules/schedulers,
modules/taesd,
Expand Down
2 changes: 2 additions & 0 deletions .ruff.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,14 @@ exclude = [
"modules/k-diffusion",
"modules/ldsr",
"modules/meissonic",
"modules/mod",
"modules/omnigen",
"modules/pag",
"modules/pixelsmith",
"modules/postprocess/aurasr_arch.py",
"modules/prompt_parser_xhinker.py",
"modules/pulid/eva_clip",
"modules/ras",
"modules/rife",
"modules/schedulers",
"modules/segmoe",
Expand Down
141 changes: 141 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,146 @@
# Change Log for SD.Next

## Update for 2025-02-20

### Highlight for 2025-02-20

We're back with another update with nearly 100 commits!
- Starting with massive UI update with full [localization](https://vladmandic.github.io/sdnext-docs/Locale/) for 8 languages
and 100+ new [hints](https://vladmandic.github.io/sdnext-docs/Hints/)
- Big update to [Docker](https://vladmandic.github.io/sdnext-docs/Docker/) containers
with support for all major compute platforms
- A lot of [outpainting](https://vladmandic.github.io/sdnext-docs/Outpaint/) goodies
- 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)
- And new **Mixture-of-Diffusers** regional prompting & tiling pipeline
- Follow-up to last weeks **interrogate/captioning** rewrite
now with redesigned captioning UI, batch support, and much more
plus **JoyTag**, **JoyCaption**, **PaliGemma**, **ToriiGate**, **Ovis2** added to list of supported models
- Some changes to **prompt parsing** to allow more control as well as
more flexibility when mouting SDNext server to custom URL
- Of course, cumulative fixes...

*...and more* - see [changelog](https://github.com/vladmandic/sdnext/blob/dev/CHANGELOG.md) for full details!

### Details for 2025-02-20

- **User Interface**
- **Hints**
- added/updated 100+ ui hints!
- [hints](https://vladmandic.github.io/sdnext-docs/Hints/) documentation and contribution guide
- **Localization**
- full ui localization!
*english, croatian, spanish, french, italian, portuguese, chinese, japanese, korean, russian*
- set in *settings -> user interface -> language*
- [localization](https://vladmandic.github.io/sdnext-docs/Locale/) documentation
- **UI**
- force browser cache-invalidate on page load
- configurable request timeout
- modernui improve gallery styling
- modernui improve networks styling
- modernui support variable card size
- **Docs**
- New [Outpaint](https://vladmandic.github.io/sdnext-docs/Outpaint/) step-by-step guide
- Updated [Docker](https://github.com/vladmandic/sdnext/wiki/Docker) guide
includes build and publish and both local and cloud examples
- **Models**
- [AlphaVLLM Lumina 2](https://github.com/Alpha-VLLM/Lumina-Image-2.0)
new foundation model for image generation based o Gemma-2-2B text encoder and a flow-based diffusion transformer
fully supports offloading and on-the-fly quantization
simply select from *networks -> models -> reference*
- [Ostris Flex.1-Alpha](https://huggingface.co/ostris/Flex.1-alpha)
originally based on *Flux.1-Schnell*, but retrained and with different architecture
result is model smaller than *Flux.1-Dev*, but with similar capabilities
fully supports offloading and on-the-fly quantization
simply select from *networks -> models -> reference*
- **Functions**
- [Mixture-of-Diffusers](https://huggingface.co/posts/elismasilva/251775641926329)
Regional tiling type of a solution for SDXL models
select from *scripts -> mixture of diffusers*
- [Automatic Color Inpaint]
Automatically creates mask based on selected color and triggers inpaint
simply select in *scripts -> automatic color inpaint* when in img2img mode
- [RAS: Region-Adaptive Sampling](https://github.com/microsoft/RAS) *experimental*
Speeds up SD3.5 models by sampling only regions of interest
Enable in *settings -> pipeline modifiers -> ras*
- **Interrogate/Captioning**
- Redesigned captioning UI
split from Process tab into separate tab
split `clip` vs `vlm` models processing
direct *send-to* buttons on all tabs: txt/img/ctrl->process/caption, process/caption->txt/img/ctrl
- Advanced params:
VLM: *max-tokens, num-beams, temperature, top-k, top-p, do-sample*
CLiP: *min-length, max-length, chunk-size, min-flavors, max-flavors, flavor-count, num-beams*
params are auto-saved in `config.json` and used when using quick interrogate
params that are set to 0 mean use model defaults
- Batch processing: VLM and CLiP
for example, can be used to caption your training dataset in one go
add option to append to captions file, can be used to run multiple captioning models in sequence
add option to run recursively on all subfolders
add progress bar
- Add additional VLM models:
[JoyTag](https://huggingface.co/fancyfeast/joytag)
[JoyCaption 2](https://huggingface.co/fancyfeast/llama-joycaption-alpha-two-hf-llava)
[Google PaliGemma 2](https://huggingface.co/google/paligemma2-3b-pt-224) 3B
[ToriiGate 0.4](https://huggingface.co/Minthy/ToriiGate-v0.4-7B) 7B
[AIDC Ovis2](https://huggingface.co/AIDC-AI/Ovis2-1B) 1B/2B/4B
- *Note* some models require `flash-attn` to be installed
due to binary/build dependencies, it should not be done automatically,
see [flash-attn](https://github.com/Dao-AILab/flash-attention) for installation instructions
- **Docker**
- updated **CUDA** receipe to `torch==2.6.0` with `cuda==12.6` and add prebuilt image
- added **ROCm** receipe and prebuilt image
- added **IPEX** receipe and add prebuilt image
- added **OpenVINO** receipe and prebuilt image
- **System**
- improve **python==3.12** compatibility
- **Torch**
- for **zluda** set default to `torch==2.6.0+cu118`
- for **openvino** set default to `torch==2.6.0+cpu`
- **OpenVINO**
- update to `openvino==2025.0.0`
- improve upscaler compatibility
- enable upscaler compile by default
- fix shape mismatch errors on too many resolution changes
- **ZLUDA**
- update to `zluda==3.8.8`
- **Other**
- **Asymmetric tiling**
allows for configurable image tiling for x/y axis separately
enable in *scripts -> asymmetric tiling*
*note*: traditional symmetric tiling is achieved by setting circular mode for both x and y
- **Styles**
ability to save and/or restore prompts before or after parsing of wildcards
set in *settings -> networks -> styles*
- **Access tokens**
persist *models -> hugginface -> token*
persist *models -> civitai -> token*
- global switch to lancosz method for all interal resize ops and bicubic for interpolation ops
- **Text encoder**
add advanced per-model options for text encoder
set in *settings -> text encoder -> Optional*
- **Subpath**
allow setting additional mount subpath over which server url will be accessible
set in *settings -> user interface*
- **Prompt parsing**
better handling of prompt parsing when using masking char `\`
- **Fixes**
- update torch nightly urls
- docs/wiki always use relative links
- ui use correct timezone for log display
- ui improve settings search behavior
- ui log scroll to bottom
- ui fix send to inpaint/sketch
- modernui add control init image toggle
- modernui fix sampler advanced options
- outpaint fixes
- validate output before hires/refine
- scheduler fix sigma index out of bounds
- force pydantic version reinstall/reload
- multi-unit when using controlnet-union
- pulid with hidiffusion
- api: stricter access control
- api: universal handle mount subpaths

## Update for 2025-02-05

- refresh dev/master branches
Expand Down
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@
## SD.Next Features

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

Plus Docker container receipes for: [CUDA, ROCm, Intel IPEX and OpenVINO](https://vladmandic.github.io/sdnext-docs/Docker/)

## Getting started

- Get started with **SD.Next** by following the [installation instructions](https://vladmandic.github.io/sdnext-docs/Installation/)
Expand Down
39 changes: 18 additions & 21 deletions TODO.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,29 +2,26 @@

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

## Pending

- LoRA direct with caching
- Previewer issues
- Redesign postprocessing

## Future Candidates

- Flux NF4 loader: <https://github.com/huggingface/diffusers/issues/9996>
- IPAdapter negative: <https://github.com/huggingface/diffusers/discussions/7167>
- Control API enhance scripts compatibility
- PixelSmith: <https://github.com/Thanos-DB/Pixelsmith>
- Redesign postprocessing
- Flux NF4 loader: <https://github.com/huggingface/diffusers/issues/9996>
- IPAdapter negative: <https://github.com/huggingface/diffusers/discussions/7167>
- Control API enhance scripts compatibility
- CogView4

## Code TODO

- TODO install: enable ROCm for windows when available
- TODO resize image: enable full VAE mode for resize-latent
- TODO processing: remove duplicate mask params
- TODO flux: fix loader for civitai nf4 models
- TODO model loader: implement model in-memory caching
- TODO hypertile: vae breaks when using non-standard sizes
- TODO model load: force-reloading entire model as loading transformers only leads to massive memory usage
- TODO lora load: direct with bnb
- TODO lora make: support quantized flux
- TODO control: support scripts via api
- TODO modernui: monkey-patch for missing tabs.select event
- flux: loader for civitai nf4 models (fixme)
- hypertile: vae breaks when using non-standard sizes (fixme)
- install: enable ROCm for windows when available (fixme)
- lora make support quantized flux (fixme)
- lora: add other quantization types (fixme)
- model load: force-reloading entire model as loading transformers only leads to massive memory usage (fixme)
- model loader: implement model in-memory caching (fixme)
- modernui: monkey-patch for missing tabs.select event (fixme)
- processing: remove duplicate mask params (fixme)
- resize image: enable full VAE mode for resize-latent (fixme)
- sana: fails when quantized (fixme)
- support scripts via api (fixme)
- transformer from-single-file with quant (fixme)
File renamed without changes.
35 changes: 0 additions & 35 deletions cli/hf-convert.py

This file was deleted.

1 change: 0 additions & 1 deletion cli/image-encode.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,3 @@ def encode(file: str):
print('=== BEGIN ===')
print(f'{b64}')
print('=== END ===')

29 changes: 29 additions & 0 deletions cli/locale-sanitize-override.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#!/usr/bin/env python

# Remove the entries that no longer exist in locale from override.

import sys
import json
from rich import print # pylint: disable=redefined-builtin

if __name__ == "__main__":
sys.argv.pop(0)
if len(sys.argv) == 0:
print('Invalid parameters.')
sys.exit(1)
filename = sys.argv[0]
labels = []
override = None
try:
with open('html/locale_en.json', 'r', encoding="utf-8") as f:
locale = json.load(f)
for v in locale.values():
for item in v:
labels.append(item['label'])
with open(filename, 'r', encoding="utf-8") as f:
override = json.load(f)
except Exception:
print('Invalid file format.')
sys.exit(1)
with open(filename, 'w', encoding="utf-8") as f:
json.dump([item for item in override if item['label'] in labels], f, ensure_ascii=False)
Loading
Loading