Skip to content

ComfyUI node suite for composition, stream webcams or media files in and out, animation, flow control, making masks, shapes and textures like Houdini and Substance Designer, read MIDI devices. Also has colorization options for workflow nodes via regex, groups and each node.

License

Notifications You must be signed in to change notification settings

Amorano/Jovimetrix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

THIS ENTIRE PROJECT IS DONATIONWARE.
PLEASE FEEL FREE TO CONTRIBUTE IN ANYWAY YOU THINK YOU CAN

ComfyUI Nodes for procedural masking, live composition and video manipulation

COMFYUI Nodes for procedural masking, live composition and video manipulation

WHY BUILD THESE NODES?

There are many ways to do composition and it is apparent that is a large portion of what Computer Vision - aka contemporaneous "A.I" - is invented to resolve.

While diffusers and latent hallucinations can make many amazing things at the moment, there is still a need to resolve final "frames" in something else, like one of the many free tools:

The main goal of Jovimetrix is to supplement those external workflows before the need to use them.

TARGETS

  • animation / motion graphics
  • traditional image blending
  • support masks as an image channel
  • improved UX ** custom node colorization ** node favorites

COMMUNITY

Everything here is made because I wanted to make it. Everything you are looking for here that you cant find doesn't exist because I didn't make it. If you feel like helping with text or code contributions, please pull and send me any PRs.

VISUAL AIDS AND EXAMPLES

YouTube

WORKFLOW EXAMPLES

TBD

CONTRIBUTIONS

Feel free to contribute to this project by reporting issues or suggesting improvements. Open an issue or submit a pull request on the GitHub repository.

DONATIONS

If you feel like donating money resource instead, you can always use my ko-fi ❀️

DISCORD

There are a few places you can chat about Jovimetrix nodes.

Directly on the #jovimetrix channel at the Banodoco discord:

On Purz discord (Creative Exploration):

INSTALLATION

COMFYUI MANAGER

If you have ComfyUI Manager installed, simply search for Jovimetrix and install from the manager's database.

MANUAL INSTALL

Clone the repository into your ComfyUI custom_nodes directory. You can clone the repository with the command:

git clone https://github.com/Amorano/Jovimetrix.git

You can then install the requirements by using the command:

.\python_embed\python.exe -s -m pip install -r requirements.txt

If you are using a virtual environment (venv), make sure it is activated before installation. Then install the requirements with the command:

pip install -r requirements.txt

ENVIRONMENT VARIABLES

LOGGER

The logger can be controlled via the JOV_LOG_LEVEL variable. It can be set to one of the following, by name or value:

  • TRACE (5)
  • DEBUG (10)
  • INFO (20)
  • SUCCESS (25)
  • WARNING (30)
  • ERROR (40)
  • CRITICAL (50)

The default is WARNING (30); i.e.:

SET JOV_LOG_LEVEL=WARNING

IGNORE NODES

Because there are a number of nodes that have overlapping functionality with other node packages, I have provided a mechanism to ignore loading of specific nodes.

If you create a file called ignore.txt inside the Jovimetrix root folder (.../ComfyUI/custom_nodes/Jovimetrix), it will skip loading any nodes included.

USAGE

Each entry should be on a separate line using the full node class name (the default name of the node). For example, in ignore.txt:

CONSTANT (JOV) πŸŸͺ

Will ignore the Constant node for use in ComfyUI.

This will NOT prevent the module from loading the imports, but this can help reduce your visual space while working within ComfyUI if you do not require looking at an additional 60+ nodes.

SYSTEM DEVICE SCAN

Allows the system to auto-scan for any devices, so that it can populate the device list in the Stream Reader Node.

The STREAM READERπŸ“Ί is able to load media from local media, web media dna also system devices such as (virtual) web cameras and monitors. By default, the scan for web cameras is off.

If you wish to engage the auto-scan on ComfyUI start-up, set the JOV_SCAN_DEVICES variable to 1 or True.

SET JOV_SCAN_DEVICES=1

HELP SYSTEM

The main help system is made possible by Mel Massadian. It is located on the top right of each node (?). This will present a window which is loaded from the main help repository for Jovimetrix

You can build all the help locally by loading Comfy and surfing to the local URL:

http://127.0.0.1:8188/jovimetrix/doc

This will build all the help stub files (.md) inside the main Jovimetrix folder under a folder named _md

If you wish to re-direct those outputs, you can set the ENV varible JOV_SIDECAR.

e.g. SET JOV_SIDECAR=C:/dev/jvx/help

GIFSKI SUPPORT

If you have GIFSKI installed you can enable the option for the Export Node to use GIFSKI when outputting frames.

You will need to add an environment var so it knows you have it installed and where:

SET JOV_GIFSKI=[path to gifski]

Once set the GIFSKI option should appear in the Export Node drop down list of output target formats.

PYAUDIO

By default, pyaudio is installed for all platforms; however, it may be nessicary to run a specific platform package manager to obtain all the correct platform dependencies. You can refer to the non-complicated specific platform instructions for help..

In short:

  • For MacOS you need the extra brew package of portaudio. (brew install portaudio)
  • For Linux you need the extra apt package of python3-pyaudio. (sudo apt-get install python3-pyaudio)

