Commit Graph

176 Commits

Author SHA1 Message Date
Bryce
68e7fd73c5 perf: add xformers dependency 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
d1dbd500eb fix: use entry_points for windows
python converts entry_points to exe files so they run on windows.  The scripts that work on linux/macos don't work on windows.
2023-02-05 19:20:47 -08:00
Bryce
5bedaebe45 version: 9.0.0 2023-02-05 09:53:24 -08:00
Bryce
eeb80f81aa docs: update changelog 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
Deadolus
8df10576f3
fix: removing stray space from readme at inopportune location (#237)
In the multiline example with the "girl with the pearl earring" was a stray space that led to an error.

As the command line was interpreted as two separate commands.
I remove the stray space in this pull-request, to spare others the headache of finding the whitespace.
2023-02-05 07:23:34 -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
b611a92b49 version: 8.3.1 2023-01-28 22:20:03 -08:00
Bryce Drennan
e619dc2867
fix: init image strength (#225) 2023-01-28 19:34:25 -08:00
Bryce
d7eaac2c5e version: 8.3.0 2023-01-28 17:21:05 -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
8791e15bec version: 8.2.0 2023-01-26 21:50:38 -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
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
9bef5a151a version: 8.0.5 2023-01-23 20:36:08 -08:00
Bryce
3a7c861f0a version: 8.0.4 2023-01-23 07:06:35 -08:00
Bryce
bbe3f8473f version: 8.0.3 2023-01-23 06:24:15 -08:00
Bryce
fce9fe9225 version: 8.0.2 2023-01-22 11:31:50 -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
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
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
993b039d7b docs: update memory requirements 2023-01-16 17:02:19 -08:00
Bryce
049059dc03 version: 7.4.3 2023-01-16 15:20:55 -08:00
Bryce
2dd99c183c version: 7.4.2 2023-01-16 12:56:05 -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
c46d1c373c version: 7.3.0 2022-12-21 16:53:49 -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
8dcdef3c58
Update README.md 2022-12-07 10:52:33 -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
0e342a126e version: 6.1.2 2022-11-28 00:34:33 -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
Bryce
60620e0312 docs: add badges 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 Drennan
c5402949c4
Update README.md 2022-11-24 01:50:34 -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
1a866c48e1 version: 5.1.0 2022-11-15 18:22:23 -08:00
Bryce
893b041a8f feature: progress image callback 2022-11-15 18:06:03 -08:00
Bryce
411f359f4e version: 5.0.1 2022-11-13 14:58:21 -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
17399e7702 docs: update about inpainting 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
97682da9ed version: 4.0.0 2022-10-22 02:25:54 -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
6f1455e912 docs: update readme 2022-10-16 22:10:54 -07:00
Bryce
4ba1965db8 feature: k-diff sampler img2img and masking 2022-10-14 03:23:16 -07:00
Bryce
497dc81d9e fix: k-sampler methods were broken 2022-10-12 20:35:45 -07: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
83db4ad795 docs: fix prompt expansion description
thanks to @Cybergate9 for identifying the mistakes

addresses #52
2022-10-09 13:28:56 -07:00
Bryce
26483ef128 version: 2.4.0 2022-10-08 18:38:43 -07:00
Bryce Drennan
31c2160e21
feature: prompt expansion (#51)
You can use `{}` to randomly pull values from lists.  A list of values separated by `|` and enclosed in `{ }` will be randomly drawn from in a non-repeating fashion. Values that are surrounded by `_ _` will pull from a phrase list of the same name.   Folders containing .txt phraselist files may be specified via
`--prompt_library_path`. The option may be specified multiple times.  Built-in categories:

      3d-term, adj-architecture, adj-beauty, adj-detailed, adj-emotion, adj-general, adj-horror, animal, art-movement,
      art-site, artist, artist-botanical, artist-surreal, aspect-ratio, bird, body-of-water, body-pose, camera-brand,
      camera-model, color, cosmic-galaxy, cosmic-nebula, cosmic-star, cosmic-term, dinosaur, eyecolor, f-stop,
      fantasy-creature, fantasy-setting, fish, flower, focal-length, food, fruit, games, gen-modifier, hair, hd,
      iso-stop, landscape-type, national-park, nationality, neg-weight, noun-beauty, noun-fantasy, noun-general,
      noun-horror, occupation, photo-term, pop-culture, pop-location, punk-style, quantity, rpg-item, scenario-desc,
      skin-color, spaceship, style, tree-species, trippy, world-heritage-site

   Examples:

   `imagine "a {red|black} dog" -r 2 --seed 0` will generate both "a red dog" and "a black dog"

   `imagine "a {_color_} dog" -r 4 --seed 0` will generate four, different colored dogs. The colors will eb pulled from an included
   phraselist of colors.

   `imagine "a {_spaceship_|_fruit_|hot air balloon}. low-poly" -r 4 --seed 0` will generate images of spaceships or fruits or a hot air balloon

   Credit to [noodle-soup-prompts](https://github.com/WASasquatch/noodle-soup-prompts/) where most, but not all, of the wordlists originate.
2022-10-08 18:34:35 -07:00
Bryce
0244d4151f version: 2.3.1 2022-10-06 17:26:00 -07:00
Bryce
5cc19c460c version: 2.3.0 2022-10-05 23:35:05 -07:00
Bryce
00fff23fdf docs: update macos installation instructions 2022-10-06 01:24:21 -05:00
Bryce
282fbc19b5 version: 2.2.1 2022-10-04 06:21:37 -07:00
Bryce
302845f35a docs: update feature plans 2022-10-04 06:18:46 -07:00
Bryce
da0b983622 version: 2.2.0 2022-10-03 16:35:57 -07:00
Bryce
9fe3cf79c2 feature: better masking segmentation from clipseg 2022-09-27 23:42:42 -07:00
Bryce
f21c979f08 feature: better masking segmentation from clipseg 2022-09-27 23:35:06 -07:00
Bryce
c92e5c443f version: 2.0.3 2022-09-27 21:52:45 -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
b69b4c770e feature: interactive prompt
- add quiet flag
- add mask-modify-original flag
2022-09-24 23:31:03 -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
8e844f2eae version: 1.6.2 2022-09-22 10:34:34 -07:00
Bryce
cc014685bd fix: leave sample in float32 for all final processing 2022-09-22 10:33:35 -07:00
Bryce
09f00f9652 version: 1.6.1 2022-09-22 08:26:55 -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
a275d9c9cd version: 1.6.0 + docs 2022-09-21 22:44:49 -07:00
Bryce
ff7fc0dab7 feature: tile mode can now be specified per-prompt 2022-09-20 22:57:03 -07:00
Bryce
83c809e2b7 version 1.5.3
bugfix missing config file
2022-09-20 17:05:11 -07:00
Bryce
3d64867e1f version 1.5.2
bugfix missing config file
2022-09-20 17:03:33 -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
3a10a2eb80 docs: osx => macOS 2022-09-20 07:17:04 -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
be85133070 version: 1.3.0 2022-09-18 06:11:56 -07:00