
Nearly every guide about failed AI generations lists the failure types and stops there — identity drift, weird physics, prompt misreads. Useful, but it leaves the practical question unanswered: how often does this actually happen, and on which model?
We had the data sitting in a table, so we pulled it. Every generation that ran on FlyAIgh between 2026-05-06 and 2026-08-21 — 1,480 runs, 341 accounts, 40 models — sorted by what actually caused each failure.
The short answer
Content moderation refuses far more generations than the models break. And the gap between models is enormous: on the same platform, in the same window, one model refused 26% of everything sent to it while four others refused nothing at all.
The trigger is almost never the prompt. It is the reference image — specifically, a real human face in it.
Where these numbers come from
This is production traffic from real users, not a lab test. Nobody wrote prompts designed to probe the filters; these are people trying to make something and getting told no.
Before computing any rate we removed 59 failures that trace back to our side, not the model's — integration errors on our end (sending a text-to-video request to a model that only accepts image-to-video, malformed parameters) and platform-level failures during submission. A model should not be scored on our bugs.
Only models with at least 30 valid samples appear below. Eleven cleared that bar out of 40.
Rejection rates by model
Two separate columns, because they are two separate things. Moderation means the model worked and its content policy declined. Provider failure means the generation broke — timeout, 502, busy queue.
| Model | Type | Samples | Moderation refusals | Provider failures |
|---|---|---|---|---|
| Seedance 2.0 Fast | Video | 50 | 26.0% | 0.0% |
| Seedance 2.0 | Video | 148 | 14.9% | 0.0% |
| Seedance 2.0 Mini | Video | 50 | 14.0% | 0.0% |
| Nano Banana Pro | Image | 96 | 12.5% | 1.0% |
| GPT Image | Image | 403 | 4.0% | 0.0% |
| Nano Banana | Image | 81 | 1.2% | 2.5% |
| VEO 3.1 Lite | Video | 74 | 0.0% | 0.0% |
| Kling V3 Omni | Video | 35 | 0.0% | 0.0% |
| Z-Image Turbo | Image | 92 | 0.0% | 0.0% |
| Seedream 5.0 Pro | Image | 53 | 0.0% | 17.0% |
| Grok Imagine | Video | 137 | 0.0% | 16.1% |
The two columns barely overlap. The models that refuse the most break the least, and the two that break the most — Seedream 5.0 Pro and Grok Imagine — refused nothing. Whatever is going on inside these systems, content policy and infrastructure reliability are unrelated.
Read the sample sizes before quoting any single number. GPT Image's 4.0% rests on 403 generations and is the sturdiest figure in the table. Kling V3 Omni's 0% rests on 35 — it means "no refusals observed in 35 runs", not "this model never refuses".
What actually triggers a rejection
These are the verbatim messages returned by the providers, with how often each appeared in the 77 moderation refusals:
- Real person in the reference image (15) — "The request failed because the input image may contain real person." Plus 12 more naming specific slots (content[1], content[2], content[3]), which tells you it checks every reference you attach, not just the first.
- Explicit or suggestive material (15) — "Contains inappropriate content. Please remove suggestive or explicit material."
- Celebrity likeness (6) — "Celebrity or public figure imagery is not supported."
- Copyright and audio rights (5) — "Content security audit did not pass. The output audio may be related to copyright restriction." Plus separate audio-filter refusals on models that generate sound.
- Content involving minors (4) — refused outright, no appeal path.
- Watermark removal (3) — refused when the input looks like an attempt to strip a watermark or reproduce protected material.
The pattern worth internalising: the reference image is what gets you refused, not the prompt. Real faces alone account for more than a third of every refusal we logged.
Why the Seedance family refuses most
All three Seedance 2.0 variants land between 14% and 26%, well above everything else. Two things drive that, and only one of them is about the filter.
First, Seedance accepts up to nine reference images per generation. More references means more surfaces for the filter to check — and the refusals naming content[1] content[2] content[3] confirm it checks each one. A model that takes a single reference has fewer chances to trip.
Second, people reach for Seedance precisely because it accepts many references, which is the workflow you use when you are trying to keep a specific person consistent across shots. The use case pulls in exactly the input the filter is strictest about.
How to get rejected less
- Fix the reference before you touch the prompt. Most refusals fire on the image. Rewording rarely helps.
- Replace photos of real people with generated characters. A consistent AI-generated character passes filters that a photograph of an actual person will not. This is what character tools are for, and it sidesteps the most common refusal entirely.
- Drop references you do not need. On a nine-reference model, every extra image is another check to fail. Send three good ones instead of nine mediocre ones.
- Never send public figures. Celebrity likeness is refused across every provider we route to. There is no model in the table where this works.
- Check the source for watermarks. Stock previews and screenshots carry them, and the filter reads that as an attempt to strip protection.
- Switch models rather than fight the filter. If real-person references are core to your work, VEO 3.1 Lite, Kling V3 Omni and Z-Image Turbo showed no refusals in this window. Moving the job is faster than a fifth rewrite.
One structural point: on FlyAIgh credits for failed and rejected generations are refunded automatically. At a 26% refusal rate that stops being a nicety — it is the difference between paying for one usable clip and paying for one and a third. Refund policies vary by platform; worth checking before you batch anything on a high-refusal model.
What this data does not tell you
Four limits, stated plainly, because a number without its boundaries gets misused:
- This measures refusals, not quality. A generation that completed and looks bad counts as a success here. Whether output is usable is not something the database records, so this article cannot speak to it.
- Rejection rates reflect what our users sent. A different audience with different source material would produce different numbers on the same models.
- Filters change without notice. This is a May–August 2026 window. Providers adjust content policy continuously and rarely announce it.
- Sample sizes are uneven. 403 generations versus 35 is not the same quality of evidence, and the table shows both so you can weight them yourself.
Everything above comes from one query against production data. We will re-run it as samples grow, particularly for the models currently under the 30-generation bar.
FAQ
Which AI models reject the most content?
Measured across 1,480 real generations on FlyAIgh between 2026-05-06 and 2026-08-21, the Seedance 2.0 family refused the most: Seedance 2.0 Fast rejected 26.0% of runs (50 samples), Seedance 2.0 rejected 14.9% (148 samples), and Seedance 2.0 Mini rejected 14.0% (50 samples). Nano Banana Pro rejected 12.5% (96 samples). At the other end, VEO 3.1 Lite (74 samples), Kling V3 Omni (35), Z-Image Turbo (92), Seedream 5.0 Pro (53) and Grok Imagine (137) rejected nothing at all in the sample window.
Why does an AI model reject an image I uploaded?
In our data the single most common trigger is a real human face in the reference image. The verbatim message is "The request failed because the input image may contain real person." The next most common are explicit or suggestive content, celebrity likeness ("Celebrity or public figure imagery is not supported"), content involving minors, and watermark or copyright concerns. Almost all of these fire on the reference image rather than the text prompt.
Is a rejection the same as the model failing?
No, and mixing them together is what makes most reliability comparisons useless. A moderation rejection means the model worked and its content policy declined the request. A provider failure means the generation broke — a timeout, a 502, a busy queue. They have different causes and different fixes. In our data the two barely overlap: the models that reject most (Seedance 2.0 family) had 0% provider failures, while the models that fail most (Grok Imagine 16.1%, Seedream 5.0 Pro 17.0%) rejected nothing.
Do I get charged for a rejected generation?
On FlyAIgh, no — credits for failed and rejected generations are refunded automatically. This matters more than it sounds at a 26% rejection rate, because it is the difference between paying for one usable clip and paying for one usable clip plus a third of another. Policies differ by platform, so check before you run a batch on a model with a high refusal rate.
Can I avoid rejections by rewriting the prompt?
Usually not, because most rejections in our data fire on the reference image, not the text. Swapping a photo of a real person for a generated character, cropping out an identifiable face, or removing a watermark from the source is far more effective than rephrasing. Prompt rewording only helps for the subset of refusals triggered by explicit or suggestive wording.
Which model should I use if my references contain real people?
Based on the sample window, VEO 3.1 Lite, Kling V3 Omni and Z-Image Turbo did not refuse a single run, and GPT Image refused 4.0% out of 403 generations — the largest sample in the set and therefore the most reliable number here. The Seedance 2.0 family is the one to avoid for real-person references. Note this reflects policy behaviour during May–August 2026; model providers change their filters without notice.
How many generations is this based on?
1,480 generations from 341 accounts across 40 models, run between 2026-05-06 and 2026-08-21. Only 11 models cleared 30 valid samples and appear in the table. Excluded from the rates: 59 failures that trace back to our side rather than the model — integration errors and platform-level failures during submission. Leaving them in would have made one model look 47.6% unreliable when its real provider-side failure rate is 0%.
Build a consistent character on FlyAIgh
Identity refs + AI-derived persona + outfit variants, bound to a character ID that auto-injects into every model. 25 free credits, no card required.