Text Generation WebUI (oobabooga)
oobabooga es el pseudónimo del desarrollador de Text Generation WebUI, ahora llamado TextGen: una interfaz de código abierto (AGPL-3.0, aproximadamente 47.000 estrellas en GitHub) para ejecutar modelos de lenguaje localmente, sin telemetría. Se descarga en versión portátil, como una aplicación de escritorio, para modelos GGUF; la instalación completa añade otros motores, el entrenamiento de LoRA y las extensiones. Fuente oficial: el repositorio de GitHub oobabooga/textgen.
Muchos tutoriales sobre Text Generation WebUI describen una versión de hace dos años: motores desaparecidos, extensiones reemplazadas, comandos modificados. Esta guía retoma el tema basándose en el repositorio actual: el nuevo nombre, las tres formas de instalarlo, los motores realmente compatibles, las extensiones, la API y los ajustes de seguridad que hay que conocer antes de abrir la interfaz a otras personas.
#oobabooga, Text Generation WebUI, TextGen: ¿de qué se trata?
oobabooga es el pseudónimo de GitHub del desarrollador del proyecto. La herramienta, durante mucho tiempo conocida como Text Generation WebUI, ahora se presenta bajo el nombre de TextGen: la antigua dirección del repositorio redirige a github.com/oobabooga/textgen. Se trata de una aplicación de código abierto, bajo licencia AGPL-3.0, que combina chat, generación libre, visión, llamadas a herramientas, API compatible con OpenAI y entrenamiento de LoRA. El repositorio la describe como completamente offline y privada, sin telemetría, recursos externos ni solicitudes de actualización remota.
El proyecto está activo: la última versión que hemos registrado, la 4.9, data de mayo de 2026. Hasta donde sabemos, no existe otro sitio oficial aparte de este repositorio de GitHub: desconfía de los sitios de descarga de terceros y de los forks que afirman sustituirlo, porque un ejecutable manipulado se ejecuta con tus permisos.
#1. Instalación: portátil, de un clic o manual
Tu ChatGPT privado y gratuito en tu máquina en 1 hora — LM Studio, Ollama, Open WebUI, tus documentos, sin nube.
- Espacio en línea de por vida
- PDF + archivos
- Actualizaciones de por vida
El repositorio ofrece tres opciones. La versión portátil es la más sencilla: incluye todas las dependencias, se inicia con un doble clic y solo carga modelos GGUF (motor llama.cpp). Está disponible para Linux, Windows y macOS con variantes CUDA, Vulkan, ROCm y solo CPU. La instalación completa, necesaria para los otros motores, el entrenamiento, la generación de imágenes y las extensiones, descarga PyTorch y requiere aproximadamente 10 GB de espacio en disco.
| Modo | Lo que obtienes | Lo que hay que saber |
|---|---|---|
| Versión portátil (aplicación de escritorio) | GGUF a través de llama.cpp, todo incluido | El más simple; sin extensiones ni otros motores |
| Instalador de un clic (scripts start_) | Instalación completa: ExLlamaV3, Transformers, entrenamiento, extensiones | Aproximadamente 10 GB; elección del fabricante de la GPU al instalar |
| Manual con venv o Conda | Control total del entorno Python | Para desarrolladores; debe reservarse para casos particulares |
- 01Descargar la versión portátilDesde la página de versiones del repositorio, elige el archivo correspondiente a tu sistema y a tu GPU. Para NVIDIA, elige el build cuda13.1 si nvidia-smi indica una versión de CUDA igual o superior a 13.1, de lo contrario cuda12.4. AMD y Intel usan Vulkan, AMD también puede usar ROCm, y existe una versión solo para procesador.
- 02Extraer y lanzarDescomprime el archivo, luego haz doble clic en textgen: se abre una ventana.
- 03En macOS, quitar la cuarentenaEjecuta xattr -cr seguido de la ruta de la carpeta extraída antes de la primera ejecución, como indica la nota de la versión.
- 04Añadir un modeloColoca un archivo GGUF en el directorio user_data/models; la interfaz lo detecta automáticamente.
- 05Cargar y chatearSelecciona el modelo en la pestaña de modelos y luego abre el chat.
Puedes actualizar una versión portátil sin perder tus modelos ni tus ajustes: descarga el nuevo archivo comprimido, extráelo y sustituye su carpeta user_data por la de tu instalación anterior. Desde la versión 4.0, también puedes colocar user_data un nivel por encima de las carpetas de instalación; en ese caso, se detecta automáticamente.
Para la instalación completa, clona el repositorio y ejecuta el script de tu sistema. El script pide el fabricante de tu GPU e instala las dependencias en un directorio local; después, abre http://127.0.0.1:7860 en el navegador.
Todo se almacena en una carpeta local llamada installer_files. Para reinstalar desde cero, elimina esta carpeta y vuelve a ejecutar el script. Para aplicar opciones de forma permanente, escríbelas en user_data/CMD_FLAGS.txt, por ejemplo --api para activar la API. Ninguno de estos scripts necesita permisos de administrador.
#2. Descargar y elegir un modelo
Las instrucciones de uso del repositorio caben en tres frases: descarga un archivo GGUF desde Hugging Face, colócalo en user_data/models y la interfaz lo detecta. Los modelos distribuidos en varios archivos (Transformers en 16 bits, EXL3) van en una subcarpeta del mismo directorio y requieren la instalación completa, no la versión portátil.
El único criterio práctico es la memoria. Referencias del sitio para la cuantización Q4, teniendo en cuenta solo los pesos: 3B, aproximadamente 2 GB; de 7 a 8B, aproximadamente 5 GB; 14B, aproximadamente 9 GB; 32B, aproximadamente de 19 a 20 GB; 70B, aproximadamente 40 GB. Añade la caché de contexto y un margen para el sistema. El calculador de VRAM del sitio te da el total exacto para tu contexto.
#Contexto y caché: las dos opciones que ahorran memoria
Dos opciones de lanzamiento afectan directamente a la memoria. --ctx-size fija el tamaño del contexto en tokens: el valor 0 significa automático con llama.cpp, siempre que se coloquen todas las capas en el GPU (--gpu-layers=-1), y el valor predeterminado es 8.192 para los demás motores. --cache-type elige el formato del caché de contexto; con llama.cpp, los valores válidos son fp16, q8_0 y q4_0. Un caché cuantizado ocupa menos memoria que un caché fp16, a costa de una precisión ligeramente menor: intenta q8_0 primero si falta memoria antes de reducir el tamaño del modelo.
El repositorio también remite a dos herramientas de la comunidad para orientar esta elección: una calculadora de memoria para modelos GGUF y una lista de cuantizaciones recomendadas. Verifica sus resultados con la calculadora del sitio y luego supervisa el uso real de la tarjeta durante una conversación larga.
#3. Elegir un motor (loader)
TextGen carga un modelo con un motor, llamado loader. Por defecto lo detecta; puedes forzarlo con la opción --loader. Los valores aceptados hoy son Transformers, llama.cpp, ExLlamav3_HF, ExLlamav3 y TensorRT-LLM, y se puede cambiar de motor y modelo sin reiniciar.
| Motor | Formato de modelo | Uso |
|---|---|---|
| llama.cpp | GGUF | La opción por defecto: procesador y GPU, único motor de la versión portátil |
| ik_llama.cpp | GGUF | Variante de llama.cpp, listada como backend adicional |
| ExLlamaV3 | EXL3 | Cuantización para GPU, en la instalación completa |
| Transformers | Modelos de 16 bits, safetensors | Versátil y con un alto consumo de memoria; también sirve para el entrenamiento |
| TensorRT-LLM | Modelos compilados para NVIDIA | Para las GPU NVIDIA, instalación completa |
Si estás empezando, quédate con llama.cpp y el formato GGUF: es el camino más corto, el de la versión portátil y el que también usan otras herramientas (Ollama, LM Studio). Los demás motores se justifican por una necesidad específica: un formato particular, el fine-tuning o aprovechar al máximo una tarjeta NVIDIA.
#4. Chat, instruct, notebook, vision
- Instruct
- El modo de seguimiento de instrucciones, como ChatGPT. Los prompts se formatean automáticamente con plantillas Jinja2.
- Chat-instruct y chat
- Para conversar con personajes personalizados.
- Notebook
- Una pestaña de generación libre, fuera de los turnos de chat: tú escribes, el modelo continúa.
- Visión y archivos
- Puedes adjuntar imágenes a los mensajes, así como archivos de texto, PDF y .docx para hablar de su contenido.
- Edición y ramas
- Modificar un mensaje, navegar entre sus versiones y abrir una rama en cualquier punto de la conversación.
Los modelos también pueden llamar a herramientas durante la conversación: búsqueda web, recuperación de páginas, cálculo. Cada herramienta es un simple archivo Python, y los servidores MCP están soportados. Esta función se combina con el contexto: un agente que llama a herramientas llena rápidamente una ventana corta; piensa en aumentar el tamaño de contexto con la opción --ctx-size.
#5. Extensiones: lo que realmente existe
Las extensiones solo funcionan con la instalación completa. La carpeta de extensiones del repositorio incluye, entre otras, coqui_tts, silero_tts (síntesis de voz), whisper_stt (entrada por voz), sd_api_pictures y send_pictures (imágenes), google_translate, superbooga y superboogav2, ngrok, gallery y perplexity_colors. El README añade que también existen extensiones de la comunidad.
#6. Modo API
Agrega --api a tus opciones para iniciar la API. Según la wiki del repositorio, el puerto predeterminado es 5000, modificable con --api-port, y la API permanece local mientras no pidas explícitamente abrirla. La wiki especifica que funciona sin conexión, no se conecta a OpenAI y no crea ningún registro. Los puntos de acceso cubren chats, completaciones y mensajes en formato Anthropic, con llamadas a herramientas.
Puedes conectar cualquier cliente de OpenAI (un frontend de chat, un agente de código, LangChain) apuntando a esta dirección. La documentación interactiva de todos los puntos de acceso se sirve en la misma dirección, bajo /docs.
#Abrir la interfaz para otros: las opciones que debes conocer
Por defecto, la interfaz solo es accesible desde tu máquina. Tres opciones cambian esto. --listen hace que la interfaz sea accesible desde tu red local. --share crea una dirección pública, que conviene evitar salvo para una prueba puntual. Y --multi-user no guarda los historiales de chat: el repositorio describe esta opción como adecuada para pequeños equipos de confianza, no como una solución empresarial.
Para la API, añade --api-key con una clave de tu elección en cuanto configures el servicio para escuchar en la red: sin clave, cualquier dispositivo que pueda acceder al puerto puede consultar tu modelo. Para un verdadero uso en equipo (cuentas, roles, registro de actividad), es preferible colocar un frontend dedicado delante del motor.
#TextGen frente a Ollama y LM Studio
| Necesidad | TextGen | Ollama o LM Studio |
|---|---|---|
| Empezar rápidamente con un GGUF | Versión portátil, también sencilla | Ollama: un comando; LM Studio: interfaz guiada |
| Probar varios motores y formatos | Sí: es su punto fuerte | Centrados en GGUF |
| Hacer fine-tuning de un LoRA en la interfaz | Sí, con la instalación completa | No |
| Servir a un equipo | Poco adecuado (funcionalidad multiusuario limitada) | Ollama detrás de Open WebUI o LibreChat |
| Uso diario fluido | Más ajustes, más pasos manuales | Más fácil de mantener |
En resumen: TextGen es la herramienta para explorar y ajustar con precisión, no para el uso diario de un principiante. Si primero quieres conversar con un modelo, empieza por Ollama o LM Studio; vuelve a TextGen cuando necesites un motor, un formato o un entrenamiento que las otras herramientas no ofrezcan.
- Ollama vs LM Studio vs Jan vs GPT4All
- Fuente: repositorio TextGen (oobabooga)
- Fuente: notas de la versión 4.9
- Fuente: wiki, API compatible con OpenAI
oobabooga y Text Generation WebUI, ¿es lo mismo?+
¿Cómo instalar Text Generation WebUI en 2026?+
¿Qué motores y formatos son compatibles?+
¿Es realmente offline y sin telemetría?+
¿Cómo activar la API para conectar otra herramienta?+
¿Conviene preferir TextGen a Ollama?+
¿Un comentario, un error, una precisión? Avísanos, eso mejora la guía para todos.