ComfyUI + SDXL 1.0 en tu PC es posible! Imágenes AI locales

Hace unas semanas se publicó SDXL 1.0, un modelo generativo de imágenes que, debido al tamaño que tienen, no funcionaba en mi instalación de Automatic 1111 ni SD.Next, los programas que utilizaba para crear imágenes AI en mi propia PC.

Creyendo que estaba todo perdido me quedaba por probar uno más: ComfyUI. La razón era que tenía un esquema totalmente visual y muy interesante para aprender más, pero, spoiler alert, resultó que servía para SDXL!!!!! Si, con mi PC limitada y todo...

Aquí este mismo posteo pero en video para los que no quieran leer tanto:

Aclaro mi hardware para que tomen de referencia: utilizo una Asus ROG Zephyrus G15 GA503RM con 40GB de RAM DDR5-4800, dos M.2 (1Tb+2Tb), y que viene con una NVidia RTX 3060 con 6GB de VRAM y un Ryzen 7 6800HS. 

Con 6GB de VRAM la gran mayoría de los modelos de lenguaje LLM fallan y los de imágenes funcionan si me quedo con los que fueron entrenados a 512x512 pixeles. Cualquier cosa más arriba y no tengo suficiente memoria de video que es donde casi todos (vean mi video de GPT4All) fallan.

Pero he aquí que todavía hay algo de esperanza. 

A tener en cuenta: entiendo que si se meten a probar esto ya tienen instalado Python (la última versión nunca sirve, averigüen bien cuál deben usar) y git porque sino están un poco al horno, hay algo de developer en todo este trabajo, jeje.

ComfyUI

El desarrollo de esta ComfyUI es muy interesante porque su autor la creó para entender cómo funcionaba todo esto. Es decir, uno puede utilizar scripts como Automatic1111 pero no explica qué es cada cosa, ni por qué, todo sucede detrás de una cómoda interfaz de usuario.

El creador de Comfy decidió ir a un diagrama de flujos que fuese lo suficientemente claro y, además, potente como para hacer lo mismo pero un poquito más fácil de aprender. Al principio choca un poco todo porque uno no entiende qué está viendo ni por qué, pero les doy algunas referencias para que entiendan.

Primero que nada uno debe cargar en memoria los "Checkpoints", que son los modelos, luego crear una imagen "latente" de la resolución que queremos (ej: 512x512).

Luego está la entrada de texto, la positiva y la negativa, esto se envía al KSampler que toma el texto, lo pasa por el modelo y genera un resultado que hasta ahora no es una imagen, se hacen X pasos (uno indica cuántos), se indica la "semilla" (Seed) y una vez terminado pasa al decoder VAE.

Es recién ahí que los números toman forma en una imagen y pasan a ser exportados como tal.

Esto, en cualquier otro programa, se pasa de largo y no se explica, pero aquí uno puede ver el paso a paso de qué está haciendo de una forma totalmente visual.

Lo interesante: una vez que se ejecutó por primera vez, salvo que se cambie un parámetro, no se vuelve a ejecutar un paso innecesario. Por ejemplo, la primera vez tiene que cargar el checkpoint, pero la segunda, si es el mismo, comienza directamente desde los textos del prompt, si éstos no cambiaron va derecho al KSampler y así. Ahorrando tiempo.

Y otra cosa relevante, SDXL 1.0 viene en dos partes, el Base y el Refiner, el primero genera una imagen más ruidosa y el segundo la refina. Usando Automatic 1111 uno debería ejecutar primero uno, luego cargar el otro, tomar la imagen, pasarla de nuevo, etc. Con ComfyUI puedo hacer ambas cosas en un sólo tirón y con mi VRAM limitada, mejor imposible.

Modelos

Hace muy pocos días se liberó SDXL 1.0, una versión de Stable Diffusion sin bloqueos por copyright, o al menos no que ellos sepan, que tiene dos modelos, uno para la creación de una imagen base y otro para refinar el resultado.

No son los únicos modelos que podemos usar, vengo probando otros muy interesantes también, por ejemplo con DreamShaper XL1.0 obtengo mejores resultados de rostros, aun cuando SDXL está muy bien al respecto, tiene algunas fallas en rostros y manos que recuerdan a la versión 4 de MidJourney.

MidJourney es el rival "a vencer", se basa en Stable Diffusion pero todo el entrenamiento es cerrado y lo hace su propia empresa, no se sabe con certeza cuánto han utilizado ni las fuentes, pero sí que logran una calidad y una coherencia mucho mayor.


 
Es posible que sus procesos "tomen prestado" mucho de lo que es libre y podemos descargar y probar, pero al mismo tiempo han logrado un producto que es superior y, como se tiene que pagar para usar, es un interesante negocio.

Todos los modelos que menciono aquí, en cambio, los pueden descargar gratuitamente sin problemas.

