Giter Club home page Giter Club logo

divamgupta / diffusionbee-stable-diffusion-ui Goto Github PK

View Code? Open in Web Editor NEW
12.1K 106.0 593.0 214.14 MB

Diffusion Bee is the easiest way to run Stable Diffusion locally on your M1 Mac. Comes with a one-click installer. No dependencies or technical knowledge needed.

Home Page: https://diffusionbee.com

License: GNU Affero General Public License v3.0

Python 13.25% JavaScript 81.92% HTML 0.01% Vue 4.63% CSS 0.19%
electron-app macos stable-diffusion

diffusionbee-stable-diffusion-ui's People

Contributors

a-childs-encyclopedia avatar aetheve avatar crudediatribe avatar detreville avatar divamgupta avatar eltociear avatar ethanmckanna avatar fortinmike avatar iktwo avatar itangalo avatar joaoamaral avatar lachlanjc avatar nicolassompairac avatar tobihagemann avatar trebor avatar tricki avatar w3cdotorg 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  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

diffusionbee-stable-diffusion-ui's Issues

How to run in dev or build?

Hi, I just cloned the repository and tried to run it but couldn't figure out how to run this.

I thought npm run serve would work at first, but that doesn't seem to be the case. And then I tried multiple npm run build operations in the package.json file but some of them fail with python error, and I couldn't make it work.

after trying some of these commands, running npm run electron:serve does start the electron app, but it then immediately crashes with "Backend quit unexpectedly", and the console says: ModuleNotFoundError: No module named 'omegaconf'

Is there any instruction for building or running this in dev mode? Would appreciate anyone's help, thanks!

Allow queueing prompts

This would likely need something like #24 first, or it would lead to a lot of lost images. But right now the wait time during image generation is nicely used to queue the next image for generation.

Feature Request: Dark Mode / Dark Interface

first of all i want to say thank you for making this project, its amazing.

but i am going snow blind from staring at the bright white interface tho lol... would be greatly appreciated if there was an option to switch to a black or dark grey interface for dark mode.... would be helpful in the day, necessary at night.

would make this project perfect imo.

thank you again.

Feature requests

This is a really nice project, great work mate.

Would it possible in the future to add the following?

  1. Add an option to cancel in progress generation.

  2. Set the default image size to 256x256 if < 16GB system RAM?
    This would be handy as 512x512 is basically unusable time wise on 8gb.

  3. This is more of a question, but I know there are optimised low ram versions of SD, is possible to give the option of using an optimised version?

Richer image saving

Two things I wish the Save Image option could do:

  1. Store the prompt and other settings in metadata. Even just logging the full set of arguments in an EXIF comment would be useful.
  2. Save as formats other than PNG. Often, for playful outputs, JPEG or HEIC is plenty. Being able to save directly in compressed formats would be very convenient.

Feature request: for advanced options, use text inputs

I'm of the opinion that advanced options should help empower those wanting to do advanced things.

To help support that, I think that the drop down menus used in the "Advanced options" menu of the "Text to image" tab should let me just write the values in. Not only is it easier to type 6 in the box, I also don't need to scroll through a list of numbers to find the number 6. And if I want my "Guidence Scale" (there's a typo in the drop down title, by the way) to be 6.3, well, there's no way to indicate that.

Though free-form option values can cause unexpected behavior, I think that unexpected behavior is totally acceptable. If I'm given the power to break stuff, then I should expect to see stuff break. I consider it a small price to pay to be able to type in 6.3 when I want to use 6.3 as my guidance scale value.

Crash at quit

Got some sort of crash when quitting:

Screenshot 2022-09-12 at 18 50 02

Ventura beta 6.

Cannot run on macOS 11 Big Sur

Downloaded DiffusionBee-0.1.0-arm64.dmg today to Big Sur and trying to open the app fails with the message "You have macOS 11.7. The application requires macOS 12.5.1 or later.".

Feature Request: add generation string as file comment

Actually I add the generation string manually to the image file if I save it. It would be nice to have this automatically. An other option would be to save a .tct file with all the pictures paramters.

This way one can try to replicate the picture (kind of)

Advanced options reset after generating an image.

  • Click "Text to image" tab
  • Enter a prompt
  • Expand the "Advanced options" menu
  • Change "Steps" from 25 to 50
  • Click on generate
  • Once done generating, click on the "Logs" tab
  • Click "Text to image" tab
  • Expand the "Advanced options" menu
  • "Steps" has reset back to 25

I was surprised to see that 25 had been reset to 50. I expected it to remember my preference either forever, or at least until I closed DiffusionBee. I think that because the prompt isn't changing when clicking from one tab to another, the settings associated with the prompt shouldn't change either.

Screen Shot 2022-09-14 at 6 00 31 PM

Screen Shot 2022-09-14 at 6 04 34 PM

Log formatting is a little bananas

After generating an image I was curious to know how long it took. That's when I saw this:

Screen Shot 2022-09-14 at 5 09 03 PM

