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, ...
Nodes (37)
A text-triggered switch for your workflow
Turning a phrase list into Florence-2's grounding format
The plain-split version of the phrase-list helper
Drop the tiny detections, keep the rest
Find things in an image by describing them in words
Turning grounding JSON into usable numbers
Twelve sliders instead of one comma-separated string
Per-block scaling on your CLIP text encoder
The node that fills in the other two
Stop hand-typing 60 block ratios
Snap any resolution onto a standard bucket
Force landscape or portrait without breaking the ratio
Set a pixel budget, get dimensions that respect it
A rotating run of integers as one string
The one-node fix for a type-mismatch wire
Cutting one mask into a grid of separate islands
Turning your own masks into Impact Pack's detection format
Stitching scattered mask islands back into one shape
Breaking one mask into its separate islands, with bounding boxes
Deriving a fresh seed from an old one without leaving the graph
Compositing a processed patch back into the full image
A seeded random number you can actually wire into a graph
The integer sibling to Random Float, same seeded-draw idea
Jitter a mask's rotation and position for free variety
Sampling a random aspect ratio between two bounds
Point- and box-prompted masking, once you've got a SAM2 model loaded
SaveImage with your own path and filename numbering
Dump any string to disk with auto-numbered filenames
Picking one of up to 10 strings, tied to a seed
The cheapest way to see what a string node actually produced
{a|b|c} syntax without installing a whole wildcard pack
Sanitizing text before it hits a filename or a fragile field
The three-placeholder sibling in the pack's tag-injection family
Two placeholders, straight from the README
Ten placeholders, and two of them do nothing by default
The simplest way to drop one value into a template
One option per line, no brace syntax required
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, categoryGR85/Resolution)- Computes new width/height based on a selected target resolution while preserving the original pixel count and aspect ratio.
-
GR85_ImageSizer (
ImageSizer, categoryGR85/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).
- Rescales to a target aspect ratio with orientation (
-
GR85_ImageSizerAll (
ImageSizerAll, categoryGR85/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, categoryGR85/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, categoryGR85/Prompt/Selection)- Selects one string from up to 10 inputs based on a seed. Only non-
Noneinputs are considered, and the seed is used with modulo to choose the index.
- Selects one string from up to 10 inputs based on a seed. Only non-
-
GR85_SimpleWildcardPicker (
SimpleWildcardPicker, categoryGR85/Prompt/Wildcards)- Expands
{a|b|c}-style wildcards (including nested braces) using a seeded RNG.
- Expands
-
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.
elementsandstuff). - TagInjectorLarge – larger template that injects multiple semantic placeholders such as
__location__,__weather__,__style__, etc.
- TagInjectorSingle – injects a single tag into a template using placeholder names like
Random / utility nodes
-
GR85_NextSeed (
NextSeed, categoryGR85/Random/Seed)- Given a seed, produces a new random seed in the full 64‑bit range.
-
GR85_RandomFloat (
RandomFloat, categoryGR85/Random/Numbers)- Generates a random float in
[min_value, max_value], with configurable decimal precision, seeded for reproducibility.
- Generates a random float in
-
GR85_RandomInt (
RandomInt, categoryGR85/Random/Numbers)- Generates a random integer in
[min_value, max_value], seeded for reproducibility.
- Generates a random integer in
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