| import gradio as gr |
| from yellow_tint_cleaner import auto_adjust |
| from PIL import Image |
| import numpy as np |
|
|
| def process_image( |
| image, |
| strength, |
| brightness, |
| contrast, |
| saturation, |
| red, |
| green, |
| blue, |
| mode |
| ): |
| """Process the image with the given parameters.""" |
| if image is None: |
| return None |
| |
| |
| if not isinstance(image, Image.Image): |
| image = Image.fromarray(image) |
| |
| |
| result = auto_adjust( |
| image, |
| strength=strength, |
| brightness=brightness, |
| contrast=contrast, |
| saturation=saturation, |
| red=red, |
| green=green, |
| blue=blue, |
| mode=mode |
| ) |
| |
| return result |
|
|
| |
| with gr.Blocks(title="Yellow Tint Cleaner") as demo: |
| gr.Markdown(""" |
| # GPT-4o Yellow Tint Cleaner |
| This app helps you clean yellow tints from your images using various adjustment parameters. |
| Code adapted from [ComfyUI_LayerStyle](https://github.com/chflame163/ComfyUI_LayerStyle) by chflame163 |
| """) |
| |
| with gr.Row(): |
| with gr.Column(): |
| input_image = gr.Image(label="Input Image", type="pil", height=600) |
| |
| with gr.Accordion("Adjustments", open=False): |
| with gr.Row(): |
| strength = gr.Slider( |
| minimum=0, |
| maximum=100, |
| value=75, |
| step=1, |
| label="Strength" |
| ) |
| brightness = gr.Slider( |
| minimum=-100, |
| maximum=100, |
| value=0, |
| step=1, |
| label="Brightness" |
| ) |
| |
| with gr.Row(): |
| contrast = gr.Slider( |
| minimum=-100, |
| maximum=100, |
| value=0, |
| step=1, |
| label="Contrast" |
| ) |
| saturation = gr.Slider( |
| minimum=-100, |
| maximum=100, |
| value=0, |
| step=1, |
| label="Saturation" |
| ) |
| |
| with gr.Row(): |
| red = gr.Slider( |
| minimum=-100, |
| maximum=100, |
| value=0, |
| step=1, |
| label="Red Channel" |
| ) |
| green = gr.Slider( |
| minimum=-100, |
| maximum=100, |
| value=0, |
| step=1, |
| label="Green Channel" |
| ) |
| |
| with gr.Row(): |
| blue = gr.Slider( |
| minimum=-100, |
| maximum=100, |
| value=0, |
| step=1, |
| label="Blue Channel" |
| ) |
| mode = gr.Dropdown( |
| choices=["RGB", "lum + sat", "luminance", "saturation", "mono"], |
| value="lum + sat", |
| label="Processing Mode" |
| ) |
| |
| process_btn = gr.Button("Process Image") |
| |
| with gr.Column(): |
| output_image = gr.Image(label="Output Image", height=600) |
| |
| process_btn.click( |
| fn=process_image, |
| inputs=[ |
| input_image, |
| strength, |
| brightness, |
| contrast, |
| saturation, |
| red, |
| green, |
| blue, |
| mode |
| ], |
| outputs=output_image |
| ) |
|
|
| if __name__ == "__main__": |
| demo.launch() |