Go to OpenArt main site
Upload workflow

Auto Crop -> CCSR -> SUPIR -> UltimateSDupscale -> High quality upscale

5.0

3 reviews
74
12.7K
3.6K
66
Description

This workflow is not meant to be fast, but aim for a VERY HIGH quality output. It outperform anything I know about upscale. Better than Topaz. Better than Magnific. But it have a down side, it is heavy on hardware when using the full workflow with large output size.

πŸ‘‰What it do:

It upscale a poor image into something mind-blowing while conserving integrity of the picture.


πŸ‘‰How it work:

The workflow look very big at first but is very simple to use. You can start by checking if you have all models in the workflow and can by tested directly. If you have problem, you can try to activate 1 group node at the time and see how it goes before going to next step.

1- We crop the image at a SDXL most closest size. This is done with my custom nodes attached in files. Copy FRED_AutoCropImage_SDXL_Ratio.py inside your \ComfyUI\custom_nodes.

2- We first upscale the image and clean it before it reach SUPIR. This is very important as SUPIR work best with a clean image, and simple upscale with model or upscale by node doesn't work well all the time. To do that, I use a CCSR upscale method. That upscale the image and keep it integrity and clean it. This mostly work good for noisy picture, with lots of artifacts, but is very hardware dependant and take sometime to load model for the first run.

3- If the CCSR upscale didn't worked to clean the picture, we can use StableSR group. Usually not necessary.

4- When the image is enough big (around 2x a SDXL standard), SUPIR will do it's magic. Adding skin texture and imperfections, adding detail to a landscape. It have its flaw, like adding hair where there isn't. To work around, we lower the CFGs but the common settings I finely found work very good.

5- Don't worry if there was too much skin imperfections as they will be finetune in ultimateSDupscale. I do another 2x here and using realvisXL30Turbo with the upscaler 4xNMKD-Superscale0SP_178000_G it add skin detail at a micro level.

6- Saving the picture in 2 different format, 1 with only a watermark at the bottom, and 1 with a compare of the original with automatic text placement. There is also a BEEP sound when the process end.

πŸ‘‰Where it work the best:

This workflow work so good for portrait image of humain on image around 512x512. So old SD1.5 image here we are for the upscale.

It work great on other pictures too, some tweeking maybe required.

πŸ‘‰More infos in workflow.

This workflow contains around 250 nodes but you can all find them in comfyui_manager except for my custom node that is attached in a zip file. Put it in folder mentionned earlier. You need numpy, cv2, PIL and Torch to run, but most of you will all have that already. If not, then do a pip install numpy, and the other one.

It also take a lot of ressouces but the result is worth it. For a normal upscale, it take around 8min/image upscaled on my RTX4090.

πŸ”₯Help me improving this workflow. If you find a better way to parse data or a better model, please share.

πŸ”₯Most install problem is not due to the workflow by itself but missing dependency or missing custom nodes or models. Be sur you're all set before posting a bug in the comments.

PaintShop was used ONLY to convert image to jpg as the result is around 33mb. No modification was done within that tool.

I hope you gonna have fun as much as I have to upscale pictures using this workflow.

Discussion

(No comments yet)

Loading...

Author

1
3.6K
74
12.7K
    FRED_Auto_Crop_Image_SDXL_Face_Detect_v1.zip (3.9 kB)

No reviews yet

  • - latest (about 2 months ago)

Primitive Nodes (57)

Any Switch (rgthree) (1)

ApplyStableSRUpscaler (1)

Context (rgthree) (4)

Context Big (rgthree) (5)

Display Any (rgthree) (1)

FRED_AutoCropImage_SDXL_Ratio (1)

Fast Groups Bypasser (rgthree) (1)

Get resolution [Crystools] (12)

GetNode (2)

Image Comparer (rgthree) (5)

JWImageResize (1)

Note (2)

Primitive float [Crystools] (5)

Primitive integer [Crystools] (4)

PrimitiveNode (1)

Reroute (1)

SUPIR_conditioner (1)

SUPIR_decode (1)

SUPIR_first_stage (1)

SUPIR_model_loader_v2 (1)

SUPIR_sample (1)

SetNode (2)

Switch any [Crystools] (2)

Switch image [Crystools] (1)

Custom Nodes (57)

comfy-plasma

  • - JDC_ResizeFactor (1)

ComfyUI

  • - CheckpointLoaderSimple (1)

  • - VAEEncode (1)

  • - SaveImage (2)

  • - ControlNetApply (1)

  • - ControlNetLoader (1)

  • - PreviewImage (2)

  • - LoadImage (2)

  • - UpscaleModelLoader (1)

  • - CLIPTextEncodeSDXLRefiner (2)

  • - CLIPTextEncode (2)

  • - KSampler (1)

  • - VAEDecode (1)

  • - ImageResize+ (1)

  • - CR Simple Text Watermark (1)

  • - CR Multi Upscale Stack (2)

  • - CR Apply Multi Upscale (2)

  • - CR Image Panel (1)

  • - CR Image Border (1)

  • - CR Overlay Text (3)

  • - CR Load Image List (1)

  • - CR Batch Process Switch (1)

  • - AV_ControlNetPreprocessor (1)

  • - CCSR_Model_Select (1)

  • - CCSR_Upscale (1)

  • - ResizeImageMixlab (1)

  • - TextInput_ (2)

  • - ColorMatch (2)

  • - MathExpression|pysssss (8)

  • - CheckpointLoader|pysssss (2)

  • - PlaySound|pysssss (1)

  • - LoraLoader|pysssss (1)

  • - ShowText|pysssss (2)

  • - ReActorRestoreFace (1)

tinyterraNodes

  • - ttN text7BOX_concat (1)

  • - UltimateSDUpscale (1)

Checkpoints (1)

stablesr_768v_000139.ckpt

LoRAs (0)