Commit Graph

350 Commits (master)

Author SHA1 Message Date
jaydrennan e91a041a78 refactor: removes unused model configs 6 months ago
Bryce f97f6a3b4b feature: use refiners library for generation
BREAKING CHANGE

  - stable diffusion 1.5 + inpainting working
  - self-attention guidance working. improves image generation quality
  - tile-mode working
  - inpainting self-attention guidance working

disable/broken features:
  - sd 1.4, 2.0, 2.1
  - most of the samplers
  - pix2pix edit
  - most of the controlnets
  - memory management
  - python 3.8 support

wip
6 months ago
Bryce 6cd519cdb2 refactor: move code to avoid conflicts with "http" namespace 8 months ago
Bryce 558d3388e5 style: speed up linting and autoformatting. fix lints 8 months ago
Bryce 8243ed616d fix: pydantic models for http server working now. Fixes #380 8 months ago
Bryce 7c2004bfcc feature/fix: migrate to pydantic 2.3
- test: add schema tests/fuzzer and fixes
 - fix default prompt. add tests
 - fix outpaint and controlnet defaults
 - fix init image strength defaults
9 months ago
Bryce 8e956f5360 feature: add some helper functions 9 months ago
Bryce f243006236 fix: allow tile_mode to be set to True or False for backward compatibility 9 months ago
Bryce 477d161c91 build: better communicate lack of support for Python 3.11 9 months ago
Bryce 82d74c6b49 feature: switch to pydantic models
- allow prompt re-use by deferring random seed
1 year ago
Bryce 3fb0dcd891 fix: hide log warning 1 year ago
Bryce c5c90df337 feature: fix debug level logging 1 year ago
Bryce 8ffb0fac0e fix: add routes to match stablestudio routes 1 year ago
Bryce edafcc5529 feature: show full stack trace on server error 1 year ago
Bryce 671aa86ad7 version: 13.0.0 1 year ago
Bryce 7b032c8e9a feature: StableStudio web interface
run `aimg server` and visit http://127.0.0.1:8000/
1 year ago
Bryce 8e28a2ed02 feature: API support for StableStudio 1 year ago
Bryce e53459a50a build: check for torch version at runtime (fixes #329) 1 year ago
Bryce 2a26495653 fix: package will not try to install xformers on `aarch64` machines.
While this will allow the dockerfile to build on MacOS M1, [torch will not be able to use the M1 when generating images.](https://github.com/pytorch/pytorch/issues/81224#issuecomment-1499741152)
1 year ago
Bryce 14739bc90b feature: api server (alpha)
`aimg run-api-server`

Proof of concept for now
1 year ago
Bryce 38ac0b7f54 tests: fix tests 1 year ago
Bryce 39dffa9166 style: lintfix 1 year ago
Bryce dc8f8d5a3d feature: add colorization controlnet. improve `aimg colorize` command 1 year ago
Bryce df25936d6f feature: automatic use of inpainting
feature disabled since controlnet inpainting doesn't work great. Was disabled by setting `inpaint_method="finetune",`
1 year ago
Bryce d32e1060cd feature: multi-controlnet support at the command line
add controlnet option for edit demo
1 year ago
Bryce bcaa000d35 fix: model logging 1 year ago
Bryce 926692ad03 tests: "prime" the controlnets
Trying to get things working on m1. doesn't fix everything
1 year ago
Bryce fb19e34acc fix: allow use of upscaler on mps device 1 year ago
Bryce 3b066f8e29 fix: don't hide error messages during upscale 1 year ago
Bryce eca97a25a0 tests: adjust tests to pass 1 year ago
Bryce 4c77fd376b feature: improvements to memory management
not thoroughly tested on low-memory devices
1 year ago
Bryce d5a276584b fix: move normal map code inline
Fixes conda package. Fixes #317
1 year ago
Bryce 3258af7e02 fix: use correct device for depth images on mps 1 year ago
Bryce 17f3541d57 version: 12.0.0 1 year ago
Bryce c9fccc1757 feature: add openjourney-v4 1 year ago
Bryce db8d3b74ea feature: add "detail" control mode.
Add details to an image. Great for upscaling an image.
1 year ago
Bryce b5356b143f feature: partial add of inpainting controlnet
todo: figure out how to input "mask" for this mode
1 year ago
Bryce 9526a85a71 feature: add "edit" control mode
Edit images using text instructions with any SD 1.5 based model. Similar to instructPix2Pix.
1 year ago
Bryce 476a81a967 feature: add "shuffle" control mode
Image is generated from elements of control image. similar to style transfer
1 year ago
Bryce 750d4f7ea8 docs: cleanup 1 year ago
Bryce 832adf27bc feature: update controlnets to 1.1
- smaller filesizes for the controlnet weights
- fix: works with other 1.5 based models
- enables more control modes getting added
1 year ago
Bryce 9a82dc5e4c fix: raw control images are now properly loaded. fixes #296 1 year ago
Bryce 765e607c2c fix: file numbers start after latest image, even if some previous images were deleted 1 year ago
Luke Pearson 94728d978e fix: changed sample to True to generate caption using blip model 1 year ago
Bryce 95d3d08d27 fix: better input image path handling
throw exception for non-existent images
1 year ago
Bryce 37d6642c83 fix: fix model downloads that were broken
by [library change in transformers 4.27.0](8f3b4a1d5b)
1 year ago
Bryce eb26d5a7c5 feature: add art-scene, desktop-background, interior-style, painting-style phraselists
fix: file globbing works in the interactive shell
feature: make compilation animations simple slide shows
1 year ago
Bryce 52044c1073 fix: use model appropriate composition size 1 year ago
Bryce 3b777b98d8 fix: improved large images using composition 1 year ago
Bryce a449fbd5e2 feature: remove tiling message for upscaler 1 year ago
Bryce 40da2b0357 tests: fix tests 1 year ago
Bryce dbc6a249a6 fix: k-diff samplers made more stable by skipping second to last step
https://github.com/crowsonkb/k-diffusion/issues/43#issuecomment-1305195666

See discussion here as well: https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/3483
1 year ago
Bryce 70c58467c0 fix: img2img was broken for all samplers except ddim,plms
img2img was broken for all samplers except plms and ddim when init image strength was >~0.25.  Been this way for a while. whoops
1 year ago
Bryce 28c294554b fix: specify name of imagine command 1 year ago
Bryce 8273ab2c26 feature: add `--fix-faces` options to `aimg upscale` command 1 year ago
Bryce d14c8f98f4 feature: `aimg model-list` command lists included models 1 year ago
Bryce e3b23584ed refactor: split up command line tool 1 year ago
Bryce c0fad5b2a3 fix: add missing alias 1 year ago
Bryce d5cff45bff feature: allow input of raw control images 1 year ago
Bryce 8f56e14dc7 feature: add system memory to debug output 1 year ago
Bryce d7e494241c fix: composition images were too blurry 1 year ago
cocktailpeanut be7f8f3c2a
feature: support additional metadata attributes (#271)
added `init-image-strength` and `model` so they can be fully displayed on png info inspectors or stable diffusion browsers such as https://breadboard.me
1 year ago
Bryce 9831d8a24a feature: `aimg colorize` attempts to use controlnet to colorize images 1 year ago
Bryce b261c62d4e docs: update docs 1 year ago
Bryce 54c3ad51d6 feature: controlnet 1 year ago
Bryce bcd761b8a6 tests: better coverage of cli commands
add "empty" model that just uses empty state for models
1 year ago
Bryce 1563e0b871 test: add some autoencoder tests
the fold-unfold encoding/decoding looks like it's slower and has worse seams than the sliced feathering approach
1 year ago
Bryce 929eff353e fix: edit was broken by recent changes 1 year ago
Bryce 5b1cded94f fix: compose phase for edits probably doesn't make sense 1 year ago
Bryce 6f749ac4b6 fix: create compilations dir as needed 1 year ago
Bryce 882cc7e0f1 feature: generate large images with coherent composition 1 year ago
Bryce c3a88c44cd perf: tiled encoding of images
The fold/unfold/split_input_params images didn't look good
1 year ago
Bryce 2aef6089e0 feature: generate large images
Added a composition stage so large images are more coherent
1 year ago
Bryce b93b6a4d7c perf: use silu instead of nonlinearity for speedup 1 year ago
Bryce 68e7fd73c5 perf: add xformers dependency 1 year ago
Bryce 003a512dc8 perf: mps perf improvement
attention slicing wasn't working
1 year ago
Bryce 66b28c80fc fix: images came out wrong if processed on mps 1 year ago
Bryce 8db73707ff perf: load model to gpu after making it "half" 1 year ago
Bryce 1c8893cecc fix: fix image gen retry 1 year ago
Bryce ea1d4baafe refactor: cleanup image generation code 1 year ago
Bryce 8a97213622 feature: sliced latent decoding
allows generation of bigger images. tile seams can be noticeable occasionally despite the feathering
1 year ago
Bryce da70b310d5 fix: edit interface was broken 1 year ago
Bryce eeb80f81aa docs: update changelog 1 year ago
Bryce 76d40560ef style: lintfix 1 year ago
Bryce 6c1e3b2ae7 feature: allow specifying output format
closes #228
1 year ago
Bryce d220819377 feature: accept multiple input images to allow batch editing
- move "surprise me" to "edit-demo"
1 year ago
Bryce 63f32846bb docs: no mps training; how change cache dir 1 year ago
Bryce d9a70a55c6 feature/docs: cleanup cli
- add colors to help text
- add suggestion to use `aimg` shell
- lazy imports for faster response time
1 year ago
Bryce Drennan 9eacf5e7ed
perf: improve startup time by doing some imports lazily (#233)
just running `aimg --help` or `aimg --version` was very slow due to all the imports being brought in eagerly

Before changes `aimg --help`
`2.24s user 4.05s system 184% cpu 3.416 total`

After changes:
`0.04s user 0.02s system 8% cpu 0.625 total`

Used `PYTHONPROFILEIMPORTTIME=1 aimg --help` to find time consuming imports.

Also switched to using `scripts` instead of `entrypoints` since the scripts are much faster.

Made duplicate SAMPLER_TYPE_OPTIONS that can be loaded without loading all the samplers themselves.

Likely a breaking change - not sure.
1 year ago
Bryce 19444d8e22 fix: first frame should be the interesting one 1 year ago
Bryce Drennan e619dc2867
fix: init image strength (#225) 1 year ago
Bryce Drennan 9ee09ac842
feature: add compilation animations (#224)
- add generation/compare gifs
1 year ago
Bryce Drennan a67683d318
feature: add upscale command line function (#222) 1 year ago
Bryce Drennan 542e4fbd55
fix: tile mode was broken since latest perf improvements (#220) 1 year ago
Pavel Yakovlev e1c9f14489 feature: add openjourney models 1 year ago
Bryce Drennan 9e06013ade
feature: save gifs that show image generation process (#218) 1 year ago
Bryce Drennan 6d733ed3ff
feature: added `aimg system-info` command to help debug issues (#216) 1 year ago
Bryce Drennan 7bdde559cc
performance: memory management improvements (#210)
- tile mode made more efficient. especially when not being used
- add script to iteratively make bigger images
1 year ago
Jiaming Sun a338902ab5
fix: add png handling for LazyLoadingImage (#203)
Loading png images for captioning will cause the following error since PIL loads png images in RGBA mode.

```python
  File "./miniconda3/lib/python3.8/site-packages/torchvision/transforms/functional_tensor.py", line 940, in normalize
    return tensor.sub_(mean).div_(std)
RuntimeError: The size of tensor a (4) must match the size of tensor b (3) at non-singleton dimension 0
```
1 year ago
Mahmoud Al-Qudsi 0b7692df07
fix: make model cached paths compatible with windows (#205)
If a model has a remote filename with characters that might not be supported on
the local cache filesystem, replace them during translation of URL to cached
file path.

Closes #202.
1 year ago
Bryce 92baff890e feature: surprise me improvements 1 year ago
Bryce c7ed86a36f feature: auto-retry generation unsafe image is created 1 year ago
Bryce f60fa880a7 feature: less visually confusing shell output 1 year ago
Bryce 16cef16c3e feature: facilitate references to previous image generation 1 year ago
Bryce 248679d8de feature: image sizes can now be multiples of 8 instead of 64
from https://github.com/CompVis/stable-diffusion/issues/60#issuecomment-1240294667
1 year ago
Bryce 9212f0227c fix: bypass hf cache retrieval bug
If one uses `hf_hub_download` only referencing specific commits the `refs` folder will not be created even though data will be cached via `snapshots` and `blobs`.  Subsequent calls to `try_to_load_from_cache` will return None even though the desired data was in the cache.

Example:

```python
# download something
hf_hub_download(repo_id=repo, revision=commit_hash, filename=filepath, token=token)
# returns None
try_to_load_from_cache(repo_id=repo, revision=commit_hash, filename=filepath)
```

https://github.com/huggingface/huggingface_hub/pull/1306
1 year ago
Bryce 290b0a318e fix: MacOS MPS background can't handle large slices
per
- https://github.com/brycedrennan/imaginAIry/issues/175
- https://github.com/invoke-ai/InvokeAI/issues/1244
1 year ago
Bryce 1c986d8644 fix: use py3.7 compat lru_cache
- disable lint fixer that updates to newer syntax
1 year ago
Bryce 097e763887 fix: hf_hub_download signature compat
instead of (incorrectly) trying to detect the function signature of the old version, just catch the error and try the old signature
1 year ago
mebelz 2571097087 fix: spelling typo
leave references to misspelled files- don't want to break any existing links
1 year ago
Bryce 00408d176f performance: use tiling for upscaling for better use of memory 1 year ago
Bryce 2fca01b911 fix: not so old 1 year ago
Bryce 7c05c3aae2 feature: image edit gifs and demo-reels 1 year ago
Bryce 2a3e19f5a1 feature: 🎉 Edit Images with Instructions alone! 1 year ago
Bryce 7285644909 feature: prune-ckpt command can prune to just the ema 1 year ago
Bryce 5b56f05da7 feature: print version
- fix: default config wasn't being selected for custom models
1 year ago
Bryce 9b1d130f93 feature: ability to load safetensors 1 year ago
Bryce 81f294216b feature: 🎉 outpainting 1 year ago
Bryce 02af4c37b9 fix: gracefully fail if older pytorch-lightning installed 1 year ago
Bryce 24e10f9e5f fix: don't report a safety issue when a black image is generated 1 year ago
Bryce fad7f17790 feature: run face enhancement on the GPU
Should run 10x faster
1 year ago
Bryce 85c084099c fix: incorrect config files being used for non-1.0 models 1 year ago
Bryce 5cc73f6087 feature: finetuning
- feature: finetuning your own image models
- feature: image prep command. crops to face or other interesting parts of photo
- fix: back-compat for hf_hub_download
- feature: add prune-ckpt command
- feature: allow specification of model config file
1 year ago
Bryce 4bc78b9be5 build: vendorize realesrgan
Removes lots of dependencies including problematic `grpcio` and `tb-nightly`
1 year ago
Bryce 35ac8d64d7 build: vendorize parts of basicsr
Trying to get rid of tb-nightly dependency and any other unnecessary dependencies.
1 year ago
Bryce e9a3e1a99b build: unpin dependencies 1 year ago
Bryce 4bc940ddf4 feature: remove more randomness 1 year ago
Bryce 1381c7fed4 lint: new ruff linter 1 year ago
Bryce da0f1e1ee6 fix: make sure randomness is generated on cpu for consistency 1 year ago
Bryce 239b235140 feature: depth-based image-to-image generations (and inpainting) 1 year ago
Bryce ad0b9e8ab8 feature: tile in a single dimension ("x" or "y") 1 year ago
Bryce 1f7403155e fix: more thorough cleaning of memory when switching models
also cleanup up some test failures
1 year ago
Bryce Drennan ccf9749df5
fix: performance improvement. disable ema (#139)
A configuration `use_ema: False` was became necessary in the newer Stable Diffusion code but was missing from the 1.5 config.
1 year ago
Paul Mestemaker ad5e467042
feat: include negative prompts in logs and exif metadata (#135) 1 year ago
Paul Mestemaker 68791cf236
feat: better handling for default model names (#134)
* feat: better handling for default model names

Addresses #124
1 year ago
Bryce f30823e0b5 feature: Stable Diffusion 2.1 2 years ago
Bryce 2f8edc1530 feature: negative prompting
- feature: negative prompting.  `--negative-prompt` or `ImaginePrompt(..., negative_prompt="ugly, deformed, extra arms, etc")`
- feature: a default negative prompt is added to all generations. Images in SD-2.0 don't look bad anymore. Images in 1.5 look improved as well.
2 years ago
Bryce 257752887d perf: add back memory efficiency improvements
Removed these in a rush to get SD-2.0 out.
2 years ago
Bryce e0af5d0089 fix: version metadata was broken
Fixes #114
2 years ago
Bryce 4610d7f01d feature: xformers support
add more upscaling code (that doesn't yet work)
2 years ago
Bryce 9c153a8d2d feature: support k-sampler methods for SD-2.0-v (768) 2 years ago
Bryce 015088507f feature/refactor/fix: better defaults. correct version in metadata
- feature: use different default steps and image sizes depending on sampler and model selceted
- fix: #110 use proper version in image metadata
- refactor: samplers all have their own class that inherits from ImageSampler
2 years ago
Kian-Meng Ang 3d04df4dee Fix typos
Found via `codespell -S ./imaginairy/vendored`
2 years ago
Bryce 58c2897dd1 refactor: fix lint issues 2 years ago
Maxime Mouchet 40ab571fc1 cli: show defaults and cleanup help text 2 years ago
Bryce e67341223b feature: Stable Diffusion 2.0
working: CUDA and MacOS
working: 512p model with all samplers
working: inpainting with all samplers
working: 768p model with ddim sampler
2 years ago
Bryce 893b041a8f feature: progress image callback 2 years ago
Bryce 095a905d72 fix: cpu generation doesn't use autocast
autocast not supported on CPU
https://github.com/pytorch/pytorch/issues/55374
https://github.com/invoke-ai/InvokeAI/pull/518
2 years ago
Bryce b8a88370de fix: lower memory reqs for attention on M1s 2 years ago
Bryce d499ca307b fix: use inpainting source that doesn't require login 2 years ago