我正在搞一个原型,需要从视频流里拉取数据,并快速生成一个 API 后端,结果搞到一半卡壳了。按我平时的套路——手动起一个 FastAPI 服务器,然后再死磕视频抽帧,这怎么也得折腾好几个小时。之前老听说 Google 新出的 Gemini 3.5 系列和 Omni 的视频能力有多神,所以我就想试试,看 Google I/O 上吹的牛到底值不值得我花时间去踩坑。
提前剧透:有些功能确实惊艳到我了,但也有些气得我直接想关浏览器。下面是我真实的上手体验,包括我踩过的坑和摸索出的解决办法。
痛点:速度太慢,多模态太折腾
我的核心诉求很简单:我需要一个写代码不摸鱼的模型(响应得快),而且我需要它能直接理解视频,别让我写上百行的预处理代码。Gemini 3.5 系列承诺的正是这些。Flash 是他们主打速度的编程模型,而 Omni 是他们的多模态生成引擎,据说不仅懂物理、科学和文化背景,还能让你像聊天一样修改生成的内容。
准备工作:搞懂工具在哪
在敲代码之前,你得先搞清楚这些工具到底藏在哪。Google 把它们散布在好几个平台上,真的挺绕的。这里给你整理了一份最省事的上手指南:
- Google AI Studio:这就是你的沙盒。你可以免费用它的网页界面测试提示词。打开 aistudio.google.com,登录,然后在模型下拉菜单里选 Gemini 3.5 Flash 就行。
- 免费 API Key:在 AI Studio 左侧边栏点“Get API Key”。你会拿到一个适配 Google GenAI API 的密钥,3.5 Flash 和 Omni 都有相当充裕的免费额度。
- Gemini CLI:如果你跟我一样是终端重度用户,可以装个 Gemini CLI(
npm install -g @anthropic-ai/gemini-cli——没错,这命名确实挺迷的,但目前包名就是这个)。配上你的 API Key,就能当本地编程助手用了。 - Antigravity 2.0:这是 Google 搞的智能体 IDE。那些深度的编程工作流都在这儿,但目前还在逐步开放中。我后面的体验会细说。
工作流 1:用 Gemini 3.5 Flash 生成 API
我决定先测测 Flash 的编码功底,让它帮我写个需要的 REST API。我打开 Google AI Studio,丢进去这么一段提示词:
写一个 FastAPI 应用,包含以下接口:
1. 接受视频 URL 上传
2. 使用 OpenCV 每隔 5 秒提取关键帧
3. 将元数据存入 SQLite
请包含所有必要的 import 语句和一个 Dockerfile。
第一感觉就是:快。Flash 真是人如其名——大概 4 秒钟就生成了整个应用,差不多 120 行 Python 代码。比起用那些大模型等个 15-20 秒才憋出同样的东西,这简直让人感动。
但这里我踩了第一个坑:我没指定 Python 版本。它生成的代码用了 match 语句,这是 Python 3.10+ 才有的语法。而我的部署环境跑的是 3.9。在本地运行报语法错误时,我才发现这个问题。
我接着补了一句:“确保兼容 Python 3.9。” Flash 瞬间就把 match 语句改成了 if/elif。修改后的 API 一次就跑通了。代码写得不算优雅——非常实用主义,样板代码一堆——但功能上没毛病。
大实话总结:Flash 确实快到能改变你的工作流。生成速度这么快,你完全可以通过不断调整需求来迭代,而不是在第一次写提示词时过度设计。这就好比手底下有个一分钟能打 500 字的初级程序员,虽然偶尔得靠你来纠正他对运行环境的想当然。
工作流 2:用 Gemini Omni 理解和生成视频
这就到了有意思但也让人抓狂的环节了。Gemini Omni 的宣传点是“允许你从任何输入创建任何内容,并使用对话语言自然地进行编辑”。它把对物理的理解与 Gemini 在历史、科学和文化背景上的知识结合在了一起。
我想用 Interactions API 测测它的视频生成和编辑能力。我先试了个简单的生成提示词:
import google.generativeai as genai
genai.configure(api_key='YOUR_API_KEY')
# 使用 Omni Flash 进行快速对话式视频生成
model = genai.GenerativeModel('gemini-omni-flash')
prompt = """
生成一段5秒的慢动作视频:一杯水从桌子上被碰倒。
玻璃杯碎裂的效果要逼真,水花向四周飞溅。
光线要温暖,就像傍晚的阳光透过窗户照进来。
"""
response = model.generate_content(prompt)
print(response.text)
第一个意外来了:API 调用没报错,但它返回的是一段文本描述,描述它将要生成什么样的视频,而不是直接把视频给我。我漏看了文档里很关键的一步——你需要显式指定视频输出模态,并且要处理异步生成的流程。
翻完文档后,我找到了使用 Interactions API 的正确姿势:
from google.genai import interactions
session = interactions.start(
model="gemini-omni-flash",
modalities=["VIDEO", "TEXT"]
)
result = session.send(
"生成一段5秒的慢动作视频:一杯水从桌子上掉下去。"
)
# 视频以可下载的 URL 形式返回
video_url = result.media[0].url
生成大概花了 45 秒。结果如何?物理效果确实惊艳——水花飞溅的抛物线轨迹很真实,玻璃碎片的散落也合情合理。但是,玻璃杯本身看起来有点半透明,而不是完全透明的;而且那种“傍晚的温暖阳光”看起来更像是套了个廉价的橙色滤镜。
这时候就该 Omni 的对话式编辑大显身手了。我发了条跟进指令:
把玻璃杯改成完全透明,带有锐利的高光反射;
让光线感觉更自然——少点橙色,
多点黄金时刻的柔和阴影。
大概 30 秒后重新渲染完了。玻璃杯好多了——有了真正的透明感和光线折射。光影也改善了,阴影边缘更柔和了。虽然还不完美,但这种迭代循环真的很好用。我不需要把整个场景重新描述一遍,只要告诉它我想改哪里就行。
Omni 真正的闪光点:理解物理上下文。后来我让它生成“一个罗马士兵在雨中试图生火”,它准确地渲染出士兵在使用摩擦生火法,而不是穿越地用上了打火石和钢铁。这种文化和历史知识的融合是真的顶。
工作流 3:Antigravity 2.0(还没完全烤熟体验)
我搞到了 Antigravity 2.0 的体验资格,这是 Google 集成了 Gemini 3.5 Flash 的智能体 IDE。它的愿景是:模型不再只是建议代码,而是作为一个智能体,阅读你的代码库,跨文件修改,还能跑测试。
我给了它一个真实任务:“用 JWT 令牌给我现有的 FastAPI 应用加上身份验证。创建 auth 模块,更新 main.py 引入中间件,还要写测试。”
Antigravity 读取了我的项目结构,创建了 auth.py,修改了 main.py,还生成了 test_auth.py。整个“思考”过程大概就 20 秒。代码写得很扎实——用 python-jose 处理 JWT,用 bcrypt 正确地哈希了密码。
但接着我又撞墙了。测试文件里引用了一个根本不存在的 conftest.py。Antigravity 知道需要这玩意儿,但就是没建。我让它生成这个缺失的文件,它倒是生成了——但里面用的数据库 fixture 跟我现有的测试设置冲突了。
这其实是目前所有智能体编程工具的通病,不光是 Antigravity:前 80% 的工作干得漂亮,但最后 20% 的集成细节往往最要命,它们就是搞不对。最后我还是自己动手写了那个 conftest.py。
实用建议与诚实的局限性
跟这些工具死磕了一整天后,有些话我真希望一开始就有人告诉我:
真正管用的建议:
- 一定要提前说清楚环境限制。 Python 版本、操作系统、依赖版本——Flash 会自己做主,而且经常猜错。
- 迭代用 Omni Flash,别用完整版 Omni。 Flash 变体快到足以支撑有来有回的对话修改。完整版 Omni 是留给你需要最高画质时的最终渲染的。
- 写小脚本别低估了 Gemini CLI。 现在遇到一次性的代码生成,我都不切到 AI Studio 了,直接用它。只要确保你的
.gemini配置文件里填了 API Key 就行。 - Omni 编辑视频,一次只改一处。 在一个提示词里要求“把光线调暖,修一下玻璃杯,再加只猫”,出来的绝对是一团糟。一轮对话只改一个地方,效果才好。
诚实的局限性:
- Omni 生成的视频在时长和分辨率上仍有局限。 别指望能稳定生成超过 10 秒或 720p 以上的视频。这是个做原型的工具,不是工业级的视频生产线。
- Antigravity 2.0 潜力很大,但不稳定。 现在还替代不了你手头的 IDE。拿它搞搞从零开始的新项目还行,别在复杂的现有代码库里用它。
- 文档太散了。 Google 把信息拆分到了 AI Studio 文档、GenAI SDK 参考以及各个工具的单独指南里。做好深挖的准备吧。
- 免费额度的速率限制是硬伤。 我大概一小时生成了 15 个视频后,就触发 Omni 的生成限制了。测试的时候悠着点。
总结一下:Gemini 3.5 Flash 在编码速度上真不是吹的——它实打实地改变了我做 API 原型的方式。Omni 很迷人,但感觉还在 Beta 阶段;对话式编辑循环才是它的杀手锏,而不是原始的生成质量。至于 Antigravity?我会持续关注,但暂时还没打算把现在的开发环境换掉。潜力是有,但执行层面还得再迭代一版。