ComfyUI на удалённом Mac: чек-лист приёмки

В официальной инструкции для актуального стабильного PyTorch на Mac указаны Apple Silicon, macOS 14.0 или новее, Python 3.10 или новее и инструменты командной строки Xcode. Это означает простое правило: ComfyUI на удалённом Mac нельзя принимать по одному факту открытия веб-интерфейса — сначала проверяйте базовую среду, затем фиксированный рабочий процесс и восстановление после перезапуска. (требования к PyTorch и ускорению Metal)

Симптом: страница ComfyUI открывается, но модель не находится, узел не загружается или после перезапуска всё исчезает.
Быстрое решение: принимайте среду по цепочке «доступ → архитектура → PyTorch → запуск → модели → узлы → рабочий процесс → перезапуск», сохраняя доказательство на каждом этапе.

Этот материал пригодится вам, если вы готовите аренду удалённого Mac для ComfyUI и хотите обнаружить проблемы ещё до начала проекта. Он также полезен администратору общей среды, который поддерживает единый набор узлов и зависимостей, а также автору, регулярно переносящему ComfyUI между компьютерами.

Важно: название чипа само по себе не подтверждает пригодность среды. Архитектуру, версию macOS, Python и фактически доступный backend нужно увидеть в самой системе и сохранить в журнале приёмки.

До первого входа: зафиксируйте границы поставки

Начните не с установки узлов, а с перечня того, что именно вам передают. У удалённой среды есть несколько скрытых ограничений, которые часто обнаруживаются уже после загрузки первого рабочего процесса:

  • доступ к экрану может быть, но не быть доступа к терминалу, Git или каталогам пользователя;
  • каталог моделей может находиться на временном или внешнем томе, который не подключается после перезапуска;
  • учётная запись может позволять запускать приложение, но не устанавливать зависимости;
  • порт ComfyUI может быть доступен только локально, а удалённый просмотр — работать через отдельный шлюз;
  • общий каталог может быть доступен для чтения, но недоступен для записи результатов и временных файлов;
  • переданный образ может содержать готовые узлы, но не иметь зафиксированных коммитов и списка зависимостей.

До входа запросите у поставщика:

  • версию macOS;
  • архитектуру системы из самой macOS, а не только название конфигурации;
  • способ удалённого доступа и допустимый способ подключения к ComfyUI;
  • права вашей учётной записи;
  • постоянный путь к ComfyUI;
  • расположение моделей и папки для результатов;
  • границы поддержки: входит ли установка узлов, загрузка моделей, обновление и восстановление после перезапуска;
  • порядок передачи журналов и файлов рабочего процесса.

Для коммерческой среды заранее сопоставьте эти требования с доступными вариантами конфигурации Macstripe. Если вам необходимы физические USB-устройства, локальная видеокарта или длительная непрерывная нагрузка без изменения окружения, аренда удалённого Mac может оказаться неподходящим вариантом — это нужно решить до передачи доступа, а не после сбоя.

Первый этап: подтвердите Apple Silicon и доступ к системе

Для ComfyUI на удалённом Mac важна не строка в коммерческом описании, а фактическое состояние узлового компьютера. Откройте терминал и сохраните вывод:

uname -m
sw_vers
system_profiler SPHardwareDataType

В результате должны быть видны архитектура, версия macOS и аппаратная информация. Не подменяйте этот вывод предположением вроде «если это современный Mac, значит ускорение уже работает». Официальная схема ускорения PyTorch использует backend MPS на базе Metal, но доступность MPS зависит от сочетания устройства, macOS и конкретной сборки PyTorch. (описание MPS в PyTorch)

Затем проверьте базовые инструменты:

python3 --version
git --version
xcode-select -p

Если xcode-select -p возвращает ошибку, зафиксируйте это как блокирующий пункт, а не как косметическое предупреждение. Командные инструменты нужны не только для первоначальной установки: отдельные пользовательские узлы могут собирать компоненты или устанавливать зависимости, требующие корректно подготовленной среды.

Сразу проверьте три типа прав:

  1. можете ли вы создавать файл в каталоге ComfyUI;
  2. можете ли вы записывать изображение в каталог результатов;
  3. можете ли вы читать модель из постоянного каталога после повторного подключения.

Если один из тестов не проходит, не переходите к установке ComfyUI Nodes. Иначе вы рискуете принять ошибку прав доступа за несовместимость модели или узла.

Второй этап: отделите Python, PyTorch и ComfyUI

Установка в системный Python создаёт лишние риски: обновление одного узла может изменить общую библиотеку, а последующая диагностика не покажет, какая команда нарушила среду. Используйте отдельное виртуальное окружение и сохраняйте его путь.

Пример базовой проверки:

cd /постоянный/путь/к/ComfyUI
python3 -m venv .venv
source .venv/bin/activate
python --version
python -m pip --version

После активации установите зависимости именно через python -m pip, чтобы не перепутать системный pip с pip виртуального окружения. Затем сохраните версии:

