Stable Diffusion и Git: установка, обновление и решение проблем

Команда git clone зависает на середине загрузки репозитория Stable Diffusion, а после повторного запуска появляется ошибка «destination path already exists» — типичная ситуация при первой установке нейросети через Git. Причина почти всегда проста: прерванное клонирование оставляет неполную папку, которую Git отказывается перезаписывать.

Stable Diffusion распространяется через Git-репозитории — в первую очередь через популярный интерфейс AUTOMATIC1111 Stable Diffusion WebUI на GitHub. Без установленного Git и базового понимания команд git clone, git pull и git checkout запустить и поддерживать локальную нейросеть не получится. Эта статья разбирает весь цикл: от установки Git до решения конфликтов при обновлении.

Зачем Stable Diffusion нужен Git

Git — это система контроля версий, через которую распространяется исходный код WebUI и большинства расширений. Когда вы клонируете репозиторий, на диск скачивается не просто архив файлов, а полная история проекта с возможностью отката к любой версии. Именно поэтому разработчики не выкладывают готовые zip-сборки как основной способ установки.

Второй аргумент — обновления. Stable Diffusion WebUI активно развивается: исправляются ошибки, добавляется поддержка новых моделей и оптимизаций. Если проект установлен через Git, обновление сводится к одной команде git pull, которая подтянет только изменённые файлы. При установке из архива пришлось бы каждый раз скачивать всё заново и вручную переносить настройки.

Тот же принцип работает и для расширений: почти каждый плагин для WebUI — это отдельный репозиторий, который клонируется в папку extensions. Поэтому Git здесь не опция, а обязательный компонент.

Установка Git и подготовка системы

Для Windows загрузите установщик Git с официального сайта проекта git-scm.com. При установке можно оставить параметры по умолчанию — они подходят для работы со Stable Diffusion. После завершения проверьте, что система видит команду, открыв командную строку и выполнив:

git --version

Если в ответ выводится номер версии — всё готово. Если система пишет, что команда не найдена, вероятная причина в том, что путь к Git не попал в переменную окружения PATH. Проще всего переустановить Git, отметив опцию добавления в PATH (она обычно включена по умолчанию), и перезапустить терминал.

Помимо Git, для WebUI понадобится Python совместимой версии — требования указаны в README репозитория, и их стоит проверить именно там, так как поддерживаемые версии меняются. Установка несовместимой версии Python — одна из самых частых причин ошибок на этапе первого запуска.

  • ✅ Скачайте Git только с официального сайта git-scm.com
  • ✅ Проверьте установку командой git --version
  • ✅ Сверьте требуемую версию Python в README репозитория WebUI
  • ✅ Выберите диск с запасом свободного места — модели занимают гигабайты

Клонирование репозитория Stable Diffusion WebUI

Откройте командную строку в папке, куда планируете установить проект, и выполните клонирование официального репозитория AUTOMATIC1111:

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

Процесс создаст папку stable-diffusion-webui со всеми файлами проекта. Путь к этой папке не должен содержать кириллицы и пробелов — это частая причина странных ошибок при запуске скриптов. Используйте что-то вроде C:\SD\ или D:\neural\.

Далее в папку models\Stable-diffusion помещается файл модели (чекпоинт) в формате .safetensors или .ckpt — без него генерация невозможна. Само скачивание моделей происходит не через Git, а с площадок вроде Hugging Face или Civitai.

☑️ Проверка перед первым запуском

Выполнено: 0 / 5
⚠️ Внимание: не запускайте webui-user.bat до того, как поместите хотя бы одну модель в папку models. Первый запуск без чекпоинта завершится ошибкой, а новичку будет сложно понять её причину.

Обновление через git pull и откат версий

Чтобы обновить WebUI до последней версии, откройте командную строку в папке проекта и выполните:

git pull

Команда скачает изменения из удалённого репозитория и применит их к локальным файлам. Если вы не редактировали исходный код, обновление пройдёт чисто. После этого при следующем запуске могут автоматически доустановиться обновлённые зависимости — это нормально и занимает некоторое время.

Бывает, что свежая версия работает хуже: ломается совместимость с расширением или появляется новая ошибка. Git позволяет откатиться. Сначала посмотрите историю командой git log --oneline, найдите хеш нужного коммита и переключитесь на него:

git checkout хеш_коммита

Вернуться на актуальную ветку можно командой git checkout master (или main, в зависимости от репозитория). Это безопасные операции, пока вы не удаляли файлы вручную.

📊 Как вы обновляете Stable Diffusion WebUI?
Через git pull вручную
Через встроенную кнопку обновления
Переустанавливаю с нуля
Не обновляю — работает стабильно

