Lore

ComfyUI

L5: Magical Img2Img Render + WD14 in ComfyUI - Comfy Academy

The video (part 5 of Olivio Sarikas's Comfy Academy series) demonstrates two ComfyUI img2img workflows built around the same core technique — feeding a single source image through Image Resize, VAE Encode, and a low-denoise KSampler pass — and then shows a more advanced 'magical' version that uses the WD14 Tagger plus a String Function node to auto-generate the prompt from the image itself, so compelling variations can be produced from one input image with little or no manual prompt writing.

Olivio Sarikas · 2024-01-26 · English

Key ideas

  1. Basic img2img workflow: checkpoint loader + positive/negative prompts + a loaded source image, resized and VAE-encoded into the KSampler as the starting latent, then VAE-decoded into the output image.

  2. The denoise ('D noise') value controls how much of the original image survives: 0.3 keeps the same artistic style, colors, and composition while adding variation; raising it (0.5, later 0.78) produces bigger reinterpretations.

  3. The Image Resize node lets you set target width/height, choose an interpolation method, and toggle 'keep proportions' on or off — e.g. squishing a horizontal source into a vertical 512x768 canvas.

  4. OpenArt's workflow page has a 'Lounge workflow' button that runs the exact prebuilt workflow in the cloud for free, with nothing to download or install.

  5. The advanced workflow removes manual prompting entirely: the WD14 Tagger analyzes the loaded image and outputs a text tag list, which is fed as 'text A' into a String Function node that appends the author's own style keywords as 'text B', producing the final positive prompt automatically.

  6. Converting a node's text widget into an input socket (right-click → 'Convert text to input') is the mechanism that lets the WD14 Tagger's output feed directly into the CLIP Text Encode and String Function nodes instead of being typed manually.

  7. Even without touching the prompt or any setting, simply swapping in a new source image (a guy in a brown jacket) still produces a coherent, stylistically similar variation — this is the behavior the video labels 'magical'.

  8. The higher-denoise advanced workflow (0.78) still stays coherent to the source because the auto-generated WD14 text prompt is supplying the model with descriptive information to anchor on.

  9. Img2Img (Image-to-Image) — A generation technique that feeds an existing image into the diffusion pipeline as the latent starting point instead of pure noise, so the output is a variation of that source image. Apply: Load a source image (e.g. from Midjourney, a sketch, or a doodle), resize it, VAE-encode it, and pass it as the latent input to the KSampler alongside your prompts.

  10. Denoise (D noise) strength — A KSampler parameter that controls how much of the original image's structure the model preserves versus overwrites during regeneration. Apply: Set denoise low (e.g. 0.3) to keep the same style, colors, and composition while getting variation; raise it (0.5, up to 0.78) when you want the output to depart more from the source.

  11. Image Resize node — A custom node that resizes the loaded input image to a specified width and height using a chosen interpolation method, with an option to keep or ignore the original aspect ratio. Apply: Set target width/height (e.g. 768x512 or 512x768) and toggle 'keep proportions' on to preserve aspect ratio or off to force-squish the image into a different orientation before VAE encoding.

  12. VAE Encode / VAE Decode — Paired nodes that convert a pixel-space image into the model's latent space (Encode) and convert a latent back into a viewable image (Decode). Apply: Use VAE Encode to turn the resized source image into a latent for the KSampler's input, and VAE Decode at the end of the pipeline to render the KSampler's output latent into the final image.

  13. KSampler — The core sampling node that runs the diffusion denoising process using the checkpoint, prompts, latent input, and denoise value. Apply: Connect the checkpoint, positive/negative prompts, and encoded latent image into the KSampler, set the denoise value, and click Queue Prompt to render an output.

  14. WD14 Tagger — An image-analysis node/model that automatically generates a list of descriptive text tags from an input image (e.g. 'outdoor multiple boys night glowing robot...'). Apply: Connect the loaded image to a WD14 Tagger node to auto-generate a prompt string describing its contents, removing the need to hand-write a prompt.

  15. Convert widget to input (text-to-input conversion) — A ComfyUI node feature that turns a node's built-in text/widget field into an external input socket so another node's output can feed it directly. Apply: Right-click a node (e.g. CLIP Text Encode or String Function) and choose 'Convert text to input' so the WD14 Tagger's tag output — or any other node's text output — can be wired directly into that field.

  16. String Function node — A node that concatenates multiple text inputs (text A, text B, text C) into a single combined text string with a preview. Apply: Feed the WD14 Tagger's tag output into text A, and type manual style keywords into text B (e.g. 'style of concept art masterpiece digital painting facing viewer') so the combined output becomes the final positive prompt.

  17. OpenArt 'Lounge workflow' (cloud run) — A feature on OpenArt's workflow pages that lets a viewer run the author's exact prebuilt ComfyUI workflow in the cloud for free, with nothing to download or install. Apply: On the workflow's OpenArt page, click the green 'Lounge workflow' button to launch a ready-to-run copy of the workflow in the browser, then right-click the relevant group and set its notes to 'always' to activate it.

Insights

The denoise slider functions as a controllable dial between 'faithful copy' and 'free reinterpretation' rather than a binary choice — 0.3 for close variations with preserved composition/color, 0.5-0.78 for looser reinterpretations that still track the source's rough subject.

Chaining WD14 Tagger into a String Function node creates a hybrid prompting pattern: automated content description (from the tagger) combined with a hand-picked style suffix (e.g. 'style of concept art masterpiece digital painting facing viewer'), rather than fully manual or fully automatic prompting.

Running the same 'no-prompt' workflow at a high 0.78 denoise still stays visually anchored to the source image only because the WD14-generated tags are compensating with information a bare high-denoise img2img pass would otherwise lack.

The widget-to-input conversion feature is the structural trick that turns ComfyUI's node graph into a small automation pipeline (image → auto-caption → prompt) without needing any external scripting.

«we have set our D noise to only 0.3 and that means it takes a lot of the original image into consideration»

— 02:49

«convert text to input if I click on that the output is going to be a note like this where we don't have a text field but instead we have here a text input»

— 05:29

«outdoor multiple boys night glowing robot ground vehicle building scenery Mecca motor vehicle science fiction City car police lamp post lights search light»

— 06:01

«this workflow is actually kind of a magical machine to get creative outputs from a single image input you don't even need to write a prompt»

— 04:43

«I'm not going to change anything not the prompt not the settings nothing I'm only loading this image and then clicking on Q prompt and look at that we have as an output a guy in a brown jacket standing in a landscape but it is a different image»

— 09:19

Reception

Highly appreciated tutorial with excellent teaching clarity that helps viewers learn ComfyUI, though marred by outdated node dependencies and compatibility issues that frustrate some users.

A hands-on, workflow-specific ComfyUI tutorial rather than a conceptual explainer — its practical value is tightly coupled to specific third-party node packs (ComfyUI-Custom-Scripts, ComfyUI Essentials) and a hosted tagging model (WD14) that, per the comments, had already partially drifted or broken by the time viewers tried to follow along.

10:10

↳ Olivio Sarikas · YouTube

Watch original