Nodes/Eric_Image_Processing_Nodes/Smart Workflow Selection
ComfyUI Node

Smart Workflow Selection

Lets the node pick your denoiser, for better or worse

By EricRollei·Created 9 months ago·Updated 8 months ago· 9
Smart Workflow Selection
  • image
  • processed_image
  • analysis_report
target_scale2
prioritybalanced
analysis_detaildetailed
allow_multi_stagetrue
manual_overrideauto
device_preferenceauto

If you've read through this pack's individual restoration nodes and your head is spinning between BM3D, Auto-Denoise, Noise2Void, SCUNet, SwinIR, and Real-ESRGAN, this node is the pack's answer: analyze the image, guess which method fits, run it, tell you why. It's a genuinely useful starting point when you don't know what your image needs yet. Once you do know, you're usually better off skipping the analysis and picking the node directly - a point this article will come back to.

How the selection actually works

The node runs a quality analysis pass over your image - noise level, blur, compression artifacts, resolution, rough content type - at a depth you control with analysis_detail, then maps what it found onto a processor: high noise steers toward SCUNet (the blind-denoising specialist), a relatively clean image steers toward SwinIR (transformer precision on low-degradation input), and real-world-photo-style degradation steers toward Real-ESRGAN. If allow_multi_stage is on, it can chain more than one method rather than picking a single winner.

The thing worth knowing before you trust the automation completely: the selection logic can land on SCUNet or SwinIR without any way of checking whether those nodes actually have pretrained weights sitting in your models/ folder. If they don't, "Smart Workflow" will confidently route you to a method that's running untrained - the analysis is genuinely smart about reading the image, but it has no visibility into what's actually installed on your machine.

Inputs and outputs that matter

  • target_scale - 1 (enhancement only) through 4 (heavy super-resolution).
  • priority - quality (slower, best result), speed (fast, still decent), or balanced (the sane default).
  • manual_override (optional, default auto) - the escape hatch. Set this to bm3d, auto_denoise, noise2void, scunet, swinir, or real_esrgan directly once you know what you want, and the analysis is skipped entirely in favor of your choice.
  • allow_multi_stage (boolean, default on) - permits chaining more than one method for genuinely complex images; turn it off if you want a single, predictable pass.

Outputs: processed_image and analysis_report, a detailed string covering the image analysis, which processor(s) got selected, and why - read this even when the result looks fine, since it's the fastest way to learn what this node's heuristics actually consider "high noise" or "clean."

Installing it

Through ComfyUI Manager, search Eric's Image Processing Nodes. By hand:

cd ComfyUI/custom_nodes
git clone https://github.com/EricRollei/Eric_Image_Processing_Nodes
cd Eric_Image_Processing_Nodes
pip install -r requirements.txt

Restart ComfyUI. Its actual runtime dependencies depend entirely on what it ends up selecting - SCUNet and SwinIR both need their .pth weights manually placed in models/ (see this pack's SCUNet and SwinIR node articles for exactly how), while bm3d, auto_denoise, and noise2void don't need external weights at all.

Where people get burned

The recurring pattern: the analysis report proudly names SCUNet or SwinIR as the chosen method, the output looks weirdly unchanged, and the cause is missing weights rather than a bad selection. Always check analysis_report for which processor actually ran, and cross-reference that against whether you've set up that method's weights - this node can't tell you that part, since it has no way to inspect whether a .pth file exists before routing to it.

Once you've used this node a few times and have a feel for which method you actually want for your kind of source material, switch to manual_override rather than re-running the full analysis every time - it's faster, and it removes the one layer of uncertainty (did it pick the method I think it picked, and does that method have working weights) that makes this node's automatic mode occasionally confusing to debug.

CategoryEric's Image Processing

Inputs (7)

NameTypeDefaultDescription
imageIMAGE
target_scaleCOMBO2Desired upscaling factor: • 1: Enhancement only (no upscaling) • 2-4: Super-resolution levels
priorityCOMBObalancedProcessing priority: • quality: Best possible results (slower) • speed: Fast processing (good quality) • balanced: Optimal speed/quality ratio
analysis_detailoptCOMBOdetailedImage analysis depth: • basic: Quick assessment • detailed: Full quality analysis • comprehensive: Deep technical analysis
allow_multi_stageoptBOOLEANtrueAllow multi-stage processing for complex images
manual_overrideoptCOMBOautoManual processor selection (overrides analysis)
device_preferenceoptCOMBOautoProcessing device preference

Outputs (2)

NameTypeDescription
processed_imageIMAGE
analysis_reportSTRING