Por qué autoalojar ComfyUI en un VPS
ComfyUI organiza la generación de imágenes en grafos de nodos: cada etapa (carga del modelo, codificación del prompt, muestreo, VAE) es un bloque conectable y reutilizable, lo que hace que los flujos de trabajo sean reproducibles y compartibles en formato JSON. A diferencia de un servicio de generación en línea, autoalojarlo le da el control sobre los modelos checkpoints, los LoRA, los ControlNet y las extensiones, sin censura ni cuotas. En un VPS con GPU, obtiene un estudio disponible 24/7 que todo un equipo creativo puede utilizar en remoto, y cuya API permite industrializar la generación desde sus propios scripts o pipelines.
Beneficios concretos del autoalojamiento
- Flujos nodales reproducibles, exportables en JSON y compartibles en el equipo
- Biblioteca libre de checkpoints, LoRA y ControlNet sin cuotas ni censura
- API HTTP para automatizar la generación desde sus scripts y pipelines
- GPU remota accesible 24/7 sin monopolizar un equipo local
- Instalación de custom nodes (extensiones de la comunidad) sin restricciones
- Control de los costes: un VPS con GPU por horas o por meses en lugar de un pago por imagen
Requisitos de hardware con cifras por escenario
El dimensionamiento depende directamente del modo de ejecución elegido y de los modelos objetivo. En modo CPU (lento, reservado a pruebas y prototipos), un VPS de 4 vCPU con 8 GB de RAM es suficiente para cargar un checkpoint SDXL, pero espere varios minutos por imagen. En modo GPU, el cuello de botella es la VRAM: 8 GB de VRAM NVIDIA permiten ejecutar SDXL en fp16 con el flag --lowvram, que descarga los codificadores de texto a la RAM del sistema; se recomiendan 12 a 16 GB de VRAM para Flux.1 a plena precisión. Para el almacenamiento: un checkpoint SDXL pesa unos 6 a 7 GB, Flux.1 schnell (full precision) alcanza 23,8 GB, su versión fp8 17,2 GB. Planifique al menos 50 GB de SSD, idealmente 100 GB si piensa almacenar varios modelos y sus LoRA asociados. La RAM del sistema debe ser de al menos 16 GB cuando la descarga GPU→RAM está activa.
Configuración mínima por escenario
Desplace la tabla
| Escenario | vCPU | RAM | VRAM | Disco |
|---|---|---|---|---|
| Test CPU (SDXL, lento) | 4 | 8 GB | — (sin GPU) | 50 GB |
| GPU SDXL cómodo | 4 | 16 GB | 8 GB NVIDIA | 80 GB |
| GPU Flux.1 (recomendado) | 8 | 32 GB | 16 GB NVIDIA | 100 GB |
| Producción multiusuario | 8+ | 32 GB+ | 24 GB NVIDIA | 200 GB+ |
Dos métodos de instalación: Docker vs Python venv
ComfyUI se puede desplegar de dos formas: mediante Docker (aislamiento, reproducibilidad, gestión simplificada de dependencias GPU) o mediante un entorno virtual Python (más cercano al bare-metal, más flexible para custom nodes experimentales). En un VPS de producción, Docker es recomendable por la facilidad de mantenimiento y el aislamiento de versiones.
Método A — Instalación con Python venv (acceso directo al hardware)
Instalar las dependencias del sistema
En Ubuntu 22.04/24.04:
apt update && apt install -y git python3.12 python3.12-venv python3-pip. ComfyUI soporta Python 3.12 y 3.13; la versión 3.13 está muy bien soportada, la 3.14 puede causar problemas de compatibilidad con algunos custom nodes.Clonar el repositorio y crear el venv
git clone https://github.com/comfyanonymous/ComfyUI.git /opt/comfyui && cd /opt/comfyui && python3.12 -m venv venv && source venv/bin/activate && pip install -r requirements.txtInstalar PyTorch con soporte CUDA o CPU
Para GPU NVIDIA (CUDA):
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu124. Para modo solo CPU:pip install torch torchvision. PyTorch 2.7 es la versión mínima soportada; se recomienda encarecidamente una versión más reciente.Lanzar ComfyUI
Modo GPU:
python main.py --listen 0.0.0.0. Modo CPU:python main.py --cpu --listen 0.0.0.0. El flag--listen 0.0.0.0expone ComfyUI en todas las interfaces de red del VPS (necesario para el acceso vía túnel o reverse proxy). La interfaz está disponible en el puerto 8188.
Método B — Despliegue con Docker y GPU
Preparar el VPS con GPU
En un VPS con GPU NVIDIA, instale los controladores y luego el NVIDIA Container Toolkit para que Docker acceda a la GPU. Valídelo con
docker run --rm --gpus all nvidia/cuda:12.4.0-base-ubuntu22.04 nvidia-smi.Lanzar ComfyUI en contenedor
Arranque una imagen de ComfyUI con acceso a la GPU y volúmenes persistentes:
docker run -d --gpus all -p 127.0.0.1:8188:8188 -v /opt/comfyui/models:/app/models -v /opt/comfyui/output:/app/output --name comfyui ghcr.io/ai-dock/comfyui:latest-cuda. Restringir a 127.0.0.1 evita la exposición directa. Ajuste el tag de la imagen según la versión CUDA de su VPS.Verificar que la GPU es detectada
Tras el arranque:
docker logs comfyui | grep -i 'cuda\|gpu\|device'. ComfyUI muestra el dispositivo seleccionado al arrancar. Si veUsing CPU, su GPU no es accesible desde el contenedor — verifique el NVIDIA Container Toolkit.
Descargar los modelos desde HuggingFace
Los modelos se descargan desde HuggingFace con wget o la CLI de HuggingFace (pip install huggingface_hub). Cada tipo de archivo tiene su carpeta dedicada en la estructura de ComfyUI. Para SDXL: deposite el archivo .safetensors del checkpoint en models/checkpoints/. Para Flux.1: la arquitectura es distinta — el modelo de difusión va en models/diffusion_models/ (o models/unet/ según la versión), y Flux requiere dos codificadores de texto en models/text_encoders/: clip_l.safetensors y t5xxl_fp16.safetensors (o t5xxl_fp8_e4m3fn_scaled.safetensors para ahorrar VRAM). El VAE (ae.safetensors) va en models/vae/. Flux.1 schnell está disponible libremente desde black-forest-labs/FLUX.1-schnell en HuggingFace (23,8 GB en full precision, 17,2 GB en fp8). Flux.1 dev está bajo licencia gated — hay que aceptar las condiciones de uso en HuggingFace antes de descargarlo.
Reverse proxy Nginx con autenticación
Crear el archivo de autenticación básica
apt install -y apache2-utils && htpasswd -c /etc/nginx/.htpasswd su_usuario. ComfyUI no tiene autenticación nativa: sin este paso, su instancia está abierta a todo el mundo.Configurar el virtual host de Nginx
Cree
/etc/nginx/sites-available/comfyuicon:server { listen 443 ssl; server_name comfy.sudominio.com; ... auth_basic "ComfyUI"; auth_basic_user_file /etc/nginx/.htpasswd; location / { proxy_pass http://127.0.0.1:8188; proxy_read_timeout 300s; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }. La actualización WebSocket es obligatoria para la API en tiempo real de ComfyUI.Obtener el certificado Let's Encrypt y activar
certbot --nginx -d comfy.sudominio.com && ln -s /etc/nginx/sites-available/comfyui /etc/nginx/sites-enabled/ && nginx -t && systemctl reload nginx. Luego cierre el puerto 8188 en el firewall:ufw deny 8188.
Instalar ComfyUI Manager y los custom nodes
ComfyUI Manager es la extensión imprescindible para gestionar los custom nodes desde la interfaz gráfica. En Python venv: cd /opt/comfyui/custom_nodes && git clone https://github.com/Comfy-Org/ComfyUI-Manager.git && cd ComfyUI-Manager && pip install -r requirements.txt. Luego relance ComfyUI con python main.py --enable-manager --listen 0.0.0.0. Aparece un icono «Manager» en la interfaz: puede instalar, actualizar y desactivar custom nodes populares (WAS Node Suite, ControlNet Preprocessors, IP-Adapter, etc.) sin línea de comandos. En Docker, monte un volumen en custom_nodes/ para que las instalaciones sobrevivan a los reinicios del contenedor.
ComfyUI frente a AUTOMATIC1111 (Stable Diffusion WebUI)
Desplace la tabla
| Criterio | ComfyUI | AUTOMATIC1111 |
|---|---|---|
| Enfoque | Flujos de trabajo nodales visuales | Interfaz de pestañas clásica |
| Reproducibilidad | Excelente (flujo exportado en JSON) | Limitada a los parámetros introducidos |
| Consumo de VRAM | Optimizado, gestiona mejor las GPU pequeñas | Más exigente a igual configuración |
| Curva de aprendizaje | Más pronunciada (lógica de grafo) | Más accesible para empezar |
| Automatización por API | Nativa y granular | API presente pero menos flexible |
| Modelos recientes (Flux, SD3) | Soporte rápido y de referencia | Soporte a menudo más tardío |
| Custom nodes / extensiones | Ecosistema nodal muy rico | Amplio catálogo de extensiones |
| Caso de uso ideal | Pipelines avanzados y automatización | Generación interactiva rápida |
Solución de problemas: 4 errores frecuentes
En un VPS recién configurado, varios errores aparecen de forma sistemática. Aquí se detallan las causas y correcciones.
Errores frecuentes y soluciones
- CUDA not available / Using CPU: ComfyUI no detectó GPU. Causas: PyTorch instalado sin soporte CUDA, o controladores NVIDIA ausentes. Compruebe con
python -c "import torch; print(torch.cuda.is_available())". Si devuelveFalse, reinstale PyTorch con--index-url https://download.pytorch.org/whl/cu124. En Docker, verifique que el NVIDIA Container Toolkit está instalado y que lanza con--gpus all. - CUDA out of memory (OOM): el modelo no cabe en la VRAM. Añada
--lowvramal lanzar ComfyUI: este flag fuerza la descarga de los codificadores de texto a la RAM del sistema. Para Flux con 8 GB de VRAM, use también la variante fp8 del modelo. Como último recurso,--novramdescarga todo a RAM (muy lento). Reducir la resolución de generación (512×512 en lugar de 1024×1024) también ayuda de inmediato. - ERROR: Could not find model / model not found: el archivo no está en el lugar correcto. ComfyUI busca checkpoints en
models/checkpoints/, modelos de difusión Flux enmodels/diffusion_models/(omodels/unet/), codificadores de texto enmodels/text_encoders/. Un archivo.safetensorsen la subcarpeta equivocada no aparecerá en la interfaz. Actualice la lista con el botón «Refresh» en el nodo de carga de modelos. - Port 8188 already in use: un proceso ComfyUI u otra aplicación ya está usando el puerto.
lsof -i :8188identifica el PID. Lance ComfyUI en otro puerto con--port 8189y actualice su configuración de Nginx. En Docker, el conflicto puede venir de un contenedor detenido pero no eliminado:docker rm comfyuiantes de reiniciar.
Para industrializar la generación, aproveche la API: envíe sus flujos de trabajo por POST a /prompt y recupere los resultados mediante el WebSocket /ws, que notifica el final de cada tarea. El flag --lowvram en el arranque permite ejecutar modelos SDXL con 8 GB de VRAM. Para el acceso en remoto sin certificado (desarrollo), use un túnel SSH: ssh -L 8188:localhost:8188 user@su-vps — ComfyUI permanece accesible en http://localhost:8188 desde su equipo sin ninguna exposición pública.