12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- # import the necessary packages
- import os
- import sys
- import requests
- import ssl
- from flask import Flask
- from flask import request
- from flask import jsonify
- from flask import send_file
- from app_utils import download
- from app_utils import generate_random_filename
- from app_utils import clean_me
- from app_utils import clean_all
- from app_utils import create_directory
- from app_utils import get_model_bin
- from app_utils import convertToJPG
- from os import path
- import torch
- import fastai
- from deoldify.visualize import *
- from pathlib import Path
- import traceback
- torch.backends.cudnn.benchmark=True
- os.environ['CUDA_VISIBLE_DEVICES']='0'
- app = Flask(__name__)
- # define a predict function as an endpoint
- @app.route("/process", methods=["POST"])
- def process_image():
- input_path = generate_random_filename(upload_directory,"jpeg")
- output_path = os.path.join(results_img_directory, os.path.basename(input_path))
- try:
- url = request.json["source_url"]
- render_factor = int(request.json["render_factor"])
- download(url, input_path)
- try:
- image_colorizer.plot_transformed_image(path=input_path, figsize=(20,20),
- render_factor=render_factor, display_render_factor=True, compare=False)
- except:
- convertToJPG(input_path)
- image_colorizer.plot_transformed_image(path=input_path, figsize=(20,20),
- render_factor=render_factor, display_render_factor=True, compare=False)
- callback = send_file(output_path, mimetype='image/jpeg')
-
- return callback, 200
- except:
- traceback.print_exc()
- return {'message': 'input error'}, 400
- finally:
- pass
- clean_all([
- input_path,
- output_path
- ])
- if __name__ == '__main__':
- global upload_directory
- global results_img_directory
- global image_colorizer
- upload_directory = '/data/upload/'
- create_directory(upload_directory)
- results_img_directory = '/data/result_images/'
- create_directory(results_img_directory)
- model_directory = '/data/models/'
- create_directory(model_directory)
-
- artistic_model_url = 'https://www.dropbox.com/s/zkehq1uwahhbc2o/ColorizeArtistic_gen.pth?dl=0'
- get_model_bin(artistic_model_url, os.path.join(model_directory, 'ColorizeArtistic_gen.pth'))
- image_colorizer = get_image_colorizer(artistic=True)
-
- port = 5000
- host = '0.0.0.0'
- app.run(host=host, port=port, threaded=False)
|