Commit Graph

316 Commits

Author SHA1 Message Date
Bryce Drennan
77c4b85037
perf: improve memory usage (#433)
add warning for corrupt weights files
2023-12-29 09:04:33 -08:00
Bryce Drennan
42a045e8e6
feature: support sdxl (#431)
- adds support for (SDXL)[https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0]
  - adds sliced encoding/decoding to refiners sdxl pipeline
  - doesn't support inpainting, controlnets
- monkeypatches self_attention_guidance to use sliced attention
- adds a bunch of model weight translation utilities and weightmaps
- add [opendalle 1.1](https://huggingface.co/dataautogpt3/OpenDalleV1.1)
- change default model to opendalle
- fix: better handle special characters in path inputs on command line
**todo**
- add tests
2023-12-27 21:52:37 -08:00
jaydrennan
3322777f5e refactor: formatting changes ruff formatter
ruff formatter has slight differences in formatting compared to black
2023-12-27 17:08:01 -08:00
jaydrennan
7eef3bf628 feature: replaces black formatter with ruff formatter 2023-12-27 17:08:01 -08:00
Bryce Drennan
a2c38b3ec0
feature: support loading diffusers folder/based models from huggingface (#427) 2023-12-21 14:24:35 -08:00
Bryce
50e796a3b7 refactor: move code around 2023-12-21 05:48:02 -08:00
Bryce
32b5175e0e feature: better upscaling
- use face enhancement in a smarter way that doesn't blur high-res images
- use a different upscale model for composition images

**Upscaling**
RealESRGAN is great but it blurs parts of images it doesn't understand

4xUltrasharp is a finetune of RealESRGan that isn't as good but doesn't have this blurry patch problem.  This makes it more suitable to use as part of the composition/upscale process.  We still use realesrgan for any last-step upscales since it does look better.

had to write a state dict translator to use the ultrasharp model

**Face Enhancement**

We no longer enhance faces that are larger than 512 pixels. They should already have enough details and the face enhancer doesn't produce faces at high enough resolution to look good at that size.
2023-12-21 05:48:02 -08:00
Bryce
6ebd12abb1 refactor: move code to more intuitive places 2023-12-21 05:48:02 -08:00
Bryce
8cfb46d6de fix: bug in sliced encoder 2023-12-21 05:48:02 -08:00
Bryce
372453e645 refactor: remove training code 2023-12-21 05:48:02 -08:00
Bryce Drennan
616f686ed2
small changes (#425)
* docs: update todo

* refactor: small cleanup of tiling code
2023-12-19 12:39:34 -08:00
jaydrennan
df00109074 refactor: space formatting 2023-12-18 21:24:59 -08:00
jaydrennan
0c01cd690f
fix: sets correct default value for composition strength. (#422)
also corrects positional argument error by requiring _imagine_cmd to take key word arguments.
2023-12-18 17:31:57 -08:00
Bryce
0c03612d44 feature: large images now stay well-composed thanks to tile controlnet 2023-12-18 15:33:25 -08:00
jaydrennan
2372a71e6c fix: adds tile/detail controlnet back in. 2023-12-18 15:33:25 -08:00
Bryce Drennan
f88b5c1b2b
fix: word images still work without specified size (#421) 2023-12-18 15:09:23 -08:00
Bryce
7880ee1389 feature: update midas (depth maps) 2023-12-18 13:01:56 -08:00
Bryce
bf14ee6ee6 feature: add christmas-scene phrase list
Also add script that uses chatgpt to generate phrase-lists
2023-12-18 13:01:56 -08:00
Bryce
c6ac5f553a refactor: separate controlnet image preprocessing 2023-12-18 13:01:56 -08:00
Bryce
9a0e0cd1a7 feature: better depth maps 2023-12-18 13:01:56 -08:00
Bryce Drennan
2144f26fa7
feature: add ability to dynamically make word images (#417) 2023-12-16 22:08:19 -08:00
jaydrennan
3bd3dfdeaf
feature: adds --composition-strength parameter to cli (#416) 2023-12-16 14:40:06 -08:00
jaydrennan
e1e6f8037c
refactor: removes unused code and configurations (#405)
Co-authored-by: jaydrennan
2023-12-15 15:27:00 -08:00
Bryce
6d39d791b1 refactor: move safety to utils 2023-12-15 14:32:01 -08:00
Bryce
168a843f29 refactor: move colorize to api 2023-12-15 14:32:01 -08:00
Bryce
96f4268d44 refactor: move video_sample to api 2023-12-15 14:32:01 -08:00
Bryce
e72e8992ab refactor: create api module 2023-12-15 14:32:01 -08:00
Bryce
ad561e8833 refactor: move model_manager to utils 2023-12-15 14:32:01 -08:00
Bryce
d478771cc0 refactor: move a bunch of stuff to utils 2023-12-15 14:32:01 -08:00
Bryce
987af23abe refactor: move train.py 2023-12-15 14:32:01 -08:00
Bryce
0c456cd52a refactor: remove lr_scheduler.py 2023-12-15 14:32:01 -08:00
Bryce
01e32ff3f6 refactor: move bin files 2023-12-15 14:32:01 -08:00
Bryce
316114e660 docs: add docstrings
Wrote an openai script and custom prompt to generate them.
2023-12-15 14:32:01 -08:00
jaydrennan
3f3e080d39 feature: adds ability to use qrcode
feature: adds controlnet qrcode image generation.
feature: adds control net for qrcode image generation.
2023-12-14 21:12:25 -08:00
Bryce
62de446a92 ci: add mypy github action 2023-12-12 20:54:39 -08:00
Bryce
012cc648d3 style: fix all the mypy typing issues
...or ignore them.
2023-12-12 20:54:39 -08:00
Bryce
5a636e45c5 feature: skip composition at sizes slightly larger than model is expecting 2023-12-12 20:54:39 -08:00
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
eae4f20ae2 ci: add type checker
fix some typehint issues
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
c299cfffd9 fix: cache the controlnet models 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
db85f0898a feature: remove training feature 2023-12-06 22:04:06 -08:00
jaydrennan
ef0f44646e feature: adds --control-strength as parameter for cli 2023-12-05 22:14:19 -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
14ecf93c6a feature: add sliced self-attention for future use with video generation 2023-12-05 21:46:55 -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