Titan vs Nova Canvas image masks: which colour is edited
Titan says mask value 0 (black) is regenerated and bans alpha. Nova Canvas inpainting edits black too. Build one mask check and test any mask on Sume.

Mask conventions are where image APIs disagree, and a flipped mask edits everything except the area you wanted. Amazon's two image models on Bedrock give the same answer for inpainting, but the two pages describe different file rules.
| Rule | Titan Image Generator | Nova Canvas |
|---|---|---|
| Edited area | Mask value 0 (black) is regenerated | Inpainting: pure black is edited, pure white is kept |
| Allowed values | Only black (0) and white (255) | Only pure black and pure white |
| Size | Same height and width as the input | Same size as the input |
| Alpha | Not supported; RGB only | PNG input must have no transparent pixels |
| Encoding | maskImage is a base64 string | JPEG mask must be saved at 100% quality |
A mask checker
This script flags the three mistakes that cause most failures: wrong size, gray pixels and an alpha channel. It does not tell you which colour a given service edits; that is the table above.
from PIL import Image
import numpy as np
def check_mask(src_path: str, mask_path: str) -> list[str]:
src, mask = Image.open(src_path), Image.open(mask_path)
problems = []
if src.size != mask.size:
problems.append(f"size {mask.size} != {src.size}")
if "A" in mask.getbands():
problems.append("mask has an alpha channel")
px = np.asarray(mask.convert("L"))
gray = int(((px != 0) & (px != 255)).sum())
if gray:
problems.append(f"{gray} gray pixels")
return problems
print(check_mask("photo.png", "mask.png") or "mask ok")On Sume
Only the two ChatGPT Image 2.5 variants take mask_url. The Sume docs do not state the colour convention for it, and the earlier post on the mask alpha channel covers what to send. Treat the first call as a test: make a mask with a clear left half, send it, and see which half changed, then diff with the numpy check.
Sources
Related posts
More in Comparisons
- Unreal Speech TTS plans in dollars per million characters vs Sume
Unreal Speech's plans work out from $16.33 to $8.00 per million characters. Sume lists $47.50 with no plan. Break-even by monthly volume.
- Vozo lip-sync minutes per plan vs Sume per-second lip sync
Vozo lists about 15 lip-sync minutes at $29 and 60 at $99. Sume bills H3 Max lip sync per second with no plan. The per-minute math and where each fits.
- Sume vs Argil: AI avatar video and video agents compared
Argil makes AI-avatar and story videos with a chat agent, Director; Sume is a video agent with a multi-model API. Avatars, API, pricing, and limits compared.
- Sume vs fal: a generative media API or a video agent platform
fal runs 1,000+ image, video, and audio models behind one API. Sume adds a video agent, Formats, and avatars to a multi-model API. How the two surfaces differ.
Written by Sume