Cómo acelerar Stable Diffusion (9 métodos que funcionan)

Cómo acelerar Stable Diffusion

Una de las ventajas significativas de utilizar Stable Diffusion localmente en su ordenador es que puede generar imágenes sin límites ni restricciones de forma gratuita. 

Pero ejecutar Stable Diffusion localmente también significa que necesita tener un ordenador suficientemente potente que pueda manejar la generación de imágenes. Cuanto mejor sea su ordenador, más rápida será la generación de imágenes en Stable Diffusion. 

Sin embargo, si no tienes un ordenador lo suficientemente potente y te cuesta generar imágenes más rápido en Stable Diffusion, este artículo es para ti. 

En esta guía, te mostraré cómo acelerar Stable Diffusion para que no tengas que esperar mucho para la generación de imágenes. 

Voy a repasar diferentes métodos y consejos que puedes aplicar para acelerar Stable Diffusion en tu ordenador. 

Dicho esto, empecemos. 

Índice del contenido
  1. Cómo acelerar Stable Diffusion
    1. Utilizar xFormers
    2. Utilice imágenes de menor tamaño
    3. Utilizar la fusión de tokens 
    4. Reducir los pasos del muestreo
    5. Asegúrese de que Stable Diffusion está utilizando su GPU
    6. Actualizar/desactualizar controladores de GPU
    7. Cambiar a una interfaz web diferente
    8. Desactivar aplicaciones y servicios innecesarios
    9. Vuelva a instalar Stable Diffusion 
  2. Preguntas frecuentes
    1. ¿Cuáles son los requisitos del sistema para ejecutar Stable Diffusion?  
    2. ¿Debo utilizar la CPU o la GPU mientras uso Stable Diffusion? 
    3. ¿Cuál es la mejor GPU para ejecutar Stable Diffusion?
  3. Conclusión 

Cómo acelerar Stable Diffusion

Si quieres que Stable Diffusion sea más rápida, sigue los métodos que se indican a continuación, que te ayudarán mucho a mejorar los tiempos de generación de imágenes. 

Utilizar xFormers

Stable Diffusion viene con una opción para activar la optimización de atención cruzada, que es una forma eficaz de acelerar Stable Diffusion. 

Entre las numerosas técnicas de optimización de la atención cruzada se incluyen Doggettx, sdp-no-mem, atención subcuadrática, etc. 

Una de estas técnicas de atención cruzada es xFormers, una biblioteca de transformadores desarrollada por el equipo de Meta AI. Esta técnica optimiza el funcionamiento de la atención, reduce el uso de memoria y mejora significativamente la generación de imágenes. 

El uso de xFormers puede suponer una diferencia de la noche al día en la velocidad de generación de imágenes, ya que es la mejor y más rápida entre todas las demás técnicas de optimización de atención cruzada. 

Si utilizas Automatic1111 WebUI para Stable Diffusion, puedes activar xFormers yendo a la página Configuración > Optimización y eligiendo xFormers en la técnica de optimización de atención cruzada. 

Hacer más rápida Stable Diffusion

Pero si ya utiliza xFormers, puede seguir los otros métodos de esta guía para acelerar aún más Stable Diffusion. 

Utilice imágenes de menor tamaño

El uso de dimensiones de imagen más pequeñas puede mejorar significativamente los tiempos de generación de imágenes en Stable Diffusion.

Generar imágenes de alta resolución en Stable Diffusion puede llevar mucho tiempo, especialmente si tienes una GPU débil. 

Reduciendo las dimensiones de la imagen, puedes acelerar mucho este tiempo. 

Aquí tienes algunos tamaños de imagen de Stable Diffuson que puedes probar: 

  • 512×512
  • 512×768
  • 768×512
  • 640×640
  • 768×768

Si no tienes una GPU suficientemente potente o una vRAM alta, te recomiendo evitar dimensiones superiores a 1024×1024 píxeles. 

Esto se debe a que la generación de imágenes a este tamaño no será lo suficientemente rápida y, a menudo, también puede encontrarse con errores de memoria insuficiente. 

