Bedrock background removal (Nova, Titan) vs Sume transparent output
Nova Canvas and Titan v2 remove backgrounds into transparent PNGs. On Sume, background transparent is a GPT Image 2.5 option. Compare what each returns.

Cutting a product out of its background is a one-call job on Amazon Bedrock. Nova Canvas has a BACKGROUND_REMOVAL task that returns a PNG with 8-bit transparency, and Titan Image Generator v2 has a background removal feature that returns a transparent background (Amazon docs, read 2026-10-06). The Sume Image API has a different shape, so port with care.
| Bedrock Nova Canvas / Titan v2 | Sume /v1/images | |
|---|---|---|
| How to ask | BACKGROUND_REMOVAL task / background removal feature | background: "transparent" on a generation or edit |
| Which models | Nova Canvas, Titan v2 only | Both ChatGPT Image 2.5 variants only |
| Output type | PNG with 8-bit transparency (Nova) | Set output_format to png or webp |
| Other models | Not applicable | background is rejected with 400 unsupported_parameter |
What changes
On Bedrock the cutout is its own task: image in, same image out without a background. On Sume the transparent background is an option on a generation, so the model redraws the picture rather than masking pixels. For a packshot where the product must stay pixel-exact, that matters. Sume also has a separate background removal tool priced per image, covered in the post on cleaning 200 product photos.
Verify the alpha channel
Whichever service you use, check that the file really has transparency. This test fails on a flat white background.
import io, os, requests
from PIL import Image
r = requests.post("https://api.sume.com/v1/images", timeout=90,
headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
json={"model": "openai/gpt-image-2.5", "background": "transparent",
"output_format": "png", "prompt": "A single red apple, studio lighting."})
r.raise_for_status()
img = Image.open(io.BytesIO(requests.get(r.json()["data"][0]["url"]).content))
print(img.mode)
alpha = img.convert("RGBA").getchannel("A")
print("transparent pixels:", sum(1 for a in alpha.getdata() if a == 0))Sources
Related posts
More in Comparisons
- Bedrock image features Sume does not have: an honest gap list
Moving off Bedrock image models? These Nova Canvas and Titan features have no Sume equivalent: maskPrompt, mergeStyle, similarityStrength, fine-tuning.
- ffmpeg script or Sume Timeline for a weekly vertical series
Compare a self-hosted ffmpeg script with Sume Timeline 1.0 for a weekly 9:16 series: what you maintain, what the API refuses, price per output minute.
- Groq Orpheus TTS: $22 per million characters and a 200-character cap
Groq lists Orpheus V1 English at $22.00 per million characters with input kept under 200 characters. Request-count and cost math against Sume TTS.
- Ideogram 4.5 is 0.8c to 22c per image: which tiers does Sume sell?
Ideogram lists four quality modes from 0.8 cents to 22 cents at native 2K. Sume's Image API sells low, medium and high at $0.0375, $0.075 and $0.275 an image.
Written by Sume