File size: 4,261 Bytes
09fb9f0
5941390
d127695
5941390
 
 
791c7ad
 
 
9712a0e
6df5c15
 
 
791c7ad
9712a0e
8346ea0
654b939
cc743a2
0f9d535
a81cbf3
 
3d6cfb3
27c9e62
61a462b
6d5c083
 
 
cd8741c
5d625fa
 
a81cbf3
4a4fe3a
27c9e62
4a4fe3a
7a21c88
 
3d6cfb3
a81cbf3
654b939
8cff209
3d6cfb3
 
 
8346ea0
383c5b7
5941390
 
383c5b7
5941390
 
383c5b7
d670e90
5941390
 
 
 
383c5b7
 
 
 
30bdef1
791c7ad
6df5c15
 
 
383c5b7
09fb9f0
d127695
5941390
d127695
 
 
383c5b7
 
 
0f9d535
383c5b7
 
 
66eaf5f
d127695
 
66eaf5f
 
d127695
66eaf5f
5941390
383c5b7
 
 
 
5941390
383c5b7
5941390
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
import gradio as gr
import spaces
from gradio_imageslider import ImageSlider
from image_gen_aux import UpscaleWithModel
from image_gen_aux.utils import load_image

# This uses https://github.com/asomoza/image_gen_aux/blob/main/src/image_gen_aux/upscalers/README.md
# Also this space has been duplicated from their official huggingface space, https://huggingface.co/spaces/OzzyGT/basic_upscaler
# They did great work, and I was happy to see them to also use my models :) I thought Id duplicate it and extend it.
# It basically made me get a pro account so I can make a Zero GPU space and made me upload a lot of my models on huggingface now so I can use them here ;)
# This is the community version of my previous Image Upscaler space at https://huggingface.co/spaces/Phips/Upscaler, where instead of only my own models, I will add models per the model authors request to ensure
# that the model author is aware of, and desires, their model to be usable in this space.
# I made a file additionally that lists and links to models https://huggingface.co/spaces/Phips/CommunityUpscaler/blob/main/models.md

# My models
MODELS = {
    "4xNomos2_hq_drct-l": "Phips/4xNomos2_hq_drct-l",
    "4xNomosWebPhoto_RealPLKSR": "Phips/4xNomosWebPhoto_RealPLKSR",
    "4xRealWebPhoto_v4_dat2": "Phips/4xRealWebPhoto_v4_dat2",
    "4xRealWebPhoto_v3_atd": "Phips/4xRealWebPhoto_v3_atd",
    "4xNomos8k_atd_jpg": "Phips/4xNomos8k_atd_jpg",
    "4xNomosUni_rgt_multijpg": "Phips/4xNomosUni_rgt_multijpg",
    "4xLSDIRDAT": "Phips/4xLSDIRDAT",
    "4xSSDIRDAT": "Phips/4xSSDIRDAT",
    "4xNomos8kHAT-L_otf": "Phips/4xNomos8kHAT-L_otf",
    "4xNomosUniDAT_otf": "Phips/4xNomosUniDAT_otf",
    "4xNomosUniDAT_bokeh_jpg": "Phips/4xNomosUniDAT_bokeh_jpg",
    "4xNomos8kSCHAT-L": "Phips/4xNomos8kSCHAT-L",
    "4xFFHQDAT": "Phips/4xFFHQDAT",
    "4xFaceUpDAT": "Phips/4xFaceUpDAT",
    "4xTextures_GTAV_rgt-s_dither": "Phips/4xTextures_GTAV_rgt-s_dither",
    "4xTextureDAT2_otf": "Phips/4xTextureDAT2_otf",
    "4xLexicaDAT2_otf": "Phips/4xLexicaDAT2_otf",
    "2xHFA2k_LUDVAE_compact": "Phips/2xHFA2k_LUDVAE_compact",
    "2xHFA2kAVCCompact": "Phips/2xHFA2kAVCCompact",
    "2xHFA2kCompact": "Phips/2xHFA2kCompact",
    "2xEvangelion_dat2": "Phips/2xEvangelion_dat2",
    "1xDeJPG_realplksr_otf": "Phips/1xDeJPG_realplksr_otf",
    "1xDeH264_realplksr": "Phips/1xDeH264_realplksr",
    "1xDeNoise_realplksr_otf": "Phips/1xDeNoise_realplksr_otf",
    "1xExposureCorrection_compact": "Phips/1xExposureCorrection_compact",
    "1xUnderExposureCorrection_compact": "Phips/1xUnderExposureCorrection_compact",
    "1xOverExposureCorrection_compact": "Phips/1xOverExposureCorrection_compact",
}


@spaces.GPU
def upscale_image(image, model_selection):
    original = load_image(image)

    upscaler = UpscaleWithModel.from_pretrained(MODELS[model_selection]).to("cuda")
    image = upscaler(original, tiling=True, tile_width=1024, tile_height=1024)

    return original, image


def clear_result():
    return gr.update(value=None)


title = """<h1 align="center">Community Image Upscaler</h1>
<div align="center">Use this Space to upscale your images, makes use of the
<a href="https://github.com/asomoza/image_gen_aux">Image Generation Auxiliary Tools</a> library.<br> 
This space makes use of sisr models trained by the community and models will be added as per model authors request.<br>
Model information can be found <a href="https://huggingface.co/spaces/Phips/CommunityUpscaler/blob/main/models.md">here</a>.
"""

with gr.Blocks() as demo:
    gr.HTML(title)
    with gr.Row():
        with gr.Column():
            input_image = gr.Image(type="pil", label="Input Image")

            model_selection = gr.Dropdown(
                choices=list(MODELS.keys()),
                value="4xNomos2_hq_drct-l",
                label="Model",
            )

            run_button = gr.Button("Upscale")
        with gr.Column():
            result = ImageSlider(
                interactive=False,
                label="Generated Image",
            )

    run_button.click(
        fn=clear_result,
        inputs=None,
        outputs=result,
    ).then(
        fn=upscale_image,
        inputs=[input_image, model_selection],
        outputs=result,
    )


demo.launch(share=False)