2022-09-11 07:35:57 +00:00
# ImaginAIry 🤖🧠
2023-03-01 07:39:11 +00:00
[![Downloads ](https://colab.research.google.com/assets/colab-badge.svg )](https://colab.research.google.com/drive/1rOvQNs0Cmn_yU1bKWjCOHzGVDgZkaTtO?usp=sharing)
2022-11-25 23:16:24 +00:00
[![Downloads ](https://pepy.tech/badge/imaginairy )](https://pepy.tech/project/imaginairy)
[![image ](https://img.shields.io/pypi/v/imaginairy.svg )](https://pypi.org/project/imaginairy/)
[![image ](https://img.shields.io/badge/license-MIT-green )](https://github.com/brycedrennan/imaginAIry/blob/master/LICENSE/)
[![Code style: black ](https://img.shields.io/badge/code%20style-black-000000.svg )](https://github.com/ambv/black)
[![Python Checks ](https://github.com/brycedrennan/imaginAIry/actions/workflows/ci.yaml/badge.svg )](https://github.com/brycedrennan/imaginAIry/actions/workflows/ci.yaml)
2023-09-09 05:23:24 +00:00
[![Discord ](https://flat.badgen.net/discord/members/FdD7ut3YjW )](https://discord.gg/FdD7ut3YjW)
2022-09-08 03:59:30 +00:00
2023-11-23 02:19:24 +00:00
AI imagined images. Pythonic generation of stable diffusion images **and videos** *!.
2022-09-08 03:59:30 +00:00
2023-11-23 02:19:24 +00:00
"just works" on Linux and macOS(M1) (and sometimes windows).
2022-09-11 07:58:56 +00:00
2023-02-22 04:41:29 +00:00
2022-09-11 06:27:22 +00:00
```bash
2022-09-20 14:17:04 +00:00
# on macOS, make sure rust is installed first
2023-06-03 06:28:10 +00:00
# be sure to use Python 3.10, Python 3.11 is not supported at the moment
2022-09-11 06:27:22 +00:00
>> pip install imaginairy
2023-02-22 04:41:29 +00:00
>> imagine "a scenic landscape" "a photo of a dog" "photo of a fruit bowl" "portrait photo of a freckled woman" "a bluejay"
# Make an animation showing the generation process
2023-01-29 01:16:47 +00:00
>> imagine --gif "a flower"
2023-11-23 02:19:24 +00:00
# Make an AI video
>> aimg videogen --start-image rocket.png
2023-02-22 04:41:29 +00:00
```
2023-11-23 02:19:24 +00:00
## Stable Video Diffusion
< p float = "left" >
2023-11-23 02:33:28 +00:00
< img src = "assets/svd-rocket.gif" height = "190" >
< img src = "assets/svd-athens.gif" height = "190" >
< img src = "assets/svd-pearl-girl.gif" height = "190" >
< img src = "assets/svd-starry-night.gif" height = "190" >
< img src = "assets/svd-dog.gif" height = "190" >
< img src = "assets/svd-xpbliss.gif" height = "190" >
2023-11-23 02:19:24 +00:00
< / p >
### Rushed release of Stable Diffusion Video!
2023-11-26 00:25:14 +00:00
Works with Nvidia GPUs. Does not work on Mac or CPU.
On windows you'll need to install torch 2.0 first via https://pytorch.org/get-started/locally/
2023-11-23 02:19:24 +00:00
```text
Usage: aimg videogen [OPTIONS]
AI generate a video from an image
Example:
aimg videogen --start-image assets/rocket-wide.png
Options:
--start-image TEXT Input path for image file.
--num-frames INTEGER Number of frames.
--num-steps INTEGER Number of steps.
--model TEXT Model to use. One of: svd, svd_xt, svd_image_decoder, svd_xt_image_decoder
--fps INTEGER FPS for the AI to target when generating video
--output-fps INTEGER FPS for the output video
--motion-amount INTEGER How much motion to generate. value between 0 and 255.
-r, --repeats INTEGER How many times to repeat the renders. [default: 1]
--cond-aug FLOAT Conditional augmentation.
--seed INTEGER Seed for random number generator.
--decoding_t INTEGER Number of frames decoded at a time.
--output_folder TEXT Output folder.
--help Show this message and exit.
```
### Images
2023-02-22 04:41:29 +00:00
< p float = "left" >
2023-12-28 06:23:21 +00:00
< img src = "assets/026882_1_ddim50_PS7.5_a_scenic_landscape_[generated].jpg" height = "256" >
< img src = "assets/026884_1_ddim50_PS7.5_photo_of_a_dog_[generated].jpg" height = "256" >
< img src = "assets/026890_1_ddim50_PS7.5_photo_of_a_bowl_of_fruit._still_life_[generated].jpg" height = "256" >
< img src = "assets/026885_1_ddim50_PS7.5_girl_with_a_pearl_earring_[generated].jpg" height = "256" >
< img src = "assets/026891_1_ddim50_PS7.5_close-up_photo_of_a_bluejay_[generated].jpg" height = "256" >
< img src = "assets/026893_1_ddim50_PS7.5_macro_photo_of_a_flower_[generated].jpg" height = "256" >
2023-02-22 04:41:29 +00:00
< / p >
2023-01-29 01:16:47 +00:00
2023-11-23 02:19:24 +00:00
### Whats New
**14.0.0**
- 🎉 video generation using [Stable Video Diffusion ](https://github.com/Stability-AI/generative-models )
2023-12-04 16:31:51 +00:00
- add `--videogen` to any image generation to create a short video from the generated image
- or use `aimg videogen` to generate a video from an image
2023-12-28 06:23:21 +00:00
- 🎉 SDXL (Stable Diffusion Extra Large) models are now supported.
- try `--model opendalle` or `--model sdxl`
- inpainting and controlnets are not yet supported for SDXL
2023-11-23 02:19:24 +00:00
- 🎉 imaginairy is now backed by the [refiners library ](https://github.com/finegrain-ai/refiners )
2023-12-03 23:48:23 +00:00
- This was a huge rewrite which is why some features are not yet supported. On the plus side, refiners supports
2023-11-23 02:19:24 +00:00
cutting edge features (SDXL, image prompts, etc) which will be added to imaginairy soon.
- [self-attention guidance ](https://github.com/SusungHong/Self-Attention-Guidance ) which makes details of images more accurate
2023-12-04 16:31:51 +00:00
- feature: added `--size` parameter for more intuitive sizing (e.g. 512, 256x256, 4k, uhd, FHD, VGA, etc)
2023-12-05 03:01:51 +00:00
- feature: detect if wrong torch version is installed and provide instructions on how to install proper version
2023-11-26 00:25:14 +00:00
- feature: better logging output: color, error handling
- feature: support for pytorch 2.0
- deprecated: support for python 3.8, 3.9
2023-11-23 02:19:24 +00:00
- deprecated: support for torch 1.13
2023-11-26 00:25:14 +00:00
- deprecated: support for Stable Diffusion versions 1.4, 2.0, and 2.1
2023-12-07 05:51:36 +00:00
- deprecated: image training
2023-12-03 23:48:23 +00:00
- broken: most samplers, tile/details controlnet, and model memory management
2023-11-23 02:19:24 +00:00
2023-05-22 09:02:00 +00:00
### Run API server and StableStudio web interface (alpha)
Generate images via API or web interface. Much smaller featureset compared to the command line tool.
```bash
>> aimg server
```
Visit http://localhost:8000/ and http://localhost:8000/docs
< img src = "https://github.com/Stability-AI/StableStudio/blob/a65d4877ad7d309627808a169818f1add8c278ae/misc/GenerateScreenshot.png?raw=true" >
2023-02-22 04:41:29 +00:00
### Image Structure Control [by ControlNet](https://github.com/lllyasviel/ControlNet)
2023-11-22 22:56:25 +00:00
#### (Broken as of 14.0.0)
2023-02-22 04:41:29 +00:00
Generate images guided by body poses, depth maps, canny edges, hed boundaries, or normal maps.
2023-03-11 02:55:21 +00:00
**Openpose Control**
2023-02-22 04:41:29 +00:00
```bash
imagine --control-image assets/indiana.jpg --control-mode openpose --caption-text openpose "photo of a polar bear"
2022-09-12 04:42:07 +00:00
```
2023-03-11 02:55:21 +00:00
2023-02-22 04:41:29 +00:00
< p float = "left" >
< img src = "assets/indiana.jpg" height = "256" >
< img src = "assets/indiana-pose.jpg" height = "256" >
< img src = "assets/indiana-pose-polar-bear.jpg" height = "256" >
< / p >
2022-09-12 04:42:07 +00:00
2023-05-05 15:56:05 +00:00
#### Canny Edge Control
2022-09-12 04:42:07 +00:00
```bash
2023-03-11 02:55:21 +00:00
imagine --control-image assets/lena.png --control-mode canny "photo of a woman with a hat looking at the camera"
2022-09-11 06:27:22 +00:00
```
2023-03-11 02:55:21 +00:00
2023-02-22 04:41:29 +00:00
< p float = "left" >
< img src = "assets/lena.png" height = "256" >
< img src = "assets/lena-canny.jpg" height = "256" >
< img src = "assets/lena-canny-generated.jpg" height = "256" >
< / p >
2022-09-12 04:42:07 +00:00
2023-05-05 15:56:05 +00:00
#### HED Boundary Control
2022-09-08 03:59:30 +00:00
2023-02-22 04:41:29 +00:00
```bash
imagine --control-image dog.jpg --control-mode hed "photo of a dalmation"
```
2023-03-11 02:55:21 +00:00
2023-02-22 04:41:29 +00:00
< p float = "left" >
< img src = "assets/000032_337692011_PLMS40_PS7.5_a_photo_of_a_dog.jpg" height = "256" >
< img src = "assets/dog-hed-boundary.jpg" height = "256" >
< img src = "assets/dog-hed-boundary-dalmation.jpg" height = "256" >
< / p >
2023-05-05 15:56:05 +00:00
#### Depth Map Control
2023-02-22 04:41:29 +00:00
```bash
imagine --control-image fancy-living.jpg --control-mode depth "a modern living room"
```
2023-03-11 02:55:21 +00:00
2023-02-22 04:41:29 +00:00
< p float = "left" >
< img src = "assets/fancy-living.jpg" height = "256" >
< img src = "assets/fancy-living-depth.jpg" height = "256" >
< img src = "assets/fancy-living-depth-generated.jpg" height = "256" >
< / p >
2023-01-29 03:34:25 +00:00
2023-05-05 15:56:05 +00:00
#### Normal Map Control
2023-02-22 04:41:29 +00:00
```bash
imagine --control-image bird.jpg --control-mode normal "a bird"
```
2023-03-11 02:55:21 +00:00
2023-02-22 04:41:29 +00:00
< p float = "left" >
< img src = "assets/013986_1_kdpmpp2m59_PS7.5_a_bluejay_[generated].jpg" height = "256" >
< img src = "assets/bird-normal.jpg" height = "256" >
< img src = "assets/bird-normal-generated.jpg" height = "256" >
< / p >
2023-05-05 15:56:05 +00:00
#### Image Shuffle Control
2023-05-05 07:29:43 +00:00
Generates the image based on elements of the control image. Kind of similar to style transfer.
```bash
imagine --control-image pearl-girl.jpg --control-mode shuffle "a clown"
```
The middle image is the "shuffled" input image
< p float = "left" >
< img src = "assets/girl_with_a_pearl_earring.jpg" height = "256" >
< img src = "assets/pearl_shuffle_019331_1_kdpmpp2m15_PS7.5_img2img-0.0_a_clown.jpg" height = "256" >
< img src = "assets/pearl_shuffle_clown_019331_1_kdpmpp2m15_PS7.5_img2img-0.0_a_clown.jpg" height = "256" >
< / p >
2023-05-05 15:56:05 +00:00
#### Editing Instructions Control
2023-05-05 08:21:29 +00:00
Similar to instructPix2Pix (below) but works with any SD 1.5 based model.
```bash
imagine --control-image pearl-girl.jpg --control-mode edit --init-image-strength 0.01 --steps 30 --negative-prompt "" --model openjourney-v2 "make it anime" "make it at the beach"
```
< p float = "left" >
< img src = "assets/girl_with_a_pearl_earring.jpg" height = "256" >
< img src = "assets/pearl_anime_019537_521829407_kdpmpp2m30_PS9.0_img2img-0.01_make_it_anime.jpg" height = "256" >
< img src = "assets/pearl_beach_019561_862735879_kdpmpp2m30_PS7.0_img2img-0.01_make_it_at_the_beach.jpg" height = "256" >
< / p >
2023-05-05 15:56:05 +00:00
#### Add Details Control (upscaling/super-resolution)
2023-05-05 09:40:40 +00:00
Replaces existing details in an image. Good to use with --init-image-strength 0.2
```bash
2023-05-17 03:56:42 +00:00
imagine --control-image "assets/wishbone.jpg" --control-mode details "sharp focus, high-resolution" --init-image-strength 0.2 --steps 30 -w 2048 -h 2048
2023-05-05 09:40:40 +00:00
```
< p float = "left" >
2023-05-05 15:29:36 +00:00
< img src = "assets/wishbone_headshot_badscale.jpg" height = "256" >
< img src = "assets/wishbone_headshot_details.jpg" height = "256" >
2023-05-05 09:40:40 +00:00
< / p >
2023-02-22 04:41:29 +00:00
2023-05-20 18:33:43 +00:00
### Image (re)Colorization (using brightness control)
Colorize black and white images or re-color existing images.
The generated colors will be applied back to the original image. You can either provide a caption or
allow the tool to generate one for you.
```bash
aimg colorize pearl-girl.jpg --caption "photo of a woman"
```
< p float = "left" >
< img src = "assets/girl_with_a_pearl_earring.jpg" height = "256" >
< img src = "assets/pearl-gray.jpg" height = "256" >
< img src = "assets/pearl-recolor-a.jpg" height = "256" >
< / p >
2023-02-22 04:41:29 +00:00
### Instruction based image edits [by InstructPix2Pix](https://github.com/timothybrooks/instruct-pix2pix)
2023-11-22 22:56:25 +00:00
#### (Broken as of 14.0.0)
2023-02-22 04:41:29 +00:00
Just tell imaginairy how to edit the image and it will do it for you!
< p float = "left" >
< img src = "assets/scenic_landscape_winter.jpg" height = "256" >
< img src = "assets/dog_red.jpg" height = "256" >
< img src = "assets/bowl_of_fruit_strawberries.jpg" height = "256" >
< img src = "assets/freckled_woman_cyborg.jpg" height = "256" >
< img src = "assets/014214_51293814_kdpmpp2m30_PS10.0_img2img-1.0_make_the_bird_wear_a_cowboy_hat_[generated].jpg" height = "256" >
< img src = "assets/flower-make-the-flower-out-of-paper-origami.gif" height = "256" >
< img src = "assets/girl-pearl-clown-compare.gif" height = "256" >
< img src = "assets/mona-lisa-headshot-anim.gif" height = "256" >
< img src = "assets/make-it-night-time.gif" height = "256" >
< / p >
< details >
< summary > Click to see shell commands< / summary >
Use prompt strength to control how strong the edit is. For extra control you can combine with prompt-based masking.
2023-01-21 21:23:48 +00:00
```bash
2023-02-12 02:23:45 +00:00
# enter imaginairy shell
>> aimg
🤖🧠> edit scenic_landscape.jpg -p "make it winter" --prompt-strength 20
🤖🧠> edit dog.jpg -p "make the dog red" --prompt-strength 5
🤖🧠> edit bowl_of_fruit.jpg -p "replace the fruit with strawberries"
🤖🧠> edit freckled_woman.jpg -p "make her a cyborg" --prompt-strength 13
2023-02-22 04:41:29 +00:00
🤖🧠> edit bluebird.jpg -p "make the bird wear a cowboy hat" --prompt-strength 10
🤖🧠> edit flower.jpg -p "make the flower out of paper origami" --arg-schedule prompt-strength[1:11:0.3] --steps 25 --compilation-anim gif
2023-01-29 01:16:47 +00:00
# create a comparison gif
2023-02-12 02:23:45 +00:00
🤖🧠> edit pearl_girl.jpg -p "make her wear clown makeup" --compare-gif
2023-01-29 01:16:47 +00:00
# create an animation showing the edit with increasing prompt strengths
2023-02-12 02:23:45 +00:00
🤖🧠> edit mona-lisa.jpg -p "make it a color professional photo headshot" --negative-prompt "old, ugly, blurry" --arg-schedule "prompt-strength[2:8:0.5]" --compilation-anim gif
2023-02-22 04:41:29 +00:00
🤖🧠> edit gg-bridge.jpg -p "make it night time" --prompt-strength 15 --steps 30 --arg-schedule prompt-strength[1:15:1] --compilation-anim gif
2023-01-21 21:23:48 +00:00
```
2023-02-22 04:41:29 +00:00
< / details >
2023-01-21 21:23:48 +00:00
2023-02-22 04:41:29 +00:00
### Quick Image Edit Demo
2023-02-05 15:32:21 +00:00
Want just quickly have some fun? Try `edit-demo` to apply some pre-defined edits.
2023-01-22 01:36:47 +00:00
```bash
2023-02-05 15:32:21 +00:00
>> aimg edit-demo pearl_girl.jpg
2023-01-22 01:36:47 +00:00
```
2023-02-22 04:41:29 +00:00
< p float = "left" >
< img src = "assets/girl_with_a_pearl_earring_suprise.gif" height = "256" >
< img src = "assets/mona-lisa-suprise.gif" height = "256" >
< img src = "assets/luke-suprise.gif" height = "256" >
< img src = "assets/spock-suprise.gif" height = "256" >
< img src = "assets/gg-bridge-suprise.gif" height = "256" >
< img src = "assets/shire-suprise.gif" height = "256" >
< / p >
2023-01-22 01:36:47 +00:00
2023-01-21 21:23:48 +00:00
### Prompt Based Masking [by clipseg](https://github.com/timojl/clipseg)
2022-10-18 06:41:26 +00:00
Specify advanced text based masks using boolean logic and strength modifiers.
Mask syntax:
- mask descriptions must be lowercase
- keywords (`AND`, `OR` , `NOT` ) must be uppercase
- parentheses are supported
- mask modifiers may be appended to any mask or group of masks. Example: `(dog OR cat){+5}` means that we'll
select any dog or cat and then expand the size of the mask area by 5 pixels. Valid mask modifiers:
- `{+n}` - expand mask by n pixels
- `{-n}` - shrink mask by n pixels
- `{*n}` - multiply mask strength. will expand mask to areas that weakly matched the mask description
- `{/n}` - divide mask strength. will reduce mask to areas that most strongly matched the mask description. probably not useful
When writing strength modifiers keep in mind that pixel values are between 0 and 1.
2022-09-24 05:58:48 +00:00
2022-09-12 01:20:58 +00:00
```bash
2022-09-24 05:58:48 +00:00
>> imagine \
2023-02-05 15:23:34 +00:00
--init-image pearl_earring.jpg \
2022-09-28 00:04:16 +00:00
--mask-prompt "face AND NOT (bandana OR hair OR blue fabric){*6}" \
2022-09-24 05:58:48 +00:00
--mask-mode keep \
2022-09-28 00:04:16 +00:00
--init-image-strength .2 \
--fix-faces \
"a modern female president" "a female robot" "a female doctor" "a female firefighter"
2022-09-12 04:36:14 +00:00
```
2023-02-23 09:52:21 +00:00
< img src = "assets/mask_examples/pearl000.jpg" height = "200" > ➡️
2022-09-28 00:04:16 +00:00
< img src = "assets/mask_examples/pearl_pres.png" height = "200" >
< img src = "assets/mask_examples/pearl_robot.png" height = "200" >
< img src = "assets/mask_examples/pearl_doctor.png" height = "200" >
< img src = "assets/mask_examples/pearl_firefighter.png" height = "200" >
2022-09-12 04:36:14 +00:00
```bash
2022-09-24 05:58:48 +00:00
>> imagine \
--init-image fruit-bowl.jpg \
2022-10-14 03:49:48 +00:00
--mask-prompt "fruit OR fruit stem{*6}" \
2022-09-24 05:58:48 +00:00
--mask-mode replace \
2022-09-25 20:07:27 +00:00
--mask-modify-original \
2022-09-24 05:58:48 +00:00
--init-image-strength .1 \
"a bowl of kittens" "a bowl of gold coins" "a bowl of popcorn" "a bowl of spaghetti"
2022-09-12 01:20:58 +00:00
```
2023-02-23 09:52:21 +00:00
< img src = "assets/000056_293284644_PLMS40_PS7.5_photo_of_a_bowl_of_fruit.jpg" height = "200" > ➡️
< img src = "assets/mask_examples/bowl004.jpg" height = "200" >
< img src = "assets/mask_examples/bowl001.jpg" height = "200" >
< img src = "assets/mask_examples/bowl002.jpg" height = "200" >
< img src = "assets/mask_examples/bowl003.jpg" height = "200" >
2022-09-18 13:07:07 +00:00
2022-09-12 04:36:14 +00:00
2022-09-13 07:27:53 +00:00
### Face Enhancement [by CodeFormer](https://github.com/sczhou/CodeFormer)
```bash
>> imagine "a couple smiling" --steps 40 --seed 1 --fix-faces
```
2022-09-18 13:07:07 +00:00
< img src = "https://github.com/brycedrennan/imaginAIry/raw/master/assets/000178_1_PLMS40_PS7.5_a_couple_smiling_nofix.png" height = "256" > ➡️
2022-09-13 07:46:37 +00:00
< img src = "https://github.com/brycedrennan/imaginAIry/raw/master/assets/000178_1_PLMS40_PS7.5_a_couple_smiling_fixed.png" height = "256" >
2022-09-13 07:27:53 +00:00
### Upscaling [by RealESRGAN](https://github.com/xinntao/Real-ESRGAN)
2022-09-13 16:12:47 +00:00
```bash
>> imagine "colorful smoke" --steps 40 --upscale
2023-03-11 02:55:21 +00:00
# upscale an existing image
>> aimg upscale my-image.jpg
2022-09-13 16:12:47 +00:00
```
2023-05-06 20:20:09 +00:00
< details >
< summary > Python Example< / summary >
```python
from imaginairy.enhancers.upscale_realesrgan import upscale_image
from PIL import Image
img = Image.open("my-image.jpg")
big_img = upscale_image(i)
```
< / details >
2022-09-18 13:07:07 +00:00
< img src = "https://github.com/brycedrennan/imaginAIry/raw/master/assets/000206_856637805_PLMS40_PS7.5_colorful_smoke.jpg" height = "128" > ➡️
2022-09-13 07:46:37 +00:00
< img src = "https://github.com/brycedrennan/imaginAIry/raw/master/assets/000206_856637805_PLMS40_PS7.5_colorful_smoke_upscaled.jpg" height = "256" >
2022-09-12 01:20:58 +00:00
2022-09-18 13:07:07 +00:00
### Tiled Images
```bash
>> imagine "gold coins" "a lush forest" "piles of old books" leaves --tile
```
2023-02-23 09:52:21 +00:00
< img src = "assets/000066_801493266_PLMS40_PS7.5_gold_coins.jpg" height = "128" > < img src = "assets/000066_801493266_PLMS40_PS7.5_gold_coins.jpg" height = "128" > < img src = "assets/000066_801493266_PLMS40_PS7.5_gold_coins.jpg" height = "128" >
< img src = "assets/000118_597948545_PLMS40_PS7.5_a_lush_forest.jpg" height = "128" > < img src = "assets/000118_597948545_PLMS40_PS7.5_a_lush_forest.jpg" height = "128" > < img src = "assets/000118_597948545_PLMS40_PS7.5_a_lush_forest.jpg" height = "128" >
2022-09-18 13:07:07 +00:00
< br >
2023-02-23 09:52:21 +00:00
< img src = "assets/000075_961095192_PLMS40_PS7.5_piles_of_old_books.jpg" height = "128" > < img src = "assets/000075_961095192_PLMS40_PS7.5_piles_of_old_books.jpg" height = "128" > < img src = "assets/000075_961095192_PLMS40_PS7.5_piles_of_old_books.jpg" height = "128" >
< img src = "assets/000040_527733581_PLMS40_PS7.5_leaves.jpg" height = "128" > < img src = "assets/000040_527733581_PLMS40_PS7.5_leaves.jpg" height = "128" > < img src = "assets/000040_527733581_PLMS40_PS7.5_leaves.jpg" height = "128" >
2022-12-20 05:32:41 +00:00
#### 360 degree images
```bash
imagine --tile-x -w 1024 -h 512 "360 degree equirectangular panorama photograph of the desert" --upscale
```
< img src = "assets/desert_360.jpg" height = "128" >
2022-09-18 13:07:07 +00:00
### Image-to-Image
2022-12-21 17:36:49 +00:00
Use depth maps for amazing "translations" of existing images.
2022-09-18 13:07:07 +00:00
```bash
2023-12-15 23:27:00 +00:00
>> imagine --init-image girl_with_a_pearl_earring_large.jpg --init-image-strength 0.05 "professional headshot photo of a woman with a pearl earring" -r 4 -w 1024 -h 1024 --steps 50
2022-09-18 13:07:07 +00:00
```
2023-02-22 04:41:29 +00:00
< p float = "left" >
< img src = "tests/data/girl_with_a_pearl_earring.jpg" width = "256" > ➡️
< img src = "assets/pearl_depth_1.jpg" width = "256" >
< img src = "assets/pearl_depth_2.jpg" width = "256" >
< / p >
2022-09-18 13:07:07 +00:00
2023-01-17 06:48:27 +00:00
### Outpainting
Given a starting image, one can generate it's "surroundings".
Example:
`imagine --init-image pearl-earring.jpg --init-image-strength 0 --outpaint all250,up0,down600 "woman standing"`
2023-02-22 04:41:29 +00:00
2023-02-23 09:52:21 +00:00
< img src = "tests/data/girl_with_a_pearl_earring.jpg" height = "256" > ➡️
< img src = "tests/expected_output/test_outpainting_outpaint_.png" height = "256" >
2023-01-17 06:48:27 +00:00
2023-02-22 04:41:29 +00:00
### Work with different generation models
< p float = "left" >
< img src = "assets/fairytale-treehouse-sd15.jpg" height = "256" >
< img src = "assets/fairytale-treehouse-openjourney-v1.jpg" height = "256" >
< img src = "assets/fairytale-treehouse-openjourney-v2.jpg" height = "256" >
< / p >
< details >
< summary > Click to see shell command< / summary >
```bash
imagine "valley, fairytale treehouse village covered, , matte painting, highly detailed, dynamic lighting, cinematic, realism, realistic, photo real, sunset, detailed, high contrast, denoised, centered, michael whelan" --steps 60 --seed 1 --arg-schedule model[sd14,sd15,sd20,sd21,openjourney-v1,openjourney-v2] --arg-schedule "caption-text[sd14,sd15,sd20,sd21,openjourney-v1,openjourney-v2]"
```
< / details >
2023-01-17 06:48:27 +00:00
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-09 01:34:35 +00:00
### Prompt Expansion
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:
2023-03-11 02:55:21 +00:00
3d-term, adj-architecture, adj-beauty, adj-detailed, adj-emotion, adj-general, adj-horror, animal, art-scene, art-movement,
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-09 01:34:35 +00:00
art-site, artist, artist-botanical, artist-surreal, aspect-ratio, bird, body-of-water, body-pose, camera-brand,
2023-03-11 02:55:21 +00:00
camera-model, color, cosmic-galaxy, cosmic-nebula, cosmic-star, cosmic-term, desktop-background, dinosaur, eyecolor, f-stop,
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-09 01:34:35 +00:00
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,
2023-03-11 02:55:21 +00:00
noun-horror, occupation, painting-style, photo-term, pop-culture, pop-location, punk-style, quantity, rpg-item, scenario-desc,
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-09 01:34:35 +00:00
skin-color, spaceship, style, tree-species, trippy, world-heritage-site
Examples:
2022-10-09 20:28:56 +00:00
`imagine "a {lime|blue|silver|aqua} colored dog" -r 4 --seed 0` (note that it generates a dog of each color without repetition)
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-09 01:34:35 +00:00
2023-02-23 09:52:21 +00:00
< img src = "assets/000184_0_plms40_PS7.5_a_silver_colored_dog_[generated].jpg" height = "200" > < img src = "assets/000186_0_plms40_PS7.5_a_aqua_colored_dog_[generated].jpg" height = "200" >
< img src = "assets/000210_0_plms40_PS7.5_a_lime_colored_dog_[generated].jpg" height = "200" >
< img src = "assets/000211_0_plms40_PS7.5_a_blue_colored_dog_[generated].jpg" height = "200" >
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-09 01:34:35 +00:00
2022-10-09 20:28:56 +00:00
`imagine "a {_color_} dog" -r 4 --seed 0` will generate four, different colored dogs. The colors will be pulled from an included
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-09 01:34:35 +00:00
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
2023-05-06 20:36:33 +00:00
< details >
< summary > Python example< / summary >
```python
from imaginairy.enhancers.prompt_expansion import expand_prompts
my_prompt = "a giant {_animal_}"
expanded_prompts = expand_prompts(n=10, prompt_text=my_prompt, prompt_library_paths=["./prompts"])
```
< / details >
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-09 01:34:35 +00:00
Credit to [noodle-soup-prompts ](https://github.com/WASasquatch/noodle-soup-prompts/ ) where most, but not all, of the wordlists originate.
### Generate image captions (via [BLIP](https://github.com/salesforce/BLIP))
2022-09-20 04:15:38 +00:00
```bash
>> aimg describe assets/mask_examples/bowl001.jpg
a bowl full of gold bars sitting on a table
```
2022-09-18 13:07:07 +00:00
2023-03-11 02:55:21 +00:00
### Example Use Cases
```bash
>> aimg
# Generate endless 8k art
🤖🧠> imagine -w 1920 -h 1080 --upscale "{_art-scene_}. {_painting-style_} by {_artist_}" -r 1000 --steps 30 --model sd21v
# generate endless desktop backgrounds
🤖🧠> imagine --tile "{_desktop-background_}" -r 100
# convert a folder of images to pencil sketches
🤖🧠> edit other/images/*.jpg -p "make it a pencil sketch"
# upscale a folder of images
🤖🧠> upscale my-images/*.jpg
# generate kitchen remodel ideas
🤖🧠> imagine --control-image kitchen.jpg -w 1024 -h 1024 "{_interior-style_} kitchen" --control-mode depth -r 100 --init-image 0.01 --upscale --steps 35 --caption-text "{prompt}"
```
2023-02-22 04:41:29 +00:00
### Additional Features
2022-09-11 06:27:22 +00:00
- Generate images either in code or from command line.
2023-02-22 04:41:29 +00:00
- It just works. Proper requirements are installed. Model weights are automatically downloaded. No huggingface account needed.
2022-09-12 04:36:14 +00:00
(if you have the right hardware... and aren't on windows)
2022-09-11 06:27:22 +00:00
- Noisy logs are gone (which was surprisingly hard to accomplish)
2022-09-11 20:56:41 +00:00
- WeightedPrompts let you smash together separate prompts (cat-dog)
2022-09-12 01:20:58 +00:00
- Prompt metadata saved into image file metadata
2022-09-20 04:15:38 +00:00
- Have AI generate captions for images `aimg describe <filename-or-url>`
2022-09-24 08:56:19 +00:00
- Interactive prompt: just run `aimg`
2023-12-07 05:51:36 +00:00
2022-09-12 01:00:40 +00:00
## How To
2022-09-08 03:59:30 +00:00
2022-09-20 04:15:38 +00:00
For full command line instructions run `aimg --help`
2022-09-11 06:27:22 +00:00
```python
2022-09-16 06:06:59 +00:00
from imaginairy import imagine, imagine_image_files, ImaginePrompt, WeightedPrompt, LazyLoadingImage
2022-09-11 06:27:22 +00:00
2022-09-16 06:06:59 +00:00
url = "https://upload.wikimedia.org/wikipedia/commons/thumb/6/6c/Thomas_Cole_-_Architect%E2%80%99s_Dream_-_Google_Art_Project.jpg/540px-Thomas_Cole_-_Architect%E2%80%99s_Dream_-_Google_Art_Project.jpg"
2022-09-11 06:27:22 +00:00
prompts = [
2022-09-21 05:57:03 +00:00
ImaginePrompt("a scenic landscape", seed=1, upscale=True),
2022-09-11 06:27:22 +00:00
ImaginePrompt("a bowl of fruit"),
ImaginePrompt([
2022-09-13 07:27:53 +00:00
WeightedPrompt("cat", weight=1),
WeightedPrompt("dog", weight=1),
2022-09-16 06:06:59 +00:00
]),
ImaginePrompt(
"a spacious building",
2022-09-18 22:24:31 +00:00
init_image=LazyLoadingImage(url=url)
),
ImaginePrompt(
"a bowl of strawberries",
init_image=LazyLoadingImage(filepath="mypath/to/bowl_of_fruit.jpg"),
2022-09-24 05:58:48 +00:00
mask_prompt="fruit OR stem{*2}", # amplify the stem mask x2
2022-09-18 22:24:31 +00:00
mask_mode="replace",
2022-09-25 20:07:27 +00:00
mask_modify_original=True,
2022-09-21 05:57:03 +00:00
),
ImaginePrompt("strawberries", tile_mode=True),
2022-09-11 06:27:22 +00:00
]
2022-09-13 07:27:53 +00:00
for result in imagine(prompts):
2022-09-11 06:27:22 +00:00
# do something
result.save("my_image.jpg")
2022-09-13 07:27:53 +00:00
2022-09-11 06:27:22 +00:00
# or
imagine_image_files(prompts, outdir="./my-art")
```
2022-09-12 04:36:14 +00:00
## Requirements
- ~10 gb space for models to download
2023-01-17 01:01:37 +00:00
- A CUDA supported graphics card with >= 11gb VRAM (and CUDA installed) or an M1 processor.
2022-11-26 22:52:28 +00:00
- Python installed. Preferably Python 3.10. (not conda)
2022-10-06 06:17:00 +00:00
- For macOS [rust ](https://www.rust-lang.org/tools/install ) and setuptools-rust must be installed to compile the `tokenizer` library.
They can be installed via: `curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh` and `pip install setuptools-rust`
2022-09-20 04:15:38 +00:00
2022-09-11 06:27:22 +00:00
2022-09-15 04:24:16 +00:00
## Running in Docker
See example Dockerfile (works on machine where you can pass the gpu into the container)
```bash
docker build . -t imaginairy
# you really want to map the cache or you end up wasting a lot of time and space redownloading the model weights
docker run -it --gpus all -v $HOME/.cache/huggingface:/root/.cache/huggingface -v $HOME/.cache/torch:/root/.cache/torch -v `pwd` /outputs:/outputs imaginairy /bin/bash
```
2022-09-21 05:57:03 +00:00
## Running on Google Colab
[Example Colab ](https://colab.research.google.com/drive/1rOvQNs0Cmn_yU1bKWjCOHzGVDgZkaTtO?usp=sharing )
2023-02-05 00:08:05 +00:00
## Q&A
2023-05-06 20:34:30 +00:00
#### Q: How do I change the cache directory for where models are stored?
2023-02-05 00:08:05 +00:00
2023-05-06 20:34:30 +00:00
A: Set the `HUGGINGFACE_HUB_CACHE` environment variable.
#### Q: How do I free up disk space?
A: The AI models are cached in `~/.cache/` (or `HUGGINGFACE_HUB_CACHE` ). To delete the cache remove the following folders:
- ~/.cache/imaginairy
- ~/.cache/clip
- ~/.cache/torch
- ~/.cache/huggingface
2023-02-05 00:08:05 +00:00
2022-09-20 15:42:00 +00:00
## ChangeLog
2023-05-05 15:34:34 +00:00
2023-11-22 22:56:25 +00:00
**14.0.0**
2023-11-23 02:19:24 +00:00
- 🎉 feature: video generation using [Stable Video Diffusion ](https://github.com/Stability-AI/generative-models )
- 🎉 feature: imaginairy is now backed by the [refiners library ](https://github.com/finegrain-ai/refiners )
- This was a huge re-write which is why some features are not yet supported. On the plus side, refiners supports
cutting edge features (SDXL, image prompts, etc) which will be added to imaginairy soon.
- feature: added support for [self-attention guidance ](https://github.com/SusungHong/Self-Attention-Guidance ) which makes details of images more accurate
- feature: adds support for pytorch 2.0
2023-11-22 22:56:25 +00:00
- deprecated: support for python 3.8
2023-11-23 02:19:24 +00:00
- deprecated: support for torch 1.13
2023-11-22 22:56:25 +00:00
- deprecated: support for sd 1.4, 2.0, 2.1
2023-11-23 02:19:24 +00:00
- broken: pix2pix editing, most samplers, some controlnets, and memory management
2023-11-22 22:56:25 +00:00
2023-09-29 06:32:30 +00:00
**13.2.1**
- fix: pydantic models for http server working now. Fixes #380
- fix: install triton so annoying message is gone
2023-09-17 06:20:35 +00:00
**13.2.0**
2023-09-09 23:22:19 +00:00
- fix: allow tile_mode to be set to True or False for backward compatibility
2023-09-17 06:20:35 +00:00
- fix: various pydantic issues have been resolved
- feature: switch to pydantic 2.3 (faster but was a pain to migrate)
2023-09-09 23:22:19 +00:00
2023-06-01 03:01:17 +00:00
**13.1.0**
- feature: *api server now has feature parity with the python API* . View the docs at http://127.0.0.1:8000/docs after running `aimg server`
- `ImaginePrompt` is now a pydantic model and can thus be sent over the rest API
- images are expected in base64 string format
2023-09-09 22:50:48 +00:00
- fix: pin pydantic to 2.0 for now
- build: better python 3.11 incompatibility messaging (fixes #342 )
- build: add minimum versions to requirements to improve dependency resolution
- docs: add a discord link
2023-06-01 03:01:17 +00:00
2023-05-27 05:30:26 +00:00
**13.0.1**
2023-05-27 04:42:06 +00:00
- feature: show full stack trace when there is an api error
- fix: make lack of support for python 3.11 explicit
- fix: add some routes to match StableStudio routes
2023-05-20 18:33:43 +00:00
**13.0.0**
- 🎉 feature: multi-controlnet support. pass in multiple `--control-mode` , `--control-image` , and `--control-image-raw` arguments.
2023-05-20 23:07:27 +00:00
- 🎉 feature: add colorization controlnet. improve `aimg colorize` command
2023-05-22 09:02:00 +00:00
- 🎉🧪 feature: Graphical Web Interface [StableStudio ](https://github.com/Stability-AI/StableStudio ). run `aimg server` and visit http://127.0.0.1:8000/
2023-05-22 07:17:59 +00:00
- 🎉🧪 feature: API server `aimg server` command. Runs a http webserver (not finished). After running, visit http://127.0.0.1:8000/docs for api.
- 🎉🧪 feature: API support for [Stablity AI's new open-source Generative AI interface, StableStudio ](https://github.com/Stability-AI/StableStudio ).
- 🎉🧪 feature: "better" memory management. If GPU is full, least-recently-used model is moved to RAM. I'm not confident this works well.
2023-05-19 09:44:28 +00:00
- feature: [disabled] inpainting controlnet can be used instead of finetuned inpainting model
- The inpainting controlnet doesn't work as well as the finetuned model
- feature: python interface allows configuration of controlnet strength
2023-05-08 03:37:15 +00:00
- feature: show full stack trace on error in cli
2023-05-20 23:07:27 +00:00
- fix: hide the "triton" error messages
- fix: package will not try to install xformers on `aarch64` machines. While this will allow the dockerfile to build on
MacOS M1, [torch will not be able to use the M1 when generating images. ](https://github.com/pytorch/pytorch/issues/81224#issuecomment-1499741152 )
2023-05-20 23:50:15 +00:00
- build: specify proper Pillow minimum version (fixes #325 )
- build: check for torch version at runtime (fixes #329 )
2023-05-08 03:37:15 +00:00
2023-05-13 15:22:53 +00:00
**12.0.3**
- fix: exclude broken versions of timm as dependencies
2023-05-06 20:04:57 +00:00
**12.0.2**
- fix: move normal map preprocessor for conda compatibility
2023-05-05 15:34:34 +00:00
**12.0.1**
- fix: use correct device for depth images on mps. Fixes #300
2023-05-05 09:51:20 +00:00
**12.0.0**
2023-05-05 09:40:40 +00:00
- 🎉 feature: add "detail" control mode. Add details to an image. Great for upscaling an image.
2023-05-05 08:21:29 +00:00
- 🎉 feature: add "edit" control mode. Edit images using text instructions with any SD 1.5 based model. Similar to instructPix2Pix.
- 🎉 feature: add "shuffle" control mode. Image is generated from elements of control image. Similar to style transfer.
2023-05-05 07:29:43 +00:00
- 🎉 feature: upgrade to [controlnet 1.1 ](https://github.com/lllyasviel/ControlNet-v1-1-nightly )
- 🎉 fix: controlnet now works with all SD 1.5 based models
2023-05-05 09:51:20 +00:00
- feature: add openjourney-v4
2023-04-29 03:18:47 +00:00
- fix: raw control images are now properly loaded. fixes #296
2023-04-29 02:25:56 +00:00
- fix: filenames start numbers after latest image, even if some previous images were deleted
2023-04-18 15:11:41 +00:00
**11.1.1**
- fix: fix globbing bug with input image path handling
- fix: changed sample to True to generate caption using blip model
2023-03-17 16:40:05 +00:00
**11.1.0**
2023-03-11 02:55:21 +00:00
- docs: add some example use cases
- feature: add art-scene, desktop-background, interior-style, painting-style phraselists
- fix: compilation animations create normal slideshows instead of "bounces"
- fix: file globbing works in the interactive shell
2023-03-17 16:40:05 +00:00
- fix: fix model downloads that were broken by [library change in transformers 4.27.0 ](https://github.com/huggingface/transformers/commit/8f3b4a1d5bd97045541c43179efe8cd9c58adb76 )
2023-03-11 02:55:21 +00:00
2023-03-01 07:39:11 +00:00
**11.0.0**
- all these changes together mean same seed/sampler will not be guaranteed to produce same image (thus the version bump)
- fix: image composition didn't work very well. Works well now but probably very slow on non-cuda platforms
- fix: remove upscaler tiling message
- fix: improve k-diffusion sampler schedule. significantly improves image quality of default sampler
2023-02-27 04:07:49 +00:00
- fix: img2img was broken for all samplers except plms and ddim when init image strength was >~0.25
2023-02-25 21:51:00 +00:00
**10.2.0**
- feature: input raw control images (a pose, canny map, depth map, etc) directly using `--control-image-raw`
This is opposed to current behavior of extracting the control signal from an input image via `--control-image`
- feature: `aimg model-list` command lists included models
- feature: system memory added to `aimg system-info` command
2023-02-25 22:08:34 +00:00
- feature: add `--fix-faces` options to `aimg upscale` command
2023-02-25 21:51:00 +00:00
- fix: add missing metadata attributes to generated images
- fix: image composition step was producing unnecessarily blurry images
- refactor: split `aimg` cli code into multiple files
- docs: pypi docs now link properly to github automatically
**10.1.0**
2023-02-23 07:27:22 +00:00
- feature: 🎉 ControlNet integration! Control the structure of generated images.
2023-02-23 09:28:40 +00:00
- feature: `aimg colorize` attempts to use controlnet to colorize images
2023-02-25 21:51:00 +00:00
- feature: `--caption-text` command adds text at the bottom left of an image
2023-02-23 07:27:22 +00:00
2023-02-17 21:56:30 +00:00
**10.0.1**
- fix: `edit` was broken
2023-02-17 18:16:35 +00:00
**10.0.0**
- feature: 🎉🎉 Make large images while retaining composition. Try `imagine "a flower" -w 1920 -h 1080`
- fix: create compilations directory automatically
2023-02-16 16:11:31 +00:00
- perf: sliced encoding of images to latents (removes memory bottleneck)
2023-02-15 22:05:29 +00:00
- perf: use Silu for performance improvement over nonlinearity
2023-02-15 21:52:12 +00:00
- perf: `xformers` added as a dependency for linux and windows. Gives a nice speed boost.
- perf: sliced attention now runs on MacOS. A typo prevented that from happening previously.
- perf: sliced latent decoding - now possible to make much bigger images. 3310x3310 on 11 GB GPU.
2023-02-12 08:52:50 +00:00
2023-02-06 04:18:43 +00:00
**9.0.2**
- fix: edit interface was broken
2023-02-06 03:09:27 +00:00
**9.0.1**
- fix: use entry_points for windows since setup.py scripts doesn't work on windows [#239 ](https://github.com/brycedrennan/imaginAIry/issues/239 )
2023-02-05 17:53:24 +00:00
**9.0.0**
2023-02-03 05:43:04 +00:00
- perf: cli now has minimal overhead such that `aimg --help` runs in ~650ms instead of ~3400ms
2023-02-05 15:32:21 +00:00
- feature: `edit` and `imagine` commands now accept multiple images (which they will process separately). This allows
batch editing of images as requested in [#229 ](https://github.com/brycedrennan/imaginAIry/issues/229 )
- refactor: move `--surprise-me` to its own subcommand `edit-demo`
2023-02-05 17:25:53 +00:00
- feature: allow selection of output image format with `--output-file-extension`
- docs: make training fail on MPS platform with useful error message
- docs: add directions on how to change model cache path
2023-02-03 05:43:04 +00:00
2023-01-29 06:20:03 +00:00
**8.3.1**
- fix: init-image-strength type
2023-01-29 01:21:05 +00:00
**8.3.0**
2023-01-29 01:16:47 +00:00
- feature: create `gifs` or `mp4s` from any images made in a single run with `--compilation-anim gif`
- feature: create a series of images or edits by iterating over a parameter with the `--arg-schedule` argument
2023-01-27 17:37:37 +00:00
- feature: `openjourney-v1` and `openjourney-v2` models added. available via `--model openjourney-v2`
2023-01-28 07:57:31 +00:00
- feature: add upscale command line function: `aimg upscale`
2023-01-29 01:16:47 +00:00
- feature: `--gif` option will create a gif showing the generation process for a single image
- feature: `--compare-gif` option will create a comparison gif for any image edits
2023-01-28 06:56:46 +00:00
- fix: tile mode was broken since latest perf improvements
2023-01-27 17:37:37 +00:00
2023-01-27 05:50:38 +00:00
**8.2.0**
2023-01-27 05:41:52 +00:00
- feature: added `aimg system-info` command to help debug issues
2023-01-26 11:14:02 +00:00
2023-01-24 06:25:56 +00:00
**8.1.0**
2023-01-26 11:14:02 +00:00
- feature: some memory optimizations and documentation
- feature: surprise-me improvements
2023-01-24 06:25:56 +00:00
- feature: image sizes can now be multiples of 8 instead of 64. Inputs will be silently rounded down.
2023-01-26 11:14:02 +00:00
- feature: cleaned up `aimg` shell logs
- feature: auto-regen for unsafe images
- fix: make blip filename windows compatible
- fix: make captioning work with alpha pngs
2023-01-24 04:36:08 +00:00
**8.0.5**
- fix: bypass huggingface cache retrieval bug
2023-01-23 15:06:35 +00:00
**8.0.4**
- fix: limit attention slice size on MacOS machines with 64gb (#175)
2023-01-23 14:24:15 +00:00
**8.0.3**
- fix: use python 3.7 compatible lru_cache
- fix: use windows compatible filenames
2023-01-01 22:54:49 +00:00
2023-01-22 19:31:50 +00:00
**8.0.2**
- fix: hf_hub_download() got an unexpected keyword argument 'token'
**8.0.1**
- fix: spelling mistake of "surprise"
2023-01-21 21:23:48 +00:00
**8.0.0**
- feature: 🎉 edit images with instructions alone!
2023-01-22 01:36:47 +00:00
- feature: when editing an image add `--gif` to create a comparision gif
2023-01-22 15:11:26 +00:00
- feature: `aimg edit --surprise-me --gif my-image.jpg` for some fun pre-programmed edits
2023-01-21 21:23:48 +00:00
- feature: prune-ckpt command also removes the non-ema weights
2023-01-18 06:43:23 +00:00
**7.6.0**
2023-01-18 17:00:25 +00:00
- fix: default model config was broken
- feature: print version with `--version`
2023-01-18 06:43:23 +00:00
- feature: ability to load safetensors
2023-01-17 06:48:27 +00:00
- feature: 🎉 outpainting. Examples: `--outpaint up10,down300,left50,right50` or `--outpaint all100` or `--outpaint u100,d200,l300,r400`
2023-01-16 23:20:55 +00:00
**7.4.3**
- fix: handle old pytorch lightning imports with a graceful failure (fixes #161 )
- fix: handle failed image generations better (fixes #83 )
2023-01-16 20:56:05 +00:00
**7.4.2**
- fix: run face enhancement on GPU for 10x speedup
2023-01-16 10:51:49 +00:00
**7.4.1**
- fix: incorrect config files being used for non-1.0 models
2023-01-01 22:54:49 +00:00
**7.4.0**
- feature: 🎉 finetune your own image model. kind of like dreambooth. Read instructions on ["Concept Training" ](docs/concept-training.md ) page
- 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
2022-12-20 09:43:04 +00:00
**7.3.0**
- feature: 🎉 depth-based image-to-image generations (and inpainting)
2022-12-21 17:36:49 +00:00
- fix: k_euler_a produces more consistent images per seed (randomization respects the seed again)
2022-12-20 09:43:04 +00:00
2022-12-20 05:32:41 +00:00
**7.2.0**
- feature: 🎉 tile in a single dimension ("x" or "y"). This enables, with a bit of luck, generation of 360 VR images.
Try this for example: `imagine --tile-x -w 1024 -h 512 "360 degree equirectangular panorama photograph of the mountains" --upscale`
2022-12-19 05:52:05 +00:00
**7.1.1**
- fix: memory/speed regression introduced in 6.1.0
- fix: model switching now clears memory better, thus avoiding out of memory errors
2022-12-07 18:16:38 +00:00
**7.1.0**
- feature: 🎉 Stable Diffusion 2.1. Generated people are no longer (completely) distorted.
Use with `--model SD-2.1` or `--model SD-2.0-v`
2022-12-02 09:49:13 +00:00
**7.0.0**
- 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-11-28 08:34:33 +00:00
**6.1.2**
- fix: add back in memory-efficient algorithms
2022-10-24 05:42:17 +00:00
2022-11-27 22:02:07 +00:00
**6.1.1**
- feature: xformers will be used if available (for faster generation)
- fix: version metadata was broken
2022-11-25 16:00:30 +00:00
2022-11-26 22:52:28 +00:00
**6.1.0**
2023-11-22 22:50:23 +00:00
- feature: use different default steps and image sizes depending on sampler and model selected
2022-11-26 22:52:28 +00:00
- fix: #110 use proper version in image metadata
2023-12-08 04:57:55 +00:00
- refactor: solvers all have their own class that inherits from ImageSolver
2022-11-24 08:48:05 +00:00
- feature: 🎉🎉🎉 Stable Diffusion 2.0
2022-11-26 22:52:28 +00:00
- `--model SD-2.0` to use (it makes worse images than 1.5 though...)
- Tested on macOS and Linux
2022-11-24 08:48:05 +00:00
- All samplers working for new 512x512 model
- New inpainting model working
2022-11-26 23:37:45 +00:00
- 768x768 model working for all samplers except PLMS (`--model SD-2.0-v `)
2022-11-24 08:48:05 +00:00
2022-11-16 02:22:23 +00:00
**5.1.0**
- feature: add progress image callback
2022-11-13 22:58:05 +00:00
**5.0.1**
- fix: support larger images on M1. Fixes #8
- fix: support CPU generation by disabling autocast on CPU. Fixes #81
2022-11-13 05:09:08 +00:00
**5.0.0**
- feature: 🎉 inpainting support using new inpainting model from RunwayML. It works really well! By default, the
inpainting model will automatically be used for any image-masking task
2022-11-26 03:07:57 +00:00
- feature: 🎉 new default sampler makes image generation more than twice as fast
2022-11-11 18:16:59 +00:00
- feature: added `DPM++ 2S a` and `DPM++ 2M` samplers.
2022-11-13 04:13:33 +00:00
- feature: improve progress image logging
2022-11-13 04:39:45 +00:00
- fix: fix bug with `--show-work` . fixes #84
2022-11-26 22:52:28 +00:00
- fix: add workaround for pytorch bug affecting macOS users using the new `DPM++ 2S a` and `DPM++ 2M` samplers.
2022-11-13 04:13:33 +00:00
- fix: add workaround for pytorch mps bug affecting `k_dpm_fast` sampler. fixes #75
2022-11-26 22:52:28 +00:00
- fix: larger image sizes now work on macOS. fixes #8
2022-11-11 18:16:59 +00:00
2022-10-24 05:42:17 +00:00
**4.1.0**
- feature: allow dynamic switching between models/weights `--model SD-1.5` or `--model SD-1.4` or `--model path/my-custom-weights.ckpt` )
- feature: log total progress when generating images (image X out of Y)
2022-10-22 09:25:54 +00:00
**4.0.0**
- feature: stable diffusion 1.5 (slightly improved image quality)
2022-10-18 06:41:26 +00:00
- 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 05:07:58 +00:00
- feature: update k-diffusion samplers. add k_dpm_adaptive and k_dpm_fast
2022-10-14 03:49:48 +00:00
- feature: img2img/inpainting supported on all samplers
- refactor: consolidates img2img/txt2img code. consolidates schedules. consolidates masking
- ci: minor logging improvements
2022-10-13 03:35:45 +00:00
**3.0.1**
- fix: k-samplers were broken
2022-10-10 08:22:11 +00:00
**3.0.0**
2022-10-13 03:35:45 +00:00
- feature: improved safety filter
2022-09-28 06:42:42 +00:00
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-09 01:34:35 +00:00
**2.4.0**
2022-10-13 03:35:45 +00:00
- 🎉 feature: prompt expansion
- feature: make (blip) photo captions more descriptive
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-09 01:34:35 +00:00
2022-10-07 00:26:00 +00:00
**2.3.1**
- fix: face fidelity default was broken
2022-10-06 06:35:05 +00:00
**2.3.0**
- feature: model weights file can be specified via `--model-weights-path` argument at the command line
- fix: set face fidelity default back to old value
- fix: handle small images without throwing exception. credit to @NiclasEriksen
- docs: add setuptools-rust as dependency for macos
2022-10-04 13:21:37 +00:00
**2.2.1**
- fix: init image is fully ignored if init-image-strength = 0
2022-10-03 23:35:57 +00:00
**2.2.0**
- feature: face enhancement fidelity is now configurable
2022-09-28 06:42:42 +00:00
**2.1.0**
- [improved masking accuracy from clipseg ](https://github.com/timojl/clipseg/issues/8#issuecomment-1259150865 )
2022-09-25 20:07:27 +00:00
2022-09-28 04:52:45 +00:00
**2.0.3**
- fix memory leak in face enhancer
- fix blurry inpainting
- fix for pillow compatibility
2022-09-25 20:07:27 +00:00
**2.0.0**
2022-09-26 04:55:25 +00:00
- 🎉 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.
- 🎉 feature: interactive prompt added. access by running `aimg`
- 🎉 feature: Specify advanced text based masks using boolean logic and strength modifiers. Mask descriptions must be lowercase. Keywords uppercase.
2022-09-25 20:07:27 +00:00
Valid symbols: `AND` , `OR` , `NOT` , `()` , and mask strength modifier `{+0.1}` where `+` can be any of `+ - * /` . Single character boolean operators also work (`|`, `&` , `!` )
2022-09-26 04:55:25 +00:00
- 🎉 feature: apply mask edits to original files with `mask_modify_original` (on by default)
2022-09-24 05:58:48 +00:00
- feature: auto-rotate images if exif data specifies to do so
2022-09-26 04:55:25 +00:00
- fix: mask boundaries are more accurate
2022-09-24 05:58:48 +00:00
- fix: accept mask images in command line
2022-09-24 21:41:25 +00:00
- fix: img2img algorithm was wrong and wouldn't at values close to 0 or 1
2022-09-24 05:58:48 +00:00
2022-09-22 17:34:34 +00:00
**1.6.2**
- fix: another bfloat16 fix
2022-09-22 15:26:55 +00:00
**1.6.1**
2022-11-26 03:07:57 +00:00
- fix: make sure image tensors come to the CPU as float32 so there aren't compatibility issues with non-bfloat16 cpus
2022-09-22 05:44:49 +00:00
**1.6.0**
- fix: *maybe* address #13 with `expected scalar type BFloat16 but found Float`
- at minimum one can specify `--precision full` now and that will probably fix the issue
- feature: tile mode can now be specified per-prompt
2022-09-20 15:42:00 +00:00
2022-09-21 00:05:11 +00:00
**1.5.3**
2022-09-21 00:03:33 +00:00
- fix: missing config file for describe feature
**1.5.1**
2022-09-20 15:42:00 +00:00
- img2img now supported with PLMS (instead of just DDIM)
- added image captioning feature `aimg describe dog.jpg` => `a brown dog sitting on grass`
- added new commandline tool `aimg` for additional image manipulation functionality
**1.4.0**
- support multiple additive targets for masking with `|` symbol. Example: "fruit|stem|fruit stem"
**1.3.0**
- added prompt based image editing. Example: "fruit => gold coins"
- test coverage improved
**1.2.0**
- allow urls as init-images
2022-10-07 00:26:00 +00:00
**previous**
2022-09-20 15:42:00 +00:00
- img2img actually does # of steps you specify
2022-09-11 20:56:41 +00:00
- performance optimizations
2022-09-20 15:42:00 +00:00
- numerous other changes
2022-09-11 06:27:22 +00:00
2022-09-09 04:30:20 +00:00
2022-09-12 04:36:14 +00:00
## Not Supported
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-09 01:34:35 +00:00
- exploratory features that don't work well
2022-09-12 04:36:14 +00:00
2023-03-11 02:55:21 +00:00