vinesmsuic's picture
adding video random sampling function
b34109c
raw
history blame
No virus
3.18 kB
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)