[分享创造] 做了一个 Chrome 扩展 Grok Automation,让 Grok Imagine 可以批量跑图跑视频

起因

我自己日常在 grok 上用 Grok Imagine 出图、出短视频,主要是给 YouTube Shorts 做素材和给电商的 SKU 出测试图。

用着用着发现一个很尴尬的事:grok 的网页只能一条 prompt 一条 prompt 地提交,出图要等,出视频更要等, 而且每生成完一个还得手动右键「另存为」,文件名还都是 (1).mp4(2).mp4 这种鬼东西。

我一晚上能写 80 条 prompt ,但真要把它们全跑完、再整理好,得我守着电脑两三个钟头。 这种活,机器干显然比人干合适。

思路

xAI 那个官方的 Grok Tasks 只能做「定时让 Grok 帮你跑一次问答然后邮件给你」, 完全不解决我这种「批量生成媒体文件」的场景。

所以路线只有一个:写个 Chrome 扩展,注入 content script ,接管 grok 的 UI ,自己点自己等自己存。 后来这个扩展我起名叫 Grok Automation,下面把几个有点意思的实现细节说一下。

实现里几个有点意思的点

  1. DOM 变化用 MutationObserver 兜底 grok 的前端是 SPA ,按钮、loading 状态、生成完成的标记都是异步出现的。 一开始用 setTimeout 轮询,跑 50 条以上就开始飘。后来全部改成 MutationObserver 监听特定容器,配合一个状态机,稳定性才上来。

  2. 智能延迟,不是固定 sleep 一开始我设的是「每条 prompt 之间 sleep 10 秒」,结果有些 prompt 5 秒就出完了在干等, 有些跑 30 秒还没好就被下一条挤掉。后来改成「等当前生成结束 + 一个小抖动」, 既不被限流也不浪费时间。

  3. 自动下载和命名 chrome.downloads API 可以指定 filename,所以我把每个 batch 命名成项目名, 图片 / 视频 / metadata 全部塞到 Downloads/<project>/ 下,给后期剪辑同事是一个文件夹直接拖。

  4. Concat 模式 Grok 的视频单条最长就那么几秒,我自己想要长一点的连续镜头, 就做了个「把前一段视频的最后一帧作为下一段的 frame 输入」的链式生成。 这个其实是 Grok Imagine 自己 frame-to-video 模式的一个自然组合,但手动操作太痛苦。

  5. 失败不中断队列 早期版本一个 prompt 触发 Grok 内部错误,整个队列就崩了。 现在是单条失败标记一下,继续往下跑,最后给一个 failed 列表,单独重跑就行。

目前覆盖的场景

五种 Grok Imagine 的输入模态全都做了批量:

  • Text-to-Video
  • Frame-to-Video
  • Ingredients-to-Video (多张图合成一段视频,做角色一致性比较好用)
  • Text-to-Image (支持 16:9 / 9:16 / 1:1 / 2:3 / 3:2 五个比例)
  • Image-to-Image

一些坑 / 限制

  • 网页改版:grok 改 DOM 我就得跟着改 selector ,这是无法避免的副作用, 上次他们改 video player 我加班改了一晚上。
  • 限流:免费账号一天能跑的量是有上限的,扩展并不能绕过这个, 只能在限流之内把节奏调到最快。
  • 只跑 grok:x 里嵌入的那个 Grok 不在范围内, 那边 DOM 完全是另一套,没必要重复造。

状态

  • Chrome Web Store 审核中。
  • 完全在本地浏览器跑,prompt 和生成的图 / 视频都不离开你这台机器,没有 server 端收集。

求拍砖

主要想问几件事:

  1. 你们在做批量生成的时候,最痛的环节是什么?是 prompt 管理、还是结果筛选、还是后期重命名? 下一步我想加 prompt 模板和变量替换,但不确定是不是真痛点。
  2. 有没有人遇到过 grok 改版导致自动化挂掉的情况,你们一般怎么做兼容性兜底?
  3. 现在 UI 是「贴一列 prompt 然后按 Start 」,有没有更优雅的交互范式可以参考?

落地页和扩展入口在这里,欢迎吐槽(包括落地页文案,我自己看好几遍都看吐了): 👉 https://grok-automation.com/chrome-extension/

谢谢老哥们。