104 lines
3.0 KiB
Python
104 lines
3.0 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import subprocess
|
|
import sys
|
|
import os
|
|
|
|
def install_package(package):
|
|
"""安装Python包"""
|
|
try:
|
|
subprocess.check_call([sys.executable, "-m", "pip", "install", package])
|
|
return True
|
|
except subprocess.CalledProcessError as e:
|
|
print(f"安装 {package} 失败: {e}")
|
|
return False
|
|
|
|
def check_package(package_name):
|
|
"""检查包是否已安装"""
|
|
try:
|
|
__import__(package_name)
|
|
return True
|
|
except ImportError:
|
|
return False
|
|
|
|
def main():
|
|
print("=" * 60)
|
|
print("Qwen-Image ComfyUI 插件依赖安装工具")
|
|
print("=" * 60)
|
|
|
|
# 检查核心依赖
|
|
core_deps = {
|
|
'requests': 'requests',
|
|
'PIL': 'pillow',
|
|
'torch': 'torch',
|
|
'numpy': 'numpy'
|
|
}
|
|
|
|
print("\n🔍 检查核心依赖...")
|
|
missing_core = []
|
|
for import_name, package_name in core_deps.items():
|
|
if check_package(import_name):
|
|
print(f"✅ {package_name} 已安装")
|
|
else:
|
|
print(f"❌ {package_name} 未安装")
|
|
missing_core.append(package_name)
|
|
|
|
# 检查图生文功能依赖
|
|
print("\n🔍 检查图生文功能依赖...")
|
|
vision_deps = {
|
|
'openai': 'openai',
|
|
'httpx': 'httpx[socks]',
|
|
'socksio': 'socksio'
|
|
}
|
|
|
|
missing_vision = []
|
|
for import_name, package_name in vision_deps.items():
|
|
if check_package(import_name):
|
|
print(f"✅ {package_name} 已安装")
|
|
else:
|
|
print(f"❌ {package_name} 未安装")
|
|
missing_vision.append(package_name)
|
|
|
|
# 安装缺失的依赖
|
|
all_missing = missing_core + missing_vision
|
|
|
|
if not all_missing:
|
|
print("\n🎉 所有依赖都已安装!")
|
|
return
|
|
|
|
print(f"\n📦 需要安装 {len(all_missing)} 个依赖包:")
|
|
for pkg in all_missing:
|
|
print(f" - {pkg}")
|
|
|
|
response = input("\n是否现在安装这些依赖?(y/n): ").lower().strip()
|
|
|
|
if response in ['y', 'yes', '是']:
|
|
print("\n🚀 开始安装依赖...")
|
|
success_count = 0
|
|
|
|
for package in all_missing:
|
|
print(f"\n📦 安装 {package}...")
|
|
if install_package(package):
|
|
print(f"✅ {package} 安装成功")
|
|
success_count += 1
|
|
else:
|
|
print(f"❌ {package} 安装失败")
|
|
|
|
print(f"\n📊 安装结果: {success_count}/{len(all_missing)} 个包安装成功")
|
|
|
|
if success_count == len(all_missing):
|
|
print("🎉 所有依赖安装完成!请重启ComfyUI。")
|
|
else:
|
|
print("⚠️ 部分依赖安装失败,请手动安装或检查网络连接。")
|
|
print("\n手动安装命令:")
|
|
for package in all_missing:
|
|
print(f" pip install {package}")
|
|
else:
|
|
print("\n取消安装。")
|
|
print("\n手动安装命令:")
|
|
for package in all_missing:
|
|
print(f" pip install {package}")
|
|
|
|
if __name__ == "__main__":
|
|
main() |