FLUX 3 Image 4K can take minutes: poll, and the Sume 30 s wait

FLUX 3 Image at resolution 4k can take several minutes, so poll. Sume blocks up to 30 seconds, then returns 202 with a job envelope to poll.

4 min readSume
All posts

BFL's FLUX 3 Image reference says generating at resolution: "4k" can take several minutes, so you poll rather than wait on one request. Sume's image endpoint holds the connection for at most 30 seconds; if a 4K request is still running, you get 202 and a job envelope to poll instead of an error.

BFL facts are from its FLUX 3 Image reference; Sume facts from the Image API, read 2026-10-01.

What does BFL say about 4K timing?

resolution takes 768sq, 1k (the default), 2k or 4k. The description adds that output_mp in the submit response gives the exact size in megapixels, and that 4k can take several minutes. The BFL release notes describe 4K as about 16 megapixels. No number of seconds is given, so size your polling loop and timeouts for minutes, not seconds.

What happens on Sume when a request is slow?

The docs say POST /v1/images blocks for up to 30 seconds and returns 200 with the image response. If the generation is still running when that budget ends, or you send mode: "async" or mode: "webhook" with a webhook_url, Sume returns 202 with the standard job envelope. They name slow configurations (4K, high quality, large n) as the ones most likely to degrade to 202. A 202 is the job envelope, not a failure.

Timing contracts in the BFL reference and the Sume docs, read 2026-10-01.
ItemFLUX 3 Image on BFLSume Image API
4K durationCan take several minutesSlow configs may exceed the wait
How you get the resultPoll polling_url200 inline, or poll the job
Blocking budgetNone; always pollUp to 30 s (wait_timeout_seconds 0 to 30)
Slow outcomeKeep polling202 with a job envelope

How do I write the client?

Branch on the status code, not the body shape. On 200 read the images; on 202 store the job id and poll the status_url with backoff, then fetch the result_url once the job is completed.

const res = await fetch("https://api.sume.com/v1/images", {
  method: "POST",
  headers: {
    Authorization: "Bearer " + process.env.SUME_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    model: "bytedance-seed/seedream-4.5",
    prompt: "a landscape photo",
    resolution: "4K", // only if the model's catalog lists 4K
  }),
});
const body = await res.json();
if (res.status === 200) {
  console.log(body.data[0].url);
} else if (res.status === 202) {
  console.log("poll", body.data.status_url);
} else {
  throw new Error("HTTP " + res.status);
}

Can I skip the wait entirely?

Yes. Send mode: "async" and Sume returns the job envelope immediately; the images are read from the standard job result endpoint. A webhook is the other route. See 202 Accepted vs 200 OK for how to treat both, and 4K image: generate or upscale for the resolution choice.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume