Stable Diffusion web UI - A browser interface based on Gradio library for Stable Diffusion

Overview

Stable Diffusion web UI

A browser interface based on Gradio library for Stable Diffusion.

Features

Detailed feature showcase with images:

  • Original txt2img and img2img modes
  • One click install and run script (but you still must install python and git)
  • Outpainting
  • Inpainting
  • Prompt matrix
  • Stable Diffusion upscale
  • Attention
  • Loopback
  • X/Y plot
  • Textual Inversion
  • Extras tab with:
    • GFPGAN, neural network that fixes faces
    • CodeFormer, face restoration tool as an alternative to GFPGAN
    • RealESRGAN, neural network upscaler
    • ESRGAN, neural network with a lot of third party models
  • Resizing aspect ratio options
  • Sampling method selection
  • Interrupt processing at any time
  • 4GB video card support
  • Correct seeds for batches
  • Prompt length validation
  • Generation parameters added as text to PNG
  • Tab to view an existing picture's generation parameters
  • Settings page
  • Running custom code from UI
  • Mouseover hints for most UI elements
  • Possible to change defaults/mix/max/step values for UI elements via text config
  • Random artist button
  • Tiling support: UI checkbox to create images that can be tiled like textures
  • Progress bar and live image generation preview
  • Negative prompt
  • Styles
  • Variations
  • Seed resizing
  • CLIP interrogator
  • Prompt Editing

Installation and Running

Make sure the required dependencies are met and follow the instructions available for both NVidia (recommended) and AMD GPUs.

Alternatively, use Google Colab.

Automatic Installation on Windows

  1. Install Python 3.10.6, checking "Add Python to PATH"
  2. Install git.
  3. Download the stable-diffusion-webui repository, for example by running git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git.
  4. Place model.ckpt in the base directory, alongside webui.py.
  5. (Optional) Place GFPGANv1.3.pth in the base directory, alongside webui.py.
  6. Run webui-user.bat from Windows Explorer as normal, non-administrate, user.

Automatic Installation on Linux

  1. Install the dependencies:
# Debian-based:
sudo apt install wget git python3 python3-venv
# Red Hat-based:
sudo dnf install wget git python3
# Arch-based:
sudo pacman -S wget git python3
  1. To install in /home/$(whoami)/stable-diffusion-webui/, run:
bash <(wget -qO- https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui/master/webui.sh)

Documentation

The documentation was moved from this README over to the project's wiki.

Credits

