Spaces:
Running
Running
import gradio as gr | |
import numpy as np | |
import colorizers as c | |
from colorizers.util import postprocess_tens, preprocess_img | |
def interface(image, model: str = "eccv16"): | |
if model == "eccv16": | |
img = c.eccv16(pretrained=True).eval() | |
else: | |
img = c.siggraph17(pretrained=True).eval() | |
oimg = np.asarray(image) | |
if(oimg.ndim == 2): | |
oimg = np.tile(oimg[:,:,None], 3) | |
(tens_l_orig, tens_l_rs) = preprocess_img(oimg) | |
output_img = postprocess_tens( | |
tens_l_orig, | |
img(tens_l_rs).cpu() | |
) | |
return output_img | |
css=''' | |
.Box { | |
background-color: var(--color-canvas-default); | |
border-color: var(--color-border-default); | |
border-style: solid; | |
border-width: 1px; | |
border-radius: 6px; | |
} | |
.d-flex { | |
display: flex !important; | |
} | |
.flex-md-row { | |
flex-direction: row !important; | |
} | |
.flex-column { | |
flex-direction: column !important; | |
} | |
''' | |
title = "Image Colorization Using AI Models" | |
description = r"""<center>An automatic colorization functionality for Real-Time User-Guided Image Colorization with Learned Deep Priors,ECCV16 & SIGGRAPH 2017 Models!<br> | |
Practically the algorithm is used to COLORIZE your **old BLACK & WHITE / GRAYSCALE photos**.<br> | |
To use it, simply just upload the concerned image.<br> | |
""" | |
article = r""" | |
<p style='text-align: '> Given a grayscale photograph as input, this demo attacks the problem of hallucinating a plausible color version of the photograph. This problem is clearly underconstrained, so previous approaches have either relied on significant user interaction or resulted in desaturated colorizations. A fully automatic approach has been proposed that produces vibrant and realistic colorizations. The underlying uncertainty of the problem was embraced by posing it as a classification task and use class-rebalancing at training time to increase the diversity of colors in the result. The system is implemented as a feed-forward pass in a CNN at test time and is trained on over a million color images. The algorithm is evaluated using a "colorization Turing test," asking human participants to choose between a generated and ground truth color image. The method used here successfully fools humans on 32% of the trials, significantly higher than other methodology used by the other photo automation tools. Moreover, the colorization can be a powerful pretext task for self-supervised feature learning, acting as a cross-channel encoder. This approach results in state-of-the-art performance on several feature learning benchmarks. </p> | |
<img src="https://camo.githubusercontent.com/8f849fd53753e61659664d37849703d949209ec93957d1a2fd529be9772f7030/687474703a2f2f726963687a68616e672e6769746875622e696f2f636f6c6f72697a6174696f6e2f7265736f75726365732f696d616765732f746561736572342e6a7067" alt="Teaser Image" data-canonical-src="http://richzhang.github.io/colorization/resources/images/teaser4.jpg" style="max-width: 100%;"> | |
<p> | |
<img class="round" style="height:275px" src="http://richzhang.github.io/colorization/resources/images/net_diagram.jpg"> | |
</p> | |
<div class="footer"> | |
<p>Built by <a href="" style="text-decoration: underline;" target="_blank">Dushyantsinh Jadeja</a> & the Model being used in here is from <a href="https://github.com/richzhang/colorization" style="text-decoration: underline;" target="_blank">richzhang</a> - Gradio Demo by π€ Hugging Face </p> | |
</div> | |
<div class="acknowledgments"> | |
<p> | |
<h4>LICENSE</h4> | |
</p> | |
<h3 class="mt-0 mb-2 h4">BSD 2-Clause "Simplified" License</h3> | |
<h4 class="mt-1 mb-2 h5">Permissions</h4> | |
<ul class="list-style-none"> | |
<li class="text-small pl-3"> | |
<svg width="13" class="octicon octicon-check color-fg-success ml-n3 v-align-middle" viewBox="0 0 16 16" version="1.1" height="13" aria-hidden="true"> | |
<path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path> | |
</svg> | |
<span class="v-align-middle" title="The licensed material and derivatives may be used for commercial purposes."> Commercial use </span> | |
</li> | |
<li class="text-small pl-3"> | |
<svg width="13" class="octicon octicon-check color-fg-success ml-n3 v-align-middle" viewBox="0 0 16 16" version="1.1" height="13" aria-hidden="true"> | |
<path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path> | |
</svg> | |
<span class="v-align-middle" title="The licensed material may be modified."> Modification </span> | |
</li> | |
<li class="text-small pl-3"> | |
<svg width="13" class="octicon octicon-check color-fg-success ml-n3 v-align-middle" viewBox="0 0 16 16" version="1.1" height="13" aria-hidden="true"> | |
<path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path> | |
</svg> | |
<span class="v-align-middle" title="The licensed material may be distributed."> Distribution </span> | |
</li> | |
<li class="text-small pl-3"> | |
<svg width="13" class="octicon octicon-check color-fg-success ml-n3 v-align-middle" viewBox="0 0 16 16" version="1.1" height="13" aria-hidden="true"> | |
<path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path> | |
</svg> | |
<span class="v-align-middle" title="The licensed material may be used and modified in private."> Private use </span> | |
</li> | |
</ul> | |
<h4 class="mt-1 mb-2 h5">Limitations</h4> | |
<ul class="list-style-none"> | |
<li class="text-small pl-3"> | |
<svg width="13" class="octicon octicon-x color-fg-danger ml-n3 v-align-middle" viewBox="0 0 16 16" version="1.1" height="13" aria-hidden="true"> | |
<path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path> | |
</svg> | |
<span class="v-align-middle" title="This license includes a limitation of liability."> Liability </span> | |
</li> | |
<li class="text-small pl-3"> | |
<svg width="13" class="octicon octicon-x color-fg-danger ml-n3 v-align-middle" viewBox="0 0 16 16" version="1.1" height="13" aria-hidden="true"> | |
<path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path> | |
</svg> | |
<span class="v-align-middle" title="This license explicitly states that it does NOT provide any warranty."> Warranty </span> | |
</li> | |
</ul> | |
<h4 class="mt-1 mb-2 h5">Conditions</h4> | |
<ul class="list-style-none"> | |
<li class="text-small pl-3"> | |
<svg width="13" class="octicon octicon-info color-fg-accent ml-n3 v-align-middle" viewBox="0 0 16 16" version="1.1" height="13" aria-hidden="true"> | |
<path fill-rule="evenodd" d="M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm6.5-.25A.75.75 0 017.25 7h1a.75.75 0 01.75.75v2.75h.25a.75.75 0 010 1.5h-2a.75.75 0 010-1.5h.25v-2h-.25a.75.75 0 01-.75-.75zM8 6a1 1 0 100-2 1 1 0 000 2z"></path> | |
</svg> | |
<span class="v-align-middle" title="A copy of the license and copyright notice must be included with the licensed material."> License and copyright notice </span> | |
</li> | |
</ul> | |
</div> For the full list of restrictions please <a href="https://github.dev/richzhang/colorization/blob/master/LICENSE" target="_blank" style="text-decoration: underline;" target="_blank">read the license</a> | |
</p> | |
<br> | |
<center> | |
<img src='https://visitor-badge.glitch.me/badge?page_id=dj_colorization_eccv16siggraph17' alt='visitor badge'> | |
</center> | |
""" | |
#with gr.Interface(css=css) as mainBody: | |
gr.HTML("""<style>""" + css+ """</Style>""") | |
mainBody = gr.Interface( | |
interface, | |
[ | |
gr.components.Image(type="pil", label="image"), | |
gr.components.Radio( | |
["eccv16", "siggraph17"], | |
type="value", | |
label="model" | |
) | |
], | |
[ | |
gr.components.Image(label="output") | |
], | |
#inputs="sketchpad", | |
#outputs="label", | |
theme="huggingface", | |
title=title, | |
description=description, | |
article=article, | |
live=True, | |
) | |
mainBody.launch() |