601cc1f92c
help(ui): Basic responsive updates to demonstrate
...
Made some basic responsive changes to demonstrate how to go about making changes.
There are a bunch of problems not addressed yet. Like dealing with the resizeable component and etc.
2023-04-17 13:50:13 +12:00
d6a9a4464d
feat(ui): Add Basic useResolution Component
...
This component just classifies `base` and `sm` as mobile, `md` and `lg` as tablet and `xl` and `2xl` as desktop.
This is a basic hook for quicker work with resolutions. Can be modified and adjusted to our needs. All resolution related work can go into this hook.
2023-04-17 13:48:42 +12:00
dac271725a
feat(ui): Add Basic Breakpoints
2023-04-17 13:26:10 +12:00
e1fbecfcf7
fix(ui): Syntax issue with the HidePreview icon
2023-04-17 12:42:06 +12:00
63d10027a4
nodes: invocation queue item - make more pydantic
2023-04-16 09:39:33 -04:00
ef0773b8a3
nodes: set default for InvocationQueueItem.invoke_all
2023-04-16 09:39:33 -04:00
3daaddf15b
nodes: remove duplicate LatentsToLatentsInvocation
2023-04-16 09:39:33 -04:00
570c3fe690
nodes: ensure Graph and GraphExecutionState ids are cast to str on instantiation
2023-04-16 09:39:33 -04:00
cbd1a7263a
nodes: fix typing of GraphExecutionState.id
2023-04-16 09:39:33 -04:00
7fc5fbd4ce
nodes: convert InvocationQueueItem to Pydantic class
2023-04-16 09:39:33 -04:00
6f6de402ad
make InvocationQueueItem serializable
2023-04-16 09:39:33 -04:00
2ec4f5af10
remove unused import to pass lint & revert package.json
2023-04-15 21:53:33 +02:00
281662a6e1
chore: add ".version" and ".last_model" to gitignore
...
Mistakenly closed the previous pr
2023-04-15 21:46:47 +02:00
2edd032ec7
draft mobile layout
2023-04-15 21:34:03 +02:00
50eb02f68b
chore(ui): build
2023-04-15 20:45:17 +10:00
d73f3adc43
moving shouldHidePreview from gallery to ui slice.
2023-04-15 20:45:17 +10:00
116107f464
chore(ui): build
2023-04-15 20:45:17 +10:00
da44bb1707
rename setter
2023-04-15 20:45:17 +10:00
f43aed677e
chore(ui): build
2023-04-15 20:45:17 +10:00
0d051aaae2
rename hidden variable to something more descriptive
2023-04-15 20:45:17 +10:00
e4e48ff995
i forgor to push the locale
2023-04-15 20:45:17 +10:00
442a6bffa4
feat: add "Hide Preview" Button
2023-04-15 20:45:17 +10:00
aab262d991
Merge branch 'main' into bugfix/prevent-cli-crash
2023-04-14 20:12:38 -04:00
47b9910b48
update to diffusers 0.15 and fix code for name changes
...
- This is a port of #3184 to the main branch
2023-04-14 15:35:03 -04:00
23d65e7162
[nodes] Add subgraph library, subgraph usage in CLI, and fix subgraph execution ( #3180 )
...
* Add latent to latent (img2img equivalent)
Fix a CLI bug with multiple links per node
* Using "latents" instead of "latent"
* [nodes] In-progress implementation of graph library
* Add linking to CLI for graph nodes (still broken)
* Fix subgraph execution, fix subgraph linking in CLI
* Fix LatentsToLatents
2023-04-14 06:41:06 +00:00
024fd54d0b
Fixed a Typo. ( #3190 )
2023-04-14 14:33:31 +12:00
c44c19e911
Fixed a Typo.
2023-04-13 17:42:34 +02:00
d923d1d66b
fix(nodes): fix naming of CvInvocationConfig
2023-04-11 12:13:53 +10:00
1f2c1e14db
fix(nodes): move InvocationConfig to baseinvocation.py
2023-04-11 12:13:53 +10:00
07e3a0ec15
feat(nodes): add invocation schema customisation, add model selection
...
- add invocation schema customisation
done via fastapi's `Config` class and `schema_extra`. when using `Config`, inherit from `InvocationConfig` to get type hints.
where it makes sense - like for all math invocations - define a `MathInvocationConfig` class and have all invocations inherit from it.
this customisation can provide any arbitrary additional data to the UI. currently it provides tags and field type hints.
this is necessary for `model` type fields, which are actually string fields. without something like this, we can't reliably differentiate `model` fields from normal `string` fields.
can also be used for future field types.
all invocations now have tags, and all `model` fields have ui type hints.
- fix model handling for invocations
added a helper to fall back to the default model if an invalid model name is chosen. model names in graphs now work.
- fix latents progress callback
noticed this wasn't correct while working on everything else.
2023-04-11 12:13:53 +10:00
427db7c7e2
feat(nodes): fix typo in PasteImageInvocation
2023-04-10 21:33:08 +10:00
dad3a7f263
fix(nodes): sampler_name
--> scheduler
...
the name of this was changed at some point. nodes still used the old name, so scheduler selection did nothing. simple fix.
2023-04-10 19:54:09 +10:00
5bd0bb637f
fix(nodes): add missing type to ImageField
2023-04-10 19:33:15 +10:00
f05095770c
Increase chunk size when computing diffusers SHAs ( #3159 )
...
When running this app first time in WSL2 environment, which is
notoriously slow when it comes to IO, computing the SHAs of the models
takes an eternity.
Computing shas for sd2.1
```
| Calculating sha256 hash of model files
| sha256 = 1e4ce085102fe6590d41ec1ab6623a18c07127e2eca3e94a34736b36b57b9c5e (49 files hashed in 510.87s)
```
I increased the chunk size to 16MB reduce the number of round trips for
loading the data. New results:
```
| Calculating sha256 hash of model files
| sha256 = 1e4ce085102fe6590d41ec1ab6623a18c07127e2eca3e94a34736b36b57b9c5e (49 files hashed in 59.89s)
```
Higher values don't seem to make an impact.
2023-04-09 22:29:43 -04:00
de189f2db6
Increase chunk size when computing SHAs
2023-04-09 21:53:59 +02:00
cee159dfa3
Merge branch 'main' into bugfix/prevent-cli-crash
2023-04-09 12:08:09 -04:00
4463124bdd
feat(nodes): mark ImageField properties required, add docs
2023-04-09 22:53:17 +10:00
34402cc46a
feat(nodes): add list_images endpoint
...
- add `list_images` endpoint at `GET api/v1/images`
- extend `ImageStorageBase` with `list()` method, implemented it for `DiskImageStorage`
- add `ImageReponse` class to for image responses, which includes urls, metadata
- add `ImageMetadata` class (basically a stub at the moment)
- uploaded images now named `"{uuid}_{timestamp}.png"`
- add `models` modules. besides separating concerns more clearly, this helps to mitigate circular dependencies
- improve thumbnail handling
2023-04-09 13:48:44 +10:00
54d9833db0
Else.
2023-04-08 12:08:51 -04:00
5fe8cb56fc
Correct response note
2023-04-08 12:08:51 -04:00
7919d81fb1
Update to address feedback
2023-04-08 12:08:51 -04:00
9d80b28a4f
Begin Convert Work
2023-04-08 12:08:51 -04:00
1fcd91bcc5
Add/Update and Delete Models
2023-04-08 12:08:51 -04:00
e456e2e63a
fix typo ( #3147 )
...
fix typo.
reference:
21f79e5919/invokeai/configs/INITIAL_MODELS.yaml (L21-L25)
2023-04-08 20:25:31 +12:00
ee41b99049
Update 050_INSTALLING_MODELS.md
...
fix typo
2023-04-08 17:02:47 +09:00
111d674e71
fix(nodes): use correct torch device in NoiseInvocation
2023-04-08 12:32:03 +10:00
8f048cfbd9
Add python-multipart, which is needed by nodes ( #3141 )
...
I'm not quite sure why this isn't being installed by fastapi's
dependencies, but running without it installed yields:
```
root@gnubert:/srv/ssdtank/docker/invokeai/git/InvokeAI# docker run --gpus all -p 9989:9090 -v /srv/ssdtank/docker/invokeai/data:/data -v /srv/ssdtank/docker/invokeai/git/InvokeAI/static/dream_web/:/static/dream_web --rm -ti -u root --entrypoint /bin/bash ghcr.io/cmsj/invokeai-nodes@sha256:426ebc414936cb67e02f5f64d963196500a77b2f485df8122a2d462797293938
root@7a77b56a5771:/usr/src# /invoke-new.py --web
Form data requires "python-multipart" to be installed.
You can install "python-multipart" with:
pip install python-multipart
╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ /invoke-new.py:22 in <module> │
│ │
│ 19 │
│ 20 │
│ 21 if __name__ == '__main__': │
│ ❱ 22 │ main() │
│ 23 │
│ │
│ /invoke-new.py:13 in main │
│ │
│ 10 │ os.chdir(os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))) │
│ 11 │ │
│ 12 │ if '--web' in sys.argv: │
│ ❱ 13 │ │ from invokeai.app.api_app import invoke_api │
│ 14 │ │ invoke_api() │
│ 15 │ else: │
│ 16 │ │ # TODO: Parse some top-level args here. │
│ │
│ /usr/src/InvokeAI/lib/python3.10/site-packages/invokeai/app/api_app.py:17 in <module> │
│ │
│ 14 │
│ 15 from ..backend import Args │
│ 16 from .api.dependencies import ApiDependencies │
│ ❱ 17 from .api.routers import images, sessions, models │
│ 18 from .api.sockets import SocketIO │
│ 19 from .invocations import * │
│ 20 from .invocations.baseinvocation import BaseInvocation │
│ │
│ /usr/src/InvokeAI/lib/python3.10/site-packages/invokeai/app/api/routers/images.py:45 in <module> │
│ │
│ 42 │ │ 404: {"description": "Session not found"}, │
│ 43 │ }, │
│ 44 ) │
│ ❱ 45 async def upload_image(file: UploadFile, request: Request): │
│ 46 │ if not file.content_type.startswith("image"): │
│ 47 │ │ return Response(status_code=415) │
│ 48 │
│ │
│ /usr/src/InvokeAI/lib/python3.10/site-packages/fastapi/routing.py:630 in decorator │
│ │
│ 627 │ │ ), │
│ 628 │ ) -> Callable[[DecoratedCallable], DecoratedCallable]: │
│ 629 │ │ def decorator(func: DecoratedCallable) -> DecoratedCallable: │
│ ❱ 630 │ │ │ self.add_api_route( │
│ 631 │ │ │ │ path, │
│ 632 │ │ │ │ func, │
│ 633 │ │ │ │ response_model=response_model, │
│ │
│ /usr/src/InvokeAI/lib/python3.10/site-packages/fastapi/routing.py:569 in add_api_route │
│ │
│ 566 │ │ current_generate_unique_id = get_value_or_default( │
│ 567 │ │ │ generate_unique_id_function, self.generate_unique_id_function │
│ 568 │ │ ) │
│ ❱ 569 │ │ route = route_class( │
│ 570 │ │ │ self.prefix + path, │
│ 571 │ │ │ endpoint=endpoint, │
│ 572 │ │ │ response_model=response_model, │
│ │
│ /usr/src/InvokeAI/lib/python3.10/site-packages/fastapi/routing.py:444 in __init__ │
│ │
│ 441 │ │ │ │ 0, │
│ 442 │ │ │ │ get_parameterless_sub_dependant(depends=depends, path=self.path_format), │
│ 443 │ │ │ ) │
│ ❱ 444 │ │ self.body_field = get_body_field(dependant=self.dependant, name=self.unique_id) │
│ 445 │ │ self.app = request_response(self.get_route_handler()) │
│ 446 │ │
│ 447 │ def get_route_handler(self) -> Callable[[Request], Coroutine[Any, Any, Response]]: │
│ │
│ /usr/src/InvokeAI/lib/python3.10/site-packages/fastapi/dependencies/utils.py:756 in │
│ get_body_field │
│ │
│ 753 │ │ alias="body", │
│ 754 │ │ field_info=BodyFieldInfo(**BodyFieldInfo_kwargs), │
│ 755 │ ) │
│ ❱ 756 │ check_file_field(final_field) │
│ 757 │ return final_field │
│ 758 │
│ │
│ /usr/src/InvokeAI/lib/python3.10/site-packages/fastapi/dependencies/utils.py:111 in │
│ check_file_field │
│ │
│ 108 │ │ │ │ raise RuntimeError(multipart_incorrect_install_error) from None │
│ 109 │ │ except ImportError: │
│ 110 │ │ │ logger.error(multipart_not_installed_error) │
│ ❱ 111 │ │ │ raise RuntimeError(multipart_not_installed_error) from None │
│ 112 │
│ 113 │
│ 114 def get_param_sub_dependant( │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
RuntimeError: Form data requires "python-multipart" to be installed.
You can install "python-multipart" with:
pip install python-multipart
```
2023-04-07 19:17:37 -04:00
cd1b350dae
Merge branch 'main' into bugfix/release-updater
2023-04-07 18:56:21 -04:00
8334757af9
Merge branch 'main' into bugfix/prevent-cli-crash
2023-04-07 18:55:54 -04:00
7103ac6a32
Add python-multipart, which is needed by nodes
2023-04-07 19:43:42 +01:00