cr8 commited on
Commit
8bb57d6
·
verified ·
1 Parent(s): 6b248ff

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +23 -21
app.py CHANGED
@@ -1,47 +1,49 @@
1
  import gradio as gr
2
  from PIL import Image, ImageEnhance, ImageFilter
3
 
4
- def enhance_vibrancy(image, vibrancy_factor):
5
  # Convert to RGB (JPEG doesn't support transparency)
6
  image = image.convert("RGB")
7
 
8
- # Enhance color
9
- enhancer = ImageEnhance.Color(image)
10
- image = enhancer.enhance(vibrancy_factor)
11
-
12
- # Add minimal brightness/contrast boost
13
  image = ImageEnhance.Brightness(image).enhance(1.0 + (vibrancy_factor-1)*0.2)
14
  image = ImageEnhance.Contrast(image).enhance(1.0 + (vibrancy_factor-1)*0.1)
15
 
16
- # Add sharpness (1.5 base value, scaled slightly with vibrancy)
17
- sharpness_factor = 1.5 + (vibrancy_factor-1)*0.3
18
  image = ImageEnhance.Sharpness(image).enhance(sharpness_factor)
19
 
20
- # Add depth effect with subtle background blur
21
- # Create a slightly blurred version
22
- blurred = image.filter(ImageFilter.GaussianBlur(radius=2))
23
-
24
- # Enhance contrast on original to make subject pop
25
- foreground = ImageEnhance.Contrast(image).enhance(1.2)
26
-
27
- # Blend original (sharp) with blurred background (70% foreground, 30% blur)
28
- image = Image.blend(blurred, foreground, 0.7)
 
 
 
 
29
 
30
  return image
31
 
32
  iface = gr.Interface(
33
- fn=enhance_vibrancy,
34
  inputs=[
35
  gr.Image(type="pil", label="Original Image (WEBP)"),
36
- gr.Slider(0.5, 2.0, 1.0, step=0.1, label="Vibrancy Level")
 
 
37
  ],
38
  outputs=gr.Image(
39
  type="pil",
40
  label="Enhanced Image (JPEG)",
41
  format="jpeg" # Force JPEG output
42
  ),
43
- title=" Vibrancy Booster",
44
- description="enhancing colors, sharpness, and depth (1.0 = original vibrancy)"
45
  )
46
 
47
  if __name__ == "__main__":
 
1
  import gradio as gr
2
  from PIL import Image, ImageEnhance, ImageFilter
3
 
4
+ def enhance_image(image, vibrancy_factor, sharpness_factor, depth_factor):
5
  # Convert to RGB (JPEG doesn't support transparency)
6
  image = image.convert("RGB")
7
 
8
+ # 1. Vibrancy (color enhancement)
9
+ image = ImageEnhance.Color(image).enhance(vibrancy_factor)
 
 
 
10
  image = ImageEnhance.Brightness(image).enhance(1.0 + (vibrancy_factor-1)*0.2)
11
  image = ImageEnhance.Contrast(image).enhance(1.0 + (vibrancy_factor-1)*0.1)
12
 
13
+ # 2. Sharpness
 
14
  image = ImageEnhance.Sharpness(image).enhance(sharpness_factor)
15
 
16
+ # 3. Depth (make subject pop)
17
+ if depth_factor > 1.0:
18
+ # Create blurred, darkened background
19
+ background = image.filter(ImageFilter.GaussianBlur(radius=depth_factor * 2))
20
+ background = ImageEnhance.Brightness(background).enhance(0.8 / depth_factor) # Darken slightly
21
+
22
+ # Boost foreground contrast and brightness
23
+ foreground = ImageEnhance.Contrast(image).enhance(1.0 + (depth_factor-1)*0.5)
24
+ foreground = ImageEnhance.Brightness(foreground).enhance(1.0 + (depth_factor-1)*0.2)
25
+
26
+ # Blend: more depth_factor = more foreground dominance
27
+ alpha = 0.5 + (depth_factor-1) * 0.25 # 0.5 to 0.75 blend
28
+ image = Image.blend(background, foreground, alpha)
29
 
30
  return image
31
 
32
  iface = gr.Interface(
33
+ fn=enhance_image,
34
  inputs=[
35
  gr.Image(type="pil", label="Original Image (WEBP)"),
36
+ gr.Slider(0.5, 2.0, 1.0, step=0.1, label="Vibrancy Level"),
37
+ gr.Slider(0.5, 3.0, 1.0, step=0.1, label="Sharpness Level"),
38
+ gr.Slider(1.0, 2.0, 1.0, step=0.1, label="Depth Level")
39
  ],
40
  outputs=gr.Image(
41
  type="pil",
42
  label="Enhanced Image (JPEG)",
43
  format="jpeg" # Force JPEG output
44
  ),
45
+ title="Vibrancy, Sharpness & Depth Booster",
46
+ description="Adjust vibrancy, sharpness, and depth independently (1.0 = original)"
47
  )
48
 
49
  if __name__ == "__main__":