Generador de imágenes IA autoalojado: hardware real
Compara el rendimiento real: un VPS CPU tarda 10-20 minutos con SDXL, mientras un checkpoint de 6.94 GB exige GPU y espacio para ComfyUI.
Qué necesita realmente un generador de imágenes con IA autoalojado
Un generador de imágenes con IA autoalojado consta de una aplicación web y un archivo de modelo. La aplicación es ComfyUI y se ejecuta en cualquier servidor Linux. El modelo determina el hardware necesario. Un checkpoint de la clase SDXL es un único archivo de 6.94 GB y necesita permanecer en la memoria de la GPU. Este hecho determina todo el presupuesto, así que consulta la escala de hardware siguiente antes de contratar un servidor.
El resumen es sencillo: un VPS sin GPU puede instalar y ofrecer el software, y puede generar imágenes de 512x512 con un modelo Stable Diffusion 1.5 antiguo en uno o dos minutos por imagen. El mismo servidor ejecutando SDXL a 1024x1024 tarda entre diez y veinte minutos por imagen. No se trata de una configuración defectuosa. Es una cuestión de cálculo, y esta guía lo explica.
Por qué el tamaño del modelo determina la máquina
La generación de imágenes ejecuta un bucle de eliminación de ruido. Una representación de 30 pasos procesa la imagen completa con el modelo 30 veces, y cada paso lee todos los pesos. SDXL en precisión media ocupa aproximadamente 6.9 GB de pesos, por lo que una representación de 30 pasos mueve aproximadamente 200 GB en la memoria antes de mostrar una imagen.
Una GPU con 24 GB de memoria de vídeo (VRAM, la memoria soldada junto al chip gráfico) lee a cientos de gigabytes por segundo y mantiene los 6.9 GB completos al mismo tiempo. Una VPS con CPU lee la RAM del sistema a decenas de gigabytes por segundo y no tiene hardware matricial para las convoluciones, por lo que el mismo bucle se ejecuta entre uno y dos órdenes de magnitud más lento. Este es el mismo argumento basado en el ancho de banda de memoria que se aplica a los modelos de texto, y conviene leerlo junto con cuándo merece realmente la pena pagar por una VPS con GPU.
La generación de imágenes se diferencia de la generación de texto en un aspecto importante. Un modelo de chat transmite tokens, por lo que una máquina lenta sigue siendo utilizable porque las palabras aparecen mientras las lees. Una imagen solo aparece cuando termina el último paso. Si es lenta, solo puedes mirar una barra de progreso.
La escala de hardware, con cifras reales
El bloque siguiente contiene cifras habituales para una imagen SDXL de 1024x1024, con 30 pasos y el muestreador Euler, a fecha de julio de 2026. Tómalas como órdenes de magnitud. El muestreador, el número de pasos y la resolución pueden modificarlas.
The data behind this chart
[
{
"label": "8 vCPU VPS, no GPU",
"seconds_per_image": 780
},
{
"label": "8GB VRAM GPU",
"seconds_per_image": 32
},
{
"label": "12GB VRAM GPU",
"seconds_per_image": 18
},
{
"label": "24GB VRAM GPU",
"seconds_per_image": 9
}
]La fila de CPU indica 780 segundos, aproximadamente trece minutos. La tarjeta de 24 GB tarda 9 segundos. Esa es la diferencia que estás pagando.
Interpreta la escala de esta forma. Por debajo de 8 GB de VRAM, SDXL sigue funcionando porque ComfyUI descarga automáticamente capas en la RAM del sistema y puede utilizar una tarjeta con tan solo 1 GB. La descarga de capas añade tiempo en cada paso, por lo que una tarjeta de 6 GB tarda cerca de un minuto por imagen, no de treinta segundos. Con 8 GB, el modelo base cabe y el renderizado se ejecuta sin problemas. Con 12 GB, puedes mantener un ControlNet o dos junto al checkpoint sin descargar capas. Con 24 GB, puedes ejecutar SDXL, el refiner y el escalado en un único flujo de trabajo. También puedes empezar a entrenar adaptadores LoRA, que necesitan mucha más memoria que la generación.
Qué puede hacer y qué no puede hacer un VPS con CPU
Puede hacer más de lo que muchos esperan y menos de lo que sugiere el marketing. Defina claramente el límite.
Un VPS con CPU puede instalar ComfyUI, servir la interfaz web, almacenar la biblioteca de modelos, ejecutar la cola y generar imágenes sin ninguna GPU. Con Stable Diffusion 1.5 a 512x512 y 20 pasos, espere aproximadamente entre 60 y 150 segundos por imagen en 8 vCPU modernas con 16 GB de RAM. Para un trabajo por lotes que se ejecuta durante la noche o para un endpoint de imágenes de bajo volumen detrás de una cola, el rendimiento es suficiente.
Un VPS con CPU no permite trabajar de forma interactiva. Iterar sobre prompts implica generar veinte imágenes en una hora, pero a trece minutos por imagen solo obtendrá cuatro. Tampoco permite entrenar modelos. El ajuste fino de LoRA en CPU se mide en días, no en horas, así que debe considerarlo no disponible.
La regla de memoria para usar solo CPU es distinta de la regla para GPU. Los pesos se cargan en la RAM del sistema, por lo que necesita el tamaño del modelo más espacio de trabajo: aproximadamente 16 GB de RAM para SDXL y aproximadamente 8 GB para SD 1.5. Una máquina con 4 GB iniciará ComfyUI y después el asesino de procesos por falta de memoria la terminará durante la primera generación. Esto aparece como la desaparición del proceso con Killed en dmesg y sin un traceback de Python.
Instalar ComfyUI en una máquina con GPU
Estos son los comandos del proyecto original. Empiece con una instalación limpia de Ubuntu 24.04 y con el controlador de NVIDIA ya instalado. Compruebe primero el controlador, porque sin esta comprobación todos los errores posteriores parecen iguales.
nvidia-smiDebe mostrar una tabla con su tarjeta y una versión de CUDA. command not found o NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver indica que falta el controlador o que el módulo del kernel no se cargó después de una actualización. Corrija este problema antes de continuar, porque ComfyUI cambiará silenciosamente a la CPU y atribuirá el problema al software.
sudo apt update
sudo apt install -y git python3-venv python3-pip wget
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
python3 -m venv venv
. venv/bin/activate
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu130
pip install -r requirements.txtEl entorno virtual no es una recomendación opcional. PyTorch instala un árbol grande de dependencias. Instalarlo en todo el sistema en un equipo que ejecuta otros servicios puede romperlos. Compruebe que PyTorch detecta la tarjeta antes de continuar.
python -c "import torch; print(torch.cuda.is_available(), torch.cuda.get_device_name(0))"True junto con el nombre de su tarjeta indica que la pila funciona. False indica que el wheel instalado no coincide con el controlador, normalmente porque ya había un wheel de torch solo para CPU en la caché. Vuelva a instalarlo con la URL del índice anterior.
Obtén un modelo y planifica el almacenamiento
ComfyUI no incluye pesos. Coloca los checkpoints en models/checkpoints, los archivos VAE en models/vae y los adaptadores LoRA en models/loras.
cd ~/ComfyUI/models/checkpoints
wget https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensorsUsa siempre .safetensors en lugar de .ckpt. Un archivo .ckpt es un objeto Python serializado con pickle, y cargarlo ejecuta código del usuario que lo creó. El formato safetensors contiene únicamente tensores, por lo que un archivo malicioso no puede ejecutar código.
El almacenamiento es un coste que suele olvidarse. Un checkpoint base de SDXL ocupa 6.94 GB. El refiner ocupa otros 6 GB. Un único modelo ControlNet ocupa entre 1.4 y 2.5 GB, un upscaler entre 60 y 350 MB y un LoRA entre 20 y 400 MB. Cualquiera que use ComfyUI con frecuencia descarga un segundo y un tercer modelo base durante la primera semana. Reserva 100 GB de almacenamiento para una instalación operativa y supervisa también el directorio de salidas: los archivos PNG de 1024x1024 ocupan entre 1 y 2 MB cada uno, y un lote sin supervisión llena un disco pequeño sin que nadie lo advierta. Coloca models/ y output/ en un volumen que puedas ampliar y haz copias de seguridad de los archivos JSON de los workflows con algo como copias de seguridad incrementales cifradas en almacenamiento de objetos. Los pesos se pueden volver a descargar. Los workflows que ajustaste no.
Ejecútalo y accede de forma segura
cd ~/ComfyUI
. venv/bin/activate
python main.py --listen 127.0.0.1 --port 8188ComfyUI presta servicio en el puerto 8188. En un equipo que solo usa CPU, añade --cpu. Esta opción fuerza la ruta de CPU y evita que falle porque no encuentra un dispositivo CUDA.
Vincúlalo a 127.0.0.1, no a 0.0.0.0. ComfyUI no tiene pantalla de inicio de sesión ni cuentas de usuario. Cualquier persona que acceda al puerto puede poner trabajos en cola, leer todas las imágenes que hayas generado e instalar nodos personalizados. Esto permite ejecutar código arbitrario en el servidor. Accede a ComfyUI mediante un túnel SSH desde tu portátil.
ssh -N -L 8188:127.0.0.1:8188 you@your-serverDespués, abre http://127.0.0.1:8188 localmente. Si necesitas acceso real para varios usuarios, coloca un proxy inverso con autenticación delante del servicio y mantén la aplicación vinculada a localhost. El mismo razonamiento se aplica a cualquier servicio autoalojado sin autenticación. Es el patrón estándar en implementaciones de Docker Compose en un VPS.
Mantenerlo en ejecución con systemd
Una cola de renderizado que termina cuando se cierra la sesión SSH no es un servicio. Escriba /etc/systemd/system/comfyui.service.
[Unit]
Description=ComfyUI
After=network-online.target
[Service]
User=comfy
WorkingDirectory=/home/comfy/ComfyUI
ExecStart=/home/comfy/ComfyUI/venv/bin/python main.py --listen 127.0.0.1 --port 8188
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.targetsudo systemctl daemon-reload
sudo systemctl enable --now comfyui
systemctl status comfyuiactive (running) y una línea del registro que indique To see the GUI go to: http://127.0.0.1:8188 significan que está en ejecución. Tenga en cuenta que ExecStart especifica directamente el intérprete dentro del entorno virtual, porque systemd no ejecuta el perfil de su shell y activate nunca ocurre.
La recomendación práctica según el presupuesto
Si quieres probar la generación de imágenes y el costo importa más que la velocidad, elige un VPS con CPU y 16 GB de RAM, ejecuta SD 1.5 a 512x512 y acepta que cada imagen tarde uno o dos minutos. Este es el punto de entrada realista y cuesta una fracción de cualquier opción con una GPU conectada. También es el lugar adecuado para alojar la biblioteca de modelos y los flujos de trabajo mientras decides.
Si iteras sobre prompts a diario, alquila por horas una GPU con al menos 12 GB de VRAM en una nube de GPU y apágala cuando termines. La generación de imágenes es un trabajo por ráfagas, y mantener una GPU inactiva con facturación mensual es la forma más habitual de gastar de más en este caso. Conserva los checkpoints en un almacenamiento de bloques económico y móntalo.
Si prestas servicio a otras personas o entrenas adaptadores LoRA, necesitas 24 GB de VRAM y una máquina que mantengas activa. En ese punto, normalmente la misma máquina también resulta rentable al ejecutar un modelo de lenguaje local, que es la configuración descrita en alojar un LLM con Ollama.
Independientemente del nivel que elijas, mide tu propia máquina antes de aceptar cualquier cifra publicada. Ejecuta el mismo prompt cinco veces y lee los segundos por iteración que ComfyUI muestra en su consola. Ese número indica tu posición real en la escala.
FAQ
¿Puedo ejecutar Stable Diffusion sin una GPU?
Sí. ComfyUI se ejecuta con python main.py --cpu y genera imágenes reales sin una tarjeta gráfica. En Stable Diffusion 1.5 a 512x512, con 8 vCPU modernas, calcula entre 60 y 150 segundos por imagen. En SDXL a 1024x1024, calcula entre diez y veinte minutos. Esto sirve para lotes nocturnos y endpoints de bajo volumen. No sirve para iterar prompts, y el entrenamiento queda completamente fuera de alcance.
¿Cuánta VRAM necesito para SDXL?
8 GB permiten ejecutar SDXL cómodamente a 1024x1024. Con menos, ComfyUI descarga automáticamente capas a la RAM del sistema y sigue funcionando hasta aproximadamente 1 GB de VRAM, pero cada paso descargado aumenta el tiempo. 12 GB permiten mantener un ControlNet junto al checkpoint. 24 GB cubren el modelo base, el refiner y el escalado en un solo flujo de trabajo, y son el mínimo práctico para entrenar adaptadores LoRA.
¿Cuánto espacio en disco necesitan los modelos?
El checkpoint base de SDXL ocupa 6.94 GB por sí solo, y el refiner añade aproximadamente 6 GB más. Los modelos ControlNet ocupan entre 1.4 y 2.5 GB cada uno, los adaptadores LoRA entre 20 y 400 MB, y los upscalers hasta 350 MB. Reserva 100 GB para una instalación funcional con varios modelos base. Supervisa por separado el directorio de salida, porque los archivos PNG de 1024x1024 ocupan entre 1 y 2 MB cada uno.
¿Es seguro exponer ComfyUI en Internet?
No. ComfyUI no tiene ningún tipo de autenticación, y su sistema de nodos personalizados instala y ejecuta código Python desde la interfaz. Por tanto, un puerto abierto permite la ejecución remota de código en el servidor. Vincúlalo a 127.0.0.1, accede mediante un túnel SSH con ssh -N -L 8188:127.0.0.1:8188 you@your-server y coloca delante un proxy inverso con autenticación si más de una persona necesita acceder.
¿Por qué se terminó mi render sin mostrar ningún mensaje de error?
Si el proceso desaparece con Killed en dmesg y no aparece ningún traceback de Python, se trata del terminador de procesos por falta de memoria de Linux, no de un error de ComfyUI. En un equipo que solo usa CPU, los pesos se almacenan en la RAM del sistema. Por eso, SDXL necesita aproximadamente 16 GB y SD 1.5 aproximadamente 8 GB, además del espacio de trabajo. Añade RAM, añade swap o cambia a un modelo más pequeño y utiliza una resolución menor.