Extensions/ComfyUI illumorae
ComfyUI Extension

ComfyUI illumorae

focused on variation exploration with loading and saving within a project structure . load random files by string , multiply or randomize lora string strength , load and save to an external folderpath with filename safe outputs . load random checkpoint or load checkpoint from string matching . work in progress.

By CorvaeOboro·Created 8 months ago·Updated 6 days ago· 1
CorvaeOboro/ComfyUI_illumorae
Nodes35
On cloudLocal install
Categoryillumorae
Stars1
Updated6 days ago

Nodes (35)

Checkpoint Loader By String Dirty

Load a checkpoint by typing half its name

illumorae
Checkpoint Random Selector

Rotate checkpoints on a timer, on purpose

illumorae
Controlnet Image Preprocess Cached (illumorae)

Canny, LineArt and LeReS Depth With an On-Disk Cache

illumorae
Display Token Count

How Long Is Your Prompt, Really? A Token Counter That Puts the Number on the Node

illumorae
Enclosure Visualizer

Finally see what's actually nested in your prompt

illumorae
Image CLAHE (Contrast Limited Adaptive Histogram Equalization)

Pull detail out of flat, muddy images

illumorae
Image Face Aspect Crop

Crop to an aspect ratio without decapitating the subject

illumorae
Image Infill Boundary Propagate

The cheapest content fill in the pack

illumorae
Image Infill Exemplar Region Fill

Infill that extends the wall, road, and horizon

illumorae
Image Infill Gaussian Mixture Layer

Texture inpainting for people who miss the math

illumorae
Image Infill PatchMatch

The object-removal fill you'll actually reach for

illumorae
Image Resize Flux Kontext Scale Options

The Flux Kontext resolution ladder, with a stretch option

illumorae
Image Resize WAN Adaptive Framing

One node to prep images for WAN video

illumorae
Image Resize w Matte

Resize that respects your pipeline's math

illumorae
Image Retinex Enhancement

MSRCR for the murky, backlit, low-light mess

illumorae
Load Image Random Variant

Load a random camera-angle variant, not a random image

illumorae
Load Image w FilePath Out

Load an image by raw path, with the metadata for free

illumorae
Load Random File From Path By Prefix

Your prompt library, with a randomizer on it

illumorae
Load Text File Graceful

Read a prompt file without the red crash bubble

illumorae
LoRA Randomize Strength on Text

Randomize LoRA strength inside the prompt string

illumorae
LoRA Strength Multiplier on Text

Scale every LoRA in your prompt in one move

illumorae
LoRA Text Strength Visualizer WordPlot

See your LoRA strengths as a picture, not a wall of numbers

illumorae
Procedural Patterns

Procedural patterns without a model download — the ComfyUI trick for guided shapes

illumorae
Save Animated WEBP FolderPath

Save an animated WebP anywhere you want, not just into ComfyUI's output folder

illumorae
Save Image Extended FolderPath

Save PNGs into your own project folders, with counters and metadata intact

illumorae
Select ITEM By Amount Generated

Let a folder's own contents decide what to generate next

illumorae
Text Multiline FindColorized

A prompt editor that finally shows you where the LoRA tags are

illumorae
Text Reorder

Same words, shuffled order — the cheap way to explore prompt variation

illumorae
Text Show Multiline Color

A readable text display that survives reloads and broken inputs

illumorae
Text Strength Multiplier

Scale every prompt weight at once — without touching the LoRA tags

illumorae
Text To Filename Safe Text

Turn a prompt into a filename before your save node mangles it

illumorae
Text Truncate Protect

Cut text down to size without slicing a word or a bracket in half

illumorae
Wan2.2 I2V Lora Loader By Text (HIGH)

Drop a Wan 2.2 I2V LoRA on your high-noise pass without touching a dropdown

illumorae
Wan2.2 I2V Lora Loader By Text (LOW)

The low-noise leg of Wan 2.2 I2V LoRA loading — where detail and speed live

illumorae
Wan2.2 Lora Loader By Text

One text string, both Wan 2.2 passes — the loader that pairs HIGH and LOW LoRAs

illumorae
Readme
<p align="center"> <img src="https://github.com/CorvaeOboro/ComfyUI_illumorae/blob/main/docs/comfyui_illumorae_title.png?raw=true" height="200" /> </p>

