注意: 本文的所有代码可在此 GitHub 仓库中找到。
下载视频
上述代码会等待视频生成完成,然后打印视频的 URL。我们也可以使用下方的 download_video() 函数下载视频:
import requests
from pathlib import Path
from urllib.parse import urlparse
def download_video(url: str, output_dir: str = "."):
# Extract filename from URL
filename = Path(urlparse(url).path).name
if not filename:
raise ValueError("Could not determine filename from URL")
output_path = Path(output_dir) / filename
with requests.get(url, stream=True) as r:
r.raise_for_status()
with open(output_path, "wb") as f:
for chunk in r.iter_content(chunk_size=8192):
if chunk:
f.write(chunk)
print(f"Video saved to {output_path.resolve()}")
定义此函数后,调用 download_video(response.url) 即可将视频下载到您的工作目录。
带视频下载的完整示例可在仓库中查看。
使用 Grok Imagine API 生成视频
我们已学习如何通过 xAI API 从文本生成视频。接下来将探索该模型的完整能力。更多信息可随时查阅xAI 文档。
探索视频生成选项
使用 Grok Imagine 生成视频时,可设置三项主要选项:
-
duration:视频时长(秒),取值1至15。 -
aspect_ratio:视频纵横比。支持以下比例:"1:1"、"16:9"、"9:16"、"4:3"、"3:4"、"3:2"和"2:3"。 -
resolution:视频分辨率,可选"720p"或"480p"。
以下是如何在 API 请求中设置上述选项的示例:
prompt = """
A person stands holding their phone, gazing at a stunning landscape
photo on the screen. The image begins to subtly move and glow.
Suddenly, the phone pulls them in, and they are sucked through the screen,
transitioning seamlessly into the vast, breathtaking landscape itself.
"""
response = client.video.generate(
prompt=prompt,
model="grok-imagine-video",
duration=15,
aspect_ratio="9:16",
resolution="480p",
)
结果如下:
至少可以说,这个结果并不令人满意。
从图像生成视频
许多 AI 图像生成模型的一大强项是它们可以从图像生成视频。只要有一张基础图像,这一流程就能更容易地制作风格一致的视频,因为模型只需生成运动部分。
想象一下,您希望制作一段包含特定角色或人物的视频。按理说,提供图像至少能保证角色的一致性。
要从图像生成视频,请在参数中使用 image_url,并传入所用图像的 URL。根据文档说明,提供图像时,它会被用作视频的第一帧。但需要确保其与请求的纵横比一致。
我尝试用下面这张不久前拍的照片生成一段第一人称视角(FPV)无人机在海滩上拍摄人们骑马的视频。注意,由于需要以 URL 形式提供图像,我们必须先将其上传到某处。我这里使用了与本文关联的 GitHub 仓库。
prompt = """
A FPV drone shot of the people riding the horses on the beach.
"""
response = client.video.generate(
prompt=prompt,
model="grok-imagine-video",
image_url="https://raw.githubusercontent.com/fran-aubry/grok-imagine-tutorial/refs/heads/main/resources/horses.jpeg",
)
以下是 Grok Imagine 生成的视频:
视频中有明显的 AI 伪影,比如物体重复。尽管如此,模型还是理解了我们想要的镜头类型。
这里还有一个尝试把图像变成延时摄影的例子。我试了两次,因为第一次的结果凭空加了一栋原图中不存在的建筑。
第二次比第一次更成功一些,但仍充满了 AI 伪影。
第三个例子,我想看看 Grok Imagine 如何处理镜头运动,于是让它把一张照片做成向主体推进的变焦动画。在我看来,这个效果最好。
使用 Grok Imagine API 编辑视频
Grok Imagine 允许您基于文本提示编辑现有视频。其工作方式与基于图像生成视频类似。我们将要编辑的视频以 URL 形式通过 video_url 参数提供,并用提示词描述需要的更改。
请注意,进行视频编辑时,输入视频的最长时长为 8.7 秒。
为测试这一功能,我用 Grok Imagine 生成了一段一个人抛接三个球的视频。
然后,我使用该视频的 URL 要求模型为球加上火焰。下面是编辑视频的请求。完整代码可在GitHub 仓库中查看。
prompt = """
Add fire to the balls.
"""
response = client.video.generate(
prompt=prompt,
model="grok-imagine-video",
video_url="https://vidgen.x.ai/xai-vidgen-bucket/xai-video-2109c762-efcb-415b-ab3c-661b1df113cd.mp4",
)
我还做了第三次编辑,请求将人替换成一只猫。结果如下:
最后一个例子,我用自己拍摄的一张星空照片作为起点。我让 Grok Imagine 在小径上加入两名徒步者,他们停下来仰望星空。随后,我将该视频作为输入,要求将其编辑为下雪场景。
这又是一个效果较差的例子。第一段视频中出现了一条与场景不一致的新小径。雪景编辑起初看起来不错,但后来我注意到背景保持不变,与已变为雪景的前景不一致。
结论
看到越来越多的视频模型提供 API 访问令人鼓舞,因为这确实拓展了我们从快速原型到完整流水线的构建与自动化能力。
Grok Imagine 的 API 部署与调用都相当简洁,但也存在一些摩擦点。最明显的是必须通过 URL 传入图像与视频,这让一些基础工作流(例如在本地素材上快速迭代)比必要的更繁琐。
实际使用中,我的结果与其宏大宣称相比并不理想:文生视频经常偏离预期,而图生视频会引入明显的伪影与不一致。它表现较好的领域是编辑,基于提示的更改更可靠、更可控。
Grok Imagine 的一个显著优点是速度。我用过很多 AI 视频生成模型,以我的体验看,Grok Imagine 迄今为止是速度最快的。
我对该领域的前景保持乐观,但目前 Grok Imagine 更像是一款很有潜力的编辑器,而非同类最佳的生成器。我也期待未来更新能拓展输入选项,并提升核心生成质量。
如果您想进一步了解 AI 视频生成所用技术,建议报名我们的AI Fundamentals 技能路径。
Grok Imagine API 常见问题
如何访问 Grok Imagine API?
要使用 Grok Imagine API,您只需一个 xAI 账户。您可以在xAI 控制台中生成 API 密钥。
使用 Grok Imagine API 生成视频的费用是多少?
价格同时取决于输入(每张图像 $0.002、每段视频 $0.01)与输出。按秒计费,480p 分辨率每秒 $0.05,720p 每秒 $0.07。
Grok Imagine API 具备哪些功能?
Grok Imagine API 支持文生视频、图生视频与视频编辑。您可以生成最长 15 秒,并带原生音频的视频片段。
如何在 Grok Imagine API 中基于图像或其他视频创建视频?
输入图像与视频必须以 URL 形式提供,分别通过 image_url 和 video_url 参数添加。

