FLUX Request Moderated vs Content Moderated, and Sume's reason
BFL separates input moderation from output moderation and adds a Moderation Reasons array. Sume groups refusals under content_policy_rejected.

On BFL's API, Request Moderated means your prompt or image was flagged before processing, and Content Moderated means the generated output was flagged afterward. Both now return a Moderation Reasons array in details. Sume documents no two-stage split and no reasons array: policy refusals can surface under the content_policy_rejected reason, and failed generations are not billed.
BFL facts are from its errors page and release notes; Sume facts are from Image generation and the OpenAPI document, read 2026-10-01.
What are the two BFL statuses?
In both cases result is null, and details names categories such as Violence, Sexual Content or Self Harm.
| Status | When | Meaning |
|---|---|---|
Request Moderated | Before processing | Input prompt or image flagged; request rejected |
Content Moderated | After processing | Generated output flagged; result not delivered |
What does a Sume job report?
Sume's OpenAPI describes public_reason as a machine-friendly string that SDKs and agents can group on, with examples generation_rejected, image_content_rejected and content_policy_rejected. The code that sets it emits content_policy_rejected for policy refusals. This post does not claim Sume returns a category array like BFL's Moderation Reasons.
Am I billed for a moderated request?
The image docs say failed or cancelled generations are not billed, and failed requests return 502 Bad Gateway. Completed generations are billed at endpoint pricing. See the billing section of Image generation for the full list.
How should my client handle it?
Branch on public_reason. Treat content_policy_rejected as a prompt or input problem and change it before resubmitting. For a comparable case on another model, read Seedream 5.0 content policy API errors.
Sources
Related posts
More in Developers
- FLUX safety_tolerance 0 to 5, and what Sume does instead
BFL's safety_tolerance runs 0 (strictest) to 5 on FLUX.2, default 2. Sume has no such dial: it returns 400 unsupported_parameter.
- Upload 30 reference images to a Sume Format run (images only)
A Format run takes up to 30 images in attachments[], type input_image, by public HTTPS URL or asset_id. Video and audio attachments are not supported today.
- Gemini 2.5 not available in a new project: what to do
Google's September 18 changelog limits Gemini 2.5 models to users who already used them. New projects are pointed to 3.5 Flash-Lite or 3.8 Flash.
- gemini-3.1-flash-tts-preview replacement: 3.8 Flash-Lite TTS
Google names gemini-3.8-flash-lite-tts as the replacement for the 3.1 preview TTS model. What that changes for you, and what stays fixed on Sume TTS.
Written by Sume