Skip to content

Conversation

psychedelicious
Copy link
Collaborator

@psychedelicious psychedelicious commented Aug 17, 2023

What type of PR is this? (check all applicable)

  • Refactor
  • Feature
  • Bug Fix
  • Optimization
  • Documentation Update
  • Community Node Submission

Description

Next batch of Node Editor changes.

@lstein
Copy link
Collaborator

lstein commented Aug 17, 2023

Working very well in my hands. Couldn't break it.

Add "nodrag", "nowheel" and "nopan" class names in interactable elements, as neeeded. This fixes the mouse interactions and also makes the node draggable from anywhere without needing shift.

Also fixes ctrl/cmd multi-select to support deselecting.
- update node schemas
- add `UIType.Scheduler`
- add field type to schema parser, input components
Previously if an image was used in nodes and you deleted it, it would reset all of node editor. Same for controlnet.

Now it only resets the specific nodes or controlnets that used that image.
When retrieving a graph, it is parsed through pydantic. It is possible that this graph is invalid, and an error is thrown.

Handle this by deleting the failed graph from the stats if this occurs.
- move docstrings to ABC
- `start_time: int` -> `start_time: float`
- remove class attribute assignments in `StatsContext`
- add `update_mem_stats()` to ABC
- add class attributes to ABC, because they are referenced in instances of the class. if they should not be on the ABC, then maybe there needs to be some restructuring
The `type` property is required on all of them, but because this is defined in pydantic as a Literal, it is not required in the OpenAPI schema. Easier to fix this by changing the generated types than fiddling around with pydantic.
Resets on invoke. Nothing fancy for the UI yet, just simple text (for numbers and strings) or image. For other output types, the output in JSON.
- also remove old `.gitignore` of `inputs/` which wasn't used and was ignoring a frontend folder
- `space` and `/` open floating add node select
- improved filter logic (partial word matches)
They are not loaders, they are selectors - remove this to reduce confusion.
…tionOutput

Doing this via these classes' `Config.schema_extra()` method makes it unintrusive and clients will get the correct types for these properties.

Shifts the responsibility of correct types to the backend, where previously it was on the client.
…nAPI schema

Doing this via `BaseInvocation`'s `Config.schema_extra()` means all clients get an accurate OpenAPI schema.

Shifts the responsibility of correct types to the backend, where previously it was on the client.
…s in OpenAPI schema

It is `"invocation"` for invocations and `"output"` for outputs. Clients may use this to confidently and positively identify if an OpenAPI schema object is an invocation or output, instead of using a potentially fragile heuristic.
simplified logic thanks to backend changes
Should catch all app crashes
- `curly` requires conditionals to use curly braces
- `react/jsx-curly-brace-presence` requires string props to *not* have curly braces
@blessedcoolant
Copy link
Collaborator

blessedcoolant commented Aug 21, 2023

  • Missing Output Preview components in InspectorOutputsTab.tsx
  • Node width is no longer enough for longer names -- For example on Denoise Latents, Denoising Start and End and etc get cutoff.

Standard with other tools like Blender
@psychedelicious
Copy link
Collaborator Author

Ohhhh the folder with those components is gitignored

@hipsterusername hipsterusername merged commit 8087b42 into main Aug 22, 2023
@hipsterusername hipsterusername deleted the feat/nodes-phase-3 branch August 22, 2023 00:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants