Extensions/ComfyUI-MDSNodes
ComfyUI Extension

ComfyUI-MDSNodes

A collection of lightweight utility nodes for workflow automation and model routing.

By MarwanDSAI·Created 3 months ago·Updated about 14 hours ago· 3
MarwanDSAI/comfyui-mdsnodes
Nodes43
On cloudLocal install
CategoryMDSNodes/Constants, MDSNodes/utils/
Stars3
Updatedabout 14 hours ago

Nodes (43)

BBox Crop Factor

The one number that decides how much face your detailer actually sees

MDSNodes/Constants
ControlNet Select

Your ControlNet Name, Turned Into Text You Can Actually Use

MDSNodes/utils/
Convert to String

Turn anything into text with Convert to String (MarCStr)

MDSNodes/text
Denoise

Stop re-typing 0.45 into six different nodes

MDSNodes/Constants
Empty

A blank string and a blank latent, and more useful than that sounds

MDSNodes/Routing
Feather Radius

The number that decides whether your inpaint inpaints or stamps

MDSNodes/Constants
Float Switch (2 decimal)

Pick a number with a checkbox, no rerouting required

MDSNodes/logic
Float (No Dec)

A whole number in a socket that only accepts floats

MDSNodes/Constants
Float (1 Dec)

The dial that moves in tenths and nothing else

MDSNodes/Constants
Float (2 Dec)

One authoritative 0.35 for every socket that wants it

MDSNodes/Constants
Generation Parameters Hub

Stop Typing 20 Steps and CFG 7 Into Five Different Samplers

MDSNodes/sampling
Get Value (Global)

The other half of a variable pair, and where the ordering bites

MDSNodes/Routing
Guide Size

One resolution number for every crop-and-refine pass

MDSNodes/Constants
Integer

A number with one home, and the seed question it can't answer

MDSNodes/Constants
Integer Switch

One boolean, two numbers, zero rewiring

MDSNodes/logic
Is Empty

The test that makes an optional branch actually optional

MDSNodes/logic
String Selector by Key (8 Strings)

Eight prompts, one lookup, zero spaghetti

MDSNodes/text
Load Checkpoint Hub Pro

The One Node That Loads a Checkpoint and Hands You the Whole Plan

MDSNodes/sampling
Load Diffusion Model Hub Pro

Load a Diffusion Model and Route the Whole Recipe in One Node

MDSNodes/sampling
Load Image (With Path)

Where It Lives

MDSNodes/image
Merge Two Strings

Stitch prompts and filenames together the easy way

MDSNodes/text
Metadata Append

Building tag strings your outputs can carry

MDSNodes/MetaData
MetaData Append (Switch)

Tag a run conditionally, without a second graph

MDSNodes/MetaData
MetaData Check Key & Value

The boolean your workflow can branch on

MDSNodes/MetaData
MetaData Extract

Your workflow is carrying notes you can actually read back

MDSNodes/MetaData
MetaData Remove

Delete one field from a Key [Value] chain without rebuilding it

MDSNodes/MetaData
MetaData Convert to EXTRA_METADATA

The metadata-to-dictionary node whose name is a little bit of a lie

MDSNodes/MetaData
Model Short Hash Extractor

Getting the AutoV2 hash without leaving ComfyUI

MDSNodes/utils
Model Switch

Two checkpoints, one checkbox, one workflow

utils/logic
Ratio Combobox

Picking 50% by Typing 0.5 Is Annoying. This Is the Fancy Version.

MDSNodes/FLOAT
Round

The node that turns 7.3249 into something you can put in a filename

MDSNodes/Math
Select Diffusion Model

CKPT_NAME and UNET_NAME, Both Fed

MDSNodes/text
Set Value (Global)

Stash anything, fetch it anywhere, and mind the execution order

MDSNodes/Routing
String Switch (Multiline)

Swap a whole prompt with one checkbox

MDSNodes/logic
String Replace (Multiple)

Eight find-and-replaces, run in order, no regex

MDSNodes/text
String Replace

Patch a prompt mid-wire without retyping it

