From 329bdff6771cd9bc9dd1207f30014304ce8dd14e Mon Sep 17 00:00:00 2001 From: Robin Huang Date: Mon, 17 Mar 2025 17:37:11 -0700 Subject: [PATCH] [Desktop] Add install path validation error messages (#3059) Co-authored-by: github-actions --- package-lock.json | 8 ++++---- package.json | 5 +++-- src/components/install/InstallLocationPicker.vue | 9 ++++++++- src/locales/en/main.json | 4 +++- src/locales/fr/main.json | 2 ++ src/locales/ja/main.json | 2 ++ src/locales/ko/main.json | 2 ++ src/locales/ru/main.json | 2 ++ src/locales/zh/main.json | 2 ++ 9 files changed, 28 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 597534fe3..862ae32f5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@alloc/quick-lru": "^5.2.0", "@atlaskit/pragmatic-drag-and-drop": "^1.3.1", - "@comfyorg/comfyui-electron-types": "^0.4.20", + "@comfyorg/comfyui-electron-types": "^0.4.31", "@comfyorg/litegraph": "^0.10.9", "@primevue/forms": "^4.2.5", "@primevue/themes": "^4.2.5", @@ -460,9 +460,9 @@ } }, "node_modules/@comfyorg/comfyui-electron-types": { - "version": "0.4.20", - "resolved": "https://registry.npmjs.org/@comfyorg/comfyui-electron-types/-/comfyui-electron-types-0.4.20.tgz", - "integrity": "sha512-JFKGk9wSx7CcYh9MRNo7bqTLJwQzVc+1Xg8V2Ghn9BS3RzpmkfktaWHi+waU7/CRQMzvjF+mnDPP58xk1xbVhA==", + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@comfyorg/comfyui-electron-types/-/comfyui-electron-types-0.4.31.tgz", + "integrity": "sha512-6tdUfrRyJ9mLlGhNxKqao0kdO+nKRLzQIbENmTK1EtJ1zhMmCp43a+pG7+kecjgp0pbfzxWKhTdCarS9A9fkqw==", "license": "GPL-3.0-only" }, "node_modules/@comfyorg/litegraph": { diff --git a/package.json b/package.json index 4bb7310a8..4ae2e5a48 100644 --- a/package.json +++ b/package.json @@ -72,7 +72,7 @@ "dependencies": { "@alloc/quick-lru": "^5.2.0", "@atlaskit/pragmatic-drag-and-drop": "^1.3.1", - "@comfyorg/comfyui-electron-types": "^0.4.20", + "@comfyorg/comfyui-electron-types": "^0.4.31", "@comfyorg/litegraph": "^0.10.9", "@primevue/forms": "^4.2.5", "@primevue/themes": "^4.2.5", @@ -105,5 +105,6 @@ "vue-router": "^4.4.3", "zod": "^3.23.8", "zod-validation-error": "^3.3.0" - } + }, + "packageManager": "yarn@4.5.0+sha512.837566d24eec14ec0f5f1411adb544e892b3454255e61fdef8fd05f3429480102806bac7446bc9daff3896b01ae4b62d00096c7e989f1596f2af10b927532f39" } diff --git a/src/components/install/InstallLocationPicker.vue b/src/components/install/InstallLocationPicker.vue index 5ee466fdd..abcc4fdee 100644 --- a/src/components/install/InstallLocationPicker.vue +++ b/src/components/install/InstallLocationPicker.vue @@ -33,6 +33,9 @@ {{ $t('install.pathExists') }} + + {{ $t('install.nonDefaultDrive') }} + @@ -80,6 +83,7 @@ const { t } = useI18n() const installPath = defineModel('installPath', { required: true }) const pathError = defineModel('pathError', { required: true }) const pathExists = ref(false) +const nonDefaultDrive = ref(false) const appData = ref('') const appPath = ref('') const inputTouched = ref(false) @@ -100,6 +104,7 @@ const validatePath = async (path: string) => { try { pathError.value = '' pathExists.value = false + nonDefaultDrive.value = false const validation = await electron.validateInstallPath(path) // Create a pre-formatted list of errors @@ -111,12 +116,14 @@ const validatePath = async (path: string) => { errors.push(`${t('install.insufficientFreeSpace')}: ${requiredGB} GB`) } if (validation.parentMissing) errors.push(t('install.parentMissing')) + if (validation.isOneDrive) errors.push(t('install.isOneDrive')) + if (validation.error) errors.push(`${t('install.unhandledError')}: ${validation.error}`) pathError.value = errors.join('\n') } - // Display the path exists warning + if (validation.isNonDefaultDrive) nonDefaultDrive.value = true if (validation.exists) pathExists.value = true } catch (error) { pathError.value = t('install.pathValidationFailed') diff --git a/src/locales/en/main.json b/src/locales/en/main.json index 3063445c0..e3d9e4028 100644 --- a/src/locales/en/main.json +++ b/src/locales/en/main.json @@ -261,9 +261,11 @@ "pathExists": "Directory already exists - please ensure you have backed up all data", "cannotWrite": "Unable to write to the selected path", "insufficientFreeSpace": "Insufficient space - minimum free space", + "isOneDrive": "OneDrive is not supported. Please install ComfyUI in another location.", + "nonDefaultDrive": "Please install ComfyUI on your system drive (eg. C:\\). Drives with different file systems may cause unpredicable issues. Models and other files can be stored on other drives after installation.", "parentMissing": "Path does not exist - create the containing directory first", "unhandledError": "Unknown error", - "installLocationDescription": "Select the directory for ComfyUI's user data. A python environment will be installed to the selected location. Please make sure the selected disk has enough space (~15GB) left.", + "installLocationDescription": "Select the directory for ComfyUI's user data. A python environment will be installed to the selected location.", "installLocationTooltip": "ComfyUI's user data directory. Stores:\n- Python Environment\n- Models\n- Custom nodes\n", "appDataLocationTooltip": "ComfyUI's app data directory. Stores:\n- Logs\n- Server configs", "appPathLocationTooltip": "ComfyUI's app asset directory. Stores the ComfyUI code and assets", diff --git a/src/locales/fr/main.json b/src/locales/fr/main.json index 3dcabf071..9618b7158 100644 --- a/src/locales/fr/main.json +++ b/src/locales/fr/main.json @@ -267,6 +267,7 @@ "installLocationDescription": "Sélectionnez le répertoire pour les données utilisateur de ComfyUI. Un environnement python sera installé à l'emplacement sélectionné. Veuillez vous assurer que le disque sélectionné a suffisamment d'espace (~15GB) restant.", "installLocationTooltip": "Répertoire des données utilisateur de ComfyUI. Stocke :\n- Environnement Python\n- Modèles\n- Nœuds personnalisés\n", "insufficientFreeSpace": "Espace insuffisant - espace libre minimum", + "isOneDrive": "L'installation dans OneDrive peut causer des problèmes. Nous recommandons fortement d'installer dans un emplacement non-OneDrive.", "manualConfiguration": { "createVenv": "Vous devrez créer un environnement virtuel dans le répertoire suivant", "requirements": "Exigences", @@ -281,6 +282,7 @@ "migrationOptional": "La migration est facultative. Si vous n'avez pas d'installation existante, vous pouvez sauter cette étape.", "migrationSourcePathDescription": "Si vous avez une installation existante de ComfyUI, nous pouvons copier/lier vos fichiers utilisateur et modèles existants à la nouvelle installation. Votre installation existante de ComfyUI ne sera pas affectée.", "moreInfo": "Pour plus d'informations, veuillez lire notre", + "nonDefaultDrive": "Veuillez installer ComfyUI sur le disque système de votre ordinateur (par exemple C:\\). Les disques avec des systèmes de fichiers différents peuvent causer des problèmes imprévisibles. Les modèles et autres fichiers peuvent être stockés sur d'autres disques après l'installation.", "parentMissing": "Le chemin n'existe pas - créez d'abord le répertoire contenant", "pathExists": "Le répertoire existe déjà - veuillez vous assurer que vous avez sauvegardé toutes les données", "pathValidationFailed": "Échec de la validation du chemin", diff --git a/src/locales/ja/main.json b/src/locales/ja/main.json index acae80eff..f6a699bd5 100644 --- a/src/locales/ja/main.json +++ b/src/locales/ja/main.json @@ -267,6 +267,7 @@ "installLocationDescription": "ComfyUIのユーザーデータを保存するディレクトリを選択してください。Python環境が選択した場所にインストールされます。選択したディスクに約15GBの空き容量が必要です。", "installLocationTooltip": "ComfyUIのユーザーデータディレクトリ。保存内容:\n- Python環境\n- モデル\n- カスタムノード\n", "insufficientFreeSpace": "空き容量が不足しています - 最低限の空き容量", + "isOneDrive": "OneDriveにインストールすると問題が発生する可能性があります。非OneDriveの場所にインストールすることを強くお勧めします。", "manualConfiguration": { "createVenv": "次のディレクトリに仮想環境を作成する必要があります", "requirements": "要件", @@ -281,6 +282,7 @@ "migrationOptional": "移行は任意です。既存のインストールがない場合、このステップをスキップできます。", "migrationSourcePathDescription": "既存のComfyUIインストールがある場合、既存のユーザーファイルとモデルを新しいインストールにコピー/リンクすることができます。既存のComfyUIインストールは影響を受けません。", "moreInfo": "詳しくはこちらをご覧ください", + "nonDefaultDrive": "ComfyUIをシステムドライブ(例:C:\\)にインストールしてください。異なるファイルシステムを持つドライブでは、予測不能な問題が発生する可能性があります。インストール後にモデルやその他のファイルを他のドライブに保存することができます。", "parentMissing": "パスが存在しません - 最初に含まれるディレクトリを作成してください", "pathExists": "ディレクトリはすでに存在します - すべてのデータをバックアップしたことを確認してください", "pathValidationFailed": "パスの検証に失敗しました", diff --git a/src/locales/ko/main.json b/src/locales/ko/main.json index 59c9c9977..159366528 100644 --- a/src/locales/ko/main.json +++ b/src/locales/ko/main.json @@ -267,6 +267,7 @@ "installLocationDescription": "ComfyUI의 사용자 데이터 디렉토리를 선택하십시오. 선택한 위치에 Python 환경이 설치됩니다. 선택한 디스크에 충분한 공간(~15GB)이 남아 있는지 확인하십시오.", "installLocationTooltip": "ComfyUI의 사용자 데이터 디렉토리. 저장소:\n- Python 환경\n- 모델\n- 사용자 정의 노드\n", "insufficientFreeSpace": "공간이 부족합니다 - 최소한의 여유 공간", + "isOneDrive": "OneDrive에 설치하면 문제가 발생할 수 있습니다. OneDrive가 아닌 위치에 설치하는 것을 강력히 권장합니다.", "manualConfiguration": { "createVenv": "다음 디렉토리에 가상 환경을 생성해야 합니다", "requirements": "요구 사항", @@ -281,6 +282,7 @@ "migrationOptional": "마이그레이션은 선택 사항입니다. 기존에 설치된 것이 없다면, 이 단계를 건너뛸 수 있습니다.", "migrationSourcePathDescription": "기존에 설치된 ComfyUI가 있으면, 기존 사용자 파일과 모델을 새 설치본으로 복사하거나 링크 할 수 있습니다. 기존의 ComfyUI 설치는 영향을 받지 않습니다.", "moreInfo": "더 많은 정보를 원하시면, 다음을 읽어주세요", + "nonDefaultDrive": "ComfyUI를 시스템 드라이브(예: C:\\)에 설치하십시오. 다른 파일 시스템을 가진 드라이브는 예측할 수 없는 문제를 일으킬 수 있습니다. 설치 후에는 모델 및 기타 파일을 다른 드라이브에 저장할 수 있습니다.", "parentMissing": "경로가 존재하지 않습니다 - 먼저 포함하는 디렉토리를 생성하세요", "pathExists": "디렉토리가 이미 존재합니다 - 모든 데이터를 백업했는지 확인해 주세요", "pathValidationFailed": "경로 유효성 검사 실패", diff --git a/src/locales/ru/main.json b/src/locales/ru/main.json index c8459e301..5a70037c1 100644 --- a/src/locales/ru/main.json +++ b/src/locales/ru/main.json @@ -267,6 +267,7 @@ "installLocationDescription": "Выберите директорию для пользовательских данных ComfyUI. В выбранном месте будет установлена среда Python. Пожалуйста, убедитесь, что на выбранном диске достаточно места (~15 ГБ).", "installLocationTooltip": "Директория пользовательских данных ComfyUI. Хранит:\n- Среда Python\n- Модели\n- Пользовательские ноды\n", "insufficientFreeSpace": "Недостаточно места — минимально необходимое свободное место", + "isOneDrive": "Установка в OneDrive может вызвать проблемы. Настоятельно рекомендуем устанавливать в месте, не связанном с OneDrive.", "manualConfiguration": { "createVenv": "Вам потребуется создать виртуальное окружение в следующем каталоге", "requirements": "Требования", @@ -281,6 +282,7 @@ "migrationOptional": "Миграция является необязательной. Если у вас нет существующей установки, вы можете пропустить этот шаг.", "migrationSourcePathDescription": "Если у вас уже есть установленный ComfyUI, мы можем скопировать/связать ваши существующие пользовательские файлы и модели с новой установкой. Ваша существующая установка ComfyUI не будет затронута.", "moreInfo": "Для получения дополнительной информации, пожалуйста, прочтите нашу", + "nonDefaultDrive": "Пожалуйста, установите ComfyUI на системный диск (например, C:\\). Диски с другими файловыми системами могут вызвать непредсказуемые проблемы. Модели и другие файлы можно хранить на других дисках после установки.", "parentMissing": "Путь не существует — сначала создайте родительский каталог", "pathExists": "Директория уже существует — пожалуйста, убедитесь, что вы сделали резервное копирование всех данных", "pathValidationFailed": "Не удалось проверить путь", diff --git a/src/locales/zh/main.json b/src/locales/zh/main.json index e0cb71639..8087e78e3 100644 --- a/src/locales/zh/main.json +++ b/src/locales/zh/main.json @@ -267,6 +267,7 @@ "installLocationDescription": "选择 ComfyUI 用户数据的存放目录。将安装一个 Python 环境到所选位置。请确保所选磁盘有足够的空间(约 15GB)。", "installLocationTooltip": "ComfyUI 的用户数据目录。存储:\n- Python 环境\n- 模型\n- 自定义节点\n", "insufficientFreeSpace": "空间不足 - 最小可用空间", + "isOneDrive": "在OneDrive中安装可能会导致问题。强烈建议在非OneDrive位置安装。", "manualConfiguration": { "createVenv": "您需要在以下目录中创建虚拟环境", "requirements": "依赖项", @@ -281,6 +282,7 @@ "migrationOptional": "迁移是可选的。如果您之前没有安装过 ComfyUI,可以跳过此步骤。", "migrationSourcePathDescription": "如果您已有现有的ComfyUI安装,我们可以复制/链接您现有的用户文件和模型到新的安装。您现有的ComfyUI安装将不会受到影响。", "moreInfo": "有关更多信息,请阅读我们的", + "nonDefaultDrive": "请在您的系统驱动器上安装ComfyUI(例如C:\\)。具有不同文件系统的驱动器可能会导致不可预测的问题。安装后,模型和其他文件可以存储在其他驱动器上。", "parentMissing": "路径不存在 - 请先创建包含该路径的目录", "pathExists": "目录已存在 - 请确保您已备份全部数据", "pathValidationFailed": "路径验证失败",