Comments
  • Dreambooth

    Dreambooth

    Add basic UI implementation and stuff to unpack a selected checkpoint and then use it with Dreambooth.

    There's also code to re-merge the output with said selected checkpoint, but I can't currently test with my potato because I don't know how to incorporate the necessary "accelerate launch" command to make it only run on GPU.

    @AUTOMATIC1111 - Need help with this bit. It's useless to me if I can't get the accelerate launch stuff to work so I can force it just to my GPU, unless you know some other magick to make it work with 8GB.

    opened by d8ahazard 146
  • propose an Contrastive Prompt Tuning method (DreamArtist), can super dramatically improve the image quality and diversity

    propose an Contrastive Prompt Tuning method (DreamArtist), can super dramatically improve the image quality and diversity

    Propose a better method of prompt tuning (train embedding), which can super dramatically improve the image quality compared to the current embedding training method. Excellent performance can be active even with just one image for training (one-shot learning).

    Performance Comparison with same extra prompt:

    train image: p1

    current method: image grid-0023

    my APT method: image grid-0024

    or add some details prompt: image

    no prompt tuning (textual inversion): image

    Learn Genshin Nahida from single image: grid-0561

    combination Nahida with additional prompt: grid-magic-nxd grid-0556

    **Note. ** The results from this version are currently inconsistent with the version I used before, and there are some discrepancies in performance. The reason for this is currently unknown. Probably due to the scheduler, the training 1000 steps learning rate decreases too fast.

    my old version : image

    new version : grid-0024

    It may be better to use https://github.com/7eu7d7/APT-stable-diffusion-auto-prompt when training embedding

    opened by 7eu7d7 99
  • Dreambooth: Ready to go!

    Dreambooth: Ready to go!

    Okay, this is the third submission of this.

    Everything should work now, but may require some horsepower to do so. It can theoretically work on 10GB GPU, possibly 8 if the user sets up WSL2 and xformers and other stuff, but that will be left outside the scope of this project.

    Point is, I've tested this quite thoroughly now, and everything does what it should do in a pretty efficient manner.

    You can currently:

    Fine-tune any existing checkpoint. Load it from the UI, configure settings, go. Reload any existing set of training data from the UI, including prompts, directories, everything. Train with or without "prior preservation loss". Optionally train the text encoder as well, which promises better results with human subjects, same with PPL. Auto-convert diffuser data back to checkpoint data.

    Future things to implement (once initial is merged): Multiple subjects at once. Auto reload SD checkpoint list. Add a "cooldown" option where you can pause after N steps to give your GPU a break, then resume again after N seconds/minutes.

    Final submission, replaces #2002

    opened by d8ahazard 96
  • xformers attention

    xformers attention

    This PR adds xformer optimized cross-attention, a flag to disable it and use split instead, _maybe_init function that - for some reason - seems to be necessary for xformers to work in this instance and enables functorch in xformers, which further increased performance on my machine.

    We still need a way for easy distribution of xformers. Otherwise, this PR is good to go (barring bugs I've not been able to perceive) cc. @Doggettx @Thomas-MMJ @ArrowM @consciencia

    PS. Much thanks to @fmassa @danthe3rd @yocabon and many others for their generous efforts to bring xformers to Windows.

    I've seen a %15 improvement with batch size 1, 100 steps, 512x512 and euler_a. xFormers allows me to output 2048x2048 whereas I would previously OOM.

    closes #576

    opened by C43H66N12O12S2 73
  • Prompt blending

    Prompt blending

    Prompt blending suggested by @amotile in #930

    Implemented as an optional [email protected] [email protected] syntax, default off in the settings.

    Some examples:

    Various raw unblended elements of dragons:

    image

    And those prompts 'blended' in varying combinations:

    image

    opened by dfaker 67
  • [Finish] Add support for simplified chinese 简体中文化

    [Finish] Add support for simplified chinese 简体中文化

    same as pr #3018, I mess-up the git history so I close that one and re-open a pr again. I've finished all the translation up to f49c08ea566385db339c6628f65c3a121033f67c, welcome for any improvement

    localization 
    opened by dtlnor 64
  • Disable Invisible Watermark....

    Disable Invisible Watermark....

    print("Creating invisible watermark encoder (see https://github.com/ShieldMnt/invisible-watermark)...")
    wm = "StableDiffusionV1"
    wm_encoder = WatermarkEncoder()
    wm_encoder.set_watermark('bytes', wm.encode('utf-8'))
    

    Should be changed for this?:

    print("Creating invisible watermark encoder (see https://github.com/ShieldMnt/invisible-watermark)...")
    wm = ""
    wm_encoder = WatermarkEncoder()
    wm_encoder.set_watermark('bytes', wm.encode('utf-8'))
    

    Or also need to delete every line in txt2img.py that makes reference to the watermark?

    bug 
    opened by ZeroCool22 60
  • M1 issues (multiple)

    M1 issues (multiple)

    Am new to SD web ui, looks awesome but had issues installing on my M1 Max 32GB, and also a performance issue which I think could be bugs.

    As others have noted, following the installation instructions on https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Installation-on-Apple-Silicon by running curl -s https://raw.githubusercontent.com/dylancl/stable-diffusion-webui-mps/master/setup_mac.sh just prints in the terminal window.

    and https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui/master/setup_mac.sh gives a 404

    So I ran https://raw.githubusercontent.com/dylancl/stable-diffusion-webui-mps/master/setup_mac.sh locally. This ran but terminates early after installing the repositories, with this error:

    ERROR The check for the models & required repositories has failed. Please check if the model is in place and the repos are cloned. You can find the model in stable-diffusion-webui/models/sd-v1-4.ckpt You can find the repos in stable-diffusion-webui/repositories/ ERROR

    [model and repos are all in place from what I can tell].

    I tried the .sh installer here https://github.com/dylancl/stable-diffusion-webui-mps/pull/1/commits/f78c018f577e744fb9b2a44d0ca82cec06c1b035 which ran OK, to completion, and launched web ui. Great, however...

    ... with these settings: Txt2Img / 20 step / Euler / 1 iteration / 7 CFG scale ... it takes 91 seconds (4.28 s/it)

    and I get this message in the terminal...

    /Users/[me]/miniconda/lib/python3.9/site-packages/k_diffusion/external.py:71: UserWarning: The operator 'aten::frac.out' is not currently supported on the MPS backend and will fall back to run on the CPU. This may have performance implications. (Triggered internally at /Users/runner/work/pytorch/pytorch/pytorch/aten/src/ATen/mps/MPSFallback.mm:11.)

    With exact same settings + prompt on my M1 using InvokeAI, it takes just 15 seconds (6 times faster). I'd guess the GPU isn't being used for me with webui?

    When I finish my session, I get this error:

    Interrupted with signal 2 in <frame at 0x2b2a36cf0, file '/Users/[me]/miniconda/lib/python3.9/site-packages/gradio/blocks.py', line 1249, code block_thread> (base) MacBook-Pro-2:~ [me]$ /Users/[me]/miniconda/lib/python3.9/multiprocessing/resource_tracker.py:216: UserWarning: resource_tracker: There appear to be 1 leaked semaphore objects to clean up at shutdown warnings.warn('resource_tracker: There appear to be %d '

    Then when I try and re-launch it fails and I get this...

    WARNING: overwriting environment variables set in the machine overwriting variable PYTORCH_ENABLE_MPS_FALLBACK Already up to date. Warning: LDSR not found at path /Users/jonathansykes/stable-diffusion-webui/repositories/latent-diffusion/LDSR.py Traceback (most recent call last): File "/Users/[me]/stable-diffusion-webui/webui.py", line 8, in from modules.shared import opts, cmd_opts, state File "/Users/[me]/stable-diffusion-webui/modules/shared.py", line 5, in import gradio as gr ModuleNotFoundError: No module named 'gradio'

    ... a reinstallation gets it running again, but get exact same results i.e. runs OK once, then dies.

    I do have InvokeAI installed too - could that be an issue or is it something else?

    Thanks! Jon

    asking-for-help-with-local-system-issues 
    opened by Homemaderobot 59
  • [Bug]: SD v2.0-768

    [Bug]: SD v2.0-768 "RuntimeError: Error(s) in loading state_dict for LatentDiffusion"

    Is there an existing issue for this?

    • [X] I have searched the existing issues and checked the recent builds/commits

    What happened?

    • Used my own conda environment (not webui.bat) to directly run launch.py with the new v2.0 model
    • git pull to get latest 64c7b79 commit for v2.0 support
    • old v1.4 and 1.5 model work, new v2.0 model doesn't

    Steps to reproduce the problem

    1. conda create --name auto1111 python=3.10.6
    2. (auto1111) git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui/
    3. (auto1111) pip install -r requirements.txt
    4. conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia because default pytorch from requirements doesn't work ( as torch.cuda.is_available() returns False, but with 11.7 returns True)
    5. placed 768-v-ema.ckpt and 768-v-ema.yaml (and old 1.4 and 1.5 models) in \models\Stable-diffusion\
    6. (auto1111) python launch.py
    7. Select v2.0 model from webui dropdown

    What should have happened?

    generating img2txt with the new v2.0 model

    Commit where the problem happens

    64c7b79

    What platforms do you use to access UI ?

    Windows

    What browsers do you use to access the UI ?

    Google Chrome

    Command Line Arguments

    None. Directly running launch.py from a conda env:
    
    (auto1111)D:\ml\sd\sdwebui-automatic1111>python launch.py
    

    Additional information, context and logs

    conda env

         active environment : auto1111
        active env location : C:\Users\Jan\miniconda3\envs\auto1111
                shell level : 2
           user config file : C:\Users\Jan\.condarc
     populated config files :
              conda version : 22.9.0
        conda-build version : not installed
             python version : 3.9.13.final.0
           virtual packages : __cuda=11.7=0
                              __win=0=0
                              __archspec=1=x86_64
           base environment : C:\Users\Jan\miniconda3  (writable)
          conda av data dir : C:\Users\Jan\miniconda3\etc\conda
      conda av metadata url : None
               channel URLs : https://repo.anaconda.com/pkgs/main/win-64
                              https://repo.anaconda.com/pkgs/main/noarch
                              https://repo.anaconda.com/pkgs/r/win-64
                              https://repo.anaconda.com/pkgs/r/noarch
                              https://repo.anaconda.com/pkgs/msys2/win-64
                              https://repo.anaconda.com/pkgs/msys2/noarch
              package cache : C:\Users\Jan\miniconda3\pkgs
                              C:\Users\Jan\.conda\pkgs
                              C:\Users\Jan\AppData\Local\conda\conda\pkgs
           envs directories : C:\Users\Jan\miniconda3\envs
                              C:\Users\Jan\.conda\envs
                              C:\Users\Jan\AppData\Local\conda\conda\envs
                   platform : win-64
                 user-agent : conda/22.9.0 requests/2.28.1 CPython/3.9.13 Windows/10 Windows/10.0.22621
              administrator : False
                 netrc file : None
               offline mode : False
    

    Error Log

    Loading weights [2c02b20a] from D:\ml\sd\sdwebui-automatic1111\models\Stable-diffusion\768-v-ema.ckpt
    Global Step: 140000
    Traceback (most recent call last):
      File "C:\Users\Jan\miniconda3\envs\auto1111\lib\site-packages\gradio\routes.py", line 284, in run_predict
        output = await app.blocks.process_api(
      File "C:\Users\Jan\miniconda3\envs\auto1111\lib\site-packages\gradio\blocks.py", line 982, in process_api
        result = await self.call_function(fn_index, inputs, iterator)
      File "C:\Users\Jan\miniconda3\envs\auto1111\lib\site-packages\gradio\blocks.py", line 824, in call_function
        prediction = await anyio.to_thread.run_sync(
      File "C:\Users\Jan\miniconda3\envs\auto1111\lib\site-packages\anyio\to_thread.py", line 31, in run_sync
        return await get_asynclib().run_sync_in_worker_thread(
      File "C:\Users\Jan\miniconda3\envs\auto1111\lib\site-packages\anyio\_backends\_asyncio.py", line 937, in run_sync_in_worker_thread
        return await future
      File "C:\Users\Jan\miniconda3\envs\auto1111\lib\site-packages\anyio\_backends\_asyncio.py", line 867, in run
        result = context.run(func, *args)
      File "D:\ml\sd\sdwebui-automatic1111\modules\ui.py", line 1661, in <lambda>
        fn=lambda value, k=k: run_settings_single(value, key=k),
      File "D:\ml\sd\sdwebui-automatic1111\modules\ui.py", line 1502, in run_settings_single
        if not opts.set(key, value):
      File "D:\ml\sd\sdwebui-automatic1111\modules\shared.py", line 470, in set
        self.data_labels[key].onchange()
      File "D:\ml\sd\sdwebui-automatic1111\webui.py", line 43, in f
        res = func(*args, **kwargs)
      File "D:\ml\sd\sdwebui-automatic1111\webui.py", line 85, in <lambda>
        shared.opts.onchange("sd_model_checkpoint", wrap_queued_call(lambda: modules.sd_models.reload_model_weights()))
      File "D:\ml\sd\sdwebui-automatic1111\modules\sd_models.py", line 289, in reload_model_weights
        load_model_weights(sd_model, checkpoint_info)
      File "D:\ml\sd\sdwebui-automatic1111\modules\sd_models.py", line 182, in load_model_weights
        model.load_state_dict(sd, strict=False)
      File "C:\Users\Jan\miniconda3\envs\auto1111\lib\site-packages\torch\nn\modules\module.py", line 1604, in load_state_dict
        raise RuntimeError('Error(s) in loading state_dict for {}:\n\t{}'.format(
    RuntimeError: Error(s) in loading state_dict for LatentDiffusion:
            size mismatch for model.diffusion_model.input_blocks.1.1.proj_in.weight: copying a param with shape torch.Size([320, 320]) from checkpoint, the shape in current model is torch.Size([320, 320, 1, 1]).
            size mismatch for model.diffusion_model.input_blocks.1.1.transformer_blocks.0.attn2.to_k.weight: copying a param with shape torch.Size([320, 1024]) from checkpoint, the shape in current model is torch.Size([320, 768]).
            size mismatch for model.diffusion_model.input_blocks.1.1.transformer_blocks.0.attn2.to_v.weight: copying a param with shape torch.Size([320, 1024]) from checkpoint, the shape in current model is torch.Size([320, 768]).
            size mismatch for model.diffusion_model.input_blocks.1.1.proj_out.weight: copying a param with shape torch.Size([320, 320]) from checkpoint, the shape in current model is torch.Size([320, 320, 1, 1]).
            size mismatch for model.diffusion_model.input_blocks.2.1.proj_in.weight: copying a param with shape torch.Size([320, 320]) from checkpoint, the shape in current model is torch.Size([320, 320, 1, 1]).
            size mismatch for model.diffusion_model.input_blocks.2.1.transformer_blocks.0.attn2.to_k.weight: copying a param with shape torch.Size([320, 1024]) from checkpoint, the shape in current model is torch.Size([320, 768]).
            size mismatch for model.diffusion_model.input_blocks.2.1.transformer_blocks.0.attn2.to_v.weight: copying a param with shape torch.Size([320, 1024]) from checkpoint, the shape in current model is torch.Size([320, 768]).
            size mismatch for model.diffusion_model.input_blocks.2.1.proj_out.weight: copying a param with shape torch.Size([320, 320]) from checkpoint, the shape in current model is torch.Size([320, 320, 1, 1]).
            size mismatch for model.diffusion_model.input_blocks.4.1.proj_in.weight: copying a param with shape torch.Size([640, 640]) from checkpoint, the shape in current model is torch.Size([640, 640, 1, 1]).
            size mismatch for model.diffusion_model.input_blocks.4.1.transformer_blocks.0.attn2.to_k.weight: copying a param with shape torch.Size([640, 1024]) from checkpoint, the shape in current model is torch.Size([640, 768]).
            size mismatch for model.diffusion_model.input_blocks.4.1.transformer_blocks.0.attn2.to_v.weight: copying a param with shape torch.Size([640, 1024]) from checkpoint, the shape in current model is torch.Size([640, 768]).
            size mismatch for model.diffusion_model.input_blocks.4.1.proj_out.weight: copying a param with shape torch.Size([640, 640]) from checkpoint, the shape in current model is torch.Size([640, 640, 1, 1]).
            size mismatch for model.diffusion_model.input_blocks.5.1.proj_in.weight: copying a param with shape torch.Size([640, 640]) from checkpoint, the shape in current model is torch.Size([640, 640, 1, 1]).
            size mismatch for model.diffusion_model.input_blocks.5.1.transformer_blocks.0.attn2.to_k.weight: copying a param with shape torch.Size([640, 1024]) from checkpoint, the shape in current model is torch.Size([640, 768]).
            size mismatch for model.diffusion_model.input_blocks.5.1.transformer_blocks.0.attn2.to_v.weight: copying a param with shape torch.Size([640, 1024]) from checkpoint, the shape in current model is torch.Size([640, 768]).
            size mismatch for model.diffusion_model.input_blocks.5.1.proj_out.weight: copying a param with shape torch.Size([640, 640]) from checkpoint, the shape in current model is torch.Size([640, 640, 1, 1]).
            size mismatch for model.diffusion_model.input_blocks.7.1.proj_in.weight: copying a param with shape torch.Size([1280, 1280]) from checkpoint, the shape in current model is torch.Size([1280, 1280, 1, 1]).
            size mismatch for model.diffusion_model.input_blocks.7.1.transformer_blocks.0.attn2.to_k.weight: copying a param with shape torch.Size([1280, 1024]) from checkpoint, the shape in current model is torch.Size([1280, 768]).
            size mismatch for model.diffusion_model.input_blocks.7.1.transformer_blocks.0.attn2.to_v.weight: copying a param with shape torch.Size([1280, 1024]) from checkpoint, the shape in current model is torch.Size([1280, 768]).
            size mismatch for model.diffusion_model.input_blocks.7.1.proj_out.weight: copying a param with shape torch.Size([1280, 1280]) from checkpoint, the shape in current model is torch.Size([1280, 1280, 1, 1]).
            size mismatch for model.diffusion_model.input_blocks.8.1.proj_in.weight: copying a param with shape torch.Size([1280, 1280]) from checkpoint, the shape in current model is torch.Size([1280, 1280, 1, 1]).
            size mismatch for model.diffusion_model.input_blocks.8.1.transformer_blocks.0.attn2.to_k.weight: copying a param with shape torch.Size([1280, 1024]) from checkpoint, the shape in current model is torch.Size([1280, 768]).
            size mismatch for model.diffusion_model.input_blocks.8.1.transformer_blocks.0.attn2.to_v.weight: copying a param with shape torch.Size([1280, 1024]) from checkpoint, the shape in current model is torch.Size([1280, 768]).
            size mismatch for model.diffusion_model.input_blocks.8.1.proj_out.weight: copying a param with shape torch.Size([1280, 1280]) from checkpoint, the shape in current model is torch.Size([1280, 1280, 1, 1]).
            size mismatch for model.diffusion_model.middle_block.1.proj_in.weight: copying a param with shape torch.Size([1280, 1280]) from checkpoint, the shape in current model is torch.Size([1280, 1280, 1, 1]).
            size mismatch for model.diffusion_model.middle_block.1.transformer_blocks.0.attn2.to_k.weight: copying a param with shape torch.Size([1280, 1024]) from checkpoint, the shape in current model is torch.Size([1280, 768]).
            size mismatch for model.diffusion_model.middle_block.1.transformer_blocks.0.attn2.to_v.weight: copying a param with shape torch.Size([1280, 1024]) from checkpoint, the shape in current model is torch.Size([1280, 768]).
            size mismatch for model.diffusion_model.middle_block.1.proj_out.weight: copying a param with shape torch.Size([1280, 1280]) from checkpoint, the shape in current model is torch.Size([1280, 1280, 1, 1]).
            size mismatch for model.diffusion_model.output_blocks.3.1.proj_in.weight: copying a param with shape torch.Size([1280, 1280]) from checkpoint, the shape in current model is torch.Size([1280, 1280, 1, 1]).
            size mismatch for model.diffusion_model.output_blocks.3.1.transformer_blocks.0.attn2.to_k.weight: copying a param with shape torch.Size([1280, 1024]) from checkpoint, the shape in current model is torch.Size([1280, 768]).
            size mismatch for model.diffusion_model.output_blocks.3.1.transformer_blocks.0.attn2.to_v.weight: copying a param with shape torch.Size([1280, 1024]) from checkpoint, the shape in current model is torch.Size([1280, 768]).
            size mismatch for model.diffusion_model.output_blocks.3.1.proj_out.weight: copying a param with shape torch.Size([1280, 1280]) from checkpoint, the shape in current model is torch.Size([1280, 1280, 1, 1]).
            size mismatch for model.diffusion_model.output_blocks.4.1.proj_in.weight: copying a param with shape torch.Size([1280, 1280]) from checkpoint, the shape in current model is torch.Size([1280, 1280, 1, 1]).
            size mismatch for model.diffusion_model.output_blocks.4.1.transformer_blocks.0.attn2.to_k.weight: copying a param with shape torch.Size([1280, 1024]) from checkpoint, the shape in current model is torch.Size([1280, 768]).
            size mismatch for model.diffusion_model.output_blocks.4.1.transformer_blocks.0.attn2.to_v.weight: copying a param with shape torch.Size([1280, 1024]) from checkpoint, the shape in current model is torch.Size([1280, 768]).
            size mismatch for model.diffusion_model.output_blocks.4.1.proj_out.weight: copying a param with shape torch.Size([1280, 1280]) from checkpoint, the shape in current model is torch.Size([1280, 1280, 1, 1]).
            size mismatch for model.diffusion_model.output_blocks.5.1.proj_in.weight: copying a param with shape torch.Size([1280, 1280]) from checkpoint, the shape in current model is torch.Size([1280, 1280, 1, 1]).
            size mismatch for model.diffusion_model.output_blocks.5.1.transformer_blocks.0.attn2.to_k.weight: copying a param with shape torch.Size([1280, 1024]) from checkpoint, the shape in current model is torch.Size([1280, 768]).
            size mismatch for model.diffusion_model.output_blocks.5.1.transformer_blocks.0.attn2.to_v.weight: copying a param with shape torch.Size([1280, 1024]) from checkpoint, the shape in current model is torch.Size([1280, 768]).
            size mismatch for model.diffusion_model.output_blocks.5.1.proj_out.weight: copying a param with shape torch.Size([1280, 1280]) from checkpoint, the shape in current model is torch.Size([1280, 1280, 1, 1]).
            size mismatch for model.diffusion_model.output_blocks.6.1.proj_in.weight: copying a param with shape torch.Size([640, 640]) from checkpoint, the shape in current model is torch.Size([640, 640, 1, 1]).
            size mismatch for model.diffusion_model.output_blocks.6.1.transformer_blocks.0.attn2.to_k.weight: copying a param with shape torch.Size([640, 1024]) from checkpoint, the shape in current model is torch.Size([640, 768]).
            size mismatch for model.diffusion_model.output_blocks.6.1.transformer_blocks.0.attn2.to_v.weight: copying a param with shape torch.Size([640, 1024]) from checkpoint, the shape in current model is torch.Size([640, 768]).
            size mismatch for model.diffusion_model.output_blocks.6.1.proj_out.weight: copying a param with shape torch.Size([640, 640]) from checkpoint, the shape in current model is torch.Size([640, 640, 1, 1]).
            size mismatch for model.diffusion_model.output_blocks.7.1.proj_in.weight: copying a param with shape torch.Size([640, 640]) from checkpoint, the shape in current model is torch.Size([640, 640, 1, 1]).
            size mismatch for model.diffusion_model.output_blocks.7.1.transformer_blocks.0.attn2.to_k.weight: copying a param with shape torch.Size([640, 1024]) from checkpoint, the shape in current model is torch.Size([640, 768]).
            size mismatch for model.diffusion_model.output_blocks.7.1.transformer_blocks.0.attn2.to_v.weight: copying a param with shape torch.Size([640, 1024]) from checkpoint, the shape in current model is torch.Size([640, 768]).
            size mismatch for model.diffusion_model.output_blocks.7.1.proj_out.weight: copying a param with shape torch.Size([640, 640]) from checkpoint, the shape in current model is torch.Size([640, 640, 1, 1]).
            size mismatch for model.diffusion_model.output_blocks.8.1.proj_in.weight: copying a param with shape torch.Size([640, 640]) from checkpoint, the shape in current model is torch.Size([640, 640, 1, 1]).
            size mismatch for model.diffusion_model.output_blocks.8.1.transformer_blocks.0.attn2.to_k.weight: copying a param with shape torch.Size([640, 1024]) from checkpoint, the shape in current model is torch.Size([640, 768]).
            size mismatch for model.diffusion_model.output_blocks.8.1.transformer_blocks.0.attn2.to_v.weight: copying a param with shape torch.Size([640, 1024]) from checkpoint, the shape in current model is torch.Size([640, 768]).
            size mismatch for model.diffusion_model.output_blocks.8.1.proj_out.weight: copying a param with shape torch.Size([640, 640]) from checkpoint, the shape in current model is torch.Size([640, 640, 1, 1]).
            size mismatch for model.diffusion_model.output_blocks.9.1.proj_in.weight: copying a param with shape torch.Size([320, 320]) from checkpoint, the shape in current model is torch.Size([320, 320, 1, 1]).
            size mismatch for model.diffusion_model.output_blocks.9.1.transformer_blocks.0.attn2.to_k.weight: copying a param with shape torch.Size([320, 1024]) from checkpoint, the shape in current model is torch.Size([320, 768]).
            size mismatch for model.diffusion_model.output_blocks.9.1.transformer_blocks.0.attn2.to_v.weight: copying a param with shape torch.Size([320, 1024]) from checkpoint, the shape in current model is torch.Size([320, 768]).
            size mismatch for model.diffusion_model.output_blocks.9.1.proj_out.weight: copying a param with shape torch.Size([320, 320]) from checkpoint, the shape in current model is torch.Size([320, 320, 1, 1]).
            size mismatch for model.diffusion_model.output_blocks.10.1.proj_in.weight: copying a param with shape torch.Size([320, 320]) from checkpoint, the shape in current model is torch.Size([320, 320, 1, 1]).
            size mismatch for model.diffusion_model.output_blocks.10.1.transformer_blocks.0.attn2.to_k.weight: copying a param with shape torch.Size([320, 1024]) from checkpoint, the shape in current model is torch.Size([320, 768]).
            size mismatch for model.diffusion_model.output_blocks.10.1.transformer_blocks.0.attn2.to_v.weight: copying a param with shape torch.Size([320, 1024]) from checkpoint, the shape in current model is torch.Size([320, 768]).
            size mismatch for model.diffusion_model.output_blocks.10.1.proj_out.weight: copying a param with shape torch.Size([320, 320]) from checkpoint, the shape in current model is torch.Size([320, 320, 1, 1]).
            size mismatch for model.diffusion_model.output_blocks.11.1.proj_in.weight: copying a param with shape torch.Size([320, 320]) from checkpoint, the shape in current model is torch.Size([320, 320, 1, 1]).
            size mismatch for model.diffusion_model.output_blocks.11.1.transformer_blocks.0.attn2.to_k.weight: copying a param with shape torch.Size([320, 1024]) from checkpoint, the shape in current model is torch.Size([320, 768]).
            size mismatch for model.diffusion_model.output_blocks.11.1.transformer_blocks.0.attn2.to_v.weight: copying a param with shape torch.Size([320, 1024]) from checkpoint, the shape in current model is torch.Size([320, 768]).
            size mismatch for model.diffusion_model.output_blocks.11.1.proj_out.weight: copying a param with shape torch.Size([320, 320]) from checkpoint, the shape in current model is torch.Size([320, 320, 1, 1]).
    
    bug-report 
    opened by underlines 54
  • Add support for RunwayML In-painting Model

    Add support for RunwayML In-painting Model

    Apologies about the mess, I wrecked my repo trying to merge changes from upstream. It was easier to just make a new one.

    This commit adds support for the v1.5 in-painting model located here: https://github.com/runwayml/stable-diffusion

    We can use this model in all modes, txt2img and img2img, by just selecting the mask for each mode.

    Working

    1. K-Diffusion img2img, txt2img, inpainting
    2. DDIM txt2img, img2img, inpainting
    3. Switching models between in-painting and regular v1.4

    TODO

    1. Test all sorts of variations, image sizes, etc.
    opened by random-thoughtss 51
  • Gradient accumulation, autocast fix, new latent sampling method, etc

    Gradient accumulation, autocast fix, new latent sampling method, etc

    Reopening #4680

    Some new features, optimizations, and fixes for TI and hypernetwork training!

    1. Gradient Accumulation added What is Gradient Accumulation? See link Now we can train with larger batch sizes without being limited by VRAM.

    2. Fix autocast (GradScaler) GradScaler is now correctly applied to both TI and hypernetworks! See link Now weight updates can be calculated without underflow. Before this patch, every weight update under 7e-7 was ignored completely! Now we can train with more precision, no additional resources required! BTW this still doesn't fix hypernetworks training blowing up at high lr.

    3. Use DataLoader Code is much more cleaner now. Also added a shared option to turn on/off pin_memory.

    4. New latent sampling method From the original repository code of ldm and textual inversion, when encoding the training data image, a random sample is created for every loop of training. For all this time however, we have been using just one sample from the VAE. This is not how VAE are supposed to work, because its a variational autoencoder, so it encodes data to a normal-distributed latent space, not just one fixed result. But while tinkering with the code, I discovered that sampling from the mean of latent space can bring better results than one random sample or multiple random samples. So I would like to add options to try out different latent space sampling methods.

    • 'once': The method we have been using for all this time.
    • 'deterministic': My method.
    • 'random': The original method implemented by the original authors. Warning: may increase VRAM usage.
    1. Changed the loss display to show its true value, instead of showing the mean of last 32 steps. Also disabled report_statistics for hypernetworks, with gradient accumulation applied, viewing loss for individual images are not needed.

    2. 'shuffle_tags' and 'tag_drop_out' now work properly with hypernetworks. Hypernetwork training makes just one premade conditional embedding for each training image, so the tag changes did not apply to the conditional embeddings. Now when the option is on, a new conditional embedding is made for every tag changes.

    3. Moved 'shuffle_tags' and 'tag_drop_out' options from shared to training

    4. Implement train/eval mode in Hypernetworks Dropout should be only used in training, and should be turned off when used for inference, but the old code didn't do that. So... the old code was dropping off your hypernet nodes all this time. This patch should fix it, and give it a bit of speed boost when using hypernetworks for inference too.

    opened by FlameLaw 50
  • [Bug]: Img2Img not using the full prompt in batches greater than 1

    [Bug]: Img2Img not using the full prompt in batches greater than 1

    Is there an existing issue for this?

    • [X] I have searched the existing issues and checked the recent builds/commits

    What happened?

    If you use a specific text prompt in IMG2IMG that adds or remove text from the prompt, every image generated after the first one in a batch > 1 won't use it.

    The following will add a bear into the prompt after 20% of the steps: ([a bear:0.2]:1.4), woman in a field

    What happens is after the first image is generated, the bear part gets removed/deleted/not added and only a 'woman in a field' gets generated in the final image

    The opposite happens as well ([a bear::0.2]:1.4), woman in a field

    The bear gets generated for the first 20% of the image then changes to a woman. But each image after the first one, it completely generates only the bear

    Steps to reproduce the problem

    1. In Text2Img using the default setting, generate "a field" image
    2. Send the image to img2img
    3. Enter the prompt "([a bear:0.2]:1.4), woman in a field" without the quotes in the prompt field
    4. set the steps to 20, method to euler a, 512x512, batch count 4, CFG scale to 7, denoising to 0.8
    5. Click Generate images

    What should have happened?

    It should have rendered the bear in each generated image or in the opposite only the woman

    Commit where the problem happens

    3e22e294135ed0327ce9d9738655ff03c53df3c0

    What platforms do you use to access UI ?

    Windows

    What browsers do you use to access the UI ?

    Mozilla Firefox

    Command Line Arguments

    --api
    

    Additional information, context and logs

    No response

    bug-report 
    opened by real-grantin 0
  • [Feature Request]: Add

    [Feature Request]: Add "SD upscale" script from img2img tab to Hires. fix

    Is there an existing issue for this?

    • [X] I have searched the existing issues and checked the recent builds/commits

    What would your feature do ?

    The current Hires. fix generates a result with lower resolution and then upscale it with a desired upscaler. I find the "SD upscale" in img2img tab is more efficient and generates better result. Comparing to the normal upscaler, it has an extra step of breaking original image into tiles. It would be great if we can include the "SD upscale" or the breaking into tiles feature in Hires. fix, so that it can be done automatically (I don't need to manually send it to img2img and run).

    Proposed workflow

    1. Under Hires. fix, add a checkbox of using SD upscale and a textbox of Tile overlap.
    2. Automatically adjust the tile size by adding 1/2 tile overlap to width and height. So that it generates 4 tiles.
    3. Generate the result to txt2img folder.

    Additional information

    No response

    opened by silvermoong 0
  • [Bug]:  Error when generating anything

    [Bug]: Error when generating anything

    • [X] I have searched the existing issues and checked the recent builds/commits

    What happened?

    I went to generate an image and now every time I try I get this https://pastebin.com/3F19aaMb or some variant of it

    Steps to reproduce the problem

    1. Launch WebUI
    2. Try to generate something
    3. Watch it fail

    What should have happened?

    It should have generated a picture

    Commit where the problem happens

    3e22e294135ed0327ce9d9738655ff03c53df3c0

    What platforms do you use to access UI ?

    Windows

    What browsers do you use to access the UI ?

    Mozilla Firefox

    Command Line Arguments

    --api --lowvram --xformers --precision full --no-half --no-half-vae --always-batch-cond-uncond --disable-safe-unpickle
    

    Additional information, context and logs

    No response

    bug-report 
    opened by Userbingd 7
  • [Bug]: Generated parameters do not output correct image dimensions if highres is enabled

    [Bug]: Generated parameters do not output correct image dimensions if highres is enabled

    Is there an existing issue for this?

    • [X] I have searched the existing issues and checked the recent builds/commits

    What happened?

    When an image is output, the windows to the right has the image and parameter info below. If the output doesnot use highres fix, the dimensions are correct. If highres is enabled, the dimensions do not take the upscaling value into consideration.

    An image at 768x768 with highres scale of 2 outputs an image of 1536x1536:

    image

    But the info still says 768x768:

    image

    This error also translates to the info written into the sidecar text file:

    epic ( poster ) of ( Multiple mirage cities with floating islands :1.2), professional ( Gothic genre:0.5), ( MTV Green Sky style:0.5), Gleeful mood, best, astonishing, impressive, outstanding, stunning, gorgeous, much detail, much wow, global dynamic lighting, cinematic, perfect, detailed textures, masterpiece
    Negative prompt: logo, text,watermark, istock, shutterstock, getty, alamy, dreamstime, yayimages,adobe stock,signature,icon,Neg_FaceLift768,NegLowRes- 1000 , neg_Colorizer768-neutral,NegMutation-2000,no_unrealistic768
    Steps: 10, Sampler: DPM++ SDE Karras, CFG scale: 9.5, Seed: 3950843744, Size: 768x768, Model hash: 4bdfc29c, Model: v2-1_768-ema-pruned, Denoising strength: 0.7, Eta: 0.89, Hires upscale: 2, Hires upscaler: Latent, aesthetic_score: 6.7
    
    

    and the PNG info:

    image

    Without highres enabled, dimensions are correct.

    image

    Steps to reproduce the problem

    1. Enable highres. fix
    2. Create an image
    3. Look at the parameter info output for image dimensions

    What should have happened?

    Dimensions should be accurate. The fix is likely to take the height and width and multiply it by the scaling amount if highres is enabled.

    Commit where the problem happens

    3e22e294135ed0327ce9d9738655ff03c53df3c0

    What platforms do you use to access UI ?

    Windows

    What browsers do you use to access the UI ?

    Mozilla Firefox

    Command Line Arguments

    N/A
    

    Additional information, context and logs

    No response

    bug-report 
    opened by tusharbhutt 0
  • [Feature Request]: Img2Img: Button to reset output dimensions to Source Image dimensions.

    [Feature Request]: Img2Img: Button to reset output dimensions to Source Image dimensions.

    Is there an existing issue for this?

    • [X] I have searched the existing issues and checked the recent builds/commits

    What would your feature do ?

    I would like a button in Img2Img (as well as inpainting, perhaps this moreso) to reset the output dimensions to the dimensions of the Source Image. I don't always actually want to scale/crop the image in these UIs, and this would make that simpler (at this time, if I much with anything, I have to go back and inspect the original image to sort it all out).

    An additional component to this feature that would be handy would be a "Lock Aspect Ratio" checkbox. The behaviour of which would be such that updating one dimension would automatically update the other to maintain the aspect ratio.

    Proposed workflow

    Programmatically: On focus of either dimension fields check if "Preserve Aspect Ratio" is checked, if so, calculate current aspect ration and bind a handler to field update to update the opposite field, if not, debind handler of bound, do nothing.

    The Reload Source Dimensions button should bypass the update handler.

    Additional information

    No response

    opened by thebeline 0
  • [Bug]: New Latent HRfix upscalers fail when using inpainting models

    [Bug]: New Latent HRfix upscalers fail when using inpainting models

    Is there an existing issue for this?

    • [X] I have searched the existing issues and checked the recent builds/commits

    What happened?

    when using an inpainting model with txt2img functions, the new HRfix "latent" and "latent (nearest)" upscalers crash with a runtimeerror

    Traceback (most recent call last):
      File "D:\storage\stable-diffusion-webui\modules\call_queue.py", line 45, in f
        res = list(func(*args, **kwargs))
      File "D:\storage\stable-diffusion-webui\modules\call_queue.py", line 28, in f
        res = func(*args, **kwargs)
      File "E:\storage\stable-diffusion-webui\modules\txt2img.py", line 49, in txt2img
        processed = process_images(p)
      File "E:\storage\stable-diffusion-webui\modules\processing.py", line 471, in process_images
        res = process_images_inner(p)
      File "E:\storage\stable-diffusion-webui\modules\processing.py", line 576, in process_images_inner
        samples_ddim = p.sample(conditioning=c, unconditional_conditioning=uc, seeds=seeds, subseeds=subseeds, subseed_strength=p.subseed_strength, prompts=prompts)
      File "E:\storage\stable-diffusion-webui\modules\processing.py", line 759, in sample
        samples = self.sampler.sample_img2img(self, samples, noise, conditioning, unconditional_conditioning, steps=self.steps, image_conditioning=image_conditioning)
      File "E:\storage\stable-diffusion-webui\modules\sd_samplers.py", line 503, in sample_img2img
        samples = self.launch_sampling(t_enc + 1, lambda: self.func(self.model_wrap_cfg, xi, extra_args={
      File "E:\storage\stable-diffusion-webui\modules\sd_samplers.py", line 439, in launch_sampling
        return func()
      File "E:\storage\stable-diffusion-webui\modules\sd_samplers.py", line 503, in <lambda>
        samples = self.launch_sampling(t_enc + 1, lambda: self.func(self.model_wrap_cfg, xi, extra_args={
      File "D:\storage\stable-diffusion-webui\venv\lib\site-packages\torch\autograd\grad_mode.py", line 27, in decorate_context
        return func(*args, **kwargs)
      File "E:\storage\stable-diffusion-webui\repositories\k-diffusion\k_diffusion\sampling.py", line 145, in sample_euler_ancestral
        denoised = model(x, sigmas[i] * s_in, **extra_args)
      File "D:\storage\stable-diffusion-webui\venv\lib\site-packages\torch\nn\modules\module.py", line 1130, in _call_impl
        return forward_call(*input, **kwargs)
      File "E:\storage\stable-diffusion-webui\modules\sd_samplers.py", line 337, in forward
        x_out = self.inner_model(x_in, sigma_in, cond={"c_crossattn": [cond_in], "c_concat": [image_cond_in]})
      File "D:\storage\stable-diffusion-webui\venv\lib\site-packages\torch\nn\modules\module.py", line 1130, in _call_impl
        return forward_call(*input, **kwargs)
      File "E:\storage\stable-diffusion-webui\repositories\k-diffusion\k_diffusion\external.py", line 112, in forward
        eps = self.get_eps(input * c_in, self.sigma_to_t(sigma), **kwargs)
      File "E:\storage\stable-diffusion-webui\repositories\k-diffusion\k_diffusion\external.py", line 138, in get_eps
        return self.inner_model.apply_model(*args, **kwargs)
      File "E:\storage\stable-diffusion-webui\repositories\stable-diffusion-stability-ai\ldm\models\diffusion\ddpm.py", line 858, in apply_model
        x_recon = self.model(x_noisy, t, **cond)
      File "D:\storage\stable-diffusion-webui\venv\lib\site-packages\torch\nn\modules\module.py", line 1130, in _call_impl
        return forward_call(*input, **kwargs)
      File "E:\storage\stable-diffusion-webui\repositories\stable-diffusion-stability-ai\ldm\models\diffusion\ddpm.py", line 1331, in forward
        xc = torch.cat([x] + c_concat, dim=1)
    RuntimeError: Sizes of tensors must match except in dimension 1. Expected size 128 but got size 64 for tensor number 1 in the list.
    

    Steps to reproduce the problem

    1. Choose an inpainting model (runwayML 1.5, stabilityAI 2.0, etc)
    2. Go to txt2img tab
    3. Enable HRfix, select latent/latent (nearest) upscaler
    4. receive traceback

    What should have happened?

    probably shouldn't have crashed and instead resulted in an upscaled image; inpainting models can generate new images from nothing too y'know ;)

    Commit where the problem happens

    https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/ef27a18b6b7cb1a8eebdc9b2e88d25baf2c2414d

    What platforms do you use to access UI ?

    Windows, MacOS

    What browsers do you use to access the UI ?

    Mozilla Firefox, Google Chrome

    Command Line Arguments

    --ckpt-dir C:\stable diffusion models --gfpgan-model GFPGANv1.4.pth --listen --autolaunch  --xformers --api --enable-insecure-extension-access --cors-allow-origins=http://127.0.0.1:3456,http://localhost:3456,https://zero01101.github.io,http://localhost:7860,http://192.168.120.20:3456
    

    Additional information, context and logs

    seems the final text of the error message (different tensor counts, though) was previously mentioned in https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/4446 but not regarding inpainting models, rather specifically mentioning non-square aspect ratios

    bug-report 
    opened by zero01101 0
Owner
null
GPU-ready Dockerfile to run the Stability.AI stable-diffusion model with a simple web interface

A friend of mine working in art/design wanted to try out Stable Diffusion on his own GPU-equipped PC, but he doesn't know much about coding, so I thou

Nicolò Lucchesi 179 Jan 7, 2023
🖼 ️A Gradio app to remove the background from an image

title emoji colorFrom colorTo sdk sdk_version app_file pinned Background Remover ??️ ✂️ blue red gradio 2.9.4 app.py false background-remover A Gradio

Nathan Raw 2 Sep 10, 2022
Diffusion attentive attribution maps for interpreting Stable Diffusion.

What the DAAM: Interpreting Stable Diffusion Using Cross Attention Caveat: the codebase is in a bit of a mess. I plan to continue refactoring and poli

Castorini 222 Dec 26, 2022
This short script will grab the current list of sd-concepts-library/stable-diffusion-conceptualizer concepts and drop them into a directory you specify

sd-concepts-library-stable-diffusion-conceptualizer-getter This short script will grab the current list of sd-concepts-library/stable-diffusion-concep

null 5 Nov 29, 2022
Experimental utilities, extensions, and frontend interfaces for the diffusers library (stable-diffusion)

g-diffuser-lib - Experimental utilities, extensions, and frontend interfaces for the diffusers library (stable-diffusion) Step 27/2022 Update - Just t

Christopher Friesen 239 Jan 7, 2023
Dreambooth implementation based on Stable Diffusion with minimal code.

Stable DreamBooth This is an implementation of DreamBooth based on Stable Diffusion. Results Dreambooth results from original paper: The reproduced re

Zhenhuan Liu 125 Jan 3, 2023
Qt based Linux/Windows GUI for Stable Diffusion

sd-dreamer Qt based Linux/Windows GUI for Stable Diffusion. Requires NVIDIA GPU Features txt2img, img2img, inpainting, paint app for img2img, upscalin

null 31 Nov 23, 2022
Simple prompt generator for Midjourney, DALLe, Stable and Disco Diffusion, and etc.

Simple Prompt Generator Simple prompt generation script for Midjourney, DALLe, Stable and Disco diffusion and etc neural networks. Quick start Downloa

Артём Голуб 51 Dec 30, 2022
Runs the official Stable Diffusion release in a Docker container.

Stable Diffusion in Docker Runs the official Stable Diffusion v1.4 release on Huggingface in a GPU accelerated Docker container. ./build.sh run 'An im

null 281 Jan 4, 2023
A set of scripts I use with stable diffusion.

the Artificial Artist Set-up Dependencies Let's install the dependencies in a fresh conda environment: conda create --name artist python conda activat

Nestor Demeure 1 Aug 26, 2022
a qqbot with stable-diffusion-docker-service

stable-diffusion-qqbot 一个支持中文的stable-diffusion文字生成图像机器人,需要在部署docker版本的stable-diffusion时挂载模型进去 如何部署 下载stable-diffusion的模型文件,参见 https://github.com/CompV

lxj616 48 Nov 21, 2022
Copy these files to your stable-diffusion to enable text-inversion

sd-enable-textual-inversion Copy the files into your stable-diffusion folder to enable text-inversion in the Web UI. If you experience any problems wi

null 736 Jan 5, 2023
Playing around with stable diffusion

Playing around with stable diffusion. Generated images are reproducible because I save the metadata and latent information. You can generate and then later interpolate between the images of your choice.

Aleksa Gordić 175 Jan 8, 2023
A bridge between Blender and Stable Diffusion for the purposes of creating AI generated textures.

Cozy-Auto-Texture A bridge between Blender and Stable Diffusion for the purposes of creating AI generated textures. The purpose of this repository is

Torrin Leonard 68 Dec 22, 2022
Simple Discord bot for local installations of the public release of Stable Diffusion 1.4 on Windows

G-Diffuser-Bot G-Diffuser-Bot is a simple, compact Discord bot for local installations of the public release of Stable-Diffusion (https://github.com/C

null 238 Jan 5, 2023
Create 🔥 videos with Stable Diffusion by exploring the latent space and morphing between text prompts

stable-diffusion-videos Try it yourself in Colab: Example - morphing between "blueberry spaghetti" and "strawberry spaghetti" berry_good_spaghetti.2.m

Nathan Raw 1.8k Jan 2, 2023
A daemon which watches a queue and runs stable diffusion.

stablediffusiond A daemon which watches for messages on RabbitMQ and runs Stable Diffusion No hot loading - Model stored in RAM (10GB~) for faster pro

joe 20 Nov 29, 2022
AI imagined images. Pythonic generation of stable diffusion images.

ImaginAIry ?? ?? AI imagined images. Pythonic generation of stable diffusion images. "just works" on Linux and OSX(M1). Examples >> pip install imagin

Bryce Drennan 1.6k Jan 9, 2023