Отключаем обновления Automatic1111 Stable Diffusion и ставим стабильную версию, чистим ненужные файлы

Отключаем обновления Automatic1111 Stable Diffusion и ставим стабильную версию, чистим ненужные файлы

В последнее время стал замечать неудовлетворительное состояние Automatic1111, которое не позволяет работать долгое время, если оставаться на системе постоянных обновлений с Github. Это касается не только локальной версии, но и пространства Google Colab.

Однако сообщество и разработчики веб-интерфейса потихоньку начинают внедрять метод хэшей для того, чтобы можно было скачивать раннюю проверенную версию сборки, которая точно будет работать. Это позволяет не сносить каждый раз все файлы и не переустанавливать Automatic1111, что и время экономит, и сохраняет ваши расширения со всеми настройками.

Подготавливаем необходимое

Очень рекомендую скачать текстовый редактор кода Notepad++, чтобы по ходу гайда вы могли с комфортом повторять все шаги. Программа эта бесплатная, никак не засоряет вашу систему.

Также заранее откройте вкладку официального репозитория Automatic1111, он нам понадобится.

Перейдем к практике

Заходим в корневую папку Stable Diffusion и открываем с помощью Notepad++ файл webui-user.bat.

Файл запуска Stable Diffusion
Файл запуска Stable Diffusion

Нам с вами нужно найти следующую строчку: git pull origin master — она отвечает за автоматическое обновление Automatic1111 до последней версии. Перед ней ставим команду (rem), чтобы закомментировать строку и заблокировать ее функционал.

Ниже прописываем следующee: git checkout a9eab236d7e8afa4d6205127904a385b2c43bb24.

Строка, отвечающая за обновление
Строка, отвечающая за обновление

Набор букв и цифр — это хэш, или идентификационный номер сборки. Помните, я говорил в начале, что нужно открыть страницу с официальным репозиторием? Так вот, переходим на эту страницу, после чего клацаем на вкладку commits.

Заходим во вкладку Commits
Заходим во вкладку Commits

Перед нами отображается вся история обновлений, и мы можем копировать хэш любого из них, чтобы установить нужную нам сборку. Для этого нажимаем на иконку файлов, и хэш автоматически копируется. Также обратите внимание на надпись Verified, которая говорит нам о том, что сборка стабильна и одобрена разработчиком.

Как только вы будете уверены в том, что обновления пойдут стабильные, то можете убрать (rem) перед git pull origin master, и будет ставиться последняя сборка. Не забудьте удалить строку git checkout a9eab236d7e8afa4d6205127904a385b2c43bb24, либо поставьте перед ней тот же (rem).

Копируем хэш проверенной сборки
Копируем хэш проверенной сборки

Бонус

Вы можете прописать в том же файле webui-user.bat следующую команду, которая автоматом при каждом запуске будет чистить лишние файлы, которые со временем могут складываться в десятки гигабайт и засорять систему, а также тормозить сам Automatic1111.

Вот эта строчка: for /d %%i in (tmp\tmp*,tmp\pip*) do rd /s /q "%%i" & del /q tmp\tmp* & rd /s /q pip\cache.

Команда, удаляющая лишние файлы
Команда, удаляющая лишние файлы

Congratulations, вы справились!

Теперь кто-то умеет поднимать с колен лучший фреймворк для Stable Diffusion на сегодняшний день. Буду рад обратной связи и вашим комментариям, а также приглашаю в свой телеграм чат, где отвечу на все вопросы касаемо SD.

Заглядывайте в телеграм-канал, где я собираю лучшие гайды по Stable Diffusion. А если не найду, то пишу сам.

Спасибо Руслану из нейронной академии за помощь в написании гайда и освещение данного метода!

66
19 комментариев

Комментарий недоступен

5
Ответить

Прикол еще в том, что прямо сразу после верифиед мердж-коммита следует коммит отмены предыдущего мерджа. Видимо, после мерджа нашли баг и откатили мердж, но автор этого не заметил даже 🤔

1
Ответить

Комментарий недоступен

2
Ответить

И что делать после копирования стабильного обновления? Просто закинуть в Notebook++? Ведь когда копируешь так как описано в статье, то за тем вроде как нужно закинуть для того что-б программа приняла. Просто так изменения в СД я ранее делал. Почему напишут на 90%,а дальше догадывайся сам что и как делать.... Кто знает что затем делать? После того как на сайте СД нажал на кнопку скопировать.

1
Ответить

Может зависать на 90% из-за того, что скачивает что-то. Смотрите консоль, она всегда подскажет, что делать)

Ответить

Не дописал: строку for /d %%i in (tmp\tmp*,tmp\pip*) do rd /s /q "%%i" & del /q tmp\tmp* & rd /s /q pip\cache. для того что бы чистить от мусора , можно просто закинуть в конец или куда? У меня при открытии нет того что есть на скриншотах,показанных в статье. У меня всего 6 строк и одно из них просто git pull без мастера. Я так сам прописывал,тоже посмотрев на этом сайте.

1
Ответить

В любое место, но лучше ближе к началу. Можно первой строчкой

Ответить