FLUX 3 docs show 67.8 to 94.1% unchanged pixels: measure your edits
BFL's FLUX 3 Image docs publish pixel-difference examples, not a guarantee. Measure the unchanged-pixel share of your own Sume edits with a 20-line script.
Black Forest Labs' FLUX 3 Image editing docs say pixels outside the boxes usually stay the same, warn that shadows, reflections or nearby lighting may still change, and include pixel-difference examples with 67.8% to 94.1% unchanged (Black Forest Labs docs, read 2026-10-04). The product page markets pixel-perfect preservation of untouched elements (Black Forest Labs, read 2026-10-04). Those two statements sit together, and the numbers show a range, not a promise.
What that means for a Sume caller
FLUX 3 Image is not in the Sume image catalog; the closest Black Forest Labs rows are black-forest-labs/flux.2-pro and flux.2-flex (Sume Image API). What carries over is the habit: every model edits, and every model can move pixels you did not ask it to move. The only number that matters for your product is the unchanged share on your photos.
| Claim | Source wording | How to use it |
|---|---|---|
| Pixels outside boxes | Usually stay the same | Do not treat as exact |
| Lighting and shadows | May still change | Check the area near the edit |
| Measured examples | 67.8% to 94.1% unchanged | Run your own count |
Count unchanged pixels
The script compares an original and an edit of the same size, counts pixels whose channels differ by no more than 8 of 255, and prints the share. If the sizes differ, the edit changed geometry and the count is meaningless, so it says so.
from PIL import Image
import numpy as np
def unchanged_share(original: str, edited: str, tol: int = 8) -> float:
a = np.asarray(Image.open(original).convert("RGB"), dtype=int)
b = np.asarray(Image.open(edited).convert("RGB"), dtype=int)
if a.shape != b.shape:
raise ValueError(f"size changed: {a.shape} vs {b.shape}")
same = (np.abs(a - b) <= tol).all(axis=2)
return float(same.mean())
print(f"{unchanged_share('before.png', 'after.png'):.1%} unchanged")
Make the number comparable
If a model returns a different size, skip it or resample first, and note that you did.
- Send an edit with no aspect_ratio on Ideogram 4.5, or aspect_ratio auto, so the output keeps the source shape.
- Use the same photos and the same instruction across models.
- Report the share beside the size of the edited region; a small edit should leave most pixels alone.
Sources
Related posts
More in Models
- Gemini 2.5 Flash Image shut down Oct 2: what to call on Sume instead
Google's gemini-2.5-flash-image, the original Nano Banana, was set to shut down Oct 2, 2026. Which Sume image ids to test as a replacement, and what to check.
- Gemini 3.8 Flash TTS tops Hume's VoiceEQ board: run your own test
Hume's blog lists Gemini 3.8 Flash TTS atop its Real-World VoiceEQ board. Why a vendor-run board is only a lead, and how to run a blind A/B on your script.
- Omni Flash 1.1: GA in the Gemini API, Preview on Agent Platform
Gemini API release notes record gemini-omni-1.1-flash as GA on Aug 27, 2026; an Agent Platform page title still says Preview. What to check first.
- Omni's 1M-token context: how many ten-second edit turns fit?
Omni lists a 1,048,576-token context and 5,792 tokens per video second. If prior clips stay in context, 18 ten-second turns fit; Sume edits are stateless.
Written by Sume