gRPC API

视频

查看 Markdown

xai_api.Video

用于调用视频生成模型的 API 服务。

方法:xai_api.Video

GenerateVideounary

根据文本 prompt 创建视频,也可以选择提供图像。这是异步操作,会立即返回用于轮询的 request_id。

ExtendVideounary

生成延续内容以延长现有视频。这是异步操作,会立即返回用于轮询的 request_id。

GetDeferredVideounary

获取通过 `GenerateVideo` 或 `ExtendVideo` 启动的视频生成结果。

视频生成是异步的。SDK 的 generate() 和 extend() 方法会自动处理轮询。如需手动控制,请使用 start() / extend_start() 和 get()。

生成视频

import os
import xai_sdk

client = xai_sdk.Client(api_key=os.getenv("XAI_API_KEY"))

# generate() handles polling automatically and returns the completed video
response = client.video.generate(
    prompt="A serene lake at sunrise with mist rolling over the water",
    model="grok-imagine-video-1.5",
    duration=5,
    aspect_ratio="16:9",
    resolution="720p",
)

print(response.url)

编辑视频

import os
import xai_sdk

client = xai_sdk.Client(api_key=os.getenv("XAI_API_KEY"))

response = client.video.generate(
    prompt="Give the woman a silver necklace",
    model="grok-imagine-video-1.5",
    video_url="https://data.x.ai/docs/video-generation/portrait-wave.mp4",
)

print(response.url)

延长视频

import os
import xai_sdk

client = xai_sdk.Client(api_key=os.getenv("XAI_API_KEY"))

response = client.video.extend(
    prompt="The camera slowly zooms out to reveal the city skyline",
    model="grok-imagine-video-1.5",
    video_url="https://data.x.ai/docs/video-generation/portrait-wave.mp4",
    duration=6,
)

print(response.url)

获取视频生成结果

import os
import time
import xai_sdk
from xai_sdk.proto import deferred_pb2

client = xai_sdk.Client(api_key=os.getenv("XAI_API_KEY"))

# Manual polling (alternative to generate() which does this automatically)
start = client.video.start(
    prompt="A cat lounging in a sunbeam",
    model="grok-imagine-video-1.5",
)

while True:
    result = client.video.get(start.request_id)
    if result.status == deferred_pb2.DeferredStatus.DONE:
        print(result.response.video.url)
        break
    elif result.status == deferred_pb2.DeferredStatus.FAILED:
        print("Generation failed")
        break
    time.sleep(5)

最后更新:2026 年 9 月 2 日