Commit Graph

3835 Commits

Author SHA1 Message Date
psychedelicious
4ac447cf74 fix(ui): fix middleware types 2023-04-02 19:48:03 +10:00
psychedelicious
f9c243d29f feat(ui): handle random seeds 2023-04-02 18:41:54 +10:00
psychedelicious
eda334bc34 feat(ui): add nodes mode script 2023-04-02 17:48:12 +10:00
maryhipp
f2a2f326ce chore(ui): add support for package mode 2023-04-01 14:50:56 +11:00
maryhipp
7b10762ea1 feat(ui): get intermediate images working but types are stubbed out 2023-04-01 14:50:56 +11:00
maryhipp
2db2c986d1 feat(ui): img2img implementation 2023-04-01 14:50:56 +11:00
maryhipp
40b2d2b05b feat(ui): write separate nodes socket layer, txt2img generating and rendering w single node 2023-04-01 14:50:56 +11:00
maryhipp
4fe49718e0 feat(ui): start hooking up dynamic txt2img node generation, create middleware for session invocation 2023-04-01 14:50:56 +11:00
maryhipp
3ebd289a59 add optional apiUrl prop 2023-04-01 14:50:56 +11:00
maryhipp
1bd246e9a9 use reference to sampler_name 2023-04-01 14:50:56 +11:00
maryhipp
e75141150f use reference to sampler_name 2023-04-01 14:50:56 +11:00
maryhipp
660e665cf3 start building out node translations from frontend state and add notes about missing features 2023-04-01 14:50:56 +11:00
psychedelicious
ca41a52174 feat(ui): wip nodes
- extract api client method arg types instead of manually declaring them
- update example to display images
- general tidy up
2023-04-01 14:50:56 +11:00
psychedelicious
999c3a443b feat(ui): add socketio types 2023-04-01 14:50:56 +11:00
psychedelicious
21fb41ef56 fix(ui): fix scrollbar styles typing and prop
just noticed the typo, and made the types stronger.
2023-04-01 14:50:56 +11:00
psychedelicious
4f99b005b1 fix(ui): disable OG web server socket connection 2023-04-01 14:50:56 +11:00
psychedelicious
d86588ec76 chore(ui): regenerate api client 2023-04-01 14:50:56 +11:00
psychedelicious
6c1f666242 feat(ui): nodes cancel 2023-04-01 14:50:56 +11:00
psychedelicious
07428769df feat(ui): more nodes api prototyping 2023-04-01 14:50:56 +11:00
psychedelicious
b49338b464 feat(ui): generate object args for api client 2023-04-01 14:50:56 +11:00
psychedelicious
92996898f2 feat(backend): fixes for nodes/generator 2023-04-01 14:50:56 +11:00
psychedelicious
d66d844dd2 chore(ui): update openapi.json 2023-04-01 14:50:56 +11:00
psychedelicious
d46d52ca63 chore(ui): update .eslintignore, .prettierignore 2023-04-01 14:50:56 +11:00
psychedelicious
427104f936 chore(ui): organize generated files 2023-04-01 14:50:56 +11:00
psychedelicious
16442e8f15 fix(ui): update client & nodes test code w/ new Edge type 2023-04-01 14:50:56 +11:00
psychedelicious
1c7d92dc48 feat(ui): add axios client generator and simple example 2023-04-01 14:50:56 +11:00
creachec
ee86eedf01
Right link on pytorch installer for linux rocm
Right link on pytorch installer for linux rocm
2023-03-31 17:22:00 -03:00
Lincoln Stein
c4e6511a59
Add support for yet another TI embedding format (main version) (#3050)
- This PR adds support for embedding files that contain a single key
"emb_params". The only example I know of this format is the
"EasyNegative" embedding on HuggingFace, but there are certainly others.

- This PR also adds support for loading embedding files that have been
saved in safetensors format.

- It also cleans up the code so that the logic of probing for and
selecting the right format parser is clear.

- This is the same as #3045, which is on the 2.3 branch.
2023-03-31 03:57:57 -04:00
Lincoln Stein
44843be4c8
Merge branch 'main' into enhance/support-another-embedding-format-main 2023-03-30 23:16:52 -04:00
Lincoln Stein
054e963bef
add basic autocomplete functionality to node cli (#3035)
- Commands, invocations and their parameters will now autocomplete using
introspection.
- Two types of parameter *arguments* will also autocomplete:
  - --sampler_name  will autocomplete the scheduler name
  - --model will autocomplete the model name
- There don't seem to be commands for reading/writing image files yet,
so path autocompletion is not implemented
2023-03-30 08:25:36 -04:00
Lincoln Stein
afb66a7884
Merge branch 'main' into feat/node-cli-autocompleter 2023-03-30 07:51:51 -04:00
Lincoln Stein
b9df9e26f2
Merge branch 'main' into enhance/support-another-embedding-format-main 2023-03-30 07:51:23 -04:00
Lincoln Stein
25ae36ceb5
I18n build mode (#3051)
Add build mode option to bundle english translation with UI
2023-03-29 22:26:45 -04:00
Lincoln Stein
3ae8daedaa
Merge branch 'main' into i18n-build-mode 2023-03-29 22:26:17 -04:00
Lincoln Stein
e11c1d66ab handle multiple tokens and embeddings in single file 2023-03-29 22:05:06 -04:00
Lincoln Stein
b913e1e11e
improve importation and conversion of legacy checkpoint files (#3053)
A long-standing issue with importing legacy checkpoints (both ckpt and
safetensors) is that the user has to identify the correct config file,
either by providing its path or by selecting which type of model the
checkpoint is (e.g. "v1 inpainting"). In addition, some users wish to
provide custom VAEs for use with the model. Currently this is done in
the WebUI by importing the model, editing it, and then typing in the
path to the VAE.

## Model configuration file selection

To improve the user experience, the model manager's `heuristic_import()`
method has been enhanced as follows:

1. When initially called, the caller can pass a config file path, in
which case it will be used.

2. If no config file provided, the method looks for a .yaml file in the
same directory as the model which bears the same basename. e.g.
```
   my-new-model.safetensors
   my-new-model.yaml
```
The yaml file is then used as the configuration file for importation and
conversion.

3. If no such file is found, then the method opens up the checkpoint and
probes it to determine whether it is V1, V1-inpaint or V2. If it is a V1
format, then the appropriate v1-inference.yaml config file is used.
Unfortunately there are two V2 variants that cannot be distinguished by
introspection.

4. If the probe algorithm is unable to determine the model type, then
its last-ditch effort is to execute an optional callback function that
can be provided by the caller. This callback, named
`config_file_callback` receives the path to the legacy checkpoint and
returns the path to the config file to use. The CLI uses to put up a
multiple choice prompt to the user. The WebUI **could** use this to
prompt the user to choose from a radio-button selection.

5. If the config file cannot be determined, then the import is
abandoned.

## Custom VAE Selection

The user can attach a custom VAE to the imported and converted model by
copying the desired VAE into the same directory as the file to be
imported, and giving it the same basename. E.g.:

```
    my-new-model.safetensors
    my-new-model.vae.pt
```

For this to work, the VAE must end with ".vae.pt", ".vae.ckpt", or
".vae.safetensors". The indicated VAE will be converted into diffusers
format and stored with the converted models file, so the ".pt" file can
be deleted after conversion.

No facility is currently provided to swap a diffusers VAE at import
time, but this can be done after the fact using the WebUI and CLI's
model editing functions.

Note that this is the same fix that was applied to the 2.3 branch in
#3043 . This applies to `main`.
2023-03-29 17:22:15 -04:00
Lincoln Stein
3c4b6d5735
Merge branch 'main' into enhance/heuristic-import-improvements 2023-03-29 16:54:43 -04:00
Mary Hipp Rogers
e6123eac19
Merge branch 'main' into i18n-build-mode 2023-03-29 05:33:14 -07:00
Lincoln Stein
30ca25897e
Fix bugs in online ckpt conversion of 2.0 models (#3057)
## Enable the on-the-fly conversion of models based on SD 2.0/2.1 into
diffusers

This commit fixes bugs related to the on-the-fly conversion and loading
of legacy checkpoint models built on SD-2.0 base.

- When legacy checkpoints built on SD-2.0 models were converted
on-the-fly using --ckpt_convert, generation would crash with a precision
incompatibility error. This problem has been found and fixed.
2023-03-28 23:34:53 -04:00
Lincoln Stein
abaee6b9ed
Merge branch 'main' into feat/node-cli-autocompleter 2023-03-28 23:32:10 -04:00
Lincoln Stein
4d7c9e1ab7
Merge branch 'main' into bugfix/convert-2.0-models 2023-03-28 23:01:36 -04:00
Eugene
cc5687f26c [nodes] downgrade fastapi+uvicorn to fix openapi schema 2023-03-28 22:53:20 -04:00
Lincoln Stein
cdb3616dca
Merge branch 'main' into enhance/support-another-embedding-format-main 2023-03-28 21:03:06 -04:00
Mary Hipp Rogers
78e76f26f9
Merge branch 'main' into i18n-build-mode 2023-03-28 11:04:32 -04:00
Lincoln Stein
9a7580dedd fix bugs in online ckpt conversion of 2.0 models
This commit fixes bugs related to the on-the-fly conversion and loading of
legacy checkpoint models built on SD-2.0 base.

- When legacy checkpoints built on SD-2.0 models were converted
  on-the-fly using --ckpt_convert, generation would crash with a
  precision incompatibility error.
2023-03-28 00:17:20 -04:00
Lincoln Stein
dc2da8cff4
Doc: updating ROCm version in documentation (#3041)
The Pytorch ROCm version in the documentation in outdated (`rocm5.2`)
which leads to errors during the installation of InvokeAI.

This PR updates the documentation with the latest Pytorch ROCm `5.4.2`
version.
2023-03-27 22:37:43 -04:00
Lincoln Stein
019a9f0329 address change requests in PR
1. Prompt has changed to "invoke> ".
2. Function to initialize the autocompleter has been renamed "set_autocompleter()"
2023-03-27 12:20:24 -04:00
Lincoln Stein
fe5d9ad171 improve importation and conversion of legacy checkpoint files
A long-standing issue with importing legacy checkpoints (both ckpt and
safetensors) is that the user has to identify the correct config file,
either by providing its path or by selecting which type of model the
checkpoint is (e.g. "v1 inpainting"). In addition, some users wish to
provide custom VAEs for use with the model. Currently this is done in
the WebUI by importing the model, editing it, and then typing in the
path to the VAE.

To improve the user experience, the model manager's
`heuristic_import()` method has been enhanced as follows:

1. When initially called, the caller can pass a config file path, in
which case it will be used.

2. If no config file provided, the method looks for a .yaml file in the
same directory as the model which bears the same basename. e.g.
```
   my-new-model.safetensors
   my-new-model.yaml
```
   The yaml file is then used as the configuration file for
   importation and conversion.

3. If no such file is found, then the method opens up the checkpoint
   and probes it to determine whether it is V1, V1-inpaint or V2.
   If it is a V1 format, then the appropriate v1-inference.yaml config
   file is used. Unfortunately there are two V2 variants that cannot be
   distinguished by introspection.

4. If the probe algorithm is unable to determine the model type, then its
   last-ditch effort is to execute an optional callback function that can
   be provided by the caller. This callback, named `config_file_callback`
   receives the path to the legacy checkpoint and returns the path to the
   config file to use. The CLI uses to put up a multiple choice prompt to
   the user. The WebUI **could** use this to prompt the user to choose
   from a radio-button selection.

5. If the config file cannot be determined, then the import is abandoned.

The user can attach a custom VAE to the imported and converted model
by copying the desired VAE into the same directory as the file to be
imported, and giving it the same basename. E.g.:

```
    my-new-model.safetensors
    my-new-model.vae.pt
```

For this to work, the VAE must end with ".vae.pt", ".vae.ckpt", or
".vae.safetensors". The indicated VAE will be converted into diffusers
format and stored with the converted models file, so the ".pt" file
can be deleted after conversion.

No facility is currently provided to swap a diffusers VAE at import
time, but this can be done after the fact using the WebUI and CLI's
model editing functions.
2023-03-27 11:27:45 -04:00
Mary Hipp
dbc0093b31 Merge remote-tracking branch 'origin' into i18n-build-mode 2023-03-27 10:57:41 -04:00
Mary Hipp
92e512b8b6 add package mode option for i18next 2023-03-27 10:49:52 -04:00