跳到正文
DEV Community· 王瑞·· 2 小時前AI 評分53

Day of the Dead Pet AI 的交付檢查:生成 MP4 不等於交付可用結果

A generated MP4 is not a delivered result: checks from a pet memorial tool

AI 導讀

Day of the Dead Pet AI 的維護者分享寵物紀念影片的交付檢查方法,指出供應商顯示任務完成,並不代表用戶能取得可播放的完整檔案。Seedance 2.0 Mini 經 EvoLink 生成的範例採用 9:16、原生 720p,量得容器片長為 10.08 秒;實際部署的 Worker 測試中,私有檔案保存、完整下載及部分範圍播放正常,匿名請求遭拒。

正文

A dog can cross a glowing flower bridge in an AI-generated clip, yet the user can still end up with an unusable download. The provider's completed status only answers one part of the delivery problem.

I build and maintain Day of the Dead Pet AI, a photo-to-video remembrance project. I used fictional animal photographs for development. This is a report from that implementation, with AI-assisted writing and code preparation, rather than an independent product review.

Start with the visible result

The main scene asks one recognizable dog or cat to approach a low camera on a luminous marigold bridge. The separate ofrenda scene keeps the portrait in a frame while flowers and candlelight move around it. Those two outputs need different visual checks.

Open the complete fictional golden-retriever example, including the ending. Our request used Seedance 2.0 Mini through EvoLink, 9:16 and native 720p. Its measured container duration is 10.08 seconds, slightly beyond the requested ten seconds.

Three boundaries that need separate evidence

Boundary Evidence What it does not prove
Provider task Completed task with a retrievable file Correct paws, likeness or original soundtrack
Private storage Saved output whose full-file hash matches That the owner can play it through the actual result route
Authenticated delivery Owner playback, complete download and byte range That another account is correctly denied

The application saves the original completed output into private storage. A stable account result page points to an authenticated delivery route. Public sample previews are different files optimized for display; they do not replace the customer's original download.

We tested the actual deployed Worker reading an already-approved completed task. It saved a private copy, returned the expected whole file and supported a partial-range playback request. Anonymous access was rejected. No new paid generation was needed for that delivery check.

A small local inspection helper

I published pet-memorial-video-checks, a standard-library Python script that invokes an installed FFmpeg binary. It makes no network request and bundles no photographs or credentials.

python3 inspect_clip.py your-pet-video.mp4

For our permitted golden-retriever sample, the output was:

{"width":720,"height":1280,"duration_seconds":10.08,"has_audio":true}

This can catch the wrong dimensions, an unexpectedly short container or a missing audio stream. It cannot recognize the pet, count anatomically correct legs or certify a music license. Keep metadata checks and visual review separate.

If FFmpeg is outside PATH, set FFMPEG_PATH to the installed executable. The repository includes the exact runnable helper and explains its boundary; it is not a hosted generation API.

Partial playback is part of the product

A whole-file GET passing is insufficient for a phone player. Check a request with Range: bytes=0-1023: a working partial response should have the expected range semantics and media type. Also check a full download; a valid first kilobyte cannot establish that the tail exists.

Do those checks using the real authorization boundary. A public sample URL working does not test a private result. Test the owner, a different signed-in account and an anonymous request against the same result. Do not expose the private address or authentication cookie in a public issue or article.

Success, quality and failure are different states

Across our two remembrance projects, an initial eight-scene batch completed. A later three-task revision completed twice and was rejected once for possible copyrighted or trademarked content; the rejected revision was not charged or retried. That small set is development evidence, not a success-rate benchmark.

The rejected crystal-gate revision did not invalidate the separate earlier gate sample, nor did the earlier sample prove the revision worked. Keeping versioned observations prevents that tempting but incorrect shortcut.

For a walking pet, I inspect ears, muzzle, collar, fur pattern, all paws, ground contact and the ending. For the ofrenda scene, I check that the original portrait stays stable instead of turning into another animal. A static photograph with gentle environmental motion is sometimes the better creative choice.

Keep the customer's next action clear

Confirmed technical failures restore charged credits once. Severe visual defects go through a separate review process; they are not automatically classified as transport failures. The result page can be reopened from the account, and users should save their original MP4 before the thirty-day result window ends.

The related adult-portrait project, Marigold Bridge AI, uses the same distinction between a task, a private file and an accessible result. Its twelve-second flower-bridge scene has different inputs and visual checks. Accounts and credits belong to their respective sites.

The useful engineering question is: can the right person receive and inspect the complete file while everyone else is denied? A provider's green task status cannot answer that by itself.

Disclosure: I operate the linked projects. All development examples discussed here use fictional subjects and original generated ambience, with no customer media or viral recorded song. Product facts were checked on October 28, 2026.

來源:DEV Community · dev.to