Commit Graph
38 Commits
Author SHA1 Message Date
brkirch 5e6566324b Always end version number with a digit 2023-01-06 07:06:26 -05:00
brkirch 8111b5569d Add support for PyTorch nightly and local builds 2023-01-05 20:54:52 -05:00
brkirch 35b1775b32 Use other MPS optimization for large q.shape[0] * q.shape[1]
Check if q.shape[0] * q.shape[1] is 2**18 or larger and use the lower memory usage MPS optimization if it is. This should prevent most crashes that were occurring at certain resolutions (e.g. 1024x1024, 2048x512, 512x2048).

Also included is a change to check slice_size and prevent it from being divisible by 4096 which also results in a crash. Otherwise a crash can occur at 1024x512 or 512x1024 resolution.
2022-12-20 21:30:00 -05:00
brkirch cca16373de Add attributes used by MPS 2022-12-17 04:23:08 -05:00
brkirch 16b4509fa6 Add numpy fix for MPS on PyTorch 1.12.1
When saving training results with torch.save(), an exception is thrown:
"RuntimeError: Can't call numpy() on Tensor that requires grad. Use tensor.detach().numpy() instead."

So for MPS, check if Tensor.requires_grad and detach() if necessary.
2022-12-17 04:22:58 -05:00
brkirch 8bc16b7582 Add psutil if using macOS to requirements.txt 2022-12-06 19:54:01 -05:00
brkirch a7b1ab28d5 Set install_dir (per Ephil012's suggestion)
Set install_dir to a correct value for macOS. Thanks to @Ephil012 for pointing out this is needed.
2022-12-06 19:49:30 -05:00
brkirch 760a7836eb Use python3.10 for python_cmd if available 2022-12-05 18:36:31 -05:00
brkirch 5ec8981df4 Revert most launch.py changes, add mac user script
Adds an addition file to read environment variables from when the webui.sh is run from macOS.
2022-12-03 06:44:59 -05:00
brkirch bef36597cc Fix run as root flag
Even though -f enables running webui.sh as root, the -f flag will also be passed to launch.py, causing it to exit with a usage message. This adds a line to launch.py to remove the -f flag if present.

In addition to the above, all the letters in the command line arguments after each '-' were being processed for 'f' and "illegal option" was displayed for each letter that didn't match. Instead, this commit silences those errors and stops processing if the first flag doesn't start with '-f'.
2022-12-01 04:49:49 -05:00
brkirch 79953e9b8b Add support for macOS (Darwin) in launch.py 2022-12-01 04:49:46 -05:00
brkirch 0fddb4a1c0 Rework MPS randn fix, add randn_like fix
torch.manual_seed() already sets a CPU generator, so there is no reason to create a CPU generator manually. torch.randn_like also needs a MPS fix for k-diffusion, but a torch hijack with randn_like already exists so it can also be used for that.
2022-11-30 10:33:42 -05:00
brkirch 4d5f1691dd Use devices.autocast instead of torch.autocast 2022-11-30 10:33:42 -05:00
brkirch 21effd629d Add workaround for using MPS with torchsde 2022-11-30 10:33:39 -05:00
brkirch 98ca437edf Refactor and instead check if mps is being used, not availability 2022-11-28 21:18:51 -05:00
brkirch 563ea3f6ff Change .cuda() to .to(devices.device) 2022-11-21 02:56:00 -05:00
brkirch e247b7400a Add fixes for PyTorch 1.12.1
Fix typo "MasOS" -> "macOS"

If MPS is available and PyTorch is an earlier version than 1.13:
* Monkey patch torch.Tensor.to to ensure all tensors sent to MPS are contiguous
* Monkey patch torch.nn.functional.layer_norm to ensure input tensor is contiguous (required for this program to work with MPS on unmodified PyTorch 1.12.1)
2022-11-21 02:07:19 -05:00
brkirch a5106a7cdc Remove extra .to(device) 2022-11-17 00:08:45 -05:00
brkirch abfa22c16f Revert "MPS Upscalers Fix"
This reverts commit 768b95394a.
2022-11-17 00:08:21 -05:00
brkirch f4a488f585 Set device for facelib/facexlib and gfpgan
* FaceXLib/FaceLib doesn't pass the device argument to RetinaFace but instead chooses one itself and sets it to a global - in order to use a device other than its internally chosen default it is necessary to manually replace the default value
* The GFPGAN constructor needs the device argument to work with MPS or a CUDA device ID that differs from the default
2022-11-12 03:34:13 -05:00
brkirchandAUTOMATIC1111 faed465a0b MPS Upscalers Fix
Get ESRGAN, SCUNet, and SwinIR working correctly on MPS by ensuring memory is contiguous for tensor views before sending to MPS device.
2022-10-25 09:42:53 +03:00
brkirchandAUTOMATIC1111 4c24347e45 Remove BSRGAN from --use-cpu, add SwinIR 2022-10-25 09:42:53 +03:00
brkirchandAUTOMATIC1111 fdef8253a4 Add 'interrogate' and 'all' choices to --use-cpu
* Add 'interrogate' and 'all' choices to --use-cpu
* Change type for --use-cpu argument to str.lower, so that choices are case insensitive
2022-10-14 16:31:39 +03:00
brkirchandAUTOMATIC1111 57e03cdd24 Ensure the directory exists before saving to it
The directory for the images saved with the Save button may still not exist, so it needs to be created prior to opening the log.csv file.
2022-10-12 09:55:56 +03:00
brkirchandAUTOMATIC1111 861db783c7 Use apply_hypernetwork function 2022-10-11 17:24:00 +03:00
brkirchandAUTOMATIC1111 574c8e554a Add InvokeAI and lstein to credits, add back CUDA support 2022-10-11 17:24:00 +03:00
brkirchandAUTOMATIC1111 98fd5cde72 Add check for psutil 2022-10-11 17:24:00 +03:00
brkirchandAUTOMATIC1111 c0484f1b98 Add cross-attention optimization from InvokeAI
* Add cross-attention optimization from InvokeAI (~30% speed improvement on MPS)
* Add command line option for it
* Make it default when CUDA is unavailable
2022-10-11 17:24:00 +03:00
brkirchandAUTOMATIC1111 8acc901ba3 Newer versions of PyTorch use TypedStorage instead
Pytorch 1.13 and later will rename _TypedStorage to TypedStorage, so check for TypedStorage and use _TypedStorage if it is not available. Currently this is needed so that nightly builds of PyTorch work correctly.
2022-10-10 08:04:52 +03:00
brkirchandAUTOMATIC1111 f2055cb1d4 Add hypernetwork support to split cross attention v1
* Add hypernetwork support to split_cross_attention_forward_v1
* Fix device check in esrgan_model.py to use devices.device_esrgan instead of shared.device
2022-10-08 09:39:17 +03:00
brkirchandGitHub e9e2a7ec9a Merge branch 'master' into cpu-cmdline-opt 2022-10-04 07:42:53 -04:00
brkirch dc9c5a9774 Modify --add-cpu description 2022-10-04 05:22:50 -04:00
brkirch 27ddc24fde Add BSRGAN to --add-cpu 2022-10-04 05:18:17 -04:00
brkirch 2adb249740 Merge branch 'cpu-cmdline-opt' of https://github.com/brkirch/stable-diffusion-webui into cpu-cmdline-opt 2022-10-04 04:26:54 -04:00
brkirchandGitHub 35a00b0130 Merge branch 'AUTOMATIC1111:master' into cpu-cmdline-opt 2022-10-04 04:25:27 -04:00
brkirch eeab7aedf5 Add --use-cpu command line option
Remove MPS detection to use CPU for GFPGAN / CodeFormer and add a --use-cpu command line option.
2022-10-04 04:24:35 -04:00
brkirchandGitHub b88e4ea7d6 Merge branch 'master' into master 2022-10-04 01:04:19 -04:00
brkirch bdaa36c844 When device is MPS, use CPU for GFPGAN instead
GFPGAN will not work if the device is MPS, so default to CPU instead.
2022-09-30 23:53:25 -04:00