AdvUnlearn / app.py
xinchen9's picture
Upload 7 files
0bc0300 verified
raw
history blame contribute delete
No virus
2.65 kB
import gradio as gr
import os
import requests
import json
import base64
from io import BytesIO
from PIL import Image
from huggingface_hub import login
from css_html_js import custom_css
from about import (
CITATION_BUTTON_LABEL,
CITATION_BUTTON_TEXT,
EVALUATION_QUEUE_TEXT,
INTRODUCTION_TEXT,
LLM_BENCHMARKS_TEXT,
TITLE,
)
myip = "34.219.98.113"
myport=8080
is_spaces = True if "SPACE_ID" in os.environ else False
is_shared_ui = False
def process_image_from_binary(img_stream):
if img_stream is None:
print("no image binary")
return
image_data = base64.b64decode(img_stream)
image_bytes = BytesIO(image_data)
img = Image.open(image_bytes)
return img
def generate_img(concept, prompt, seed, steps):
print(f"my IP is {myip}, my port is {myport}")
response = requests.post('http://{}:{}/generate'.format(myip, myport),
json={"concept": concept, "prompt": prompt, "seed": seed, "steps": steps},
timeout=(10, 1200))
print(f"result: {response}")
image = None
if response.status_code == 200:
response_json = response.json()
print(response_json)
image = process_image_from_binary(response_json['image'])
else:
print(f"Request failed with status code {response.status_code}")
return image
with gr.Blocks() as demo:
gr.HTML(TITLE)
gr.Markdown(INTRODUCTION_TEXT, elem_classes="markdown-text")
with gr.Row() as advlearn:
with gr.Column():
# gr.Markdown("Please upload your model id.")
drop_text = gr.Dropdown(["Object-Church", "Object-Parachute", "Object-Garbage_Truck",
"Style-VanGogh","Concept-Nudity", "None"],
label="AdvUnlearn Text Encoder")
with gr.Column():
text_input = gr.Textbox(label="Prompt")
with gr.Row():
with gr.Column():
with gr.Row():
seed = gr.Textbox(label="seed", value=666)
with gr.Row():
steps = gr.Textbox(label="num_steps", value=100)
with gr.Row():
start_button = gr.Button("AdvUnlearn",size='lg')
with gr.Column(min_width=512):
result_img = gr.Image(label="Image Gnerated by AdvUnlearn",width=512,show_share_button=False,show_download_button=False)
start_button.click(fn=generate_img, inputs=[drop_text, text_input, seed, steps], outputs=result_img, api_name="generate")
demo.launch()