zai-org/GLM-Image

zai-org
Texto a imagen

GLM-Image es un modelo de generación y edición de imágenes de Z.ai con arquitectura híbrida: un generador autorregresivo de 9B parámetros inicializado desde GLM-4-9B-0414 y un decodificador de difusión de 7B basado en DiT. Está diseñado para generación texto-a-imagen e imagen-a-imagen, con ventajas destacadas en renderizado preciso de texto dentro de imágenes, comprensión semántica y generación con mucha información o conocimiento visual.

Como usar

Instalación con transformers y diffusers desde código fuente:

pip install git+https://github.com/huggingface/transformers.git
pip install git+https://github.com/huggingface/diffusers.git

Generación texto-a-imagen con diffusers:

import torch
from diffusers.pipelines.glm_image import GlmImagePipeline

pipe = GlmImagePipeline.from_pretrained("zai-org/GLM-Image", torch_dtype=torch.bfloat16, device_map="cuda")

prompt = "A beautifully designed modern food magazine style dessert recipe illustration, themed around a raspberry mousse cake."

image = pipe(
    prompt=prompt,
    height=32 * 32,
    width=36 * 32,
    num_inference_steps=50,
    guidance_scale=1.5,
    generator=torch.Generator(device="cuda").manual_seed(42),
).images[0]

image.save("output_t2i.png")

Generación imagen-a-imagen con diffusers:

import torch
from diffusers.pipelines.glm_image import GlmImagePipeline
from PIL import Image

pipe = GlmImagePipeline.from_pretrained("zai-org/GLM-Image", torch_dtype=torch.bfloat16, device_map="cuda")

image_path = "cond.jpg"
prompt = "Replace the background of the snow forest with an underground station featuring an automatic escalator."
image = Image.open(image_path).convert("RGB")

image = pipe(
    prompt=prompt,
    image=[image],
    height=33 * 32,
    width=32 * 32,
    num_inference_steps=50,
    guidance_scale=1.5,
    generator=torch.Generator(device="cuda").manual_seed(42),
).images[0]

image.save("output_i2i.png")

Uso con SGLang:

pip install "sglang[diffusion] @ git+https://github.com/sgl-project/sglang.git#subdirectory=python"
pip install git+https://github.com/huggingface/transformers.git
pip install git+https://github.com/huggingface/diffusers.git

Texto-a-imagen con SGLang:

sglang serve --model-path zai-org/GLM-Image
curl http://localhost:30000/v1/images/generations \
  -H "Content-Type: application/json" \
  -d '{
    "model": "zai-org/GLM-Image",
    "prompt": "a beautiful girl with glasses.",
    "n": 1,
    "response_format": "b64_json",
    "size": "1024x1024"
  }' | python3 -c "import sys, json, base64; open('output_t2i.png', 'wb').write(base64.b64decode(json.load(sys.stdin)['data'][0]['b64_json']))"

Imagen-a-imagen con SGLang:

sglang serve --model-path zai-org/GLM-Image
curl -s -X POST "http://localhost:30000/v1/images/edits" \
  -F "model=zai-org/GLM-Image" \
  -F "[email protected]" \
  -F "prompt=Replace the background of the snow forest with an underground station featuring an automatic escalator." \
  -F "response_format=b64_json" \
  | python3 -c "import sys, json, base64; open('output_i2i.png', 'wb').write(base64.b64decode(json.load(sys.stdin)['data'][0]['b64_json']))"

Notas prácticas: el texto que deba aparecer dentro de la imagen debe ir entre comillas en el prompt; la resolución objetivo debe ser divisible por 32; el modelo AR usa por defecto do_sample=True, temperatura 0.9 y top_p=0.75; puede usarse enable_model_cpu_offload=True para ejecutar con alrededor de 23 GB de memoria GPU, con inferencia más lenta.

Funcionalidades

Generación texto-a-imagen con alta fidelidad, detalles finos y buen seguimiento de instrucciones complejas.
Generación imagen-a-imagen para edición, transferencia de estilo, consistencia multisujeto y preservación de identidad en personas u objetos.
Arquitectura híbrida autorregresiva + decodificador de difusión: primero genera una codificación compacta y luego la expande para producir imágenes de alta resolución.
Decodificador de difusión con módulo Glyph Encoder para mejorar la precisión del texto renderizado en la imagen.
Post-entrenamiento con aprendizaje por refuerzo desacoplado usando GRPO, orientado a mejorar alineación semántica, estética, detalle visual y exactitud textual.
Soporte en transformers, diffusers y SGLang.
Licencia principal MIT; componentes VQ tokenizer y VIT derivados de X-Omni/X-Omni-En bajo Apache 2.0.

Casos de uso

Crear ilustraciones complejas texto-a-imagen con composición densa, jerarquía visual y mucho texto legible, como guías, carteles, recetas, diagramas o material educativo.
Generar imágenes que requieren comprensión semántica precisa y expresión visual de conocimiento, no solo estética general.
Editar imágenes existentes cambiando fondos, objetos o escenas mediante instrucciones textuales.
Transferir estilos visuales entre imágenes manteniendo estructura o identidad relevante.
Producir variantes con consistencia multisujeto o preservación de identidad de personas y objetos.
Servir generación de imágenes mediante pipelines locales de diffusers o endpoints compatibles con SGLang.