Extensions/comfyui_gr85
ComfyUI Extension

comfyui_gr85

Nodes:Image Dimension Resizer, Image Sizer, Random Ratio, Show Text, Random Title Character, Random Wildcard Tag Picker, Random Show Atm Loc Outfit, Contains Word, Elements Concatenator, ...

By veighnsche·Created 2 years ago·Updated 12 days ago· 1
veighnsche/comfyui_gr85
Nodes37
On cloudLocal install
CategoryGR85/Prompt, GR85/Florence2
Stars1
Updated12 days ago

Nodes (37)

Contains Word

A text-triggered switch for your workflow

GR85/Prompt
CTGPhrases

Turning a phrase list into Florence-2's grounding format

GR85/Florence2
CTGPhrasesSimple

The plain-split version of the phrase-list helper

GR85/Florence2
Filter And Combine Masks

Drop the tiny detections, keep the rest

GR85/Mask
Florence2RunCTPG (GR85)

Find things in an image by describing them in words

GR85/Florence2
Florence2toCoordinatesGR85

Turning grounding JSON into usable numbers

GR85/Florence2
Flux Attention Seeker 2

Twelve sliders instead of one comma-separated string

GR85/Prompt
Flux Attention Seeker 3

Per-block scaling on your CLIP text encoder

GR85/Prompt
Flux Attention Seeker Generator

The node that fills in the other two

GR85/Prompt
Flux Model Merge Parameters

Stop hand-typing 60 block ratios

GR85/Utils
Image Dimension Resizer

Snap any resolution onto a standard bucket

GR85/Resolution
Image Sizer

Force landscape or portrait without breaking the ratio

GR85/Resolution
Image Sizer All

Set a pixel budget, get dimensions that respect it

GR85/Resolution
Integer Sequence Modifier

A rotating run of integers as one string

GR85/Utils
Int To String

The one-node fix for a type-mismatch wire

GR85/Prompt
Island Mask Generator

Cutting one mask into a grid of separate islands

GR85/Mask
MaskBatchToSEGS

Turning your own masks into Impact Pack's detection format

GR85/Florence2
Mask Connect MST

Stitching scattered mask islands back into one shape

GR85/Mask
Mask Splitter

Breaking one mask into its separate islands, with bounding boxes

GR85/Mask
Next Seed

Deriving a fresh seed from an old one without leaving the graph

GR85/Random/Seed
Paste By Mask Gr85

Compositing a processed patch back into the full image

GR85/Mask
Random Float

A seeded random number you can actually wire into a graph

GR85/Random/Numbers
Random Int

The integer sibling to Random Float, same seeded-draw idea

GR85/Random/Numbers
Randomized Mask Transform

Jitter a mask's rotation and position for free variety

GR85/Mask
Random Ratio

Sampling a random aspect ratio between two bounds

GR85/Resolution
Sam2Segmentation (GR85)

Point- and box-prompted masking, once you've got a SAM2 model loaded

GR85/Florence2
Save Image File

SaveImage with your own path and filename numbering

GR85/Utils
Save Text File

Dump any string to disk with auto-numbered filenames

GR85/Utils
Seed Based Output Selector

Picking one of up to 10 strings, tied to a seed

GR85/Prompt/Selection
Show Text

The cheapest way to see what a string node actually produced

GR85/Logging
Simple Wildcard Picker

{a|b|c} syntax without installing a whole wildcard pack

GR85/Prompt/Wildcards
String Safe

Sanitizing text before it hits a filename or a fragile field

GR85/Utils
Tag Injector

The three-placeholder sibling in the pack's tag-injection family

GR85/Prompt/Tags
Tag Injector Duo

Two placeholders, straight from the README

GR85/Prompt/Tags
Tag Injector Large

Ten placeholders, and two of them do nothing by default

GR85/Prompt/Tags
Tag Injector Single

The simplest way to drop one value into a template

GR85/Prompt/Tags
Vertical Wildcard Picker

One option per line, no brace syntax required

GR85/Prompt
Readme

comfyui_gr85 – Custom Nodes for ComfyUI

This repository provides a small collection of GR85-flavoured custom nodes for ComfyUI. It includes utilities for working with image dimensions, randomization, prompt manipulation, and seed utilities.

All nodes use ComfyUI’s stable V3 API (comfy_api.v0_0_2): io.ComfyNode, define_schema, classmethod execute, io.NodeOutput, and a ComfyExtension entrypoint.


Node overview

Resolution helpers

  • GR85_ImageDimensionResizer (ImageDimensionResizer, category GR85/Resolution)

    • Computes new width/height based on a selected target resolution while preserving the original pixel count and aspect ratio.
  • GR85_ImageSizer (ImageSizer, category GR85/Resolution)

    • Rescales to a target aspect ratio with orientation (original / landscape / portrait) and snaps the result to a given tolerance (e.g. multiples of 16).
  • GR85_ImageSizerAll (ImageSizerAll, category GR85/Resolution)

    • Takes a pixel budget and aspect ratio components and returns new dimensions that match the pixel count and orientation, adjusted to a given tolerance.
  • GR85_RandomRatio (RandomRatio, category GR85/Resolution)

    • Given two width/height pairs, samples a random aspect ratio between their ratios and returns it as integer width/height components.

Prompt helpers

  • GR85_SeedBasedOutputSelector (SeedBasedOutputSelector, category GR85/Prompt/Selection)

    • Selects one string from up to 10 inputs based on a seed. Only non-None inputs are considered, and the seed is used with modulo to choose the index.
  • GR85_SimpleWildcardPicker (SimpleWildcardPicker, category GR85/Prompt/Wildcards)

    • Expands {a|b|c}-style wildcards (including nested braces) using a seeded RNG.
  • Tag injector nodes (category GR85/Prompt/Tags)

    • TagInjectorSingle – injects a single tag into a template using placeholder names like __elements__.
    • TagInjectorDuo – same idea, but for two tags (e.g. elements and stuff).
    • TagInjectorLarge – larger template that injects multiple semantic placeholders such as __location__, __weather__, __style__, etc.

Random / utility nodes

  • GR85_NextSeed (NextSeed, category GR85/Random/Seed)

    • Given a seed, produces a new random seed in the full 64‑bit range.
  • GR85_RandomFloat (RandomFloat, category GR85/Random/Numbers)

    • Generates a random float in [min_value, max_value], with configurable decimal precision, seeded for reproducibility.
  • GR85_RandomInt (RandomInt, category GR85/Random/Numbers)

    • Generates a random integer in [min_value, max_value], seeded for reproducibility.

Architecture and loading

comfy_entrypoint() returns GR85Extension, whose asynchronous get_node_list() exposes all 13 nodes. It intentionally does not export legacy node mappings, so the current ComfyUI loader takes the V3 entrypoint path.

Requirements

  • ComfyUI 0.33.0 or newer
  • Python 3.12 or newer (Python 3.13 recommended by ComfyUI)
  • No additional Python packages