Y si te preguntas cómo se verán tus imágenes en alta calidad con resoluciones tan bajas, siempre puedes escalarlas en Stable Diffusion utilizando uno de los escaladores disponibles. 

Utilizar la fusión de tokens 

Otra técnica para acelerar Stable Diffusion es utilizar la fusión de tokens, que reduce el número de tokens (palabras en positivo y negativo) que hay que procesar. 

¿Cómo funciona Autogpt? Una herramienta de IA para crear proyectos completos¿Cómo funciona Autogpt? Una herramient...

Durante la generación de imágenes, muchos tokens suelen ser intrascendentes o redundantes y pueden combinarse mediante la fusión de tokens. 

Aunque la Fusión de tokens puede cambiar la imagen de salida, puede salirse con la suya estableciendo un valor bajo de Fusión de tokens en Stable Diffusion. 

Acelerar Stable Diffusion

En Automatic111 WebUI for Stable Diffusion, vaya a Settings > Optimization y establezca un valor para Token Merging. Puede establecer un valor entre 0,2 y 0,3, lo que equivale a un 20-30%. 

Establecer un valor superior puede cambiar drásticamente la imagen de salida, por lo que es una sabia elección permanecer entre estos valores. 

Utilizando Token Merging, puede mejorar un poco los tiempos de generación de imágenes, pero no es una mejora significativa. No obstante, merece la pena intentarlo.  

Reducir los pasos del muestreo

Los pasos de muestreo son el número de iteraciones que realiza Stable Diffusion para generar una imagen. Cuanto mayor sea el número de pasos de muestreo, más tiempo tardará Stable Diffusion en generar la imagen. 

Puede reducir los pasos de muestreo para mejorar la velocidad de generación de imágenes en Stable Diffusion, pero es importante recordar que unos pasos de muestreo bajos también podrían dar lugar a imágenes de mala calidad.

Por lo tanto, tendrás que utilizar un paso de muestreo que sea perfecto para ti en términos de tiempo de generación y calidad de la imagen. 

Afortunadamente, lo he hecho por ti realizando una prueba en la que he generado la misma imagen en diferentes pasos de muestreo. 

Imágenes generadas en distintos pasos de muestreo en Stable Diffusion

De los resultados anteriores se desprende que los detalles y la calidad cambian en los distintos pasos de muestreo. 

Me parece que un paso de muestreo entre 30-35 es un punto dulce ya que las imágenes se ven bien y es lo suficientemente rápido también. 

Pero si tienes problemas incluso con 30-35 pasos de muestreo, prueba a ajustarlo a 20-25, que será comparativamente más rápido y la calidad de imagen no se verá afectada drásticamente. 

Asegúrese de que Stable Diffusion está utilizando su GPU

Por defecto, la mayoría de las interfaces web de Stable Diffusion como Automatic1111, ComfyUI o Easy Diffusion están diseñadas para utilizar tu GPU durante la generación de imágenes automáticamente. 

Pero en algunos raros casos de errores de configuración o instalación, Stable Diffusion no puede utilizar la GPU y en su lugar utiliza la CPU para la generación de imágenes. 

Y puesto que Stable Diffusion funciona mal cuando se ejecuta en la CPU en lugar de en la GPU, podría ser la causa de la lentitud en la generación de imágenes. 

Así pues, lo primero que tienes que hacer es asegurarte de que Stable Diffusion utiliza realmente tu GPU.

Puedes hacerlo fácilmente comprobando el uso de tu GPU en el Administrador de tareas. Para ello, abre el Administrador de tareas y ve a la pestaña Rendimiento

Acelerar Stable Diffusion

Comprueba aquí el rendimiento de la GPU al generar una imagen en Stable Diffusion. 

Normalmente, cuando se ejecuta Stable Diffusion, la utilización de la GPU debería estar en torno al 50-75% o por encima. 

Si la utilización de la GPU está por debajo de este valor, lo más probable es que la GPU no se esté utilizando para generar imágenes. 

Sin embargo, el Administrador de Tareas a menudo no muestra el uso adecuado de la GPU cuando se ejecuta Stable Diffusion. En estos casos, puedes mirar la temperatura de la GPU, que puede ser un buen indicador de si tu GPU se está utilizando o no. 

