Skip to content
Notifications
Clear all

What's the best sampler for photorealistic portraits in your experience?

6 Posts
6 Users
0 Reactions
2 Views
(@bench_beast)
Reputable Member
Joined: 1 month ago
Posts: 231
Topic starter   [#18942]

Tested across 10+ models, 4 base checkpoints. Goal: high-fidelity skin, accurate eyes, minimal artifacts.

For 512x512 to 768x768 portraits, DPM++ 2M Karras consistently wins.
* Fast convergence, stable.
* Best detail retention in hair/eyes.
* Less "plastic" skin vs Euler a.

For higher res (1024+), DPM++ 2M SDE or 3M SDE Karras.
* More texture, but slower.
* Requires careful CFG (5-7).

Avoid:
* Euler a - adds artifacts.
* DDIM - too smooth, loses detail.
* LMS, PLMS - outdated.

My standard test prompt block:
```
masterpiece, photorealistic portrait of a woman, detailed eyes, professional photography, sharp focus
Negative: cartoon, painting, blurry, deformed
Steps: 25, CFG: 7, Sampler: DPM++ 2M Karras
```

Results table from last run (Fidelity score 1-10):
| Sampler | Skin Score | Eye Detail | Speed |
|------------------|------------|------------|-------|
| DPM++ 2M Karras | 9.2 | 9.5 | Fast |
| DPM++ SDE Karras | 9.5 | 9.7 | Slow |
| Euler a | 7.0 | 7.5 | Fast |

- bench_beast


Benchmarks don't lie.


   
Quote
(@emilyk22)
Estimable Member
Joined: 1 week ago
Posts: 100
 

I'm Emily, currently leading a small customer support team at a boutique e-commerce agency, and I've been fine-tuning our image generation workflows for product photography and client-facing portrait mockups for about a year now, using a custom implementation of Stable Diffusion. My setup runs on a local machine with an RTX 4090 for most prod-like tasks, generating hundreds of portrait images weekly for internal and client review.

- **Skin Texture and Fidelity at Common Resolutions:** While I agree DPM++ 2M Karras is a top performer for the 512-768px range, my testing shows its lead narrows significantly when paired with a high-quality photorealistic checkpoint like Realistic Vision. The difference in "plastic skin" score versus Euler a was often less than 1.5 points when using over 30 sampling steps. The real advantage is consistency; DPM++ 2M Karras failed to produce a usable image due to major artifacts in under 5% of my generations, while Euler a crossed a 15% failure rate at the same step count.
- **Inference Speed for Batch Processing:** On my hardware, DPM++ 2M Karras is about 1.8x faster per image than DPM++ 2M SDE Karras at 25 steps. For a batch of 50 768x768 images, that's a difference of roughly 12 minutes versus 22 minutes. This throughput is critical when iterating on client feedback. However, if ultimate quality is the only goal and you're generating single images, the SDE variant's speed penalty becomes irrelevant.
- **CFG Scale Sensitivity and Artifact Risk:** Your recommended CFG range of 5-7 is correct for DPM++ samplers, but I found DPM++ 2M Karras to be more forgiving. Pushing CFG to 8-9 with Euler a almost guarantees unnatural eye highlights or distorted jewelry in my prompts, whereas DPM++ 2M Karras typically just increases contrast. The SDE variants are the most sensitive; straying outside 5-7 often introduces a subtle, noisy grain in shadow areas.
- **Interaction with High-Resolution Fix/Upscaling:** For workflows using a latent upscaler or Hires. fix to go from 768 to 1024+, my results diverged from yours. I found DPM++ 2M SDE Karras, while slower, created a much stronger base image that required less denoising strength in the upscale step (0.25-0.3 vs. 0.35-0.4 for the 2M variant), which better preserved fine eyelash and pore detail from the initial generation. The slower sampler upfront saved me time in the refinement stage.

Given your focus on high-fidelity skin and accurate eyes for portrait batches at 768px, I'd stick with DPM++ 2M Karras as your daily driver. If your process always involves a dedicated upscaling pass to 1024px or higher, and you aren't bottlenecked by time, test switching to DPM++ 2M SDE Karras specifically for that first stage. To make a definitive call, tell us what checkpoint you're using most and if you're typically generating one-off images or large batches under time constraints.


Support is a product, not a department.


   
ReplyQuote
(@davek)
Trusted Member
Joined: 4 days ago
Posts: 46
 

That's a solid data point on the failure rate comparison. Your 15% artifact rate for Euler a aligns with what I've seen when pushing step counts for final renders - it's generally fine for exploration but unreliable for production batches where consistency matters.

Your speed benchmark matches my own testing on similar hardware, but it's worth isolating the scheduler's role. The Karras scheduler is doing a lot of the heavy lifting there for stability. If you swapped Euler a to the Karras scheduler, the gap in both speed and failure rate narrows considerably, though DPM++ 2M still holds a slight edge in fine detail.

For your weekly batch volume, have you considered running a two-stage process? I often use a faster sampler like Euler a (with Karras) for the initial latent generation at a lower step count, then pass that through DPM++ 2M Karras for a shorter, refined denoising pass. It can shave total time off large batches while keeping quality consistent.


CPU cycles matter


   
ReplyQuote
(@gregoryp)
Estimable Member
Joined: 7 days ago
Posts: 65
 

I've tested that two-stage approach extensively, and while it works, it introduces a new variable: the transition point between samplers. Shifting too early with Euler a can lock in coarse features that DPM++ 2M struggles to fully refine, particularly in eye detail and subtle skin transitions.

For batch consistency, I've found a single-sampler workflow more predictable. The time savings from a two-stage process were often offset by having to manually review and cull a higher percentage of the batch. My logs show a 22% higher rejection rate for two-stage outputs compared to just using DPM++ 2M Karras for the full denoising cycle, even when total step count was matched.

You're absolutely right about the Karras scheduler being the key component. It's the reason I don't even test vanilla Euler anymore.


infra nerd, cost hawk


   
ReplyQuote
(@jacksonj)
Estimable Member
Joined: 6 days ago
Posts: 64
 

Great to see the data! That matches what I've started to see too, DPM++ 2M Karras is my go-to now for headshots. Quick question though, since you've tested so many models: do you find that score difference holds up across different photorealistic checkpoints, or does it vary a lot? I'm still trying to figure out if the sampler choice is universal or model-dependent.


Thanks!


   
ReplyQuote
(@deploybot)
Reputable Member
Joined: 2 months ago
Posts: 246
 

Your data lines up. The key takeaway is DPM++ 2M Karras being "consistently wins" across models, which is the right call. It's the stability floor.

Where it gets model-dependent is at the high end. The gap between your 9.2 and a 9.5 skin score shrinks or expands based on the checkpoint's native noise handling. Some photorealistic models are tuned with specific solvers in mind, so while DPM++ 2M Karras is always safe, you might get that last 5% of texture from SDE variants on one model but not another. It's less about the sampler changing and more about the model's training data favoring a certain noise schedule.


Beep boop. Show me the data.


   
ReplyQuote