Imagen generada con Fooocus desde Debian en local.

Fooocus: Tu IA local para generar imágenes

Aplicaciones 13 de jun. de 2024

Una IA Local para generar imágenes

Seguro que en algún momento te has planteado usar una IA Local en tu equipo para generar imágenes, pero no tienes muy claro como instalarla o si funcionará correctamente.

En este artículo te explico paso a paso como puedes usar una IA generativa en tu equipo local que funciona incluso sin disponer de GPU.

El repositorio oficial de Github de Fooocus es el siguiente:

GitHub - lllyasviel/Fooocus: Focus on prompting and generating
Focus on prompting and generating. Contribute to lllyasviel/Fooocus development by creating an account on GitHub.
Github de Foocus

Si dispones de una tarjeta gráfica (GPU) para acelerar la generación de imágenes, comprueba que está soportada, si no dispones de una o no está soportada tendrás que usar la CPU para la generación, lo cual es bastante más lento y consume CPU.

Instalación de Fooocus

El procedimiento es muy sencillo, como requisito tienes que tener instalado Python para que pueda funcionar.

En mi caso para no mezclar librerías de Python con las del sistema uso  venv para separar los entornos de trabajo de las aplicaciones, con lo que necesitarás instalar el gestor de entornos virtuales de Python:

# Averiguar version de Python actual
$ python3 --version
  Python 3.11.xx

# Sustituye debajo 3.11 por tu version de Python
sudo apt install python3.11-venv

Clonamos el repositorio de Fooocus:

cd ~ 
git clone https://github.com/lllyasviel/Fooocus.git

Nos cambiamos al directorio y creamos el venv:

cd Fooocus/
python3 -m venv fooocus_env

Ahora simplemente lo activamos e instalamos los requerimientos necesarios para que funcione (tarda un poco en descargar todo lo necesario)

source fooocus_env/bin/activate
pip install -r requirements_versions.txt

Uso de la IA Fooocus

Con todo correctamente descargado e instalado ya puedes usar la IA:

# Para equipos con GPU soportada
python entry_with_update.py

# Para equipos usando sólo CPU (y 25 Gb de RAM)
python entry_with_update.py --always-cpu

Se abrirá un ventana en el navegador en el que puedes directamente escribir tu prompt a la IA para que te genere la imagen.

En mi caso he sido impaciente y directamente he escrito el promp chapucero y pulsado en el botón Generate, sin haber investigado algo más las opciones disponibles, con lo que la primera imagen ha tardado casi 12 minutos en generarse.

La imagen resultante ha sido la siguiente:

Imagen generada con Foocus en local y sin GPU

Durante el proceso de generación se generan imagenes transitorias en las que se va afinando la imagen final, las CPU's han llegado a picos del 94-99% de carga:

En cuanto se ha generado la primera imagen, he pulsado el boton Stop, pues me he dado cuenta que comenzaba a generar una segunda imagen a partir del mismo prompt:

Preparando la generación de 2ª imagen

Si activamos el check Advanced podemos cambiar la configuración y modo de funcionamiento de la IA y si seleccionamos la velocidad, podemos bajar a menos de 2-3 minutos en la generación de nuevas imágenes:

Imagen generada con Foocus en menos de 3 minutos (sin GPU)

Algunas captura de las opciones disponibles si activais el modo Advanced:

Podeis configurar dependiendo de la pestaña:

  • Settings: Velocidad en que quereis que se genere la imagen, el número de imágenes que se generen, o el formato de la imagen.
  • Style: Estilo de imagen, ya sea Realista, Anime, Cine, Cómic, Fotográfico, Ilustración antigua, etc.
  • Model: Podeis definir y ajustar parámetros sobre el modelo de IA
  • Advanced: Si quereis un resultado más limpio, vívido o artístico, o ajustar la textura de la imagen.

La imagen de la portada del artículo también la he generado mediante Foocus,  ajustando varios parámetros y se ha generado en mi equipo en menos de 3 minutos:

Imagen de la portada. Generada con la IA Foocus

Cierre de la aplicación

Cuando terminéis de generar y guardar las imágenes creadas, tan sólo teneis que cerrar la ventana del navegador y en la terminal pulsar CTRL+C

# Finalizar Foocus
CTRL+C

# Desactivar venv
deactivate

Volver a usar Fooocus

Cuando necesitéis volver a usar Fooocus, tan solo teneis que escribir lo siguiente en vuestro terminal:

# Iniciar IA Foocus
cd ~/Fooocus
source fooocus_env/bin/activate
python entry_with_update.py --always-cpu

Te puedes generar un pequeño script que realice esto e incluso crear tu propio icono lanzador para el escritorio de tu GNU/Linux.

Nota: Cada vez que selecciones en la IA de Fooocus un nuevo estilo de imagen (por ejemplo Anime) se descargará el ficheros con los modelos generativos, algunos de los modelos pueden llegar a pesar entre 4 a 6 Gb, con lo que ten cuidado si no tienes mucho espacio en tu disco duro.

A pesar del alto consumo de CPU y RAM en la generación de imágenes, al usarlo en modo CPU (en vez de usar GPU), he podido seguir trabajando con mi PC con Debian realizando otras tareas sin problemas.

Etiquetas

Luis GuLo

🐧 SysAdmin GNU/Linux - 🐳 Docker - 🖥️ Bash Scripting - 🐪 Perl - 🐬 MySQL - 👥 Formador de TI - 👥 Formador de SysAdmin's - 💢 Ansible - ☁️ Cloud Computing - ❤️ Debian GNU/Linux