Instalar ComfyUI con Stable Diffusion en Ubuntu 22.04 LTS

Publicado por P. Ruiz en

¿Qué es Stable Diffusion?

Stable Diffusion logoSi has llegado a este artículo, supongo que ya sabrás qué es Stable Diffusion. Aún así, para los más despistados, recordaré que se trata de una herramienta de inteligencia artificial creada con el objetivo de generar imágenes.

Para lograrlo, utiliza modelos de aprendizaje profundo, en particular, redes neuronales convolucionales, que producen imágenes realistas y detalladas, partiendo de un texto descriptivo o de imágenes de muestra.

Los resultados obtenidos se pueden utilizar en tareas de diseño gráfico, creación artística, ilustración e, incluso, en la mejora de imágenes ya existentes.

Stable Diffusion se publica bajo licencia Creative ML OpenRAIL-M, una licencia permisiva para el uso comercial y no comercial. Esta licencia se centra en el uso ético y legal del modelo.

Interfaces de usuario para Stable Diffusion

Existen diferentes interfaces de usuario para Stable Diffusion. Cada una ofrece sus propias características y se adaptan a distintas necesidades y diferentes niveles de habilidad de los usuarios. Las más destacadas son:

  • AUTOMATIC1111

  • ComfyUI

  • SD.Next

  • Invoke AI

  • Fooocus

  • RunDiffusion

Cada interfaz ofrece diferentes características y funciones. Esto hace que la elección dependa de los gustos y necesidades del usuario. Como habrás deducido del título del artículo, nosotros nos decantaremos por ComfyUI.

¿Qué es ComfyUI?

Como hemos dicho más arriba, ComfyUI es una interfaz de usuario para Stable Diffusion. Funciona de forma local y utiliza un flujo de trabajo basado en nodos.

Su característica principal es que basa su funcionamiento en la creación de flujos personalizados para generar imágenes sin la necesidad de codificar. Al principio puede resultar compleja de configurar, pero posiblemente sea la mejor interfaz para usar con modelos de Stable Diffusion.

Hoy aprenderemos a instalar Stable Diffusion con la interfaz ComfyUI integrada.

Requisitos previos para instalar ComfyUI con Stable Diffusion

Desafortunadamente, los requisitos de Stable Diffusion son considerables en cuanto a hardware, sobre todo, en lo relativo la GPU (del inglés, Graphics Processing Unit). No obstante, en los últimos tiempos, se ha reducido en algunos aspectos a la vez que se ha diversificado.

De todos modos, te recomiendo que uses una tarjeta gráfica Nvidia, con un mínimo de 8GB de memoria dedicada, que soporte tecnología CUDA. En mi caso, dispongo de una Nvidia GeForce GTX 1660 con 6GB de memoria, lo que me hace ir bastante justo.

Si necesitas conocer el modelos exacto de tu GPU NVidia, puedes recurrir al siguiente comando:

nvidia-smi

El resultado será una tabla con las características fundamentales del dispositivo.

Instala-ComfyUI-para-Stable-Diffusion-en-Ubuntu-2204-LTS-001

Logo NvidiaPor cierto, si necesitas ayuda con la instalación de los controladores de Nvidia, puedes consultar nuestro artículo Instalar los drivers de Nvidia en Ubuntu 22.04 LTS.

También necesitaremos disponer de Python 3. Sin embargo, si estás usando Ubuntu 22.04 LTS, probablemente no tendrás que preocuparte, porque viene instalado de forma predeterminada.

De cualquier modo, si quieres asegurarte, solo necesitas ejecutar el siguiente comando:

python3 --version

Si todo es correcto, obtendrás la versión instalada como respuesta. Si no, obtendrás un error.

Instala-ComfyUI-para-Stable-Diffusion-en-Ubuntu-2204-LTS-002

