Commit Graph

113 Commits

Author SHA1 Message Date
Bryce
203747b14f refactor: simplify model_weights/architecture 2023-12-12 20:54:39 -08:00
Bryce
37ecd1e5e0 fix: videogen. track gpu tests 2023-12-12 20:54:39 -08:00
Bryce
e898e3a799 fix: several cli commands, edit demo, negative prompt
- fix colorize cmd. add test
- fix describe cmd. add test
- fix model-list cmd. add test
- fix stable studio
- hide stack grace for ValueErrors in cli
- set controlnet scale
- fix negative prompt to allow emptystring instead of replacing it with default
- adjust edit-demo parameters
- arg scheduler that works at click level (but disable it). works but not ideal experience.
2023-12-12 20:54:39 -08:00
Bryce
9b95e8b0b6 perf: improve cli startup time
- do not provide automatically imported api functions and objects in `imaginairy` root module
- horrible hack to overcome horrible design choices by easy_install/setuptools

The hack modifies the installed script to remove the __import__ pkg_resources line

If we don't do this then the scripts will be slow to start up because of
pkg_resources.require() which is called by setuptools to ensure the
"correct" version of the package is installed.

before modification example:
```
__requires__ = 'imaginAIry==14.0.0b5'
__import__('pkg_resources').require('imaginAIry==14.0.0b5')
__file__ = '/home/user/projects/imaginairy/imaginairy/bin/aimg'
with open(__file__) as f:
    exec(compile(f.read(), __file__, 'exec'))
```
2023-12-12 20:54:39 -08:00
Bryce
2bd6cb264b feature: large refactor
- add type hints
- size parameter
- ControlNetInput => ControlInput
- simplify imagineresult
2023-12-12 20:54:39 -08:00
Bryce
24f4af3482 feature: better torch installation experience 2023-12-05 21:46:55 -08:00
Bryce
71d4992dca feature: added --size parameter to allow using named sizes 2023-12-05 21:46:55 -08:00
Bryce
6fcf0da331 test: try local runner 2023-12-03 09:13:01 -08:00
Bryce
0fe3733933 fix: memory management issue
the dtype being used as a cache key wasn't consistent. this caused the model to be loaded twice
2023-12-03 09:13:01 -08:00
Bryce
b61d06651c tests: fix tests
- disable details mode. needs more work done to support
2023-12-03 09:13:01 -08:00
Bryce
b5a0e65f35 fix: edit mode and some controlnet tests 2023-11-24 09:10:12 -08:00
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
2023-11-22 13:22:00 -08:00
Bryce
558d3388e5 style: speed up linting and autoformatting. fix lints 2023-09-29 23:01:50 -07:00
Bryce
8243ed616d fix: pydantic models for http server working now. Fixes #380 2023-09-29 00:40:46 -07:00
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
2023-09-16 23:09:18 -07:00
Bryce
82d74c6b49 feature: switch to pydantic models
- allow prompt re-use by deferring random seed
2023-05-31 20:02:09 -07:00
Bryce
38ac0b7f54 tests: fix tests 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
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
6db296aa37 tests: faster tests 2023-05-20 11:35:49 -07:00
Bryce
c082ea523f tests: update tests
- controlnet version changes + graphics card change
2023-05-13 23:41:00 -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
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
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
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
3b777b98d8 fix: improved large images using composition 2023-02-28 21:04:00 -08:00
Bryce
40da2b0357 tests: fix tests 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
e3b23584ed refactor: split up command line tool 2023-02-25 14:29:55 -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
7b684b6e5c test: add smoke test for edit command 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
b93b6a4d7c perf: use silu instead of nonlinearity for speedup 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
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 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 Drennan
9ee09ac842
feature: add compilation animations (#224)
- add generation/compare gifs
2023-01-28 17:16:47 -08:00
Bryce Drennan
542e4fbd55
fix: tile mode was broken since latest perf improvements (#220) 2023-01-27 22:56:46 -08:00
Bryce Drennan
7deabaae62
tests: update expected images for tests (#215) 2023-01-26 20:41:47 -08:00
Bryce
8855823293 fix: rename files for windows compat 2023-01-22 19:08:01 -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
81f294216b feature: 🎉 outpainting 2023-01-17 00:31:01 -08:00