VJ UNION

Cover image for GLSL Nodes for ComfyUI
vdmo
vdmo

Posted on

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.

https://github.com/patriciogonzalezvivo/comfyui_glslnodes/

Here some examples:

examples/types.json
types

examples/depth_of_field.json
depth_of_field

examples/edge_detection.json
edge_detection

examples/look_up_table.json
look_up_table

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:

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, vec3 and vec4
  • [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 exposes u_scene and u_sceneDepth

Discussion (0)