python -c "import torch; print(torch.__version__); print(torch.backends.mps.is_built()); print(torch.backends.mps.is_available())"
git rev-parse HEAD

Проверка должна отвечать на три разных вопроса:

  • собран ли установленный PyTorch с поддержкой MPS;
  • доступен ли MPS в текущем окружении;
  • какой именно коммит ComfyUI принят в работу.

mps.is_built() и mps.is_available() нельзя считать взаимозаменяемыми. Первая проверка показывает наличие поддержки в сборке, вторая — возможность использовать backend в данной системе. Такой подход прямо соответствует диагностике, описанной в документации PyTorch. (проверка доступности MPS)

Сделайте чистый запуск:

python main.py 2>&1 | tee logs/acceptance-first-start.log

В журнале ищите ошибки импорта, предупреждения о пропущенных модулях, сообщения о недоступных моделях и фактический адрес, на котором слушает сервер. Интерфейс считается рабочим только после того, как журнал подтверждает запуск без ошибок, а не после появления пустого окна браузера.

Официальное руководство по ComfyUI для Apple Silicon также рекомендует установить PyTorch с поддержкой Mac, затем выполнить ручную установку зависимостей и запустить python main.py. (инструкция установки ComfyUI)

Третий этап: проверьте модельные каталоги после перезапуска

Модельная структура — одна из самых частых причин ложной приёмки. Визуальный интерфейс может загрузиться, но не увидеть checkpoints, VAE, LoRA или другие файлы из-за неверного пути, отсутствия прав или отличий в структуре каталогов.

Проверьте отдельно:

  • каталог checkpoints;
  • каталог VAE;
  • каталог LoRA;
  • каталог выходных файлов;
  • каталог временных файлов;
  • постоянство каждого пути после выхода из удалённой сессии.

Если модели хранятся отдельно от установки ComfyUI, используйте официальный механизм дополнительных путей через extra_model_paths.yaml. Пример конфигурации показывает, как описывать базовый путь и вложенные каталоги моделей. (пример extra_model_paths.yaml)

После изменения конфигурации:

  1. остановите ComfyUI;
  2. проверьте отступы и имена ключей YAML;
  3. запустите сервер из того же виртуального окружения;
  4. найдите в журнале сообщения о добавленных путях;
  5. загрузите модель через интерфейс;
  6. выполните рабочий процесс с этой моделью;
  7. перезапустите среду и повторите загрузку.

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

Четвёртый этап: устанавливайте ComfyUI Nodes небольшими партиями

Не импортируйте весь список пользовательских узлов одним действием. В общей среде это усложняет откат: вы не будете знать, какой пакет изменил зависимости, добавил конфликт или сломал запуск.

Для каждой группы узлов подготовьте короткую запись:

  • название и ссылка на репозиторий;
  • ветка, тег или точный коммит;
  • файл requirements.txt, если он есть;
  • требуемые модели;
  • наличие серверной части, интерфейсной части или обеих;
  • ожидаемые новые классы узлов;
  • минимальный тест;
  • результат после перезапуска.

Официальная документация описывает несколько способов установки пользовательских узлов и отдельно предупреждает о необходимости устанавливать зависимости в окружение ComfyUI, а после установки проверять журнал на ошибки импорта. (руководство по установке пользовательских узлов)

После каждой партии выполняйте одинаковую процедуру:

  1. установите один узел или логически связанную небольшую группу;
  2. сохраните вывод команды установки;
  3. перезапустите ComfyUI;
  4. проверьте журнал на import failed;
  5. найдите новые узлы в интерфейсе;
  6. откройте минимальный тестовый граф;
  7. загрузите требуемую модель;
  8. сохраните результат;
  9. только после этого переходите к следующей партии.

Причина такой осторожности — зависимости пользовательских узлов не являются единым гарантированным набором. Один узел может требовать конкретную версию библиотеки, а другой — более новую. Даже официальный раздел о пользовательских узлах выделяет конфликты зависимостей и временное отключение узлов как отдельные операции. (документация по управлению узлами)

Что считать провалом партии

Отклоняйте партию или возвращайте окружение к предыдущему состоянию, если:

  • ComfyUI перестал запускаться;
  • в журнале появился import failed;
  • узел виден, но рабочий процесс не проходит проверку;
  • после установки изменился результат эталонного графа;
  • зависимости установились в системный Python;
  • нужный узел появился только после ручного исправления, которое не записано в инструкции.

Не составляйте «рейтинг обязательных узлов». Для приёмки важен не список популярных расширений, а воспроизводимость конкретного рабочего процесса вашей команды.

Пятый этап: примите фиксированный ComfyUI рабочий процесс

Выберите один эталонный граф, который содержит минимум:

  • загрузку модели;
  • загрузку или применение VAE;
  • хотя бы один пользовательский узел, если он нужен проекту;
  • семплирование;
  • сохранение изображения;
  • явный выходной каталог.