Otro requisito que deberás cumplir para seguir adelante con este artículo es disponer del software de control de versiones git. En este caso, no estará instalado por defecto pero,  si necesitas ayuda, puedes recurrir a nuestro artículo Instalar Git en Ubuntu 22.04 LTS.

De cualquier modo, si quieres comprobar que git está disponible en tu equipo, puedes usar el siguiente comando:

 git --version

Como antes, si todo es correcto, obtendrás la versión instalada. De lo contrario, obtendrás un error.

Instala-ComfyUI-para-Stable-Diffusion-en-Ubuntu-2204-LTS-003

Clonar el repositorio

La forma más sencilla de tener una versión local de ComfyUI consiste en clonar, en nuestro disco duro, su repositorio oficial, que se encuentra alojado en GitHub.

Para lograrlo, crearemos una nueva carpeta en nuestro perfil de usuario. En mi caso, he decidido llamarla sd, pero tú puedes darle el nombre que más que apetezca.

En definitiva, comienzo ejecutando un comando mkdir como este:

mkdir ~/sd

A continuación, convierto el nuevo directorio en mi ubicación predeterminada:

 cd ~/sd

Con esto estamos listos para comenzar.

Instala-ComfyUI-para-Stable-Diffusion-en-Ubuntu-2204-LTS-004

Ahora, para iniciar la clonación del repositorio, solo tenemos que usar el comando git con la siguiente sintaxis:

 git clone https://github.com/comfyanonymous/ComfyUI.git

En realidad, la tarea resulta sorprendentemente rápida.

Instala-ComfyUI-para-Stable-Diffusion-en-Ubuntu-2204-LTS-005

Crear un entorno virtual

Si vamos a utilizar el sistema de manera exclusiva para Stable Diffusion con ComfyUI, podríamos instalar las dependencias para el sistema completo. Sin embargo, si en el futuro necesitamos ejecutar otros proyectos, que tengan dependencias diferentes, podríamos experimentar conflictos.

Para evitarlo, crearemos un entorno virtual que contenga este proyecto, y todas sus dependencias, manteniéndolo aislado de cualquier otro.

Para lograrlo, necesitaremos el módulo venv, que facilita la creación y gestión de estos entornos virtuales, permitiendo especificar una versión de Python y los paquetes que se usarán en un proyecto determinado.

Por otro lado, al final de la tarea anterior, debió crearse un nuevo subdirectorio, dentro de nuestro directorio sd, con el nombre ComfyUI. Comenzaremos por convertirlo en nuestro directorio de trabajo. Para lograrlo, usaremos la siguiente orden:

cd ComfyUI

Escribimos el comando y pulsamos la tecla Intro.

Instala-ComfyUI-para-Stable-Diffusion-en-Ubuntu-2204-LTS-006

A continuación, instalaremos el módulo venv de Python usando una orden como esta:

sudo apt install python3.10-venv -y

Con el argumento -y le decimos al comando apt que asuma una respuesta afirmativa para cualquier pregunta que necesite hacernos.

Instala-ComfyUI-para-Stable-Diffusion-en-Ubuntu-2204-LTS-007

Cuando la instalación se haya completado, estaremos listos para crear el entorno virtual. Lo conseguiremos con el siguiente comando:

python3 -m venv env

Por sencillez, hemos llamado env al nuevo entorno pero, si en tu equipo van a convivir diferentes proyectos, puedes usar un nombre que sea más descriptivo.

De nuevo, escribimos el comando y pulsamos la tecla Intro.

Instala-ComfyUI-para-Stable-Diffusion-en-Ubuntu-2204-LTS-008

A continuación, activamos el nuevo entorno virtual con la siguiente orden:

source env/bin/activate

env es el nombre que hemos puesto al entorno virtual en este artículo. Si tú has usado un nombre diferente, debes asegurarte de escribir aquí el texto adecuado.

Sabremos que el entorno virtual está activo porque aparece su nombre al principio del prompt.

Instala-ComfyUI-para-Stable-Diffusion-en-Ubuntu-2204-LTS-009

