🍩 Donut Workflow V5
Krea2 • DonutNodes 3.0.23+
Generate, edit, inpaint and outpaint in one workflow—with organized panels, flexible references and previews for every finishing stage.
💬 Discord — help, artwork & updates · ☕ Support on Ko-fi · 🛠️ DonutNodes on GitHub
✨ V5 highlights
Cleaner layout — separate panels for setup, generation, upscaling and face detail.
Inpainting & outpainting — paint or draw a selection, invert it, adjust the seam, or expand with directional canvas presets. Outpainting stays within your megapixel budget.
Smart masks — describe what to select with SAM3.1, or use BiRefNet for foreground/background separation. Refine masks manually.
Independent A/B crops — frame each reference separately, with clipboard paste and optional reference guidance.
Flexible finishing — first and second upscales, Face Detailer and SeedVR2, with individual result previews.
Prompt variants — add, duplicate and reorder prompts; keep one active or cycle automatically. Includes autosizing editors and shared wildcard controls.
Searchable LoRAs — find models by typing, then adjust strengths and block weights.
🚀 Quick start
Install/update DonutNodes 3.0.23+. Restart ComfyUI and refresh your browser.
Open DonutWF_v5.json.
Use Manager → Install Missing Nodes, then restart.
Install the models using one of the options below.
Review your models, LoRAs, prompt and resolution. Leave Editing off for your first text-to-image run, then hit Run.
📦 GitHub installation: use Download missing for the supported model catalog.
📦 Registry/Manager installation: download the optional DonutNodes-model-installer.zip from this version’s files. Extract it, follow the included README and run the Windows or Linux/macOS launcher. It downloads catalog models into the appropriate ComfyUI folders and reuses matching existing files. Some downloads may require an access token.
The Registry package provides model links and the separate installer link instead of the built-in downloader.
🎨 Editing, masks & outpainting
Enable Editing, add your base image to A, and optionally place a second reference in B. Describe the change in the prompt.
Open Paint / outpaint… to edit a selected area or extend the canvas. Use Overlap to let generation reach into the original image and Seam width to soften the transition.
For B, choose Prompt selection to mask a named object, or Auto subject for the foreground. Use full-resolution references for better results.
Reference guidance is a separate option for borrowing visual elements during generation; it pauses while Editing is enabled.
💾 Saving & moving workflows
The supplied preset saves to output/Final with seed-based filenames. Saving supports PNG/WebP workflow metadata.
Keep your old workflow when upgrading, then copy your personal settings into V5. Reference images and wildcard files are stored separately—copy those too when moving installations.
🐛 Feedback
Found a bug? Share your workflow with private content removed, ComfyUI/DonutNodes versions, GPU/VRAM and the full error on Discord.
High-resolution editing with multiple references and NAG can be VRAM-heavy. Seam quality depends on the image, prompt and overlap settings.
Description
compatibility (mostly)
FAQ
Comments (39)
Great WF! How do you change the resolution of what you want the final image to be? It's always stuck at 208x304.
in the SDXL latent empty image node you can change the aspect ratio and you can change upscaled resolution by changing rescale_factor in "tiled donut upscale".
@DonutsDelivery it still outputs at a low resolution. I want the end result to be at 1080x1920, and no matter what I change in the SDXL empty image node, it comes out at a much, much lower resolution. Changing rescale_factor doesn't change anything either.
@imo09 you do know that it saves the upscaled img to a subfolder right? what you are looking at is a small png with metadata it saves for you as a backup.
@DonutsDelivery Apologies, I forgot about the non SDXL workflow, and everything works great now, lol. Great workflow once again!
Thx for the great WF. I have some questions:
- What exactly are the 3 rows of DonatLoraStack Nodes? Are they in a particularly order? Or can i just load Loras in any of them? What is "Block Preset 1" Configuration?
- There is a Face Related only and Everything else prompt box. What if I only have a normal prompt? Can I leave face empty? What exactly do the single boxes they influence exactly?
- Why is there a deactivated CFG Tone Modifier Node? What happens when I activate it?
1. DonutLoraStack allows you to use 3 loras. ive stacked multiple of them so you can load up to 9 loras in the WF. Ive made the most right of the stacks only apply to the refiner (so it first kicks in after the first 5 steps (step-5-9). The Presets are for block weighted lora loading. It is a method to only apply the loras to some parts of a Model. The blocks that are first mess with composition/overall structure and the last blocks mess with finer detail, and the middle is everything inbetween. There is not a clearcut definition of what each block does but you can try to make the best of Loras by disabling less desirable features this way. For example if a lora is prone to making your image more or less saturated, you can disable the blocks in charge of that. use the preset where everyhing is set to 1 if you want it to work as a normal lora loader.
2. The everything else prompt is excluded from the Face Detailer prompt. The face detailer is working on just the face alone so there is no reason to included the full prompt for that. If you don't have a subject/face in your image, you can put the prompt in either node.
3. You can use the CFG tone modifier to set a higher CFG and then using this node to making the image less "burnt". The way I use it is to just enable it and put the CFG to 2. If you leave it at 100 its the same as it were off, then you lower it to tame your CFG so your output dosent look burned. It is non-conventional.
Gotta say this is prolly my favorite workflow right now, perfect for decently consistent faces!
Appreciate your work!
I love your workflow, but I’m having an issue. I have a LoRA trained on a specific face, and this workflow tends to change the face. What would you recommend I do in this workflow to preserve just the facial appearance?
all you gotta do is link the loraapplstack model link to the face detailer.
Do you have any plans to include controlnet with this type of workflow? Prolly the last thing it needs to be perfect in my opinion!
I make these for personal use and share, so if you can convince me to try controlnet then ill make it
Reading your other comments I cannot figure out where would I apply my lora for my character face. Do I add it to one of the doughnut stacks you have, or do I add a new lora loader for just my character? I see above the face detailer you have a SDXL lora which would not work with my Zimage lora. Awesome workflow btw, works great out of the box when you have the packages.
link donutapplylorastack to facedetailer (the first of the details which uses the ZIT model, not the last 2 which uses the SDXL model)
@DonutsDelivery so link the first donutapplylorastack in your workflow, or use one the the last two, or add a brand new one and link it? :)
@DirtyBeagles whichever one is linked to the loader that has your face lora loaded :)
Where can I find the two bbox .pt files?
i want know too, you find it?
ive uploaded it to resources in my discord server
ask chatgpt, it gives you the links.
@Yedust Yeah, in DonutsDelivery's discord
Nudifiers and noncon are not allowed here, and you made nude taylor swift with breasts and posted her on civitai! (image 113173710)
I think you're lost, that's an image of Loras that are on this site.
I get an error in the "BlehSetSamplerPreset" Node - he's missing the "any_input" - input. The workflow creates the first image, but doesn't continue over the right 3 detailler nodes. any advice?
also the faces turn out not too similar - also haircolors differ. what can i do?
also: could i modify the workflow to generate single images (not side by sides)?
This workflow has a node that will break your comfyui and you won't be able to run it.... careful
and that is?
Which node? Cuz i am using this workflow without a problem
I had an issue with donuts nodes before, but I think its all fixed with new version of confyui, make sure you update or your going to have a bad time.
Sometimes the manager can install conflicting dependencies depending on which custom nodes you got installed. Custom nodes don't break confyui on their own.
@DonutsDelivery Exactly what was going on, I can't rememeber the name of the node. but it was a conflict. never had the issue after last update. Or maybe I got rid of the conflicting node. In any case, the suggestion that the node itself breaks comfyui is incorrect at best.
@EldraVisionsExtreme idk ive had it happen many times. the easy solution is just to remove delete all custom node folders expect comfyui, delete your venv and make it again, the run "pip install requirements.txt" in your comfy directory then run comfy and install missing nodes with manager.
Possibly the conflict is because Manager is recommending installation of the retired WAS Node pack instead of the Revised version. This causes a break in the loading of nodes. Removing the conflicting WAS Node folder and installing the Revised pack fixes it.
@MrHara when conflicting dependencies has been installed in your venv, comfyui wont start, and its hard for most people to activate the venv and uninstall the conflicting packages without other things breaking. so the easiest solution is to recreate your venv and install from start. there are many nodes which has had issues in the past.
not true, just a skill issue on your part. educate yourself before commenting next time
How to change to i2i
load an image with an image load node, vae encode it, and the pass it into the first ksampler, and change the denoise from 1 to anything else.
can you make upscaled with controlnet tile union?
Thanks for sharing this, any chance you could add a note to the workflow with links to the LoRAs and other models?
ive attached most of them as suggested resoruces on my latest checkpoint.

