大多数图生视频工具都会公布输入限制,但多数人直到上传失败才想起来看。帮朋友用照片做一段短视频之前,先在本地跑一遍检查,能省掉大量“为什么我的图传不上去”的追问。

这里有一段小脚本,拿一叠照片对照公开的限制逐条核对,能自动修的两件事(方向和文件大小)直接修掉,剩下的标出来。限制取自 GangnamStyleAIVideo.org 公布的规格——一个专门做“江南Style AI 三人组”趋势的网页工具,规则写得很清楚,放在它的 llms.txt 里。换任何工具都行,改几个常量即可。

要检查的四条规则

按该站点公布的口径:每段视频用三张照片,每张一个人,或者一张三个人的合影。每个文件必须满足:

  • 格式为 JPG、PNG 或 WebP
  • 不超过 4 MB
  • 每边 300 到 5760 像素
  • 宽高比在 0.4 到 2.5 之间

只收照片,不收视频、音频或文字输入。这四条都是机械规则,脚本能查。

环境只要 Pillow

装依赖一行:python3 -m pip install Pillow。脚本里定义允许的格式集合、4,000,000 字节上限、300 与 5760 的边长区间、0.4 与 2.5 的宽高比区间,然后对目录里每个文件跑一遍 check,把问题收集成列表。

检查逻辑是:先看文件字节数,超了就记一条;再用 Pillow 打开,格式不在白名单里记一条;接着做 EXIF 方向校正,取校正后的宽高判断边长和比例。主程序遍历目录,跳过子目录,打不开的文件直接 SKIP,没问题的打 OK,有问题的打 FIX 并尝试修复,修完再查一遍,输出结果。

运行方式:python3 preflight.py ./photos。

每一步为什么这么写

EXIF 方向校正不能省。手机经常把竖拍照片存成横向像素加一个方向标签,直接量原始像素,比例会算反。先应用 EXIF 旋转,才是按人眼看到的样子去判断;修复后的副本把旋转“烤”进像素,下游不用再解释那个标签。

4,000,000 字节这个上限是刻意从严的。“4 MB”可能指 4,000,000 字节,也可能指 4×1024×1024,服务器用哪个不清楚,脚本取更严的那个。误报一次没有代价,手机上被拒一次很烦。

缩放到 2048 像素:现代手机照片长边能到 4000 像素以上,体积也轻松超过 4 MB。把长边压到 2048,同时远离体积和像素两道限制,作为人脸参考又足够清晰。thumbnail 会保持比例,也不会放大。

脚本修不了的情况:某边低于 300 像素,或者比例极端(聊天截图、全景图),缩放救不回来,只能换照片。脚本会报出来然后跳过,不去猜一个裁剪方案。

脚本查不了的三件事

机械规则是最容易的部分。这类三人视频还有需要肉眼确认的要求:

  1. 每张照片一个人,脸朝镜头,胸部以上就够。若改用一张合影,必须正好三个人并排、每张脸都可见、画面里没有别人。
  2. 顺序有讲究。工具从左到右读合影,中间的人拿手机先唱。用分开的照片时,每个人有自己的位置(中、左、右),上传前先定好谁站中间。
  3. 同意。照片里的人必须是你本人,或是同意出镜的成年人。名人和公众人物的照片不允许使用,站点在渲染前会要求确认同意。

这三条直接写进向朋友要照片的那条消息里。

付费之前先跑一遍

该工具没有免费额度:19 秒 Standard 480p 视频要 100 积分,最小套餐是 9.99 美元 100 积分。渲染失败积分会自动退回余额,但一次就把输入弄对更省事。输出是 16:9 的 MP4,配原创节拍,发布时再到 TikTok 上叠加趋势音效。

脚本故意写得很小:复制走,把常量换成你手头工具的限制,对着朋友照片落地的那个文件夹跑一遍就行。