Skip to content

Reaper176/SwarmUI-experimental

 
 

Repository files navigation

I have made this fork to add some basic functionality to the ui.

Added Functionality

Added search options to models tabs.


Just a couple of small changes to search functionality. You can now pick what field you would like to search. Also relevance is now a thing so when you type a word that thing will be sorted to the top of the list. Some highlighting should also happen when all "everything" mode.


image
image

Added Inpainting and Image editing tab.


The Image editing tools were a little....lacking, also a little smushed and felt cramped. I have added them to a seperate tab. (if you like the old way, it is still in place.) Under the new image editing tab a few new options have been added like saturation, light value, and Color blance for shadows, midtones, and highlights. These adjustments are per layer. This is very much a wip but I will try to avoid pushing anything that breaks the normal way of doing things. Many more changes are comming. I intent to turn this tab into a tool capable of getting most of the basic alterations that people normaly do all contained in one place so you dont need to open in krita, gimp, or photoshop just to finalize your edits.


Some of the things I will be adding are:


  1. Luts
  2. Proper brushes with flow, scaling, transparancy, and potentialy presure controle.
  3. Better photo bashing tools for croping, rotating, fliping etc.
  4. Better path tools.
  5. Much more.

image

Added Save Image Option For Inpainting.


When generating images or inpainting often you do not want to save every single image or iteration of the inpainting process. I added a manual save button that saves a selected image while respecting user defined settings under the settings tab such as save folder, naming conventions, etc. This allows you to toggle the "do not save" option on and only save the things you want. This is different than the current "Download" option in that it acknowledges the users settings and is a single click instead of needing to click thru context menues or dropdowns. Note: this does also work for normal image generation if you want to que a batch of 50 and go thru them to see what ones you want to save.


image
image

Multi image selection in history


This places check boxes in the top left corner of each image in the history to allow for the easy removal of multiple images at once.


image

Lora triger tag usability


When importing loras often enough the trigger phrases section is filled with multiple tags. I have implemented the standard fuctionality available in all other interfaces to select individual tags from the list and copy them instead of copying the entire trigger phrase section. (if nothing is selected the entire section is still copied for ease of use). This works under the lora tab as well as when clicking on the active lora under the center area. The colors of the bubles should obey theming.



image image


Exposed peramiters to allow for inpainting resolution setting


This lets you set a resolution manualy for inpainting so you can do a part of an image at a higher resolution than the rest of the image or just override swarms default resolution without going into the models metadata.


image

Pre upscale refiner


When doing upscales it is well known that you will simply amplify the errors that are already present this is somewhat offset by doing a refiner pass after the fact. However doing a refiner pass to add detail and correct mistakes before upscalling makes even the after upscale refiner even more effective.


image

Added better save folder override

Currently in swarm you have to manualy type out the save path override when doing so from the generate tab. I don't like this. I have added an option directly under this current implementation that shows all your current folders and also the option to add a new folder if you want that. Yes searching works.


image

Added a hide image function.

From time to time I make images that I do not wish to show when streaming or while at work. So I added a simple show hide option that also uses the bulk image selection check boxes the same way that the remove image options does. This allows for easy search and bulk hide operations.


image

FIXES:


Nothing big but when resizing images at spacific resolutions with spacific ui positioning some times the center image will "jiter" or resize repeatedly over and over. This was anoying and should be fixed now. I will try to keep this repo in parody with the origional but may be a day behind.


Fixed my own save image button. It now saves metadata correctly.


Fixed issues with large history loads. Now retries once and then gives you a manual option after that. This helps when loading large amounts of image (100k+). Most helpfull when loading off of a spining drive.


Adjusted the drag and drop image functionality. Dropped images now snap to the base image instead of dropping where ever the coursor is. The base image is deffined currently by the image at the bottom of the stack. This allows you to change what is considered the base image.

When resizing images they will also snap to the edges of the base image following the same logic.


SwarmUI


Formerly known as StableSwarmUI.


A Modular AI Image Generation Web-User-Interface, with an emphasis on making powertools easily accessible, high performance, and extensibility. Supports AI image models (Stable Diffusion, Z-Image, Flux, Qwen Image, etc.), and AI video models (Wan, Hunyuan Video, etc.), with plans to support eg audio and more in the future.


ui-screenshot



----

Status

This project is in Beta status. This means for most tasks, Swarm has excellent tooling available to you, but there is much more planned. Swarm is recommended as an ideal UI for most users, beginners and pros alike. There are still some things to be worked out.

Beginner users will love Swarm's primary Generate tab interface, making it easy to generate anything with a variety of powerful features. Advanced users may favor the Comfy Workflow tab to get the unrestricted raw graph, but will still have reason to come back to the Generate tab for convenience features (image editor, auto-workflow-generation, etc) and powertools (eg Grid Generator).

Those interested in helping push Swarm from Beta to a Full ready-for-anything perfected Release status are welcome to submit PRs (read the Contributing document first), and you can contact us here on GitHub or on Discord. I highly recommend reaching out to ask about plans for a feature before PRing it. There may already be specific plans or even a work in progress.

Key feature targets not yet implemented:

  • Better mobile browser support
  • full detail "Current Model" display in UI, separate from the model selector (probably as a tab within the batch sidebar?)
  • LLM-assisted prompting (there's an extension for it, but LLM control should be natively supported)
  • convenient direct-distribution of Swarm as a program (Tauri, Blazor Desktop, or an Electron app?)

Donate

SwarmUI is 100% free and open source forever. If you want to help make sure it keeps pace with the best despite my refusal to paywall access or shove ads down your throat, donate to SwarmUI!

Try It On Google Colab

Google Colab

WARNING: Google Colab does not necessarily allow remote WebUIs, particularly for free accounts, use at your own risk.

Colab link if you want to try Swarm: https://colab.research.google.com/github/mcmonkeyprojects/SwarmUI/blob/master/colab/colab-notebook.ipynb

Run it on a Cloud GPU Provider

Runpod

Runpod template (note: maintained by third party contributor nerdylive123): https://get.runpod.io/swarmui

Vast.ai

Vast.ai template (readme): https://cloud.vast.ai/?ref_id=62897&creator_id=62897&name=SwarmUI

Note it may take several minutes to start up the first time. Check the container logs to see setup progress. Check the template ? info for hints on how to use.

Installing on Windows

Note: if you're on Windows 10, you may need to manually install git and DotNET 8 SDK first. (Windows 11 this is automated).

  • Download The Install-Windows.bat file, store it somewhere you want to install at (not Program Files), and run it.
    • It should open a command prompt and install itself.
    • If it closes without going further, try running it again, it sometimes needs to run twice. (TODO: Fix that)
    • It will place an icon on your desktop that you can use to re-launch the server at any time.
    • When the installer completes, it will automatically launch the SwarmUI server, and open a browser window to the install page.
    • Follow the install instructions on the page.
    • After you submit, be patient, some of the install processing take a few minutes (downloading models and etc).

(TODO): Even easier self-contained pre-installer, a .msi or .exe that provides a general install screen and lets you pick folder and all.

Alternate Manual Windows Install

Installing on Linux

Prereqs

  • Install git and python3 via your OS package manager if they are not already installed (make sure to include pip and venv on distros that do not include them in python directly)
    • For example, on some Ubuntu (desktop) versions, sudo apt install git python3-pip python3-venv, or you may need https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa
    • For Debian or Ubuntu Server, sudo apt install git python3-full
    • You'll want Python 3.11 or 3.12. Things should also work fine with 3.10. Do not use 3.13.
    • Make sure python3.11 -m pip --version returns a valid package

Linux Easy Install

  • Download the install-linux.sh file, store it somewhere you want to install at, and run it
    • If you like terminals, you can open a terminal to the folder and run the following commands: (Yes this link is still current):
      • wget https://github.com/mcmonkeyprojects/SwarmUI/releases/download/0.6.5-Beta/install-linux.sh -O install-linux.sh
      • chmod +x install-linux.sh
  • Run the ./install-linux.sh script, it will install everything for you and eventually open the webpage in your browser.
  • Follow the install instructions on-page.

Linux Manual Install

  • Install DotNET 8 using the instructions at https://dotnet.microsoft.com/en-us/download/dotnet/8.0 (you need dotnet-sdk-8.0, as that includes all relevant sub-packages)
  • Open a shell terminal and cd to a directory you want to install into
  • Run shell commands:
    • git clone https://github.com/mcmonkeyprojects/SwarmUI
    • cd SwarmUI
    • ./launch-linux.sh
    • or if running on a headless server, ./launch-linux.sh --launch_mode none --host 0.0.0.0 and/or swap host for cloudflared
  • open http://localhost:7801/Install (if it doesn't launch itself)
  • Follow the install instructions on-page.

Linux Install Notes

  • You can at any time in the future run the launch-linux.sh script to re-launch Swarm.
  • If the page doesn't open itself, you can manually open http://localhost:7801

(TODO): Maybe outlink a dedicated document with per-distro details and whatever. Maybe also make a one-click installer for Linux? Can we remove the global python install prereq?

Installing on Mac

Note: You can only run SwarmUI on Mac computers with M-Series Apple silicon processors (eg M1, M2, ...).

  • Open Terminal.
  • Ensure your brew packages are updated with brew update.
  • Verify your brew installation with brew doctor. You should not see any error in the command output.
  • Install .NET for macOS: brew install dotnet.
  • If you don't have Python, install it: brew install python@3.11 and brew install virtualenv
    • Python 3.11, 3.12, 3.10 are all fine. 3.13 is not, do not use 3.13.
  • Change the directory (cd) to the folder where you want to install SwarmUI.
  • Clone the SwarmUI GitHub repository: git clone https://github.com/mcmonkeyprojects/SwarmUI.
  • cd SwarmUI and run the installation script: ./launch-macos.sh.
  • Wait for the web browser to open, and follow the install instructions on-page.

Installing With Docker

See Docs/Docker.md for detailed instructions on using SwarmUI in Docker.

Documentation

See the documentation folder.

Motivations

The "Swarm" name is in reference to the original key function of the UI: enabling a 'swarm' of GPUs to all generate images for the same user at once (especially for large grid generations). This is just the feature that inspired the name and not the end all of what Swarm is.

The overall goal of SwarmUI is to a be full-featured one-stop-shop for all things Stable Diffusion.

See the motivations document for motivations on technical choices.

Legal

This project:

SwarmUI itself is under the MIT license, however some usages may be affected by the GPL variant licenses of connected projects list above, and note that any models used have their own licenses.

Previous License

(For updates prior to June 2024)

The MIT License (MIT) Copyright (c) 2024 Stability AI

License

The MIT License (MIT)

Copyright (c) 2024-2026 Alex "mcmonkey" Goodwin

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 above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

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.

About

SwarmUI (formerly StableSwarmUI), A Modular Stable Diffusion Web-User-Interface, with an emphasis on making powertools easily accessible, high performance, and extensibility.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C# 50.6%
  • JavaScript 35.8%
  • HTML 5.4%
  • CSS 4.0%
  • Python 3.7%
  • Shell 0.3%
  • Other 0.2%