vinesmsuic's picture
adding video random sampling function
b34109c
import csv
import requests
from io import StringIO
from typing import Union, Optional, Tuple
from PIL import Image
import random
__version__ = "0.0.1_GenAI_Arena"
DOMAIN = "https://chromaica.github.io/Museum/"
TASK_DICT = {
"t2i": "ImagenHub_Text-Guided_IG",
"tie": "ImagenHub_Text-Guided_IE",
"mie": "ImagenHub_Control-Guided_IG",
"cig": "ImagenHub_Control-Guided_IE",
"msdig": "ImagenHub_Multi-Concept_IC",
"sdig": "ImagenHub_Subject-Driven_IG",
"sdie": "ImagenHub_Subject-Driven_IE"
}
t2i_models= [
"SD",
"SDXL",
"OpenJourney",
"DeepFloydIF",
"DALLE2"
]
mie_models = [
"Glide",
"SDInpaint",
"BlendedDiffusion",
"SDXLInpaint"
]
tie_models = [
"DiffEdit",
"MagicBrush",
"InstructPix2Pix",
"Prompt2prompt",
"Text2Live",
"SDEdit",
"CycleDiffusion",
"Pix2PixZero"
]
sdig_models = [
"DreamBooth",
"DreamBoothLora",
"TextualInversion",
"BLIPDiffusion_Gen"
]
sdie_models = [
"PhotoSwap",
"DreamEdit",
"BLIPDiffusion_Edit"
]
msdig_models = [
"DreamBooth",
"CustomDiffusion",
"TextualInversion"
]
cig_models = [
"ControlNet",
"UniControl"
]
def fetch_csv_keys(url):
"""
Fetches a CSV file from a given URL and parses it into a list of keys,
ignoring the header line.
"""
response = requests.get(url)
response.raise_for_status() # Ensure we notice bad responses
# Use StringIO to turn the fetched text data into a file-like object
csv_file = StringIO(response.text)
# Create a CSV reader
csv_reader = csv.reader(csv_file)
# Skip the header
next(csv_reader, None)
# Return the list of keys
return [row[0] for row in csv_reader if row]
def fetch_json_data(url):
"""
Fetches JSON data from a given URL.
"""
response = requests.get(url)
response.raise_for_status()
return response.json()
def fetch_data_and_match(csv_url, json_url):
"""
Fetches a list of keys from a CSV and then fetches JSON data and matches the keys to the JSON.
"""
# Fetch keys from CSV
keys = fetch_csv_keys(csv_url)
# Fetch JSON data
json_data = fetch_json_data(json_url)
# Extract relevant data using keys
matched_data = {key: json_data.get(key) for key in keys if key in json_data}
return matched_data
def fetch_indexes(baselink):
matched_results = fetch_data_and_match(baselink+"/dataset_lookup.csv", baselink+"/dataset_lookup.json")
return matched_results
def fetch_indexes_no_csv(baselink):
matched_results = fetch_json_data(baselink+"/dataset_lookup.json")
return matched_results
if __name__ == "__main__":
domain = "https://chromaica.github.io/Museum/"
baselink = domain + "ImagenHub_Text-Guided_IE"
matched_results = fetch_indexes(baselink)
for uid, value in matched_results.items():
print(uid)
model = "CycleDiffusion"
image_link = baselink + "/" + model + "/" + uid
print(image_link)
instruction = value['instruction']
print(instruction)