Spaces:
Runtime error
Runtime error
File size: 2,183 Bytes
0a17d96 c9c66de 6c2a659 c9c66de 0a17d96 c9c66de 0a17d96 6c2a659 c9c66de 0a17d96 6c2a659 c9c66de 6c2a659 c9c66de 0a17d96 c9c66de 6c2a659 c9c66de 6c2a659 c9c66de 6c2a659 c9c66de 6c2a659 c9c66de 6c2a659 0a17d96 c9c66de 6c2a659 c9c66de 6c2a659 c9c66de 0a17d96 c9c66de |
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 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
import gradio as gr
import torch
from transformers import AutoModelForImageToImage, AutoImageProcessor
from PIL import Image
import numpy as np
import os
# Model loading with manual configuration
cache_dir = "./model_cache"
os.makedirs(cache_dir, exist_ok=True)
# Load model components separately
image_processor = AutoImageProcessor.from_pretrained(
"camenduru/cv_ddcolor_image-colorization",
cache_dir=cache_dir
)
model = AutoModelForImageToImage.from_pretrained(
"camenduru/cv_ddcolor_image-colorization",
torch_dtype=torch.float16,
cache_dir=cache_dir
).to("cuda")
def colorize_image(input_image):
"""Process B&W image and return colorized version"""
# Ensure grayscale input
if input_image.mode != 'L':
input_image = input_image.convert('L')
# Convert to RGB for model input
rgb_image = input_image.convert("RGB")
# Process through model
with torch.inference_mode():
# Preprocess
pixel_values = image_processor(rgb_image, return_tensors="pt").pixel_values.to("cuda")
# Forward pass
outputs = model(pixel_values=pixel_values)
# Postprocess
output_image = image_processor.post_process(outputs, output_type="pil")[0]
return output_image
# UI Layout
with gr.Blocks(theme="soft") as demo:
gr.Markdown("""
# 📸 Vintage Photo Colorizer
Transform old black & white photos into vibrant color images using DDColor AI.
## How to Use
1. Upload a grayscale image (or color image will be converted to B&W)
2. Click "Colorize" to process
3. Download your new colorized photo!
""")
with gr.Row():
input_img = gr.Image(label="Upload Black & White Image", type="pil")
colorize_btn = gr.Button("🎨 Colorize Photo", variant="primary")
output_img = gr.Image(label="Colorized Image")
colorize_btn.click(
fn=colorize_image,
inputs=[input_img],
outputs=[output_img]
)
gr.Markdown("""
### Powered by [DDColor](https://huggingface.co/papers/2212.11613 )
*Dual Decoders for Photo-Realistic Image Colorization*
""")
demo.launch() |