
Text to Image
Create AI images from text prompts
Turn a scene description into a short video with the Google Gemini Omni 1.2 Flash API. Direct the action and camera movement for a portrait or landscape shot. Choose 3–15 s.
Gemini Omni 1.2 Flash Text-to-Video API turns a written scene description into a short video on Best Image AI. Start with the subject and action, then describe the setting and intended visual direction. With selectable output resolution, clip length, and landscape or portrait framing, developers can incorporate text-led video generation into creative tools and content workflows without supplying source images or footage.
Scene Creation from Text: Turn a written concept into moving imagery without preparing source artwork or footage.
Prompt-Based Scene Direction: Express the intended subject, setting, movement, and visual treatment in natural language.
Camera Direction through Prompts: Describe camera movement and framing as part of the scene brief to guide how the action is presented.
Input: Provide a text prompt describing the scene to generate. Make the main action clear before adding details about lighting, composition, or camera movement.
Output Settings: Choose landscape or portrait framing, an output resolution, and a duration within the supported short-video range. See the API documentation for current limits.
Output: Submit the generation task and retrieve the resulting video when processing completes.
Billing: Usage is billed per second of requested output duration at the selected resolution.
Campaign Storyboards: Turn written scene ideas into video concepts for a campaign review.
Social Video Concepts: Develop short landscape or portrait scenes around a launch message or editorial theme.
Pre-Production Exploration: Try different settings and actions before creating source artwork or filming footage.
Creative Application Features: Let users submit scene descriptions and receive generated clips within an existing product workflow.
Note Keep the requested action appropriate for the clip length. Review generated results against the creative brief, and ensure prompts comply with applicable content policies.
Compared with Image-to-Video: Text-to-Video starts from a written brief. Choose Gemini Omni 1.2 Flash Image-to-Video when an existing image should define the starting frame or an optional image should guide the ending.
Compared with Reference-to-Video: Reference-to-Video requires visual reference material. Text-to-Video suits projects that begin with a description and do not need supplied image or video references.
Compared with Video Edit: Video Edit modifies an existing clip and takes its timing and aspect ratio from that source. Text-to-Video creates a new clip with a selected duration and orientation.
Explore several AI creation tools for quick image and video workflows in your browser, then scale successful ideas with Best Image AI's production-ready model APIs. Best Image AI provides a unified API layer for all models, making it easy to use and scale your workflows.

Create AI images from text prompts

Create AI images from images and text prompts

Create AI videos from text prompts

Animate images into AI videos

Create AI images and videos in one unified workspace

Create consistent videos from reference media

Build visual AI image and video workflows on an infinite canvas
const response = await fetch('https://api.flaq.ai/api/v1/video/task', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_API_KEY'
},
body: JSON.stringify({
model_name: 'gemini-omni-1.2-flash-text-to-video',
prompt: 'A cinematic tracking shot follows a sailboat crossing a glowing ocean at sunset',
aspect_ratio: '16:9',
resolution: '1080p',
duration: 12
})
});
const { data } = await response.json();
const taskId = data.task_id;
// Step 2: Poll for results
const taskId = data.task_id;
const pollResult = async (taskId) => {
const res = await fetch(`https://api.flaq.ai/api/v1/video/${taskId}`, {
headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
});
return res.json();
};
while (true) {
const pollResultData = await pollResult(taskId);
const status = pollResultData.data.task_status;
if (status === 'succeed') {
console.log(pollResultData.data.task_result.videos[0].url);
break;
}
if (status === 'failed') {
console.error(pollResultData.data.task_status_msg);
break;
}
await new Promise(resolve => setTimeout(resolve, ));
}
import requests
response = requests.post(
'https://api.flaq.ai/api/v1/video/task',
headers={
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_API_KEY'
},
json={
'model_name': 'gemini-omni-1.2-flash-text-to-video',
'prompt': 'A cinematic tracking shot follows a sailboat crossing a glowing ocean at sunset',
'aspect_ratio': '16:9',
'resolution': '1080p',
'duration': 12
}
)
result = response.json()
task_id = result['data']['task_id']
curl -X POST https://api.flaq.ai/api/v1/video/task \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model_name": "gemini-omni-1.2-flash-text-to-video",
"prompt": "A cinematic tracking shot follows a sailboat crossing a glowing ocean at sunset",
"aspect_ratio": "16:9",
"resolution": "1080p",
"duration": 12
}'
# Step 2: Poll for results
# Replace {task_id} with the task_id returned from the submit response
curl -X GET "https://api.flaq.ai/api/v1/video/{task_id}" \
-H "Authorization: Bearer YOUR_API_KEY"
# Step 2: Poll for results
task_id = response.json()['data']['task_id']
poll_url = f"https://api.flaq.ai/api/v1/video/{task_id}"
while True:
poll_result = requests.get(poll_url, headers={'Authorization': 'Bearer YOUR_API_KEY'}).json()
status = poll_result['data']['task_status']
if status == 'succeed':
print(poll_result['data']['task_result']['videos'][0]['url'])
break
if status == 'failed':
print(poll_result['data']['task_status_msg'])
break
time.sleep(10)