Типичные ошибки Git при работе со Stable Diffusion

Большинство проблем с Git у пользователей Stable Diffusion сводится к нескольким повторяющимся сценариям. Ниже — их разбор с причинами и решениями.

ОшибкаВероятная причинаРешение
destination path already existsПапка от незавершённого клонирования уже существуетУдалить папку и повторить git clone
'git' is not recognizedGit не установлен или не добавлен в PATHПереустановить Git с опцией добавления в PATH
error: Your local changes would be overwrittenЛокальные файлы проекта отредактированыgit stash, затем git pull
RPC failed / early EOF при cloneОбрыв соединения при скачивании большого репозиторияПовторить clone; при рецидивах — git clone --depth 1
Расширение не обновляетсяКонфликт версий или битый клона в папке extensionsУдалить папку расширения и установить заново

Отдельно стоит сказать про конфликт локальных изменений. Если вы правили файлы WebUI (например, webui-user.bat с параметрами запуска — это нормально), то git pull может отказаться обновляться. Команда git stash временно отложит ваши правки, после обновления их можно вернуть через git stash pop.

⚠️ Внимание: команда git reset --hard, которую часто советуют на форумах, безвозвратно удаляет все локальные изменения в файлах проекта. Используйте её только если понимаете, что теряете, — ваши правки конфигурации восстановить будет нельзя.

Установка расширений через Git

Расширения для WebUI — это тоже Git-репозитории. Самый простой способ установки — вкладка Extensions в веб-интерфейсе, где WebUI сам выполняет клонирование. Но полезно знать и ручной способ: перейдите в папку extensions и выполните git clone со ссылкой на репозиторий расширения.

После установки или обновления расширения интерфейс нужно полностью перезапустить, а не просто перезагрузить страницу в браузере. Часть расширений подтягивает собственные зависимости при первом запуске — в консоли при этом виден процесс установки, и прерывать его не стоит.

Если расширение после обновления WebUI перестало работать, возможная причина — несовместимость версий. Проверьте страницу расширения на GitHub: в Issues обычно быстро появляются сообщения о проблемах, а иногда автор публикует исправление.

Что такое shallow clone и когда он нужен

Команда git clone --depth 1 скачивает только последнюю версию файлов без истории изменений. Это ускоряет загрузку и экономит место, но лишает возможности отката к старым коммитам через checkout. Для обычного использования WebUI лучше полное клонирование, а --depth 1 полезен при медленном интернете или для расширений, которые вы не планируете откатывать.

Модели и Git LFS: что важно знать

Некоторые репозитории с моделями (например, на Hugging Face) используют Git LFS — расширение Git для больших файлов. Если клонировать такой репозиторий без установленного LFS, вместо модели скачается маленький текстовый файл-указатель, и WebUI не сможет её загрузить.

Проверить наличие LFS можно командой git lfs version. Если её нет — установите Git LFS с официального сайта и выполните git lfs install один раз. Впрочем, для скачивания отдельных чекпоинтов обычно проще использовать прямую загрузку файла через браузер, а Git LFS оставить для случаев, когда нужен весь репозиторий целиком.

Признак проблемы с LFS: файл модели весит несколько килобайт вместо гигабайт, а WebUI выдаёт ошибку при её загрузке. Решение — скачать файл заново напрямую или через git lfs pull.

Часто задаваемые вопросы

Можно ли установить Stable Diffusion WebUI без Git?

Технически можно скачать репозиторий архивом ZIP через кнопку Code на GitHub, но вы потеряете возможность обновляться через git pull и откатывать версии. Для долгосрочного использования установка через Git заметно удобнее.

Куда вводить команды git clone и git pull?

В командную строку Windows (cmd или PowerShell), предварительно перейдя в нужную папку командой cd. Также можно открыть папку в проводнике, кликнуть правой кнопкой и выбрать «Открыть в терминале».

Обновление через git pull сломало WebUI — что делать?

Сначала посмотрите ошибку в консоли: часто помогает удаление папки venv и повторный запуск, чтобы зависимости переустановились. Если не помогло — откатитесь на предыдущий коммит через git checkout, узнав хеш из git log.

Нужно ли заново скачивать модели после обновления?

Нет. Модели лежат в папке models и не отслеживаются Git — обновление кода WebUI их не затрагивает. Ваши чекпоинты, LoRA и сгенерированные изображения остаются на месте.

Как узнать текущую версию установленного WebUI?

Выполните в папке проекта команду git log -1 — она покажет последний коммит с датой и хешем. Также версия отображается внизу веб-интерфейса WebUI.