Spaces:
Paused
Paused
| import os | |
| import torch | |
| import modules.core as core | |
| from ldm_patched.pfn.architecture.RRDB import RRDBNet as ESRGAN | |
| from ldm_patched.contrib.external_upscale_model import ImageUpscaleWithModel | |
| from collections import OrderedDict | |
| from modules.config import path_upscale_models | |
| model_filename = os.path.join(path_upscale_models, 'fooocus_upscaler_s409985e5.bin') | |
| opImageUpscaleWithModel = ImageUpscaleWithModel() | |
| model = None | |
| def perform_upscale(img): | |
| global model | |
| print(f'Upscaling image with shape {str(img.shape)} ...') | |
| if model is None: | |
| sd = torch.load(model_filename) | |
| sdo = OrderedDict() | |
| for k, v in sd.items(): | |
| sdo[k.replace('residual_block_', 'RDB')] = v | |
| del sd | |
| model = ESRGAN(sdo) | |
| model.cpu() | |
| model.eval() | |
| img = core.numpy_to_pytorch(img) | |
| img = opImageUpscaleWithModel.upscale(model, img)[0] | |
| img = core.pytorch_to_numpy(img)[0] | |
| return img | |