Un desarrollador detalla cómo aceleró Automatic1111 en Macs con chip M1 y M3 Pro manteniendo intacta la interfaz, los checkpoints, las LoRAs, los samplers y la API originales. El punto de partida fue la comparación con Draw Things: una generación corta de cinco pasos con DPM++ SDE Karras y CFG cercano a 1,15 tardaba unos 8-10 segundos en Automatic1111 sobre el M3 Pro, frente a una respuesta claramente más ágil en Draw Things.
La intervención no consistió en reescribir el motor de inferencia ni en convertir modelos a Core ML, sino en optimizar quirúrgicamente las partes calientes. La pieza central es una ruta de Flash Attention escrita en Metal, seleccionada por forma de tensor y tipo de dato en lugar de activarse de forma global; cuando la ruta nativa no conviene, el código recurre a la implementación SDPA de PyTorch. Además, la extensión integra sus comandos en el command buffer de MPSGraph en lugar de confirmar uno por cada llamada de atención, lo que elimina una fuente significativa de overhead.
El artículo también describe una política de memoria que estima el coste en bytes de la atención frente a la RAM total y disponible antes de elegir la ruta nativa, un fallback subcuadrático con softmax online que descarta los fragmentos K/V ya procesados, y la eliminación de compatibilidades obsoletas del backend MPS de PyTorch. El autor acompaña cada optimización con pruebas de corrección y compara los tiempos resultantes: 3-7 segundos en el M3 Pro y 8-10 segundos en un Mac Mini M1 para el mismo flujo de trabajo.
