OpenAI Images - GIF animado - creadores - Python
4 min lectura

Cómo crear un GIF con Images 2.6 que cierre bien el bucle

Genera un GIF con Images 2.6, controla cuadros y duración, y comprueba continuidad y peso antes de publicarlo.

Cómo crear un GIF con Images 2.6 que cierre bien el bucle

Un GIF de un personaje parpadeando puede hacer más visible una historia o una ficha de producto, pero un bucle que «salta» al volver al primer cuadro distrae más de lo que ayuda. OpenAI lanzó el 4 de noviembre de 2026 Images 2.6 y habilitó GIF animado en Image API. La novedad merece un experimento propio: preparar movimiento corto, comprobar cuadros y peso, y decidir si un GIF sirve mejor que un video o una imagen fija. Es una intención distinta de nuestra visión general del lanzamiento.

Qué permite la API

La guía oficial indica usar output_format="gif" en POST /v1/images/generations. No está disponible para el endpoint de edición de imágenes. Puedes pedir de 2 a 64 cuadros con frame_count y una duración de 20 a 2.000 milisegundos por cuadro con frame_duration_ms, redondeada a 10 ms. El tamaño de cada cuadro puede ser auto o dimensiones positivas múltiplos de 16, sujetas al presupuesto total de píxeles del modelo. Menos cuadros o menor tamaño ayudan si la solicitud excede el límite.

La API devuelve el GIF terminado como base64. No admite streaming, imágenes parciales, output_compression personalizado ni prompt_rewriter para este formato. Especifica estos parámetros solo cuando la salida sea GIF. No confundas un GIF de nueve cuadros con nueve archivos que debas ensamblar: el resultado ya es la animación.

Diagrama en español de nueve cuadros, duración total y revisión del salto de un GIF
Nueve cuadros de 200 ms duran 1,8 segundos; la continuidad se inspecciona entre el último y el primero.

Un experimento reproducible para una marca

Elige un sujeto simple sin derechos ajenos: por ejemplo, una linterna de papel que se ilumina suavemente sobre fondo fijo. Evita texto, logos y cambios de cámara. Define un estado inicial y final casi iguales para que el ciclo cierre. Instala el SDK openai, configura OPENAI_API_KEY como variable de entorno y ejecuta este ejemplo adaptado de los parámetros documentados:

import base64
from pathlib import Path
from openai import OpenAI

client = OpenAI()
result = client.images.generate(
    model="gpt-image-2.6-flare",
    output_format="gif",
    frame_count=9,
    frame_duration_ms=200,
    size="auto",
    quality="medium",
    prompt=(
        "A simple unbranded paper lantern on a fixed dark background. "
        "It gradually glows brighter, then returns to the original dim glow. "
        "Nine consistent frames, fixed camera, identical shape and background. "
        "Make the final frame flow naturally into the first. No text or logo."
    ),
)
Path("lantern-loop.gif").write_bytes(
    base64.b64decode(result.data[0].b64_json)
)

Ese prompt es un punto de partida, no una garantía de continuidad. Abre lantern-loop.gif y compara cuadro 9 contra cuadro 1. Comprueba que el objeto no cambie de forma, que la cámara permanezca fija y que no aparezcan artefactos. Si hay salto, ajusta el movimiento o reduce la distancia entre estados inicial y final. No intentes arreglarlo solo subiendo la calidad.

Una comprobación local antes de publicar

Con pillow instalado, este bloque lee propiedades objetivas del archivo generado. Te dirá cuántos cuadros contiene, su tamaño y duración aproximada, y el peso del archivo; no puede juzgar por sí solo si el movimiento parece natural.

from pathlib import Path
from PIL import Image

path = Path("lantern-loop.gif")
with Image.open(path) as gif:
    durations = []
    for frame in range(gif.n_frames):
        gif.seek(frame)
        durations.append(gif.info.get("duration", 0))
    print("frames:", gif.n_frames)
    print("size:", gif.size)
    print("duration_ms:", sum(durations))
    print("bytes:", path.stat().st_size)

Si se obtienen nueve cuadros de 200 ms, el ciclo nominal dura 1.800 ms. Luego míralo en móvil y en el sitio real: un GIF pesado puede retrasar carga y distraer de un CTA. Añade texto alternativo que describa la acción y evita poner información esencial solo en movimiento. Si necesitas voz, subtítulos o una secuencia larga, un formato de video suele ser más apropiado.

Estado de la prueba: parámetros y límites están verificados en la documentación oficial; los bloques Python pasaron revisión de sintaxis y el lector de GIF se probó con un archivo de ejemplo local. No ejecutamos la generación pagada de Images 2.6 ni afirmamos que este prompt produzca un bucle perfecto. Revisa el costo con tu tamaño y calidad antes de integrarlo en un flujo automático.

Recibe lo nuevo en tu correo

Workshops gratis, herramientas y novedades de IA aplicadas a negocio, sin humo.

🎓 Workshops en vivo🛠️ Herramientas nuevas⚡ Novedades de IA

Sin spam. Te das de baja cuando quieras.

Comentarios

Aún no hay comentarios. Sé el primero.

Deja un comentario