322a60f48f
fix(nodes): rearrange fields.py to avoid needing forward refs
2024-03-01 10:42:33 +11:00
b386b1b8af
tidy(nodes): remove unnecessary, shadowing class attr declarations
2024-03-01 10:42:33 +11:00
70034d26e2
feat(ui): revise graphs to not use LinearUIOutputInvocation
...
See this comment for context: https://github.com/invoke-ai/InvokeAI/pull/5491#discussion_r1480760629
- Remove this now-unnecessary node from all graphs
- Update graphs' terminal image-outputting nodes' `is_intermediate` and `board` fields appropriately
- Add util function to prepare the `board` field, tidy the utils
- Update `socketInvocationComplete` listener to work correctly with this change
I've manually tested all graph permutations that were changed (I think this is all...) to ensure images go to the gallery as expected:
- ad-hoc upscaling
- t2i w/ sd1.5
- t2i w/ sd1.5 & hrf
- t2i w/ sdxl
- t2i w/ sdxl + refiner
- i2i w/ sd1.5
- i2i w/ sdxl
- i2i w/ sdxl + refiner
- canvas t2i w/ sd1.5
- canvas t2i w/ sdxl
- canvas t2i w/ sdxl + refiner
- canvas i2i w/ sd1.5
- canvas i2i w/ sdxl
- canvas i2i w/ sdxl + refiner
- canvas inpaint w/ sd1.5
- canvas inpaint w/ sdxl
- canvas inpaint w/ sdxl + refiner
- canvas outpaint w/ sd1.5
- canvas outpaint w/ sdxl
- canvas outpaint w/ sdxl + refiner
2024-03-01 10:42:33 +11:00
d60f1965d1
chore(ui): regen types
2024-03-01 10:42:33 +11:00
7fbdfbf9e5
feat(nodes): add WithBoard
field helper class
...
This class works the same way as `WithMetadata` - it simply adds a `board` field to the node. The context wrapper function is able to pull the board id from this. This allows image-outputting nodes to get a board field "for free", and have their outputs automatically saved to it.
This is a breaking change for node authors who may have a field called `board`, because it makes `board` a reserved field name. I'll look into how to avoid this - maybe by naming this invoke-managed field `_board` to avoid collisions?
Supporting changes:
- `WithBoard` is added to all image-outputting nodes, giving them the ability to save to board.
- Unused, duplicate `WithMetadata` and `WithWorkflow` classes are deleted from `baseinvocation.py`. The "real" versions are in `fields.py`.
- Remove `LinearUIOutputInvocation`. Now that all nodes that output images also have a `board` field by default, this node is no longer necessary. See comment here for context: https://github.com/invoke-ai/InvokeAI/pull/5491#discussion_r1480760629
- Without `LinearUIOutputInvocation`, the `ImagesInferface.update` method is no longer needed, and removed.
Note: This commit does not bump all node versions. I will ensure that is done correctly before merging the PR of which this commit is a part.
Note: A followup commit will implement the frontend changes to support this change.
2024-03-01 10:42:33 +11:00
e137071543
remove unused configdict import
2024-03-01 10:42:33 +11:00
5d2f70b3ef
fix(ui): remove original l2i node in HRF graph
2024-03-01 10:42:33 +11:00
47d05fdd81
fix(nodes): do not freeze or cache config in context wrapper
...
- The config is already cached by the config class's `get_config()` method.
- The config mutates itself in its `root_path` property getter. Freezing the class makes any attempt to grab a path from the config error. Unfortunately this means we cannot easily freeze the class without fiddling with the inner workings of `InvokeAIAppConfig`, which is outside the scope here.
2024-03-01 10:42:33 +11:00
958b80acdd
feat(nodes): context.data -> context._data
2024-03-01 10:42:33 +11:00
5730ae9b96
feat(nodes): context.__services -> context._services
2024-03-01 10:42:33 +11:00
60e2eff94d
feat(nodes): cache invocation interface config
2024-03-01 10:42:33 +11:00
dcafbb9988
feat(nodes): do not hide services
in invocation context interfaces
2024-03-01 10:42:33 +11:00
cc8d713c57
fix(nodes): restore missing context type annotations
2024-03-01 10:42:33 +11:00
59c77832d8
tests(nodes): fix mock InvocationContext
2024-03-01 10:42:33 +11:00
cbf22d8a80
chore(nodes): add comments for ConfigInterface
2024-03-01 10:42:33 +11:00
e11af7de9b
feat(nodes): export more things from `invocation_api"
2024-03-01 10:42:33 +11:00
95dd5aad16
feat(nodes): add boards interface to invocation context
2024-03-01 10:42:33 +11:00
4ce21087d3
fix(nodes): restore type annotations for InvocationContext
2024-03-01 10:42:33 +11:00
281c334531
feat(nodes): do not freeze InvocationContextData, prevents it from being subclassesd
2024-03-01 10:42:33 +11:00
282b483d14
feat: tweak pyright config
2024-03-01 10:42:33 +11:00
a466f7a94b
feat(nodes): create invocation_api.py
...
This is the public API for invocations.
Everything a custom node might need should be re-exported from this file.
2024-03-01 10:42:33 +11:00
05fb485d33
feat(nodes): move ConditioningFieldData
to conditioning_data.py
2024-03-01 10:42:33 +11:00
6452c706e1
tests: fix missing arg for InvocationContext
2024-03-01 10:42:33 +11:00
f612a96afd
feat(nodes): restore previous invocation context methods with deprecation warnings
2024-03-01 10:42:33 +11:00
9af0553652
chore: ruff
2024-03-01 10:42:33 +11:00
1616974b48
feat(nodes): tidy invocation_context.py
, improve comments
2024-03-01 10:42:33 +11:00
ef27283569
tests: fix tests for new invocation context
2024-03-01 10:42:33 +11:00
a79a450e9d
docs: update INVOCATIONS.md
2024-03-01 10:42:33 +11:00
8637c40661
feat(nodes): update all invocations to use new invocation context
...
Update all invocations to use the new context. The changes are all fairly simple, but there are a lot of them.
Supporting minor changes:
- Patch bump for all nodes that use the context
- Update invocation processor to provide new context
- Minor change to `EventServiceBase` to accept a node's ID instead of the dict version of a node
- Minor change to `ModelManagerService` to support the new wrapped context
- Fanagling of imports to avoid circular dependencies
2024-03-01 10:42:33 +11:00
9bc2d09889
feat: add pyright config
...
I was having issues with mypy bother over- and under-reporting certain problems. I've added a pyright config.
2024-03-01 10:42:33 +11:00
3d98446d5d
feat(nodes): restricts invocation context power
...
Creates a low-power `InvocationContext` with simplified methods and data.
See `invocation_context.py` for detailed comments.
2024-03-01 10:42:33 +11:00
992b02aa65
tidy(nodes): move all field things to fields.py
...
Unfortunately, this is necessary to prevent circular imports at runtime.
2024-03-01 10:42:33 +11:00
8989a6cdc6
Get multi-prompt attention working simultaneously with IP-adapter.
2024-02-29 14:54:13 -05:00
f44d3da9b1
Add CustomAttnProcessor2_0 class with simultaneous support for IP-Adapter and regional prompting.
2024-02-29 12:48:55 -05:00
1bbd4f751d
Fixup logic around compatibility of prompt-to-prompt, IP-Adapter, regional prompting.
2024-02-29 12:47:23 -05:00
63ab5ff5a2
translationBot(ui): update translation (Russian)
...
Currently translated at 98.3% (1398 of 1422 strings)
Co-authored-by: Васянатор <ilabulanov339@gmail.com >
Translate-URL: https://hosted.weblate.org/projects/invokeai/web-ui/ru/
Translation: InvokeAI/Web UI
2024-02-29 23:27:36 +11:00
9a8a9c5848
translationBot(ui): update translation (Italian)
...
Currently translated at 98.0% (1441 of 1470 strings)
Co-authored-by: Samantha Morello <tildsart@gmail.com >
Translate-URL: https://hosted.weblate.org/projects/invokeai/web-ui/it/
Translation: InvokeAI/Web UI
2024-02-29 23:27:36 +11:00
1a3ffb6e94
translationBot(ui): update translation (German)
...
Currently translated at 80.4% (1183 of 1470 strings)
Co-authored-by: Alexander Eichhorn <pfannkuchensack@einfach-doof.de >
Translate-URL: https://hosted.weblate.org/projects/invokeai/web-ui/de/
Translation: InvokeAI/Web UI
2024-02-29 23:27:36 +11:00
bdf3691ad0
Improve the logic for selecting SDXL pooled embeds when handling multi-region prompts.
2024-02-28 22:14:41 -05:00
e7f7ae660d
Raise a clear error message if prompt-to-prompt cross-attention control is triggered when using multiple prompts.
2024-02-28 21:38:25 -05:00
e132afb705
Make regional prompting work with sequential conditioning.
2024-02-28 21:21:50 -05:00
5f49e7ae26
Move regional prompt concatenation further up the stack. This solves a number of issues.
2024-02-28 20:11:47 -05:00
53ebca58ff
Rename ConditioningData to TextConditioningData.
2024-02-28 13:53:56 -05:00
ee1b3157ce
Split ip_adapter_conditioning out from ConditioningData.
2024-02-28 13:49:02 -05:00
e7ec13f209
Remove scheduler_args from ConditioningData structure.
2024-02-28 12:15:39 -05:00
cad3e5dbd7
Remove dead code related to an old symmetry feature.
2024-02-28 11:29:52 -05:00
845c4e93ae
Update various comments related to regional prompting, and delete duplicate _preprocess_regional_prompt_mask(...) function.
2024-02-28 10:20:22 -05:00
54971afe44
Add symmetric support for regional negative text prompts.
2024-02-27 20:05:02 -05:00
cfba51aed5
Removed unused function: _prepare_text_embeddings(...)
2024-02-27 19:23:20 -05:00
2966c8de2c
Handle conditioned and unconditioned text conditioning in the same way for regional prompt attention.
2024-02-27 18:16:01 -05:00