Commit Graph

63 Commits

Author SHA1 Message Date
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
Bryce
893b041a8f feature: progress image callback 2022-11-15 18:06:03 -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
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
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
299687645b refactor: remove unused parameter 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
Bryce
6a80759016 feature: improved safety filter
- provides more informative logs
- provides a detailed safety score object
- adds non-bypassable filter for extreme content
2022-10-10 03:32:19 -05:00
Bryce
9ba302a5f4 refactor: begin to standardize samplers 2022-10-07 00:02:26 -05:00
Bryce
340a90bacd feature: allow loading custom model weights at command line
Addresses #40
2022-10-06 00:30:50 -05:00
Bryce
d689b06256 fix: ensure init-image-strength 0 is respected
addresses https://github.com/brycedrennan/imaginAIry/issues/38
2022-10-04 06:18:46 -07:00
Bryce
48117bbcb1 feature: face-fidelity is now configurable
remove face-fixing from upscaled version
2022-10-03 16:33:17 -07:00
Bryce
95a8fa31a9 fix: inpainting producing blurry images
while the previous version did produce much better blending it also makes images that lack detail for some reason.

tests: Added more tests to help catch this sort of thing earlies

fix: found that median blur is really slow, so I made sure we only do it on downsampled masks.  Was taking like 3 minutes to run on the large pearl girl picture on M1

- docs: update examples
2022-09-27 17:19:25 -07:00
Bryce
6cae290038 fix: inpainting now matches photo at high generation strength
- 🎉 fix: inpainted areas correlate with surrounding image, even at 100% generation strength.  Previously if the generation strength was high enough the generated image
would be uncorrelated to the rest of the surrounding image.  It created terrible looking images.
 - fix: mask boundaries are more accurate
2022-09-25 22:50:16 -07:00
Bryce
d563e0c7fb refactor: image version management
- mask_modify_original is now a prompt attribute
2022-09-25 22:50:16 -07:00
Bryce
d832f15297 fix: masking now works properly at strengths 0 and 1 2022-09-24 23:31:03 -07:00
Bryce
b69072d382 fix: various bugfixes 2022-09-24 23:31:03 -07:00
Bryce
2eec756fab feature: have initial generated images in their own folder 2022-09-24 23:31:03 -07:00
Bryce
b69b4c770e feature: interactive prompt
- add quiet flag
- add mask-modify-original flag
2022-09-24 23:31:03 -07:00
Bryce
69af07ab67 style: fix lint issues 2022-09-24 00:31:08 -07:00
Bryce
38c7f88950 feature: boolean logic masks
Specify advanced text based masks using boolean logic and strength modifiers. Mask descriptions must be lowercase. Keywords uppercase.
Valid symbols: `AND`, `OR`, `NOT`, `()`, and mask strength modifier `{*1.5}` where `+` can be any of `+ - * /`. Single-character boolean
operators also work.  When writing strength modifies know that pixel values are between 0 and 1.

 - feature: apply mask edits to original files
 - feature: auto-rotate images if exif data specifies to do so
 - fix: accept mask images in command line
2022-09-24 00:02:31 -07:00
Bryce Drennan
d090f9d072
fix: unneeded argument 2022-09-23 15:15:41 -07:00
Jay Drennan
df28bf8805 refactor: implements changes to comply with pylama 2022-09-22 12:52:37 -06:00
Bryce
cc014685bd fix: leave sample in float32 for all final processing 2022-09-22 10:33:35 -07:00
Bryce
9614a82f12 fix: use float32 at image render time for wider cpu compatibility
If the x_sample was a bfloat on the gpu but the cpu doesn't support bfloat, that can cause a TypeError
```
  File "/home/stdiff/.local/lib/python3.10/site-packages/imaginairy/api.py", line 292, in imagine
    x_sample.cpu().numpy(), "c h w -> h w c"

TypeError: Got unsupported ScalarType BFloat16`
```
2022-09-22 08:25:06 -07:00
Bryce
cdfeaa4c6f tests: add docker image for testing environment. minor test improvements 2022-09-21 22:38:44 -07:00
Bryce
09bc1c70e6 fix: try to address #13 BFloat16 issue
Seems to be caused by incompatible types in group_norm when we use autocast.

Patch group_norm to cast the weights to the same type as the inputs

From what I can understand all the other repos just switch to full precision instead
of addressing this.  I think this would make things slower but I'm not sure. So maybe
the patching solution I'm doing is better?

https://github.com/pytorch/pytorch/pull/81852
2022-09-21 22:03:12 -07:00
Bryce
ff7fc0dab7 feature: tile mode can now be specified per-prompt 2022-09-20 22:57:03 -07:00
Bryce
a46424c673 feature: img2img now supported with PLMS (instead of just DDIM)
Kinda hacky copy/pasting from ddim.  Need to cleanup
2022-09-20 08:42:00 -07:00
Bryce
4705d182d5 feature: generate captions for images
- add wip functionality for negative masks
- ci: add code linter that removes unused imports
- add instructions to install rust on osx
2022-09-19 21:19:22 -07:00
Bryce
f040e3bffe feature: allow multiple additive targets for text masking targets 2022-09-18 15:24:31 -07:00
Bryce
930295d840 feature: txt2mask - automated text replacement
from https://github.com/timojl/clipseg
2022-09-18 06:07:47 -07:00
Bryce
d7cbf6e416 refactor: cleanup ddim
- delete more unused code
- fix some lints
2022-09-17 14:02:27 -07:00
Bryce
6307a0daf5 refactor: cleanup ddim 2022-09-17 12:24:27 -07:00
Bryce
59648dbe61 test: add some tests/logging
add some experiments
2022-09-16 22:21:38 -07:00
Bryce
19d0b563ac style: lint fixes. remove unused code 2022-09-16 09:24:24 -07:00
Bryce
c7a822d701 feature: urls as init images
- --init-image accepts urls
- cleanup command line code
2022-09-15 23:06:59 -07:00
wseagar
56fc414724 fix: is_nsfw_img is None rather than false 2022-09-15 20:27:29 +12:00
Bryce
fa3673ef56 fix: use context manager syntax compatible with python 3.8
parentheses supported in python 3.10
2022-09-14 21:24:05 -07:00
Bryce
51a8b1b8d8 fix: filter logic was wrong 2022-09-14 20:01:12 -07:00