Skip to content

Rogala/ComfyUI-rogala

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ComfyUI-rogala

Custom node pack for ComfyUI.

Installation

cd ComfyUI/custom_nodes
git clone https://github.com/rogala/ComfyUI-rogala

Restart ComfyUI. All nodes appear under the rogala menu.

Project structure

ComfyUI-rogala/
├── __init__.py          # Entry point — registers all nodes
├── pyproject.toml       # Package metadata
├── nodes/               # One .py file per node (or logical group)
│   └── _template.py     # Copy this to create a new node
├── js/                  # Frontend extensions loaded by ComfyUI
├── config/              # JSON configuration files
│   └── categories.json  # Category definitions
└── web/                 # Static web assets (CSS, icons) if needed

Aligned Text Overlay Images

Renders a multi-line text block onto an image at a chosen corner before saving. Supports %NodeTitle.param% template tags resolved from the active ComfyUI prompt.

Aligned Text Overlay Images

Inputs

Pin Default Description
image Input image tensor.
text_template see default Template string with optional %Node.param% tags.
vertical bottom Vertical anchor: top or bottom.
horizontal right Horizontal anchor: left or right.
font_size 16 Font size in points (10–50).
text_color white Text colour.
bg_color black Background colour (none = transparent).
bg_opacity 150 Background opacity (50–250).
external_text Optional string appended after the resolved template.

Outputs

Pin Type Description
image IMAGE Outputs an image with a text block superimposed on top.

Example

Default template pulls values directly from a KSampler node:

seed: %KSampler.seed% | steps: %KSampler.steps%
cfg: %KSampler.cfg% | %KSampler.sampler_name% | %KSampler.scheduler%

NodeTitle must match the title shown on the node in the graph. Numeric sampler / scheduler indices are decoded to names automatically. Connect external_text from SamplerSchedulerIterator to append the current "sampler | scheduler" pair to the overlay.


Aligned Text Overlay Video

Renders a multi-line text block onto every frame of a video tensor. Supports %NodeTitle.param% template tags resolved from the active ComfyUI prompt.

aligned_text_overlay_video

Inputs

Pin Default Description
images Video tensor (B, H, W, C).
text_template see default Template string with optional %NodeTitle.param% tags.
vertical bottom Vertical anchor: top or bottom.
horizontal right Horizontal anchor: left or right.
font_size 16 Font size in points (10–50).
text_color white Text colour.
bg_color black Background colour (none = transparent).
bg_opacity 150 Background opacity (50–250).
first_frame_only false Apply overlay only to the first frame (fast preview).
external_text Optional string appended after the resolved template.

Outputs

Pin Type Description
images IMAGE Outputs a video tensor with text overlay applied.

Example

Connect between VAE Decode and video output:

VAE Decode -> AlignedTextOverlayVideo -> VHS Video Combine

Default template pulls values directly from a KSampler node:

seed: %KSampler.seed% | steps: %KSampler.steps% cfg: %KSampler.cfg% | %KSampler.sampler_name% | %KSampler.scheduler%

If you have multiple samplers, rename them in the graph (Right Click → Title) and reference explicitly:

steps: %Sampler_1.steps%

NodeTitle must match the title shown on the node in the graph. Numeric sampler / scheduler indices are decoded to names automatically.

Connect external_text from SamplerSchedulerIterator to append the current "sampler | scheduler" pair to the overlay.

Enable first_frame_only for fast preview (applies overlay only to frame 0).


Sampler Scheduler Iterator

Iterates over sampler x scheduler combinations one pair per execution. Outputs each pair to connected nodes (e.g. KSampler, Aligned Text Overlay Images). Node title updates automatically: Iterator: Step 3 / 12. Queue stops automatically after the last combination.

Note: Press Refresh before first use. This reads all installed samplers and schedulers from ComfyUI and writes the reference file. The counter resets to 0.

Sampler Scheduler Iterator

Inputs

This node has no inputs. Configure combinations in .\ComfyUI\custom_nodes\ComfyUI-rogala\config\sampler_scheduler_user.json.

Outputs

Pin Type Description
sampler_name SAMPLER Current sampler — connect to KSampler.
scheduler SCHEDULER Current scheduler — connect to KSampler.
external_text STRING `"sampler

Example

Edit config/sampler_scheduler_user.json to select combinations:

{
    "samplers": ["euler", "dpmpp_2m", "dpmpp_3m_sde"],
    "schedulers": ["karras", "simple"]
}

Total = samplers x schedulers (here: 3 x 2 = 6 runs). Copy names from config/sampler_scheduler.json (generated by Refresh). Unknown names are silently ignored.


LTX Resolution Selector

Selects the correct input resolution and frame count for LTX Video models. Supports Dev mode and Distilled upscale modes (x1.5 and x2).

LTX Resolution Selector

Inputs

Pin Default Description
mode Dev (no upscale) Render mode — see table below.
dev_target 960x544 Target resolution for Dev mode (12 options).
upscale_target 1920x1080 Target resolution for Distilled modes (6 options).
fps 24.0 Frames per second (1–120). Passed through to output.
duration_sec 5 Clip duration in seconds (1–300).

mode options:

Value Description
Dev (no upscale) Standard LTX Dev sizes, rounded UP to nearest multiple of 32.
x1.5 Distilled Returns input size needed to reach the target after x1.5 upscale.
x2 Distilled Returns input size needed to reach the target after x2 upscale.

Outputs

Pin Type Description
width INT Input width in pixels (multiple of 32).
height INT Input height in pixels (multiple of 32).
length INT Frame count: 1 + 8 x round(fps x sec / 8).
fps FLOAT Passthrough of the fps input.

Example

To render a 5-second clip at 1920x1080 using x2 Distilled:

  • mode = x2 Distilled
  • upscale_target = 1920x1080 (Landscape)
  • fps = 24, duration_sec = 5
  • Node outputs: width=960, height=544, length=121, fps=24

Script for Aligning Nodes

A lightweight frontend extension that adds a persistent toolbar at the bottom of the canvas for aligning, distributing, and resizing selected nodes.

Capture

Features: align left / right / top / bottom · distribute horizontally and vertically (gap-aware, not center-based) · match width to widest node (aligns to leftmost) · deselect all

The toolbar auto-scales based on screen resolution (1080p / 2K / 4K) and includes manual size control (5 levels, −2 to +2) so the buttons stay comfortable at any display density. Localized tooltips (EN, UK-UA, DE, FR, ES, IT, PT-BR, ZH, JA)

Independent implementation inspired by KayTool (kk8bit) and ComfyUI-NodeAligner (Tenney95). No shared code — similar idea, different approach.

About

ComfyUI Nodes

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors