From 614b482ee3d134f11234a637a7443477d9319b4d Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Thu, 13 Apr 2023 11:19:15 -0400 Subject: [PATCH] major installer work --- cli/requirements.txt | 1 + .../sd-extension-aesthetic-scorer | 2 +- extensions-builtin/sd-extension-system-info | 2 +- javascript/roboto.ttf | Bin 0 -> 36176 bytes launch.py | 2 +- modules/gfpgan_model.py | 12 ++++++------ modules/images.py | 5 ++--- modules/lora | 2 +- modules/memmon.py | 13 ++++++++----- modules/realesrgan_model.py | 11 ++++++++--- modules/textual_inversion/image_embedding.py | 6 ++---- requirements.txt | 16 ++++++++-------- setup.py | 16 ++++++++++++---- webui.py | 10 ---------- 14 files changed, 51 insertions(+), 47 deletions(-) create mode 100644 javascript/roboto.ttf diff --git a/cli/requirements.txt b/cli/requirements.txt index 9c434e3e8..77e0c427a 100644 --- a/cli/requirements.txt +++ b/cli/requirements.txt @@ -1,2 +1,3 @@ mediapipe colormap +invisible-watermark diff --git a/extensions-builtin/sd-extension-aesthetic-scorer b/extensions-builtin/sd-extension-aesthetic-scorer index 9978b44c0..a35fb67ae 160000 --- a/extensions-builtin/sd-extension-aesthetic-scorer +++ b/extensions-builtin/sd-extension-aesthetic-scorer @@ -1 +1 @@ -Subproject commit 9978b44c0e86d801468463d8b148d708fdb06762 +Subproject commit a35fb67ae91b8b3dce6393a6e59990943b1a1cb2 diff --git a/extensions-builtin/sd-extension-system-info b/extensions-builtin/sd-extension-system-info index 39296b6ae..1574b974b 160000 --- a/extensions-builtin/sd-extension-system-info +++ b/extensions-builtin/sd-extension-system-info @@ -1 +1 @@ -Subproject commit 39296b6ae8dedf2881936522b4b9274d739c6f01 +Subproject commit 1574b974b3b5031a07930494a105f9413d9ae531 diff --git a/javascript/roboto.ttf b/javascript/roboto.ttf new file mode 100644 index 0000000000000000000000000000000000000000..a97385dfddd8dbcf227c075b37737b991796880a GIT binary patch literal 36176 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 literal 0 HcmV?d00001 diff --git a/launch.py b/launch.py index 377270de4..231968751 100644 --- a/launch.py +++ b/launch.py @@ -86,7 +86,7 @@ def run_extension_installer(dir): if __name__ == "__main__": setup.run_setup(False) setup.set_environment() - # setup.check_torch() + setup.check_torch() setup.log.info(f"Server arguments: {sys.argv[1:]}") import webui webui.webui() diff --git a/modules/gfpgan_model.py b/modules/gfpgan_model.py index 80ad6f1c6..14adfa32f 100644 --- a/modules/gfpgan_model.py +++ b/modules/gfpgan_model.py @@ -1,9 +1,6 @@ import os import sys -import facexlib -import gfpgan - import modules.face_restoration from modules import paths, shared, devices, modelloader @@ -16,6 +13,8 @@ loaded_gfpgan_model = None def gfpgann(): + import facexlib + import gfpgan global loaded_gfpgan_model global model_path if loaded_gfpgan_model is not None: @@ -76,8 +75,9 @@ def setup_model(dirname): os.makedirs(model_path) try: - from gfpgan import GFPGANer - from facexlib import detection, parsing + import gfpgan + import facexlib + global user_path global have_gfpgan global gfpgan_constructor @@ -100,7 +100,7 @@ def setup_model(dirname): facexlib.parsing.load_file_from_url = facex_load_file_from_url2 user_path = dirname have_gfpgan = True - gfpgan_constructor = GFPGANer + gfpgan_constructor = gfpgan.GFPGANer class FaceRestorerGFPGAN(modules.face_restoration.FaceRestoration): def name(self): diff --git a/modules/images.py b/modules/images.py index 3c0c67c9f..6fab5ba9f 100644 --- a/modules/images.py +++ b/modules/images.py @@ -12,7 +12,6 @@ import numpy as np import piexif import piexif.helper from PIL import Image, ImageFont, ImageDraw, PngImagePlugin, ExifTags -from fonts.ttf import Roboto # pylint: disable=no-name-in-module import string import json import hashlib @@ -143,9 +142,9 @@ def draw_grid_annotations(im, width, height, hor_texts, ver_texts, margin=0): def get_font(fontsize): try: - return ImageFont.truetype(opts.font or Roboto, fontsize) + return ImageFont.truetype(opts.font or 'javascript/roboto.ttf', fontsize) except Exception: - return ImageFont.truetype(Roboto, fontsize) + return ImageFont.truetype('javascript/roboto.ttf', fontsize) def draw_texts(drawing, draw_x, draw_y, lines, initial_fnt, initial_fontsize): for i, line in enumerate(lines): diff --git a/modules/lora b/modules/lora index 5050971ac..7ad7cac0c 160000 --- a/modules/lora +++ b/modules/lora @@ -1 +1 @@ -Subproject commit 5050971ac687dca70ba0486a583d283e8ae324e2 +Subproject commit 7ad7cac0c272211abb688168d4c2d4400bef7c51 diff --git a/modules/memmon.py b/modules/memmon.py index 4018edcc7..8c257b92f 100644 --- a/modules/memmon.py +++ b/modules/memmon.py @@ -22,12 +22,15 @@ class MemUsageMonitor(threading.Thread): self.run_flag = threading.Event() self.data = defaultdict(int) - try: - self.cuda_mem_get_info() - torch.cuda.memory_stats(self.device) - except Exception as e: # AMD or whatever - print(f"Warning: caught exception '{e}', memory monitor disabled") + if not torch.cuda.is_available(): self.disabled = True + else: + try: + self.cuda_mem_get_info() + torch.cuda.memory_stats(self.device) + except Exception as e: # AMD or whatever + print(f"Torch exception: {e}") + self.disabled = True def cuda_mem_get_info(self): index = self.device.index if self.device.index is not None else torch.cuda.current_device() diff --git a/modules/realesrgan_model.py b/modules/realesrgan_model.py index 1c6f5bf80..f919d5d2a 100644 --- a/modules/realesrgan_model.py +++ b/modules/realesrgan_model.py @@ -4,7 +4,6 @@ import sys import numpy as np from PIL import Image from basicsr.utils.download_util import load_file_from_url -from realesrgan import RealESRGANer from modules.upscaler import Upscaler, UpscalerData from modules.shared import cmd_opts, opts @@ -37,6 +36,12 @@ class UpscalerRealESRGAN(Upscaler): if not self.enable: return img + try: + from realesrgan import RealESRGANer + except: + print("Error importing Real-ESRGAN:", file=sys.stderr) + return img + info = self.load_model(path) if not os.path.exists(info.local_data_path): print("Unable to load RealESRGAN model: %s" % info.name) @@ -125,5 +130,5 @@ def get_realesrgan_models(scaler): ] return models except Exception as e: - print("Error making Real-ESRGAN models list:", file=sys.stderr) - shared.exception() + print("Error creating Real-ESRGAN models list", file=sys.stderr) + return [] diff --git a/modules/textual_inversion/image_embedding.py b/modules/textual_inversion/image_embedding.py index 5593f88c7..426ec3140 100644 --- a/modules/textual_inversion/image_embedding.py +++ b/modules/textual_inversion/image_embedding.py @@ -3,7 +3,6 @@ import json import numpy as np import zlib from PIL import Image, PngImagePlugin, ImageDraw, ImageFont -from fonts.ttf import Roboto import torch from modules.shared import opts @@ -137,10 +136,9 @@ def caption_image_overlay(srcimage, title, footerLeft, footerMid, footerRight, t fontsize = 32 if textfont is None: try: - textfont = ImageFont.truetype(opts.font or Roboto, fontsize) - textfont = opts.font or Roboto + return ImageFont.truetype(opts.font or 'javascript/roboto.ttf', fontsize) except Exception: - textfont = Roboto + return ImageFont.truetype('javascript/roboto.ttf', fontsize) factor = 1.5 gradient = Image.new('RGBA', (1, image.size[1]), color=(0, 0, 0, 0)) diff --git a/requirements.txt b/requirements.txt index 9a0f33d3e..b26d0ab1b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ +accelerate addict aenum aiohttp @@ -8,6 +9,7 @@ basicsr bitsandbytes blendmodes clean-fid +clip easydev extcolors facexlib @@ -16,24 +18,28 @@ font-roboto fonts future gdown +gfpgan +GitPython httpcore inflection -invisible-watermark jsonmerge kornia lark lmdb lpips numpy +omegaconf opencv-contrib-python opencv-python piexif Pillow psutil pyyaml +realesrgan requests resize-right rich +safetensors scikit-image scipy tb_nightly @@ -44,22 +50,16 @@ torchdiffeq torchsde torchvision tqdm +transformers voluptuous yapf -accelerate==0.18.0 diffusers==0.14.0 einops==0.4.1 fastapi==0.94.0 -gfpgan==1.3.8 -GitPython==3.1.31 gradio==3.23.0 numexpr==2.8.4 -omegaconf==2.3.0 pandas==1.5.3 protobuf==3.20.3 pytorch_lightning==1.9.4 -realesrgan==0.3.0 -safetensors==0.3.0 tensorflow==2.12.0 -transformers==4.27.4 diff --git a/setup.py b/setup.py index 7c2caf0b8..505c493ba 100644 --- a/setup.py +++ b/setup.py @@ -2,8 +2,9 @@ import os import sys import json import time -import subprocess +import shutil import logging +import subprocess from modules.cmd_args import parser @@ -140,6 +141,9 @@ def check_python(): log.info(f'Python {platform.python_version()} on {platform.system()}') if not (sys.version_info.major == 3 and sys.version_info.minor in supported_minors): raise RuntimeError(f"Incompatible Python version: {sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro} required 3.9-3.11") + git_cmd = os.environ.get('GIT', "git") + if shutil.which(git_cmd) is None: + raise RuntimeError('Git not found') # check torch version @@ -150,14 +154,17 @@ def check_torch(): log.info(f'Torch {torch.__version__}') if not torch.cuda.is_available(): log.warning("Torch repoorts CUDA not available") + if '--no-half' not in sys.argv: + sys.argv.append('--no-half') else: - log.info(f'Torch detected GPU: {torch.cuda.get_device_name(torch.cuda.current_device())}') if torch.version.cuda: log.info(f'Torch backend: nVidia CUDA {torch.version.cuda} cuDNN {torch.backends.cudnn.version()}') elif torch.version.hip: log.info(f'Torch backend: AMD ROCm HIP {torch.version.hip}') else: log.warning(f'Unknown Torch backend') + for device in [torch.cuda.device(i) for i in range(torch.cuda.device_count())]: + log.info(f'Torch detected GPU: {torch.cuda.get_device_name(device)} VRAM {round(torch.cuda.get_device_properties(device).total_memory / 1024 / 1024)} Arch {torch.cuda.get_device_capability(device)} Cores {torch.cuda.get_device_properties(device).multi_processor_count}') except: pass @@ -168,11 +175,11 @@ def install_packages(): gfpgan_package = os.environ.get('GFPGAN_PACKAGE', "git+https://github.com/TencentARC/GFPGAN.git@8d2447a2d918f8eba5a4a01463fd48e45126a379") clip_package = os.environ.get('CLIP_PACKAGE', "git+https://github.com/openai/CLIP.git@d50d76daa670286dd6cacf3bcd80b5e4823fc8e1") openclip_package = os.environ.get('OPENCLIP_PACKAGE', "git+https://github.com/mlfoundations/open_clip.git@bb6e834e9c70d9c27d0dc3ecedeebeaeb1ffad6b") - xformers_package = os.environ.get('XFORMERS_PACKAGE', 'xformers==0.0.18') install(gfpgan_package) install(clip_package) install(openclip_package) try: + xformers_package = os.environ.get('XFORMERS_PACKAGE', 'xformers') install(f'--no-deps {xformers_package}') except Exception as e: log.error('Cannot install xformers package: {e}') @@ -216,7 +223,8 @@ def run_extension_installer(extension_dir): txt = result.stdout.decode(encoding="utf8", errors="ignore") if len(result.stderr) > 0: txt = txt + '\n' + result.stderr.decode(encoding="utf8", errors="ignore") - log.error(f'Error running extension installer: {txt}') + log.error(f'Error running extension installer: {path_installer}') + log.debug(txt) except Exception as e: log.error(f'Exception running extension installer: {e}') diff --git a/webui.py b/webui.py index 945e2990e..cb3fac777 100644 --- a/webui.py +++ b/webui.py @@ -61,16 +61,6 @@ else: def initialize(): - if torch.cuda.is_available(): - if torch.version.cuda: cuda_version = f'CUDA {torch.version.cuda} cuDNN {torch.backends.cudnn.version()}' - elif torch.version.hip: cuda_version = f'HIP {torch.version.hip}' - else: cuda_version = '' - log.info(f'Torch {getattr(torch, "__long_version__", torch.__version__)} {cuda_version}') - for device in [torch.cuda.device(i) for i in range(torch.cuda.device_count())]: - log.info(f'GPU {torch.cuda.get_device_name(device)} VRAM {round(torch.cuda.get_device_properties(device).total_memory / 1024 / 1024)} Arch {torch.cuda.get_device_capability(device)} Cores {torch.cuda.get_device_properties(device).multi_processor_count}') - else: - log.info(f'Torch {getattr(torch, "__long_version__", torch.__version__)} running on CPU') - extensions.list_extensions() startup_timer.record("extensions")