Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| import numpy as np | |
| # from edict_functions import EDICT_editing | |
| from PIL import Image | |
| from utils import Endpoint, get_token | |
| from io import BytesIO | |
| import requests | |
| endpoint = Endpoint() | |
| def local_edict(x, source_text, edit_text, | |
| edit_strength, guidance_scale, | |
| steps=50, mix_weight=0.93, ): | |
| x = Image.fromarray(x) | |
| return_im = EDICT_editing(x, | |
| source_text, | |
| edit_text, | |
| steps=steps, | |
| mix_weight=mix_weight, | |
| init_image_strength=edit_strength, | |
| guidance_scale=guidance_scale | |
| )[0] | |
| return np.array(return_im) | |
| def encode_image(image): | |
| buffered = BytesIO() | |
| image.save(buffered, format="JPEG", quality=95) | |
| buffered.seek(0) | |
| return buffered | |
| def decode_image(img_obj): | |
| img = Image.open(img_obj).convert("RGB") | |
| return img | |
| def edict(x, source_text, edit_text, | |
| edit_strength, guidance_scale, | |
| steps=50, mix_weight=0.93, ): | |
| url = endpoint.url | |
| url = url + "/api/edit" | |
| headers = { | |
| "User-Agent": "EDICT HuggingFace Space", | |
| "Auth-Token": get_token(), | |
| } | |
| data = { | |
| "source_text": source_text, | |
| "edit_text": edit_text, | |
| "edit_strength": edit_strength, | |
| "guidance_scale": guidance_scale, | |
| } | |
| image = encode_image(Image.fromarray(x)) | |
| files = {"image": image} | |
| response = requests.post(url, data=data, files=files, headers=headers) | |
| if response.status_code == 200: | |
| return np.array(decode_image(BytesIO(response.content))) | |
| else: | |
| return "Error: " + response.text | |
| # x = decode_image(response) | |
| # return np.array(x) | |
| examples = [ | |
| ['square_ims/american_gothic.jpg', 'A painting of two people frowning', 'A painting of two people smiling', 0.5, 3], | |
| ['square_ims/colloseum.jpg', 'An old ruined building', 'A new modern office building', 0.8, 3], | |
| ['square_ims/hf.png', 'Emoji', 'Emoji with a mustache', 0.8, 3], | |
| ] | |
| for dog_i in [1, 2]: | |
| for breed in ['Golden Retriever', 'Chihuahua', 'Dalmatian']: | |
| examples.append([f'square_ims/imagenet_dog_{dog_i}.jpg', 'A dog', f'A {breed}', 0.8, 3]) | |
| examples.append(['square_ims/scream.jpg', 'A painting of someone screaming', 'A painting of an alien', 0.5, 3]) | |
| examples.append(['square_ims/yosemite.jpg', 'Granite forest valley', 'Granite desert valley', 0.8, 3]) | |
| examples.append(['square_ims/einstein.jpg', 'Mouth open', 'Mouth closed', 0.8, 3]) | |
| examples.append(['square_ims/einstein.jpg', 'A man', 'A man in K.I.S.S. facepaint', 0.8, 3]) | |
| examples.extend([ | |
| ['square_ims/imagenet_cake_2.jpg', 'A cupcake', 'A Chinese New Year cupcake', 0.8, 3], | |
| ['square_ims/imagenet_cake_2.jpg', 'A cupcake', 'A Union Jack cupcake', 0.8, 3], | |
| ['square_ims/imagenet_cake_2.jpg', 'A cupcake', 'A Nigerian flag cupcake', 0.8, 3], | |
| ['square_ims/imagenet_cake_2.jpg', 'A cupcake', 'A Santa Claus cupcake', 0.8, 3], | |
| ['square_ims/imagenet_cake_2.jpg', 'A cupcake', 'An Easter cupcake', 0.8, 3], | |
| ['square_ims/imagenet_cake_2.jpg', 'A cupcake', 'A hedgehog cupcake', 0.8, 3], | |
| ['square_ims/imagenet_cake_2.jpg', 'A cupcake', 'A rose cupcake', 0.8, 3], | |
| ]) | |
| iface = gr.Interface(fn=edict, inputs=["image", | |
| gr.Textbox(label="Original Description"), | |
| gr.Textbox(label="Edit Description"), | |
| # 50, # gr.Slider(5, 50, value=20, step=1), | |
| # 0.93, # gr.Slider(0.5, 1, value=0.7, step=0.05), | |
| gr.Slider(0.0, 1, value=0.8, step=0.05), | |
| gr.Slider(0, 10, value=3, step=0.5), | |
| ], | |
| examples = examples, | |
| outputs="image") | |
| iface.launch() | |