Skip to main content

OpenImageTokenizer: Based in SEED-Voken A Series of Powerful Visual Tokenizers

Project description

OpenImageTokenizer 🖼️→🔢

Una interfaz Python elegante para los tokenizadores visuales de SEED-Voken

Python 3.8+ License

📝 Descripción

OpenImageTokenizer es una biblioteca de Python que proporciona una interfaz simplificada y accesible para los potentes tokenizadores visuales desarrollados por TencentARC en su proyecto SEED-Voken. Este paquete facilita el uso de modelos avanzados como Open-MAGVIT2 e IBQ sin necesidad de configuraciones complejas o entornos de desarrollo especializados.

Similar a cómo los tokenizadores de texto convierten texto en tokens discretos, los tokenizadores visuales convierten imágenes en representaciones discretas (tokens) que pueden ser utilizadas para diversos fines, desde compresión hasta generación de imágenes autorregresiva.


Comparación de diferentes tokenizadores visuales (imagen de SEED-Voken)

✨ Características

  • Interfaz simplificada: API intuitiva para usar tokenizadores visuales sin necesidad de entender su complejidad interna
  • Descarga automática: Gestión transparente de checkpoints desde Hugging Face sin intervención manual
  • Configuraciones integradas: No requiere archivos YAML o JSON externos
  • Visualización de tokens: Herramientas para visualizar y entender los tokens generados
  • Compatible con múltiples modelos: Soporte para diferentes versiones de Open-MAGVIT2 e IBQ
  • Multi-plataforma: Funciona en CPU y GPU sin configuraciones especiales

📊 Modelos Soportados

OpenImageTokenizer proporciona acceso a los siguientes modelos avanzados de SEED-Voken:

Open-MAGVIT2

Tokenizador visual estado del arte con rendimiento superior (0.39 rFID para downsampling 8x).

  • TencentARC/Open-MAGVIT2-Tokenizer-128-resolution
  • TencentARC/Open-MAGVIT2-Tokenizer-256-resolution
  • TencentARC/Open-MAGVIT2-Tokenizer-16384-Pretrain
  • TencentARC/Open-MAGVIT2-Tokenizer-262144-Pretrain

IBQ

Tokenizador visual escalable con alta dimensión de código y alta utilización.

  • TencentARC/IBQ-Tokenizer-16384
  • TencentARC/IBQ-Tokenizer-32768

🛠️ Instalación

pypi no soportado

O directamente desde el repositorio:

git clone https://github.com/F4k3r22/OpenImageTokenizer.git
cd OpenImageTokenizer
pip install -e .

🚀 Uso Rápido

Ejemplo Básico

from OpenImageTokenizer import MAGVIT2ImageTokenizer

# Inicializar tokenizador (descarga automática de checkpoints)
tokenizer = MAGVIT2ImageTokenizer("TencentARC/Open-MAGVIT2-Tokenizer-256-resolution")

# Tokenizar una imagen
encoded = tokenizer.encode("ruta/a/imagen.jpg")
tokens = encoded['indices']

# Reconstruir la imagen desde los tokens
reconstructed = tokenizer.decode(encoded['quant'])

# Visualizar los tokens
tokenizer.visualize_tokens(tokens, save_path="tokens_visualization.png")

Procesamiento Completo

# Codificar, decodificar y visualizar en un solo paso
results = tokenizer.process_image("ruta/a/imagen.jpg", "directorio/salida")

print(f"Imagen original: {results['original']}")
print(f"Imagen reconstruida: {results['reconstructed']}")
print(f"Visualización de tokens: {results['tokens']}")

🔍 Aplicaciones

Los tokenizadores visuales tienen múltiples aplicaciones en visión por computadora e IA:

  • Generación autorregresiva de imágenes: Base para modelos tipo GPT pero para imágenes
  • Modelos multimodales: Punto de conexión entre modelos de lenguaje y contenido visual
  • Compresión de imágenes: Representación eficiente mediante tokens discretos
  • Edición semántica: Manipulación a nivel de tokens para edición controlada
  • Investigación en generación visual: Experimentación con diferentes arquitecturas

