Aventury commited on
Commit
e405341
·
verified ·
1 Parent(s): c9323b8

Update index.html

Browse files
Files changed (1) hide show
  1. index.html +61 -26
index.html CHANGED
@@ -3,12 +3,10 @@
3
  <head>
4
  <meta charset="utf-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1">
6
- <title>Gradio-Lite: Serverless Gradio Running Entirely in Your Browser</title>
7
- <meta name="description" content="Gradio-Lite: Serverless Gradio Running Entirely in Your Browser">
8
-
9
  <script type="module" crossorigin src="https://cdn.jsdelivr.net/npm/@gradio/lite/dist/lite.js"></script>
10
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@gradio/lite/dist/lite.css" />
11
-
12
  <style>
13
  html, body {
14
  margin: 0;
@@ -21,37 +19,74 @@
21
  <gradio-lite>
22
  <gradio-file name="app.py" entrypoint>
23
  import gradio as gr
 
 
 
 
 
24
 
25
- from filters import as_gray
 
 
 
 
 
 
 
 
 
 
26
 
27
- def process(input_image):
28
- output_image = as_gray(input_image)
29
- return output_image
 
30
 
31
- demo = gr.Interface(
32
- process,
33
- "image",
34
- "image",
35
- examples=["lion.jpg", "logo.png"],
36
- )
 
 
 
 
 
 
 
 
37
 
38
- demo.launch()
39
- </gradio-file>
 
 
 
40
 
41
- <gradio-file name="filters.py">
42
- from skimage.color import rgb2gray
43
 
44
- def as_gray(image):
45
- return rgb2gray(image)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
46
  </gradio-file>
47
-
48
- <gradio-file name="lion.jpg" url="https://raw.githubusercontent.com/gradio-app/gradio/main/gradio/test_data/lion.jpg" />
49
- <gradio-file name="logo.png" url="https://raw.githubusercontent.com/gradio-app/gradio/main/guides/assets/logo.png" />
50
-
51
  <gradio-requirements>
52
  # Same syntax as requirements.txt
53
- scikit-image
 
 
54
  </gradio-requirements>
55
  </gradio-lite>
56
  </body>
57
- </html>
 
3
  <head>
4
  <meta charset="utf-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <title>Gradio-Lite: Serverless Gradio with AI Features</title>
7
+ <meta name="description" content="Gradio-Lite: Serverless Gradio Running Entirely in Your Browser with AI Features">
 
8
  <script type="module" crossorigin src="https://cdn.jsdelivr.net/npm/@gradio/lite/dist/lite.js"></script>
9
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@gradio/lite/dist/lite.css" />
 
10
  <style>
11
  html, body {
12
  margin: 0;
 
19
  <gradio-lite>
20
  <gradio-file name="app.py" entrypoint>
21
  import gradio as gr
22
+ import numpy as np
23
+ from PIL import Image
24
+ from rembg import remove
25
+ import base64
26
+ from io import BytesIO
27
 
28
+ # Placeholder for a very basic "image generation" - creates a colored square
29
+ def generate_image(color="red"):
30
+ if color == "red":
31
+ img_array = np.array([[[255, 0, 0] for _ in range(256)] for _ in range(256)], dtype=np.uint8)
32
+ elif color == "green":
33
+ img_array = np.array([[[0, 255, 0] for _ in range(256)] for _ in range(256)], dtype=np.uint8)
34
+ elif color == "blue":
35
+ img_array = np.array([[[0, 0, 255] for _ in range(256)] for _ in range(256)], dtype=np.uint8)
36
+ else:
37
+ img_array = np.array([[[255, 255, 255] for _ in range(256)] for _ in range(256)], dtype=np.uint8)
38
+ return Image.fromarray(img_array)
39
 
40
+ def remove_background(input_image):
41
+ if input_image is None:
42
+ return None
43
+ return remove(input_image)
44
 
45
+ # Placeholder for 3D conversion - just adds a border
46
+ def convert_to_3d(input_image):
47
+ if input_image is None:
48
+ return None
49
+ img = np.array(input_image)
50
+ height, width, _ = img.shape
51
+ border_size = 10
52
+ new_img = np.zeros((height + 2 * border_size, width + 2 * border_size, 3), dtype=np.uint8)
53
+ new_img[border_size:height + border_size, border_size:width + border_size] = img
54
+ new_img[:border_size, :, :] = [150,150,150]
55
+ new_img[height + border_size:, :, :] = [150,150,150]
56
+ new_img[:, :border_size, :] = [150,150,150]
57
+ new_img[:, width + border_size:, :] = [150,150,150]
58
+ return Image.fromarray(new_img)
59
 
60
+ def pil_to_base64(pil_image):
61
+ buffered = BytesIO()
62
+ pil_image.save(buffered, format="PNG")
63
+ img_str = base64.b64encode(buffered.getvalue()).decode()
64
+ return f"data:image/png;base64,{img_str}"
65
 
 
 
66
 
67
+ with gr.Blocks() as demo:
68
+ with gr.Row():
69
+ with gr.Column():
70
+ color_dropdown = gr.Dropdown(choices=["red", "green", "blue", "white"], label="Image Color")
71
+ generate_button = gr.Button("Generate Image")
72
+ generated_image = gr.Image(label="Generated Image")
73
+ remove_bg_button = gr.Button("Remove Background")
74
+ removed_bg_image = gr.Image(label="Background Removed Image")
75
+ convert_3d_button = gr.Button("Convert to 3D")
76
+ converted_3d_image = gr.Image(label="3D Converted Image")
77
+
78
+ generate_button.click(generate_image, inputs=[color_dropdown], outputs=[generated_image])
79
+ remove_bg_button.click(remove_background, inputs=[generated_image], outputs=[removed_bg_image])
80
+ convert_3d_button.click(convert_to_3d, inputs=[removed_bg_image], outputs=[converted_3d_image])
81
+
82
+ demo.launch()
83
  </gradio-file>
 
 
 
 
84
  <gradio-requirements>
85
  # Same syntax as requirements.txt
86
+ pillow
87
+ rembg
88
+ numpy
89
  </gradio-requirements>
90
  </gradio-lite>
91
  </body>
92
+ </html>