Merge pull request #1782 from easydiffusion/beta

Hotfix to pin setuptools to 0.69 - for #1781
This commit is contained in:
cmdr2 2024-05-27 10:38:41 +05:30 committed by GitHub
commit 9b0a654d32
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -21,6 +21,7 @@ os_name = platform.system()
modules_to_check = {
"torch": ("1.11.0", "1.13.1", "2.0.0", "2.0.1"),
"torchvision": ("0.12.0", "0.14.1", "0.15.1", "0.15.2"),
"setuptools": "69.5.1",
"sdkit": "2.0.15",
"stable-diffusion-sdkit": "2.1.5",
"rich": "12.6.0",
@ -110,8 +111,9 @@ def update_modules():
fail(module_name)
else:
if version(module_name) != latest_version:
print(f"WARNING! Tried to install {module_name}=={latest_version}, but the version is still {version(module_name)}!")
print(
f"WARNING! Tried to install {module_name}=={latest_version}, but the version is still {version(module_name)}!"
)
if module_name in modules_to_log:
print(f"{module_name}: {version(module_name)}")
@ -177,8 +179,10 @@ Thanks!"""
)
exit(1)
### Launcher
def get_config():
config_directory = os.path.dirname(__file__) # this will be "scripts"
config_yaml = os.path.join(config_directory, "..", "config.yaml")
@ -193,15 +197,17 @@ def get_config():
if os.path.isfile(config_yaml):
from ruamel.yaml import YAML
yaml = YAML(typ='safe')
with open(config_yaml, 'r') as configfile:
yaml = YAML(typ="safe")
with open(config_yaml, "r") as configfile:
try:
config = yaml.load(configfile)
except Exception as e:
print(e, file=sys.stderr)
elif os.path.isfile(config_json):
import json
with open(config_json, 'r') as configfile:
with open(config_json, "r") as configfile:
try:
config = json.load(configfile)
except Exception as e:
@ -215,43 +221,43 @@ def get_config():
def setup_amd_environment():
if not os.access("/dev/kfd", os.W_OK):
print(
"#########################################################################\n"
+ "# EasyDiffusion has no write access to /dev/kfd. #\n"
+ "#########################################################################\n"
+ "\n"
+ "Without this, the ROCm driver will probably not be able to initialize the GPU and EasyDiffusion will use the CPU for rendering.\n"
+ "\n"
+ "Follow the instructions on this site to configure the access:\n"
+ "https://github.com/easydiffusion/easydiffusion/wiki/AMD-on-Linux#access-permissions\n"
+ "\n"
"#########################################################################\n"
+ "# EasyDiffusion has no write access to /dev/kfd. #\n"
+ "#########################################################################\n"
+ "\n"
+ "Without this, the ROCm driver will probably not be able to initialize the GPU and EasyDiffusion will use the CPU for rendering.\n"
+ "\n"
+ "Follow the instructions on this site to configure the access:\n"
+ "https://github.com/easydiffusion/easydiffusion/wiki/AMD-on-Linux#access-permissions\n"
+ "\n"
)
gpus = list(filter(lambda x: ("amdgpu" in x), open("/proc/bus/pci/devices", "r").readlines()))
gpus = [ x.split("\t")[1].upper() for x in gpus ]
gpus = [ AMD_PCI_IDs[x] for x in gpus if x in AMD_PCI_IDs ]
i=0
supported_gpus=[]
gpus = [x.split("\t")[1].upper() for x in gpus]
gpus = [AMD_PCI_IDs[x] for x in gpus if x in AMD_PCI_IDs]
i = 0
supported_gpus = []
for gpu in gpus:
print(f"Found AMD GPU {gpu}.")
if gpu.startswith("Navi 1"):
print("--- Applying Navi 1 settings")
os.environ["HSA_OVERRIDE_GFX_VERSION"]="10.3.0"
os.environ["FORCE_FULL_PRECISION"]="yes"
os.environ["HIP_VISIBLE_DEVICES"]=str(i)
os.environ["HSA_OVERRIDE_GFX_VERSION"] = "10.3.0"
os.environ["FORCE_FULL_PRECISION"] = "yes"
os.environ["HIP_VISIBLE_DEVICES"] = str(i)
supported_gpus.append("Navi 1")
elif gpu.startswith("Navi 2"):
elif gpu.startswith("Navi 2"):
print("--- Applying Navi 2 settings")
os.environ["HSA_OVERRIDE_GFX_VERSION"]="10.3.0"
os.environ["HIP_VISIBLE_DEVICES"]=str(i)
os.environ["HSA_OVERRIDE_GFX_VERSION"] = "10.3.0"
os.environ["HIP_VISIBLE_DEVICES"] = str(i)
supported_gpus.append("Navi 2")
elif gpu.startswith("Navi 3"):
print("--- Applying Navi 3 settings")
os.environ["HSA_OVERRIDE_GFX_VERSION"]="11.0.0"
os.environ["HIP_VISIBLE_DEVICES"]=str(i)
os.environ["HSA_OVERRIDE_GFX_VERSION"] = "11.0.0"
os.environ["HIP_VISIBLE_DEVICES"] = str(i)
supported_gpus.append("Navi 3")
else:
print("--- This GPU is probably not supported by ROCm\n")
i+=1
i += 1
return supported_gpus
@ -260,7 +266,7 @@ def launch_uvicorn():
pprint(config)
with open("scripts/install_status.txt","a") as f:
with open("scripts/install_status.txt", "a") as f:
f.write("sd_weights_downloaded\n")
f.write("sd_install_complete\n")
@ -268,9 +274,9 @@ def launch_uvicorn():
os.environ["PYTORCH_ENABLE_MPS_FALLBACK"] = "1"
if os_name == "Windows":
os.environ["PYTHONPATH"] = str(Path( os.environ["INSTALL_ENV_DIR"], "lib", "site-packages"))
os.environ["PYTHONPATH"] = str(Path(os.environ["INSTALL_ENV_DIR"], "lib", "site-packages"))
else:
os.environ["PYTHONPATH"] = str(Path( os.environ["INSTALL_ENV_DIR"], "lib", "python3.8", "site-packages"))
os.environ["PYTHONPATH"] = str(Path(os.environ["INSTALL_ENV_DIR"], "lib", "python3.8", "site-packages"))
os.environ["SD_UI_PATH"] = str(Path(Path.cwd(), "ui"))
print(f"PYTHONPATH={os.environ['PYTHONPATH']}")
@ -297,7 +303,10 @@ def launch_uvicorn():
setup_amd_environment()
print("\nLaunching uvicorn\n")
os.system(f'python -m uvicorn main:server_api --app-dir "{os.environ["SD_UI_PATH"]}" --port {listen_port} --host {bind_ip} --log-level error')
os.system(
f'python -m uvicorn main:server_api --app-dir "{os.environ["SD_UI_PATH"]}" --port {listen_port} --host {bind_ip} --log-level error'
)
### Start
@ -1102,5 +1111,5 @@ AMD_PCI_IDs = {
update_modules()
if len(sys.argv) > 1 and sys.argv[1]=="--launch-uvicorn":
if len(sys.argv) > 1 and sys.argv[1] == "--launch-uvicorn":
launch_uvicorn()