Spaces:
Runtime error
Runtime error
from vis_common import * | |
import vis_utils as v_uts | |
import io_utils as io_uts | |
from datasets import Dataset | |
import pandas as pd | |
import gradio as gr | |
# install gradio of 3.14 | |
os.system("echo $BYTED_HOST_IP") | |
# Load the dataset change to your local path | |
root = "/mnt/bn/datacompv6/data/chat_edit/assets/ChatEdit/" | |
# method = "parquet" | |
# prompt_version = "prompt_0" | |
# append = "" | |
# parquet_file = f'{root}/data/{prompt_version}.parquet' | |
# df = pd.read_parquet(parquet_file) | |
jsonl_file = f"{root}/full_val.jsonl" | |
method = "raw_file" | |
print("reading data") | |
df = [] | |
items = io_uts.load_jsonl(jsonl_file) | |
print("reading data finished", len(items)) | |
all_prompts = ['prompt_0', 'prompt_1'] | |
def find_key(name): | |
for prompt in all_prompts: | |
if prompt in name: | |
return prompt | |
def display_data(index, prompt_version): | |
try: | |
key = find_key(prompt_version) | |
if method == "parquet": | |
row = df.iloc[index] | |
image = v_uts.decode64(row['image'])[:, :, ::-1] # Ensure this returns a PIL image | |
prompt = row[key] | |
return image, prompt | |
elif method == "raw_file": | |
image_file = f"{root}/{prompt_version}/{index:03}.png" | |
image = cv2.imread(image_file)[:, :, ::-1] | |
prompt = items[index][key] | |
else: | |
return "Invalid method", "" | |
except IndexError: | |
return "No more data", "" | |
except Exception as e: | |
return f"Error: {str(e)}", "" | |
def search_and_display(prompt_key, prompt_version): | |
try: | |
key = find_key(prompt_version) | |
if method == "parquet": | |
results = df[df['image_id'].astype(str).str.contains(prompt_key, case=False)] | |
if not results.empty: | |
image = v_uts.decode64(results.iloc[0]['image'])[:, :, ::-1] # Ensure this returns a PIL image | |
prompt = results.iloc[0][key] | |
return image, prompt | |
elif method == "raw_file": | |
index = int(prompt_key) | |
image_file = f"{root}/{prompt_version}/{index:03}.png" | |
assert os.path.exists(image_file), f"Image {image_file} file not found" | |
image = cv2.imread(image_file)[:, :, ::-1] | |
prompt = items[index][key] | |
return image, prompt | |
else: | |
return "No image found", "No matching prompt found" | |
except Exception as e: | |
return f"Error: {str(e)}", "" | |
def combined_function(prompt_key=None, prompt_name=None): | |
print(prompt_key, prompt_name) | |
return search_and_display(prompt_key, prompt_name) | |
max_len = len(df) # Set max_len to the length of the dataframe | |
iface = gr.Interface( | |
fn=combined_function, | |
inputs=[ | |
gr.inputs.Textbox(default="", label="Or, enter image_id to search, 0-292"), | |
gr.Radio(["prompt_0_sd", "prompt_0_hd", "prompt_1_sd", "prompt_1_hd"]), | |
], | |
outputs=[ | |
gr.outputs.Image(label="Image", type="pil"), | |
gr.outputs.Textbox(label="Prompt") | |
], | |
examples=[ | |
["1", "prompt_0_sd"], | |
["2", "prompt_1_hd"], # Adjust these examples as per your dataset | |
], | |
allow_flagging=False, | |
) | |
# iface.queue(concurrency_count=1) | |
# iface.launch(debug=True, share=True, inline=False, enable_queue=True, server_name="0.0.0.0") | |
iface.queue().launch(debug=True, share=True, inline=False, enable_queue=True, server_name="[::]") | |