🧩 Componentes Principales

  • MAGVIT2ImageTokenizer: Clase principal para tokenización con Open-MAGVIT2
  • hf_utils: Módulo para gestionar la descarga de modelos desde Hugging Face
  • configs: Configuraciones integradas para los diferentes modelos
  • visualize_tokens: Utilidades para visualizar y comprender los tokens generados

📑 Ejemplo de Script Completo

import os
from OpenImageTokenizer import MAGVIT2ImageTokenizer

# Inicializar tokenizador
tokenizer = MAGVIT2ImageTokenizer("TencentARC/Open-MAGVIT2-Tokenizer-256-resolution")

# Cargar el modelo
tokenizer.load_model()

# Procesar imagen (codificar, visualizar, reconstruir)
image_path = "mi_imagen.jpg"
output_dir = "resultados"

results = tokenizer.process_image(image_path, output_dir)

# Mostrar información sobre los tokens
token_shape = results["token_shape"]
print(f"Forma de los tokens: {token_shape}")
print(f"Total de tokens en la imagen: {token_shape[0] * token_shape[1]}")

print("Archivos generados:")
print(f"  Original: {results['original']}")
print(f"  Reconstruido: {results['reconstructed']}")
print(f"  Visualización de tokens: {results['tokens']}")

📚 Citas

Si utilizas OpenImageTokenizer en tu investigación, considera citar los trabajos originales:

Para Open-MAGVIT2:

@article{luo2024open,
  title={Open-MAGVIT2: An Open-Source Project Toward Democratizing Auto-regressive Visual Generation},
  author={Luo, Zhuoyan and Shi, Fengyuan and Ge, Yixiao and Yang, Yujiu and Wang, Limin and Shan, Ying},
  journal={arXiv preprint arXiv:2409.04410},
  year={2024}
}

Para IBQ:

@article{shi2024taming,
  title={Taming Scalable Visual Tokenizer for Autoregressive Image Generation},
  author={Shi, Fengyuan and Luo, Zhuoyan and Ge, Yixiao and Yang, Yujiu and Shan, Ying and Wang, Limin},
  journal={arXiv preprint arXiv:2412.02692},
  year={2024}
}

🤝 Contribuciones

Las contribuciones son bienvenidas. Para contribuir:

  1. Haz un fork del repositorio
  2. Crea una nueva rama (git checkout -b feature/nueva-funcionalidad)
  3. Haz tus cambios y commitealos (git commit -m 'Añade nueva funcionalidad')
  4. Haz push a la rama (git push origin feature/nueva-funcionalidad)
  5. Abre un Pull Request

📄 Licencia

Este proyecto está licenciado bajo la licencia APACHE 2.0 - consulta el archivo LICENSE para más detalles.

❤️ Agradecimientos

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openimagetokenizer-0.1.5.tar.gz (8.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

openimagetokenizer-0.1.5-py3-none-any.whl (207.9 kB view details)

Uploaded Python 3

File details

Details for the file openimagetokenizer-0.1.5.tar.gz.

File metadata

  • Download URL: openimagetokenizer-0.1.5.tar.gz
  • Upload date:
  • Size: 8.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.10

File hashes

Hashes for openimagetokenizer-0.1.5.tar.gz
Algorithm Hash digest
SHA256 ce3f66f57ff8c184ecfce3cfa6be594400bf800217deb36897621f6d8807fed9
MD5 6d99bb3b88e2e3dc13fefa9860191458
BLAKE2b-256 3769e1f1edb80f158b4799d2aac29df927f57bd7e2a4a7d30d373348fbd5b962

See more details on using hashes here.

File details

Details for the file openimagetokenizer-0.1.5-py3-none-any.whl.

File metadata

File hashes

Hashes for openimagetokenizer-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 bf8a1a8b87ab261228728a3dfbe56be24b6c4ba41bc52ac29bc0f65b9781f252
MD5 df3cb7c8a69dfa48eca2d9c8726ebed8
BLAKE2b-256 cab0ba889bf9616f83cc064548052048de6f8bcc16f778ac19a2be46d1f447fd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page