La mayoría de los modelos de visión te obligan a elegir: enviar una imagen o enviar mucho texto. Rara vez un modelo destaca en ambas cosas.
GLM-5.3-Flash elimina esa elección. Acepta imágenes como bloques de contenido dentro de una ventana de contexto de 1.048.576 tokens, en la misma solicitud que el resto de tu texto. Esta combinación permite flujos de trabajo que no serían viables con visión separada o ventanas de contexto más pequeñas.
Esta guía explica la carga útil, los casos de uso prácticos, los límites actuales y cómo controlar costos.
Visión nativa, no adaptadores
Los modelos de visión anteriores de Z.ai, como GLM-5V-Turbo y GLM-4.6V, se ofrecían como endpoints separados. Eso implicaba enrutar las solicitudes de imágenes y texto a modelos distintos.
GLM-5.3 enruta la visión mediante adaptadores. En cambio, GLM-5.3-Flash trata las imágenes como una entrada nativa del mismo modelo, en la misma llamada y dentro del mismo contexto.
En la práctica, obtienes:
- Un ID de modelo.
- Una línea de facturación.
- Un conjunto de límites de tasa.
- Una ventana de contexto compartida por imágenes y texto.
Si mantienes integraciones con los modelos anteriores, consulta la guía de API de GLM-5V-Turbo y la guía de GLM-4.6V.
La carga útil
La entrada de imágenes utiliza bloques de contenido tipados. En lugar de enviar content como una cadena, envíalo como un array:
from openai import OpenAI
import os
client = OpenAI(
[REDACTED CREDENTIAL],
base_url="https://api.z.ai/api/paas/v4/",
)
response = client.chat.completions.create(
model="glm-5.3-flash",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "What is wrong with this layout on mobile?"},
{
"type": "image_url",
"image_url": {"url": "https://example.com/mobile-view.png"},
},
],
}
],
)
print(response.choices[0].message.content)
Para imágenes locales o privadas, usa una URL de datos Base64:
import base64
from pathlib import Path
def image_block(path: str) -> dict:
data = base64.b64encode(Path(path).read_bytes()).decode("utf-8")
suffix = Path(path).suffix.lstrip(".").replace("jpg", "jpeg")
return {
"type": "image_url",
"image_url": {"url": f"data:image/{suffix};base64,{data}"},
}
Para enviar varias imágenes, agrega un bloque por cada una:
content = [
{"type": "text", "text": "Image 1 is the design. Image 2 is what we built. List the differences."},
image_block("design.png"),
image_block("built.png"),
]
El orden importa: el modelo procesa el array secuencialmente. Coloca el contexto antes de las imágenes y etiqueta cada una explícitamente, especialmente si comparas varias.
La configuración y autenticación básicas se cubren en la guía de API.
Flujos de trabajo útiles
Depuración de capturas de pantalla
Z.ai orienta este modelo a analizar interfaces, resultados de renderizado y retroalimentación de interacción. Es un caso de uso natural para agentes de código.
Envía la captura defectuosa y el código fuente en la misma solicitud:
content = [
{"type": "text", "text": "This component renders incorrectly below 400px. Here is the screenshot and the source."},
image_block("bug-mobile.png"),
{"type": "text", "text": f"```
{% endraw %}
jsx\n{component_source}\n
{% raw %}
```"},
]
Así, el modelo puede razonar sobre el renderizado real en lugar de depender de una descripción humana del fallo visual.
Comparación de diseños
Envía dos imágenes y pide las diferencias. Puede servir como verificación suave en CI: una herramienta de diferencias detecta cambios de píxeles y el modelo ayuda a clasificar cuáles requieren revisión humana.
No lo uses como único bloqueo de despliegues. La comparación visual es una tarea de juicio, no una garantía determinista.
Documentos frente a su especificación
La ventana de 1M tokens resulta especialmente útil al combinar una especificación extensa con un artefacto visual generado:
content = [
{"type": "text", "text": f"Specification:\n\n{spec_text}"},
{"type": "text", "text": "Below is the generated report. Does it satisfy every requirement above? List gaps."},
image_block("generated-report.png"),
]
Una especificación de 40 páginas y una imagen en una sola petición no encajaban fácilmente en una ventana de 128K tokens con visión basada en adaptadores.
Las notas de lanzamiento de Z.ai también mencionan documentos de oficina e investigación financiera como objetivos para el comportamiento de agente del modelo.
Gráficos y paneles de control
Puedes pedir al modelo que extraiga datos estructurados de un gráfico:
content = [
{"type": "text", "text": "Extract the series in this chart as JSON: [{label, values: [...]}]. Return only JSON."},
image_block("quarterly.png"),
]
Valida siempre la salida contra un esquema. La validación detecta problemas de formato, aunque no puede garantizar que un valor numérico visualmente interpretado sea correcto.
Para extracción documental especializada, un modelo dedicado puede superar a un generalista. Consulta GLM-OCR para la comprensión de documentos.
Vídeo y archivos
La documentación de Z.ai enumera vídeo y archivos como entradas mediante el mismo mecanismo de bloques de contenido.
Trátalo con cautela. El soporte de vídeo es reciente, tiene poca documentación y menos uso público que la entrada de imágenes. Además, una capacidad del modelo no garantiza que esté disponible en cada proveedor o puerta de enlace.
Si el vídeo es importante para tu aplicación, pruébalo con tus propios medios y proveedor antes de diseñar el flujo alrededor de esa capacidad.
Dónde falla
La multimodalidad nativa no equivale a multimodalidad fiable. Considera estos límites antes de llevar un flujo a producción:
- Valores de gráficos con demasiada confianza. Un modelo puede devolver números bien formateados pero incorrectos. Si el valor importa, usa los datos originales, no una imagen.
- Texto pequeño o comprimido. Las interfaces densas, tablas de baja resolución y código en imágenes comprimidas degradan la precisión. Recorta la región relevante antes de reducir toda la imagen.
- Precisión espacial limitada. “El botón se superpone a la entrada” puede ser correcto; “el botón está 12 píxeles demasiado a la izquierda” normalmente no será una medición fiable.
- Confusión entre imágenes. Al enviar varias, puede atribuir detalles a la imagen equivocada. Etiquétalas y limita su número cuando la precisión sea crítica.
Estos límites no son exclusivos de GLM-5.3-Flash. Son restricciones habituales de los modelos de lenguaje con visión, y la puntuación de 57 en el Índice de Inteligencia no las elimina. Diseña el flujo para detectar respuestas incorrectas antes de utilizarlas.
Costo
Las imágenes consumen tokens de entrada y se facturan como tales; no tienen recargo independiente.
Según el precio de lista, la entrada cuesta $0.15 por millón de tokens, o $0.075 durante el descuento de lanzamiento vigente hasta el 9 de septiembre de 2026. Las imágenes de alta resolución consumen una cantidad considerable de tokens, por lo que la resolución afecta directamente al costo.
reasoning_effort usa max de forma predeterminada y factura el razonamiento como tokens de salida. Para extracción simple de imágenes, low suele ser suficiente y más barato. Consulta el desglose de precios para más detalles.
Mantén bajo control el costo de las imágenes
Las imágenes se facturan como tokens de entrada, así que optimiza la resolución sin perder el detalle que necesita cada tarea.
Aplica este orden:
- Recorta antes de escalar. Es preferible enviar la región relevante a resolución completa que toda la pantalla a media resolución.
- Ajusta la resolución a la pregunta. “¿El diseño está roto?” tolera reducción de escala; “¿qué dice este error?” requiere detalle.
- No reenvíes imágenes sin cambios. Si ya están en contexto durante una conversación de varias vueltas, adjuntarlas de nuevo implica volver a pagar por ellas.
-
Configura
reasoning_effortdeliberadamente. La extracción sencilla rara vez necesitamax.
Revisa el objeto usage de cada respuesta. Es la única forma de conocer el costo real de una imagen en lugar de estimarlo por el tamaño del archivo.
Prueba las llamadas multimodales
Las solicitudes multimodales son incómodas de probar manualmente: una URL de datos Base64 puede tener miles de caracteres y las respuestas de texto libre hacen que las regresiones sean fáciles de ignorar.
Dos prácticas ayudan:
- Mantén un conjunto pequeño y fijo de imágenes de referencia con respuestas esperadas.
- Valida las extracciones estructuradas con un esquema, no visualmente.
Apidog permite guardar cargas útiles de imágenes como solicitudes reutilizables, mantener claves API en variables de entorno y añadir aserciones sobre el JSON devuelto. Cuando cambies de modelo o un proveedor actualice su plataforma, vuelve a ejecutar el conjunto para comprobar que el flujo de visión sigue funcionando.
Preguntas frecuentes
¿GLM-5.3 también admite imágenes? No de forma nativa. GLM-5.3 enruta la visión mediante adaptadores separados. Flash ofrece multimodalidad nativa; consulta la comparación.
¿Cuántas imágenes admite cada solicitud? Varias, cada una en su propio bloque image_url. El límite práctico depende de tu presupuesto de contexto.
¿URL o Base64? Ambos funcionan. Usa una URL pública si la imagen ya está alojada y accesible; usa Base64 para imágenes locales o privadas.
¿Acepta vídeo? Z.ai documenta la entrada de vídeo, pero es reciente y poco ejercitada públicamente. Verifica primero con tus propios medios y proveedor.
¿Las imágenes tienen una facturación distinta? No. Consumen tokens de entrada, por lo que la resolución afecta el costo.


Top comments (0)