mirror of
https://github.com/vladmandic/automatic
synced 2026-09-06 21:10:45 +02:00
Merge branch 'master' of https://github.com/vladmandic/automatic
This commit is contained in:
@@ -1,16 +1,21 @@
|
||||
[](https://github.com/sponsors/vladmandic)
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
<div align = "center">
|
||||
|
||||
# SD.Next
|
||||
**Stable Diffusion implementation with advanced features**
|
||||
<br>
|
||||
[](https://github.com/sponsors/vladmandic)
|
||||

|
||||

|
||||

|
||||
[](https://discord.gg/VjvR2tabEX)
|
||||
|
||||
**Stable Diffusion implementation with modern UI and advanced features**
|
||||
### [Docs](README.md#docs) | [Discord](https://discord.gg/VjvR2tabEX) | [Changelog](CHANGELOG.md)
|
||||
|
||||
This project started as a form from [Automatic1111 WebUI](https://github.com/AUTOMATIC1111/stable-diffusion-webui/) and it grew siginificantly since then, but although it diverged significanly, any substantial features to original work is ported to this repository as well
|
||||
</div>
|
||||
|
||||
Individual features are not listed here, instead check [Changelog](CHANGELOG.md) for full list of changes
|
||||
This project started as a fork from [Automatic1111 WebUI](https://github.com/AUTOMATIC1111/stable-diffusion-webui/) and it grew significantly since then, but although it diverged considerably, any substantial features to original work is ported to this repository as well.
|
||||
|
||||
Individual features are not listed here, instead check [Changelog](CHANGELOG.md) for full list of changes.
|
||||
|
||||
## Platform support
|
||||
|
||||
@@ -32,12 +37,13 @@ Individual features are not listed here, instead check [Changelog](CHANGELOG.md)
|
||||
`webui.bat` or `webui.sh`:
|
||||
- Platform specific wrapper scripts For Windows, Linux and OSX
|
||||
- Starts `sdnext.py` in a Python virtual environment (`venv`)
|
||||
- Uses `install.py` to handle all actual requirements and dependencies
|
||||
- *Note*: Server can run without virtual environment, but it is recommended to use it to avoid library version conflicts with other applications
|
||||
- Uses `install.py` to handle all actual requirements and dependencies
|
||||
|
||||
*Note*: **nVidia/CUDA** and **AMD/ROCm** are auto-detected is present and available, but for any other use case specify required parameter explicitly or wrong packages may be installed as installer will assume CPU-only environment
|
||||
> Server can run without virtual environment, but it is recommended to use it to avoid library version conflicts with other applications
|
||||
|
||||
Full startup sequence is logged in `sdnext.log`, so if you encounter any issues, please check it first
|
||||
> **nVidia/CUDA** and **AMD/ROCm** are auto-detected is present and available, but for any other use case specify required parameter explicitly or wrong packages may be installed as installer will assume CPU-only environment.
|
||||
|
||||
Full startup sequence is logged in `sdnext.log`, so if you encounter any issues, please check it first.
|
||||
|
||||
Below is partial list of all available parameters, run `webui --help` for the full list:
|
||||
|
||||
@@ -64,14 +70,16 @@ Below is partial list of all available parameters, run `webui --help` for the fu
|
||||
### **Collab**
|
||||
|
||||
- To avoid having this repo rely just on me, I'd love to have additional maintainers with full admin rights. If you're interested, ping me!
|
||||
- In addition to general cross-platform code, desire is to have a lead for each of the main platforms
|
||||
This should be fully cross-platform, but I would really love to have additional contibutors and/or maintainers to join and help lead the efforts on different platforms
|
||||
- In addition to general cross-platform code, desire is to have a lead for each of the main platforms.
|
||||
This should be fully cross-platform, but I would really love to have additional contibutors and/or maintainers to join and help lead the efforts on different platforms.
|
||||
|
||||
### **Goals**
|
||||
|
||||
The idea behind the fork is to enable latest technologies and advances in text-to-image generation
|
||||
*Sometimes this is not the same as "as simple as possible to use"*
|
||||
If you are looking an amazing simple-to-use Stable Diffusion tool, I'd suggest [InvokeAI](https://invoke-ai.github.io/InvokeAI/) specifically due to its automated installer and ease of use
|
||||
The idea behind the fork is to enable latest technologies and advances in text-to-image generation.
|
||||
|
||||
> *Sometimes this is not the same as "as simple as possible to use".*
|
||||
|
||||
If you are looking an amazing simple-to-use Stable Diffusion tool, I'd suggest [InvokeAI](https://invoke-ai.github.io/InvokeAI/) specifically due to its automated installer and ease of use.
|
||||
|
||||
General goals:
|
||||
|
||||
@@ -95,6 +103,7 @@ General goals:
|
||||
|
||||
### **Docs**
|
||||
|
||||
- [Wiki](https://github.com/vladmandic/automatic/wiki)
|
||||
- [ReadMe](README.md)
|
||||
- [ToDo](TODO.md)
|
||||
- [Changelog](CHANGELOG.md)
|
||||
|
||||
+11
-4
@@ -175,8 +175,10 @@ else:
|
||||
backend = 'cpu'
|
||||
|
||||
if backend == 'ipex':
|
||||
#Fix broken function in ipex 1.13.120+xpu
|
||||
#Fix broken functions with ipex
|
||||
from modules.sd_hijack_utils import CondFunc
|
||||
torch.cuda.empty_cache = torch.xpu.empty_cache
|
||||
|
||||
#Functions with dtype errors:
|
||||
CondFunc('torch.nn.modules.GroupNorm.forward',
|
||||
lambda orig_func, *args, **kwargs: orig_func(args[0], args[1].to(args[0].weight.data.dtype)),
|
||||
@@ -184,15 +186,20 @@ if backend == 'ipex':
|
||||
CondFunc('torch.nn.modules.Linear.forward',
|
||||
lambda orig_func, *args, **kwargs: orig_func(args[0], args[1].to(args[0].weight.data.dtype)),
|
||||
lambda *args, **kwargs: args[2].dtype != args[1].weight.data.dtype)
|
||||
|
||||
#Functions that does not work with the XPU:
|
||||
#UniPC:
|
||||
CondFunc('torch.linalg.solve',
|
||||
lambda orig_func, *args, **kwargs: orig_func(args[0].to("cpu"), args[1].to("cpu")).to(get_cuda_device_string()),
|
||||
lambda *args, **kwargs: args[1].device != torch.device("cpu"))
|
||||
#SDE Samplers:
|
||||
CondFunc('torchsde._brownian.brownian_interval._randn',
|
||||
lambda _, size, dtype, device, seed: torch.randn(size, dtype=dtype, device=device, generator=torch.xpu.Generator(device).manual_seed(int(seed))),
|
||||
lambda _, size, dtype, device, seed: device != torch.device("cpu"))
|
||||
CondFunc('torch.Generator',
|
||||
lambda orig_func, device: torch.xpu.Generator(device),
|
||||
lambda orig_func, device: device != torch.device("cpu") and device != "cpu")
|
||||
#Diffusers Float64 (ARC GPUs doesn't support double or Float64):
|
||||
CondFunc('torch.from_numpy',
|
||||
lambda orig_func, *args, **kwargs: orig_func(args[0].astype('float32')),
|
||||
lambda *args, **kwargs: args[1].dtype == float)
|
||||
#ControlNet:
|
||||
CondFunc('torch.batch_norm',
|
||||
lambda orig_func, *args, **kwargs: orig_func(args[0].to("cpu"),
|
||||
|
||||
Reference in New Issue
Block a user