Introducción
El modelo de generación de imágenes Flux.1-Dev (conocido popularmente como "Deep Sea Illusion") ofrece resultados impresionantes y detallados. Sin embargo, la configuración inicial en un sistema Linux como Ubuntu puede representar un desafío. Esta guía proporciona un flujo de trabajo integral y verificado para desplegar el modelo en Ubuntu 20.04 LTS mediante contenedores Docker, simplificando drásticamente la gestión de dependencias complejas como los controladores de GPU y CUDA.
Requisitos previos del sistema y hardware
Antes de proceder, verifique que su entorno cumple con las especificaciones mínimas necesarias para ejecutar el modelo de forma estable.
- Sistema Operativo: Ubuntu 20.04 LTS. Confirme la versión con el comando
lsb_release -a. - GPU: Se requiere una tarjeta gráfica NVIDIA con al menos 8 GB de VRAM (por ejemplo, GTX 1070 Ti o superior). Se recomiendan 12 GB o más (RTX 3060, RTX 3080, etc.) para trabajar con resoluciones más altas.
- Controlador NVIDIA: Es fundamental. Verifíquelo con
nvidia-smi. El comando debe mostrar una tabla con la información de la GPU y la versión de CUDA compatible. Si no está instalado, utilice la herramienta "Controladores Adicionales" de Ubuntu para instalar la versión propietaria recomendada y reinicie el sistema.
Preparación del entorno de contenedores
Utilizaremos Docker para encapsular la aplicación y todas sus dependencias, lo que garantiza un despliegue limpio y reproducible.
Instalación de Docker
Ejecute los siguientes comandos en orden para instalar Docker Engine:
# Eliminar versiones antiguas potencialmente conflictivas
sudo apt-get remove docker docker-engine docker.io containerd runc
# Instalar paquetes necesarios y agregar la clave GPG oficial
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /usr/share/keyrings/docker.asc
# Agregar el repositorio estable de Docker
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
# Instalar Docker Engine, CLI y plugins
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Probar la instalación
sudo docker run hello-world
# Permitir ejecutar docker sin sudo (requiere logout)
sudo usermod -aG docker $USER
Importante: Después de ejecutar el último comando, cierre sesión y vuelva a iniciarla para que los cambios en los grupos de usuario surtan efecto.
Instalación de NVIDIA Container Toolkit
Este componente es esencial para que los contenedores Docker puedan acceder a la GPU.
# Configurar repositorio y clave GPG
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
# Instalar el toolkit
sudo apt-get install -y nvidia-container-toolkit
# Configurar Docker para usar NVIDIA runtime
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
# Verificación final: ejecutar un contenedor de prueba con GPU
docker run --rm --gpus all nvidia/cuda:12.2.0-base-ubuntu20.04 nvidia-smi
Si el último comando muestra la tabla de información de su GPU, el entorno está listo para el siguiente paso.
Despliegue y ejecución del modelo Flux.1-Dev
Con el entorno preparado, desplegar el modelo es un proceso directo mediante contenedores Docker preconfigurados.
Obtención y ejecución de la imagen contenedor
Extraiga la imagen del modelo de un registro y ejecútela con los parámetros adecuados. Asegúrese de crear primero un diretcorio en su sistema para almacenar las imágenes generadas.
# (Ejemplo) Crear un directorio de salida en el host
mkdir ~/flux-output
# Ejecutar el contenedor del modelo
docker run -d \
--name flux-illusion \
--gpus all \
-p 7860:7860 \
-v ~/flux-output:/app/output \
registry.example.com/flux.1-dev:latest
Desglose de los parámetros clave:
-d: Ejecuta el contenedor en segundo plano.--name flux-illusion: Asigna un nombre identificable al contenedor.--gpus all: Otorga acceso al contenedor a todos los recursos de la GPU del host.-p 7860:7860: Mapea el puerto 7860 del contenedor al host. La interfaz web del modelo estará disponible en este puerto.-v ~/flux-output:/app/output: Monta el directorio~/flux-outputde su máquina host dentro del contenedor en la ruta/app/output. Las imágenes creadas se guardarán aquí y persistirán aunque el contenedor se elimine.
Acceso y validación del servicio
Una vez iniciado, verifique el estado y acceda a la interfaz:
- Compruebe que el contenedor está en ejecución:
docker ps | grep flux-illusion. - Revise los registros para confirmar la carga exitosa del modelo:
docker logs flux-illusion. Busque mensajes como "Model loaded" o "Running on http://0.0.0.0:7860". - Abra su navegador web y navegue a
http://localhost:7860(o la dirección IP de su servidor). - Ingrese una descripción en el campo de texto (ej: "un paisaje oceánico con ruinas submarinas al atardecer, estilo fantástico"), ajuste los parámetros si es necesario y haga clic en "Generar".
- La imagen resultante aparecerá en la interfaz y se guardará automáticamente en el directorio del host que configuró.
Solución de problemas y administración
Errores comunes
- Error con el parámetro
--gpus: Indica que NVIDIA Container Toolkit no se instaló o configuró correctamente. Repita los pasos de la sección de instalación del toolkit, centrándose en la verificación final connvidia-smi. - Falta de memoria (Out of Memory - OOM): Reduzca la resolución de salida (ej: de 1024x1024 a 512x512) y establezca el tamaño del lote (Batch Size) en 1 dentro de la interfaz web. Considere usar un programador (scheduler) más eficiente como
DPMSolverMultistepsi está disponible.
Comandos útiles para la administración del contenedor
# Detener el contenedor
docker stop flux-illusion
# Iniciar un contenedor detenido
docker start flux-illusion
# Ver los registros en tiempo real
docker logs -f flux-illusion
# Eliminar el contenedor (debe estar detenido primero)
docker rm flux-illusion
# Para actualizar a una nueva versión de la imagen:
docker stop flux-illusion && docker rm flux-illusion
docker pull registry.example.com/flux.1-dev:latest
# Volver a ejecutar con el mismo comando docker run inicial