remove line-breaks from tables in CLI

instead I use empty img-tags with defined width in the table headers
This commit is contained in:
mauwii 2022-09-20 10:11:34 +02:00
parent 7335f908af
commit 38c9001e8e
No known key found for this signature in database
GPG Key ID: D923DB04ADB3F5AB

View File

@ -11,9 +11,10 @@ hide:
The `dream.py` script, located in `scripts/dream.py`, provides an interactive interface to image The `dream.py` script, located in `scripts/dream.py`, provides an interactive interface to image
generation similar to the "dream mothership" bot that Stable AI provided on its Discord server. generation similar to the "dream mothership" bot that Stable AI provided on its Discord server.
Unlike the `txt2img.py` and `img2img.py` scripts provided in the original [CompVis/stable-diffusion](https://github.com/CompVis/stable-diffusion) Unlike the `txt2img.py` and `img2img.py` scripts provided in the original
source code repository, the time-consuming initialization of the AI model initialization only [CompVis/stable-diffusion](https://github.com/CompVis/stable-diffusion) source code repository, the
happens once. After that image generation from the command-line interface is very fast. time-consuming initialization of the AI model initialization only happens once. After that image
generation from the command-line interface is very fast.
The script uses the readline library to allow for in-line editing, command history (++up++ and The script uses the readline library to allow for in-line editing, command history (++up++ and
++down++), autocompletion, and more. To help keep track of which prompts generated which images, the ++down++), autocompletion, and more. To help keep track of which prompts generated which images, the
@ -57,8 +58,8 @@ dream> q
The `dream>` prompt's arguments are pretty much identical to those used in the Discord bot, except The `dream>` prompt's arguments are pretty much identical to those used in the Discord bot, except
you don't need to type "!dream" (it doesn't hurt if you do). A significant change is that creation you don't need to type "!dream" (it doesn't hurt if you do). A significant change is that creation
of individual images is now the default unless `--grid` (`-g`) is given. A full list is given in [List of individual images is now the default unless `--grid` (`-g`) is given. A full list is given in
of prompt arguments](#list-of-prompt-arguments). [List of prompt arguments](#list-of-prompt-arguments).
## Arguments ## Arguments
@ -67,41 +68,43 @@ global defaults, such as the directory for image outputs and the location of the
### List of arguments recognized at the command line ### List of arguments recognized at the command line
These command-line arguments can be passed to `dream.py` when you first run it from the Windows, Mac These command-line arguments can be passed to `dream.py` when you first run it from the Windows, Mac
or Linux command line. Some set defaults that can be overridden on a per-prompt basis (see [List of or Linux command line. Some set defaults that can be overridden on a per-prompt basis (see [List of
prompt arguments] (#list-of-prompt-arguments). Others prompt arguments] (#list-of-prompt-arguments). Others
Argument | Shortcut | Default | Description | | Argument <img width="240" align="right"/> | Shortcut <img width="100" align="right"/> | Default <img width="320" align="right"/> | Description |
------------------------- | ------------- | ----------------------------- | ----------------------------------------------------------------------------------------------------- | | ----------------------------------------- | ----------------------------------------- | ---------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
`--help` | `-h` | | Print a concise help message. | | `--help` | `-h` | | Print a concise help message. |
`--outdir <path>` | `-o<path>` | `outputs/img_samples` | Location for generated images. | | `--outdir <path>` | `-o<path>` | `outputs/img_samples` | Location for generated images. |
`--prompt_as_dir` | `-p` | `False` | Name output directories using the prompt text. | | `--prompt_as_dir` | `-p` | `False` | Name output directories using the prompt text. |
`--from_file <path>` | | `None` | Read list of prompts from a file. Use `-` to read from<br>standard input | | `--from_file <path>` | | `None` | Read list of prompts from a file. Use `-` to read from standard input |
`--model <modelname>` | | `stable-diffusion-1.4` | Loads model specified in configs/models.yaml. Currently<br>one of "stable-diffusion-1.4" or "laion400m" | | `--model <modelname>` | | `stable-diffusion-1.4` | Loads model specified in configs/models.yaml. Currently one of "stable-diffusion-1.4" or "laion400m" |
`--full_precision` | `-F` | `False` | Run in slower full-precision mode. Needed for Macintosh<br>M1/M2 hardware and some older video cards. | | `--full_precision` | `-F` | `False` | Run in slower full-precision mode. Needed for Macintosh M1/M2 hardware and some older video cards. |
`--web` | | `False` | Start in web server mode | | `--web` | | `False` | Start in web server mode |
`--host <ip addr>` | | `localhost` | Which network interface web server should listen on.<br>Set to 0.0.0.0 to listen on any. | | `--host <ip addr>` | | `localhost` | Which network interface web server should listen on. Set to 0.0.0.0 to listen on any. |
`--port <port>` | | `9090` | Which port web server should listen for requests on. | | `--port <port>` | | `9090` | Which port web server should listen for requests on. |
`--config <path>` | | `configs/models.yaml` | Configuration file for models and their weights. | | `--config <path>` | | `configs/models.yaml` | Configuration file for models and their weights. |
`--iterations <int>` | `-n<int>` | `1` | How many images to generate per prompt. | | `--iterations <int>` | `-n<int>` | `1` | How many images to generate per prompt. |
`--grid` | `-g` | `False` | Save all image series as a grid rather than individually. | | `--grid` | `-g` | `False` | Save all image series as a grid rather than individually. |
`--sampler <sampler>` | `-A<sampler>` | `k_lms` | Sampler to use. Use -h to get list of available samplers. | | `--sampler <sampler>` | `-A<sampler>` | `k_lms` | Sampler to use. Use `-h` to get list of available samplers. |
`--seamless` | | `False` | Create interesting effects by tiling elements of the image. | | `--seamless` | | `False` | Create interesting effects by tiling elements of the image. |
`--embedding_path <path>` | | `None` | Path to pre-trained embedding manager checkpoints,<br>for custom models | | `--embedding_path <path>` | | `None` | Path to pre-trained embedding manager checkpoints, for custom models |
`--gfpgan_dir` | | `src/gfpgan` | Path to where GFPGAN is installed. | | `--gfpgan_dir` | | `src/gfpgan` | Path to where GFPGAN is installed. |
`--gfpgan_model_path` | | see bellow\* | Path to GFPGAN model file, relative to `--gfpgan_dir`. | | `--gfpgan_model_path` | | `experiments/pretrained_models/GFPGANv1.3.pth` | Path to GFPGAN model file, relative to `--gfpgan_dir`. |
`--device <device>` | `-d<device>` | `torch.cuda.current_device()` | Device to run SD on, e.g. "cuda:0" | | `--device <device>` | `-d<device>` | `torch.cuda.current_device()` | Device to run SD on, e.g. "cuda:0" |
\*`experiments/pretrained_models/GFPGANv1.3.pth`
#### deprecated #### deprecated
These arguments are deprecated but still work: These arguments are deprecated but still work:
| Argument | Shortcut | Default | Description | <figure markdown>
| ------------------ | -------- | ------- | -------------------------------------------------------------- |
| Argument | Shortcut | Default | Description |
| ------------------ | -------- | ------- | --------------------------------------------------------------- |
| `--weights <path>` | | `None` | Pth to weights file; use `--model stable-diffusion-1.4` instead | | `--weights <path>` | | `None` | Pth to weights file; use `--model stable-diffusion-1.4` instead |
| `--laion400m` | `-l` | `False` | Use older LAION400m weights; use `--model=laion400m` instead | | `--laion400m` | `-l` | `False` | Use older LAION400m weights; use `--model=laion400m` instead |
</figure>
!!! note !!! note
@ -112,9 +115,9 @@ These arguments are deprecated but still work:
### List of prompt arguments ### List of prompt arguments
After the `dream.py` script initializes, it will present you with a **`dream>`** prompt. Here you can After the `dream.py` script initializes, it will present you with a **`dream>`** prompt. Here you
enter information to generate images from text (txt2img), to embellish an existing image or sketch can enter information to generate images from text (txt2img), to embellish an existing image or
(img2img), or to selectively alter chosen regions of the image (inpainting). sketch (img2img), or to selectively alter chosen regions of the image (inpainting).
#### txt2img #### txt2img
@ -128,27 +131,27 @@ enter information to generate images from text (txt2img), to embellish an existi
Those are the `dream` commands that apply to txt2img: Those are the `dream` commands that apply to txt2img:
| Argument | Shortcut | Default | Description | | Argument <img width="680" align="right"/> | Shortcut <img width="420" align="right"/> | Default <img width="480" align="right"/> | Description |
| ----------------------------- | ----------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | ----------------------------------------- | ----------------------------------------- | ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `"my prompt"` | | | Text prompt to use. The quotation marks are optional. | | `"my prompt"` | | | Text prompt to use. The quotation marks are optional. |
| `--width <int>` | `-W<int>` | `512` | Width of generated image | | `--width <int>` | `-W<int>` | `512` | Width of generated image |
| `--height <int>` | `-H<int>` | `512` | Height of generated image | | `--height <int>` | `-H<int>` | `512` | Height of generated image |
| `--iterations <int>` | `-n<int>` | `1` | How many images to generate from this prompt | | `--iterations <int>` | `-n<int>` | `1` | How many images to generate from this prompt |
| `--steps <int>` | `-s<int>` | `50` | How many steps of refinement to apply | | `--steps <int>` | `-s<int>` | `50` | How many steps of refinement to apply |
| `--cfg_scale <float>` | `-C<float>` | `7.5` | How hard to try to match the prompt to the generated<br>image; any number greater than 0.0<br>works, but the useful range is roughly 5.0 to 20.0 | | `--cfg_scale <float>` | `-C<float>` | `7.5` | How hard to try to match the prompt to the generated image; any number greater than 0.0 works, but the useful range is roughly 5.0 to 20.0 |
| `--seed <int>` | `-S<int>` | `None` | Set the random seed for the next series of images.<br>This can be used to recreate an image generated previously. | | `--seed <int>` | `-S<int>` | `None` | Set the random seed for the next series of images. This can be used to recreate an image generated previously. |
| `--sampler <sampler>` | `-A<sampler>` | `k_lms` | Sampler to use. Use `-h` to get list of available samplers. | | `--sampler <sampler>` | `-A<sampler>` | `k_lms` | Sampler to use. Use `-h` to get list of available samplers. |
| `--grid` | `-g` | `False` | Turn on grid mode to return a single image combining<br>all the images generated by this prompt | | `--grid` | `-g` | `False` | Turn on grid mode to return a single image combining all the images generated by this prompt |
| `--individual` | `-i` | `True` | Turn off grid mode (deprecated; leave off `--grid` instead) | | `--individual` | `-i` | `True` | Turn off grid mode (deprecated; leave off `--grid` instead) |
| `--outdir <path>` | `-o<path>` | `outputs/img_samples` | Temporarily change the location of these images | | `--outdir <path>` | `-o<path>` | `outputs/img_samples` | Temporarily change the location of these images |
| `--seamless` | | `False` | Activate seamless tiling for interesting effects | | `--seamless` | | `False` | Activate seamless tiling for interesting effects |
| `--log_tokenization` | `-t` | `False` | Display a color-coded list of the parsed tokens<br>derived from the prompt | | `--log_tokenization` | `-t` | `False` | Display a color-coded list of the parsed tokens derived from the prompt |
| `--skip_normalization` | `-x` | `False` | Weighted subprompts will not be normalized. See<br>[Weighted Prompts](./OTHER.md#weighted-prompts) | | `--skip_normalization` | `-x` | `False` | Weighted subprompts will not be normalized. See [Weighted Prompts](./OTHER.md#weighted-prompts) |
| `--upscale <int> <float>` | `-U <int> <float>` | `-U 1 0.75` | Upscale image by magnification factor (2, 4), and<br>set strength of upscaling (0.0-1.0).<br>If strength not set, will default to 0.75. | | `--upscale <int> <float>` | `-U <int> <float>` | `-U 1 0.75` | Upscale image by magnification factor (2, 4), and set strength of upscaling (0.0-1.0). If strength not set, will default to 0.75. |
| `--gfpgan_strength <float>` | `-G <float>` | `-G0` | Fix faces using the GFPGAN algorithm; argument<br>indicates how hard the algorithm should try (0.0-1.0) | | `--gfpgan_strength <float>` | `-G <float>` | `-G0` | Fix faces using the GFPGAN algorithm; argument indicates how hard the algorithm should try (0.0-1.0) |
| `--save_original` | `-save_orig` | `False` | When upscaling or fixing faces, this will cause<br>the original image to be saved rather than replaced. | | `--save_original` | `-save_orig` | `False` | When upscaling or fixing faces, this will cause the original image to be saved rather than replaced. |
| `--variation <float>` | `-v<float>` | `0.0` | Add a bit of noise (0.0=none, 1.0=high) to the image<br>in order to generate a series of variations. Usually<br>used in combination with `-S<seed>` and `-n<int>`<br>to generate a series a riffs on a starting image.<br>See [Variations](./VARIATIONS.md). | | `--variation <float>` | `-v<float>` | `0.0` | Add a bit of noise (0.0=none, 1.0=high) to the image in order to generate a series of variations. Usually used in combination with `-S<seed>` and `-n<int>` to generate a series a riffs on a starting image. See [Variations](./VARIATIONS.md). |
| `--with_variations <pattern>` | `-V<pattern>` | `None` | Combine two or more variations. See [Variations](./VARIATIONS.md)<br>for now to use this. | | `--with_variations <pattern>` | `-V<pattern>` | `None` | Combine two or more variations. See [Variations](./VARIATIONS.md) for now to use this. |
!!! note !!! note
@ -168,19 +171,19 @@ Those are the `dream` commands that apply to txt2img:
than 640x480. Otherwise the image size will be identical to the provided photo and you may run out than 640x480. Otherwise the image size will be identical to the provided photo and you may run out
of memory if it is large. of memory if it is large.
Repeated chaining of img2img on an image can result in significant color shifts Repeated chaining of img2img on an image can result in significant color shifts in the output,
in the output, especially if run with lower strength. Color correction can be especially if run with lower strength. Color correction can be run against a reference image to fix
run against a reference image to fix this issue. Use the original input image to the this issue. Use the original input image to the chain as the the reference image for each step in
chain as the the reference image for each step in the chain. the chain.
In addition to the command-line options recognized by txt2img, img2img accepts additional options: In addition to the command-line options recognized by txt2img, img2img accepts additional options:
| Argument | Shortcut | Default | Description | | Argument <img width="160" align="right"/> | Shortcut | Default | Description |
| --------------------- | ---------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------- | | ----------------------------------------- | ----------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `--init_img <path>` | `-I<path>` | `None` | Path to the initialization image | | `--init_img <path>` | `-I<path>` | `None` | Path to the initialization image |
| `--init_color <path>` | | `None` | Path to reference image for color correction | | `--init_color <path>` | | `None` | Path to reference image for color correction |
| `--fit` | `-F` | `False` | Scale the image to fit into the specified -H and -W dimensions | | `--fit` | `-F` | `False` | Scale the image to fit into the specified -H and -W dimensions |
| `--strength <float>` | `-f<float>` | `0.75` | How hard to try to match the prompt to the initial image. Ranges from 0.0-0.99,<br>with higher values replacing the initial image completely. | | `--strength <float>` | `-f<float>` | `0.75` | How hard to try to match the prompt to the initial image. Ranges from 0.0-0.99, with higher values replacing the initial image completely. |
#### Inpainting #### Inpainting
@ -198,19 +201,19 @@ In addition to the command-line options recognized by txt2img, img2img accepts a
Inpainting accepts all the arguments used for txt2img and img2img, as well as the `--mask` (`-M`) Inpainting accepts all the arguments used for txt2img and img2img, as well as the `--mask` (`-M`)
argument: argument:
| Argument | Shortcut | Default | Description | | Argument <img width="100" align="right"/> | Shortcut | Default | Description |
| -------------------- | ---------- | ------- | --------------------------------------------------------------------------------------------------- | | ----------------------------------------- | ---------- | ------- | ------------------------------------------------------------------------------------------------ |
| `--init_mask <path>` | `-M<path>` | `None` | Path to an image the same size as the initial_image, with areas for<br>inpainting made transparent. | | `--init_mask <path>` | `-M<path>` | `None` | Path to an image the same size as the initial_image, with areas for inpainting made transparent. |
## Command-line editing and completion ## Command-line editing and completion
If you are on a Macintosh or Linux machine, the command-line offers convenient history tracking, If you are on a Macintosh or Linux machine, the command-line offers convenient history tracking,
editing, and command completion. editing, and command completion.
- To scroll through previous commands and potentially edit/reuse them, use the ++up++ and ++down++ cursor - To scroll through previous commands and potentially edit/reuse them, use the ++up++ and ++down++
keys. cursor keys.
- To edit the current command, use the ++left++ and ++right++ cursor keys to position the cursor, and then - To edit the current command, use the ++left++ and ++right++ cursor keys to position the cursor,
++backspace++, ++delete++ or ++insert++ characters. and then ++backspace++, ++delete++ or ++insert++ characters.
- To move to the very beginning of the command, type ++ctrl+a++ (or ++command+a++ on the Mac) - To move to the very beginning of the command, type ++ctrl+a++ (or ++command+a++ on the Mac)
- To move to the end of the command, type ++ctrl+e++. - To move to the end of the command, type ++ctrl+e++.
- To cut a section of the command, position the cursor where you want to start cutting and type - To cut a section of the command, position the cursor where you want to start cutting and type
@ -220,7 +223,7 @@ editing, and command completion.
Windows users can get similar, but more limited, functionality if they launch `dream.py` with the Windows users can get similar, but more limited, functionality if they launch `dream.py` with the
"winpty" program: "winpty" program:
```cmd ```batch
winpty python scripts\dream.py winpty python scripts\dream.py
``` ```
@ -233,8 +236,8 @@ your command and press tab. A list of potential completions will be presented to
type a little more, hit tab again, and eventually autocomplete what you want. type a little more, hit tab again, and eventually autocomplete what you want.
When specifying file paths using the one-letter shortcuts, the CLI will attempt to complete When specifying file paths using the one-letter shortcuts, the CLI will attempt to complete
pathnames for you. This is most handy for the `-I` (init image) and `-M` (init mask) paths. To initiate pathnames for you. This is most handy for the `-I` (init image) and `-M` (init mask) paths. To
completion, start the path with a slash `/` or `./`, for example: initiate completion, start the path with a slash `/` or `./`, for example:
```bash ```bash
dream> "zebra with a mustache" -I./test-pictures<TAB> dream> "zebra with a mustache" -I./test-pictures<TAB>