File size: 2,479 Bytes
8e89617 48e3bad 8e89617 48e3bad 8e89617 729e2d3 48e3bad 729e2d3 e4c233a 729e2d3 e4c233a 8db3ad1 e4c233a 8db3ad1 e4c233a 8db3ad1 729e2d3 48e3bad 8db3ad1 48e3bad 8db3ad1 729e2d3 8e89617 729e2d3 |
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 |
import gradio as gr
from PIL import Image, ImageEnhance, ImageOps, ImageFilter
# ํํฐ ํจ๊ณผ ์ ์
def apply_filter(image, filter_name, intensity):
if filter_name == "Soft Glow":
return image.filter(ImageFilter.GaussianBlur(intensity))
elif filter_name == "Portrait Enhancer":
enhancer = ImageEnhance.Brightness(image)
return enhancer.enhance(1 + (intensity / 100))
elif filter_name == "Warm Tone":
red, green, blue = image.split()
red = red.point(lambda p: min(255, p + intensity))
return Image.merge("RGB", (red, green, blue))
elif filter_name == "Cold Tone":
red, green, blue = image.split()
blue = blue.point(lambda p: min(255, p + intensity))
return Image.merge("RGB", (red, green, blue))
elif filter_name == "High-Key":
enhancer = ImageEnhance.Brightness(image)
return enhancer.enhance(1.5 + (intensity / 200))
elif filter_name == "Low-Key":
enhancer = ImageEnhance.Contrast(image)
return enhancer.enhance(0.8 - (intensity / 200))
elif filter_name == "Haze":
return image.filter(ImageFilter.BLUR)
elif filter_name == "Monochrome":
return ImageOps.grayscale(image)
else:
return image
# Gradio UI ๊ตฌ์ฑ
with gr.Blocks() as app:
gr.Markdown("# ์ธ๋ฌผ ์ฌ์ง ํํฐ ์ ์ฉ ์ฑ")
with gr.Row():
input_image = gr.Image(label="์๋ณธ ์ด๋ฏธ์ง", type="pil")
filter_name = gr.Dropdown(
["Soft Glow", "Portrait Enhancer", "Warm Tone", "Cold Tone",
"High-Key", "Low-Key", "Haze", "Monochrome"],
label="ํํฐ ์ ํ"
)
intensity = gr.Slider(0, 100, step=1, label="ํํฐ ๊ฐ๋")
apply_button = gr.Button("ํํฐ ์ ์ฉ")
with gr.Row():
comparison = gr.Image(label="๋ณ๊ฒฝ ์ ํ ๋น๊ต", type="pil")
def apply_filter_and_compare(image, filter_name, intensity):
filtered_image = apply_filter(image, filter_name, intensity)
# ์ฌ๋ผ์ด๋๋ฅผ ์ํ ์ด๋ฏธ์ง ๊ฒฐํฉ
before_after = Image.new("RGB", (image.width * 2, image.height))
before_after.paste(image, (0, 0))
before_after.paste(filtered_image, (image.width, 0))
return before_after
apply_button.click(
fn=apply_filter_and_compare,
inputs=[input_image, filter_name, intensity],
outputs=comparison
)
# ์คํ
if __name__ == "__main__":
app.launch()
|