Custom node pack for ComfyUI.
cd ComfyUI/custom_nodes
git clone https://github.com/rogala/ComfyUI-rogalaRestart ComfyUI. All nodes appear under the rogala menu.
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
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.
| 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. |
| Pin | Type | Description |
|---|---|---|
image |
IMAGE | Outputs an image with a text block superimposed on top. |
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.
Renders a multi-line text block onto every frame of a video tensor.
Supports %NodeTitle.param% template tags resolved from the active ComfyUI prompt.
| 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. |
| Pin | Type | Description |
|---|---|---|
images |
IMAGE | Outputs a video tensor with text overlay applied. |
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).
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.
This node has no inputs. Configure combinations in .\ComfyUI\custom_nodes\ComfyUI-rogala\config\sampler_scheduler_user.json.
| Pin | Type | Description |
|---|---|---|
sampler_name |
SAMPLER | Current sampler — connect to KSampler. |
scheduler |
SCHEDULER | Current scheduler — connect to KSampler. |
external_text |
STRING | `"sampler |
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.
Selects the correct input resolution and frame count for LTX Video models. Supports Dev mode and Distilled upscale modes (x1.5 and x2).
| 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. |
| 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. |
To render a 5-second clip at 1920x1080 using x2 Distilled:
mode=x2 Distilledupscale_target=1920x1080 (Landscape)fps= 24,duration_sec= 5- Node outputs:
width=960, height=544, length=121, fps=24
A lightweight frontend extension that adds a persistent toolbar at the bottom of the canvas for aligning, distributing, and resizing selected nodes.
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.