ComfyUI illumorae

comfyUI custom nodes focused on randomization and image variant exploration

  • loading files by partial string match , randomizing lora string strength , text reordering
  • load and save with external folderpath and filename outputs for project structures
  • each node is self-contained and could be installed separately if prefer specific nodes

<a href="https://corvaeoboro.github.io/ComfyUI_illumorae/nodes/CheckpointLoaderByStringDirty.html"><img src="docs/comfyui_illumorae_load_checkpoint_text_file_basic.png" width="800" caption="workflow"/></a>

install

  • install thru the ComfyUI Manager search for "illumorae" or manually download as a zip and extract as folder into the ComfyUI custom_nodes directory
  • OPTIONAL may install nodes individually by copying a nodes subfolder into the ComfyUI custom_nodes directory , each has been setup to function independently

nodes

<table> <tr> <td><a href="https://corvaeoboro.github.io/ComfyUI_illumorae/nodes/ImageInfillBoundaryPropagate.html"><img src="docs/comfyui_illumorae_image_infill_multiple.png" width="400" /></a></td> <td><a href="https://corvaeoboro.github.io/ComfyUI_illumorae/nodes/ImageMultiScaleRetinexColorRestoration.html"><img src="docs/comfyui_illumorae_image_retinex_enhancement_msrcr.png" width="400" /></a></td> </tr> <tr> <td><a href="https://corvaeoboro.github.io/ComfyUI_illumorae/nodes/LoadImageRandomVariants.html"><img src="docs/comfyui_illumorae_image_load_variant_contrast_save.png" width="400" /></a></td> <td><a href="https://corvaeoboro.github.io/ComfyUI_illumorae/nodes/GenProceduralPatterns.html"><img src="docs/comfyui_illumorae_procedural_patterns.png" width="400" /></a></td> </tr> </table> <table style="border-collapse: collapse; width: 100%;"> <tbody style="line-height: 1.1;"> <!-- Image --> <tr><th colspan="4" align="left" style="padding: 2px 6px; background: #1f2430; color: #c8d3ff;">Image</th></tr> <tr style="vertical-align: top;"> <td style="padding: 1px 6px;"><a href="#image-infill-boundary-propagate">Image Infill Boundary Propagate</a></td> <td style="padding: 1px 6px;"><a href="#image-infill-exemplar-region-fill">Image Infill Exemplar Region Fill</a></td> <td style="padding: 1px 6px;"><a href="#image-infill-gaussian-mixture-layer">Image Infill Gaussian Mixture Layer</a></td> <td style="padding: 1px 6px;"><a href="#image-infill-patchmatch">Image Infill PatchMatch</a></td> </tr> <tr style="vertical-align: top;"> <td style="padding: 1px 6px;"><a href="#image-clahe">Image CLAHE</a></td> <td style="padding: 1px 6px;"><a href="#image-multi-scale-retinex-color-restoration">Image Multi-Scale Retinex Color Restoration</a></td> <td style="padding: 1px 6px;"><a href="#image-face-aspect-crop">Image Face Aspect Crop</a></td> <td style="padding: 1px 6px;"><a href="#video-resize-matte">Video Resize Matte</a></td> </tr> <tr style="vertical-align: top;"> <td style="padding: 1px 6px;"><a href="#image-resize-flux-kontext-options">Flux Kontext Image Scale Options</a></td> <td style="padding: 1px 6px;"><a href="#procedural-patterns">Procedural Patterns</a></td> <td style="padding: 1px 6px;"></td> <td style="padding: 1px 6px;"></td> </tr> <!-- LoRA --> <tr><th colspan="4" align="left" style="padding: 2px 6px; background: #1f2430; color: #c8d3ff;">LoRA</th></tr> <tr style="vertical-align: top;"> <td style="padding: 1px 6px;"><a href="#lora-text-strength-variants">LoRA Text Strength Variants</a></td> <td style="padding: 1px 6px;"><a href="#lora-text-strength-multiplier">LoRA Text Strength Multiplier</a></td> <td style="padding: 1px 6px;"><a href="#lora-text-visualizer">LoRA Text Visualizer</a></td> <td style="padding: 1px 6px;"></td> </tr> <!-- Text --> <tr><th colspan="4" align="left" style="padding: 2px 6px; background: #1f2430; color: #c8d3ff;">Text</th></tr> <tr style="vertical-align: top;"> <td style="padding: 1px 6px;"><a href="#text-to-string-safe-for-filename">Text To Filename Safe Text</a></td> <td style="padding: 1px 6px;"><a href="#text-token-count">Text Token Count</a></td> <td style="padding: 1px 6px;"><a href="#text-strength-multiplier">Text Strength Multiplier</a></td> <td style="padding: 1px 6px;"><a href="#text-enclosure-visualizer">Text Enclosure Visualizer</a></td> </tr> <tr style="vertical-align: top;"> <td style="padding: 1px 6px;"><a href="#text-reorder">Text Reorder</a></td> <td style="padding: 1px 6px;"><a href="#text-multiline-findcolorized">Text Multiline FindColorized</a></td> <td style="padding: 1px 6px;"></td> <td style="padding: 1px 6px;"></td> </tr> <!-- Load --> <tr><th colspan="4" align="left" style="padding: 2px 6px; background: #1f2430; color: #c8d3ff;">Load</th></tr> <tr style="vertical-align: top;"> <td style="padding: 1px 6px;"><a href="#load-image-filepath-out">Load Image FilePath Out</a></td> <td style="padding: 1px 6px;"><a href="#load-image-random-variants">Load Image Random Variants</a></td> <td style="padding: 1px 6px;"><a href="#load-text-file-graceful">Load Text File Graceful</a></td> <td style="padding: 1px 6px;"><a href="#select-item-by-amount-generated">Select ITEM by Amount Generated</a></td> </tr> <!-- Checkpoint --> <tr><th colspan="4" align="left" style="padding: 2px 6px; background: #1f2430; color: #c8d3ff;">Checkpoint</th></tr> <tr style="vertical-align: top;"> <td style="padding: 1px 6px;"><a href="#checkpoint-loader-by-string-dirty">Checkpoint Loader By String Dirty</a></td> <td style="padding: 1px 6px;"><a href="#checkpoint-random-selector">Checkpoint Random Selector</a></td> <td style="padding: 1px 6px;"></td> <td style="padding: 1px 6px;"></td> </tr> <!-- Save --> <tr><th colspan="4" align="left" style="padding: 2px 6px; background: #1f2430; color: #c8d3ff;">Save</th></tr> <tr style="vertical-align: top;"> <td style="padding: 1px 6px;"><a href="#save-image-extended-folderpath">Save Image Extended FolderPath</a></td> <td style="padding: 1px 6px;"><a href="#save-animated-webp-extended-folderpath">Save Animated WebP Extended FolderPath</a></td> <td style="padding: 1px 6px;"></td> <td style="padding: 1px 6px;"></td> </tr> </tbody> </table>