This might be easily fixed by using a fixed width font rendered within an element that can add both vertical and horizontal scroll bars as needed.

Or, maybe replace the actual log output itself with a button that simple says "Open in Console".

Crash on start

Hi!

I have an error when I start the app:

Uncaught Exception:
TypeError: Object has been destroyed
at IpcMainImpl.<anonymous> (/private/var/folders/qz/kbmfy__56z14l1xg6hzdzksr0000gn/T/AppTranslocation/93B9BEA5-64F3-4A8E-9A7E-EBD19AC93C47/d/DiffusionBee.app/Contents/Resources/app.asar/background.js:2:240352)
at IpcMainImpl.emit (events.js:315:20)
at Object.<anonymous> (electron/js2c/browser_init.js:161:10307)
at Object.emit (events.js:315:20)
at ChildProcess.<anonymous> (/private/var/folders/qz/kbmfy__56z14l1xg6hzdzksr0000gn/T/AppTranslocation/93B9BEA5-64F3-4A8E-9A7E-EBD19AC93C47/d/DiffusionBee.app/Contents/Resources/app.asar/background.js:2:244979)
at ChildProcess.emit (events.js:315:20)
at maybeClose (internal/child_process.js:1048:16)
at Socket.<anonymous> (internal/child_process.js:439:11)
at Socket.emit (events.js:315:20)
at Pipe.<anonymous> (net.js:673:12)

Timeline:

  1. Launch the app

screencapture-2022-09-12-16 54 31@2x

  1. 2 seconds later, this modal prompts:

screencapture-2022-09-12-16 54 33@2x

  1. Clicked "OK", this modal prompts:

screencapture-2022-09-12-16 54 26@2x

  1. Clicked "OK", the modal closes itself

macOS

screencapture-2022-09-12-16 54 50@2x

Feel free to ask any question to debug!

Feat: brew cask installation

I'd love to see a brew cask installation formula for this :) (I default to installing apps on my Mac that way, like many other people)

What is your License?

this code is unlicensed, which means quite a few of us may be breaking some interpretations of copyright law even just reading your code, much less running or modifying.

do you mind picking a license and puttting it up here please?

Auto generated file names / auto-save

by default should save images to a designated folder with <timestamp>.png. naming things is the hardest part.

alternatively could name files a filename-safe-version-of-the-prompt-1.png that increments.

App opens with white Screen (caused by PyTorch?)

Hi, never did this here before so tell me if something is missing.
I am running on a MacBook with M1 with a fresh installed updated MacOS.
When I open the App I get only a white Box. I followed a tip in an other Issue and started the app from the terminal app.
I got the following error:

`
browser object binded
browser object binded
Python response: non threaded input for unix systems!
locale set failed
locale set failed 2

Python response: utds loading_msg___U_P_D_A_T_E___" Loading model "
utds loading_percentage___U_P_D_A_T_E___-1

stateeee
{ x: 751, y: 75, width: 770, height: 550, isMaximized: false }
Python response: utds loading_msg___U_P_D_A_T_E___" Loading model "
utds loading_percentage___U_P_D_A_T_E___-1

Python response: utds loading_desc___U_P_D_A_T_E___""

Python response: utds loading_msg___U_P_D_A_T_E___" Loading model "
utds loading_percentage___U_P_D_A_T_E___-1

Python response: Loading model from /Users/macos/.diffusionbee/downloads/sd-v1-4.ckpt

Python response: Global Step: 470000

Python response: LatentDiffusion: Running in eps-prediction mode

Python response: DiffusionWrapper has 859.52 M params.

Python response: making attention of type 'vanilla' with 512 in_channels

Python response: Working with z of shape (1, 4, 32, 32) = 4096 dimensions.

Python response: making attention of type 'vanilla' with 512 in_channels

stderr: Traceback (most recent call last):
File "txt2img.py", line 340, in

stderr: File "txt2img.py", line 293, in main
File "txt2img.py", line 122, in load_model_from_config
File "pytorch_lightning/core/mixins/device_dtype_mixin.py", line 109, in to
File "torch/nn/modules/module.py", line 987, in to
File "torch/nn/modules/module.py", line 639, in _apply
File "torch/nn/modules/module.py", line 639, in _apply
File "torch/nn/modules/module.py", line 639, in _apply
[Previous line repeated 1 more time]
File "torch/nn/modules/module.py", line 662, in _apply
File "torch/nn/modules/module.py", line 985, in convert
RuntimeError: block_found && buffer_block INTERNAL ASSERT FAILED at "/Users/runner/work/_temp/anaconda/conda-bld/pytorch_1662188943573/work/aten/src/ATen/mps/MPSAllocator.mm":124, please report a bug to PyTorch.
[559] Failed to execute script 'txt2img' due to unhandled exception!`

Images larger than 640x768 are blank or corrupted

Hello,
Thank you for making this project. I'm encountering an issue where making the image size larger than 640x768 results in black or "corrupted images". I can generate images up to 768x640 or 640x768, but as soon as both dimensions are 768, I get the unintended results. This happens regardless of the Steps or Guidance Scale values, and results in a similar image output regardless if prompt.

This is on a 16" MacBook Pro, w/ M1 Max and 64 GB of RAM. I have attached 2 versions of the "corrupted" images that have been generated. Reducing the image output results in a correctly generated image, when retaining all other parameters.
Untitled12
Untitled13

Thanks again for all your work on this project. It's great!

Warn/Request User Permission Before Downloading Model

Currently once dragged, it downloads ~4GB without requesting the user.

Especially on Macs where soldered storage can be even 256GB, it would be nice at least to suggest it's gonna download it to make sure you're connected using a broadband (and not capped cellular or slow network).

Feature request: make scriptable

In order to use DiffusionBee with an (Apple) script, all menu items need to be present in the menu. I would propose to add the following entries:

  • File -> Import text from clipboard
  • File -> Generate
  • File -> Save Image

This way we could write an Apple Script like the following (pseudo code):

for artist in ["Wassily Kandinsky", "Vincent van Gogh", "Pablo Picasso"]
    set clipboard text to `horse, painting by ${artist}`
    tell app DiffusionBee to to "Import text from clipboard"
    wait one minute
    tell app DiffusionBee to to "Save Image"

It would be great if it was possible to specify where the image is saved to and what the name is, e.g. ~/my-experiment/horse-by-picasso.png.

When a certain action is not possible (e.g. "Save Image" before an image was generated), the menu entry would need to be greyed out.

Feature request: batch processing

This tool is really great and much appreciated, thank you!

I realize this one is a bit pie-in-the-sky, so appreciate your consideration: I would love to be able to batch process images by loading a formatted text file of some kind (YAML, say). I would imagine the file would need:

  • A folder designated for saving output
  • A list of prompts

I would imagine the file would save with the prompt as file name, if possible, or even a line number from the input file. Batches would run with whatever Advanced options you had set before loading the file to avoid complicating the text file too much.

A Mode for 8GB M1 Machines

Would the app also run on 8GB M1 machines? Even if that meant it would run a lot slower?

Or will there ever be a version for 8GB M1 machines please?

Features Request

Need an input box where you can define the seed, random or fixed

Need to be able to select the desired one from multiple samplers

Feature Request: Drag and Drop

I'd like to be able to drag the generated image out of the Diffusion Bee UI and into other apps... messages, email, twitter, folder, etc. I very often end up saving, then dragging the saved image to one of those destinations. Thanks!

Lining numerals will keep the progress indicator from jittering

I forget the exact terms Apple uses for the feature, but the San Francisco system font has options to use lining numerals — the font feature where the digits 0-1 are all the same width. DiffusionBee should use them for this progress indicator: it'll keep the progress label text from jittering as the numbers quickly change.

image

Images are blank

I tried a text -> image prompt using the standard image settings, the image generated but is just a solid black PNG. Let me know where to find the logs and I will upload them. 14" Macbook Pro M1 with 16GB of RAM.

Input for Seed Value

First of all: thanks for this easy to use tool!
The only thing I am missing ATM is an input value for the seed. I guess I could change the code myself if I tried harder, just not sure where to start. Is there a quick outline how to build the app and how parameters from the UI .vue are passed to the ... rendering engine?

Uninstall

Hi there,

fyi, AppCleaner doesn't find/delete the folder ~/.diffusionbee (and also there don't seem to be any uninstall instructions.)

So that hidden folder might end up eating a lot of unnecessary space on people's harddrives after removing the app :-)

Would perhaps be better to use the default folder for saving Application data, i assume that's '~/Library/Application Support/DiffusionBee'

Feature request: GFPGAN for fixing eyes

Hi,
A great tool, I agree with all prior feature request, wanted to, respectfully, add one:
GFPGAN utilization, overall, for possible scaling (yes), but.. centrally, for fixing eyes, when creating humans..

Naturally, strange eyes can be also very effective, but control over how eyes look sounds like a very welcome addition.. small thing, yet, eyes are windows to the soul.

feature suggestions

  • way to specify a seed. This is an important part of SD workflows, letting you redo an image with a slightly tweaked prompt.

  • way to specify a custom model.

  • way to generate batches of images.

  • way to specify which sampler to use.

  • way to adjust the weight of specific sub-phrases, or use negative weights.

  • img2img

Show history of prompts and generated images

This would allow to more easily experiment with variations of prompts and go back and change them later. Also Images aren't lost immediately after entering the next prompt.

This could also be a nice gateway into allowing prompts to be queued up to use the available compute optimally.

Thank you for this!

Finally a simple M1 GUI. Would be amazing to have IMG2IMG working /w ERSGAN and GFPGAN

Feature request: timings

When generating an image, it'd be useful to know how long it took to generate that image. I'd probably just add a text element below the generated image that could display relevant info about the image, including how long it took to take. You could then also use that same spot to describe the full prompt given, and whatever other settings were relevant when generating it.

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.