SPOUT (WINDOWS ONLY)

If you are on Linux or Mac, Spout will not be installed from the requirements.txt.

By default, Spout, a system for GPU accelerated sharing of graphics between applications, is on for all platforms.

If you are on Mac or Linux, this will only amount to a message at startup about Spout not being used. When Spout is not found, the SpoutWriter node will not showup. In addition, the StreamReader node will not have Spout as an option from which to read stream data.

If you want to fully turn off the initial startup attempt to import Spout, you can use the environment variable:

SET JOV_SPOUT=0

FFMEPG

The audio nodes require FFMPEG. You can find the official FFMPEG here. Follow it's installation instructions for your specific operating system.

CREATE Β 
CONSTANT πŸŸͺ Create a single RGBA block of color. Useful for masks, overlays and general filtering.
SHAPE GEN ✨ Generate polyhedra for masking or texture work.
TEXT GEN πŸ“ Uses any system font with auto-fit or manual placement.
STEREOGRAM πŸ“» Make a magic eye stereograms.
STEREOSCOPIC πŸ•ΆοΈ Simulate depth perception in images by generating stereoscopic views.
GLSL 🍩 GLSL Shader support
GRAPH WAVEβ–Ά Δ±lΔ±Δ±lΔ± Import and display audio linear waveform data.
COMPOSE Β 
ADJUST πŸ•ΈοΈ Blur, Sharpen, Emboss, Levels, HSV, Edge detection.
BLEND βš—οΈ Applies selected operation to 2 inputs with optional mask using a linear blend (alpha)
COLOR BLIND πŸ‘β€πŸ—¨ Simulate color blindness effects on images.
COLOR MATCH πŸ’ž Project the colors of one image onto another or use a pre-defined color target.
COLOR THEORY πŸ›ž Generate Complimentary, Triadic and Tetradic color sets
CROP βœ‚οΈ Clip away sections of an image and backfill with optional color matte
FILTER MASK 🀿 Create masks based on specific color ranges within an image.
FLATTEN ⬇️ Combine multiple input images into a single image by summing their pixel values
PIXEL MERGE πŸ«‚ Combine 3 or 4 inputs into a single image
PIXEL SPLIT πŸ’” Splits images into constituent R, G and B and A channels
PIXEL SWAP πŸ”ƒ Swap pixel values between two input images based on specified channel swizzle operations
STACK βž• Union multiple latents horizontal, vertical or in a grid
THRESHOLD πŸ“‰ Clip an input based on a mid point value.
TRANSFORM 🏝️ Translate, Rotate, Scale, Tile, Mirror, Re-project and invert an input
CALCULATE Β 
COMPARISON πŸ•΅πŸ½ Compare two inputs: A=B, A!=B, A>B, A>=B, A<B, A<=B
DELAY βœ‹πŸ½ Delay traffic. Electrons on the data bus go round.
LERP πŸ”° Interpolate between two values with or without a smoothing
OP UNARY 🎲 Perform a Unary Operation on an input.
OP BINARY 🌟 Perform a Binary Operation on two inputs.
TICK ⏱ Periodic pulse exporting normalized, delta since last pulse and count.
VALUE #️⃣ Create a value for most types; also universal constants.
WAVE GEN 🌊 Periodic and Non-Periodic Sinosodials.
DEVICE Β 
MIDI FILTER ✳️ Filter MIDI messages by channel, message type or value.
MIDI FILTER EZ ❇️ Filter MIDI messages by channel, message type or value.
MIDI MESSAGE πŸŽ›οΈ Expands a MIDI message into its values.
MIDI READER 🎹 Capture MIDI devices and pass the data into Comfy.
STREAM READER πŸ“Ί Connect system media devices and remote streams into ComfyUI workflows.
STREAM WRITER 🎞️ Broadcast ComfyUI Node outputs to custom webserver endpoint.
UTILITY Β 
AKASHIC πŸ““ Display the top level attributes of an output
EXPORT πŸ“½ Take your frames out static or animated (GIF)
GRAPH πŸ“ˆ Graphs historical execution run values
QUEUE πŸ—ƒ Cycle lists of images files or strings for node inputs.
ROUTE 🚌 Pass all data because the default is broken on connection
SAVE OUTPUT πŸ’Ύ Select an item from a user explicit list of inputs.

ACKNOWLEDGEMENTS

Everyone mentioned here has been tireless in helping me, at some point, construct all the material in Jovimetrix.

Β  Β 
Stable Diffusion without this, we would all still only be using pixel pushing tools
ComfyUI Thank You! for existing

COMFY DEVELOPERS & NODE MAKERS & COMMUNITY BUILDERS

Β  Β  Β 
comfy Chris Goringe Purz
pythongosssss melmass Fizzledorf
Dr. Lt. Data Trung0246 Fannovel16
Kijai WASasquatch MatisseTec
rgthree Suzue1

LICENSE

This project is licensed under the MIT License. See the LICENSE file for details.

About

ComfyUI node suite for composition, stream webcams or media files in and out, animation, flow control, making masks, shapes and textures like Houdini and Substance Designer, read MIDI devices. Also has colorization options for workflow nodes via regex, groups and each node.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published