File size: 1,972 Bytes
d6ac96e
 
 
3c28963
 
 
 
 
 
 
d6ac96e
3c28963
 
 
d6ac96e
3c28963
 
d6ac96e
3c28963
 
d6ac96e
3c28963
 
d6ac96e
3c28963
d6ac96e
3c28963
 
d6ac96e
3c28963
 
 
d6ac96e
3c28963
 
d6ac96e
 
3c28963
d6ac96e
3c28963
d6ac96e
3c28963
 
d6ac96e
3c28963
d6ac96e
3c28963
 
d6ac96e
3c28963
d6ac96e
3c28963
 
a4981cb
3c28963
 
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
import os
import cv2
import torch
from flask import Flask, request, jsonify, send_file

# Importe as classes e funções necessárias para seus modelos aqui

# Carregue os modelos
model_realesr = SRVGGNetCompact(num_in_ch=3, num_out_ch=3, num_feat=64, num_conv=32, upscale=4, act_type='prelu')
model_path_realesr = 'realesr-general-x4v3.pth'

model_gfpgan_1_2 = GFPGANer(model_path='GFPGANv1.2.pth', upscale=2, arch='clean', channel_multiplier=2, bg_upsampler=upsampler)
model_gfpgan_1_3 = GFPGANer(model_path='GFPGANv1.3.pth', upscale=2, arch='clean', channel_multiplier=2, bg_upsampler=upsampler)
model_gfpgan_1_4 = GFPGANer(model_path='GFPGANv1.4.pth', upscale=2, arch='clean', channel_multiplier=2, bg_upsampler=upsampler)

# Defina o modelo RestoreFormer se necessário
# model_restoreformer = ...

# Defina o modelo CodeFormer se necessário
# model_codeformer = ...

# Defina o modelo RealESR-General-x4v3 se necessário
# model_realesr_general = ...

app = Flask(__name__)

@app.route('/reconstruir', methods=['POST'])
def reconstruir_imagem():
    try:
        version = request.form.get('version', 'v1.4')
        scale = int(request.form.get('scale', 2))
        img_file = request.files['imagem']

        temp_filename = 'temp.jpg'
        img_file.save(temp_filename)

        if version == 'v1.2':
            face_enhancer = model_gfpgan_1_2
        elif version == 'v1.3':
            face_enhancer = model_gfpgan_1_3
        elif version == 'v1.4':
            face_enhancer = model_gfpgan_1_4
        # Adicione mais condições para outros modelos, se necessário

        output, save_path = inference(temp_filename, version, scale)

        if output is not None:
            return send_file(save_path, mimetype='image/jpeg')
        else:
            return jsonify({'error': 'Falha na reconstrução da imagem'})

    except Exception as e:
        return jsonify({'error': str(e)})

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=80)