Image Infill

<a href="https://corvaeoboro.github.io/ComfyUI_illumorae/nodes/ImageInfillBoundaryPropagate.html"><img src="docs/comfyui_illumorae_image_infill_multiple.png" height="200" /></a>

<table style="border-collapse: collapse; width: 100%;"> <tbody> <tr style="vertical-align: top;"> <td style="padding: 4px 8px; width: 50%;"> <a id="image-infill-boundary-propagate"></a><strong><a href="./ComfyUI_illumorae_ImageInfillBoundaryPropagate/image_infill_boundary_propagate.py">Image Infill Boundary Propagate</a></strong><br/> Fills the target region by propagating colors inward from the target boundary using a random-weighted onion-peel rule.<br/> <a href="https://corvaeoboro.github.io/ComfyUI_illumorae/nodes/ImageInfillBoundaryPropagate.html"><img src="docs/comfyui_illumorae_image_infill_boundary.png" height="200" /></a> </td> <td style="padding: 4px 8px; width: 50%;"> <a id="image-infill-exemplar-region-fill"></a><strong><a href="./ComfyUI_illumorae_ImageInfillExemplarRegionFill/image_infill_exemplar_regionfill.py">Image Infill Exemplar Region Fill</a></strong><br/> Exemplar-based region filling with isophote-driven priority (Criminisi-style), extends linear structures into the target region.<br/> <a href="https://corvaeoboro.github.io/ComfyUI_illumorae/nodes/ImageInfillExemplarRegionFill.html"><img src="docs/comfyui_illumorae_image_infill_exemplar.png" height="200" /></a> </td> </tr> <tr style="vertical-align: top;"> <td style="padding: 4px 8px; width: 50%;"> <a id="image-infill-gaussian-mixture-layer"></a><strong><a href="./ComfyUI_illumorae_ImageInfillGaussianMixtureLayer/image_infill_gaussian_mixture_layer.py">Image Infill Gaussian Mixture Layer</a></strong><br/> Single stationary-Gaussian-field texture inpainting by FFT-based conditional simulation (Galerne-Leclaire 2017).<br/> <a href="https://corvaeoboro.github.io/ComfyUI_illumorae/nodes/ImageInfillGaussianMixtureLayer.html"><img src="docs/comfyui_illumorae_image_infill_gaussian.png" height="200" /></a> </td> <td style="padding: 4px 8px; width: 50%;"> <a id="image-infill-patchmatch"></a><strong><a href="./ComfyUI_illumorae_ImageInfillPatchMatch/image_infill_patchmatch.py">Image Infill PatchMatch</a></strong><br/> PatchMatch-based image infill.<br/> <a href="https://corvaeoboro.github.io/ComfyUI_illumorae/nodes/ImageInfillPatchMatch.html"><img src="docs/comfyui_illumorae_image_infill_patchmatch.png" height="200" /></a> </td> </tr> </tbody> </table>

