2023-11-25 04:01:17 -08:00
2023-11-25 03:59:56 -08:00
2023-11-25 03:46:33 -08:00
2023-11-05 18:22:14 -08:00
2023-11-05 18:21:50 -08:00
2023-11-25 03:46:33 -08:00
2023-11-25 04:01:17 -08:00
2023-11-25 03:46:33 -08:00
2023-11-25 03:46:33 -08:00

ComfyUI-0246

Random nodes for ComfyUI I made to solve my struggle with ComfyUI. Have varying quality.

Nodes list

  • Highway: yet another implementation but overkill version of pipe and reroute.
  • Junction: over-the-head data packing and unpacking sequentially.
  • JunctionBatch: if Junction and ComfyUI batching have a kid.

Highway

More complex example of what could be done (using my personal workflow as example) with extensions like `use-everywhere`:

The query syntax goes as follow:

  • >name: input variable.
  • <name: output variable.
  • >`n!ce n@me`: input variable but with special character and spaces (except `, obviously).
  • !name: output variable, but also delete itself, preventing from being referenced further.
    • CURRENTLY BROKEN DUE TO HOW COMFYUI UPDATE THE NODES.
  • <name1; >name2; !name3: multiple input and outputs together.

For now Highway node is probably stable, as long as there's no cyclic connection.

  • Cyclic connection means that input and output of the same Highway node must not be connect, including indirect connection.
    • Else will be recursion error due to how ComfyUI execute nodes (trust me I tried).

Can probably have "nested Highway" but probably useless since the node have unlimited in-out pins.

Recommended with chrisgoringe/cg-use-everywhere since it allows more complex notes rerouting.

Demo workflow is in assets/workflow_highway.json.

Special thanks to @kijai for ConditioningMultiCombine node as which Highway node is based of.

TODO (may or may not get implemented)
  • Cyclic detection in JS (python probably not possible unless I figure out a way how to extract the node graph).
  • Node force update (for !name).

Junction

`_offset` is used to skip data ahead for specific type (since internally it's a sequence of data).

_offset is persistent and will retains information across linked Junction.

The offset syntax goes as follow:

  • type,1: type is the type (usually LATENT, MODEL, VAE, etc.) and 1 is the index being set.
  • type,+2: Same as above but instead of set offset, it increase the offset instead.
  • type,-2: Decrease offset.
  • type1, -1; type2, +2; type3, 4: Multiple offset.

Can automatically expand pins.

Inspired by /u/GianoBifronte ideas.

Demo workflow is in assets/workflow_junction.json.


Junction Batch

Basically same as `Junction` but batch as list instead for further processing.

Hopefully difference between batch and pluck are self explainatory in the workflow.

Demo workflow is in assets/workflow_junction_batch.json.


TODO (may or may not get implemented)
  • Tutorial for Loop, Count, Hold, and Random.
  • More testing.
S
Description
No description provided
Readme MIT
7.4 MiB
Languages
JavaScript 63.9%
Python 36.1%