Portable, cross platform Stable Diffusion UI

Overview

FusionKit

Releases

FusionKit screenshot

FusionKit is a self-contained cross-platform app for generating images with Stable Diffusion. It leverages the InvokeAI project to give a common set of useful features on top of Stable Diffusion, such as inpainting and preview generation.

(Windows or Linux with an Nvidia GPU is currently required; support for Apple Silicon Macs should be released soon)

Features

  • Txt2img: Enter a prompt and click "Dream" to generate one or more images!
  • Img2img: Drag and drop a "base image" and enter a prompt to generate a new image based on the base image. Change the "base image decimation" option to tweak how similar or different the new image is from the original.
  • Inpainting: Click the edit button next to the base image to draw a mask to replace only specific parts of an image.
  • Image previews: View images as they are being generated.
  • Configure multiple models: Switch between different Stable Diffusion model versions or model forks without restarting the app!
  • All generated images are saved to disk automatically (past images aren't viewable in app yet).

Download and setup

FusionKit is offered both as a self-contained Electron app and as a standalone headless server with a web UI. The Electron app is recommended, but the server could be useful if you want to use FusionKit on a remote machine. When using the server, the web UI can be accessed via http://localhost:2424 by default.

After downloading the appropriate version for your platform from the "Releases" page, unzip the archive and launch the app by opening the file named fusion_kit_app.exe or fusion_kit_app (for the server release, the file will be named fusion-kit-server).

When first launching the app, you'll be taken to the "Settings" page. You'll need to download or configure a Stable Diffusion model before using FusionKit. After downloading or configuring a model, click "Save" on the Settings screen and you'll be taken to the "Dream" page.

Security note: The app build currently starts an HTTP server on localhost port 2424. In a multi-user environment, this may mean that other users on the same system can access FusionKit through a browser. In a future release, FusionKit will likely switch to a proper IPC mechanism instead.

Security note: The server build has no authentication, but only listens on localhost by default. For added security, consider using a reverse proxy such as Nginx Proxy Manager.

Local development

FusionKit is broken up into 3 separate subprojects:

  • fusion_kit_server: The Python backend, which exposes Stable Diffusion through a GraphQL API.
  • fusion_kit_client: The React frontend.
  • fusion_kit_app: The Electron app, which just wraps the backend and frontend.

Dependencies

FusionKit uses Anaconda for dependency management. See the Anaconda installation instructions for details on setting up Anaconda for your platform.

After installing Anaconda, use the conda-{platform}.yaml file in this repo suitable for your platform. Each environment file will create an environment called fusion-kit-{platform}.

Windows setup

After installation, you should be able access Anaconda through "Anaconda Prompt (anaconda3)" in your Start menu.

git clone --recursive https://github.com/fusion-kit/fusion-kit.git
cd fusion-kit
git submodule update --init
conda env create -f conda-windows.yaml
conda activate fusion-kit-windows

If you've already created the Anaconda environment, you can update it by running conda env update -f conda-windows.yaml --prune, or recreate it by running conda env remove -n fusion-kit-windows followed by conda env create -f conda-windows.yaml.

Linux setup

Anaconda should be directly usable in your terminal after signing out and signing back in. If not, refer to the installation instructions to initialize Anaconda.

git clone --recursive https://github.com/fusion-kit/fusion-kit.git
cd fusion-kit
git submodule update --init
conda env create -f conda-linux.yaml
conda activate fusion-kit-linux

If you've already created the Anaconda environment, you can update it by running conda env update -f conda-linux.yaml --prune, or recreate it by running conda env remove -n fusion-kit-linux followed by conda env create -f conda-linux.yaml.

Starting the project

First, make sure you have the FusionKit Anaconda environment active by running conda activate fusion-kit-{platform}.

Start the server by running the following command:

python fusion_kit_server/main.py

Start the client by running the following commands:

cd fusion_kit_client
npm install
npm run dev

The client should now be accessible at http://localhost:2425! You can also access the GraphQL API at http://localhost:2424/graphql.

Building the project

At the moment, the build process is completely manual. To do the build, make sure you can start the project locally first.

1. Build the client

cd fusion_kit_client
npm install
npm run build
cd ..

2. Build the server

pyinstaller fusion_kit_server.spec --noconfirm

3. Build the Electron app

cd fusion_kit_app
npm install
npm run make

4. Done

  • The client output is at fusion_kit_client/dist/, and is a static site.
  • The server output is at dist/fusion-kit-server/. The executable is called fusion-kit-server and bundles the client (meaning that when you start the server, the UI can be accessed on http://localhost:2424/.).
  • The Electron app output is at fusion_kit_app/out/. There is a platform directory containing the build, and a make/ directory containing a zip file of the build.
You might also like...

A fast, portable, flexible JavaScript component framework

SAN 一个快速、轻量、灵活的 JavaScript 组件框架 A fast, portable, flexible JavaScript component framework. HomePage 网站 安装(Install) NPM: $ npm i san CDN: script src=

Dec 29, 2022

Lightweight, Portable, Flexible Distributed/Mobile Deep Learning with Dynamic, Mutation-aware Dataflow Dep Scheduler; for Python, R, Julia, Scala, Go, Javascript and more

Lightweight, Portable, Flexible Distributed/Mobile Deep Learning with Dynamic, Mutation-aware Dataflow Dep Scheduler; for Python, R, Julia, Scala, Go, Javascript and more

Apache MXNet (incubating) for Deep Learning Apache MXNet is a deep learning framework designed for both efficiency and flexibility. It allows you to m

Jan 5, 2023

A one-of-a-kind resume builder that keeps your privacy in mind. Completely secure, customizable, portable, open-source and free forever. Try it out today!

A one-of-a-kind resume builder that keeps your privacy in mind. Completely secure, customizable, portable, open-source and free forever. Try it out today!

A free and open source resume builder. Go to App What is this app all about? Reactive Resume is a free and open source resume builder that’s built to

Jan 3, 2023

A highly portable first person 3D game playable on Desktop or Web!

rust-game Interfaces (*_interface/) are immediately human-playable versions of the game. They use single_player simulations of the game, which in turn

Jun 7, 2022

Portable Activity Timeline that draws the Timeline based on data given in JSON or CSV format

Portable Activity Timeline that draws the Timeline based on data given in JSON or CSV format

Portable Activity Timeline that draws the Timeline based on data given in JSON or CSV format. By clicking on any activity a detailed modal window is displayed. Initially developed for post incident investigations to get a overview of the situation in an it-environment.

Oct 11, 2022

Functions and objects that make it easier to add fields to Portable Text editors for accessibility meta information, like language changes or abbreviations.

Porta11y Porta11y is a collection of accessibility-focused annotations, decorators and validators for Sanity’s Portable Text editor. Portable Text is

Aug 25, 2022

Automated testing for single-page applications (SPAs). Small, portable, and easy to use. Click on things, fill in values, await for things exist, etc.

SPA Check Automated testing for single-page applications (SPAs). Small, portable, and easy to use. Click on things, fill in values, await for things e

Dec 23, 2022

Component oriented framework with Virtual dom (fast, stable, with tooling)

Component oriented framework with Virtual dom (fast, stable, with tooling)

Bobril Main site bobril.com Changelog of npm version: https://github.com/Bobris/Bobril/blob/master/CHANGELOG.md Component oriented framework inspired

Dec 4, 2022

Proposal(s) for a stable Deno FFI API

Proposal(s) for a stable API for Deno FFI In this repository I propose a possible stable APIs for Deno FFI. The proposals are split into folders by to

Dec 5, 2022
Releases(v0.1.0)
  • v0.1.0(Sep 30, 2022)

    App

    Headless server

    Release notes

    Initial release! This first release is fairly basic, and includes txt2img, img2img, and inpainting.

    Known bugs

    • When quitting the app, the server doesn't always get stopped properly. If this happens, manually kill any running instances of fusion-kit-server.
    • Seeds larger than around 2 billion don't work.
    • On startup, the server prints a warning about the function @torch.jit._overload.
    • Base image mask is not cleared when removing or re-uploading a new image.
    • No prompt is shown when leaving the settings page with unsaved changes. (If you accidentally deleted a model that you just downloaded, just re-download it and the previous download should be found automatically)
    Source code(tar.gz)
    Source code(zip)
Owner
FusionKit
FusionKit
A cross-platform desktop app with a nice interface to Stable Diffusion and others

GenerationQ GenerationQ (for "image generation queue") is a cross-platform desktop application (screens below) designed to provide a general purpose G

Weston C. Beecroft 25 Dec 28, 2022
a toy project to explore Stable Diffusion locally through a nodeJS server.

SD-explorer foreword this is a toy project to run the Stable Diffusion model locally. if you're after something more solid, I'd suggest you use WebUI

nicolas barradeau 18 Dec 18, 2022
🤗 A CLI for running Stable Diffusion locally via a REST API on an M1/M2 MacBook

Stable Diffusion REST API A CLI for running Stable Diffusion locally via a REST API on an M1/M2 MacBook Pre-requisites An M1/M2 MacBook Homebrew Pytho

Yuan Qing Lim 74 Dec 26, 2022
Minimalist UI for Stable Diffusion, built with SolidJS

Solid Diffusion Minimalist web-based interface for Stable Diffusion with persistant storage in the browser, built with SolidJS. This project is an alp

_nderscore 13 Nov 29, 2022
A web GUI for inpainting with Stable Diffusion using the Replicate API.

?? Inpainter A web GUI for inpainting with Stable Diffusion using the Replicate API. Try it out at inpainter.vercel.app cherries-oranges-bananas.mp4 H

Zeke Sikelianos 158 Dec 27, 2022
Concept Art/Prototyping faster with AIDA (AIDAdiffusion), "All-In-one" app for running Stable Diffusion on windows PC locally.

AIDAdiffusion Concept Art/Prototyping faster with ourbunka internal tool AIDA (AIDAdiffusion), "All-In-one" app for running Stable Diffusion on window

null 7 Nov 23, 2022
Easiest 1-click way to install and use Stable Diffusion on your own computer. Provides a browser UI for generating images from text prompts and images. Just enter your text prompt, and see the generated image.

Stable Diffusion UI Easiest way to install and use Stable Diffusion on your own computer. No dependencies or technical knowledge required. 1-click ins

null 3.5k Dec 30, 2022
Backend for my Stable diffusion project(s)

Backend for my Stable diffusion project(s) Might be useful for others but at least it's useful for me. Only supports txt2img right now. Uses AUTOMATIC

Amotile 33 Dec 25, 2022
A simple Stable Diffusion WebUI extension that adds a Photopea tab and integration.

Photopea Stable Diffusion WebUI Extension Photopea is essentially Photoshop in a browser. This is a simple extension to add a Photopea tab to AUTOMATI

Yanko Oliveira 624 Aug 10, 2023
GetOsLocalesCrossPlatform - A cross platform alternative to get locales used on the platform. Works on Node, Electron, NW.js and Browsers

getOsLocalesCrossPlatform A cross platform alternative to get locales used on the platform. Works on Node, Electron, NW.js and Browsers This script is

null 1 Jan 2, 2022