2022-09-20 23:49:50 +00:00
< div align = "center" >
2022-09-17 14:24:56 +00:00
2022-09-20 23:49:50 +00:00
# InvokeAI: A Stable Diffusion Toolkit
2022-09-17 14:24:56 +00:00
2022-10-10 14:03:55 +00:00
_Formally known as lstein/stable-diffusion_
2022-09-03 14:56:06 +00:00
2022-09-17 14:24:56 +00:00
![project logo ](docs/assets/logo.png )
2022-09-17 22:28:26 +00:00
[![discord badge]][discord link]
2022-09-17 14:24:56 +00:00
[![latest release badge]][latest release link] [![github stars badge]][github stars link] [![github forks badge]][github forks link]
[![CI checks on main badge]][CI checks on main link] [![CI checks on dev badge]][CI checks on dev link] [![latest commit to dev badge]][latest commit to dev link]
[![github open issues badge]][github open issues link] [![github open prs badge]][github open prs link]
2022-09-21 07:29:02 +00:00
[CI checks on dev badge]: https://flat.badgen.net/github/checks/invoke-ai/InvokeAI/development?label=CI%20status%20on%20dev& cache=900& icon=github
[CI checks on dev link]: https://github.com/invoke-ai/InvokeAI/actions?query=branch%3Adevelopment
[CI checks on main badge]: https://flat.badgen.net/github/checks/invoke-ai/InvokeAI/main?label=CI%20status%20on%20main& cache=900& icon=github
2022-10-08 13:32:06 +00:00
[CI checks on main link]: https://github.com/invoke-ai/InvokeAI/actions/workflows/test-invoke-conda.yml
2022-09-27 19:10:48 +00:00
[discord badge]: https://flat.badgen.net/discord/members/ZmtBAhwWhy?icon=discord
2022-09-20 23:49:50 +00:00
[discord link]: https://discord.gg/ZmtBAhwWhy
2022-09-21 07:29:02 +00:00
[github forks badge]: https://flat.badgen.net/github/forks/invoke-ai/InvokeAI?icon=github
2022-09-21 21:09:29 +00:00
[github forks link]: https://useful-forks.github.io/?repo=invoke-ai%2FInvokeAI
2022-09-21 07:29:02 +00:00
[github open issues badge]: https://flat.badgen.net/github/open-issues/invoke-ai/InvokeAI?icon=github
[github open issues link]: https://github.com/invoke-ai/InvokeAI/issues?q=is%3Aissue+is%3Aopen
[github open prs badge]: https://flat.badgen.net/github/open-prs/invoke-ai/InvokeAI?icon=github
[github open prs link]: https://github.com/invoke-ai/InvokeAI/pulls?q=is%3Apr+is%3Aopen
[github stars badge]: https://flat.badgen.net/github/stars/invoke-ai/InvokeAI?icon=github
[github stars link]: https://github.com/invoke-ai/InvokeAI/stargazers
[latest commit to dev badge]: https://flat.badgen.net/github/last-commit/invoke-ai/InvokeAI/development?icon=github& color=yellow& label=last%20dev%20commit& cache=900
[latest commit to dev link]: https://github.com/invoke-ai/InvokeAI/commits/development
[latest release badge]: https://flat.badgen.net/github/release/invoke-ai/InvokeAI/development?icon=github
[latest release link]: https://github.com/invoke-ai/InvokeAI/releases
2022-09-17 14:24:56 +00:00
< / div >
2022-08-30 19:40:56 +00:00
2022-10-09 15:38:39 +00:00
This is a fork of
[CompVis/stable-diffusion ](https://github.com/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
2022-10-09 20:48:50 +00:00
GPU cards with as little as 4 GB of RAM. It provides both a polished
2022-10-10 14:03:55 +00:00
Web interface (see below), and an easy-to-use command-line interface.
< div align = "center" > < img src = "docs/assets/invoke-web-server-1.png" width = 640 > < / div >
2022-09-11 16:58:06 +00:00
_Note: This fork is rapidly evolving. Please use the
2022-09-21 07:29:02 +00:00
[Issues ](https://github.com/invoke-ai/InvokeAI/issues ) tab to report bugs and make feature
2022-09-15 14:53:41 +00:00
requests. Be sure to use the provided templates. They will help aid diagnose issues faster._
2022-09-17 14:24:56 +00:00
## Table of Contents
2022-09-02 21:54:55 +00:00
2022-09-11 15:52:43 +00:00
1. [Installation ](#installation )
2022-09-15 14:53:41 +00:00
2. [Hardware Requirements ](#hardware-requirements )
3. [Features ](#features )
4. [Latest Changes ](#latest-changes )
5. [Troubleshooting ](#troubleshooting )
6. [Contributing ](#contributing )
7. [Contributors ](#contributors )
8. [Support ](#support )
9. [Further Reading ](#further-reading )
2022-09-17 14:24:56 +00:00
### Installation
2022-08-30 03:15:49 +00:00
2022-09-15 14:53:41 +00:00
This fork is supported across multiple platforms. You can find individual installation instructions
below.
2022-08-26 06:17:14 +00:00
2022-09-17 14:24:56 +00:00
- #### [Linux ](docs/installation/INSTALL_LINUX.md )
2022-08-26 06:17:14 +00:00
2022-09-17 14:24:56 +00:00
- #### [Windows ](docs/installation/INSTALL_WINDOWS.md )
2022-08-26 02:57:30 +00:00
2022-09-17 14:24:56 +00:00
- #### [Macintosh ](docs/installation/INSTALL_MAC.md )
2022-09-15 14:53:41 +00:00
2022-09-17 14:24:56 +00:00
### Hardware Requirements
2022-08-28 20:14:29 +00:00
2022-09-17 14:24:56 +00:00
#### System
2022-08-28 20:14:29 +00:00
2022-09-11 15:52:43 +00:00
You wil need one of the following:
2022-08-28 20:14:29 +00:00
2022-09-11 16:58:06 +00:00
- An NVIDIA-based graphics card with 4 GB or more VRAM memory.
2022-09-11 15:52:43 +00:00
- An Apple computer with an M1 chip.
2022-08-28 20:14:29 +00:00
2022-09-17 14:24:56 +00:00
#### Memory
2022-08-28 20:14:29 +00:00
2022-09-11 15:52:43 +00:00
- At least 12 GB Main Memory RAM.
2022-08-28 20:14:29 +00:00
2022-09-17 14:24:56 +00:00
#### Disk
2022-08-26 03:19:17 +00:00
2022-09-11 15:52:43 +00:00
- At least 6 GB of free disk space for the machine learning model, Python, and all its dependencies.
2022-08-26 02:57:30 +00:00
2022-10-01 18:06:00 +00:00
**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.
2022-08-26 02:57:30 +00:00
2022-09-17 17:56:25 +00:00
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'
2022-10-08 13:32:06 +00:00
you can try starting `invoke.py` with the `--precision=float32` flag:
2022-08-25 13:47:27 +00:00
2022-09-15 14:53:41 +00:00
```bash
2022-10-08 13:32:06 +00:00
(ldm) ~/stable-diffusion$ python scripts/invoke.py --precision=float32
2022-08-28 20:14:29 +00:00
```
2022-08-23 05:58:47 +00:00
2022-09-17 14:24:56 +00:00
### Features
2022-08-28 20:14:29 +00:00
2022-09-17 14:24:56 +00:00
#### Major Features
2022-08-23 22:26:28 +00:00
2022-10-09 15:38:39 +00:00
- [Web Server ](docs/features/WEB.md )
2022-09-17 14:24:56 +00:00
- [Interactive Command Line Interface ](docs/features/CLI.md )
- [Image To Image ](docs/features/IMG2IMG.md )
- [Inpainting Support ](docs/features/INPAINTING.md )
2022-09-21 06:44:46 +00:00
- [Outpainting Support ](docs/features/OUTPAINTING.md )
refactor how postprocessors work
- similar call structures for outpainting, outcropping and face restoration modules
- added documentation for outcropping
- post-processing steps now leave a provenance chain (of sorts) in the sd-metadata field:
~~~
scripts/sd-metadata.py outputs/img-samples/curly.942491079.upscale.png
outputs/img-samples/curly.942491079.upscale.png:
{
"model": "stable diffusion",
"model_id": "stable-diffusion-1.4",
"model_hash": "fe4efff1e174c627256e44ec2991ba279b3816e364b49f9be2abc0b3ff3f8556",
"app_id": "lstein/stable-diffusion",
"app_version": "v1.15",
"image": {
"height": 512,
"width": 512,
"steps": 50,
"cfg_scale": 7.5,
"seed": 942491079,
"prompt": [
{
"prompt": "pretty curly-haired redhead woman",
"weight": 1.0
}
],
"postprocessing": [
{
"tool": "outcrop",
"dream_command": "!fix \"test-pictures/curly.png\" -s 50 -S 942491079 -W 512 -H 512 -C 7.5 -A k_lms -c top 64 right 64"
},
{
"tool": "gfpgan",
"dream_command": "!fix \"outputs/img-samples/curly.942491079.outcrop-02.png\" -s 50 -S 942491079 -W 512 -H 512 -C 7.5 -A k_lms -G 0.8"
},
{
"tool": "upscale",
"dream_command": "!fix \"outputs/img-samples/curly.942491079.gfpgan.png\" -s 50 -S 942491079 -W 512 -H 512 -C 7.5 -A k_lms -U 4.0 0.75"
}
],
"sampler": "k_lms",
"variations": [],
"type": "txt2img"
}
}
~~~
2022-10-03 20:53:12 +00:00
- [Upscaling, face-restoration and outpainting ](docs/features/POSTPROCESS.md )
2022-09-17 14:24:56 +00:00
- [Seamless Tiling ](docs/features/OTHER.md#seamless-tiling )
- [Google Colab ](docs/features/OTHER.md#google-colab )
2022-09-18 13:50:19 +00:00
- [Reading Prompts From File ](docs/features/PROMPTS.md#reading-prompts-from-a-file )
2022-09-17 14:24:56 +00:00
- [Shortcut: Reusing Seeds ](docs/features/OTHER.md#shortcuts-reusing-seeds )
2022-10-05 14:08:56 +00:00
- [Prompt Blending ](docs/features/PROMPTS.md#prompt-blending )
2022-09-18 00:35:48 +00:00
- [Thresholding and Perlin Noise Initialization Options ](/docs/features/OTHER.md#thresholding-and-perlin-noise-initialization-options )
2022-09-18 13:50:19 +00:00
- [Negative/Unconditioned Prompts ](docs/features/PROMPTS.md#negative-and-unconditioned-prompts )
2022-09-17 14:24:56 +00:00
- [Variations ](docs/features/VARIATIONS.md )
- [Personalizing Text-to-Image Generation ](docs/features/TEXTUAL_INVERSION.md )
- [Simplified API for text to image generation ](docs/features/OTHER.md#simplified-api )
2022-08-23 22:26:28 +00:00
2022-09-17 14:24:56 +00:00
#### Other Features
2022-08-23 22:26:28 +00:00
2022-09-17 14:24:56 +00:00
- [Creating Transparent Regions for Inpainting ](docs/features/INPAINTING.md#creating-transparent-regions-for-inpainting )
- [Preload Models ](docs/features/OTHER.md#preload-models )
2022-08-23 22:26:28 +00:00
2022-09-17 14:24:56 +00:00
### Latest Changes
2022-08-21 23:57:48 +00:00
2022-10-09 20:36:00 +00:00
- 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`
2022-10-09 22:41:57 +00:00
- Support for < a href = "https://github.com/invoke-ai/InvokeAI/blob/main/docs/features/INPAINTING.md" > inpainting</ a > and < a href = "https://github.com/invoke-ai/InvokeAI/blob/main/docs/features/OUTPAINTING.md" > outpainting</ a >
2022-10-09 20:36:00 +00:00
- img2img runs on all k* samplers
2022-10-09 22:43:09 +00:00
- Support for < a href = "https://github.com/invoke-ai/InvokeAI/blob/main/docs/features/PROMPTS.md#negative-and-unconditioned-prompts" > negative prompts</ a >
2022-10-09 20:36:00 +00:00
- Support for CodeFormer face reconstruction
- Support for Textual Inversion on Macintoshes
2022-10-09 22:41:57 +00:00
- Support in both WebGUI and CLI for < a href = "https://github.com/invoke-ai/InvokeAI/blob/main/docs/features/POSTPROCESS.md" > post-processing of previously-generated images</ a >
2022-10-09 20:36:00 +00:00
using facial reconstruction, ESRGAN upscaling, outcropping (similar to DALL-E infinite canvas),
and "embiggen" upscaling. See the `!fix` command.
2022-10-09 22:41:57 +00:00
- New `--hires` option on `invoke>` line allows < a href = "https://github.com/invoke-ai/InvokeAI/blob/main/docs/features/CLI.m#this-is-an-example-of-txt2img" > larger images to be created without duplicating elements</ a > , at the cost of some performance.
2022-10-09 20:39:36 +00:00
- New `--perlin` and `--threshold` options allow you to add and control variation
2022-10-09 22:43:09 +00:00
during image generation (see < a href = "https://github.com/invoke-ai/InvokeAI/blob/main/docs/features/OTHER.md#thresholding-and-perlin-noise-initialization-options" > Thresholding and Perlin Noise Initialization< / a >
2022-10-09 20:36:00 +00:00
- 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.
2022-10-09 22:44:31 +00:00
- Improved < a href = "https://github.com/invoke-ai/InvokeAI/blob/main/docs/features/CLI.m" > command-line completion behavior</ a > .
New commands added:
2022-10-09 20:36:00 +00:00
* List command-line history with `!history`
* Search command-line history with `!search`
* Clear history with `!clear`
2022-10-08 13:32:06 +00:00
- Deprecated `--full_precision` / `-F` . Simply omit it and `invoke.py` will auto
2022-09-17 17:56:25 +00:00
configure. To switch away from auto use the new flag like `--precision=float32` .
2022-09-11 16:58:06 +00:00
- v1.14 (11 September 2022)
2022-09-03 17:46:29 +00:00
2022-09-11 16:58:06 +00:00
- Memory optimizations for small-RAM cards. 512x512 now possible on 4 GB GPUs.
- Full support for Apple hardware with M1 or M2 chips.
2022-09-15 14:53:41 +00:00
- Add "seamless mode" for circular tiling of image. Generates beautiful effects.
([prixt](https://github.com/prixt)).
2022-09-11 16:58:06 +00:00
- Inpainting support.
- Improved web server GUI.
- Lots of code and documentation cleanups.
2022-09-03 17:46:29 +00:00
- v1.13 (3 September 2022
2022-08-29 22:55:56 +00:00
2022-09-15 14:53:41 +00:00
- Support image variations (see [VARIATIONS ](docs/features/VARIATIONS.md )
([Kevin Gibbons](https://github.com/bakkot) and many contributors and reviewers)
- Supports a Google Colab notebook for a standalone server running on Google hardware
[Arturo Mendivil ](https://github.com/artmen1516 )
- WebUI supports GFPGAN/ESRGAN facial reconstruction and upscaling
[Kevin Gibbons ](https://github.com/bakkot )
- WebUI supports incremental display of in-progress images during generation
[Kevin Gibbons ](https://github.com/bakkot )
- A new configuration file scheme that allows new models (including upcoming
stable-diffusion-v1.5) to be added without altering the code.
([David Wager](https://github.com/maddavid12))
2022-10-08 13:32:06 +00:00
- Can specify --grid on invoke.py command line as the default.
2022-08-29 16:58:48 +00:00
- Miscellaneous internal bug and stability fixes.
2022-09-03 14:56:06 +00:00
- Works on M1 Apple hardware.
- Multiple bug fixes.
2022-08-29 16:58:48 +00:00
2022-09-15 14:53:41 +00:00
For older changelogs, please visit the ** [CHANGELOG ](docs/features/CHANGELOG.md )**.
2022-08-30 19:40:56 +00:00
2022-09-17 14:24:56 +00:00
### Troubleshooting
2022-08-17 02:49:47 +00:00
2022-09-15 14:53:41 +00:00
Please check out our ** [Q&A ](docs/help/TROUBLESHOOT.md )** to get solutions for common installation
problems and other issues.
2022-08-30 03:08:04 +00:00
2022-09-11 15:52:43 +00:00
# Contributing
2022-09-08 11:34:03 +00:00
2022-09-15 14:53:41 +00:00
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 ](https://opensource.com/article/19/7/create-pull-request-github ).
2022-09-08 11:34:03 +00:00
2022-09-15 14:53:41 +00:00
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.
2022-09-03 14:56:06 +00:00
2022-09-17 14:24:56 +00:00
### Contributors
2022-09-03 14:56:06 +00:00
2022-09-15 14:53:41 +00:00
This fork is a combined effort of various people from across the world.
[Check out the list of all these amazing people ](docs/other/CONTRIBUTORS.md ). We thank them for
their time, hard work and effort.
2022-09-03 14:56:06 +00:00
2022-09-17 14:24:56 +00:00
### Support
2022-08-17 01:34:37 +00:00
2022-09-15 14:53:41 +00:00
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.
2022-08-17 01:34:37 +00:00
2022-09-15 14:53:41 +00:00
Original portions of the software are Copyright (c) 2020
[Lincoln D. Stein ](https://github.com/lstein )
2022-08-24 13:31:17 +00:00
2022-09-17 14:24:56 +00:00
### Further Reading
2022-08-24 13:31:17 +00:00
2022-09-15 14:53:41 +00:00
Please see the original README for more information on this software and underlying algorithm,
located in the file [README-CompViz.md ](docs/other/README-CompViz.md ).