Replies: 1 comment
-
Can confirm. I have a node tree that is >250 nodes and it experiences massive slowdown past a certain point. I had to remove all re-routes and any duplicates/convenience features so it could run in a reasonable amount of time. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Unfortunately, Python does not support tail-recursion, so recursive implementations should be avoided for processing nodes of unknown and potentially very large size. Therefore, it is necessary to change this part to a worklist-based approach.
In addition, the current execution process involves traversing all nodes for validation before executing, but since only lightweight validations like line connections are necessary at this point, it would be appropriate to dynamically determine and defer more complex validations until the execution point of the node. If an error occurs, highlighting the node that caused the problem would be helpful in identifying which node's processing had issues.
Using this approach, we can handle structures such as circular workflows and repetitive emits. For example, in the case of nodes like the detection and detailer node that I recently created, instead of creating a special node to process multiple detection items generated by the detection node at once, we can construct a node flow that combines existing nodes to process details for one item at a time. We can then create a structure that repeats processing until all items in the output collection of the same detection node are exhausted.
Moreover, we can create a loop that generates an image and repeatedly upscales it by 1.2 times over n iterations.
Beta Was this translation helpful? Give feedback.
All reactions