Build a Two-Stage Upscale Workflow
Generate at native resolution and refine at delivery size, wire the second pass so it improves detail without reinventing the image, and keep tiling from spawning duplicate subjects.
Learning objectives
- Explain why one high-resolution pass fails and two passes work
- Wire a second sampler stage with the right denoise range
- Configure tiling without producing duplicated subjects
- Decide how much of the pipeline a given image actually needs
ToolDix original visual
Frame
Name the outcome and constraints.
Build
Try one bounded workflow.
Review
Keep evidence, revise, and share.
Ask a diffusion model for a very large image in one pass and you get duplicated heads, repeated windows, and a composition that reads as several images fighting. This is not a bug and no setting fixes it: models learn composition at their training resolution, and far outside that range they lose track of the whole.
The professional answer is to separate the two jobs. Compose small, refine large.
Why two passes beat one
The first pass generates at the model's native resolution, where composition is reliable. You are deciding what the image is — the arrangement, the subject, the light — and at this size iteration is fast and cheap.
Between passes, the latent or image is enlarged. Nothing intelligent happens here; it is interpolation.
The second pass runs the sampler again at the larger size with a low denoise strength. Because the composition already exists, the model is not deciding what the picture is; it is adding detail consistent with what is there. Low strength is what keeps it from reconsidering.
That denoise value is the whole trick, and it has a narrow usable window. Too low and nothing happens: you have an interpolated, soft image. Too high and the model starts to reinvent, which at large size means new small objects, extra fingers, and text that was not there. Sweep it in small increments with a fixed seed and you will find the window in about four runs — then reuse it for every image from that model.
Two variants exist in most workflows. Latent upscaling enlarges in latent space, which is fast and tends to keep the model's own texture. Pixel upscaling decodes, enlarges the image — often with a dedicated upscale model — then re-encodes, which gives sharper input to the second pass. Pixel upscaling with a good model is usually the better result; latent upscaling is faster.
Tiling, and the duplicate-subject trap
Above a certain size, the second pass will not fit in memory, and tiled refinement processes the image in overlapping pieces.
The failure everyone hits once: each tile is denoised with the same prompt. If your prompt says "a woman standing in a field," several tiles will helpfully add a woman. The image comes back with three of her.
Three ways to avoid it. Use a generic prompt for the refinement pass — describe texture and quality rather than content, since the content already exists. Use a tiling implementation that carries global context to each tile. Or keep the tiles large enough that few of them exist.
Overlap matters too. Tiles need to overlap enough that the blend is invisible, and too little overlap produces a faint grid that shows most clearly in flat areas like skies.
Not every image needs the whole pipeline
The full pipeline costs time, and much of it is unnecessary for most images.
For a web thumbnail, the first pass alone is finished work. For a standard web hero, first pass plus a pixel upscale is usually enough — the second sampler pass is optional. For a print or hero asset, run the full two-stage pipeline and consider a third masked pass on the face. For a large print, add tiling and expect to spend real time on the settings.
The discipline worth adopting is to run the cheap path by default and escalate only for images that earned it. Teams that build one maximal graph and run everything through it spend most of their compute refining images they later discard.
A related point: put the selection step before the expensive stage. Generate twelve small images, choose two, and refine those. Refining twelve to choose two is the same result for six times the cost.
Practice
Build a graph with both stages and a bypass on the second one, so a single toggle switches between draft and finish.
Generate one image and produce three versions: first pass only; first pass plus pixel upscale; and the full two-stage refinement. View all three at 100 percent.
Then sweep the second-pass denoise across a small range with a fixed seed, and note where detail starts appearing and where the model starts inventing. Those two numbers bound your usable window for this model, and they are the most reusable thing in this lesson.
Common mistakes
Asking for the final size in one pass. Duplicated subjects, every time, and no setting prevents it.
Second-pass denoise too high. The model reinvents detail and adds objects at large size where they are hard to spot.
A content prompt on a tiled refinement. Each tile obliges, and you get several subjects.
Refining everything before selecting. Choose first; refine the survivors.
Sources and license context
These references informed the lesson. ToolDix adds its own explanation, workflow, and practice rather than reproducing source material. Every link below leaves ToolDix and opens the publisher's own site in a new tab.
- ComfyUI Workflow Templates (opens github.com in a new tab)External · github.com (MIT)
- ComfyUI (opens github.com in a new tab)External · github.com (GPL-3.0)
Keep going
Read these next on ToolDix.
Original lessons that build on what you just read.