InvokeAI/invokeai/app/invocations
psychedelicious 2f9ebdec69 fix(app): openapi schema generation
Some tech debt related to dynamic pydantic schemas for invocations became problematic. Including the invocations and results in the event schemas was breaking pydantic's handling of ref schemas. I don't really understand why - I think it's a pydantic bug in a remote edge case that we are hitting.

After many failed attempts I landed on this implementation, which is actually much tidier than what was in there before.

- Create pydantic-enabled types for `AnyInvocation` and `AnyInvocationOutput` and use these in place of the janky dynamic unions. Actually, they are kinda the same, but better encapsulated. Use these in `Graph`, `GraphExecutionState`, `InvocationEventBase` and `InvocationCompleteEvent`.
- Revise the custom openapi function to work with the new models.
- Split out the custom openapi function to a separate file. Add a `post_transform` callback so consumers can customize the output schema.
- Update makefile scripts.
2024-05-30 12:03:03 +10:00
..
custom_nodes fix(nodes): gracefully handle custom nodes init error 2024-04-02 13:25:14 +11:00
__init__.py fix(config): remove unnecessary resolve on config path 2024-03-19 09:24:28 +11:00
baseinvocation.py fix(app): openapi schema generation 2024-05-30 12:03:03 +10:00
collections.py fix(nodes): restore type annotations for InvocationContext 2024-03-01 10:42:33 +11:00
compel.py Optimize RAM to VRAM transfer (#6312) 2024-05-24 17:06:09 +00:00
constants.py chore: ruff formatting 2024-03-01 10:42:33 +11:00
controlnet_image_processors.py feat(nodes): make all ModelIdentifierField inputs accept connections 2024-05-19 20:14:01 +10:00
cv.py chore: bump nodes versions 2024-03-20 10:28:07 +11:00
facetools.py chore: bump nodes versions 2024-03-20 10:28:07 +11:00
fields.py Rename MaskField to be a generice TensorField. 2024-04-09 08:12:12 -04:00
image.py feat(nodes): use new blur_if_nsfw method 2024-05-14 07:23:38 +10:00
infill.py feat(nodes): disable mosaic fill 2024-04-05 08:49:13 +11:00
ip_adapter.py feat(nodes): make all ModelIdentifierField inputs accept connections 2024-05-19 20:14:01 +10:00
latent.py Optimize RAM to VRAM transfer (#6312) 2024-05-24 17:06:09 +00:00
mask.py feat(nodes): image mask to tensor invocation 2024-04-20 11:32:08 -04:00
math.py chore: bump nodes versions 2024-03-20 10:28:07 +11:00
metadata.py tidy(nodes): move cnet mode literals to utils 2024-04-25 13:20:09 +10:00
model.py feat(nodes): make ModelIdentifierInvocation a prototype 2024-05-19 20:14:01 +10:00
noise.py [util] Add generic torch device class (#6174) 2024-04-15 13:12:49 +00:00
param_easing.py chore: bump nodes versions 2024-03-20 10:28:07 +11:00
primitives.py Rename MaskField to be a generice TensorField. 2024-04-09 08:12:12 -04:00
prompt.py chore: bump nodes versions 2024-03-20 10:28:07 +11:00
sdxl.py feat(nodes): make all ModelIdentifierField inputs accept connections 2024-05-19 20:14:01 +10:00
strings.py chore: bump nodes versions 2024-03-20 10:28:07 +11:00
t2i_adapter.py feat(nodes): make all ModelIdentifierField inputs accept connections 2024-05-19 20:14:01 +10:00
tiles.py chore: bump nodes versions 2024-03-20 10:28:07 +11:00
upscale.py [util] Add generic torch device class (#6174) 2024-04-15 13:12:49 +00:00
util.py fix(nodes): fix constraints/validation for controlnet 2024-01-02 07:28:53 -05:00