xAI 刚刚发布了 Grok Imagine API,可使用其 Grok Imagine 模型生成 AI 视频。据称它在优化低延迟与低成本的同时,表现与当前顶级模型不相上下。
在本文中,我们将检验 Grok Imagine 是否名副其实。在这份完整指南中,我将向您展示如何在本地设置 API,以及如何在 Python 中使用 Grok Imagine 结合文本、图像或视频输入来生成视频。
如果您想进一步了解该领域的最新发布,欢迎阅读我们的顶级视频生成模型指南。
什么是 Grok Imagine?
Grok Imagine 是来自 xAI 的视频生成模型。它可接收文本、图像与视频输入,并生成带原生声音的视频。它能接收视频输入这一点尤为有趣,因为这使我们可以进行基于提示词的编辑。
该模型在价格与生成速度上都优于最新的谷歌Veo 系列模型,以及 OpenAI 的Sora。
上图的对比仅关注价格与速度。可以看到,Grok Imagine 在这两项中均位居第一。
至于视频质量,公告只将 Grok Imagine 与 Kling o1 和 Runway Aleph 做了比较。实验做法是向所有模型发送相同的提示词,然后由人工评审选择其偏好的结果。
除了没有与 Sora 和 Veo 对比之外,我还觉得奇怪的是,Runway Aleph 甚至不是 Runway ML 最新发布的模型。尽管如此,Grok Imagine 仍在基于 ELO 的Artificial Analysis 文生视频排行榜中名列第一,甚至超过了Runway Gen 4.5。
如何访问 Grok Imagine
您可以通过其网页界面或 API 访问 Grok Imagine。本文教程将重点介绍如何在 Python 中通过 API 使用 Grok Imagine。
通过 API 使用模型时,我们需要一个账户,但不需要订阅。我们会在账户中创建一个 API 密钥,并按视频计费。下方是 Grok Imagine API 的价格结构:
Grok Imagine API 设置
在创建我们的第一个 Grok Imagine 视频之前,需要生成一个 API 密钥并安装必要的依赖。
生成 API 密钥
设置 Grok Imagine API 的第一步是生成 API 密钥。前往xAI 控制台并使用您的 xAI 账户登录。您需要一个团队,如尚未创建,请为您的账户新建一个。
接着,进入API Keys 选项卡,点击右侧的Create API Key按钮。
将密钥复制到名为
.env的文件中。该文件需与我们编写 Python 代码的文件位于同一文件夹。文件内容格式如下:安装 Python xAI 包
为与 Grok Imagine API 交互,我们需要安装两个 Python 包:
xai-sdk:xAI 官方包,用于发起 API 请求。python-dotenv:辅助包,便于从.env文件中加载 API 密钥。使用以下命令安装上述包:
用 Grok Imagine 生成我们的第一个视频
完成以上步骤后,我们就可以生成视频了。为此,我们需导入刚安装的两个包、加载 API 密钥、初始化 xAI 客户端,并发送视频生成请求。
以下是示例 Python 脚本:
这是生成的视频: