GithubHelp home page GithubHelp logo

gauss's Introduction

Gauss

A Stable Diffusion app for macOS built with SwiftUI and Apple's ml-stable-diffusion CoreML models.

Download the latest release!

GitHub all releases GitHub

Screenshot

Usage

  • Gauss is document-based. To get started, create a new document.
    • All the images you generate are stored locally inside your .gaussnb (Gauss Notebook) files.
    • If it's your first time using Gauss, you'll need to install Stable Diffusion models to start generating images. Each model is about 2.5gb.
  • Write prompt text and adjust parameters in the composer view at the bottom of the document window.
  • To export an image, just drag it to Finder or any other image editor.
  • You can always generate more images from an existing prompt.

Project Status

This software is under development and is alpha quality. Builds are available on the releases page.

Alternatives:

  • DiffusionBee is a Stable Diffusion UI built with Electron & Python. It's probably slower than Gauss but has many more features.

System requirements

  • macOS 13.1+
  • Recommended: an Apple Silicon CPU. Intel hardware may work, but is untested by the primary developer and could be slow.

Developer setup

If you'd like to contribute, you can build the project by following the instructions for developers below.

System requirements

Building Gauss

  1. Clone this repo: git clone https://github.com/justjake/Gauss
  2. Open the project file (Gauss.xcodeproj) with Xcode: open Gauss.xcodeproj
  3. You should be able to run (Cmd-R) the project.

As with end-users, the first time you run Gauss you'll need to download models.

Adding or updating models

To release model data, we pack the models into archive files, split the archive files into parts no larger than 2gb, and then publish everything via Github release. 2gb is the file size limit for Github releases.

We use Apple Archive (.aar) format instead of something common like Zip because .aar unpacking is available from built-in libraries, and zip is not.

  1. To create the .aar files: make aars
  2. Serve the newly-built .aar files locally: make serve
  3. Switch to installing models locally:
  4. Run the project in Xcode, then open the Models window (Window > Models).
  5. Open the "Advanced" dropdown and choose "Custom Host"
  6. Remove existing model files: make uninstall-models

Publishing releases to Github

This is done manually.

gauss's People

Contributors

justjake avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gauss's Issues

All images come out like noise

With your recent batch of changes (7b34f1d), everything downloads and compiles flawlessly; however, any image I generate looks like fancy noise:

image

Doesn't seem to matter what model I use.

image

I notice that there are errors like these when using SD 2.0.

Step 20 / 41, avg 0.5577832517169771 variance 0.019478119297940133
2022-12-31 15:23:48.552311-0800 Gauss[84281:61333299] [espresso] ANE Batch: 1 of the async requests being waited for returned errors.
2022-12-31 15:23:48.552394-0800 Gauss[84281:61333299] [espresso] ANE Batch: Async request 3 returned error: code=5 err=Error Domain=com.apple.appleneuralengine Code=5 "processRequest:model:qos:qIndex:modelStringID:options:error:: 0x9: Program Inference overflow" UserInfo={NSLocalizedDescription=processRequest:model:qos:qIndex:modelStringID:options:error:: 0x9: Program Inference overflow}
2022-12-31 15:23:48.552416-0800 Gauss[84281:61333299] [espresso] [Espresso::overflow_error] :2
Step 21 / 41, avg 0.5576753291216764 variance 0.018545113515247902
2022-12-31 15:23:49.407311-0800 Gauss[84281:61333299] [espresso] ANE Batch: 1 of the async requests being waited for returned errors.
2022-12-31 15:23:49.407400-0800 Gauss[84281:61333299] [espresso] ANE Batch: Async request 3 returned error: code=5 err=Error Domain=com.apple.appleneuralengine Code=5 "processRequest:model:qos:qIndex:modelStringID:options:error:: 0x9: Program Inference overflow" UserInfo={NSLocalizedDescription=processRequest:model:qos:qIndex:modelStringID:options:error:: 0x9: Program Inference overflow}

I'm on an M2 MacBook Air with 24GB of RAM.

Installation missing instructions

There seem to be a few gaps in the instructions, such as an assumption that the correct Python version is installed, or that Anaconda / Miniconda is installed at all.

Instructions should be updated to reflect setup steps starting from a fresh install of macOS, without assumptions as to what software a user has installed.

Alternatively, installation requirements could be handled via the build script.

Allow providing negative prompt

negative prompt gives us more fine grained control over image generation.

The data model already allows for negativePrompt, but our UI does not.

  • Allow turning on negative prompt input somehow.
  • submit negative prompt to StableDiffusionPipeline when generating images

Add technical specs requirement to README.md

Thank you for releasing Gauss, great work! Please add technical specs/min required specs, to the README.md.

I'm assuming this is only for Apple Silicon macs and I'd like confirmation.

System for downloading model files from Github

Packing even a single model into the application makes the app too big to release on Github. We could split the app itself into multiple files, but that's confusing to explain to end-users.

Instead, Gauss should be smart enough to download models from Github by itself into it's Application Support directory. That way, we can release a small application (<50mb ideally).

Dependency on forked model

Thank you so much for building this and sharing it with the world! I wanted to ask whether it is absolutely necessary to depend on your fork of the model, which adds maintenance burden to you or gets obsolete perhaps quickly. Cheers!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.