¿Se puede utilizar Midjourney con fines comerciales?¿Se puede utilizar Midjourney con fines...

También puedes cambiar al gráfico CUDA en el menú desplegable GPU para comprobar la utilización real de la GPU. Pero si tienes activada la programación de GPU acelerada por hardware, tendrás que consultar el gráfico 3D. 

Si Stable Diffusion no está utilizando tu CPU en lugar de la GPU, lo más probable es que se deba a una mala configuración o a errores de instalación. 

Puedes arreglar esto averiguando qué está mal configurado, pero te recomiendo reinstalar Stable Diffusion por completo, ya que es una solución mucho más rápida. 

Actualizar/desactualizar controladores de GPU

Los drivers de tu GPU pueden tener un efecto masivo en la velocidad de ejecución de Stable Diffusion. Actualizar tus controladores gráficos a la última versión puede ayudar a que Stable Diffusion sea más rápido. 

Pero este no ha sido el caso para la mayoría de los usuarios, incluido yo, que tenemos GPUs Nvidia. 

Hace un tiempo, cuando actualicé mis controladores Nvidia, noté una ralentización significativa al ejecutar Stable Diffusion. 

En una inspección más detallada, me di cuenta de que este es un problema generalizado en la comunidad Stable Diffusion y se pueden encontrar mensajes al respecto en Reddit como este, este, y otro aquí en GitHub. 

En resumen, los controladores de GPU de Nvidia posteriores a la versión 531 han ralentizado mucho los tiempos de generación de imágenes en Stable Diffusion. 

En pruebas personales, he comprobado que generar una imagen de 1024×1024 con escalado 4K me ha llevado 315,63 segundos (~5 minutos) con el controlador Nvidia 531. 

Pero después de actualizar a los últimos controladores Nvidia 537, la misma imagen tardó 847,94 segundos (~14 minutos) en generarse. 

Y no soy el único, como demuestran los comentarios de muchos usuarios en Reddit y GitHub. 

Por lo tanto, si tu controlador de GPU Nvidia funciona con la versión 532 o posterior, es posible que también sufras una ralentización. 

Puedes hacer un downgrade a los drivers Nvidia 531 desde su página web y probarlo tú mismo para ver si la versión anterior hace que Stable Diffusion sea más rápido. 

Cambiar a una interfaz web diferente

Muchos usuarios de Stable Diffuson utilizan la Interfaz Web de Automatic1111 que es, con diferencia, la interfaz más popular y fácil de usar para ejecutar Stable Diffusion. 

Pero al mismo tiempo, no es la mejor Web UI para Stable Diffusion en cuanto a rendimiento. 

Hay muchas otras interfaces web de Stable Diffusion que están bien optimizadas y funcionan más rápido que Automatic1111. 

Aquí hay algunos Web UIs de Stable Diffusion que puede probar para ejecutar Stable Diffusion mucho más rápido: 

Personalmente, he pasado de usar Automatic1111 a ComfyUI y ahora soy capaz de generar imágenes mucho más rápido. 

ComfyUI - Flujo de trabajo por defecto

Como referencia, ejecuto Stable Diffusion en un portátil Lenovo Legion 5 que viene con una GPU Nvidia RTX3050 con 4 GB de vRAM. 

Con Automatic1111, no he podido generar imágenes con una resolución superior a 521*768. Además, no pude ejecutar ControlNet ni utilizar modelos SDXL

Después de cambiar a ComfyUI, ahora soy capaz de generar imágenes a tamaño 1024×1024 y escalarlas a 4K utilizando modelos SDXL. 

Cómo utilizar AutoGPTCómo utilizar AutoGPT

Además, también puedo utilizar ControlNet, lo que antes era imposible en Automatic1111 debido a errores de memoria insuficiente. 

Eso es porque ComfyUI está optimizado mucho mejor y es significativamente más rápido. Lo mismo puede decirse de InvokeAI que es otra gran Web UI para Stable Diffusion.

