AI City Remix 参赛指南:用 MiniMax M3.1 Flash 做一部城市故事视频
AI City Remix 怎么参赛?规则、评分权重、7 个官方 Skill 怎么选,以及我们用 MiniMax M3.1 Flash 给维也纳写脚本的实测:不到 1 美分,但有 6 处要改或补出处。

我们用 city-through-time 这个 Skill 跑了一遍维也纳,让 MiniMax M3.1 Flash 来写脚本。9 次 API 调用,总共花了 $0.0087。生成的 story.json 通过了 Skill 自带的校验,也渲染出了真实的 OpenStreetMap 街道。
问题在字幕里。它说维也纳中世纪老城在多瑙河北岸,说 1857 年的环城大道法令把 19 个郊区划进了市区,还把一张「新议会维也纳」的卡片钉在了离议会大厦约 11 公里的地方。
一次实测,基本就把 AI City Remix 的门道摆出来了:模型写得又快又便宜,准确性这一项能拿几分,取决于你事后核对了多少。本文写给准备参加 AI City Remix 的开发者和创作者。这是 SandBase 的城市故事视频挑战赛,2026 年 10 月 22 日开始,10 月 28 日截止。下面讲清楚四件事:哪些规则真正限制你的做法,评分权重该怎么影响你的工作流,7 个官方 Skill 怎么选,以及 M3.1 Flash 当「导演模型」到底靠不靠谱。
AI City Remix:先说结论
- 作品是一支 60–180 秒的 MP4,720p 及以上,中文或英文,视频里要带字幕。题材是地球上任意真实的地方,必须通过 SandBase 用 MiniMax M3.1 Flash 来导演。截止时间是 10 月 28 日 23:59 UTC。
- 奖金池 $11,500,以 SandBase 余额发放:一等奖 1 名 $3,000,二等奖 3 名各 $1,000,三等奖 5 名各 $500,荣誉奖 30 名各 $100。
- 评分里 AI 工作流占 30%,准确性占 25%。流程越自动化越加分,前提是自动产出的事实都经过核对。
- 我们的维也纳实测:M3.1 Flash 开
reasoning_effort: "low",9 次调用写完 8 个时代,花费 $0.0087。旁白和插图在花钱之前,Skill 就先估出了 $0.69。 - 脚本里仍有画面上就能看出来的错:年代不对、卡片位置偏了、1910 年那一段用的是今天的行政边界。时间要留给核对,不是留给生成。
活动要求一览
活动主题很开放:「Pick a City. Let AI Tell Its Story.」从超大城市到小村庄,任何真实的地方都行。角度也随你:历史、美食、一条街、地铁、数据、未来都可以。做工具的人也能参赛。你做的工作流、Skill 或地图动画工具,配一段 60–180 秒、用它讲一座城市故事的演示视频,就算一份作品。
AI City Remix 活动首页,2026-10-23 截图:奖金池 $11,500,10 月 22 日开放提交,下方列出时长、模型、题材三项核心要求。
真正会影响你怎么做的规则不多,放在一张表里:
| 规则 | 活动页原文要点(2026-10-23 核对) |
|---|---|
| 时间 | 10 月 22 日 00:00 UTC 开放;10 月 28 日 23:59 UTC 截止上传;10 月 31 日公布结果 |
| 格式 | 60–180 秒,MP4,720p 及以上,中文或英文,视频内带字幕 |
| 模型 | 通过 SandBase 用 MiniMax M3.1 flash 导演,上传时勾选声明 |
| 题材 | 任意真实地点、任意角度;工作流和工具配演示视频也算 |
| 内容 | 必须原创;不能用有版权的影视和音乐,不能出现在世的真人;地图要合法合规 |
| 次数 | 不限投稿数量;每个账号只拿一个奖,取最高的那个 |
| 审核 | 新作品一天内审完;截止前可以修改或撤回 |
想要曝光的话,还有两个小机制。10 月 23 日到 29 日,每天 00:00 UTC 会选出 5 部「今日城市故事」,每部附一段短评。每天还能在活动页领取 $5 创作额度。我们上午截图时,页面写的是 10 月 22 日到 28 日每天放出 100 张码、每个账号限领一张、有效期 7 天;到了晚上,页面只写「每日创作额度」了。审核通过的作品会点亮地图上对应的城市,一座城市的第一部通过作品,作者会成为这座城市的「首位讲述者」。我们截图时只有一部作品《Paris: Rings of a City》,大部分城市还空着。
评分权重决定了你该怎么搭
大多数创作比赛只评片子,这个比赛把 30% 给了片子背后的工作流。该在哪儿下功夫,也就跟着变了。
规则页,2026-10-23 截图:奖金以 SandBase 余额发放(不可提现,12 个月有效),评委来自 MiniMax、SandBase 和社区。
| 评分项 | 权重 | 页面怎么说 | 落到实操上 |
|---|---|---|---|
| AI 工作流 | 30% | 人工干预越少、自动化越多越好;新的工作流、Skill 或工具;开源加分 | 整条流水线脚本化,并把它开源 |
| 准确性 | 25% | 事实、地点、人名、日期;来源可靠 | 屏幕上每一句话都要有出处 |
| 故事与制作 | 25% | 画面、地图、节奏、城市的温度;动人的「我和这座城」额外加分 | 一个清楚的角度胜过十条史实 |
| 传播 | 20% | 在其他平台的播放和互动,加上评委对潜力的判断 | 发到你的受众本来就在的地方 |
矛盾在前两行。人工步骤越少,工作流分越高;可每一句没核对的模型输出,都在拿准确性冒险。我们的判断是:好作品连核对也自动化了,不只是把写作自动化。chronicle-ink 这个 Skill 就是这个思路,渲染之前,它把每条字幕都绑定到跨多家出版方交叉核对过的事实上。如果你针对自己的角度做一条同样会自核的流水线并开源,两头的分都能拿到。
从哪个 Skill 起步
活动给了 7 个现成 Skill,分三个方向。我们第一次截图时是 6 个,city-grows-3d 是 10 月 23 日稍晚加上的。用不用都行,FAQ 写得很明白:只要是 M3.1 Flash 在导演,什么工具链都可以。不过它们仍是做出合格作品最快的路。各自的差别也比缩略图上看起来大。
| Skill | 方向 | 产出什么 | 要注意 |
|---|---|---|---|
| city-through-time | 穿越时间 | 带旁白的 1080p 地图影片:一座城市在今天的 OSM 地图上逐代生长 | 轮廓是推测复原;只适用于仍然存在的城市 |
| rome-through-time | 穿越时间 | 跨时代的 3D 城市场景、交互 demo、1080p 影片 | 自带影片只有 25 秒 |
| chronicle-ink | 穿越时间 | 基于 OSM 建筑和 Wikidata 地标、逐条核实的 3D 城市传记片,附双语事实报告 | 需要 OSM 建筑数据比较完整的城市 |
| city-grows-3d | 穿越时间 | 带旁白的 1080p 3D 影片,每栋建筑在有记录的建成年份升起(OSM 轮廓加 Colouring Cities 建筑年代数据) | 需要开放的建筑年代数据,否则大部分建筑只能以灰色升起 |
| manhattan-miniature | 3D 城市 | React + Three.js 微缩城市,昼夜切换和地标飞行 | 不调用任何模型;地图是艺术化压缩的 |
| architecture-night-day | 光影建筑 | 精细 3D 地标建筑、昼夜滑块、1080p 影片 | 自带影片只有 20 秒 |
| stone-stars-city | 光影建筑 | 围绕一座地标的绘本风 3D 微缩城,带配乐影片 | 自带影片只有 24 秒 |
最后一列是实际的坑。三个 3D 场景类 Skill 录出来的片子只有 20–25 秒,离 60 秒下限差得远。你得延长章节、串几个镜头,或者加一段带旁白的内容才能达标。city-through-time、chronicle-ink 这类带旁白的影片 Skill,本来就是围绕完整时长的脚本设计的,所以我们挑了 city-through-time 来实测。
city-through-time Skill 页面(v0.1.1),2026-10-23 截图:先给 Agent 一句话,然后依次是 resolve、media(先估价,再用 MiniMax Speech 2.8 HD 和 Qwen Image 3 生成)和渲染。
MiniMax M3.1 Flash 在这里干什么
在这类流水线里,M3.1 Flash 是导演,不是摄影机。它只写文本:时代规划、旁白、坐标、OSM 引用和插图提示词。几何来自 OpenStreetMap,声音来自语音模型,图片来自图像模型,每一帧画面都由代码渲染。city-through-time 的说明里直接写明了这个分工,做别的作品也可以照这个分工来。
正因为它只写文本,用一个便宜的文本模型当导演才说得通。MiniMax 给 M3.1 Flash 的定价是输入每百万 token $0.15、输出每百万 token $0.60,上下文窗口 1M。思考没法关闭,不传 effort 时默认是 max。模型本身的思考档位和厂商跑分,我们在 MiniMax M3.1 Flash API 与价格指南里写过。
Skill 自己的说明里还有一条操作规则,值得再强调一次:每次请求要小。先写顶层结构,再一次只写一个时代,effort 用 low,因为同步请求超过两分钟左右就会被断开。我们的对比测试也印证了这一点。默认档位下,M3.1 Flash 在 9 次时代请求里有 7 次把 16,000 token 的额度全花在思考上,一行 JSON 都没返回。完整数据,以及 GLM-5.3-Flash、DeepSeek V4.1 Flash、Gemini 3.8 Flash、Claude Sonnet 5.5 在同一任务上的表现,见城市脚本模型实测。
维也纳实测全过程
10 月 23 日,我们在本地跑了 city-through-time v0.1.1,城市选了当时还没有作品的维也纳。一个小 Python 脚本照着 Skill 的写法来:先请求一次顶层结构和 8 个时代的规划,再每个时代单独请求一次。全部请求都通过 SandBase 发给 minimax/minimax-m3.1-flash,reasoning_effort 设为 "low"。之后按文档跑了 Skill 的三个脚本:resolve,只估价不生成的 media,以及只出静帧的 film。
我们的运行日志,2026-10-23,由原始日志渲染:9 次 M3.1 Flash 调用耗时 133 秒、花费 $0.0087;三段城墙轮廓退回到模型手写的多边形;媒体估价 $0.69,一分钱没花。
日志里有几个数字值得细看:
- 写脚本的钱几乎可以忽略。 每次时代请求约 2,370 个 prompt token、463–1,570 个 completion token,单次 $0.0006–$0.0013。prompt 的大头是 Skill 的格式说明,每次请求都要带上。
- 真正花钱的是媒体,而 Skill 会先把账摆给你看。 不加
--confirm时,media.mjs给 10 段旁白(1,671 个字符,约 $0.167)和 13 张插图(约 $0.52)报了价,什么都没生成。Skill 页面给的参考是 8–9 个时代大约 $0.5–0.7。 - OSM 里查不到模型给的城墙名。 三个有城墙的时代,模型都引用了
Wiener Stadtmauer。OpenStreetMap 返回 0 个点,影片只能用模型手写的多边形兜底。环城大道的引用是成功的(554 条 OSM 线),现代行政边界也成功了。 - 没有旁白时,草稿片长 76 秒。 音频生成之前,每个时代默认 7.5 秒;有了音频,时长就变成旁白长度再加约 1.6 秒。76 秒落在 60–180 秒范围内,但生成音频后要再确认一次最终时长。
脚本质量要看静帧才看得出来。中世纪那一帧乍看没问题:真实街道,一块约 1.5 km² 的紧凑轮廓里亮着建筑。
草稿第 30 秒的静帧:轮廓是模型的兜底多边形,画在河的南侧;字幕却说聚落在多瑙河北岸。
把字幕和地图对着看,问题就来了。旁白说老城「1143 年从亨利二世公爵手里获得城市权」,还「位于多瑙河北岸」。Wikipedia 的 History of Vienna 写的是:1155 年亨利二世把维也纳定为都城,1156 年奥地利升格为公国,1221 年维也纳获得城市权。1143 年获得城市权,我们没找到任何出处;而且亨利二世到 1156 年才成为公爵。老城其实在河的右岸,也就是南岸,模型自己画的轮廓也在那里。
第 50 秒的静帧:「A New Parliamentary Vienna」卡片钉在议会大厦以北约 11 公里处,字幕把两次不同的扩张混成了一句。
花钱生成媒体之前,我们标出的问题如下:
| 时代 | M3.1 Flash 写的 | 来源怎么说 | 怎么改 |
|---|---|---|---|
| 罗马时期 | 年份标「c. 15 BC」;旁白说「公元前一世纪之交」 | Vindobona:约公元 97 年由第十三双子军团修建军团营地 | 改年份,改旁白 |
| 中世纪 | 1143 年亨利二世公爵授予城市权;在多瑙河北岸 | 1155 年定都,1156 年升为公国,1221 年获得城市权;老城在南岸 | 改成围绕 1155 年或 1221 年来写 |
| 1857 | 这次扩张「把 19 个郊区划进了维也纳」 | 内郊(第 2–9 区)是 1850 年并入的;1857 年的法令是拆城墙(Ringstraße) | 拆成两条分别讲 |
| 1857 | 议会卡片坐标 48.3068, 16.3638 | 奥地利议会大厦:48.2081, 16.3587,相距 10.99 km | 坐标直接取 Wikidata |
| c. 1910 | 轮廓用的是今天的 Wien 行政边界 | 据 History of Vienna,市界 1938 年变过,1954 年才定下来 | 换成当时的轮廓,或者合并这一段 |
| c. 500 BC | 点名一个在南岸定居的凯尔特部落 | 我们没在可信来源里查到 | 找到出处,或者删掉 |
这些问题校验器一个都没拦下来,它本来也不负责这个。resolve.mjs 只检查格式、拉取几何数据。Skill 的「失败边界」一节里也明说了:语言模型会把事实和坐标弄错。我们这次就是:格式全部通过,却还有 6 处需要改正或补出处。
一套贴合评分的核对流程
改一句话最便宜的时机,是在 media.mjs --confirm 之前。过了这一步,每句错的旁白都得删掉对应的 mp3,再付一次钱重新生成。不管做哪个城市,我们都建议跑这样一轮:
- 让模型给出处,然后自己去查。 每个日期、每个人名旁边都要求导演模型附一个来源链接。链接里找不到这条说法,就当作没有来源。
- 坐标从数据里取,不靠模型记忆。 Wikidata 的坐标属性(P625)一次请求就能给出一个地标的精确位置,把每个
events[].at都换掉。 - 相信兜底轮廓之前,先查 OSM 名字。 如果
resolve.mjs报「too sparse (0 points)」,屏幕上那条轮廓就是模型画的。去找 OSM 里的真实名称,或者沿着旧城墙走向修的那几条大道。 - 小心老时代套用现代边界。 行政边界是今天的样子,拿来给 1910 年用,影片就会显示一次当时还没发生的扩张。
- 在高风险的时代出静帧。
film.mjs --stills只吃 CPU,不花钱。卡片位置错了,在画面里一眼就能看出来,JSON 校验却永远发现不了。 - 把这套核对自动化,再开源。 能自动完成第 1–4 步的脚本,正是 30% 的工作流评分想奖励的东西,开源还额外加分。
测试范围先说清楚:一座城市,一个 Skill,同一天跑的 9 次调用。我们没有生成音频和图片,没有渲染完整影片,也没有提交作品。上面的错误清单只对应这一份脚本。换成你的城市,错误会不一样,但不会是零。
常见问题
AI City Remix 是什么活动?
SandBase 的城市故事视频挑战赛,奖金池 $11,500,时间是 2026 年 10 月 22 日到 28 日,10 月 31 日公布结果。参赛者任选一个真实的地方,提交一支 60–180 秒、带字幕的 MP4,并且要通过 SandBase 用 MiniMax M3.1 Flash 来导演。
一定要用官方 Skill 吗?
不用。活动 FAQ 说了,只要是 M3.1 Flash 在导演,什么工具链都行。官方 Skill 只是做出合格作品最快的路,其中两个地图影片类 Skill 本来就能直接出完整时长的片子。
做一部作品要花多少钱?
我们的维也纳实测里,用 M3.1 Flash 写脚本,9 次调用共 $0.0087。旁白和插图 Skill 估价 $0.69,Skill 页面给的 8–9 个时代参考价是 $0.5–0.7 左右。渲染在本地 CPU 上跑。如果核对得晚、要重新生成片段,还得加上这部分费用。
可以只提交工具,不交影片吗?
可以。工作流、Skill 或工具都算,只要附一段 60–180 秒、用它讲一座城市故事的视频,并附上源码链接。开源会在 AI 工作流这一项额外加分。
奖金怎么发?
结果公布后 7 个工作日内,以 SandBase 余额发放。余额不能提现,12 个月内有效。每个账号只能拿一个奖,取最高的那个。
AI City Remix 奖励的是一条信得过的流水线,光是跑得快还不够。M3.1 Flash 把写脚本这一步的成本压到几乎为零,省下的时间正好用在评委同样看重的地方:让屏幕上的每个日期、人名和地标都是对的。选一座城市,跑一遍 Skill,付钱生成任何一段旁白之前,先看看静帧。