comfyui_glslnodes

GLSL node for ComfyUI

GPL-3.0 License

Stars
158

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 types

examples/depth_of_field.json depth_of_field

examples/edge_detection.json edge_detection

examples/look_up_table.json look_up_table

examples/raymarch_to_image.json raymarch_to_image

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:

Roadmap

  • 100, 120, 130, 140, 150, 300, 330, 330 core, 400, 410, 420, 430 and 440 GLSL shaders
  • Resolves dependencies to LYGIA Shader Library
  • Code editor (ACE) on GlslEditorPro nodes
  • produce multiple frames
  • reads multiple textures and texturesArrays
  • multiple float, vec2, vec3, vec4 uniforms
  • Dynamic inputs for uniforms
  • Uniforms node for efficiency by caching textures and texturesArrays together with the GL context
  • basic GLSL type nodes: int, float, vec2, vec3 and vec4
  • 2D position node widget
  • 3D position node widget
  • Color Picker node widget
  • multiple buffers (#ifdef BUFFER_X)
  • multiple double uniforms (#ifdef DOUBLEBUFFER_X)
  • multiple pyramids (#ifdef PYRAMID_X)
  • OPTICAL_FLOW textures
  • 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