Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: apple/ml-stable-diffusion
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 0.1.0
Choose a base ref
...
head repository: apple/ml-stable-diffusion
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref

Commits on Dec 14, 2022

  1. Add pull request template

    atiorh committed Dec 14, 2022
    Copy the full SHA
    016d071 View commit details
  2. README improvements and reduceMemory option in Swift

    Co-authored-by: msiracusa <msiracusa+github@gmail.com>
    atiorh and msiracusa committed Dec 14, 2022
    3
    Copy the full SHA
    a4238a3 View commit details
  3. 1
    Copy the full SHA
    152dd65 View commit details
  4. Copy the full SHA
    ec9fe68 View commit details
  5. Copy the full SHA
    d6a54fc View commit details

Commits on Dec 15, 2022

  1. Copy the full SHA
    3758abc View commit details
  2. Add Filename Character Limit (#19)

    Co-authored-by: Stefan-Hintz <github@corbusierhaus.de>
    dec2-anon and Stefan-Hintz authored Dec 15, 2022
    Copy the full SHA
    21f504f View commit details

Commits on Dec 16, 2022

  1. Update README.md (#66)

    yarspirin authored Dec 16, 2022
    Copy the full SHA
    66dde8d View commit details

Commits on Dec 20, 2022

  1. fixes #77

    atiorh committed Dec 20, 2022
    Copy the full SHA
    37ff2a4 View commit details
  2. Copy the full SHA
    4c00b32 View commit details

Commits on Dec 21, 2022

  1. Adds Negative Prompts (#61)

    * Synced to main branch and minimizes line changes
    
    * Adds negative prompt argument to CLI
    
    Co-authored-by: Wanaldino Antimonio <carlosmm31093@gmail.com>
    JustinMeans and Wanaldino authored Dec 21, 2022
    Copy the full SHA
    c90b705 View commit details

Commits on Dec 22, 2022

  1. Add brief instructions to download weights from the Hub (#10)

    * Add brief instructions to download weights from the Hub.
    
    This should be convenient and time-saving for many users.
    
    * Capitalize ORIGINAL.
    
    * Expand git lfs details.
    
    * Make download code robust to symlinks.
    
    coremltools seems to not like symlinks.
    
    * Add mention to demo app.
    
    * Add steps to git lfs process.
    
    * Minor text change.
    
    * Apply suggestions from review.
    pcuenca authored Dec 22, 2022
    Copy the full SHA
    877ccb9 View commit details

Commits on Dec 24, 2022

  1. Move guidanceScale as generation parameter (#46)

    * Move guidanceScale as generation parameter
    
    * Added guidanceScale in CLI
    
    * Reverted identation change
    Wanaldino authored Dec 24, 2022
    Copy the full SHA
    e07c4d0 View commit details

Commits on Dec 28, 2022

  1. Fix timesteps of DPMSolverMultistepScheduler. (#88)

    There were minor differences in the timesteps because the linspace was
    computed slightly differently. This PR makes the Swift implementation
    identical to the current Python implementation in diffusers, which was
    originally contributed by the DPM-Solver++ author.
    
    See
    https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_dpmsolver_multistep.py#L199-L204
    for reference.
    pcuenca authored Dec 28, 2022
    Copy the full SHA
    e3db2ec View commit details
  2. Copy the full SHA
    c1fd82a View commit details

Commits on Jan 3, 2023

  1. Copy the full SHA
    fb1fa01 View commit details

Commits on Jan 26, 2023

  1. Fix downsample channels. (#110)

    Reference: https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/unet_2d_blocks.py#L749-L756
    
    This is usually not a problem for Stable Diffusion models. However, some
    architectures such as
    https://huggingface.co/OFA-Sys/small-stable-diffusion-v0 wouldn't
    convert.
    pcuenca authored Jan 26, 2023
    Copy the full SHA
    3b24fe3 View commit details
  2. Update import to nested path (#109)

    * Update import to nested path
    
    * Update python_coreml_stable_diffusion/unet.py
    
    Co-authored-by: Pedro Cuenca <pedro@huggingface.co>
    
    Co-authored-by: Atila Orhon <64497909+atiorh@users.noreply.github.com>
    Co-authored-by: Pedro Cuenca <pedro@huggingface.co>
    3 people authored Jan 26, 2023
    Copy the full SHA
    6cd5c7a View commit details

Commits on Jan 31, 2023

  1. Image2image - python (#115)

    * Add Encoder model to torch2coreml for image2image
    
    and later for in-paining
    
    * diagonal test with randn
    
    * Revert "diagonal test with randn"
    
    This reverts commit 270afe1.
    
    * readme updates for encoder
    
    * pr comments
    littleowl authored Jan 31, 2023
    Copy the full SHA
    086cc5e View commit details

Commits on Feb 3, 2023

  1. Copy the full SHA
    e4ca3ff View commit details

Commits on Feb 8, 2023

  1. Copy the full SHA
    f0fc326 View commit details

Commits on Feb 9, 2023

  1. Image2image - swift (#116)

    * Image2Image Encoder
    
    Encoder
    
    * Scheduler and pipeline
    
    * fix scheduler
    
    * cli
    
    * remove CLI comment
    
    * disable dpm multistep solver with image2image
    
    * clamp initial timestamp
    
    * Store timesteps in reverse order for consistency.
    
    * Report actual number of steps.
    
    * uint32
    
    * PRComments
    
    * remove old initializer
    
    * pr comments
    
    * change name and add error handling
    
    also fix 512 hard coded
    
    * Add fix for Jpegs
    
    ---------
    
    Co-authored-by: Pedro Cuenca <pedro@huggingface.co>
    littleowl and pcuenca authored Feb 9, 2023
    Copy the full SHA
    fa7bbdc View commit details

Commits on Feb 10, 2023

  1. fix (#125)

    jiangdi0924 authored Feb 10, 2023
    Copy the full SHA
    00390a6 View commit details

Commits on Feb 15, 2023

  1. Add random source that matches PyTorch (#124)

    * Add random source that matches PyTorch
    
    This added random source that matches PyTorch on CPU. In particular, it
    matches: `torch.randn([], dtype=torch.float)` result.
    
    PyTorch's RNG is a bit convoluted and not claimed to be version-stable
    (will open a separate issue in PyTorch repo on this). However, the
    current implementation on CPU is fairly straightforward^*.
    
    1. If it is less than 16 elements, it uses Gaussian distribution sampled
       from MT19937 for double + Box-Muller transformation.
    
    2. If it is more than 16 (16 included), it first do uniform sampling
       with whatever the resulting data type would be (in this case, torch.float),
       and then apply Box-Muller transformation over 16-element segment at a
       type, treating the first floating-point and the 8th as a pair, so on
       so forth.
    
    3. If it is not a multiple of 16, trace back from the end for 16
       elements and redo step 2.
    
    * Update with configuration available in SwiftDiffusionCLI
    
    * Fix the RNG is not passed into pipelineConfig.
    liuliu authored Feb 15, 2023
    Copy the full SHA
    ddefb61 View commit details
  2. Copy the full SHA
    827d017 View commit details

Commits on Mar 4, 2023

  1. Copy the full SHA
    2c4e9de View commit details

Commits on Mar 27, 2023

  1. Copy the full SHA
    42889f6 View commit details

Commits on Apr 3, 2023

  1. Simplify Encoder module (#145)

    * Simplify encoder conversion
    
    * Add nextNormal to RandomSource
    
    * Add addNoise method to Scheduler
    
    * Update Encoder implementation
    
    * Clean up Pipeline
    
    * Remove AlphasCumprodCalculation
    
    * Revert Encoder’s input shape size
    
    * Make Encoder/Decoder's scale factor configurable
    GuiyeC authored Apr 3, 2023
    Copy the full SHA
    1147e87 View commit details
  2. Copy the full SHA
    ab12eee View commit details

Commits on Apr 13, 2023

  1. fixes #155

    atiorh committed Apr 13, 2023
    Copy the full SHA
    d1a6888 View commit details

Commits on Apr 18, 2023

  1. Support ControlNet (#153)

    * add controlnet tentatively
    
    * add controlnet in python code
    
    * implement swift part
    
    * support 8-bit quantization
    
    * add controlnet unload when reduce memory
    
    * remove irrelevant changes
    
    * add more description about controlnet option in swift
    
    * fix some for pr and update README
    
    * pre-allocate zero shapedArray + make multi-controlnet faster
    ryu38 authored Apr 18, 2023
    Copy the full SHA
    7f65e1c View commit details
  2. Add ControlNet example

    atiorh committed Apr 18, 2023
    Copy the full SHA
    5d2744e View commit details

Commits on Apr 24, 2023

  1. Fixes #165

    atiorh committed Apr 24, 2023
    Copy the full SHA
    ce0be82 View commit details
  2. Fixes #160

    atiorh committed Apr 24, 2023
    Copy the full SHA
    412c679 View commit details

Commits on Apr 26, 2023

  1. Copy the full SHA
    28a2931 View commit details
  2. Copy the full SHA
    fbef6c3 View commit details

Commits on Apr 27, 2023

  1. Improve BPETokenizer.readMerges performance (#169)

    From 240ms to 19ms on M1 MacBook Pro
    
    Co-authored-by: Alejandro Isaza <aisaza@apple.com>
    alejandro-isaza and alejandro-isaza authored Apr 27, 2023
    Copy the full SHA
    a7bf219 View commit details
  2. Verify ControlNet base model. (#172)

    We currently display a warning if the ControlNet repo does not contain a
    `base_model` property and the `model-version` is not SD 1.5.
    
    If the ControlNet repo does indicate a `base_model` property, then we
    raise a hard error if the versions don't match.
    pcuenca authored Apr 27, 2023
    Copy the full SHA
    4aafa73 View commit details

Commits on Apr 29, 2023

  1. Minor: make --help work. (#175)

    pcuenca authored Apr 29, 2023
    Copy the full SHA
    41174b9 View commit details
  2. Disable SDPA (PyTorch 2.0) in the VAE (#174)

    * Disable SDPA (PyTorch 2.0) in the VAE
    
    Diffusers 0.16.0 made sdpa enabled by default in the vae. It had
    previously been enabled for the UNet, but it didn't affect this repo
    because it uses its own copy of the UNet.
    
    This fix will not work for diffusers 0.16.0, but it will for main or
    0.16.1 (to be released today).
    
    * Link to coremltools issue.
    pcuenca authored Apr 29, 2023
    Copy the full SHA
    449a16d View commit details
  3. Disable SDPA for vae_encoder

    atiorh committed Apr 29, 2023
    Copy the full SHA
    ef5aa89 View commit details

Commits on Apr 30, 2023

  1. Fix encoder sdpa disable

    atiorh committed Apr 30, 2023
    Copy the full SHA
    efea9d3 View commit details

Commits on May 1, 2023

  1. Fixes #178

    atiorh committed May 1, 2023
    Copy the full SHA
    8fd7257 View commit details
  2. 1
    Copy the full SHA
    940dba0 View commit details

Commits on May 7, 2023

  1. Image encoder resources management fix (#182)

    * Unload image encoder for image2image in reduceMemory mode
    
    * Include image encoder to resource management functions
    OlegPonomaryov authored May 7, 2023
    Copy the full SHA
    ea904e3 View commit details

Commits on May 16, 2023

  1. Copy the full SHA
    e3875a5 View commit details

Commits on Jun 14, 2023

  1. WWDC23 update

    Co-authored-by: davidfindlay1 <david.arthur.findlay@icloud.com>
    atiorh and davidfindlay1 committed Jun 14, 2023
    5
    Copy the full SHA
    7f9c58a View commit details
  2. Copy the full SHA
    48f07f2 View commit details

Commits on Jul 10, 2023

  1. Extend ControlNet image conversion with hole punching for InPaint (#205)

    * Extend ControlNet image conversion with hole punching for InPaint
    
    The inpainting ControlNet model expects the masked areas to be filled with -1. This never occured with the original conversion, as the pixel data was converted to values between [0;1], thus the inpainting CN model never had any effect (apart from maybe generating artifacts).
    
    This commit uses the _previously discarded_ alpha channel of the source image to mark masked pixels: any non-opaque pixel is cleared out to -1.
    For an end-user, this allows creating masks simply by erasing areas with Preview to transparent, saving the result as PNG, and feeding it to the ControlNet.
    
    * Mask only fully transparent pixels
    vzsg authored Jul 10, 2023
    Copy the full SHA
    823d21e View commit details

Commits on Jul 12, 2023

  1. Copy the full SHA
    db13060 View commit details
Showing with 8,367 additions and 922 deletions.
  1. +1 −0 .github/pull_request_template.md
  2. +2 −0 .gitignore
  3. +6 −5 CONTRIBUTING.md
  4. +5 −35 LICENSE.md
  5. +7 −4 Package.swift
  6. +601 −98 README.md
  7. BIN assets/controlnet_readme_reel.png
  8. BIN assets/float16_cpuandne_readmereel.png
  9. BIN assets/float16_gpu_readmereel.png
  10. BIN assets/mbp/a_high_quality_photo_of_a_surfing_dog.7667.final_3.41-bits.png
  11. BIN assets/mbp/a_high_quality_photo_of_a_surfing_dog.7667.final_4.50-bits.png
  12. BIN assets/mbp/a_high_quality_photo_of_a_surfing_dog.7667.final_6.55-bits.png
  13. BIN assets/mbp/a_high_quality_photo_of_a_surfing_dog.7667.final_float16_original.png
  14. BIN assets/mbp/runwayml_stable-diffusion-v1-5_psnr_vs_size.png
  15. BIN assets/mbp/stabilityai_stable-diffusion-2-1-base_psnr_vs_size.png
  16. BIN assets/mbp/stabilityai_stable-diffusion-xl-base-1.0_psnr_vs_size.png
  17. BIN assets/palette6_cpuandne_readmereel.png
  18. +1 −1 python_coreml_stable_diffusion/_version.py
  19. +503 −0 python_coreml_stable_diffusion/activation_quantization.py
  20. +168 −0 python_coreml_stable_diffusion/attention.py
  21. +110 −37 python_coreml_stable_diffusion/chunk_mlprogram.py
  22. +250 −0 python_coreml_stable_diffusion/controlnet.py
  23. +149 −26 python_coreml_stable_diffusion/coreml_model.py
  24. +133 −0 python_coreml_stable_diffusion/mixed_bit_compression_apply.py
  25. +583 −0 python_coreml_stable_diffusion/mixed_bit_compression_pre_analysis.py
  26. +60 −0 python_coreml_stable_diffusion/multilingual_projection.py
  27. +439 −115 python_coreml_stable_diffusion/pipeline.py
  28. +959 −147 python_coreml_stable_diffusion/torch2coreml.py
  29. +261 −89 python_coreml_stable_diffusion/unet.py
  30. +10 −4 requirements.txt
  31. +11 −3 setup.py
  32. +197 −0 swift/StableDiffusion/pipeline/CGImage+vImage.swift
  33. +130 −0 swift/StableDiffusion/pipeline/ControlNet.swift
  34. +273 −0 swift/StableDiffusion/pipeline/DPMSolverMultistepScheduler.swift
  35. +34 −63 swift/StableDiffusion/pipeline/Decoder.swift
  36. +123 −0 swift/StableDiffusion/pipeline/DiscreteFlowScheduler.swift
  37. +108 −0 swift/StableDiffusion/pipeline/Encoder.swift
  38. +127 −0 swift/StableDiffusion/pipeline/ManagedMLModel.swift
  39. +125 −0 swift/StableDiffusion/pipeline/MultiModalDiffusionTransformer.swift
  40. +194 −0 swift/StableDiffusion/pipeline/MultilingualTextEncoder.swift
  41. +2 −1 swift/StableDiffusion/pipeline/{Random.swift → NumPyRandomSource.swift}
  42. +91 −0 swift/StableDiffusion/pipeline/NvRandomSource.swift
  43. +8 −0 swift/StableDiffusion/pipeline/RandomSource.swift
  44. +20 −0 swift/StableDiffusion/pipeline/ResourceManaging.swift
  45. +23 −10 swift/StableDiffusion/pipeline/SafetyChecker.swift
  46. +1 −0 swift/StableDiffusion/pipeline/SampleTimer.swift
  47. +153 −44 swift/StableDiffusion/pipeline/Scheduler.swift
  48. +97 −0 swift/StableDiffusion/pipeline/StableDiffusion3Pipeline+Resources.swift
  49. +486 −0 swift/StableDiffusion/pipeline/StableDiffusion3Pipeline.swift
  50. +130 −32 swift/StableDiffusion/pipeline/StableDiffusionPipeline+Resources.swift
  51. +100 −0 swift/StableDiffusion/pipeline/StableDiffusionPipeline.Configuration.swift
  52. +359 −108 swift/StableDiffusion/pipeline/StableDiffusionPipeline.swift
  53. +119 −0 swift/StableDiffusion/pipeline/StableDiffusionXL+Resources.swift
  54. +400 −0 swift/StableDiffusion/pipeline/StableDiffusionXLPipeline.swift
  55. +33 −7 swift/StableDiffusion/pipeline/TextEncoder.swift
  56. +124 −0 swift/StableDiffusion/pipeline/TextEncoderT5.swift
  57. +99 −0 swift/StableDiffusion/pipeline/TextEncoderXL.swift
  58. +157 −0 swift/StableDiffusion/pipeline/TorchRandomSource.swift
  59. +116 −55 swift/StableDiffusion/pipeline/Unet.swift
  60. +36 −12 swift/StableDiffusion/tokenizer/BPETokenizer+Reading.swift
  61. +9 −5 swift/StableDiffusion/tokenizer/BPETokenizer.swift
  62. +21 −0 swift/StableDiffusion/tokenizer/T5Tokenizer.swift
  63. +208 −17 swift/StableDiffusionCLI/main.swift
  64. +1 −0 swift/StableDiffusionTests/StableDiffusionTests.swift
  65. +4 −4 tests/test_stable_diffusion.py
1 change: 1 addition & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Thank you for your interest in contributing to Core ML Stable Diffusion! Please review [CONTRIBUTING.md](../CONTRIBUTING.md) first. We appreciate your interest in the project!
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
*~

# Swift Package
.DS_Store
/.build
11 changes: 6 additions & 5 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
# Contribution Guide

Thanks for your interest in contributing. This project was released for system demonstration purposes and there are limited plans for future development of the repository.
Thank you for your interest in contributing to Core ML Stable Diffusion! This project was released for system demonstration purposes and there are limited plans for future development of the repository. While we welcome new pull requests and issues please note that our response may be limited.

While we welcome new pull requests and issues please note that our response may be limited. Forks and out-of-tree improvements are strongly encouraged.

## Before you get started
## Submitting a Pull Request

By submitting a pull request, you represent that you have the right to license your contribution to Apple and the community, and agree by submitting the patch that your contributions are licensed under the [LICENSE](LICENSE).
The project is licensed under the MIT license. By submitting a pull request, you represent that you have the right to license your contribution to Apple and the community, and agree by submitting the patch that your contributions are licensed under the MIT license.

We ask that all community members read and observe our [Code of Conduct](CODE_OF_CONDUCT.md).
## Code of Conduct

We ask that all community members read and observe our [Code of Conduct](CODE_OF_CONDUCT.md).
40 changes: 5 additions & 35 deletions LICENSE.md
Original file line number Diff line number Diff line change
@@ -1,39 +1,9 @@
Copyright (C) 2022 Apple Inc. All Rights Reserved.
MIT License

IMPORTANT: This Apple software is supplied to you by Apple
Inc. ("Apple") in consideration of your agreement to the following
terms, and your use, installation, modification or redistribution of
this Apple software constitutes acceptance of these terms. If you do
not agree with these terms, please do not use, install, modify or
redistribute this Apple software.
Copyright (c) 2024 Apple Inc.

In consideration of your agreement to abide by the following terms, and
subject to these terms, Apple grants you a personal, non-exclusive
license, under Apple's copyrights in this original Apple software (the
"Apple Software"), to use, reproduce, modify and redistribute the Apple
Software, with or without modifications, in source and/or binary forms;
provided that if you redistribute the Apple Software in its entirety and
without modifications, you must retain this notice and the following
text and disclaimers in all such redistributions of the Apple Software.
Neither the name, trademarks, service marks or logos of Apple Inc. may
be used to endorse or promote products derived from the Apple Software
without specific prior written permission from Apple. Except as
expressly stated in this notice, no other rights or licenses, express or
implied, are granted by Apple herein, including but not limited to any
patent rights that may be infringed by your derivative works or by other
works in which the Apple Software may be incorporated.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The Apple Software is provided by Apple on an "AS IS" basis. APPLE
MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION
THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND
OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,
MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED
AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),
STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
11 changes: 7 additions & 4 deletions Package.swift
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// swift-tools-version: 5.7
// swift-tools-version: 5.8
// The swift-tools-version declares the minimum version of Swift required to build this package.

import PackageDescription
@@ -8,7 +8,7 @@ let package = Package(
platforms: [
.macOS(.v13),
.iOS(.v16),
],
],
products: [
.library(
name: "StableDiffusion",
@@ -18,12 +18,15 @@ let package = Package(
targets: ["StableDiffusionCLI"])
],
dependencies: [
.package(url: "https://github.com/apple/swift-argument-parser.git", exact: "1.2.0")
.package(url: "https://github.com/apple/swift-argument-parser.git", from: "1.2.3"),
.package(url: "https://github.com/huggingface/swift-transformers.git", exact: "0.1.8"),
],
targets: [
.target(
name: "StableDiffusion",
dependencies: [],
dependencies: [
.product(name: "Transformers", package: "swift-transformers"),
],
path: "swift/StableDiffusion"),
.executableTarget(
name: "StableDiffusionCLI",
Loading