Así pues, si utilizas Automatic111 y tienes problemas con los frecuentes errores de memoria o la lentitud en la generación de imágenes, cambiar a una nueva interfaz de usuario web puede ayudarte mucho. 

Sí, tendrás que aprender cómo funcionan las nuevas interfaces web, pero puede que merezca la pena dedicarle tiempo, ya que podrás generar imágenes mucho mejores en menos tiempo. 

Desactivar aplicaciones y servicios innecesarios

Si ejecutas otras aplicaciones o servicios en tu ordenador mientras utilizas Stable Diffusion, es probable que aumente el tiempo de generación de imágenes. 

Mientras se ejecuta Stable Diffusion, es una buena idea desactivar cualquier aplicación o servicio innecesario. Para ello, basta con abrir el Administrador de tareas y comprobar las aplicaciones y servicios en ejecución. 

Puedes desactivar aplicaciones y servicios en segundo plano como Steam, tu antivirus, los servicios de actualización de Adobe y cualquier otra cosa que pueda ocupar memoria RAM. 

Aunque esto puede no tener un impacto significativo en la velocidad de Stable Diffusion, puede ser útil especialmente si tu sistema no es lo suficientemente potente. 

Vuelva a instalar Stable Diffusion 

Si Stable Diffusion sigue siendo lento después de hacer todo lo mencionado anteriormente, el último recurso para mejorar la velocidad es reinstalar Stable Diffusion completamente. 

Esto podría ser útil para hacer que Stable Diffusion sea rápido, ya que la reinstalación puede arreglar cualquier error o desconfiguración que tuvieras anteriormente. 

Además, al reinstalar Stable Diffusion también te asegurarás de que utilizas la última versión y de que todo lo demás está actualizado. 

Preguntas frecuentes

He aquí algunas preguntas frecuentes sobre cómo hacer más rápida Stable Diffusion. 

¿Cuáles son los requisitos del sistema para ejecutar Stable Diffusion?  

Stable Diffusion requiere un procesador Intel o AMD moderno con al menos 16 GB de RAM, una GPU Nvidia RTX 3060 con al menos 6 GB de VRAM y al menos 10 GB de espacio de almacenamiento

¿Debo utilizar la CPU o la GPU mientras uso Stable Diffusion? 

Siempre debes usar tu GPU cuando uses Stable Diffusion, ya que es más eficiente y rápida en la generación de imágenes comparada con la CPU. 

¿Cuál es la mejor GPU para ejecutar Stable Diffusion?

La mejor GPU para ejecutar Stable Diffusion actualmente es la Nvidia RTX 4090 con 24 GB de vRAM, ya que será capaz de generar imágenes increíblemente rápido. 

Conclusión 

Hay muchas maneras de hacer que Stable Diffusion sea más rápida y hemos cubierto muchos de los métodos en nuestra guía. 

Con los métodos compartidos en esta guía, podrás acelerar Stable Diffusion fácilmente, ya que yo mismo he seguido algunos de estos consejos cuando he querido acelerar Stable Diffusion. 

Sin embargo, si tu ordenador no cumple los requisitos del sistema para Stable Diffusion, estos consejos no te servirán de mucho. 

En ese caso, tu única solución sería actualizar tu hardware, especialmente tu GPU, que es el factor principal para ejecutar Stable DIffusion. 

Si tiene alguna pregunta o duda sobre Stable Diffusion, no dude en dejar sus comentarios a continuación.

¿Cómo utilizar Pizza GPT?¿Cómo utilizar Pizza GPT?

Si quieres conocer otros artículos parecidos a Cómo acelerar Stable Diffusion (9 métodos que funcionan) puedes visitar la categoría Stable Diffusion.

César Duarte

Mi objetivo es hacer que la IA sea accesible y comprensible para todos. Siempre estoy buscando nuevas formas de aprender y compartir mi conocimiento con los demás. ¡Gracias por visitar mi sitio web!

Contenido relacionado

Deja una respuesta

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

Tu puntuación: Útil

Subir

Este sitio utiliza cookies. Si continúa navegando, consideramos que acepta su uso. Para más información, consulte nuestra Política de privacidad. Más información