Una vez activado el entorno virtual, todos los paquetes de Python que instalemos quedarán encerrados en su interior.

Instalar dependencias

Llegados a este punto, nos encontramos en la recta final de la tarea. Solo nos falta instalar una serie de dependencias. Para lograrlo, usaremos el comando pip, que es un sistema de gestión de paquetes, que nos permite administrar software escrito en Python.

En nuestro caso, comenzaremos por instalar dos herramientas:

  • Torch: Una librería enfocada al desarrollo de redes neuronales.

  • Xformers: Una librería basada en Torch que almacena bloques interoperables que pueden combinarse para crear modelos

Ambas librerías pueden instalarse en un solo paso con la siguiente orden:

pip install torch==2.1.0+cu121 torchvision==0.16.0+cu121 torchaudio==2.1.0+cu121 --extra-index-url https://download.pytorch.org/whl xformers

Escribimos, o copiamos la orden anterior y pulsamos la tecla Intro.

Instala-ComfyUI-para-Stable-Diffusion-en-Ubuntu-2204-LTS-010

Aquí comienza, probablemente, el proceso más largo de toda la tarea. Veremos que se descargan e instalan distintos componentes.

Para cada uno, el sistema nos muestra una barra de progreso, la cantidad total a descargar, la cantidad descargada, la velocidad de descarga en cada momento y el tiempo restante.

En cualquier caso, nosotros solo tenemos que esperar a que se complete.

Instala-ComfyUI-para-Stable-Diffusion-en-Ubuntu-2204-LTS-011

Una vez completado el proceso, estamos listos para instalar las dependencias propiamente dichas. En este caso, las encontramos en un archivo llamado requirements.txt, por  lo que usaremos un comando como el siguiente para instalarlas:

pip install -r requirements.txt

Una vez más, escribimos o copiamos la orden anterior y pulsamos la tecla Intro.

Instala-ComfyUI-para-Stable-Diffusion-en-Ubuntu-2204-LTS-012

Y, una vez más, veremos cómo se descargan e instalan los componentes necesarios.

De nuevo, nos limitamos a esperar unos instantes.

Instala-ComfyUI-para-Stable-Diffusion-en-Ubuntu-2204-LTS-013

Ejecutar ComfyUI

Cuando el proceso anterior termine, estaremos listos para ejecutar ComfyUI. Esto lo haremos con una orden como esta:

python3 main.py

Sin embargo, basta con que hayas reiniciado tu ordenador, para que obtengas un error. El motivo es que, siempre que queramos ejecutar ComfyUI debemos tener activo el entorno virtual que habíamos creado más arriba.

Como recordarás, esto lo conseguíamos con la orden:

source env/bin/activate

(Sustituyendo el nombre env por que que tú hayas usado, claro)

Por lo tanto, comenzaremos asegurándonos de que el entorno virtual se encuentra activo.

Instala-ComfyUI-para-Stable-Diffusion-en-Ubuntu-2204-LTS-014

Ahora, por fin, estamos listos para ejecutar ComfyUI.

Escribimos la orden de arriba y pulsamos la tecla Intro.

Instala-ComfyUI-para-Stable-Diffusion-en-Ubuntu-2204-LTS-015

En mi caso, obtengo una advertencia relacionada con CUDA, que resolveré más adelante. Lo importante es que ComfyUI ya se encuentra en ejecución.

De hecho, la salida del propio comando nos ofrece una URL que nos permitirá acceder a la interfaz desde nuestro navegador preferido.

Instala-ComfyUI-para-Stable-Diffusion-en-Ubuntu-2204-LTS-016

Solo nos queda abrir una ventana del navegador y copiar la URL anterior.

Como ves, obtenemos el resultado esperado

Instala-ComfyUI-para-Stable-Diffusion-en-Ubuntu-2204-LTS-017

Y, con esto, hemos completado el objetivo de este artículo. Espero que te haya parecido interesante.