COMFYUI Nodes for procedural masking, live composition and video manipulation
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:
- Krita (2D)
- Calvary (motion graphics)
- Davinci Resolve (movie editing)
The main goal of Jovimetrix is to supplement those external workflows before the need to use them.
- animation / motion graphics
- traditional image blending
- support masks as an image channel
- improved UX ** custom node colorization ** node favorites
If you have ComfyUI Manager installed, simply search for Jovimetrix and install from the manager's database.
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
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
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 statrt-up, set the JOV_SCAN_DEVICES variable to 1 or True.
JOV_SCAN_DEVICES=1
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.
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 GENERATOR ✨ | Generate polyhedra for masking or texture work. |
TEXT GENERATOR 📝 | Uses any system font with auto-fit or manual placement. |
STEREOGRAM 📻 | Make a magic eye stereograms. |
GLSL 🍩 | GLSL Shader support |
ADJUST | |
---|---|
ADJUST 🕸️ | Blur, Sharpen, Emboss, Levels, HSV, Edge detection. |
COLOR MATCH 💞 | Project the colors of one image onto another or use a pre-defined color target. |
THRESHOLD 📉 | Clip an input based on a mid point value. |
COMPOSE | |
---|---|
TRANSFORM 🏝️ | Translate, Rotate, Scale, Tile, Mirror, Re-project and invert an input. |
BLEND ⚗️ | Applies selected operation to 2 inputs with optional mask using a linear blend (alpha). |
PIXEL SPLIT 💔 | Splits images into constituent R, G and B and A channels. |
PIXEL MERGE 🫂 | Combine 3 or 4 inputs into a single image |
STACK ➕ | Union multiple latents horizontal, vertical or in a grid. |
CROP ✂️ | Clip away sections of an image and backfill with optional color matte. |
COLOR THEORY 🛞 | Generate Complimentary, Triadic and Tetradic color sets. |
CALC | |
---|---|
VALUE #️⃣ | Create a value for most types; also universal constants. |
CONVERT🧬 | Convert INT, FLOAT, VEC*, STRING and BOOL. |
CALC OP UNARY 🎲 | Perform a Unary Operation on an input. |
CALC OP BINARY 🌟 | Perform a Binary Operation on two inputs. |
LERP 🔰 | Interpolate between two values with or without a smoothing. |
ANIMATE | |
---|---|
TICK ⏱ | Periodic pulse exporting normalized, delta since last pulse and count. |
WAVE GENERATOR 🌊 | Periodic and Non-Periodic Sinosodials. |
FLOW | |
---|---|
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. |
HOLD VALUE 🫴🏽 | When engaged will send the last value it had even with new values arriving. |
DEVICE | |
---|---|
MIDI READER🎹 | Capture MIDI devices and pass the data into Comfy. |
MIDI MESSAGE🎛️ | Expands a MIDI message into its values. |
MIDI FILTER ✳️ | Filter MIDI messages by channel, message type or value. |
MIDI FILTER EZ ❇️ | Filter MIDI messages by channel, message type or value. |
STREAM READER📺 | Connect system media devices and remote streams into ComfyUI workflows. |
STREAM WRITER🎞️ | Broadcast ComfyUI Node outputs to custom webserver endpoint. |
AUDIO | |
---|---|
GRAPH WAVE▶ ılıılı | Import and display audio linear waveform data. |
UTILITY | |
---|---|
VALUE GRAPH📈 | Graphs historical execution run values |
AKASHIC📓 | Display the top level attributes of an output |
QUEUE🗃 | Cycle lists of images files or strings for node inputs. |
SELECT🤏🏽 | Select an item from a user explicit list of inputs. |
ROUTE🚌 | Pass all data because the default is broken on connection |
EXPORT 📽 | Take your frames out static or animated (GIF) |
IMAGE DIFF 📏 | Explicitly show the differences between two images via self-similarity index |
GLSL | |
---|---|
GLSL - GRAYSCALE | Converts input to grayscale. |
GLSL - NOISE | Various noise functions |
GLSL - PATTERN | Pattern factory wip. |
GLSL - POLYGON | Make convex polygons |
GLSL - MAP | Re-project an image |
GLSL - SELECT RANGE | Select a value range from an image for masking. |
GLSL - MIRROR | Mirror an input with an optional custom pivot. |
GLSL - ROTATE | Rotate an input. |
GLSL - TILER | A tiling utility wip. |
GLSL - VFX | Various Video Effects. |
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 | Chris Goringe | Purz |
pythongosssss | melmass | Fizzledorf |
Dr. Lt. Data | Trung0246 | Fannovel16 |
Kijai | WASasquatch | MatisseTec |
rgthree | Suzue1 | |