OpenImageTokenizer: Based in SEED-Voken A Series of Powerful Visual Tokenizers
Project description
OpenImageTokenizer 🖼️→🔢
📝 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:
- Haz un fork del repositorio
- Crea una nueva rama (
git checkout -b feature/nueva-funcionalidad) - Haz tus cambios y commitealos (
git commit -m 'Añade nueva funcionalidad') - Haz push a la rama (
git push origin feature/nueva-funcionalidad) - Abre un Pull Request
📄 Licencia
Este proyecto está licenciado bajo la licencia APACHE 2.0 - consulta el archivo LICENSE para más detalles.
❤️ Agradecimientos
- TencentARC por desarrollar SEED-Voken y los tokenizadores Open-MAGVIT2 e IBQ
- Hugging Face por alojar los modelos preentrenados
- Los equipos detrás de VQGAN, MAGVIT, LlamaGen,RQVAE y VideoGPT, OmniTokenizer.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ce3f66f57ff8c184ecfce3cfa6be594400bf800217deb36897621f6d8807fed9
|
|
| MD5 |
6d99bb3b88e2e3dc13fefa9860191458
|
|
| BLAKE2b-256 |
3769e1f1edb80f158b4799d2aac29df927f57bd7e2a4a7d30d373348fbd5b962
|
File details
Details for the file openimagetokenizer-0.1.5-py3-none-any.whl.
File metadata
- Download URL: openimagetokenizer-0.1.5-py3-none-any.whl
- Upload date:
- Size: 207.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf8a1a8b87ab261228728a3dfbe56be24b6c4ba41bc52ac29bc0f65b9781f252
|
|
| MD5 |
df3cb7c8a69dfa48eca2d9c8726ebed8
|
|
| BLAKE2b-256 |
cab0ba889bf9616f83cc064548052048de6f8bcc16f778ac19a2be46d1f447fd
|