Image Adjustment

  • <a href="https://corvaeoboro.github.io/ComfyUI_illumorae/nodes/LoadImageRandomVariants.html"><img src="docs/comfyui_illumorae_image_load_variant_contrast_save.png" height="200" /></a>

  • <a id="image-clahe"></a>Image CLAHE (Contrast Limited Adaptive Histogram Equalization)
    Enhances local image contrast using CLAHE.

  • <a href="https://corvaeoboro.github.io/ComfyUI_illumorae/nodes/ImageContrastLimitedAdaptiveHistogramEqualization.html"><img src="docs/comfyui_illumorae_image_clahe.png" height="200" /></a>

  • <a id="image-multi-scale-retinex-color-restoration"></a>Image Multi-Scale Retinex Color Restoration
    Applies Multi-Scale Retinex with Color Restoration for dynamic range and color enhancement.

  • <a href="https://corvaeoboro.github.io/ComfyUI_illumorae/nodes/ImageMultiScaleRetinexColorRestoration.html"><img src="docs/comfyui_illumorae_image_retinex_enhancement_msrcr.png" height="200" /></a>

Image Resize + Crop

  • <a id="image-face-aspect-crop"></a>Image Face Aspect Crop
    Crops an image to a target aspect ratio with face-detection-biased anchoring and debug overlay output.
  • <a href="https://corvaeoboro.github.io/ComfyUI_illumorae/nodes/ImageFaceAspectCrop.html"><img src="docs/comfyui_illumorae_image_face_aspect_crop.png" height="200" /></a>
  • <a id="video-resize-matte"></a>Video Resize Matte
    Resizes video frames with matte options for compositing.
  • <a href="https://corvaeoboro.github.io/ComfyUI_illumorae/nodes/VideoResizeMatte.html"><img src="docs/comfyui_illumorae_image_resize_video_matte.png" height="200" /></a>
  • <a id="image-resize-flux-kontext-options"></a>Image Resize Flux Kontext Options
    Resizes images for optimal Flux Kontext input, with cropping/stretching options.

Image

  • <a id="procedural-patterns"></a>Procedural Patterns
    Generates procedural symmetrical patterns (torus rings, radial beams, spiral rings, combined) for visual influence in image generation.
  • <a href="https://corvaeoboro.github.io/ComfyUI_illumorae/nodes/GenProceduralPatterns.html"><img src="docs/comfyui_illumorae_procedural_patterns.png" height="200" /></a>

