Spaces:
Runtime error
Runtime error
File size: 2,837 Bytes
1fae4f7 737f1ab 046ae6c 20379ba 1fae4f7 20379ba 737f1ab 1fae4f7 737f1ab 046ae6c 737f1ab 20379ba 046ae6c 737f1ab 1fae4f7 737f1ab 046ae6c 737f1ab 20379ba 046ae6c 737f1ab 1fae4f7 737f1ab 20379ba 737f1ab 1fae4f7 20379ba 737f1ab 1fae4f7 3f6deb5 046ae6c 20379ba 737f1ab 20379ba 737f1ab 1fae4f7 3f6deb5 046ae6c 20379ba 737f1ab 20379ba 737f1ab 1fae4f7 3f6deb5 20379ba 737f1ab 20379ba 046ae6c 737f1ab 1fae4f7 20379ba 737f1ab 20379ba 737f1ab 1fae4f7 737f1ab |
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 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
import gradio as gr
from gradio_client import Client, handle_file
from PIL import Image
import requests
import tempfile
import os
# Инициализируем клиент
client = Client("not-lain/background-removal")
def process_image_via_api(image):
result = client.predict(
image=handle_file(image),
api_name="/image"
)
# Convert the output tuple to PIL images and return
if result:
processed_image_path = result[0]
origin_image_path = result[1]
processed_image = Image.open(processed_image_path)
origin_image = Image.open(origin_image_path)
return (processed_image, origin_image)
return None, None
def process_url_via_api(url):
result = client.predict(
image=url,
api_name="/text"
)
# Convert the output tuple to PIL images and return
if result:
processed_image_path = result[0]
origin_image_path = result[1]
processed_image = Image.open(processed_image_path)
origin_image = Image.open(origin_image_path)
return (processed_image, origin_image)
return None, None
def process_file_via_api(f):
result = client.predict(
f=handle_file(f),
api_name="/png"
)
# Return the path to the saved PNG file
if result:
return result
return None
# Пример изображений
chameleon = "butterfly.jpg"
url_example = "https://hips.hearstapps.com/hmg-prod/images/gettyimages-1229892983-square.jpg"
# Tab 1: Image Upload
slider1_processed = ImageSlider(label="Processed Image", type="pil")
slider1_origin = ImageSlider(label="Original Image", type="pil")
image_upload = gr.Image(label="Upload an image")
tab1 = gr.Interface(
fn=process_image_via_api,
inputs=image_upload,
outputs=[slider1_processed, slider1_origin],
examples=[chameleon],
api_name="/image_api"
)
# Tab 2: URL Input
slider2_processed = ImageSlider(label="Processed Image", type="pil")
slider2_origin = ImageSlider(label="Original Image", type="pil")
url_input = gr.Textbox(label="Paste an image URL")
tab2 = gr.Interface(
fn=process_url_via_api,
inputs=url_input,
outputs=[slider2_processed, slider2_origin],
examples=[url_example],
api_name="/url_api"
)
# Tab 3: File Output
output_file = gr.File(label="Output PNG File")
image_file_upload = gr.Image(label="Upload an image", type="filepath")
tab3 = gr.Interface(
fn=process_file_via_api,
inputs=image_file_upload,
outputs=output_file,
examples=["butterfly.jpg"],
api_name="/png_api"
)
# Создаем интерфейс с вкладками
demo = gr.TabbedInterface(
[tab1, tab2, tab3],
["Image Upload", "URL Input", "File Output"],
title="Background Removal Tool"
)
if __name__ == "__main__":
demo.launch(show_error=True)
|