Recraft Flash draft then Refine: the closest rerun on Sume
Recraft's Refine regenerates a Flash draft at higher quality while keeping composition. Sume has no refine call or seed, so here is the nearest honest workflow.

Recraft's V4.1 Flash is built for drafts, and its Refine function regenerates a picked image at higher quality while preserving the original composition and lighting decisions. Sume has no Refine endpoint and does not serve a seed, so the closest workflow there is to draft at a low quality or resolution, pick a winner, then re-run on an edit-capable model with the draft as an input_references image and a prompt that says to keep the composition.
Flash and Refine facts are from Recraft's Flash announcement, read 2026-10-03. Sume's parameters are from the Image API docs.
What Recraft announced
The post, dated September 23, 2026, reports a median of about 1.3 seconds for Flash, with an API median of 1.4 seconds and a 95th percentile of 1.8 seconds, and says it is live in Recraft Studio, the API and the mobile apps. It does not state a price in the article and does not mention vector output for Flash.
| Step | In Recraft | On Sume |
|---|---|---|
| Draft | V4.1 Flash, about 1.3s median | A cheap model or a low quality / resolution |
| Keep the composition | Refine on the picked image | Pass the draft in input_references on an edit-capable model |
| Reproduce a result | Not stated on the page | seed is in the schema but no model advertises it, so it returns 400 |
A rerun on Sume
The docs say seed and output_compression are schema-only today, so sending one returns 400 unsupported_parameter. A final from a draft therefore needs the draft itself as the reference.
import os
import requests
key = os.environ["SUME_API_KEY"]
payload = {
"model": "openai/gpt-image-2.5",
"prompt": "Keep this composition and lighting exactly; re-render at final quality with cleaner detail",
"input_references": [
{
"type": "image_url",
"image_url": {
"url": "https://example.com/draft.png"
}
}
],
"quality": "high"
}
resp = requests.post(
"https://api.sume.com/v1/images",
headers={"Authorization": f"Bearer {key}"},
json=payload,
timeout=60,
)
if resp.status_code == 200:
print([item["url"] for item in resp.json()["data"]])
elif resp.status_code == 202:
print("still running:", resp.json()["data"]["status_url"])
else:
print(resp.status_code, resp.text)
Limits
This is a different model re-interpreting the draft, not Recraft's Refine, so faces, text and small objects can shift; compare against the draft before you ship. The Recraft model Sume lists may not take references at all, which is why the example uses an edit-capable model; check input_references in the catalog for the model you pick.
Sources
Related posts
More in Use cases
- Reddit carousel ad specs: 2 to 6 images, 4:5 at 1200x1500
Reddit carousel ads take 2 to 6 JPG, PNG or GIF cards, 4:5 at 1200x1500 is the cross-device size. Limits for headline, caption, URLs, plus a Sume batch.
- Redfin guided video tour: what to make, and the Matterport rule
Redfin lets agents post a guided video tour in select markets and only shows my.matterport.com walkthroughs inline. What Sume can make for the carousel video.
- Reels Carousel Ads With Multiple Destinations: Build the Tiles
Meta's 2023 Reels update added multi-destination Reels carousel ads and swipe-left. Make the product tiles and the lead clip with Sume Images and trim.
- Reimagine a Short from one frame: build your own 8-second clip
YouTube's Reimagine turns one frame of a Short into an 8-second Veo clip. To do the same with your own footage, pull a frame and use Gemini Omni on Sume.
Written by Sume