Сохраните рабочий процесс в исходном формате и отдельно — в формате, пригодном для автоматизированного запуска, если команда использует API. Документация ComfyUI указывает, что рабочий процесс представляет собой граф связанных узлов, а данные о нём могут сохраняться в метаданных результата. (описание рабочих процессов)

При первом запуске зафиксируйте:

  • файл рабочего процесса;
  • имя и путь модели;
  • параметры генерации;
  • имя выходного файла;
  • журнал запуска;
  • снимок интерфейса с загруженным графом;
  • наличие предупреждений о недостающих узлах или моделях.

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

Официальная документация также описывает обнаружение отсутствующих узлов при импорте рабочего процесса. Используйте этот механизм как подсказку, но не устанавливайте автоматически всё подряд: сначала сопоставьте отсутствующие типы узлов с утверждённым списком проекта. (разбор отсутствующих узлов)

Чек-лист приёмки перед началом работы

  • [ ] Версия macOS сохранена в журнале.
  • [ ] Архитектура подтверждена непосредственно на удалённом Mac.
  • [ ] Проверены постоянные права на каталоги ComfyUI, моделей и результатов.
  • [ ] Зафиксированы способ удалённого доступа и адрес запуска сервера.
  • [ ] Python запускается из отдельного виртуального окружения.
  • [ ] Сохранены версии Python, pip, PyTorch и ComfyUI.
  • [ ] Проверены torch.backends.mps.is_built() и torch.backends.mps.is_available().
  • [ ] Первый запуск выполнен с сохранением полного журнала.
  • [ ] Каталоги checkpoints, VAE и LoRA читаются из ComfyUI.
  • [ ] Каталог результатов доступен для записи.
  • [ ] Внешние модельные пути оформлены через постоянную конфигурацию.
  • [ ] После изменения путей выполнена повторная загрузка модели.
  • [ ] Пользовательские узлы установлены партиями.
  • [ ] Для каждого узла записаны репозиторий и версия.
  • [ ] После каждой партии выполнен перезапуск и минимальный тест.
  • [ ] Эталонный ComfyUI рабочий процесс создаёт результат.
  • [ ] Рабочий процесс повторно выполнен после перезапуска.
  • [ ] Отсутствующие узлы и модели либо устранены, либо явно внесены в список ограничений.
  • [ ] Проверены права общего каталога и отсутствие лишнего доступа к учётным данным.
  • [ ] Заказчик получил журналы, рабочий процесс и список принятых компонентов.

Где удалённый Mac обычно уступает локальной установке

Локальный компьютер удобнее, если вам нужны физические устройства, постоянный доступ без сетевых ограничений или длительная работа с уже настроенными локальными каталогами. Удалённая среда добавляет зависимость от канала доступа, правил безопасности, политики хранения файлов и способа перезапуска.

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

Если вам нужна временная среда для тестирования нового графа, проверки пользовательских узлов или совместной работы над моделями, разумнее сначала передать поставщику именно этот чек-лист: архитектуру Apple Silicon, перечень моделей, список узлов, рабочий процесс и срок аренды. В Macstripe можно начать с подбора конфигурации для заказа, а вопросы по доступу и границам поддержки уточнить через контактную страницу. Такой подход не заменяет приёмку, но позволяет получить среду, которую можно проверить по журналам и повторить после перезапуска, а не просто открыть один раз в браузере.

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

Как принять ComfyUI на удалённом Mac без проверки каждого файла вручную?

Используйте фиксированный порядок: сначала подтвердите macOS, архитектуру Apple Silicon, Python, PyTorch и Git, затем запустите чистый ComfyUI, проверьте каталоги моделей, установите узлы небольшими группами и выполните один эталонный рабочий процесс. Приёмка считается завершённой только после повторного запуска этого же процесса после перезагрузки среды.

Что проверить после установки пользовательского узла ComfyUI?

Проверьте журнал запуска на сообщения import failed, наличие новых узлов в интерфейсе, чтение всех заявленных моделей и выполнение минимального теста. Зафиксируйте ссылку на репозиторий, ветку или коммит, файл requirements.txt и результат теста. Если узел изменил версии общих библиотек, сравните вывод Python и PyTorch с сохранённым снимком среды.

Почему в рабочем процессе ComfyUI появляются отсутствующие узлы?

Обычно рабочий процесс был создан в среде с дополнительными узлами, которых нет на удалённом Mac, либо используется другая версия узла и изменилось имя класса. Сначала определите отсутствующие типы узлов, установите только нужные репозитории, перезапустите ComfyUI и снова загрузите файл. Не заменяйте узлы на похожие без отдельной проверки результата.

Как сохранить пути к моделям после перезапуска удалённого Mac?

Не полагайтесь на временный путь из панели удалённого доступа. Проверьте постоянный каталог, права чтения и записи, а для внешнего хранилища настройте официальный файл extra_model_paths.yaml. После сохранения конфигурации перезапустите ComfyUI, убедитесь по журналу, что дополнительные пути добавлены, и выполните рабочий процесс с моделью из каждого нужного каталога.

Дополнительное чтение