MDSNodes/text
String Switch

Flip a checkbox instead of rewriting your prompt twice

MDSNodes/logic
String Trim Fallback

First non-blank string wins, and whitespace doesn't count

MDSNodes/text
Text (Multiline) Dual

Two prompt boxes, one node, zero magic

MDSNodes/text
Top Upscale Models Selector (Auto-DL)

An Upscaler Dropdown That Downloads the Model You Picked, Right Then

MDSNodes/utils
UMTW Custom Prompt Selector

Pick one of 11 test prompts from a dropdown — and get a clean STRING out the other side

MDSNodes/UMTW
UNET To CKPT Converter

When a UNET Model Has to Wear a Checkpoint Name

MDSNodes/text
Unload All Models

Free your VRAM mid-workflow — and don't worry, the weird input is on purpose

MDSNodes/utils
Readme

ComfyUI-MDSNodes

The following custom nodes were built to use with The Ultimate Model Tester Workflow Civitai link. They may also be useful for your own workflows.

Nodes

  • Load Image (With Path) Loads an image and outputs its decoded IMAGE, MASK, filename, full_path, and directory.

  • Top Upscale Models Selector (Auto-DL) Selects top upscale models (e.g., 4x-UltraSharp, 4xRealWebPhoto) and auto-downloads missing files when queued.

  • ControlNet Select Selects a ControlNet model and outputs its filename as both a standard string and a wildcard/combo connection.

  • Select Diffusion Model Selects a UNET/Diffusion model and passes its filename as CKPT_NAME and UNET_NAME (useful for context routing).

  • UNet Name to CKPT Name Routes a UNET model filename into nodes expecting CKPT_NAME (such as rgthree context nodes).

  • Ratio Combobox Dropdown of common percentage presets (10%, 25%, 50%, 100%) converted directly into decimal FLOAT values (e.g., 0.5).

  • Central parameter hub Configures and routes checkpoint, steps, refiner steps, CFG, sampler algorithm, scheduler curve, and denoise values across workflows.

    <img src="images/Node_Central parameter hub.png" alt="Central parameter hub" width="250">
  • Load Checkpoint Hub Pro and Load Diffusion Model Hub Pro

    Central parameter hub that loads a checkpoint/Diffusion Model and routes MODEL, CLIP, VAE, steps, refiner steps, CFG, sampler algorithm, scheduler curve, denoise values, positive/negative prompts, and metadata across workflows. Also, the model AutoV2 hash (used by Civitai) will be added to the metadata

    <img src="images/Node_LoadCheckpointHubPro.png" alt="Central parameter hub" width="250">
  • Text Conversion & Key-Value Lookup Nodes:

    Merge Two Strings: Merges two strings with an optional delimiter if both strings are not empty. Handles None or missing inputs as an empty string.

    Convert to String: Converts any incoming data type safely into a standard string.

    String Replace (Multiple) / String Replace: Performs up to 1 or 8 sequential search and replace operations on a main text string.

    <img src="images/Node_MarStrReplaceMultiple.png" alt="String Replace (Multiple)" width="250">

    String Selector by Key (8 Strings): Look up a Key and return a value from up to 8 key/value slots.

    <img src="images/Node_MarKeyValueSelector8.png" alt="String Selector by Key (8 Strings)" width="250">
  • MetaData Nodes:

    metadata structure is a string formatted to hold multiple keys and values as follows: Key1 [Value1]; Key2 [Value2]; Key3 [Value3];...

    MetaData Append: Appends a key and value to metadata

    MetaData Remove: Removes a key from MetaData

    MetaData Extract: Extracts a value from appended metadata based on a specific key

    MetaData Convert to EXTRA_METADATA: Converts MetaData with structure Key1 [Value1]; Key2 [Value2]; Key3 [Value3];... into a mapping/dict for EXTRA_METADATA

Requirements

No extra packages required. Works out-of-the-box with standard ComfyUI dependencies.

Installation

Install via ComfyUI Node Manager: Search ComfyUI-MDSNodes in ComfyUI Node Manager and click the Install button.