Commit Graph

328 Commits

Author SHA1 Message Date
Bryce
dc8f8d5a3d feature: add colorization controlnet. improve aimg colorize command 2023-05-20 13:09:00 -07:00
Bryce
df25936d6f feature: automatic use of inpainting
feature disabled since controlnet inpainting doesn't work great. Was disabled by setting `inpaint_method="finetune",`
2023-05-20 13:09:00 -07:00
Bryce
d32e1060cd feature: multi-controlnet support at the command line
add controlnet option for edit demo
2023-05-20 13:09:00 -07:00
Bryce
bcaa000d35 fix: model logging 2023-05-20 13:09:00 -07:00
Bryce
926692ad03 tests: "prime" the controlnets
Trying to get things working on m1. doesn't fix everything
2023-05-20 13:09:00 -07:00
Bryce
fb19e34acc fix: allow use of upscaler on mps device 2023-05-20 13:09:00 -07:00
Bryce
3b066f8e29 fix: don't hide error messages during upscale 2023-05-20 13:09:00 -07:00
Bryce
eca97a25a0 tests: adjust tests to pass 2023-05-20 13:09:00 -07:00
Bryce
4c77fd376b feature: improvements to memory management
not thoroughly tested on low-memory devices
2023-05-20 13:09:00 -07:00
Bryce
d5a276584b fix: move normal map code inline
Fixes conda package. Fixes #317
2023-05-06 13:01:50 -07:00
Bryce
3258af7e02 fix: use correct device for depth images on mps 2023-05-05 08:29:52 -07:00
Bryce
17f3541d57 version: 12.0.0 2023-05-05 03:03:47 -07:00
Bryce
c9fccc1757 feature: add openjourney-v4 2023-05-05 02:53:43 -07:00
Bryce
db8d3b74ea feature: add "detail" control mode.
Add details to an image. Great for upscaling an image.
2023-05-05 02:53:43 -07:00
Bryce
b5356b143f feature: partial add of inpainting controlnet
todo: figure out how to input "mask" for this mode
2023-05-05 02:53:43 -07:00
Bryce
9526a85a71 feature: add "edit" control mode
Edit images using text instructions with any SD 1.5 based model. Similar to instructPix2Pix.
2023-05-05 02:53:43 -07:00
Bryce
476a81a967 feature: add "shuffle" control mode
Image is generated from elements of control image. similar to style transfer
2023-05-05 02:53:43 -07:00
Bryce
750d4f7ea8 docs: cleanup 2023-05-05 02:53:43 -07:00
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
2023-05-04 19:48:27 -07:00
Bryce
9a82dc5e4c fix: raw control images are now properly loaded. fixes #296 2023-04-28 20:52:32 -07:00
Bryce
765e607c2c fix: file numbers start after latest image, even if some previous images were deleted 2023-04-28 20:52:32 -07:00
Luke Pearson
94728d978e fix: changed sample to True to generate caption using blip model 2023-04-18 08:03:37 -07:00
Bryce
95d3d08d27 fix: better input image path handling
throw exception for non-existent images
2023-04-14 00:22:43 -07:00
Bryce
37d6642c83 fix: fix model downloads that were broken
by [library change in transformers 4.27.0](8f3b4a1d5b)
2023-03-18 13:49:11 -07:00
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
2023-03-11 15:40:52 -08:00
Bryce
52044c1073 fix: use model appropriate composition size 2023-02-28 23:14:22 -08:00
Bryce
3b777b98d8 fix: improved large images using composition 2023-02-28 21:04:00 -08:00
Bryce
a449fbd5e2 feature: remove tiling message for upscaler 2023-02-28 21:04:00 -08:00
Bryce
40da2b0357 tests: fix tests 2023-02-28 21:04:00 -08:00
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
2023-02-28 21:04:00 -08:00
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
2023-02-28 21:04:00 -08:00
Bryce
28c294554b fix: specify name of imagine command 2023-02-26 17:13:47 -08:00
Bryce
8273ab2c26 feature: add --fix-faces options to aimg upscale command 2023-02-25 14:29:55 -08:00
Bryce
d14c8f98f4 feature: aimg model-list command lists included models 2023-02-25 14:29:55 -08:00
Bryce
e3b23584ed refactor: split up command line tool 2023-02-25 14:29:55 -08:00
Bryce
c0fad5b2a3 fix: add missing alias 2023-02-25 14:29:55 -08:00
Bryce
d5cff45bff feature: allow input of raw control images 2023-02-25 14:29:55 -08:00
Bryce
8f56e14dc7 feature: add system memory to debug output 2023-02-25 14:29:55 -08:00
Bryce
d7e494241c fix: composition images were too blurry 2023-02-25 14:29:55 -08:00
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
2023-02-24 20:44:26 -08:00
Bryce
9831d8a24a feature: aimg colorize attempts to use controlnet to colorize images 2023-02-23 01:46:37 -08:00
Bryce
b261c62d4e docs: update docs 2023-02-22 23:38:47 -08:00
Bryce
54c3ad51d6 feature: controlnet 2023-02-22 23:38:47 -08:00
Bryce
bcd761b8a6 tests: better coverage of cli commands
add "empty" model that just uses empty state for models
2023-02-20 11:06:54 -08:00
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
2023-02-18 15:36:34 -08:00
Bryce
929eff353e fix: edit was broken by recent changes 2023-02-17 13:43:56 -08:00
Bryce
5b1cded94f fix: compose phase for edits probably doesn't make sense 2023-02-17 13:43:56 -08:00
Bryce
6f749ac4b6 fix: create compilations dir as needed 2023-02-17 10:08:12 -08:00
Bryce
882cc7e0f1 feature: generate large images with coherent composition 2023-02-16 13:09:14 -08:00
Bryce
c3a88c44cd perf: tiled encoding of images
The fold/unfold/split_input_params images didn't look good
2023-02-16 13:09:14 -08:00
Bryce
2aef6089e0 feature: generate large images
Added a composition stage so large images are more coherent
2023-02-16 13:09:14 -08:00
Bryce
b93b6a4d7c perf: use silu instead of nonlinearity for speedup 2023-02-15 14:22:00 -08:00
Bryce
68e7fd73c5 perf: add xformers dependency 2023-02-15 14:22:00 -08:00
Bryce
003a512dc8 perf: mps perf improvement
attention slicing wasn't working
2023-02-15 14:22:00 -08:00
Bryce
66b28c80fc fix: images came out wrong if processed on mps 2023-02-15 14:22:00 -08:00
Bryce
8db73707ff perf: load model to gpu after making it "half" 2023-02-15 14:22:00 -08:00
Bryce
1c8893cecc fix: fix image gen retry 2023-02-15 14:22:00 -08:00
Bryce
ea1d4baafe refactor: cleanup image generation code 2023-02-15 14:22:00 -08:00
Bryce
8a97213622 feature: sliced latent decoding
allows generation of bigger images. tile seams can be noticeable occasionally despite the feathering
2023-02-12 01:41:57 -08:00
Bryce
da70b310d5 fix: edit interface was broken 2023-02-05 21:16:09 -08:00
Bryce
eeb80f81aa docs: update changelog 2023-02-05 12:41:54 -05:00
Bryce
76d40560ef style: lintfix 2023-02-05 12:41:54 -05:00
Bryce
6c1e3b2ae7 feature: allow specifying output format
closes #228
2023-02-05 12:41:54 -05:00
Bryce
d220819377 feature: accept multiple input images to allow batch editing
- move "surprise me" to "edit-demo"
2023-02-05 12:41:54 -05:00
Bryce
63f32846bb docs: no mps training; how change cache dir 2023-02-05 12:41:54 -05:00
Bryce
d9a70a55c6 feature/docs: cleanup cli
- add colors to help text
- add suggestion to use `aimg` shell
- lazy imports for faster response time
2023-02-05 12:41:54 -05:00
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.
2023-02-02 21:43:04 -08:00
Bryce
19444d8e22 fix: first frame should be the interesting one 2023-01-28 21:32:56 -08:00
Bryce Drennan
e619dc2867
fix: init image strength (#225) 2023-01-28 19:34:25 -08:00
Bryce Drennan
9ee09ac842
feature: add compilation animations (#224)
- add generation/compare gifs
2023-01-28 17:16:47 -08:00
Bryce Drennan
a67683d318
feature: add upscale command line function (#222) 2023-01-27 23:57:31 -08:00
Bryce Drennan
542e4fbd55
fix: tile mode was broken since latest perf improvements (#220) 2023-01-27 22:56:46 -08:00
Pavel Yakovlev
e1c9f14489 feature: add openjourney models 2023-01-27 22:52:19 -08:00
Bryce Drennan
9e06013ade
feature: save gifs that show image generation process (#218) 2023-01-27 17:18:42 -08:00
Bryce Drennan
6d733ed3ff
feature: added aimg system-info command to help debug issues (#216) 2023-01-26 21:41:52 -08:00
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
2023-01-26 03:14:02 -08:00
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
```
2023-01-25 22:20:31 -08:00
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.
2023-01-25 22:05:07 -08:00
Bryce
92baff890e feature: surprise me improvements 2023-01-25 21:24:32 -08:00
Bryce
c7ed86a36f feature: auto-retry generation unsafe image is created 2023-01-25 21:24:32 -08:00
Bryce
f60fa880a7 feature: less visually confusing shell output 2023-01-25 21:24:32 -08:00
Bryce
16cef16c3e feature: facilitate references to previous image generation 2023-01-25 21:24:32 -08:00
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
2023-01-23 22:31:25 -08:00
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
2023-01-23 20:22:33 -08:00
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
2023-01-23 06:54:11 -08:00
Bryce
1c986d8644 fix: use py3.7 compat lru_cache
- disable lint fixer that updates to newer syntax
2023-01-22 18:24:57 -08:00
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
2023-01-22 11:28:34 -08:00
mebelz
2571097087 fix: spelling typo
leave references to misspelled files- don't want to break any existing links
2023-01-22 08:49:14 -08:00
Bryce
00408d176f performance: use tiling for upscaling for better use of memory 2023-01-22 08:46:37 -08:00
Bryce
2fca01b911 fix: not so old 2023-01-21 17:55:17 -08:00
Bryce
7c05c3aae2 feature: image edit gifs and demo-reels 2023-01-21 17:50:31 -08:00
Bryce
2a3e19f5a1 feature: 🎉 Edit Images with Instructions alone! 2023-01-21 13:34:26 -08:00
Bryce
7285644909 feature: prune-ckpt command can prune to just the ema 2023-01-21 13:34:26 -08:00
Bryce
5b56f05da7 feature: print version
- fix: default config wasn't being selected for custom models
2023-01-18 12:04:07 -08:00
Bryce
9b1d130f93 feature: ability to load safetensors 2023-01-17 22:56:16 -08:00
Bryce
81f294216b feature: 🎉 outpainting 2023-01-17 00:31:01 -08:00
Bryce
02af4c37b9 fix: gracefully fail if older pytorch-lightning installed 2023-01-16 15:14:11 -08:00
Bryce
24e10f9e5f fix: don't report a safety issue when a black image is generated 2023-01-16 14:51:31 -08:00
Bryce
fad7f17790 feature: run face enhancement on the GPU
Should run 10x faster
2023-01-16 12:49:14 -08:00
Bryce
85c084099c fix: incorrect config files being used for non-1.0 models 2023-01-16 03:09:28 -08:00
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
2023-01-16 01:35:59 -08:00
Bryce
4bc78b9be5 build: vendorize realesrgan
Removes lots of dependencies including problematic `grpcio` and `tb-nightly`
2023-01-08 22:20:22 -08:00
Bryce
35ac8d64d7 build: vendorize parts of basicsr
Trying to get rid of tb-nightly dependency and any other unnecessary dependencies.
2023-01-08 22:20:22 -08:00
Bryce
e9a3e1a99b build: unpin dependencies 2023-01-08 22:20:22 -08:00
Bryce
4bc940ddf4 feature: remove more randomness 2023-01-02 14:11:36 -08:00
Bryce
1381c7fed4 lint: new ruff linter 2023-01-02 14:11:36 -08:00
Bryce
da0f1e1ee6 fix: make sure randomness is generated on cpu for consistency 2022-12-21 09:33:46 -08:00
Bryce
239b235140 feature: depth-based image-to-image generations (and inpainting) 2022-12-20 09:03:55 -08:00
Bryce
ad0b9e8ab8 feature: tile in a single dimension ("x" or "y") 2022-12-19 21:37:59 -08:00
Bryce
1f7403155e fix: more thorough cleaning of memory when switching models
also cleanup up some test failures
2022-12-18 22:00:29 -08:00
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.
2022-12-18 00:00:38 -08:00
Paul Mestemaker
ad5e467042
feat: include negative prompts in logs and exif metadata (#135) 2022-12-13 10:05:24 -08:00
Paul Mestemaker
68791cf236
feat: better handling for default model names (#134)
* feat: better handling for default model names

Addresses #124
2022-12-09 01:14:47 -08:00
Bryce
f30823e0b5 feature: Stable Diffusion 2.1 2022-12-07 10:41:36 -08:00
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.
2022-12-02 02:03:13 -08:00
Bryce
257752887d perf: add back memory efficiency improvements
Removed these in a rush to get SD-2.0 out.
2022-11-28 00:32:53 -08:00
Bryce
e0af5d0089 fix: version metadata was broken
Fixes #114
2022-11-27 14:46:01 -08:00
Bryce
4610d7f01d feature: xformers support
add more upscaling code (that doesn't yet work)
2022-11-26 22:55:51 -08:00
Bryce
9c153a8d2d feature: support k-sampler methods for SD-2.0-v (768) 2022-11-26 16:18:08 -08:00
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
2022-11-26 16:18:08 -08:00
Kian-Meng Ang
3d04df4dee Fix typos
Found via `codespell -S ./imaginairy/vendored`
2022-11-25 19:23:06 -08:00
Bryce
58c2897dd1 refactor: fix lint issues 2022-11-25 14:39:20 -08:00
Maxime Mouchet
40ab571fc1 cli: show defaults and cleanup help text 2022-11-25 07:46:40 -08:00
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
2022-11-24 00:50:57 -08:00
Bryce
893b041a8f feature: progress image callback 2022-11-15 18:06:03 -08:00
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
2022-11-13 14:42:19 -08:00
Bryce
b8a88370de fix: lower memory reqs for attention on M1s 2022-11-13 13:40:37 -08:00
Bryce
d499ca307b fix: use inpainting source that doesn't require login 2022-11-12 21:13:25 -08:00
Bryce
584e0d9df0 feature: change default sampler to k_dpmpp_2m, which is more than twice as fast 2022-11-12 20:56:38 -08:00
Bryce
0f02fc587c fix: k_dpm_fast on MPS platform
fixes #75

As discussed here: https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/2446#issuecomment-1279733739
2022-11-12 20:19:23 -08:00
Bryce
7af1ab66ca fix: add workaround for bug in k_diffusion on mps
As documented here: https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/4558#issuecomment-1310387114

- make image logs more consistent
- note which step the progress images belong to in the filename
2022-11-12 20:19:23 -08:00
Bryce
7fba2972e8 feature: added DPM++ 2S a and DPM++ 2M samplers
-fix: fix bug with `--show-work`
2022-11-11 10:52:48 -08:00
Bryce
021a0c540d feature: inpainting model support; improved model manager 2022-10-25 20:07:35 -07:00
Bryce
94c0aeab12 feature: switch between models without restarting python instance 2022-10-23 22:55:28 -07:00
Bryce
4d802a043e feature: stable diffusion 1.5 2022-10-22 02:22:57 -07:00
Bryce
8332593fed feature: dilation and erosion of masks
Previously the `+` and `-` characters in a mask (example: `face{+0.1}`) added to the grayscale value of any masked areas. This wasn't very useful. The new behavior is that the mask will expand or contract by the number of pixel specified. The technical terms for this are dilation and erosion.  This allows much greater control over the masked area.
2022-10-17 23:47:26 -07:00
Bryce
741a433c56 feature: update k_diffusion. add dpm_fast and dpm_addaptive samplers 2022-10-16 22:10:54 -07:00
Bryce
dcf953383e tests: support distributed test runs
- switch to expected images instead of hashes. allow fuzzy matches
feature: more consistent seeds
2022-10-16 20:22:16 -07:00
Bryce
4ba1965db8 feature: k-diff sampler img2img and masking 2022-10-14 03:23:16 -07:00
Bryce
281d23adf2 refactor: prep for supporting img2img in k-samplers 2022-10-13 07:04:37 -07:00
Bryce
e8bb3cf5fd refactor: consolidate masking logic 2022-10-13 07:04:37 -07:00
Bryce
72026c8c90 refactor: merge img2img and txt2img pipelines 2022-10-13 07:04:37 -07:00
Bryce
a105dadbc4 refactor: combine identical schedules 2022-10-13 07:04:37 -07:00
Bryce
8d4b5cb9e1 refactor: standardize samplers more 2022-10-13 07:04:37 -07:00
Bryce
153c259ee4 fix: k-sampler methods were broken 2022-10-12 20:30:49 -07:00
Bryce
299687645b refactor: remove unused parameter 2022-10-11 01:06:24 -05:00
Bryce
db5ebe9095 tests: tests can run without any network calls 2022-10-11 01:06:24 -05:00
Bryce
b0123a8f43 refactor: remove unused parameters 2022-10-11 01:06:24 -05:00
Bryce
7ae77faf07 refactor: log indentation via formatter
Replace manual indentation with a context-aware logging formatter.
2022-10-10 22:32:39 -05:00
Bryce
df3c752eb8 refactor: consolidate logging utils 2022-10-10 22:32:39 -05:00