ComfyUI Extension: Jovimetrix
Webcam, MIDI, Spout, and GLSL support with animation via tick. Features wave-based parameter modulation, math operations, universal value conversion, shape masking, image channel ops, batch processing, dynamic bus routing, GIPHY and SPOUT integration. Load images/videos from URLs, save output anywhere, and apply transformations like flattening, cropping, and color adjustments. Includes tools for color blindness simulation, stereograms, and stereoscopic imagingโplus much more!
Custom Nodes (70)
- ๐ธ๏ธ Adjust (jov)
- ADJUST (JOV) ๐ธ๏ธ
- AKASHIC (JOV) ๐
- BIT SPLIT (JOV) โญ
- โ๏ธ Blend (jov)
- BLEND (JOV) โ๏ธ
- โ๏ธ Blend Mask (jov)
- CALC OP BINARY (JOV) ๐
- CALC OP UNARY (JOV) ๐ฒ
- Canny
- COLOR MATCH (JOV) ๐
- COLOR THEORY (JOV) ๐
- COMPARISON (JOV) ๐ต๐ฝ
- ๐ช Constant (jov)
- CONSTANT (JOV) ๐ช
- CONVERT (JOV) ๐งฌ
- CROP (JOV) โ๏ธ
- DELAY (JOV) โ๐ฝ
- EXPORT (JOV) ๐ฝ
- ๐ Extend (jov)
- FIND EDGES (JOV) ๐ณ
- GLSL (JOV) ๐ฉ
- GRAPH (JOV) ๐
- GRAPH WAVE (JOV) โถ ฤฑlฤฑฤฑlฤฑฤฑlฤฑlฤฑlฤฑlฤฑlฤฑ.
- GRAYSCALE (JOV)
- HOLD VALUE (JOV) ๐ซด๐ฝ
- ๐ HSV (jov)
- HSV (JOV) ๐
- IF-THEN-ELSE (JOV) ๐
- IMAGE INFO (JOV) ๐
- LERP (JOV) ๐ฐ
- LEVELS (JOV) ๐
- MERGE (JOV) โ
- MIDI FILTER EZ (JOV) โ๏ธ
- MIDI FILTER (JOV) โณ๏ธ
- MIDI MESSAGE (JOV) ๐๏ธ
- MIDI READER (JOV) ๐น
- ๐ฐ Mirror (jov)
- OP BINARY (JOV) ๐
- OP UNARY (JOV) ๐ฒ
- PIXEL MERGE (JOV) ๐ซ
- ๐ Pixel Shader Image (jov)
- ๐ Pixel Shader (jov)
- PIXEL SPLIT (JOV) ๐
- POLYGON (JOV)
- QUEUE (JOV) ๐
- RE-ROUTE (JOV) ๐
- ๐ Route (jov)
- ROUTE (JOV) ๐
- SAVE OUTPUT (JOV) ๐พ
- โจ Shape Generator (jov)
- SHAPE GENERATOR (JOV) โจ
- STRINGER (JOV) ๐ช
- SWIZZLE (JOV) ๐ต
- TEXT GENERATOR (JOV) ๐
- ๐ Threshold (jov)
- THRESHOLD (JOV) ๐
- TICK (JOV) โฑ
- ๐ณ Tile (jov)
- ๐ฑ Transform (jov)
- TRANSFORM (JOV) ๐๏ธ
- TRANS ROTATE (JOV)
- VALUE GRAPH (JOV) ๐
- VALUE (JOV) ๐งฌ
- VECTOR2 (JOV)
- VECTOR3 (JOV)
- VECTOR4 (JOV)
- WAVE GENERATOR (JOV) ๐
- WAVE GEN (JOV) ๐
- ๐ท WebCam (jov)
README
SPONSORSHIP
Please consider sponsoring me if you enjoy the results of my work, code or documentation or otherwise. A good way to keep code development open and free is through sponsorship.
<div align="center"> </div>HIGHLIGHTS
- 30 function
BLEND
node -- subtract, multiply and overlay like the best - Vector support for 2, 3, 4 size tuples of integer or float type
- Specific RGB/RGBA color vector support that provides a color picker
- All Image inputs support RGBA, RGB or pure MASK input
- Full Text generation support using installed system fonts
- Basic parametric shape (Circle, Square, Polygon) generator~~
COLOR BLIND
check supportCOLOR MATCH
against existing images or create a custom LUT- Generate
COLOR THEORY
spreads from an existing image COLOR MEANS
to generate palettes for existing images to keep other images in the same tonal rangesPIXEL SPLIT
separate the channels of an image to manipulate andPIXEL MERGE
them back togetherSTACK
a series of images into a new single image vertically, horizontally or in a grid- Or
FLATTEN
a batch of images into a single image with each image subsequently added on top (slap comp) VALUE
Node has conversion support for all ComfyUI types and some 3rd party types (2DCoords, Mixlab Layers)LERP
node to linear interpolate all ComfyUI and Jovimetrix value types- Automatic conversion of Mixlab Layer types into Image types
- Generic
ARRAY
that can Merge, Split, Select, Slice or Randomize a list of ANY type STRINGER
node to perform specific string manipulation operations: Split, Join, Replace, Slice.- A
QUEUE
Node that supports recursing directories, filtering multiple file types and batch loading - Use the
OP UNARY
andOP BINARY
nodes to perform single and double type functions across all ComfyUI and Jovimetrix value types - Manipulate vectors with the
SWIZZLE
node to swap their XYZW positions DELAY
execution at certain parts in a workflow, with or without a timeout- Generate curve data with the
TICK
andWAVE GEN
nodes
Migrated to Jovi_GLSL
~~* GLSL shader support~~
~~* * GLSL Node
provides raw access to Vertex and Fragment shaders~~
~~* * Dynamic GLSL
dynamically convert existing GLSL scripts file into ComfyUI nodes at runtime~~
~~* * Over 20+ Hand written GLSL nodes to speed up specific tasks better done on the GPU (10x speedup in most cases)~~
Migrated to Jovi_Capture
~~* STREAM READER
node to capture monitor, webcam or url media~~
~~* STREAM WRITER
node to export media to a HTTP/HTTPS server for OBS or other 3rd party streaming software~~
Migrated to Jovi_Spout
~~* SPOUT
streaming support WINDOWS ONLY~~
Migrated to Jovi_MIDI
~~* MIDI READER
Captures MIDI messages from an external MIDI device or controller~~
~~* MIDI MESSAGE
Processes MIDI messages received from an external MIDI controller or device~~
~~* MIDI FILTER
(advanced filter) to select messages from MIDI streams and devices~~
~~* MIDI FILTER EZ
simpler interface to filter single messages from MIDI streams and devices~~
Migrated to Jovi_Help
~~* Help System for ALL NODES that will auto-parse unknown knows for their type data and descriptions~~
Migrated to Jovi_Colorizer
~~* Colorization for ALL NODES using their own node settings, their node group or via regex pattern matching~~
UPDATES
<h2>DO NOT UPDATE JOVIMETRIX PAST VERSION 1.7.48 IF YOU DONT WANT TO LOSE A BUNCH OF NODES</h2>Nodes that have been removed are in various other packages now. You can install those specific packages to get the functionality back, but I have no way to migrate the actual connections -- you will need to do that manually. **
Nodes that have been migrated:
- ALL MIDI NODES:
-
- MIDIMessageNode
-
- MIDIReaderNode
-
- MIDIFilterNode
-
- MIDIFilterEZNode
- ALL STREAMING NODES:
-
- StreamReaderNode
-
- StreamWriterNode
-
- SpoutWriterNode
- ALL GLSL NODES:
-
- GLSL
-
- GLSL BLEND LINEAR
-
- GLSL COLOR CONVERSION
-
- GLSL COLOR PALETTE
-
- GLSL CONICAL GRADIENT
-
- GLSL DIRECTIONAL WARP
-
- GLSL FILTER RANGE
-
- GLSL GRAYSCALE
-
- GLSL HSV ADJUST
-
- GLSL INVERT
-
- GLSL NORMAL
-
- GLSL NORMAL BLEND
-
- GLSL POSTERIZE
-
- GLSL TRANSFORM
2025/05/06 @2.1.1:
- fixed IS_CHANGED in graphnode
- updated
TICK SIMPLE
in situ ofTICK
to be inclusive of the end range - migrated ease, normalization and wave functions to cozy_comfyui
- first pass preserving values in multi-type fields
2025/05/05 @2.1.0:
- Cleaned up all node defaults
- Vector nodes aligned for list outputs
- Cleaned all emoji from input/output
- Clear all EnumConvertTypes and align with new comfy_cozy
- Lexicon defines come from Comfy_Cozy module
OP UNARY
fixed factorial- Added fill array mode for
OP UNARY
- removed
STEREOGRAM
andSTEROSCOPIC
-- they were designed poorly
2025/05/01 @2.0.11:
- unified widget_vector.js
- new comfy_cozy support
- auto-convert all VECINT -> VEC float types
- readability for node definitions
2025/04/24 @2.0.10:
SHAPE NODE
fixed for transparency blends when using blurred masks
2025/04/24 @2.0.9:
- removed inversion in pixel splitter
2025/04/23 @2.0.8:
- categories aligned to new comfy-cozy support
2025/04/19 @2.0.7:
- all JS messages fixed
2025/04/19 @2.0.6:
- fixed reset message from JS
2025/04/19 @2.0.5:
- patched new frontend input mechanism for dynamic inputs
- reduced requirements
- removed old vector conversions waiting for new frontend mechanism
2025/04/17 @2.0.4:
- fixed bug in resize_matte
MODE
that would fail when the matte was smaller than the input image - migrated to image_crop functions to cozy_comfyui
2025/04/12 @2.0.0:
-
REMOVED ALL STREAMING, MIDI and GLSL nodes for new packages, HELP System and Node Colorization system:
Jovi_Capture - Web camera, Monitor Capture, Window Capture
Jovi_MIDI - MIDI capture and MIDI message parsing
Jovi_Spout - SPOUT Streaming support
-
all nodes will accept
LIST
orBATCH
and process as if all elements are in a list. -
patched constant node to work with
MATTE_RESIZE
-
patched import loader to work with old/new comfyui
-
missing array web node partial
-
removed array and no one even noticed.
-
all inputs should be treated as a list even single elements []
INSTALLATION
Please see the wiki for advanced use of the environment variables used during startup
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 <code>virtual environment</code> (<code><i>venv</i></code>), make sure it is activated before installation. Then install the requirements with the command:
pip install -r requirements.txt