cr8 commited on
Commit
faa80dc
·
verified ·
1 Parent(s): e4485f0

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +26 -35
app.py CHANGED
@@ -1,38 +1,33 @@
1
  import gradio as gr
2
  from PIL import Image, ImageEnhance
3
 
4
- def enhance_image(image, vibrancy_factor, sharpness_factor, blue_yellow_factor, magenta_factor):
5
- # Convert to RGB (JPEG doesn't support transparency)
6
  image = image.convert("RGB")
7
 
8
- # Apply blue/yellow color balance
9
- by_r_scale = 1.0 - blue_yellow_factor # Reduce red when adding blue
10
- by_g_scale = 1.0 - blue_yellow_factor # Reduce green when adding blue
11
- by_b_scale = 1.0 + blue_yellow_factor # Increase blue
12
- matrix_blue_yellow = (
13
- by_r_scale, 0, 0, 0,
14
- 0, by_g_scale, 0, 0,
15
- 0, 0, by_b_scale, 0
16
  )
17
- image = image.convert("RGB", matrix_blue_yellow)
18
 
19
- # Apply magenta reduction (green enhancement)
20
- m_r_scale = 1.0 - magenta_factor # Reduce red component of magenta
21
- m_g_scale = 1.0 + magenta_factor # Increase green to counteract magenta
22
- m_b_scale = 1.0 - magenta_factor # Reduce blue component of magenta
23
- matrix_magenta = (
24
- m_r_scale, 0, 0, 0,
25
- 0, m_g_scale, 0, 0,
26
- 0, 0, m_b_scale, 0
27
  )
28
- image = image.convert("RGB", matrix_magenta)
29
 
30
- # Vibrancy (color enhancement)
 
 
 
31
  image = ImageEnhance.Color(image).enhance(vibrancy_factor)
32
- image = ImageEnhance.Brightness(image).enhance(1.0 + (vibrancy_factor-1)*0.2)
33
  image = ImageEnhance.Contrast(image).enhance(1.0 + (vibrancy_factor-1)*0.1)
34
 
35
- # Sharpness
36
  image = ImageEnhance.Sharpness(image).enhance(sharpness_factor)
37
 
38
  return image
@@ -40,19 +35,15 @@ def enhance_image(image, vibrancy_factor, sharpness_factor, blue_yellow_factor,
40
  iface = gr.Interface(
41
  fn=enhance_image,
42
  inputs=[
43
- gr.Image(type="pil", label="Original Image (WEBP)"),
44
- gr.Slider(0.5, 2.0, 1.0, step=0.1, label="Vibrancy Level"),
45
- gr.Slider(0.5, 3.0, 1.0, step=0.1, label="Sharpness Level"),
46
- gr.Slider(-1.0, 1.0, 0.0, step=0.1, label="Blue/Yellow Balance"),
47
- gr.Slider(-1.0, 1.0, 0.0, step=0.1, label="Magenta Reduction")
48
  ],
49
- outputs=gr.Image(
50
- type="pil",
51
- label="Enhanced Image (JPEG)",
52
- format="jpeg"
53
- ),
54
- title="Advanced Image Enhancer",
55
- description="Adjust vibrancy, sharpness, color balance, and magenta levels (1.0 = original)"
56
  )
57
 
58
  if __name__ == "__main__":
 
1
  import gradio as gr
2
  from PIL import Image, ImageEnhance
3
 
4
+ def enhance_image(image, vibrancy_factor, sharpness_factor, yellow_reducer, brightness_boost):
 
5
  image = image.convert("RGB")
6
 
7
+ # Targeted yellow reduction (without blue boost)
8
+ yellow_matrix = (
9
+ 1.0 - yellow_reducer*0.3, 0, 0, 0, # Reduce red contribution
10
+ 0, 1.0 - yellow_reducer*0.5, 0, 0, # Reduce green more (main yellow component)
11
+ 0, 0, 1.0, 0 # Leave blue unchanged
 
 
 
12
  )
13
+ image = image.convert("RGB", yellow_matrix)
14
 
15
+ # Apply magenta reduction
16
+ magenta_matrix = (
17
+ 1.0 - yellow_reducer*0.2, 0, 0, 0, # Slight red reduction
18
+ 0, 1.0 + yellow_reducer*0.3, 0, 0, # Boost green to counteract magenta
19
+ 0, 0, 1.0 - yellow_reducer*0.2, 0 # Slight blue reduction
 
 
 
20
  )
21
+ image = image.convert("RGB", magenta_matrix)
22
 
23
+ # Apply brightness boost
24
+ image = ImageEnhance.Brightness(image).enhance(1.0 + brightness_boost)
25
+
26
+ # Apply vibrancy enhancements
27
  image = ImageEnhance.Color(image).enhance(vibrancy_factor)
 
28
  image = ImageEnhance.Contrast(image).enhance(1.0 + (vibrancy_factor-1)*0.1)
29
 
30
+ # Apply sharpness last
31
  image = ImageEnhance.Sharpness(image).enhance(sharpness_factor)
32
 
33
  return image
 
35
  iface = gr.Interface(
36
  fn=enhance_image,
37
  inputs=[
38
+ gr.Image(type="pil", label="Original Image"),
39
+ gr.Slider(0.5, 2.0, 1.0, step=0.1, label="Vibrancy"),
40
+ gr.Slider(0.5, 3.0, 1.0, step=0.1, label="Sharpness"),
41
+ gr.Slider(0.0, 0.5, 0.0, step=0.05, label="Yellow/Magenta Reduction"),
42
+ gr.Slider(0.0, 0.5, 0.0, step=0.05, label="Brightness Boost")
43
  ],
44
+ outputs=gr.Image(type="pil", label="Enhanced Image", format="jpeg"),
45
+ title="Professional Image Enhancer",
46
+ description="Targeted yellow/magenta removal with natural color preservation"
 
 
 
 
47
  )
48
 
49
  if __name__ == "__main__":