Recuerden que los modelos suelen ser archivos muy grandes, esto implica también mucha memoria de video y mucho almacenamiento necesarios.

Y si quieren modelos pueden descargar toneladas de Civitai, les dejo abajo los que recomiendo para mi workflow personal:

SDXL 1.0 Base

SDLX 1.0 Refiner

Fixed SDXL 0.9 VAE

4x_NMKD-Siax_200k.pth upscaler

4x-Ultrasharp.pth upscaler

DreamShaper XL1.0

Workflows

Empecé con SytanSD quien creó un workflow más elaborado que el que viene de base en ComfyUI.

Cada Workflow es un archivo JSON editable que contiene los módulos, sus parámetros y cómo se conectan entre sí.

El de Sytan está bien y tiene una ventaja: ya está preparado para funcionar con SDXL 1.0 base y su refiner, es decir, los dos nuevos modelos libres de alta resolución (1024x1024) por lo que pude obtener resultados muy buenos y muy rápido.

Pero necesitaba más.

Así pues, busqué otros hasta que di con Searge SDXL, aquí ya pasamos a palabras mayores de complejidad y eso que es tan sólo un workflow más ¿No? Pues no, tiene muchos módulos nuevos que recomiendo instalar.

No sólo suma nuevos módulos, además ofrece, entre ellos, la posibilidad de hacer upscaling de las imágenes sumando más modelos para ello.

Lo interesante es que podemos pasar una imagen de 1024x1024 a 2048x2048 con bastantes buenos resultados, algo que, si uno viene de un modelo de 512x512 es más que necesario.

La instalación es tan sencilla como la de ComfyUI, hay que ejecutar el comando correspondiente de Git en la carpeta custom_nodes y reiniciar ComfyUI.

Obviamente faltarán los modelos de upscaling y la búsqueda de éstos fue otro tema.

Upscaling

Levantar la resolución de una imagen digital implica "inventar" qué hay en los píxeles intermedios, hay algoritmos muy conocidos, pero, ya que estamoso usando una interfaz para AI ¿Por qué no usar modelos para esto? Pues bien, existen y están disponibles.

En el workflow que estuve usando se hace un primer upscaling x4 y luego una reducción a x2, es un proceso doble para mejorar el resultado final y, si bien agrega más tiempo al proceso de cada imagen, me gustó el resultado final.

Combina dos 4x_NMKD-Siax_200k.pth upscaler y 4x-Ultrasharp.pth upscaler.

La ventaja de esto es que podemos crear imágenes HD con lujo de detalles.

Mi Workflow personal

Combinando tanto el de Sytan con el de Searge creé mi propio Workflow que les dejo para descargar.

Antes de meterse con éste les recomiendo instalar en ComfyUI un manager para los módulos necesarios: ComfyUI-Manager

Otro más que se instala con git en la carpeta custom_nodes y luego de esto tenemos un administrador que permite instalar módulos de manera sencilla, pueden probar con ComfyUI-Impact-Pack o SeargeSDXL que creo que los tiene listados.

Si le falta algo lo descargará, no sé si descarga los modelos , pero la mayoría se pueden conseguir en HugginFace o en Civitai.

Con este worklfow combiné los dos que más me gustaron, puedo utilizar el Refiner, hago 13 pasadas con el base y 7 con el refiner (configurable), además uso algunos módulos de Searge que me permiten hacer el upscaling del modelo y el resultado final me ha gustado mucho.

No digo que compita de igual a igual con MidJourney pero, vamos! esto lo estoy ejecutando en mi propia PC!

El tiempo de render por cada imagen ronda los 45 segundos, dependiendo de modelo y del upscaling, se puede sacar esto último simplemente "desconectando" uno de los nodos y listo.

Descarga de mi workflow aquí.

PS: las imágenes que adornan el post son todas creadas con mi propio workflow.

PS2: se viene concurso en el que uds dejarán los prompts como comentarios y yo haré las imágenes, estén atentos! la semana que viene lo organizo y tendrán un teléfono de regalo!!!

Si te gustó esta nota podés...
Invitame un café en cafecito.app


Otros posts que podrían llegar a gustarte...

