
img2img denoising strength calibration: per-use-case tables for SDXL, Flux 2, and MJ
SDXL caps at 0.5 due to training resolution, Flux has a math cliff at ~0.81 from integer division, MJ has no slider at all. Per-use-case tables, ControlNet unlock to 0.85, loopback technique, Klein node-swap fix, and cross-tool mapping.

You can use 0.5 denoising strength on SD 1.5 to sharpen detail without touching the composition. Do the same thing on SDXL and you get a second navel. Set Flux to 0.5 and the image barely changes. Try to pull a Flux 2 Klein denoising slider and there isn't one — the default workflow doesn't expose it at all. And Midjourney has no denoising number anywhere on the interface.
Same concept, four completely different behaviors. This isn't a quirk — it's architecture. Once you understand what each tool's number actually controls, the copy-paste tables below stop feeling arbitrary.
Why 0.5 is not 0.5 across tools
SDXL's ceiling problem comes from its training resolution. Most SDXL fine-tunes were trained at exactly 1024² — they've never seen higher-resolution data. When you run img2img at, say, 1536² with a denoising strength above 0.5, the model is essentially operating above its trained resolution ceiling while also having freedom to change the image significantly. The result is duplication artifacts: double navels, triple knees, elongated torsos. As community user dreamyrhodes put it after switching from SD 1.5: "Even 0.45, which under SD1.5 didn't change the image at all just made the quality better, in SDXL almost always adds a second navel or a double knee or something." 1
Flux's cliff problem has a different root: integer math in the noise scheduler. The scheduler calculates the effective number of noise steps as
int(total_steps / denoise). At 4-step inference: int(4 / 0.79) = 5 (no change), int(4 / 0.80) = 5 (no change), int(4 / 0.81) = 4 (sudden transition). This is why Flux img2img appears to do nothing below roughly 0.80, then jumps — it's not model behavior, it's integer division. A Forge bug report (#2567) filed in January 2025 included side-by-side comparison renders showing denoise 0.79 (essentially identical to source) vs. 0.80 (visible change), and the issue remains open. 2 Community user Dezordan later confirmed the math: "Flux just requires higher value for actual changes, or rather it has a certain value at which there is a sudden transition to meaningful changes." 3Flux's DiT architecture compounds this: the model's prediction capability is strong enough that it can reconstruct the original image from half the information. As community user shapic noted, this is "why BFL released Flux Fill" — the standard img2img pipeline was architecturally mismatched to how Flux processes noise, so Black Forest Labs built a dedicated inpainting model instead. 3
Midjourney exposes no denoising number at all. Image influence is controlled through
--iw (image weight, 0–3), and stylistic variation through discrete mode buttons (Vary Subtle / Vary Strong / Vary Region / Retexture). These are mapped to equivalent denoising concepts in the cross-tool table at the end of this article.
SDXL denoising calibration
The functional range for standard SDXL img2img without any scaffolding is roughly 0.1–0.5. Going past 0.5 at or above native resolution is where artifacts appear reliably.
| Use case | Denoise range | CFG | Notes |
|---|---|---|---|
| Upscaling (hires fix) | 0.1–0.4 | 5–7 | Stay at ≤0.4; a value of 0.1 is valid for 4× upscale. Above 0.4 requires ControlNet to avoid duplication 1 |
| Subtle quality pass | 0.2–0.35 | 5–7 | Detail improvement without structural change |
| Face / detail fix (ADetailer) | 0.3–0.4 | 5–7 | Standard ADetailer denoise range for face inpaint passes |
| Style variation / iterative edits | 0.4–0.5 | 7–10 | Community starting point; Careful_Ad_9077: "I usually start with 0.5" 5 |
| Controlled style transfer | up to 0.85 | 5 | Only with ControlNet dual-network; see below |
| Heavy rework / near txt2img | 0.7–1.0 | 5–8 | Treat as txt2img; use txt2img CFG range |
CFG pairing: light edits (denoise 0.2–0.4) work well at CFG 5–7; medium changes (0.4–0.7) push to CFG 7–10; anything above 0.7 should use standard SDXL txt2img CFG of 5–8. Higher CFG values need more steps to resolve — if you're at CFG 14, budget 30–40 steps instead of 20. DPM++ 2M Karras handles medium CFG (5–9) well and tolerates higher CFG better than most samplers. 6
Three workarounds when you need to go higher
Loopback (multiple low-denoise passes): Two passes at 0.5 produce better consistency than one pass at 0.7. As community user no_witty_username put it: "Run the image through img2img multiple times at lower denoise strength — so 2× runs at 0.5 denoise strength might be better than one run at 0.7 strength." 7 This is the most universally available option.
ControlNet dual-network: Using reference_only (weight 2.0) + depth_anything (weight 0.5) together allows pushing denoise to 0.85 while maintaining composition. A community-tested configuration that achieved this: SDXL_PONY model, 20 steps, DPM++ 2M Karras, CFG 5, denoise 0.85, with ADetailer at 0.4 for face correction. 8 The ControlNet setup holds composition so the high denoise can modify style freely.
KSampler Advanced
start_at_step (ComfyUI): Instead of using denoise at all, set start_at_step in the KSampler Advanced node. The closer this value is to the total step count, the more the output resembles the input. Community user mikemend described the behavior: "The closer this value is to the total number of steps, the closer you will be to the original image. It preserves the composition very well." 9 This technique works across SDXL, Illustrious, and Qwen Image — it's model-agnostic.One hard warning: SD3.5 img2img is broken. Any denoise value below 1.0 produces pixelated, low-quality output — this is a confirmed bug in
sd3_infer.py (GitHub Issue #6), reported in October 2024 and unresolved as of June 2026. At denoise = 1.0 output is normal, but that's functionally a full txt2img. 10 Don't use SD3.5 for img2img until this is patched.Flux 2 family — per-variant breakdown
The Flux 2 family has four distinct variants, and each has a different relationship to the denoising parameter.

| Variant | Denoise accessible? | Mechanism | Key behavior |
|---|---|---|---|
| Flux 2 Dev | Yes (via KSampler) | Iterative denoising | ~0.81 cliff; effective range 0.81–0.95 |
| Flux 2 Pro | No | Flow matching | No traditional denoise param; edit via latent init |
| Flux 2 Flex | Yes (API/ComfyUI) | Iterative denoising | guidance_scale adjustable (2–5); denoise interaction untested |
| Flux 2 Klein (distilled) | Requires node swap | Edit workflow default | Must delete Ref Conditioning subgraph + use BasicScheduler |
Flux 2 Dev: the 0.85 sweet spot
Because of the integer-division cliff, the practical working range for Flux 2 Dev img2img starts above 0.81. Community testing has converged on 0.85 as the sweet spot for creative composition work — enough change to produce variety, close enough to the source to maintain structural intent.
User britus discovered this accidentally by forgetting to reset denoise to 1.0 when switching from img2img to txt2img: "When I switch between img2img and txt2img and forget to reset denoise to 1, I notice a lot of really interesting results, and a lot less convergence — not just in the final output, where I'd expect it, but in the thumbnails of the intermediate steps." 12 At 0.75 and below, output becomes increasingly noisy. Below 0.65, output is essentially random.
One thing Flux Dev img2img cannot do reliably: texture preservation. Community consensus on this is unambiguous — user Calm_Mix_3776: "As always, all texture is totally destroyed by Flux when doing img2img. One of Flux's biggest drawbacks and why SDXL still has its use cases." 13 The DiT architecture's reconstruction strength means Flux doesn't modify an image so much as re-predict it from a noisy version — and what comes back has different surface texture even when the structure is preserved. For texture-sensitive work, use SDXL, Flux Fill, or ControlNet.
Flux 2 Klein: unlocking the denoising control
Klein's default ComfyUI workflow is an edit workflow — the Ref Conditioning subgraph locks the output to the reference image even at denoise = 1.0. To enable standard img2img denoising, community user Own-Quote-2365 confirmed the fix: "If you're using the basic Klein Edit template, just delete the Ref Conditioning subgraph and connect the yellow prompt conditioning lines directly to the Positive/Negative slots at CFG Guider. Also, use the BasicScheduler node to enable the denoise option." 14 Even after this change, the usable denoising window is narrow — user downspiral1 warned: "You can only lower the denoise a small amount before the image completely loses coherence." 14 The Flux cliff behavior applies here too.
Flux 2 Pro: no denoising parameter
Flux 2 Pro uses flow matching rather than iterative denoising — the architecture learns a straight path in latent space between noise and the target image rather than a stepwise schedule. This means there's no denoising strength slider to expose. Editing in Pro works by initializing from the source image's latent representation and applying a transformation. 15 Directive editing (describing the change in natural language, no manual masking required) is the intended interface.
The community thread on Flux denoising behavior is worth reading for the full context:
正在加载内容卡片…
MJ analogs: discrete tools, not a slider
Midjourney V7/V8.1 has no denoising number. Image variation is controlled through a combination of a continuous parameter and several discrete mode buttons:
--iw (Image Weight): Range 0–3, default 1. Higher --iw means the reference image exerts more influence on the final output — conceptually the inverse of denoising strength. --iw 3 ≈ very low denoise equivalent (strong image retention); --iw 0.5 ≈ medium-high denoise equivalent. Official documentation: "If you want more control over how much your Image Prompt affects the final image, try using the image weight parameter --iw." 16Vary (Subtle) / Vary (Strong): Discrete buttons on upscaled outputs. Vary Subtle produces small changes (~low denoise equivalent); Vary Strong produces significant variation (~medium-high denoise equivalent). No numeric control.
Vary Region: Midjourney's inpainting equivalent (called Erase on the web version). Selection size maps directly to change magnitude — "larger selections give the Midjourney Bot more room to generate new creative details. Smaller selections will result in smaller, more subtle changes." 17 Compatible with Remix Mode for prompt changes inside a selection.
Retexture: Available in the web Editor. Changes style and surface texture while preserving underlying structure — functionally similar to high-denoise + style prompt + composition lock, but with no strength slider.
Cross-tool reference table
The five rows below are approximate equivalents across the conceptual effect spectrum. Flux values reflect the realistic working range above the 0.81 cliff.
| Effect level | SDXL denoise | Flux 2 Dev denoise | MJ --iw | MJ vary mode |
|---|---|---|---|---|
| Nearly unchanged | 0.1–0.2 | ≤0.80 (scheduler no-op) | 2.5–3.0 | — |
| Light variation, structure preserved | 0.3–0.4 | 0.81–0.85 | 1.5–2.0 | Vary (Subtle) |
| Medium change, creative composition | 0.45–0.55 | 0.85–0.90 | 1.0 (default) | Vary (Strong) |
| Heavy rework, approaching txt2img | 0.7–0.8 | 0.90–0.95 | 0.5–1.0 | Retexture |
| Full regeneration | 0.9–1.0 | 0.95–1.0 | 0.0–0.3 | — |
One structural implication: Flux's usable img2img range is compressed into the top third of the slider (roughly 0.81–0.95). The bottom two-thirds of the 0–1 range produces either no change (below 0.81) or results that diverge from the source too heavily (above 0.95). SDXL's usable range is the bottom third (0.1–0.5 without ControlNet, up to 0.85 with it). MJ's discrete tools map loosely across the full spectrum but without numeric precision.
Bottom line: don't transfer SDXL denoise intuitions to Flux, or vice versa. They're different parameter spaces serving different architectures — calibrate per-tool against your specific use case.
Cover image: Hand adjusting mixing console faders, photo by Elvis KAMBIRE via Pexels
参考来源
- 1r/StableDiffusion: img2img in SDXL fails miserably when more than 0.5 denoiser
- 2GitHub Forge issue #2567: Denoising Is Broken, at least on flux
- 3r/StableDiffusion: Why flux models have 'smaller denoise values' than sd1.5 and SDXL?
- 4Pexels: Adjusting mixing console sliders by Elvis KAMBIRE
- 5r/StableDiffusion: What do you personally use Img2Img for?
- 6AI Photo Generator: What Is CFG Scale in Stable Diffusion? (2026)
- 7r/StableDiffusion: Img2img denoising strength changes the image too much
- 8r/StableDiffusion: Help with Img2Img (ControlNet config)
- 9r/StableDiffusion: Simple IMG2IMG without denoise
- 10GitHub: Stability-AI/sd3.5 Issue #6 — img2img results pixelated
- 11Pexels: AI neural network illustration by Google DeepMind
- 12r/StableDiffusion: Flux in Comfy — why is Denoise such a strong lever for creative composition?
- 13r/StableDiffusion: SDXL → FLUX img2img
- 14r/StableDiffusion: How to control denoise for image 2 image in Flux 2 Klein?
- 15MindStudio: What Is FLUX 2 Pro?
- 16Midjourney: Image Prompts documentation
- 17Midjourney: Vary Region documentation
围绕这条内容继续补充观点或上下文。