from huggingface_hub import from_pretrained_keras import gradio as gr from skimage.io import imsave from skimage.color import lab2rgb from tensorflow.keras.utils import img_to_array, load_img import numpy as np repo_id="saruizn/trabajo" model = from_pretrained_keras(repo_id) def predict(img): partes=[] imsave("input.jpg",(img * 255).astype(np.uint8)) imag = img_to_array(load_img("input.jpg")) partes=divideImage(imag) i=0 imagenes=[] for imgp in partes: nombre="result"+str(i)+".png" imsave(nombre,imgp) guardarImagen(nombre,i,imagenes) i=i+1 imagenFinal=juntaImage(imagenes) return imagenFinal def guardarImagen(foto,i,imagenes): color_me = [] img = img_to_array(load_img(foto)) img = resize(img ,(256,256)) color_me.append(img) color_me = np.array(color_me, dtype=float) color_me = rgb2lab(1.0/255*color_me)[:,:,:,0] color_me = color_me.reshape(color_me.shape+(1,)) output = model.predict(color_me) output = output * 128 * 8 result = np.zeros((256, 256, 3)) result[:,:,0] = color_me[0][:,:,0] result[:,:,1:] = output[0] imagenes.append(lab2rgb(result)) imsave("result"+str(i)+".png", lab2rgb(result)) def divideImage(img): salida=[] for i in range(0,3): for j in range(0,5): salida.append(img[i*256:i*256+256,j*256:j*256+256]) salida.append(img[i*256:i*256+256,1372-256:1372]) for j in range(0,5): salida.append(img[929-256:929,j*256:j*256+256]) salida.append(img[929-256:929,1372-256:1372]) return salida def juntaImage(X): salida=np.zeros((929, 1372, 3)) im=0 for i in range(0,3): for j in range(0,5): salida[i*256:i*256+256,j*256:j*256+256]=X[im] im=im+1 salida[i*256:i*256+256,1372-256:1372]=X[im] im=im+1 for j in range(0,5): salida[929-256:929,j*256:j*256+256]=X[im] im=im+1 salida[929-256:929,1372-256:1372]=X[im] return salida gr.Interface(fn=predict, inputs=gr.inputs.Image(shape=(929, 1372)), outputs="image").launch(share=False)