LoRA

  • <a id="lora-text-strength-variants"></a>LoRA Text Strength Variants
    Parses LoRA strings and randomizes or highlights strengths within specified limits.
  • <a href="https://corvaeoboro.github.io/ComfyUI_illumorae/nodes/LoraTextStrengthVariants.html"><img src="docs/comfyui_illumorae_lora_strength_randomize.png" height="200" /></a>
  • <a id="lora-text-strength-multiplier"></a>LoRA Text Strength Multiplier
    Multiplies and caps LoRA strengths, with options for total and individual caps.
  • <a href="https://corvaeoboro.github.io/ComfyUI_illumorae/nodes/LoraTextStrengthMultiplier.html"><img src="docs/comfyui_illumorae_lora_strength_multiplier.png" height="200" /></a>
  • <a id="lora-text-visualizer"></a>LoRA Text Visualizer
    Visualizes LoRA strengths in prompt text as a word plot image.
  • <a href="https://corvaeoboro.github.io/ComfyUI_illumorae/nodes/LoraTextVisualizer.html"><img src="docs/comfyui_illumorae_lora_strength_wordplot.png" height="200" /></a>

Text & Prompt Utilities

  • <a id="text-to-string-safe-for-filename"></a>Text To String Safe For Filename
    Converts text into a filename-safe string.
  • <a href="https://corvaeoboro.github.io/ComfyUI_illumorae/nodes/TextToStringSafeForFilename.html"><img src="docs/comfyui_illumorae_text_to_string_filename_safe.png" height="200" /></a>
  • <a id="text-token-count"></a>Text Token Count
    Counts tokens in a string using clip
  • <a href="https://corvaeoboro.github.io/ComfyUI_illumorae/nodes/TextTokenCount.html"><img src="docs/comfyui_illumorae_text_token_count.png" height="200" /></a>
  • <a id="text-strength-multiplier"></a>Text Strength Multiplier
    Multiplies the strength of text prompt components.
  • <a href="https://corvaeoboro.github.io/ComfyUI_illumorae/nodes/TextStrengthMultiplier.html"><img src="docs/comfyui_illumorae_text_strength_multiplier.png" height="200" /></a>
  • <a id="text-enclosure-visualizer"></a>Text Enclosure Visualizer
    Visualizes enclosed text , nested separation , and warnings on open ended enclosures
  • <a href="https://corvaeoboro.github.io/ComfyUI_illumorae/nodes/TextEnclosureVisualizer.html"><img src="docs/comfyui_illumorae_text_enclosure_visualize.png" height="200" /></a>
  • <a id="text-reorder"></a>Text Reorder
    Reorders prompt text using different scales of rules.
  • <a href="https://corvaeoboro.github.io/ComfyUI_illumorae/nodes/TextReorder.html"><img src="docs/comfyui_illumorae_text_reorder.png" height="200" /></a>
  • <a id="text-multiline-findcolorized"></a>Text Multiline FindColorized
    Editable multiline text input with search/find highlighting and syntax-colored LoRA bracket tags.
  • <a href="https://corvaeoboro.github.io/ComfyUI_illumorae/nodes/TextMultilineFindColorized.html"><img src="docs/comfyui_illumorae_text_multiline_findcolorized.png" height="200" /></a>

Load

  • <a id="load-image-filepath-out"></a>Load Image FilePath Out
    Loads an image from a file path and outputs the image, mask, file name, and folder path.
  • <a id="load-image-random-variants"></a>Load Image Random Variants
    Loads a random variant of an image from a folder, with suffix options.
  • <a id="load-text-file-graceful"></a>Load Text File Graceful
    Loads text from a file, gracefully handling missing/invalid files.
  • <a href="https://corvaeoboro.github.io/ComfyUI_illumorae/nodes/LoadTextFileGraceful.html"><img src="docs/comfyui_illumorae_load_text_graceful.png" height="200" /></a>
  • <a id="select-item-by-amount-generated"></a>Select ITEM by Amount Generated
    Selects an ITEM output based on how many images/frames have been generated so far.

Checkpoint

  • <a id="checkpoint-loader-by-string-dirty"></a>Checkpoint Loader By String Dirty
    Loads a checkpoint by matching a partial string input to closest registered checkpoint.
  • <a id="checkpoint-random-selector"></a>Checkpoint Random Selector
    Randomly selects a checkpoint from a category/folder at a set interval for model rotation.

Save

LICENSE