mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
update index and changelog
This commit is contained in:
parent
0932b4affa
commit
2923dfaed1
@ -4,180 +4,275 @@ title: Changelog
|
|||||||
|
|
||||||
# :octicons-log-16: **Changelog**
|
# :octicons-log-16: **Changelog**
|
||||||
|
|
||||||
|
## v2.2.4 <small>(11 December 2022)</small>
|
||||||
|
|
||||||
|
**the `invokeai` directory**
|
||||||
|
|
||||||
|
Previously there were two directories to worry about, the directory that
|
||||||
|
contained the InvokeAI source code and the launcher scripts, and the `invokeai`
|
||||||
|
directory that contained the models files, embeddings, configuration and
|
||||||
|
outputs. With the 2.2.4 release, this dual system is done away with, and
|
||||||
|
everything, including the `invoke.bat` and `invoke.sh` launcher scripts, now
|
||||||
|
live in a directory named `invokeai`. By default this directory is located in
|
||||||
|
your home directory (e.g. `\Users\yourname` on Windows), but you can select
|
||||||
|
where it goes at install time.
|
||||||
|
|
||||||
|
After installation, you can delete the install directory (the one that the zip
|
||||||
|
file creates when it unpacks). Do **not** delete or move the `invokeai`
|
||||||
|
directory!
|
||||||
|
|
||||||
|
**Initialization file `invokeai/invokeai.init`**
|
||||||
|
|
||||||
|
You can place frequently-used startup options in this file, such as the default
|
||||||
|
number of steps or your preferred sampler. To keep everything in one place, this
|
||||||
|
file has now been moved into the `invokeai` directory and is named
|
||||||
|
`invokeai.init`.
|
||||||
|
|
||||||
|
**To update from Version 2.2.3**
|
||||||
|
|
||||||
|
The easiest route is to download and unpack one of the 2.2.4 installer files.
|
||||||
|
When it asks you for the location of the `invokeai` runtime directory, respond
|
||||||
|
with the path to the directory that contains your 2.2.3 `invokeai`. That is, if
|
||||||
|
`invokeai` lives at `C:\Users\fred\invokeai`, then answer with `C:\Users\fred`
|
||||||
|
and answer "Y" when asked if you want to reuse the directory.
|
||||||
|
|
||||||
|
The `update.sh` (`update.bat`) script that came with the 2.2.3 source installer
|
||||||
|
does not know about the new directory layout and won't be fully functional.
|
||||||
|
|
||||||
|
**To update to 2.2.5 (and beyond) there's now an update path**
|
||||||
|
|
||||||
|
As they become available, you can update to more recent versions of InvokeAI
|
||||||
|
using an `update.sh` (`update.bat`) script located in the `invokeai` directory.
|
||||||
|
Running it without any arguments will install the most recent version of
|
||||||
|
InvokeAI. Alternatively, you can get set releases by running the `update.sh`
|
||||||
|
script with an argument in the command shell. This syntax accepts the path to
|
||||||
|
the desired release's zip file, which you can find by clicking on the green
|
||||||
|
"Code" button on this repository's home page.
|
||||||
|
|
||||||
|
**Other 2.2.4 Improvements**
|
||||||
|
|
||||||
|
- Fix InvokeAI GUI initialization by @addianto in #1687
|
||||||
|
- fix link in documentation by @lstein in #1728
|
||||||
|
- Fix broken link by @ShawnZhong in #1736
|
||||||
|
- Remove reference to binary installer by @lstein in #1731
|
||||||
|
- documentation fixes for 2.2.3 by @lstein in #1740
|
||||||
|
- Modify installer links to point closer to the source installer by @ebr in
|
||||||
|
#1745
|
||||||
|
- add documentation warning about 1650/60 cards by @lstein in #1753
|
||||||
|
- Fix Linux source URL in installation docs by @andybearman in #1756
|
||||||
|
- Make install instructions discoverable in readme by @damian0815 in #1752
|
||||||
|
- typo fix by @ofirkris in #1755
|
||||||
|
- Non-interactive model download (support HUGGINGFACE_TOKEN) by @ebr in #1578
|
||||||
|
- fix(srcinstall): shell installer - cp scripts instead of linking by @tildebyte
|
||||||
|
in #1765
|
||||||
|
- stability and usage improvements to binary & source installers by @lstein in
|
||||||
|
#1760
|
||||||
|
- fix off-by-one bug in cross-attention-control by @damian0815 in #1774
|
||||||
|
- Eventually update APP_VERSION to 2.2.3 by @spezialspezial in #1768
|
||||||
|
- invoke script cds to its location before running by @lstein in #1805
|
||||||
|
- Make PaperCut and VoxelArt models load again by @lstein in #1730
|
||||||
|
- Fix --embedding_directory / --embedding_path not working by @blessedcoolant in
|
||||||
|
#1817
|
||||||
|
- Clean up readme by @hipsterusername in #1820
|
||||||
|
- Optimized Docker build with support for external working directory by @ebr in
|
||||||
|
#1544
|
||||||
|
- disable pushing the cloud container by @mauwii in #1831
|
||||||
|
- Fix docker push github action and expand with additional metadata by @ebr in
|
||||||
|
#1837
|
||||||
|
- Fix Broken Link To Notebook by @VedantMadane in #1821
|
||||||
|
- Account for flat models by @spezialspezial in #1766
|
||||||
|
- Update invoke.bat.in isolate environment variables by @lynnewu in #1833
|
||||||
|
- Arch Linux Specific PatchMatch Instructions & fixing conda install on linux by
|
||||||
|
@SammCheese in #1848
|
||||||
|
- Make force free GPU memory work in img2img by @addianto in #1844
|
||||||
|
- New installer by @lstein
|
||||||
|
|
||||||
|
## v2.2.3 <small>(2 December 2022)</small>
|
||||||
|
|
||||||
|
!!! Note
|
||||||
|
|
||||||
|
This point release removes references to the binary installer from the
|
||||||
|
installation guide. The binary installer is not stable at the current
|
||||||
|
time. First time users are encouraged to use the "source" installer as
|
||||||
|
described in [Installing InvokeAI with the Source Installer](installation/INSTALL_SOURCE.md)
|
||||||
|
|
||||||
|
With InvokeAI 2.2, this project now provides enthusiasts and professionals a
|
||||||
|
robust workflow solution for creating AI-generated and human facilitated
|
||||||
|
compositions. Additional enhancements have been made as well, improving safety,
|
||||||
|
ease of use, and installation.
|
||||||
|
|
||||||
|
Optimized for efficiency, InvokeAI needs only ~3.5GB of VRAM to generate a
|
||||||
|
512x768 image (and less for smaller images), and is compatible with
|
||||||
|
Windows/Linux/Mac (M1 & M2).
|
||||||
|
|
||||||
|
You can see the [release video](https://youtu.be/hIYBfDtKaus) here, which
|
||||||
|
introduces the main WebUI enhancement for version 2.2 -
|
||||||
|
[The Unified Canvas](features/UNIFIED_CANVAS.md). This new workflow is the
|
||||||
|
biggest enhancement added to the WebUI to date, and unlocks a stunning amount of
|
||||||
|
potential for users to create and iterate on their creations. The following
|
||||||
|
sections describe what's new for InvokeAI.
|
||||||
|
|
||||||
|
## v2.2.2 <small>(30 November 2022)</small>
|
||||||
|
|
||||||
|
!!! note
|
||||||
|
|
||||||
|
The binary installer is not ready for prime time. First time users are recommended to install via the "source" installer accessible through the links at the bottom of this page.****
|
||||||
|
|
||||||
|
With InvokeAI 2.2, this project now provides enthusiasts and professionals a
|
||||||
|
robust workflow solution for creating AI-generated and human facilitated
|
||||||
|
compositions. Additional enhancements have been made as well, improving safety,
|
||||||
|
ease of use, and installation.
|
||||||
|
|
||||||
|
Optimized for efficiency, InvokeAI needs only ~3.5GB of VRAM to generate a
|
||||||
|
512x768 image (and less for smaller images), and is compatible with
|
||||||
|
Windows/Linux/Mac (M1 & M2).
|
||||||
|
|
||||||
|
You can see the [release video](https://youtu.be/hIYBfDtKaus) here, which
|
||||||
|
introduces the main WebUI enhancement for version 2.2 -
|
||||||
|
[The Unified Canvas](https://invoke-ai.github.io/InvokeAI/features/UNIFIED_CANVAS/).
|
||||||
|
This new workflow is the biggest enhancement added to the WebUI to date, and
|
||||||
|
unlocks a stunning amount of potential for users to create and iterate on their
|
||||||
|
creations. The following sections describe what's new for InvokeAI.
|
||||||
|
|
||||||
|
## v2.2.0 <small>(2 December 2022)</small>
|
||||||
|
|
||||||
|
With InvokeAI 2.2, this project now provides enthusiasts and professionals a
|
||||||
|
robust workflow solution for creating AI-generated and human facilitated
|
||||||
|
compositions. Additional enhancements have been made as well, improving safety,
|
||||||
|
ease of use, and installation.
|
||||||
|
|
||||||
|
Optimized for efficiency, InvokeAI needs only ~3.5GB of VRAM to generate a
|
||||||
|
512x768 image (and less for smaller images), and is compatible with
|
||||||
|
Windows/Linux/Mac (M1 & M2).
|
||||||
|
|
||||||
|
You can see the [release video](https://youtu.be/hIYBfDtKaus) here, which
|
||||||
|
introduces the main WebUI enhancement for version 2.2 -
|
||||||
|
[The Unified Canvas](features/UNIFIED_CANVAS.md). This new workflow is the
|
||||||
|
biggest enhancement added to the WebUI to date, and unlocks a stunning amount of
|
||||||
|
potential for users to create and iterate on their creations. The following
|
||||||
|
sections describe what's new for InvokeAI.
|
||||||
|
|
||||||
|
## v2.1.3 <small>(13 November 2022)</small>
|
||||||
|
|
||||||
|
- A choice of installer scripts that automate installation and configuration.
|
||||||
|
See
|
||||||
|
[Installation](installation/index.md).
|
||||||
|
- A streamlined manual installation process that works for both Conda and
|
||||||
|
PIP-only installs. See
|
||||||
|
[Manual Installation](installation/INSTALL_MANUAL.md).
|
||||||
|
- The ability to save frequently-used startup options (model to load, steps,
|
||||||
|
sampler, etc) in a `.invokeai` file. See
|
||||||
|
[Client](features/CLI.md)
|
||||||
|
- Support for AMD GPU cards (non-CUDA) on Linux machines.
|
||||||
|
- Multiple bugs and edge cases squashed.
|
||||||
|
|
||||||
## v2.1.0 <small>(2 November 2022)</small>
|
## v2.1.0 <small>(2 November 2022)</small>
|
||||||
|
|
||||||
- update mac instructions to use invokeai for env name by @willwillems in
|
- update mac instructions to use invokeai for env name by @willwillems in #1030
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1030
|
- Update .gitignore by @blessedcoolant in #1040
|
||||||
- Update .gitignore by @blessedcoolant in
|
- reintroduce fix for m1 from #579 missing after merge by @skurovec in #1056
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1040
|
- Update Stable_Diffusion_AI_Notebook.ipynb (Take 2) by @ChloeL19 in #1060
|
||||||
- reintroduce fix for m1 from https://github.com/invoke-ai/InvokeAI/pull/579
|
- Print out the device type which is used by @manzke in #1073
|
||||||
missing after merge by @skurovec in
|
- Hires Addition by @hipsterusername in #1063
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1056
|
|
||||||
- Update Stable_Diffusion_AI_Notebook.ipynb (Take 2) by @ChloeL19 in
|
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1060
|
|
||||||
- Print out the device type which is used by @manzke in
|
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1073
|
|
||||||
- Hires Addition by @hipsterusername in
|
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1063
|
|
||||||
- fix for "1 leaked semaphore objects to clean up at shutdown" on M1 by
|
- fix for "1 leaked semaphore objects to clean up at shutdown" on M1 by
|
||||||
@skurovec in https://github.com/invoke-ai/InvokeAI/pull/1081
|
@skurovec in #1081
|
||||||
- Forward dream.py to invoke.py using the same interpreter, add deprecation
|
- Forward dream.py to invoke.py using the same interpreter, add deprecation
|
||||||
warning by @db3000 in https://github.com/invoke-ai/InvokeAI/pull/1077
|
warning by @db3000 in #1077
|
||||||
- fix noisy images at high step counts by @lstein in
|
- fix noisy images at high step counts by @lstein in #1086
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1086
|
- Generalize facetool strength argument by @db3000 in #1078
|
||||||
- Generalize facetool strength argument by @db3000 in
|
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1078
|
|
||||||
- Enable fast switching among models at the invoke> command line by @lstein in
|
- Enable fast switching among models at the invoke> command line by @lstein in
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1066
|
#1066
|
||||||
- Fix Typo, committed changing ldm environment to invokeai by @jdries3 in
|
- Fix Typo, committed changing ldm environment to invokeai by @jdries3 in #1095
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1095
|
- Update generate.py by @unreleased in #1109
|
||||||
- Update generate.py by @unreleased in
|
- Update 'ldm' env to 'invokeai' in troubleshooting steps by @19wolf in #1125
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1109
|
- Fixed documentation typos and resolved merge conflicts by @rupeshs in #1123
|
||||||
- Update 'ldm' env to 'invokeai' in troubleshooting steps by @19wolf in
|
- Fix broken doc links, fix malaprop in the project subtitle by @majick in #1131
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1125
|
- Only output facetool parameters if enhancing faces by @db3000 in #1119
|
||||||
- Fixed documentation typos and resolved merge conflicts by @rupeshs in
|
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1123
|
|
||||||
- Fix broken doc links, fix malaprop in the project subtitle by @majick in
|
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1131
|
|
||||||
- Only output facetool parameters if enhancing faces by @db3000 in
|
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1119
|
|
||||||
- Update gitignore to ignore codeformer weights at new location by
|
- Update gitignore to ignore codeformer weights at new location by
|
||||||
@spezialspezial in https://github.com/invoke-ai/InvokeAI/pull/1136
|
@spezialspezial in #1136
|
||||||
- fix links to point to invoke-ai.github.io #1117 by @mauwii in
|
- fix links to point to invoke-ai.github.io #1117 by @mauwii in #1143
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1143
|
- Rework-mkdocs by @mauwii in #1144
|
||||||
- Rework-mkdocs by @mauwii in https://github.com/invoke-ai/InvokeAI/pull/1144
|
|
||||||
- add option to CLI and pngwriter that allows user to set PNG compression level
|
- add option to CLI and pngwriter that allows user to set PNG compression level
|
||||||
by @lstein in https://github.com/invoke-ai/InvokeAI/pull/1127
|
by @lstein in #1127
|
||||||
- Fix img2img DDIM index out of bound by @wfng92 in
|
- Fix img2img DDIM index out of bound by @wfng92 in #1137
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1137
|
- Fix gh actions by @mauwii in #1128
|
||||||
- Fix gh actions by @mauwii in https://github.com/invoke-ai/InvokeAI/pull/1128
|
- update mac instructions to use invokeai for env name by @willwillems in #1030
|
||||||
- update mac instructions to use invokeai for env name by @willwillems in
|
- Update .gitignore by @blessedcoolant in #1040
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1030
|
- reintroduce fix for m1 from #579 missing after merge by @skurovec in #1056
|
||||||
- Update .gitignore by @blessedcoolant in
|
- Update Stable_Diffusion_AI_Notebook.ipynb (Take 2) by @ChloeL19 in #1060
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1040
|
- Print out the device type which is used by @manzke in #1073
|
||||||
- reintroduce fix for m1 from https://github.com/invoke-ai/InvokeAI/pull/579
|
- Hires Addition by @hipsterusername in #1063
|
||||||
missing after merge by @skurovec in
|
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1056
|
|
||||||
- Update Stable_Diffusion_AI_Notebook.ipynb (Take 2) by @ChloeL19 in
|
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1060
|
|
||||||
- Print out the device type which is used by @manzke in
|
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1073
|
|
||||||
- Hires Addition by @hipsterusername in
|
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1063
|
|
||||||
- fix for "1 leaked semaphore objects to clean up at shutdown" on M1 by
|
- fix for "1 leaked semaphore objects to clean up at shutdown" on M1 by
|
||||||
@skurovec in https://github.com/invoke-ai/InvokeAI/pull/1081
|
@skurovec in #1081
|
||||||
- Forward dream.py to invoke.py using the same interpreter, add deprecation
|
- Forward dream.py to invoke.py using the same interpreter, add deprecation
|
||||||
warning by @db3000 in https://github.com/invoke-ai/InvokeAI/pull/1077
|
warning by @db3000 in #1077
|
||||||
- fix noisy images at high step counts by @lstein in
|
- fix noisy images at high step counts by @lstein in #1086
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1086
|
- Generalize facetool strength argument by @db3000 in #1078
|
||||||
- Generalize facetool strength argument by @db3000 in
|
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1078
|
|
||||||
- Enable fast switching among models at the invoke> command line by @lstein in
|
- Enable fast switching among models at the invoke> command line by @lstein in
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1066
|
#1066
|
||||||
- Fix Typo, committed changing ldm environment to invokeai by @jdries3 in
|
- Fix Typo, committed changing ldm environment to invokeai by @jdries3 in #1095
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1095
|
- Fixed documentation typos and resolved merge conflicts by @rupeshs in #1123
|
||||||
- Fixed documentation typos and resolved merge conflicts by @rupeshs in
|
- Only output facetool parameters if enhancing faces by @db3000 in #1119
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1123
|
|
||||||
- Only output facetool parameters if enhancing faces by @db3000 in
|
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1119
|
|
||||||
- add option to CLI and pngwriter that allows user to set PNG compression level
|
- add option to CLI and pngwriter that allows user to set PNG compression level
|
||||||
by @lstein in https://github.com/invoke-ai/InvokeAI/pull/1127
|
by @lstein in #1127
|
||||||
- Fix img2img DDIM index out of bound by @wfng92 in
|
- Fix img2img DDIM index out of bound by @wfng92 in #1137
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1137
|
- Add text prompt to inpaint mask support by @lstein in #1133
|
||||||
- Add text prompt to inpaint mask support by @lstein in
|
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1133
|
|
||||||
- Respect http[s] protocol when making socket.io middleware by @damian0815 in
|
- Respect http[s] protocol when making socket.io middleware by @damian0815 in
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/976
|
#976
|
||||||
- WebUI: Adds Codeformer support by @psychedelicious in
|
- WebUI: Adds Codeformer support by @psychedelicious in #1151
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1151
|
- Skips normalizing prompts for web UI metadata by @psychedelicious in #1165
|
||||||
- Skips normalizing prompts for web UI metadata by @psychedelicious in
|
- Add Asymmetric Tiling by @carson-katri in #1132
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1165
|
- Web UI: Increases max CFG Scale to 200 by @psychedelicious in #1172
|
||||||
- Add Asymmetric Tiling by @carson-katri in
|
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1132
|
|
||||||
- Web UI: Increases max CFG Scale to 200 by @psychedelicious in
|
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1172
|
|
||||||
- Corrects color channels in face restoration; Fixes #1167 by @psychedelicious
|
- Corrects color channels in face restoration; Fixes #1167 by @psychedelicious
|
||||||
in https://github.com/invoke-ai/InvokeAI/pull/1175
|
in #1175
|
||||||
- Flips channels using array slicing instead of using OpenCV by @psychedelicious
|
- Flips channels using array slicing instead of using OpenCV by @psychedelicious
|
||||||
in https://github.com/invoke-ai/InvokeAI/pull/1178
|
in #1178
|
||||||
- Fix typo in docs: s/Formally/Formerly by @noodlebox in
|
- Fix typo in docs: s/Formally/Formerly by @noodlebox in #1176
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1176
|
- fix clipseg loading problems by @lstein in #1177
|
||||||
- fix clipseg loading problems by @lstein in
|
- Correct color channels in upscale using array slicing by @wfng92 in #1181
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1177
|
|
||||||
- Correct color channels in upscale using array slicing by @wfng92 in
|
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1181
|
|
||||||
- Web UI: Filters existing images when adding new images; Fixes #1085 by
|
- Web UI: Filters existing images when adding new images; Fixes #1085 by
|
||||||
@psychedelicious in https://github.com/invoke-ai/InvokeAI/pull/1171
|
@psychedelicious in #1171
|
||||||
- fix a number of bugs in textual inversion by @lstein in
|
- fix a number of bugs in textual inversion by @lstein in #1190
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1190
|
- Improve !fetch, add !replay command by @ArDiouscuros in #882
|
||||||
- Improve !fetch, add !replay command by @ArDiouscuros in
|
- Fix generation of image with s>1000 by @holstvoogd in #951
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/882
|
- Web UI: Gallery improvements by @psychedelicious in #1198
|
||||||
- Fix generation of image with s>1000 by @holstvoogd in
|
- Update CLI.md by @krummrey in #1211
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/951
|
- outcropping improvements by @lstein in #1207
|
||||||
- Web UI: Gallery improvements by @psychedelicious in
|
- add support for loading VAE autoencoders by @lstein in #1216
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1198
|
- remove duplicate fix_func for MPS by @wfng92 in #1210
|
||||||
- Update CLI.md by @krummrey in https://github.com/invoke-ai/InvokeAI/pull/1211
|
- Metadata storage and retrieval fixes by @lstein in #1204
|
||||||
- outcropping improvements by @lstein in
|
- nix: add shell.nix file by @Cloudef in #1170
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1207
|
- Web UI: Changes vite dist asset paths to relative by @psychedelicious in #1185
|
||||||
- add support for loading VAE autoencoders by @lstein in
|
- Web UI: Removes isDisabled from PromptInput by @psychedelicious in #1187
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1216
|
|
||||||
- remove duplicate fix_func for MPS by @wfng92 in
|
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1210
|
|
||||||
- Metadata storage and retrieval fixes by @lstein in
|
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1204
|
|
||||||
- nix: add shell.nix file by @Cloudef in
|
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1170
|
|
||||||
- Web UI: Changes vite dist asset paths to relative by @psychedelicious in
|
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1185
|
|
||||||
- Web UI: Removes isDisabled from PromptInput by @psychedelicious in
|
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1187
|
|
||||||
- Allow user to generate images with initial noise as on M1 / mps system by
|
- Allow user to generate images with initial noise as on M1 / mps system by
|
||||||
@ArDiouscuros in https://github.com/invoke-ai/InvokeAI/pull/981
|
@ArDiouscuros in #981
|
||||||
- feat: adding filename format template by @plucked in
|
- feat: adding filename format template by @plucked in #968
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/968
|
- Web UI: Fixes broken bundle by @psychedelicious in #1242
|
||||||
- Web UI: Fixes broken bundle by @psychedelicious in
|
- Support runwayML custom inpainting model by @lstein in #1243
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1242
|
- Update IMG2IMG.md by @talitore in #1262
|
||||||
- Support runwayML custom inpainting model by @lstein in
|
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1243
|
|
||||||
- Update IMG2IMG.md by @talitore in
|
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1262
|
|
||||||
- New dockerfile - including a build- and a run- script as well as a GH-Action
|
- New dockerfile - including a build- and a run- script as well as a GH-Action
|
||||||
by @mauwii in https://github.com/invoke-ai/InvokeAI/pull/1233
|
by @mauwii in #1233
|
||||||
- cut over from karras to model noise schedule for higher steps by @lstein in
|
- cut over from karras to model noise schedule for higher steps by @lstein in
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1222
|
#1222
|
||||||
- Prompt tweaks by @lstein in https://github.com/invoke-ai/InvokeAI/pull/1268
|
- Prompt tweaks by @lstein in #1268
|
||||||
- Outpainting implementation by @Kyle0654 in
|
- Outpainting implementation by @Kyle0654 in #1251
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1251
|
- fixing aspect ratio on hires by @tjennings in #1249
|
||||||
- fixing aspect ratio on hires by @tjennings in
|
- Fix-build-container-action by @mauwii in #1274
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1249
|
- handle all unicode characters by @damian0815 in #1276
|
||||||
- Fix-build-container-action by @mauwii in
|
- adds models.user.yml to .gitignore by @JakeHL in #1281
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1274
|
- remove debug branch, set fail-fast to false by @mauwii in #1284
|
||||||
- handle all unicode characters by @damian0815 in
|
- Protect-secrets-on-pr by @mauwii in #1285
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1276
|
- Web UI: Adds initial inpainting implementation by @psychedelicious in #1225
|
||||||
- adds models.user.yml to .gitignore by @JakeHL in
|
- fix environment-mac.yml - tested on x64 and arm64 by @mauwii in #1289
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1281
|
- Use proper authentication to download model by @mauwii in #1287
|
||||||
- remove debug branch, set fail-fast to false by @mauwii in
|
- Prevent indexing error for mode RGB by @spezialspezial in #1294
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1284
|
|
||||||
- Protect-secrets-on-pr by @mauwii in
|
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1285
|
|
||||||
- Web UI: Adds initial inpainting implementation by @psychedelicious in
|
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1225
|
|
||||||
- fix environment-mac.yml - tested on x64 and arm64 by @mauwii in
|
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1289
|
|
||||||
- Use proper authentication to download model by @mauwii in
|
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1287
|
|
||||||
- Prevent indexing error for mode RGB by @spezialspezial in
|
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1294
|
|
||||||
- Integrate sd-v1-5 model into test matrix (easily expandable), remove
|
- Integrate sd-v1-5 model into test matrix (easily expandable), remove
|
||||||
unecesarry caches by @mauwii in
|
unecesarry caches by @mauwii in #1293
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1293
|
- add --no-interactive to configure_invokeai step by @mauwii in #1302
|
||||||
- add --no-interactive to configure_invokeai step by @mauwii in
|
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1302
|
|
||||||
- 1-click installer and updater. Uses micromamba to install git and conda into a
|
- 1-click installer and updater. Uses micromamba to install git and conda into a
|
||||||
contained environment (if necessary) before running the normal installation
|
contained environment (if necessary) before running the normal installation
|
||||||
script by @cmdr2 in https://github.com/invoke-ai/InvokeAI/pull/1253
|
script by @cmdr2 in #1253
|
||||||
- configure_invokeai.py script downloads the weight files by @lstein in
|
- configure_invokeai.py script downloads the weight files by @lstein in #1290
|
||||||
https://github.com/invoke-ai/InvokeAI/pull/1290
|
|
||||||
|
|
||||||
## v2.0.1 <small>(13 October 2022)</small>
|
## v2.0.1 <small>(13 October 2022)</small>
|
||||||
|
|
||||||
|
206
docs/index.md
206
docs/index.md
@ -6,15 +6,14 @@ title: Home
|
|||||||
The Docs you find here (/docs/*) are built and deployed via mkdocs. If you want to run a local version to verify your changes, it's as simple as::
|
The Docs you find here (/docs/*) are built and deployed via mkdocs. If you want to run a local version to verify your changes, it's as simple as::
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pip install -r requirements-mkdocs.txt
|
pip install -r docs/requirements-mkdocs.txt
|
||||||
mkdocs serve
|
mkdocs serve
|
||||||
```
|
```
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<div align="center" markdown>
|
<div align="center" markdown>
|
||||||
|
|
||||||
# ^^**InvokeAI: A Stable Diffusion Toolkit**^^ :tools: <br> <small>Formerly known as lstein/stable-diffusion</small>
|
[![project logo](assets/invoke_ai_banner.png)](https://github.com/invoke-ai/InvokeAI)
|
||||||
|
|
||||||
[![project logo](assets/logo.png)](https://github.com/invoke-ai/InvokeAI)
|
|
||||||
|
|
||||||
[![discord badge]][discord link]
|
[![discord badge]][discord link]
|
||||||
|
|
||||||
@ -70,7 +69,11 @@ image-to-image generator. It provides a streamlined process with various new
|
|||||||
features and options to aid the image generation process. It runs on Windows,
|
features and options to aid the image generation process. It runs on Windows,
|
||||||
Mac and Linux machines, and runs on GPU cards with as little as 4 GB or RAM.
|
Mac and Linux machines, and runs on GPU cards with as little as 4 GB or RAM.
|
||||||
|
|
||||||
**Quick links**: [<a href="https://discord.gg/ZmtBAhwWhy">Discord Server</a>] [<a href="https://github.com/invoke-ai/InvokeAI/">Code and Downloads</a>] [<a href="https://github.com/invoke-ai/InvokeAI/issues">Bug Reports</a>] [<a href="https://github.com/invoke-ai/InvokeAI/discussions">Discussion, Ideas & Q&A</a>]
|
**Quick links**: [<a href="https://discord.gg/ZmtBAhwWhy">Discord Server</a>]
|
||||||
|
[<a href="https://github.com/invoke-ai/InvokeAI/">Code and Downloads</a>] [<a
|
||||||
|
href="https://github.com/invoke-ai/InvokeAI/issues">Bug Reports</a>] [<a
|
||||||
|
href="https://github.com/invoke-ai/InvokeAI/discussions">Discussion, Ideas &
|
||||||
|
Q&A</a>]
|
||||||
|
|
||||||
<div align="center"><img src="assets/invoke-web-server-1.png" width=640></div>
|
<div align="center"><img src="assets/invoke-web-server-1.png" width=640></div>
|
||||||
|
|
||||||
@ -80,20 +83,19 @@ Mac and Linux machines, and runs on GPU cards with as little as 4 GB or RAM.
|
|||||||
|
|
||||||
## :octicons-package-dependencies-24: Installation
|
## :octicons-package-dependencies-24: Installation
|
||||||
|
|
||||||
This fork is supported across Linux, Windows and Macintosh. Linux
|
This fork is supported across Linux, Windows and Macintosh. Linux users can use
|
||||||
users can use either an Nvidia-based card (with CUDA support) or an
|
either an Nvidia-based card (with CUDA support) or an AMD card (using the ROCm
|
||||||
AMD card (using the ROCm driver).
|
driver).
|
||||||
|
|
||||||
First time users, please see [Automated
|
First time users, please see
|
||||||
Installer](installation/INSTALL_AUTOMATED.md) for a walkthrough of
|
[Automated Installer](installation/INSTALL_AUTOMATED.md) for a walkthrough of
|
||||||
getting InvokeAI up and running on your system. For alternative
|
getting InvokeAI up and running on your system. For alternative installation and
|
||||||
installation and upgrade instructions, please see: [InvokeAI
|
upgrade instructions, please see:
|
||||||
Installation Overview](installation/)
|
[InvokeAI Installation Overview](installation/)
|
||||||
|
|
||||||
Linux users who wish to make use of the PyPatchMatch inpainting
|
Linux users who wish to make use of the PyPatchMatch inpainting functions will
|
||||||
functions will need to perform a bit of extra work to enable this
|
need to perform a bit of extra work to enable this module. Instructions can be
|
||||||
module. Instructions can be found at [Installing
|
found at [Installing PyPatchMatch](installation/INSTALL_PATCHMATCH.md).
|
||||||
PyPatchMatch](installation/INSTALL_PATCHMATCH.md).
|
|
||||||
|
|
||||||
## :fontawesome-solid-computer: Hardware Requirements
|
## :fontawesome-solid-computer: Hardware Requirements
|
||||||
|
|
||||||
@ -102,12 +104,13 @@ PyPatchMatch](installation/INSTALL_PATCHMATCH.md).
|
|||||||
You wil need one of the following:
|
You wil need one of the following:
|
||||||
|
|
||||||
- :simple-nvidia: An NVIDIA-based graphics card with 4 GB or more VRAM memory.
|
- :simple-nvidia: An NVIDIA-based graphics card with 4 GB or more VRAM memory.
|
||||||
- :simple-amd: An AMD-based graphics card with 4 GB or more VRAM memory (Linux only)
|
- :simple-amd: An AMD-based graphics card with 4 GB or more VRAM memory (Linux
|
||||||
|
only)
|
||||||
- :fontawesome-brands-apple: An Apple computer with an M1 chip.
|
- :fontawesome-brands-apple: An Apple computer with an M1 chip.
|
||||||
|
|
||||||
We do **not recommend** the following video cards due to issues with
|
We do **not recommend** the following video cards due to issues with their
|
||||||
their running in half-precision mode and having insufficient VRAM to
|
running in half-precision mode and having insufficient VRAM to render 512x512
|
||||||
render 512x512 images in full-precision mode:
|
images in full-precision mode:
|
||||||
|
|
||||||
- NVIDIA 10xx series cards such as the 1080ti
|
- NVIDIA 10xx series cards such as the 1080ti
|
||||||
- GTX 1650 series cards
|
- GTX 1650 series cards
|
||||||
@ -131,6 +134,7 @@ render 512x512 images in full-precision mode:
|
|||||||
```bash
|
```bash
|
||||||
(invokeai) ~/InvokeAI$ python scripts/invoke.py --full_precision
|
(invokeai) ~/InvokeAI$ python scripts/invoke.py --full_precision
|
||||||
```
|
```
|
||||||
|
|
||||||
## :octicons-gift-24: InvokeAI Features
|
## :octicons-gift-24: InvokeAI Features
|
||||||
|
|
||||||
- [The InvokeAI Web Interface](features/WEB.md)
|
- [The InvokeAI Web Interface](features/WEB.md)
|
||||||
@ -155,99 +159,91 @@ render 512x512 images in full-precision mode:
|
|||||||
|
|
||||||
## :octicons-log-16: Latest Changes
|
## :octicons-log-16: Latest Changes
|
||||||
|
|
||||||
### v2.1.3 <small>(13 November 2022)</small>
|
### v2.2.4 <small>(11 December 2022)</small>
|
||||||
|
|
||||||
- A choice of installer scripts that automate installation and configuration. See [Installation](https://github.com/invoke-ai/InvokeAI/blob/2.1.3-rc6/docs/installation/INSTALL.md).
|
#### the `invokeai` directory
|
||||||
- A streamlined manual installation process that works for both Conda and PIP-only installs. See [Manual Installation](https://github.com/invoke-ai/InvokeAI/blob/2.1.3-rc6/docs/installation/INSTALL_MANUAL.md).
|
|
||||||
- The ability to save frequently-used startup options (model to load, steps, sampler, etc) in a `.invokeai` file. See [Client](https://github.com/invoke-ai/InvokeAI/blob/2.1.3-rc6/docs/features/CLI.md)
|
|
||||||
- Support for AMD GPU cards (non-CUDA) on Linux machines.
|
|
||||||
- Multiple bugs and edge cases squashed.
|
|
||||||
|
|
||||||
### v2.1.0 <small>(2 November 2022)</small>
|
Previously there were two directories to worry about, the directory that
|
||||||
|
contained the InvokeAI source code and the launcher scripts, and the `invokeai`
|
||||||
|
directory that contained the models files, embeddings, configuration and
|
||||||
|
outputs. With the 2.2.4 release, this dual system is done away with, and
|
||||||
|
everything, including the `invoke.bat` and `invoke.sh` launcher scripts, now
|
||||||
|
live in a directory named `invokeai`. By default this directory is located in
|
||||||
|
your home directory (e.g. `\Users\yourname` on Windows), but you can select
|
||||||
|
where it goes at install time.
|
||||||
|
|
||||||
- [Inpainting](https://invoke-ai.github.io/InvokeAI/features/INPAINTING/)
|
After installation, you can delete the install directory (the one that the zip
|
||||||
support in the WebGUI
|
file creates when it unpacks). Do **not** delete or move the `invokeai`
|
||||||
- Greatly improved navigation and user experience in the
|
directory!
|
||||||
[WebGUI](https://invoke-ai.github.io/InvokeAI/features/WEB/)
|
|
||||||
- The prompt syntax has been enhanced with
|
|
||||||
[prompt weighting, cross-attention and prompt merging](https://invoke-ai.github.io/InvokeAI/features/PROMPTS/).
|
|
||||||
- You can now load
|
|
||||||
[multiple models and switch among them quickly](https://docs.google.com/presentation/d/1WywGA1rny7bpFh7CLSdTr4nNpVKdlUeT0Bj0jCsILyU/edit?usp=sharing)
|
|
||||||
without leaving the CLI.
|
|
||||||
- The installation process (via `scripts/configure_invokeai.py`) now lets you select
|
|
||||||
among several popular
|
|
||||||
[Stable Diffusion models](https://invoke-ai.github.io/InvokeAI/installation/INSTALLING_MODELS/)
|
|
||||||
and downloads and installs them on your behalf. Among other models, this
|
|
||||||
script will install the current Stable Diffusion 1.5 model as well as a
|
|
||||||
StabilityAI variable autoencoder (VAE) which improves face generation.
|
|
||||||
- Tired of struggling with photoeditors to get the masked region of for
|
|
||||||
inpainting just right? Let the AI make the mask for you using
|
|
||||||
[text masking](https://docs.google.com/presentation/d/1pWoY510hCVjz0M6X9CBbTznZgW2W5BYNKrmZm7B45q8/edit#slide=id.p).
|
|
||||||
This feature allows you to specify the part of the image to paint over using
|
|
||||||
just English-language phrases.
|
|
||||||
- Tired of seeing the head of your subjects cropped off? Uncrop them in the CLI
|
|
||||||
with the
|
|
||||||
[outcrop feature](https://invoke-ai.github.io/InvokeAI/features/OUTPAINTING/#outcrop).
|
|
||||||
- Tired of seeing your subject's bodies duplicated or mangled when generating
|
|
||||||
larger-dimension images? Check out the `--hires` option in the CLI, or select
|
|
||||||
the corresponding toggle in the WebGUI.
|
|
||||||
- We now support textual inversion and fine-tune .bin styles and subjects from
|
|
||||||
the Hugging Face archive of
|
|
||||||
[SD Concepts](https://huggingface.co/sd-concepts-library). Load the .bin file
|
|
||||||
using the `--embedding_path` option. (The next version will support merging
|
|
||||||
and loading of multiple simultaneous models).
|
|
||||||
- ...
|
|
||||||
|
|
||||||
### v2.0.1 <small>(13 October 2022)</small>
|
##### Initialization file `invokeai/invokeai.init`
|
||||||
|
|
||||||
- fix noisy images at high step count when using k\* samplers
|
You can place frequently-used startup options in this file, such as the default
|
||||||
- dream.py script now calls invoke.py module directly rather than via a new
|
number of steps or your preferred sampler. To keep everything in one place, this
|
||||||
python process (which could break the environment)
|
file has now been moved into the `invokeai` directory and is named
|
||||||
|
`invokeai.init`.
|
||||||
|
|
||||||
### v2.0.0 <small>(9 October 2022)</small>
|
#### To update from Version 2.2.3
|
||||||
|
|
||||||
- `dream.py` script renamed `invoke.py`. A `dream.py` script wrapper remains for
|
The easiest route is to download and unpack one of the 2.2.4 installer files.
|
||||||
backward compatibility.
|
When it asks you for the location of the `invokeai` runtime directory, respond
|
||||||
- Completely new WebGUI - launch with `python3 scripts/invoke.py --web`
|
with the path to the directory that contains your 2.2.3 `invokeai`. That is, if
|
||||||
- Support for
|
`invokeai` lives at `C:\Users\fred\invokeai`, then answer with `C:\Users\fred`
|
||||||
<a href="https://invoke-ai.github.io/InvokeAI/features/INPAINTING/">inpainting</a>
|
and answer "Y" when asked if you want to reuse the directory.
|
||||||
and
|
|
||||||
<a href="https://invoke-ai.github.io/InvokeAI/features/OUTPAINTING/">outpainting</a>
|
The `update.sh` (`update.bat`) script that came with the 2.2.3 source installer
|
||||||
- img2img runs on all k\* samplers
|
does not know about the new directory layout and won't be fully functional.
|
||||||
- Support for
|
|
||||||
<a href="https://invoke-ai.github.io/InvokeAI/features/PROMPTS/#negative-and-unconditioned-prompts">negative
|
#### To update to 2.2.5 (and beyond) there's now an update path.
|
||||||
prompts</a>
|
|
||||||
- Support for CodeFormer face reconstruction
|
As they become available, you can update to more recent versions of InvokeAI
|
||||||
- Support for Textual Inversion on Macintoshes
|
using an `update.sh` (`update.bat`) script located in the `invokeai` directory.
|
||||||
- Support in both WebGUI and CLI for
|
Running it without any arguments will install the most recent version of
|
||||||
<a href="https://invoke-ai.github.io/InvokeAI/features/POSTPROCESS/">post-processing
|
InvokeAI. Alternatively, you can get set releases by running the `update.sh`
|
||||||
of previously-generated images</a> using facial reconstruction, ESRGAN
|
script with an argument in the command shell. This syntax accepts the path to
|
||||||
upscaling, outcropping (similar to DALL-E infinite canvas), and "embiggen"
|
the desired release's zip file, which you can find by clicking on the green
|
||||||
upscaling. See the `!fix` command.
|
"Code" button on this repository's home page.
|
||||||
- New `--hires` option on `invoke>` line allows
|
|
||||||
<a href="https://invoke-ai.github.io/InvokeAI/features/CLI/#txt2img">larger
|
#### Other 2.2.4 Improvements
|
||||||
images to be created without duplicating elements</a>, at the cost of some
|
|
||||||
performance.
|
- Fix InvokeAI GUI initialization by @addianto in #1687
|
||||||
- New `--perlin` and `--threshold` options allow you to add and control
|
- fix link in documentation by @lstein in #1728
|
||||||
variation during image generation (see
|
- Fix broken link by @ShawnZhong in #1736
|
||||||
<a href="https://github.com/invoke-ai/InvokeAI/blob/main/docs/features/OTHER.md#thresholding-and-perlin-noise-initialization-options">Thresholding
|
- Remove reference to binary installer by @lstein in #1731
|
||||||
and Perlin Noise Initialization</a>
|
- documentation fixes for 2.2.3 by @lstein in #1740
|
||||||
- Extensive metadata now written into PNG files, allowing reliable regeneration
|
- Modify installer links to point closer to the source installer by @ebr in
|
||||||
of images and tweaking of previous settings.
|
#1745
|
||||||
- Command-line completion in `invoke.py` now works on Windows, Linux and Mac
|
- add documentation warning about 1650/60 cards by @lstein in #1753
|
||||||
platforms.
|
- Fix Linux source URL in installation docs by @andybearman in #1756
|
||||||
- Improved
|
- Make install instructions discoverable in readme by @damian0815 in #1752
|
||||||
<a href="https://invoke-ai.github.io/InvokeAI/features/CLI/">command-line
|
- typo fix by @ofirkris in #1755
|
||||||
completion behavior</a>. New commands added:
|
- Non-interactive model download (support HUGGINGFACE_TOKEN) by @ebr in #1578
|
||||||
- List command-line history with `!history`
|
- fix(srcinstall): shell installer - cp scripts instead of linking by @tildebyte
|
||||||
- Search command-line history with `!search`
|
in #1765
|
||||||
- Clear history with `!clear`
|
- stability and usage improvements to binary & source installers by @lstein in
|
||||||
- Deprecated `--full_precision` / `-F`. Simply omit it and `invoke.py` will auto
|
#1760
|
||||||
configure. To switch away from auto use the new flag like
|
- fix off-by-one bug in cross-attention-control by @damian0815 in #1774
|
||||||
`--precision=float32`.
|
- Eventually update APP_VERSION to 2.2.3 by @spezialspezial in #1768
|
||||||
|
- invoke script cds to its location before running by @lstein in #1805
|
||||||
|
- Make PaperCut and VoxelArt models load again by @lstein in #1730
|
||||||
|
- Fix --embedding_directory / --embedding_path not working by @blessedcoolant in
|
||||||
|
#1817
|
||||||
|
- Clean up readme by @hipsterusername in #1820
|
||||||
|
- Optimized Docker build with support for external working directory by @ebr in
|
||||||
|
#1544
|
||||||
|
- disable pushing the cloud container by @mauwii in #1831
|
||||||
|
- Fix docker push github action and expand with additional metadata by @ebr in
|
||||||
|
#1837
|
||||||
|
- Fix Broken Link To Notebook by @VedantMadane in #1821
|
||||||
|
- Account for flat models by @spezialspezial in #1766
|
||||||
|
- Update invoke.bat.in isolate environment variables by @lynnewu in #1833
|
||||||
|
- Arch Linux Specific PatchMatch Instructions & fixing conda install on linux by
|
||||||
|
@SammCheese in #1848
|
||||||
|
- Make force free GPU memory work in img2img by @addianto in #1844
|
||||||
|
- New installer by @lstein
|
||||||
|
|
||||||
For older changelogs, please visit the
|
For older changelogs, please visit the
|
||||||
**[CHANGELOG](CHANGELOG/#v114-11-september-2022)**.
|
**[CHANGELOG](CHANGELOG/#v223-2-december-2022)**.
|
||||||
|
|
||||||
## :material-target: Troubleshooting
|
## :material-target: Troubleshooting
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user