in

Thug lifeThug life GeekyGeeky

Cómo usar Stable Diffusion sin tarjeta de vídeo (guía CPU)

¿Falta GPU pero sobran núcleos? ¡Prueba con esto!

Stable Diffusion sin tarjeta de vídeo

La generación de imágenes con inteligencia artificial ha tomado a la Web y las redes sociales por asalto. Las soluciones online son cada vez más robustas y avanzadas, pero la ejecución local de modelos tiene dos ventajas fundamentales, que son su gratuidad, y la eliminación de los límites impuestos por las plataformas en línea. La mejor opción offline sigue siendo Stable Diffusion, pero su configuración estándar recomienda tarjetas gráficas Nvidia. Por suerte, recomendación no significa obligación, y hoy vamos a explorar una forma de redireccionar a Stable Diffusion para que utilice el CPU…


¿Acaso deseas mojarte los pies en las aguas de la generación de imágenes? La forma más sencilla es abriendo una cuenta en DreamStudio o haciendo uso de Midjourney a través de Discord, pero ninguna de esas opciones es gratuita, y deberás comprar créditos una vez que hayas agotado sus pruebas de cortesía. Como alternativa, la demo pública de Stable Diffusion no se ha ido a ninguna parte, y si tienes paciencia (me refiero a la cola de espera, los errores espontáneos y «trabajar» tus prompts) puedes crear imágenes muy interesantes.

Sin embargo, también existe la generación offline, y si posees una tarjeta gráfica Nvidia compatible, es por lejos la mejor forma de obtener imágenes. ¿Las razones? Puedes explorar diferentes modelos compartidos por la comunidad, escapar a los (lógicos) límites de las ediciones online, y lo más importante, que es crear imágenes sin pagar ni un solo centavo. ¿Pero qué sucede si la tarjeta de vídeo no es una opción? En ese caso, la solución es convencer a Stable Diffusion para que utilice el CPU.


Antes de comenzar…

Debes moderar tus expectativas. El proceso sacrifica tiempo a cambio de compatibilidad. El rendimiento exacto depende de cada procesador y qué tan fuertes sean sus núcleos («núcleos» en plural, definitivamente necesitas un chip multicore y 16 GB de RAM para esto), pero en promedio deberás esperar unos cinco minutos por imagen configurada a 20 pasos. Algunos métodos de sampling requieren entre 30 y 40 para alcanzar resultados óptimos, por lo tanto, hay que armarse de paciencia.


Cómo configurar a Stable Diffusion sin tarjeta de vídeo

Stable Diffusion sin tarjeta de vídeo
El WebUI de Stable Diffusion, versión Automatic1111, funcionando sin GPU

  • Luego llega el turno de Git para Windows. Al momento de escribir estas líneas, su último build es el 2.38.0, compatible con sistemas de 64 bits.

  • Dos opciones aquí: Puedes usar el comando git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git para descargar el repositorio completo, o realizar esa misma descarga manualmente, haciendo clic en el botón verde Code, y luego eligiendo Download Zip. La primera ruta te permite usar git pull para actualizarlo más tarde, y con la segunda necesitas descargar el zip en cada ocasión. De todas maneras, la instalación de git es obligatoria.

  • Una vez descargado el modelo, deberás cambiar su nombre a model.ckpt, y colocarlo dentro de stable-diffusion-webui-master\models\Stable-diffusion\. El resto de los modelos se descargan automáticamente con la primera ejecución.

  • No hemos salido de la jungla aún. La clave para que esto funcione es forzar el uso del CPU, y al mismo tiempo indicar que no hay dispositivos CUDA presentes.

  • Para lograr esto, debes editar el archivo webui.bat, y añadir dos línea como lo muestra la imagen más abajo: set CUDA_VISIBLE_DEVICES=-1, y set COMMANDLINE_ARGS=–precision full –no-half –use-cpu all –skip-torch-cuda-test –autolaunch. Guarda los cambios.

Stable Diffusion sin tarjeta de vídeo
El archivo webui.bat debe quedar tal y como se puede apreciar aquí, con estas líneas adicionales

  • Abre una consola con privilegios elevados, y ejecuta webui.bat. Dicha elevación no es estrictamente necesaria, pero evita cualquier conflicto potencial con Windows.

  • Si WebUI necesita algo más, es muy probable que trate de descargarlo automáticamente. Este es el comportamiento esperado. Si todo sale bien, el WebUI de Stable Diffusion se abrirá en la pestaña de tu navegador predeterminado, con dirección 127.0.0.1:7860.

  • Ingresa un prompt, y limita la cantidad de pasos a 20 para comenzar. No todos los samplers funcionan en modo CPU (por ejemplo, DDIM), y mi sugerencia es permanecer en Euler A o LMS. Un clic en Generate, y a esperar.

Stable Diffusion sin tarjeta de vídeo
Stable Diffusion a puro CPU, 16 hilos
Por más que configuremos el uso del CPU, algunos samplers simplemente no funcionarán

¡Eso es todo! Con estos pasos, la generación de imágenes usando Stable Diffusion y un procesador se hará realidad. El resto es… paciencia. En lo personal puedo crear 16 imágenes en GPU por cada una en CPU, por lo que estamos ante una diferencia enorme de rendimiento, sin embargo, calibrar el número de pasos y la resolución te ayudarán a reducir el tiempo de procesamiento. ¡Buena suerte!


Reportar

¿Qué te pareció?

Escrito por Lisandro Pardo

3 Comments

Leave a Reply
    • Estoy teniendo algunos problemas para inyectar el magnet directamente, pero ahora el enlace te lleva a la sección de Dependencias de Automatic1111, el magnet está allí. Al mismo tiempo, la versión 1.5 del modelo ya está circulando, tal vez hayas descargado esa versión para cuando leas esto…

  1. El codigo de la imagen es distinto al de la publicacion, compare ante de pegar aqui se lo dejo arreglado igual compare con la imagen:
    set CUDA_VISIBLE_DEVICES=-1
    set COMMANDLINE_ARGS=–precision full –no-half –use-cpu all –skip-torch-cuda-test –autolaunch

Responder a Lisandro Pardo Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Crecimiento exponencial

Una hoja doblada 400 veces y el crecimiento exponencial

CPU Monitor and Alert

CPU Monitor and Alert: Detecta el uso excesivo del CPU y genera alertas