
이미지를 비디오로
Grok Imagine Video Extend API by xAI
xai/grok-imagine-video/extend-video
Extend-video
xAI Grok Imagine Video continues an existing 2-15s mp4 with a 2-10s prompt-driven extension. Output matches input, capped at 720p.

xAI Grok Imagine Video continues an existing 2-15s mp4 with a 2-10s prompt-driven extension. Output matches input, capped at 720p.
Join the Discord community for the latest model updates, prompts, and support.
요청당 $0.07가 소요됩니다. $10로 이 모델을 약 142번 실행할 수 있습니다.
다음으로 할 수 있는 작업:
import requests
import time
# Step 1: Start video generation
generate_url = "https://api.atlascloud.ai/api/v1/model/generateVideo"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer $ATLASCLOUD_API_KEY"
}
data = {
"model": "xai/grok-imagine-video/extend-video", # Required. Model name
"prompt": "A beautiful sunset over the ocean with gentle waves", # Required. Natural-language description of what should happen after the input video's last frame
"video_url": "example_value", # Required. Public URL of an mp4 file (H
"duration": 6, # Length of the extension segment in seconds. (min: 2, max: 10)
}
generate_response = requests.post(generate_url, headers=headers, json=data)
generate_result = generate_response.json()
prediction_id = generate_result["data"]["id"]
# Step 2: Poll for result
poll_url = f"https://api.atlascloud.ai/api/v1/model/prediction/{prediction_id}"
def check_status():
while True:
response = requests.get(poll_url, headers={"Authorization": "Bearer $ATLASCLOUD_API_KEY"})
result = response.json()
if result["data"]["status"] in ["completed", "succeeded"]:
print("Generated video:", result["data"]["outputs"][0])
return result["data"]["outputs"][0]
elif result["data"]["status"] == "failed":
raise Exception(result["data"]["error"] or "Generation failed")
else:
# Still processing, wait 2 seconds
time.sleep(2)
video_url = check_status()사용하는 언어에 필요한 패키지를 설치하세요.
pip install requests모든 API 요청에는 API 키를 통한 인증이 필요합니다. Atlas Cloud 대시보드에서 API 키를 받을 수 있습니다.
export ATLASCLOUD_API_KEY="your-api-key-here"import os
API_KEY = os.environ.get("ATLASCLOUD_API_KEY")
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {API_KEY}"
}클라이언트 측 코드나 공개 저장소에 API 키를 노출하지 마세요. 대신 환경 변수 또는 백엔드 프록시를 사용하세요.
import requests
url = "https://api.atlascloud.ai/api/v1/model/generateVideo"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer $ATLASCLOUD_API_KEY"
}
data = {
"model": "your-model",
"prompt": "A beautiful landscape"
}
response = requests.post(url, headers=headers, json=data)
print(response.json())비동기 생성 요청을 제출합니다. API는 상태 확인 및 결과 조회에 사용할 수 있는 예측 ID를 반환합니다.
/api/v1/model/generateVideoimport requests
url = "https://api.atlascloud.ai/api/v1/model/generateVideo"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer $ATLASCLOUD_API_KEY"
}
data = {
"model": "xai/grok-imagine-video/extend-video",
"prompt": "A beautiful sunset over the ocean with gentle waves"
}
response = requests.post(url, headers=headers, json=data)
result = response.json()
print(f"Prediction ID: {result['data']['id']}")
print(f"Status: {result['data']['status']}"){
"code": 200,
"data": {
"id": "pred_abc123",
"status": "processing",
"model": "model-name",
"created_at": "2025-01-01T00:00:00Z"
}
}예측 엔드포인트를 폴링하여 요청의 현재 상태를 확인합니다.
/api/v1/model/prediction/{prediction_id}import requests
import time
prediction_id = "pred_abc123"
url = f"https://api.atlascloud.ai/api/v1/model/prediction/{prediction_id}"
headers = { "Authorization": "Bearer $ATLASCLOUD_API_KEY" }
while True:
response = requests.get(url, headers=headers)
result = response.json()
status = result["data"]["status"]
print(f"Status: {status}")
if status in ["completed", "succeeded"]:
output_url = result["data"]["outputs"][0]
print(f"Output URL: {output_url}")
break
elif status == "failed":
print(f"Error: {result['data'].get('error', 'Unknown')}")
break
time.sleep(3)processing요청이 아직 처리 중입니다.completed생성이 완료되었습니다. 출력을 사용할 수 있습니다.succeeded생성이 성공했습니다. 출력을 사용할 수 있습니다.failed생성에 실패했습니다. 오류 필드를 확인하세요.{
"data": {
"id": "pred_abc123",
"status": "completed",
"outputs": [
"https://storage.atlascloud.ai/outputs/result.mp4"
],
"metrics": {
"predict_time": 45.2
},
"created_at": "2025-01-01T00:00:00Z",
"completed_at": "2025-01-01T00:00:10Z"
}
}Atlas Cloud 스토리지에 파일을 업로드하고 API 요청에 사용할 수 있는 URL을 받습니다. multipart/form-data를 사용하여 업로드합니다.
/api/v1/model/uploadMediaimport requests
url = "https://api.atlascloud.ai/api/v1/model/uploadMedia"
headers = { "Authorization": "Bearer $ATLASCLOUD_API_KEY" }
with open("image.png", "rb") as f:
files = {"file": ("image.png", f, "image/png")}
response = requests.post(url, headers=headers, files=files)
result = response.json()
download_url = result["data"]["download_url"]
print(f"File URL: {download_url}"){
"data": {
"download_url": "https://storage.atlascloud.ai/uploads/abc123/image.png",
"file_name": "image.png",
"content_type": "image/png",
"size": 1024000
}
}다음 파라미터를 요청 본문에서 사용할 수 있습니다.
{
"model": "xai/grok-imagine-video/extend-video",
"prompt": "A beautiful landscape",
"video_url": "example_video_url",
"duration": 6
}API는 생성된 출력 URL이 포함된 예측 응답을 반환합니다.
{
"id": "pred_abc123",
"status": "completed",
"model": "model-name",
"outputs": [
"https://storage.atlascloud.ai/outputs/result.mp4"
],
"metrics": {
"predict_time": 45.2
},
"created_at": "2025-01-01T00:00:00Z",
"completed_at": "2025-01-01T00:00:10Z"
}Atlas Cloud Skills는 400개 이상의 AI 모델을 AI 코딩 어시스턴트에 직접 통합합니다. 한 번의 명령으로 설치하고 자연어로 이미지, 동영상 생성 및 LLM과 대화할 수 있습니다.
npx skills add AtlasCloudAI/atlas-cloud-skillsAtlas Cloud 대시보드에서 API 키를 받아 환경 변수로 설정하세요.
export ATLASCLOUD_API_KEY="your-api-key-here"설치 후 AI 어시스턴트에서 자연어를 사용하여 모든 Atlas Cloud 모델에 접근할 수 있습니다.
Atlas Cloud MCP Server는 Model Context Protocol을 통해 IDE와 400개 이상의 AI 모델을 연결합니다. MCP 호환 클라이언트에서 사용할 수 있습니다.
npx -y atlascloud-mcp다음 설정을 IDE의 MCP 설정 파일에 추가하세요.
{
"mcpServers": {
"atlascloud": {
"command": "npx",
"args": [
"-y",
"atlascloud-mcp"
],
"env": {
"ATLASCLOUD_API_KEY": "your-api-key-here"
}
}
}
}{
"info": {
"title": "AtlasCloud API",
"version": "1.0.0",
"description": "The AtlasCloud API."
},
"paths": {
"/api/v1/model/generateVideo": {
"post": {
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PredictionResponse"
}
}
},
"description": "The request status."
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Input"
}
}
},
"required": true
}
},
"x-api-name": "model_run"
},
"/api/v1/model/prediction/{request_id}": {
"get": {
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PredictionResponse"
}
}
},
"description": "Result of the request."
}
},
"parameters": [
{
"in": "path",
"name": "request_id",
"schema": {
"type": "string",
"description": "Request ID"
},
"required": true
}
]
},
"x-api-name": "model_result"
}
},
"openapi": "3.0.0",
"servers": [
{
"url": "https://api.atlascloud.ai"
}
],
"components": {
"schemas": {
"Input": {
"type": "object",
"required": [
"model",
"prompt",
"video_url"
],
"properties": {
"model": {
"type": "string",
"description": "Model name.",
"default": "xai/grok-imagine-video/extend-video"
},
"prompt": {
"type": "string",
"description": "Natural-language description of what should happen after the input video's last frame."
},
"video_url": {
"type": "string",
"description": "Public URL of an mp4 file (H.264/H.265/AV1, etc.). Input duration must be 2–15 seconds."
},
"duration": {
"type": "integer",
"default": 6,
"minimum": 2,
"maximum": 10,
"description": "Length of the extension segment in seconds. Range: 2–10 (default 6). Total returned video = input duration + extension. Output is capped at 720p."
}
},
"x-order-properties": [
"model",
"prompt",
"video_url",
"duration"
]
},
"PredictionResponse": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique identifier for the prediction."
},
"urls": {
"type": "object",
"description": "Object containing related API endpoints."
},
"model": {
"type": "string",
"description": "Model ID used for the prediction."
},
"status": {
"type": "string",
"description": "Status of the task: created, processing, completed, or failed."
},
"outputs": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of URLs to the generated video (empty when status is not completed)."
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "ISO timestamp of when the request was created."
},
"has_nsfw_contents": {
"type": "array",
"items": {
"type": "boolean"
},
"description": "Array of boolean values indicating NSFW detection for each output."
}
}
}
},
"securitySchemes": {
"apiKeyAuth": {
"in": "header",
"name": "Authorization",
"type": "apiKey"
}
}
}
}# xai/grok-imagine-video/extend-video
> xAI Grok Imagine Video continues an existing 2-15s mp4 with a 2-10s prompt-driven extension. Output matches input, capped at 720p.
## Overview
- **Submit endpoint (POST)**: `https://api.atlascloud.ai/api/v1/model/generateVideo` — start an async generation; returns a `prediction_id`
- **Poll endpoint (GET)**: `https://api.atlascloud.ai/api/v1/model/prediction/{prediction_id}` — poll this until the prediction finishes
- **Model ID**: `xai/grok-imagine-video/extend-video`
## API Information
This model can be used via our HTTP API or more conveniently via our client libraries.
See the input and output schema below, as well as the usage examples.
### Input Schema
The API accepts the following input parameters:
- **`model`** (`string`, _required_):
Model name.
- Default: `"xai/grok-imagine-video/extend-video"`
- **`prompt`** (`string`, _required_):
Natural-language description of what should happen after the input video's last frame.
- **`video_url`** (`string`, _required_):
Public URL of an mp4 file (H.264/H.265/AV1, etc.). Input duration must be 2–15 seconds.
- **`duration`** (`integer`, _optional_):
Length of the extension segment in seconds. Range: 2–10 (default 6). Total returned video = input duration + extension. Output is capped at 720p.
- Default: `6`
- Min: 2
- Max: 10
**Required Parameters Example**:
```json
{
"model": "xai/grok-imagine-video/extend-video",
"prompt": "",
"video_url": ""
}
```
**Full Example**:
```json
{
"model": "xai/grok-imagine-video/extend-video",
"prompt": "",
"video_url": "",
"duration": 6
}
```
### Output Schema
The API returns the following output format:
- **`id`** (`string`, _optional_):
Unique identifier for the prediction.
- **`urls`** (`object`, _optional_):
Object containing related API endpoints.
- **`model`** (`string`, _optional_):
Model ID used for the prediction.
- **`status`** (`string`, _optional_):
Status of the task: created, processing, completed, or failed.
- **`outputs`** (`array[string]`, _optional_):
Array of URLs to the generated video (empty when status is not completed).
- **`created_at`** (`string`, _optional_):
ISO timestamp of when the request was created.
- **`has_nsfw_contents`** (`array[boolean]`, _optional_):
Array of boolean values indicating NSFW detection for each output.
**Example Response**:
```json
{
"id": "",
"urls": {},
"model": "",
"status": "",
"outputs": [
""
],
"created_at": "",
"has_nsfw_contents": []
}
```
## Usage Examples
### cURL
```bash
# Step 1: Start generation (async)
curl -X POST "https://api.atlascloud.ai/api/v1/model/generateVideo" \
-H "Authorization: Bearer $ATLASCLOUD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "xai/grok-imagine-video/extend-video",
"prompt": "",
"video_url": "",
"duration": 6
}'
# Response will contain: {"code": 200, "data": {"id": "prediction_id", "status": "processing"}}
# Step 2: Poll for result (replace {prediction_id} with the id returned above)
curl -X GET "https://api.atlascloud.ai/api/v1/model/prediction/{prediction_id}" \
-H "Authorization: Bearer $ATLASCLOUD_API_KEY"
# Keep polling until status is "completed", "succeeded" or "failed"
# When completed, outputs will contain the generated content URL(s)
```
## Additional Resources
### Documentation
- [Model Playground](https://www.atlascloud.ai/models/xai/grok-imagine-video/extend-video)
Change the car's color to blue and drive it on a racetrack.
Change the car's color to blue and drive it on a racetrack.