跳至主要内容

Grok Imagine API:完整的 Python 指南与示例

学习如何使用 Grok Imagine API 生成视频。本 Python 指南涵盖从图像动画到使用全新 xAI 视频模型进行视频编辑的全部内容。
· 8分钟 阅读

使用 AI 探索

xAI 刚刚发布了 Grok Imagine API,可使用其 Grok Imagine 模型生成 AI 视频。据称它在优化低延迟与低成本的同时,表现与当前顶级模型不相上下。

在本文中,我们将检验 Grok Imagine 是否名副其实。在这份完整指南中,我将向您展示如何在本地设置 API,以及如何在 Python 中使用 Grok Imagine 结合文本、图像或视频输入来生成视频。

如果您想进一步了解该领域的最新发布,欢迎阅读我们的顶级视频生成模型指南。

什么是 Grok Imagine?

Grok Imagine 是来自 xAI 的视频生成模型。它可接收文本、图像与视频输入,并生成带原生声音的视频。它能接收视频输入这一点尤为有趣,因为这使我们可以进行基于提示词的编辑。

该模型在价格与生成速度上都优于最新的谷歌Veo 系列模型,以及 OpenAI 的Sora。

基准图表:xAI Grok Imagine 在文生视频中排名第 1,相比 Veo 3.1 Fast、Veo 3、Sora 2 Pro 和 Sora 2 具有最佳价格与最低延迟。

上图的对比仅关注价格与速度。可以看到,Grok Imagine 在这两项中均位居第一。

至于视频质量,公告只将 Grok Imagine 与 Kling o1 和 Runway Aleph 做了比较。实验做法是向所有模型发送相同的提示词,然后由人工评审选择其偏好的结果。

视频编辑基准图表显示 Grok Imagine 表现优于竞品:对比 Kling o1——总体 57% vs 43%,指令遵循 53.1% vs 46.9%,一致性 60.6% vs 39.4%;对比 Runway Aleph——总体 64.1% vs 35.9%,指令遵循 57.4% vs 42.6%,一致性 63.1% vs 36.9%。

除了没有与 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-video 的 Grok Imagine API 价格表:区域 us-east-1 和 eu-west-1;输入定价——图像 $0.002、视频 $0.01/秒、不支持文本;按分辨率计费(每秒)——480p $0.05、720p $0.07;速率限制 30 次请求/分钟,每分钟令牌不适用。

Grok Imagine API 设置

在创建我们的第一个 Grok Imagine 视频之前,需要生成一个 API 密钥并安装必要的依赖。

生成 API 密钥

设置 Grok Imagine API 的第一步是生成 API 密钥。前往xAI 控制台并使用您的 xAI 账户登录。您需要一个团队,如尚未创建,请为您的账户新建一个。

接着,进入API Keys 选项卡,点击右侧的Create API Key按钮。

Grok Imagine 控制台截图:Personal 团队侧边栏高亮 API Keys,用于创建新的 Grok Imagine API 密钥的选项卡。

将密钥复制到名为 .env 的文件中。该文件需与我们编写 Python 代码的文件位于同一文件夹。文件内容格式如下:

XAI_API_KEY="your_api_key"

安装 Python xAI 包

为与 Grok Imagine API 交互,我们需要安装两个 Python 包:

  • xai-sdk:xAI 官方包,用于发起 API 请求。

  • python-dotenv:辅助包,便于从 .env 文件中加载 API 密钥。

使用以下命令安装上述包:

pip install xai-sdk python-dotenv

用 Grok Imagine 生成我们的第一个视频

完成以上步骤后,我们就可以生成视频了。为此,我们需导入刚安装的两个包、加载 API 密钥、初始化 xAI 客户端,并发送视频生成请求。

以下是示例 Python 脚本:

from xai_sdk import Client
from dotenv import load_dotenv
# Load the API key
load_dotenv()
# Initialize the xAI client
client = Client()
# Sending a video generation request
prompt = """
A pixel art cat playing with a ball.
"""
response = client.video.generate(
    prompt=prompt,
    model="grok-imagine-video",
)
# Display the URL of the video
print(f"Video URL: {response.url}")

这是生成的视频:

注意: 本文的所有代码可在此 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 参数添加。

François Aubry

作者

François Aubry

全栈工程师,CheapGPT 创始人。我一直热爱教学。从学生时代起,我就积极寻找机会为同学提供辅导与帮助。这份热情促使我攻读博士学位,并在此期间担任助教,以支持我的学术追求。那些年里,我在传统课堂环境中收获了极大的成就感,既建立联系也促进学习。随着在线学习平台的兴起,我也看到了数字教育的变革潜力。事实上,我曾参与我们大学一款此类平台的建设。我致力于将传统教学理念与创新的数字方法相融合。我的热情在于打造既有吸引力、信息量充足,又能让当代学习者轻松获取的课程。

主题