GLSL Nodes
A collections of nodes to support GLSL shaders inside a workflow. Provides nodes: glslViewer, glslEditor, glslEditorPro, int, float, vec2, vec3 and vec4.
Nodes (13)
The boring wire that makes your shader tunable
GlslBuffers — pull individual passes out of a multi-buffer shader
GlslEditor — the node where your shader code actually lives
GlslEditorPro — the GLSL editor with a real code editor in it
GlslUniforms — the caching node that keeps your shader workflows fast
Run GLSL shaders inside ComfyUI (with real video out)
Whole numbers for shader logic, not shader math
Shader offsets, directions, and UV nudges in one node
Vec2 (pos) — a vec2 you set by dragging a point on a grid
Three floats in a trenchcoat, for colors and 3D positions
Vec3 (pos) — a 3D point you set on a widget instead of in three number boxes
Vec4 — four floats, ready to be a shader uniform
Vec4 (color) — set a shader color with a real color picker
GLSL Nodes for ComfyUI
This nodes add support for GLSL shaders on workflows, by adding the following nodes: glslEditor, glslViewer, int, float, vec2, vec3, vec4.
Here some examples:
examples/types.json
examples/depth_of_field.json
examples/edge_detection.json
examples/look_up_table.json
examples/raymarch_to_image.json
examples/raymarch_buffers.json
https://github.com/user-attachments/assets/0cfbad85-6a79-4458-bd38-37a0d83996d0
examples/video_flow.json
https://github.com/user-attachments/assets/995f541e-cb11-42ff-95ea-b4e08d010778
examples/video_mask.json
https://github.com/user-attachments/assets/1f2a230d-b703-4889-b3b5-659855444366
examples/video_dither.json
https://github.com/user-attachments/assets/1d98caf2-347b-40c1-8442-2c72bb86a940
examples/video_pixelate.json
https://github.com/user-attachments/assets/89deee89-db13-4cfa-8a96-2e82f5ff6ca2
examples/shadertoy.json
https://github.com/user-attachments/assets/c6a66d8f-34cb-4ff6-b879-ee13e9e856d0
Features:
- It the code is compatible with GlslViewer, Glsl-Pipeline and GlslCanvas by following the following specs for:
- It contain LYGIA Shader Library by resolving all
#includedirectives from LYGIA's Server
Roadmap
- [x] 100, 120, 130, 140, 150, 300, 330, 330 core, 400, 410, 420, 430 and 440 GLSL shaders
- [x] Resolves dependencies to LYGIA Shader Library
- [x] Code editor (ACE) on GlslEditorPro nodes
- [x] produce multiple frames
- [x] reads multiple textures and texturesArrays
- [x] multiple float, vec2, vec3, vec4 uniforms
- [x] Dynamic inputs for uniforms
- [x] Uniforms node for efficiency by caching textures and texturesArrays together with the GL context
- [x] basic GLSL type nodes:
int,float,vec2,vec3andvec4 - [x] 2D position node widget
- [x] 3D position node widget
- [x] Color Picker node widget
- [x] multiple buffers (
#ifdef BUFFER_X) - [x] multiple double uniforms (
#ifdef DOUBLEBUFFER_X) - [ ] multiple pyramids (
#ifdef PYRAMID_X) - [x] OPTICAL_FLOW textures
- [x] MASK textures (create SDF on other channels)
- [ ] loading 3D geometry
- [ ] Vertex Shaders
- [ ] CubeMaps (Auto detect equirectangular, cross, etc)
- [ ] BACKGROUND pass (
#ifdef BACKGROUND) - [ ] POSTPROCESSING pass (
#ifdef POSTPROCESSING) - [ ] SCENE pass (
#ifdef SCENE) that exposesu_sceneandu_sceneDepth