Comentarios

  • ger     02/08/2023 - 10:57:36

    Me queda la duda si en una mac book pro M1 de 16 gb ram se puede levantar algo asi

    • Fabio Baccaglioni     02/08/2023 - 11:48:26

      si, funciona, en la misma página de Comfy dice y explica luego los pasos:


      Apple Mac silicon
      You can install ComfyUI in Apple Mac silicon (M1 or M2) with any recent macOS version.

  • joaquin     02/08/2023 - 13:41:56

    No podré probarlo porque estoy limitado pero las imágenes del post hablan por si solas, impresionante

  • Alejandro     02/08/2023 - 16:36:08

    Parece bastante complicado, varios programas, muchos pasos, archivos con mucho peso, y ademas hay que tener un maquinon. Cuando lei "40 GB de ram" quede con la boca abierta :D. Yo a duras penas tengo una pc con 16 gb de ram :D, pero la verdad mi pc esta muy desactualizada :|

    Me interesa el concurso, pensare algunos prompts

    • Fabio Baccaglioni     02/08/2023 - 17:53:58

      es un sólo programa, es sencillo, con 16Gb de RAM se puede usar (eso sí, no tengas mucha cosa abierta), no diría que es exclusivo para maquinones, pero si estás medio desactualizado... y sí, pero si es por aprender y experimentar podés usar SD 1.5 que está entrenado en 512x512 y algo va a salir! imágenes pequeñas pero aprendés un montón igual.

      • Alejandro     03/08/2023 - 09:15:12

        Vere que puedo hacer con mi vieja pc
        Actualmente estoy armando una nueva pc: AMD ryzen 5 7600, Radeon 5700xt 8gb, mother asus prime B650M A. Lo proximo: memoria ram 32 gb ddr5, 2 discos m2 2tb y un nuevo gabinete :D
        Cada mes compro un nuevo componente, espero en septiembre o octubre poder tener todos los componentes :D
        Pero maldita sea, cada semana el dolar sube y sube, y todo cada vez cuesta mas caro! :D

    • Danbat     02/08/2023 - 17:58:38

      Yo le puse una RTX 3060 a mi máquina (~300 K$) con 16 GB de RAM y anda bien. Igual estoy por agregar otros 16 GB para más placer.

  • Guille     02/08/2023 - 17:56:03

    Vamos a ver como me anda con este setup:

    CPU AMD Ryzen™ 7 5800X × 16
    RAM 32.0 GiB
    GPU AMD Radeon™ RX 6750 XT (12GB)

    Otro buen concurso sería que dado el mismo prompt hagamos cada uno unas imagenes distintas, y las mas votadas son publicadas en el hall of fame, y las peores en el hall of shame

    • Danbat     02/08/2023 - 18:00:31

      Contá cómo te va con el Radeon. Yo tengo una 590 de 8 GB y no me lo tomaba así que hacía todo por procesador (~12 min/imagen). Me compré una RTX 3060 para poder hacer las cosas más rápido.

      • Guille     02/08/2023 - 19:39:56

        Anda muy bien, con el workflow de Fabio tarda 60 segundos
        Para la Radeon 6750 es con:
        HSA_OVERRIDE_GFX_VERSION=10.3.0 python main.py

        Dejé algunos ejemplitos como respuesta al tweet de Fabio

    • Fabio Baccaglioni     02/08/2023 - 18:47:44

      podríamos armar nuestra comunidad de prompts para que sea independiente de otras plataformas, si les interesa podemos crear una, hay uno tipo instagram para fediverso que podríamos usar :P

      • Gonzalo     08/11/2023 - 15:46:52

        Interesado en comunidad si.

  • Gus     03/08/2023 - 05:27:59

    Mí humilde i9 de 12th gen con 128gb, dos M2 y 3080ti bastaran????

    O mejor hago upgrade a un par de 4090....

    La duda

    :D:D:D:D:D:D

    • Fabio Baccaglioni     03/08/2023 - 10:27:30

      jajaj tu humilde i9 podrá manejarlo

  • Martin Aberastegue     03/08/2023 - 12:09:38

    Muy bueno!! Incluso la opción de Google Colab va muy bien para probar y jugar un poco con ComfyUI antes de instalar algo en la PC. Estuve un ratito con eso y para lo básico y gratis, e ir amigándose con la interface esta genial.

  • Hugo MdQ     03/08/2023 - 20:04:24

    Ahi lo pude hacer.
    En mi Ryzen 5, 16gb y RTX3060 me demora mas o menos minuto y medio cada imagen (sin el upscaling, usé otro workflow). El resultado increíble realmente.

    Espero el concurso!

  • Bruno Antonio Gondell     05/08/2023 - 14:48:59

    Guille dijo:

    Anda muy bien, con el workflow de Fabio tarda 60 segundos
    Para la Radeon 6750 es con:
    HSA_OVERRIDE_GFX_VERSION=10.3.0 python main.py

    Dejé algunos ejemplitos como respuesta al tweet de Fabio


    Guille, esto en Windows??

    • Fabio Baccaglioni     06/08/2023 - 00:58:10

      deberías configurarlo como variable de entorno de windows, tengo entendido

    • Guille     06/08/2023 - 20:40:34

      En mi caso es Gentoo Linux

Deje su comentario:

Tranquilo, su email nunca será revelado.
La gente de bien tiene URL, no se olvide del http/https

Negrita Cursiva Imagen Enlace


Comentarios ofensivos o que no hagan al enriquecimiento del post serán borrados/editados por el administrador. Los comentarios son filtrados por ReCaptcha V3.