Go to file
Matthias Wild 44ff8f8531
squash merge update-gh-actions into fix-gh-actions
* fix mkdocs deployment

* update path to python bin

* add trigger for current branch

* change path to python_bin for mac as well

* try to use setup-python@v4 instead of setting env

* remove setup conda action

* try to use $CONDA

* remove overseen action

* change branch from master to main

* sort out if then else for faster syntax

* remove more if functions

* add updates to create-caches as well

* eliminate the rest of if functions

* try to unpin pytorch and torchvision

* restore pinned versions

* try switching from set-output to use env

* update test-invoke-conda as well

* fix env var creation

* quote variable

* add second equal to compare

* try another way to use outputs

* fix outputs

* pip install for mac before creating conda env

* fix output variable

* fix python bin path

* remove pip install for before creating conda env

* unpin streamlit version in conda mac env

* try to make git-workflows better readable

* remove 4gotten trigger

* Update-gh-actions (#6)

* fix mkdocs deployment

* update path to python bin

* add trigger for current branch

* change path to python_bin for mac as well

* try to use setup-python@v4 instead of setting env

* remove setup conda action

* try to use $CONDA

* remove overseen action

* change branch from master to main

* sort out if then else for faster syntax

* remove more if functions

* add updates to create-caches as well

* eliminate the rest of if functions

* try to unpin pytorch and torchvision

* restore pinned versions

* try switching from set-output to use env

* update test-invoke-conda as well

* fix env var creation

* quote variable

* add second equal to compare

* try another way to use outputs

* fix outputs

* pip install for mac before creating conda env

* fix output variable

* fix python bin path

* remove pip install for before creating conda env

* unpin streamlit version in conda mac env

* try to make git-workflows better readable

* use macos-latest

* try to update conda before creating mac env

* better conda update trial

* re-pin streamlit version

* re-added trigger to run workflow in current branch

* try to find out if conda mac env could be updated

* install cmake, protobuf and rust b4 conda

* add yes to conda update

* lets try anaconda3-2022.05

* try environment.yml for mac as well

* reenable conda mac env, add pip install
also fix gitignore by changing from dream to invoke

* remove
- unecesary virtualenv creation
- conda update

change != macos back to == linux

* remove cmake from brew install since pre-installed

* disable opencv-python pip requirement

* fixed commands to find latest package versions

* update requirements for mac env

* back to the roots - only install conda env
depending on runner_os with or without extra env variables

* check out macOS in azure-pipelines
since becoming kind of tired of the GitHub Runner which is broken as ...

* let's try to setup python and update conda env

* initialize conda before using it

* add trigger in azure-pipelines.yml

* And another go for update first ....

* update azure-pipelines.yml
- add caching
- add checkpoint download
- add paths to trigger
and more

* unquote checkpoint-url

* fix chekpoint-url variable

* mkdir before downloading model

* set pr trigger to main, rename anaconda cache

* unique cacheHitVariables

* try to use macos-latest instead of macos-12

* update test-invoke-conda.yml:
- remove unecesarry echo step
- use s-weigand/setup-conda@v1
- remove conda update from install deps step since updated with action

* update test-invoke-conda.yml:
- rename conda env cache from ldm to invokeai
- reorder steps:
  1. checkout sources
  2. setup python
  3. setup conda
  4. keep order after set platform variables

* change macos back to 12 since also fails with 11

* update condition in run the tests
make difference between main or not main

* fix path to cache invokeai conda env

* fix invokeai conda env cache path

* update mkdocs-flow.yml

* change conda-channel priority

* update create-caches

* update conda env also when cache was used

* os dependend conda env cache path

* use existing CONDA env pointing to conda root

* create CONDA_ROOT output from $CONDA

* use output variable to define test prompts

* use setup-python v4, get rid of PYTHON_BIN env

* add runner.os to result artifacts name

* update test-invoke-conda.yml:
- reuse macos-latest
- disable setup python 3.9
- setup conda with default python version
- create or update conda environment depending on cache success
- remove name parameter from conda update since name is set in env yml

* improve mkdocs-flow.yml

* disable cache-hugginface-torch
since preload_models.py downloads to more than one location

* update mkdocs-flow.yml with new name

* rename mkdocs action to mkdocs-material

* try to ignore error when creating conda env
maybe it would still be usable, lets see ;P

* remove bloat

* update environment-mac.yml
to match dependencies of invoke-ai/InvokeAI's main branch

* disable conda update, tweak prompt condition

* try to set some env vars for macOS to fix conda

* stop ignoring error, use env instead of outputs

* tweak `[[` connditions

* update python and pip dependencie
makes a difference of 1 sec per itteration compared to 3.9!!!
also I see no reason why using a old pip version would be beneficial

* remove unecesarry env for macOS
everything was pre-tested on my MacBook Air 2020 with M1

* update conda env in setup step

* activate conda env after installation

* update test-invoke-conda.yml
- set conda env dependent on matrix.os
- set CONDA_ENV_NAME to prevent breaking action when renaming conda env
- fix conda env activation

* fix activate conda env

* set bash -l as default shell

* use action to activate conda env

* add conda env file to env activation

* try to replace s-weigeand with conda-incubator

* remove azure-pipelines.yml
funniest part is that the macos runner is the same as the one on github!

* include environment-file in matrix
- also disable auto-activate-base and auto-update-conda
- include macos-latest and macos-12 for debugging purpose
- set miniforge-version in matrix

* fix miniforge-variant, set fail-fast to false

* add step to setup miniconda
- make default shell a matrix variable
- remove bloat

* use a mac env yml without pinned versions

* unpin nomkl, pytorch and torchvision
also removed opencv-pyhton

* cache conda pkgs dir instead of conda env

* use python 3.10, exclude macos-12 from cache

* fix expression

* prepare for PR

* fix doubled id

* reuse pinned versions in mac conda env
- updated python pip version
- unpined pytorch and torchvision
- removed opencv-python
- updated versions to most recent (tested locally)

* fix classical copy/paste error

* remove unused env from shell-block comment

* fix hashFiles function to determine restore-keys

* reenable caching `~.cache`, update create-caches

* unpin all versions in mac conda env file
this was the only way I got it working in the action, also works locally
tested on MacBook Air 2020 M1
remove environment-mac-unpinned.yml

* prepare merge by removing this branch from trigger

* include pull_request trigger for main and dev

* remove pull_request trigger
2022-10-18 13:25:15 +02:00
.dev_scripts Replace --full_precision with --precision that works even if not specified 2022-09-20 17:08:00 -04:00
.github squash merge update-gh-actions into fix-gh-actions 2022-10-18 13:25:15 +02:00
assets fix CompViz assets 2022-09-18 00:13:45 +02:00
backend Fixes CORS handling 2022-10-08 11:57:18 -04:00
configs Get for external TI .bin files to work 2022-10-08 13:18:19 -04:00
data stable diffusion 2022-08-10 16:30:49 +02:00
docker-build Upgrade GFPGAN to Version 1.4 2022-09-24 05:09:45 -04:00
docs update precision info 2022-10-17 22:27:27 -04:00
frontend rebuild front end 2022-10-10 09:19:52 -04:00
ldm Update generate.py 2022-10-15 16:02:14 -04:00
models add configs for training unconditional/class-conditional ldms 2021-12-22 15:57:23 +01:00
notebooks fix(venv): rename 'ldm' -> 'invokeai' 2022-10-10 13:04:03 -04:00
scripts fix noisy images at high step counts 2022-10-14 16:19:45 -04:00
server rename all modules from ldm.dream to ldm.invoke 2022-10-08 11:37:23 -04:00
static * Changes for PR 2022-10-04 14:37:32 -04:00
tests Add back old dream.py as legacy_api.py 2022-10-12 20:35:56 -04:00
.gitattributes Update .gitattributes 2022-08-29 16:58:41 -05:00
.gitignore squash merge update-gh-actions into fix-gh-actions 2022-10-18 13:25:15 +02:00
.gitmodules remove src directory, which is gumming up conda installs; addresses issue #77 2022-08-25 10:43:05 -04:00
.prettierrc.yaml change printWidth for markdown files to 80 2022-09-17 02:23:00 +02:00
environment-mac.yml squash merge update-gh-actions into fix-gh-actions 2022-10-18 13:25:15 +02:00
environment.yml fix(venv): rename 'ldm' -> 'invokeai' 2022-10-10 13:04:03 -04:00
LICENSE adding license using GitHub template 2022-10-17 12:09:24 -04:00
LICENSE-ModelWeights.txt added assertion checks for out-of-bound arguments; added various copyright and license agreement files 2022-08-24 09:22:27 -04:00
main.py Textual Inversion for M1 2022-09-27 01:39:17 +02:00
mkdocs.yml more updates to many docs, including: 2022-10-11 21:41:52 -04:00
pyproject.toml.hide Fix Mac Issue #723 2022-09-21 13:42:47 -04:00
README.md fix prompt in README.md 2022-10-17 22:27:27 -04:00
requirements-lin-AMD.txt TOIL(pip): Refactor pip requirements across the board (#531) 2022-09-14 07:01:58 -04:00
requirements-lin-win-colab-CUDA.txt TOIL(pip): Refactor pip requirements across the board (#531) 2022-09-14 07:01:58 -04:00
requirements-linux-arm64.txt multiple fixes in response to preflight testing bug reports 2022-10-05 12:44:16 -04:00
requirements-mac-MPS-CPU.txt add realesrgan to requirements.txt, remove nightie for torch and torchvision due to performance issues 2022-10-08 12:01:45 -04:00
requirements-mkdocs.txt update requirements-mkdocs.txt 2022-09-19 08:38:46 +02:00
requirements.txt add realesrgan to requirements.txt, remove nightie for torch and torchvision due to performance issues 2022-10-08 12:01:45 -04:00
setup.py release candidate for InvokeAI 2.0 2022-10-04 23:05:40 -04:00
Stable_Diffusion_v1_Model_Card.md stable diffusion 2022-08-10 16:30:49 +02:00

InvokeAI: A Stable Diffusion Toolkit

Formally known as lstein/stable-diffusion

project logo

discord badge

latest release badge github stars badge github forks badge

CI checks on main badge CI checks on dev badge latest commit to dev badge

github open issues badge github open prs badge

This is a fork of CompVis/stable-diffusion, the open source text-to-image generator. It provides a streamlined process with various new features and options to aid the image generation process. It runs on Windows, Mac and Linux machines, with GPU cards with as little as 4 GB of RAM. It provides both a polished Web interface (see below), and an easy-to-use command-line interface.

Quick links: [Discord Server] [Documentation and Tutorials] [Code and Downloads] [Bug Reports] [Discussion, Ideas & Q&A]

Note: This fork is rapidly evolving. Please use the Issues tab to report bugs and make feature requests. Be sure to use the provided templates. They will help aid diagnose issues faster.

Table of Contents

  1. Installation
  2. Hardware Requirements
  3. Features
  4. Latest Changes
  5. Troubleshooting
  6. Contributing
  7. Contributors
  8. Support
  9. Further Reading

Installation

This fork is supported across multiple platforms. You can find individual installation instructions below.

Hardware Requirements

System

You wil need one of the following:

  • An NVIDIA-based graphics card with 4 GB or more VRAM memory.
  • An Apple computer with an M1 chip.

Memory

  • At least 12 GB Main Memory RAM.

Disk

  • At least 12 GB of free disk space for the machine learning model, Python, and all its dependencies.

Note

If you have a Nvidia 10xx series card (e.g. the 1080ti), please run the dream script in full-precision mode as shown below.

Similarly, specify full-precision mode on Apple M1 hardware.

Precision is auto configured based on the device. If however you encounter errors like 'expected type Float but found Half' or 'not implemented for Half' you can try starting invoke.py with the --precision=float32 flag:

(invokeai) ~/InvokeAI$ python scripts/invoke.py --precision=float32

Features

Major Features

Other Features

Latest Changes

  • v2.0.1 (13 October 2022)

    • fix noisy images at high step count when using k* samplers
    • dream.py script now calls invoke.py module directly rather than via a new python process (which could break the environment)
  • v2.0.0 (9 October 2022)

    • dream.py script renamed invoke.py. A dream.py script wrapper remains for backward compatibility.
    • Completely new WebGUI - launch with python3 scripts/invoke.py --web
    • Support for inpainting and outpainting
    • img2img runs on all k* samplers
    • Support for negative prompts
    • Support for CodeFormer face reconstruction
    • Support for Textual Inversion on Macintoshes
    • Support in both WebGUI and CLI for post-processing of previously-generated images using facial reconstruction, ESRGAN upscaling, outcropping (similar to DALL-E infinite canvas), and "embiggen" upscaling. See the !fix command.
    • New --hires option on invoke> line allows larger images to be created without duplicating elements, at the cost of some performance.
    • New --perlin and --threshold options allow you to add and control variation during image generation (see Thresholding and Perlin Noise Initialization
    • Extensive metadata now written into PNG files, allowing reliable regeneration of images and tweaking of previous settings.
    • Command-line completion in invoke.py now works on Windows, Linux and Mac platforms.
    • Improved command-line completion behavior. New commands added:
      • List command-line history with !history
      • Search command-line history with !search
      • Clear history with !clear
    • Deprecated --full_precision / -F. Simply omit it and invoke.py will auto configure. To switch away from auto use the new flag like --precision=float32.

For older changelogs, please visit the CHANGELOG.

Troubleshooting

Please check out our Q&A to get solutions for common installation problems and other issues.

Contributing

Anyone who wishes to contribute to this project, whether documentation, features, bug fixes, code cleanup, testing, or code reviews, is very much encouraged to do so. If you are unfamiliar with how to contribute to GitHub projects, here is a Getting Started Guide.

A full set of contribution guidelines, along with templates, are in progress, but for now the most important thing is to make your pull request against the "development" branch, and not against "main". This will help keep public breakage to a minimum and will allow you to propose more radical changes.

Contributors

This fork is a combined effort of various people from across the world. Check out the list of all these amazing people. We thank them for their time, hard work and effort.

Support

For support, please use this repository's GitHub Issues tracking service. Feel free to send me an email if you use and like the script.

Original portions of the software are Copyright (c) 2020 Lincoln D. Stein

Further Reading

Please see the original README for more information on this software and underlying algorithm, located in the file README-CompViz.md.