import numpy as np import gradio as gr from PIL import Image import tensorflow as tf import keras from huggingface_hub import from_pretrained_keras #dfvds model = from_pretrained_keras("hbpkillerX/low_light_img_enhancer", compile=False) #model= tf.saved_model.load("hbpkillerX/low_light_img_enhancer/") def autocontrast(tensor, cutoff=0): tensor = tf.cast(tensor, dtype=tf.float32) min_val = tf.reduce_min(tensor) max_val = tf.reduce_max(tensor) range_val = max_val - min_val adjusted_tensor = tf.clip_by_value(tf.cast(tf.round((tensor - min_val - cutoff) * (255 / (range_val - 2 * cutoff))), tf.uint8), 0, 255) return adjusted_tensor def infer(original_image): image = keras.utils.img_to_array(original_image) image = autocontrast(image) image = image.astype("float32") / 255.0 image = np.expand_dims(image, axis=0) output = model.predict(image) output_image = output[0] * 255.0 output_image = output_image.clip(0, 255) output_image = output_image.reshape( (np.shape(output_image)[0], np.shape(output_image)[1], 3) ) output_image = np.uint32(output_image) return output_image iface = gr.Interface( fn=infer, title="Low Light Image Enhancement", description = "Keras Implementation of MIRNet model for light up the dark image 🌆🎆", inputs=[gr.inputs.Image(label="image", type="pil", shape=(960, 640))], outputs="image", cache_examples=True)