Why image-to-video fails: what 360 real photo uploads tell us
Opens the editor with Hailuo 2.3 in image-to-video mode: a 6-second clip from a photo costs 3 credits, and failed runs are refunded automatically.
Animate a photo with Hailuo 2.3If your image-to-video is not working, you are not alone, and it is rarely a bug. We measured every photo our users uploaded for image-to-video between 29 January and 1 October 2026, along with the outcome of each run. This post explains why image-to-video fails, which photos and prompts went with failures, which models were most forgiving, and what to do after a failed run.
The gap: photos fail far more often than prompts
| Mode | Finished | Policy refusals | Users |
|---|---|---|---|
| Text-to-video | 160 of 163 (98.2%) | 3 (1.8%) | 120 |
| Image-to-video | 277 of 360 (76.9%) | 63 (17.5%) | 200 |
| Reference-to-video | 54 of 57 (94.7%) | 3 | — |
The difference is almost entirely content policy. A text prompt only describes a scene. A photo shows a real one, and the model provider's safety check reads the photo as well as the prompt. Of the 83 image-to-video runs that did not finish, 63 were policy refusals and 20 failed for technical reasons, timeouts included. The 63 refusals came from 35 different people, so this is not one user's problem.
Why does image-to-video fail more than text-to-video?
Short answer: because the photo itself is checked. Real people, children, public figures and suggestive images are refused by the provider's content policy, and rewording the prompt doesn't change the photo. In our data, 17.5% of image-to-video runs were refused for policy, against 1.8% of text-to-video runs. Technical failures were a smaller share.
Five reasons a photo-based generation fails
1. People in the photo
This is the main one. Model providers refuse photos that show, or seem to show, a real and identifiable person, especially minors, celebrities or anything suggestive. They do this to prevent deepfakes and impersonation.
We also run our own check before a generation starts, so some requests are blocked before any credits are charged. Since 14 July 2026 that check blocked 221 requests from 67 users. By category:
| Category | Blocks |
|---|---|
| Impersonation | 78 |
| Explicit sexual content | 47 |
| Public figure | 45 |
| Deepfake intent | 37 |
| Non-consensual sexual content | 8 |
| Minor | 6 |
172 of those blocks were on video requests and 46 on image requests. If your photo shows a real person who hasn't agreed to be animated, expect a refusal on any model. Our guide to why AI video prompts get rejected explains the categories in detail.
2. A too-short prompt
Short answer: yes, a longer prompt helps image-to-video. Runs with a photo and a prompt of 10 words or fewer finished 50% of the time (44 of 88). With 11 words or more, 86% finished (233 of 272). Describe the motion, the camera and what should stay unchanged. Short text-to-video prompts didn't fail in the same way (8 of 8).
Two caveats. First, 42 of the 44 short-prompt failures were policy refusals, and they came from 17 users, so a few people who uploaded photos of people with a one-line prompt drive much of the gap. Second, this is a correlation. A longer prompt won't unlock a photo the provider refuses. What it does is tell the model what to animate, so it is less likely to invent motion on a face or body that then trips a safety check. Something like "slow push-in on the bottle, label stays sharp and still, soft light shifts across the table" works better than "make it move".
3. Low-resolution, re-saved photos
We measured all 360 input photos in memory (none were stored). The median upload was 1.57 megapixels, 1,024 px on the short side and 1.1 MB, and 73% were JPEGs. Success by size:
| Photo size | Finished | n |
|---|---|---|
| Under 0.5 MP | 79% | 19 |
| 0.5–1 MP | 46% | 54 |
| 1–2 MP | 83% | 161 |
| 2–4.5 MP | 83% | 115 |
| 4.5 MP or more | 64% | 11 |
| Short side | Finished | n |
|---|---|---|
| Under 720 px | 60% | 47 |
| 720–1,079 px | 75% | 162 |
| 1,080 px or more | 84% | 151 |
| Format | Finished | n |
|---|---|---|
| PNG | 88% | 60 |
| PNG with transparency | 83% | 36 |
| JPEG | 73% (21% refused) | 262 |
Read these carefully. The 0.5–1 MP group had 24 policy refusals, and they came from only 10 users. Low-resolution JPEGs are often screenshots or re-saved social media photos of people, and it is the people that get refused, not the pixels. A sharper photo won't fix a policy block. It does help with what happens after a run succeeds: less smearing in motion and more readable labels and text. For product shots, see how to keep product labels readable in AI video.
4. Wide photos on some models
Short answer: match the photo to the video you want. Tall 9:16 photos finished 79.5% of the time and landscape 4:3 or 3:2 photos 86%, while wide 16:9 photos finished 72%, with 26% refused. The output usually keeps your photo's shape: in 53 of 62 clips with known dimensions, the video matched the input aspect ratio.
| Photo shape | Finished | n | Refused |
|---|---|---|---|
| Tall (about 9:16) | 79.5% | 146 | 14% |
| Portrait (3:4, 4:5, 2:3) | 74% | 66 | 17% |
| Square | 76% | 34 | 21% |
| Landscape (4:3, 3:2) | 86% | 29 | 10% |
| Wide (16:9) | 72% | 85 | 26% |
The pattern depends on the model. Grok Imagine finished 13 of 23 wide photos, with 9 refused. Veo 3.1 Lite finished all 17 wide photos it was given. MiniMax H3 finished only 3 of 9 tall photos. The numbers per cell are small, so treat them as hints. If your photo is the wrong shape for the platform, extend it rather than cropping out the subject: AI outpaint turns a square or wide image into 9:16 for 3 credits.
5. Timeouts and technical errors
20 image-to-video runs failed for reasons other than policy. Across all modes, 14 runs timed out. A job that is still processing after 30 minutes is marked failed and refunded automatically. Timeouts are usually a provider queue problem, not a problem with your photo, and a resubmission later often works. In our data, though, 13 of the 14 timed-out runs were followed by no similar attempt within the hour.
Which model is most forgiving with photos?
Short answer: in our data, Hailuo 2.3 finished all 14 photo runs it received, and Seedance 2.0 (93%), Kling 3.0 Standard (88%) and Veo 3.1 Fast (87%) also did well. MiniMax H3 finished 54%, with 15 of 35 runs refused. Samples are small and people sent different photos to each model, so this is not a strictness ranking.
| Model | Image-to-video finished | n | Policy refusals |
|---|---|---|---|
| Hailuo 2.3 | 100% | 14 | 0 |
| Seedance 2.0 (indicative) | 93% | 14 | 1 |
| Kling 3.0 Standard | 88% | 16 | 2 |
| Veo 3.1 Fast | 87% | 23 | 2 |
| PixVerse V6 | 85% | 20 | 0 (3 other failures) |
| Veo 3.1 Lite | 83% | 117 | 17 |
| Grok Imagine | 76% | 67 | 13 |
| MiniMax H3 | 54% | 35 | 15 |
For comparison, text-to-video on the same Veo models almost never failed: Veo 3.1 Fast finished 90 of 90 and Veo 3.1 Lite 35 of 36. Seedance 2.0 is marked indicative because its runs came from a handful of creators. For a full walk-through of models, inputs and costs, see the image-to-video AI guide.
A 60-second photo checklist
Before you press Generate:
- Who is in it? If a real person is visible, especially a child or a well-known face, expect a refusal. Use a product, a place, an illustration or a fictional character instead.
- Is it the original file? Use the photo itself, not a screenshot or a re-saved copy from social media. Aim for at least 1,080 px on the short side.
- Is it the right shape? Use 9:16 for TikTok, Reels and Shorts. Outpaint a wide image rather than cropping it.
- PNG or JPEG? Either works. A PNG with a clean or transparent background is a good choice for product shots.
- Does the prompt describe motion? Write at least one full sentence: what moves, how the camera moves, and what must stay the same.
- Is the model a good fit? If a model has refused similar photos before, try another one rather than the same run again.
What to do after a failure
Look at what people did after a failed run. Of 90 failures, 62 (69%) were followed by no similar attempt within the hour. Of the 69 policy refusals, 16 (23%) were recovered in the same job, mostly by switching model (11 people tried the same prompt on another model) or editing the prompt (5). Retrying the exact same request on the same model happened 7 times after a refusal.
So:
- After a policy refusal, change the input, not the button. Replace the photo, remove the person or rewrite the prompt so it describes the product or scene. Then try a different model if you need to.
- After a timeout, submit again a little later. The photo is probably fine.
- Don't give up after one try. Of the 32 users whose very first generation was refused, 26 made another one later.
On Viralance, every failed or refused run is refunded automatically, so a second attempt costs nothing extra for the run that failed. If you are new and testing on starter credits, the free image-to-video guide shows which settings fit.
How we measured this
- Source: Viralance generation records, read-only and aggregated, 29 January to 1 October 2026: 615 generations by 360 creators, of which 360 were image-to-video from 200 users.
- Photo measurements: all 360 input images were downloaded into memory, measured (dimensions, megapixels, format, transparency, file size) and discarded. No image was stored or viewed, and no prompt text is published.
- Excluded: test, QA and admin accounts; our own internal accounts, including the owner's API and MCP test runs; accounts flagged for abuse or banned; video-to-video tools; and 11 failures caused by bugs in our own integration.
- Failure: a run that ended without a video. Policy refusals were classed from the provider's error message; everything else counts as a technical failure, timeouts included.
- Moderation blocks are counted separately from runs, because a blocked request never starts a generation.
- Limits: this is observational data. People chose their own photos, prompts and models, so the patterns are correlations, not causes. Per-model figures are shown only with at least 14 runs.
Success rates for all modes, plus wait times, are in our real-world generation data.
Animate a photo for 3 credits
Open the editor with Hailuo 2.3 in image-to-video mode. A 6-second clip from a photo costs 3 credits, or try Veo 3.1 Lite from 3 credits for 4 seconds. The price is shown before you generate, and failed runs are refunded automatically.
Frequently asked questions
Why does my image-to-video keep failing? Usually because the photo shows a real person, a child or a public figure, which model providers refuse. In our data, 63 of 83 failed image-to-video runs were policy refusals. Very short prompts also went with more failures. Try a photo without people, a longer motion prompt or a different model.
What photo resolution works best for image-to-video? Use the original file, at least 1,080 px on the short side. Photos of that size finished 84% of the time in our data, against 60% for photos under 720 px. Low resolution itself rarely causes a refusal, but re-saved screenshots of people often do.
Which aspect ratio should my photo be? The one you want the video to have, since the clip usually keeps your photo's shape (53 of 62 measured clips). Use 9:16 for TikTok and Reels. Tall photos finished 79.5% of the time and wide 16:9 photos 72%.
Does a longer prompt help image-to-video? Yes. With a photo, prompts of 11 words or more finished 86% of the time, against 50% for 10 words or fewer. Describe what moves, the camera move and what must stay unchanged.
Do I lose credits when image-to-video fails? Not on Viralance. Failed and refused generations are refunded automatically, and requests blocked by our own check before generation are never charged.
Data: Viralance production records and input-photo measurements, 29 January – 1 October 2026. Prices from the live catalog, checked 1 October 2026.










