
Texto a imagen
Crea imágenes con IA a partir de prompts de texto
Anima una imagen fija con la API Google Gemini Omni 1.2 Flash. Describe el movimiento y añade una imagen final opcional para orientar el último fotograma del clip. Crea en 4K.
La API Gemini Omni 1.2 Flash Image-to-Video crea un vídeo corto a partir de una imagen inicial y una descripción del movimiento. Disponible en Best Image AI, admite una imagen final opcional para guiar el cierre de la secuencia. Úsala para animar fotos de productos, ilustraciones o viñetas de un guion gráfico en formato horizontal o vertical.
Animación de imágenes fijas: Anima una imagen utilizando su composición como primer fotograma del vídeo generado.
Transiciones entre fotogramas: Guía la secuencia entre las imágenes inicial y final cuando tengas claro el aspecto que debe alcanzar la escena.
Instrucciones de movimiento: Acompaña las imágenes con una descripción de la acción y de cómo debe evolucionar la escena.
Entrada: Proporciona una imagen inicial e instrucciones sobre el movimiento deseado. La imagen final es opcional.
Ajustes de salida: Elige el formato horizontal o vertical, la resolución y la duración del vídeo. Añadir una imagen final reduce la duración máxima admitida. Consulta los límites vigentes en la documentación de la API.
Salida: Recupera el vídeo generado cuando termine la tarea de animación de la imagen.
Facturación: El uso se cobra por segundo de duración solicitada según la resolución seleccionada. Añadir una imagen final no conlleva un cargo adicional.
Animación de fotos de productos: Usa una foto de producto como primer fotograma de una propuesta de vídeo promocional breve.
Transiciones de guion gráfico: Proporciona las ilustraciones inicial y final para explorar el movimiento entre dos viñetas previstas.
Adaptación para redes sociales: Crea versiones en vídeo de imágenes de campaña o ilustraciones editoriales existentes.
Revisión de propuestas de movimiento: Combina ilustraciones aprobadas con distintas descripciones del movimiento para explorar una escena antes de continuar la producción.
Nota Describe el movimiento entre las imágenes aportadas, además de su contenido visual. Una imagen final orienta el aspecto de la escena al terminar y reduce la duración máxima del vídeo.
Comparación con Text-to-Video: Image-to-Video requiere una imagen inicial. Elige Text-to-Video para crear la escena a partir de una descripción escrita sin aportar imágenes.
Comparación con Reference-to-Video: Image-to-Video usa una imagen de inicio y, opcionalmente, otra de cierre. Reference-to-Video acepta imágenes y vídeos como referencias para generar un nuevo clip.
Comparación con Video Edit: Image-to-Video anima imágenes fijas con la duración y la orientación seleccionadas. Video Edit parte de una grabación existente que determina la estructura temporal y la relación de aspecto del resultado.
Explora varias herramientas de creación con IA para agilizar flujos de trabajo de imagen y video en el navegador y, después, amplía las ideas que funcionan con las API de modelos de Best Image AI listas para producción. Best Image AI ofrece una capa de API unificada para todos los modelos, lo que facilita el uso y la ampliación de tus flujos de trabajo.

Crea imágenes con IA a partir de prompts de texto

Crea imágenes con IA a partir de imágenes y prompts de texto

Crea videos con IA a partir de prompts de texto

Anima imágenes y conviértelas en videos con IA

Crea imágenes y videos con IA en un espacio de trabajo unificado

Crea videos coherentes a partir de contenido multimedia de referencia

Crea flujos visuales de imágenes y vídeos con IA en un lienzo infinito
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-image-to-video',
prompt: 'The girl walks toward the camera while the city lights shimmer behind her',
image_url: 'https://example.com/start-frame.jpg',
image_end_url: 'https://example.com/end-frame.jpg',
aspect_ratio: '9:16',
resolution: '1080p',
duration: 8
})
});
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[].);
;
}
(status === ) {
.(pollResultData..);
;
}
( (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-image-to-video',
'prompt': 'The girl walks toward the camera while the city lights shimmer behind her',
'image_url': 'https://example.com/start-frame.jpg',
'image_end_url': 'https://example.com/end-frame.jpg',
'aspect_ratio': '9:16',
'resolution': '1080p',
'duration': 8
}
)
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-image-to-video",
"prompt": "The girl walks toward the camera while the city lights shimmer behind her",
"image_url": "https://example.com/start-frame.jpg",
"image_end_url": "https://example.com/end-frame.jpg",
"aspect_ratio": "9:16",
"resolution": "1080p",
"duration": 8
}'
# 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)