Nova Canvas outpainting DEFAULT vs PRECISE, and a Sume ratio edit
Nova Canvas outPaintingMode DEFAULT can leave a halo; PRECISE follows the mask. Here is how to extend a photo on Sume, and how to test the seam.

Outpainting means making a picture wider or taller than the photo you have. Amazon Nova Canvas has a dedicated OUTPAINTING task for it, with a mode switch. Sume has no outpaint task, so the question is what to send instead and how to check the seam.
The two Nova Canvas modes
Per Amazon's docs (read 2026-10-06), outPaintingMode is DEFAULT or PRECISE. DEFAULT can leave a visible halo around the original image. PRECISE adheres strictly to the mask. Outpainting also reverses the inpainting mask convention, so check the user guide before you build the mask.
What Sume does
On Sume you send the photo in input_references and set an aspect_ratio that differs from the source. The Image API docs say an Ideogram 4.5 edit with no aspect_ratio keeps the source shape, which means that setting one is how you change it. The docs do not promise that the original pixels stay unchanged in the middle, so treat the result as a new render and test it.
For models with aspect_ratio in their catalog row you can read the allowed values from GET /v1/images/models/{id}/endpoints.
Test the seam instead of trusting a mode
Crop the centre of the output at the source's aspect and compare it with the source. A mean absolute difference near zero means the middle was kept. A larger number means the model repainted it, and you should not use that route for packshots where the product must not change.
import io, os, requests
import numpy as np
from PIL import Image
SRC = "https://example.com/shoe.jpg"
r = requests.post("https://api.sume.com/v1/images",
headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
json={"model": "ideogram/ideogram-v4.5", "aspect_ratio": "16:9",
"prompt": "Extend the scene to the left and right. Do not change the shoe.",
"input_references": [{"type": "image_url", "image_url": {"url": SRC}}]},
timeout=90)
r.raise_for_status()
src = Image.open(io.BytesIO(requests.get(SRC).content)).convert("RGB")
out = Image.open(io.BytesIO(requests.get(r.json()["data"][0]["url"]).content)).convert("RGB")
w, h = out.size
sw = round(h * src.width / src.height)
x0 = (w - sw) // 2
mid = out.crop((x0, 0, x0 + sw, h)).resize(src.size)
diff = np.abs(np.asarray(mid, float) - np.asarray(src, float)).mean()
print("mean abs diff:", round(diff, 2))Run it on five of your own photos before you pick a route. The result depends on the picture, not on the mode name.
Sources
Related posts
More in Comparisons
- Nova Canvas virtual try-on mergeStyle: BALANCED, SEAMLESS, DETAILED
Nova Canvas try-on has three mergeStyle values with different trade-offs. What each protects, and the closest Sume route with a pixel diff to check it.
- 720p thumbnail list prices: GPT Image 2.5 low vs Google Banana lines
For a 1280x720 image, GPT Image 2.5 low is about $0.0032 at OpenAI's list rate. Google lists $0.0336 (Flash Lite Image) and $0.045 (Flash Image 0.5K).
- Qwen Image vs Qwen Image Max for 25 square menu tiles: $0.63 vs $2.34
Qwen Image bills $0.025 per 1:1 tile on Sume and Qwen Image Max $0.09375. For 25 menu tiles that is $0.625 against $2.34, and Max rejects reference images.
- How many reference video seconds? Kling 4.0, Wan 3.0, H3, Omni
Reference video limits differ by model: Kling 4.0 allows 5 videos at 30 seconds combined, Omni 3 clips of 3 seconds. A table of the numbers I could read.
Written by Sume