- text-generation-webui (ampliamente llamado oobabooga por su autor en GitHub) es una interfaz gratuita y de código abierto, basada en navegador, para ejecutar LLMs localmente en tu propio hardware.
- Instala mediante scripts de un clic —
start_windows.bat,start_linux.sh, ostart_macos.sh— sin necesidad de configurar manualmente el entorno de Python. - Compatible con múltiples backends: llama.cpp para archivos GGUF, ExLlamaV2 para EXL2/GPTQ en NVIDIA, y Transformers para modelos de HuggingFace.
- Incluye una extensión de API compatible con OpenAI (
--extensions openai) para que otras aplicaciones puedan conectarse a tu modelo local sin cambios de código.
text-generation-webui es una interfaz web de código abierto y autohospedada para ejecutar grandes modelos de lenguaje localmente. Mantenida en GitHub como oobabooga/text-generation-webui, se ejecuta en tu navegador en http://localhost:7860, compatible con una amplia gama de formatos de modelo a través de backends de inferencia intercambiables, y expone una API REST compatible con OpenAI. Es el LLM local frontend más completo disponible, a costa de una curva de configuración más pronunciada que aplicaciones de escritorio como LM Studio.
Qué es text-generation-webui (y por qué la gente la llama Oobabooga)
El nombre de usuario de GitHub del proyecto es oobabooga, que se ha convertido en la abreviatura comunitaria de la herramienta misma. Ambos nombres se refieren al mismo proyecto en github.com/oobabooga/text-generation-webui.
La interfaz está construida en Gradio y se ejecuta completamente en tu máquina local — no se envía ningún dato fuera de tu sistema. Más allá del chat básico, es compatible con:
- Tres modos de entrada: Chat (instrucción), Chat (juego de rol con tarjetas de personaje) y Notebook (finalización bruta)
- Carga de LoRA para pesos adaptadores ajustados en la parte superior de un modelo base
- Un sistema de extensiones con plugins comunitarios para resumen, síntesis de voz, descripción de imágenes y más
- Un endpoint de API compatible con OpenAI para conectar clientes de terceros y scripts de automatización
Antes de elegir un modelo, usa el Calculadora de VRAM para confirmar que tu GPU puede alojarlo — los requisitos varían ampliamente según el tamaño del modelo y el nivel de cuantización.
Instalación de text-generation-webui
La ruta recomendada en todas las plataformas es el instalador de un clic. Crea un entorno Conda aislado e instala todas las dependencias de Python automáticamente. No instales en tu Python del sistema a menos que tengas una razón específica para hacerlo.
Windows
- Clona el repositorio o descarga un archivo zip de versión desde la página de GitHub:
git clone https://github.com/oobabooga/text-generation-webui - Haga doble clic en
start_windows.baten la carpeta clonada. - El script detecta tu tipo de GPU (NVIDIA, AMD, o solo CPU) e instala dependencias coincidentes — selecciona la opción apropiada cuando se te solicite.
- Una vez que se completa la configuración, el servidor se inicia automáticamente. Abre
http://localhost:7860en tu navegador.
En futuras ejecuciones, haz doble clic en start_windows.bat de nuevo. El entorno Conda ya está construido; el inicio toma solo unos pocos segundos.
Linux
- Clona el repositorio e ingresa al directorio:
git clone https://github.com/oobabooga/text-generation-webui cd text-generation-webui - Haz el script ejecutable y ejecútalo:
chmod +x start_linux.sh ./start_linux.sh - Selecciona tu tipo de GPU cuando se te solicite: NVIDIA, AMD, solo CPU, o Apple Silicon (no aplicable en Linux, pero el mensaje aparece).
- Accede a la UI en
http://localhost:7860una vez que el servidor esté en funcionamiento.
macOS
- Clona el repositorio y ejecuta el script de inicio:
git clone https://github.com/oobabooga/text-generation-webui cd text-generation-webui ./start_macos.sh - Selecciona la opción D (Apple Silicon / Metal) u opción C (solo CPU) cuando se te solicite.
- El backend de llama.cpp usa Metal para aceleración GPU en chips de la serie M — no se requiere CUDA.
Los usuarios de macOS están limitados a los cargadores llama.cpp y Transformers. ExLlamaV2 requiere CUDA y no se ejecuta en Apple Silicon.
Cargadores de modelos: cuál usar
text-generation-webui desvincula el motor de inferencia de la UI. Seleccionas un cargador por modelo desde la Modelo pestaña. Cada cargador acepta formatos de archivo específicos y tiene diferentes requisitos de hardware.
| Cargador | Formato | Hardware | Cuándo usar |
|---|---|---|---|
| llama.cpp | GGUF | NVIDIA, AMD, Apple Silicon, CPU | Predeterminado para archivos GGUF; el más portable entre plataformas |
| ExLlamaV2 | EXL2, GPTQ | Solo para CUDA de NVIDIA | Mayor rendimiento en NVIDIA; preferido frente a AutoGPTQ para modelos nuevos |
| Transformadores | Hugging Face (fp16, bf16, int8, int4) | NVIDIA, CPU | Modelos originales de Hugging Face; más lentos, pero con la mayor compatibilidad |
| AutoAWQ | AWQ | CUDA de NVIDIA | Modelos cuantizados con AWQ |
| AutoGPTQ | GPTQ | CUDA de NVIDIA | Modelos GPTQ antiguos; ExLlamaV2 es más rápido para el mismo formato |
Predeterminado práctico: Si descargó un archivo .gguf (el formato más común en las páginas de modelos de Hugging Face), use llama.cpp. Si dispone de una GPU NVIDIA y desea la máxima velocidad de generación, busque una variante EXL2 del mismo modelo y utilice ExLlamaV2.
Para conocer qué modelos caben realistamente en qué GPUs, consulte Requisitos de VRAM para los principales LLM.
Cargar un modelo GGUF paso a paso
- Copie el archivo en la carpeta
text-generation-webui/models/. Los archivos GGUF monolíticos (por ejemplo,mistral-7b-instruct.Q4_K_M.gguf) se colocan directamente en esa carpeta. Los archivos divididos en varias partes deben ubicarse en una subcarpeta con nombre. - Abra la pestaña Modelo la dirección
http://localhost:7860. - Seleccione su archivo desde el menú desplegable de modelos (haga clic en el icono de actualización si no aparece).
- Establece Cargador a
llama.cpp. - Establece n-gpu-layers para controlar la descarga a la GPU. Introduzca un número grande (por ejemplo,
999) para trasladar tantas capas como sea posible a la VRAM; introduzca0para inferencia exclusivamente en CPU. - Haga clic Cargue. Un mensaje de confirmación aparecerá en el cuadro de estado una vez que el modelo esté listo.
Cambie a la pestaña Chat para iniciar una conversación o a la pestaña Predeterminado para completar directamente el indicador (prompt). La plantilla de instrucción se configura automáticamente para familias de modelos conocidas; para modelos desconocidos, selecciónela manualmente desde el menú desplegable Plantilla de instrucción en la pestaña Parámetros.
La extensión de API compatible con OpenAI
La extensión integrada openai expone puntos finales REST que replican el formato de las API de OpenAI Chat Completions y Completions. Cualquier cliente que acepte una URL base personalizada —LangChain, Open WebUI, Continue.dev o un simple script curl — puede conectarse a su modelo local sin necesidad de modificar el código.
Habilítela pasando una bandera al iniciar:
# Linux / macOS
./start_linux.sh --extensions openai
# o inicie server.py directamente dentro del entorno Conda
python server.py --extensions openai
Alternativamente, habilítela desde la pestaña Sesión de la interfaz de usuario y luego haga clic en Aplicar banderas / Reiniciar.
De forma predeterminada, la API escucha en el puerto 5000, independientemente de la interfaz Gradio, que usa el puerto 7860. Configure su cliente para apuntar a:
base_url = "http://localhost:5000/v1"
api_key = "cualquier_valor" # requerido por la mayoría de los clientes, pero no se valida localmente
Los puntos finales admitidos incluyen /v1/chat/completions, /v1/completions, y /v1/models. El puerto se puede configurar mediante la bandera de inicio --api-port .
text-generation-webui vs LM Studio vs Jan
Las tres herramientas ejecutan modelos localmente, sin depender de la nube. Están orientadas a distintos usuarios y casos de uso.
| text-generation-webui | LM Studio | enero | |
|---|---|---|---|
| Interfaz | Navegador (Gradio) | Escritorio nativo | Escritorio nativo |
| Complejidad de configuración | Medio (script de un solo clic) | Bajo (instalador gráfico) | Bajo (instalador gráfico) |
| Formatos de modelo | GGUF, EXL2, GPTQ, AWQ, HF fp16 | Principalmente GGUF | Principalmente GGUF |
| Explorador integrado de modelos | No | Sí | Sí |
| API compatible con OpenAI | Sí (extensión) | Sí (integrado) | Sí (integrado) |
| Sistema de extensiones o complementos | Sí | Limitado | Limitado |
| Apple Silicon (Metal) | Sí (llama.cpp) | Sí | Sí |
| Ideal para | Usuarios avanzados, automatización e investigación | Principiantes y uso diario de chat | Usuarios centrados en software de código abierto |
Elija text-generation-webui cuando necesite varios backends de carga, rendimiento EXL2 en GPUs NVIDIA, carga de adaptadores LoRA, el ecosistema de extensiones o acceso mediante API mediante scripts para automatización y flujos de trabajo de desarrollo.
Elegir LM Studio or Jan cuando desee un instalador pulido, búsqueda integrada de modelos con descargas de un solo clic y configuración mínima. Consulte la guía completa de LM Studio para una guía detallada sobre esta opción.
Si está evaluando si la inferencia local justifica el costo del hardware, la Calculadora de punto de equilibrio entre auto-alojamiento e API puede cuantificar el equilibrio entre ese gasto y el pago por acceso a una API según su volumen de uso.
Preguntas Frecuentes
¿Por qué tarda tanto la instalación de un solo clic la primera vez?
Descarga Miniconda y construye desde cero un entorno aislado de Python con PyTorch y todas las bibliotecas de carga de modelos. En una conexión rápida, esto suele tardar entre 5 y 15 minutos. En los inicios posteriores se omite este paso y la aplicación se inicia en pocos segundos.
¿Puedo ejecutar text-generation-webui sin GPU?
Sí. Seleccione la opción «solo CPU» durante la instalación y luego configure n-gpu-layers a 0 al cargar un modelo GGUF. Un modelo de 7B puede generar entre 2 y 5 tokens por segundo en una CPU de escritorio moderna: suficiente para pruebas, pero lento para conversaciones. Las cuantizaciones más pequeñas (Q4 y menores) mejoran el rendimiento. Consulte mejores GPUs para LLMs locales si está considerando una actualización de hardware.
¿Cómo actualizo text-generation-webui?
Ejecutar git pull dentro del directorio del repositorio para obtener el código más reciente y, a continuación, vuelva a ejecutar el script de inicio. Este detecta cambios en el entorno y actualiza automáticamente las dependencias. También puede ejecutar pip install -r requirements.txt manualmente dentro del entorno Conda activo si prefiere una actualización específica.
¿Cuál es la diferencia entre GGUF y EXL2?
Ambos son formatos cuantizados que reducen el tamaño del archivo del modelo y los requisitos de VRAM. GGUF (mediante llama.cpp) funciona en GPUs NVIDIA, AMD y Apple Silicon; es la opción más portable y dispone de la mayor variedad de modelos disponibles. EXL2 (mediante ExLlamaV2) solo es compatible con GPUs NVIDIA, pero normalmente genera tokens más rápido a calidad equivalente. Si dispone de una GPU NVIDIA y la velocidad es su prioridad, vale la pena usar EXL2.
¿Dónde se guardan los registros de las conversaciones?
Los registros se almacenan en text-generation-webui/logs/. Cada conversación se guarda como un archivo JSON. También puede exportarla directamente desde la interfaz de la pestaña «Chat», usando el botón de descarga situado debajo de la ventana de conversación.
¿Pueden conectarse varios usuarios a una misma instancia?
El --listen hace que el servidor esté accesible en su red local, en lugar de limitarse a localhost. Sin embargo, text-generation-webui no está diseñado para despliegues productivos multiusuario: carece de autenticación integrada y su interfaz Gradio opera en modo de sesión única. La extensión de API OpenAI gestiona mejor las solicitudes API simultáneas que la interfaz web en escenarios con múltiples clientes, pero si desea exponerla más allá de localhost, debe colocar delante un proxy inverso con autenticación.
