Multi-Pass Rendering
Chain multiple diffusion passes with different models and settings in a single render
Last updated: 2026-02-19
Multi-Pass Rendering
Multi-pass rendering lets you chain multiple diffusion passes in a single render. Each pass can use a different model, template, and diffusion settings — and the output of one pass feeds directly into the next through GPU memory.
This is useful when a single diffusion pass isn't enough to achieve the look you want. For example, you might run a coarse pass with a fast model at high strength to establish the composition, then follow it with a refinement pass using a higher-quality model at low strength to add detail.
How It Works
Each render can have one or more passes. A pass is a complete set of hextile and diffusion settings — model, template, strength, prompts, ControlNet, LoRAs, and everything else. When you render with multiple passes:
- Pass 1 runs on your input image using its own settings
- The output is kept in GPU memory (no disk round-trip)
- Pass 2 uses that output as its input, with its own independent settings
- This continues for as many passes as you've defined
- The final pass output becomes the finished render
Each pass produces its own intermediate output that you can inspect individually after the render completes.
The Pass Panel
Multi-pass is controlled through the Pass Panel — a floating layer panel on the left side of the interface.
Enabling Multi-Pass
- Click the Multi-Pass toggle in the header toolbar
- The Pass Panel appears on the left with a single pass ("Pass 1")
- All existing settings are captured as Pass 1's configuration
Adding a Pass
Click the + button at the bottom of the Pass Panel. A new pass is created with a copy of the current settings. You can then modify it independently.
Switching Between Passes
Click any pass pill in the panel. The entire settings UI — model, template, strength, prompts, ControlNet, LoRAs — switches to that pass's configuration. Any changes you make are saved to the active pass automatically.
Managing Passes
- Rename: Hover over a pass pill and click the pencil icon
- Remove: Hover over a pass pill and click the trash icon
- Reorder: Passes execute in the order shown, top to bottom
Per-Pass Settings
Each pass has its own independent copy of:
| Setting | Example Use |
|---|---|
| Model | Pass 1: SD 3.5 Turbo (fast), Pass 2: SDXL Inpaint (quality) |
| Template | Pass 1: Hextile_20_2K (coarse), Pass 2: Hextile_44_4K (detailed) |
| Strength | Pass 1: 0.85 (heavy restyle), Pass 2: 0.25 (subtle refinement) |
| Prompts | Different text prompts per pass |
| ControlNet | Enable only on specific passes |
| LoRAs | Apply style LoRAs on one pass, detail LoRAs on another |
Common Workflows
Coarse-to-Fine
The most common multi-pass workflow. Use a fast model at high strength for the first pass to block out the composition, then refine with a higher-quality model at low strength.
| Pass 1 | Pass 2 | |
|---|---|---|
| Model | SD 3.5 Medium | SDXL Inpaint |
| Template | Hextile_20_2K | Hextile_44_4K |
| Strength | 0.85 | 0.25 |
| Purpose | Establish composition | Add fine detail |
Style Transfer Chain
Apply a strong style transformation first, then use a second pass to preserve detail and correct artifacts.
| Pass 1 | Pass 2 | |
|---|---|---|
| Model | SDXL Inpaint | SD 3.5 Large |
| Strength | 0.70 | 0.15 |
| LoRA | Style LoRA enabled | None |
| Purpose | Apply style | Clean up and refine |
Progressive Detail
Start with a low-tile template for speed, then increase tile count for sharpness in subsequent passes.
| Pass 1 | Pass 2 | Pass 3 | |
|---|---|---|---|
| Template | Hextile_20_2K | Hextile_32_3K | Hextile_44_4K |
| Strength | 0.80 | 0.40 | 0.20 |
| Purpose | Base composition | Mid detail | Final sharpness |
GPU Memory
Intermediate pass outputs are kept in GPU memory (via CuPy) rather than written to disk between passes. This avoids JPEG compression artifacts and keeps the pipeline fast. The final output of each pass is also saved to disk so you can inspect intermediate results after the render completes.
Each pass creates its own output directory (pass_0/, pass_1/, etc.) alongside a passes.json manifest describing what settings each pass used.
Progress Tracking
During a multi-pass render, the progress display shows:
- Which pass is currently running (e.g., "Pass 1 of 2")
- Per-pass progress bar
- Pass-aware ETA based on the total tile count across all passes
Comparing Pass Results
After a multi-pass render completes, you can visually compare the output of each pass using drag-to-cycle — a click-and-hold + drag-up gesture that works in three places:
How to Use
- Click and hold on a tile, the 2D preview image, or the 360 viewer's eye button
- Drag upward to cycle through versions: Original → Pass 1 → Pass 2 → ... → Final Render
- Release to snap back to the current view
A floating badge shows which version you're viewing as you drag. The further up you drag, the later the pass.
Where It Works
| Context | Element | What It Shows |
|---|---|---|
| Tile grid | Any processed tile | That tile's output at each pass |
| 2D preview | The main preview image | Full render output at each pass |
| 360 viewer | The eye button (peek control) | 360 panorama texture at each pass |
For single-pass renders, the gesture toggles between the original input and the render output (same as before).
Tips
- Start with 2 passes. Most workflows only need a coarse pass and a refinement pass. Adding more passes increases render time proportionally.
- Use low strength on later passes. The refinement pass should enhance, not overwrite. Strength 0.15–0.30 is typical for a second pass.
- Mix models intentionally. Different models have different artistic character. A fast model for structure + a detailed model for refinement is a powerful combination.
- Save your configs. Multi-pass configurations export and import with the standard config file, so you can save and reuse your favorite pass setups.
- Compare passes while tuning. Use drag-to-cycle to see exactly what each pass contributed. If a later pass isn't improving the result, adjust its strength or remove it.