import os import random import gradio as gr #links Article = "" Article = Article + " Gallery UI documentation: https://gradio.app/docs/" Article = Article + " Unsplash free image source requires 5MP or larger images: https://unsplash.com/" Article = Article + " Github should also be a worthy alternative with free repos. " Article = Article + " Raw git content can be accessed by URL like so: https://raw.github.com/AaronCWacker/Yggdrasil/images/" Article = Article + " Originals go here: https://github.com/AaronCWacker/Yggdrasil/tree/main/images" # Aaron_Wacker_health_and_medical_icon_set_on_white_background_bba24b60-9fcf-411b-9c00-dd1ba1e3553c.png import os import csv import gradio as gr from gradio import inputs, outputs import huggingface_hub from huggingface_hub import Repository from datetime import datetime DATASET_REPO_URL = "https://huggingface.co/datasets/awacke1/BookComposer" DATA_FILENAME = "BookComposer.csv" DATA_FILE = os.path.join("data", DATA_FILENAME) HF_TOKEN = os.environ.get("HF_TOKEN") print("is none?", HF_TOKEN is None) print("hfh", huggingface_hub.__version__) # overriding/appending to the gradio template SCRIPT = """ """ #with open(os.path.join(gr.networking.STATIC_TEMPLATE_LIB, "frontend", "index.html"), "a") as f: # f.write(SCRIPT) # -------------------------------------------- For Memory - you will need to set up a dataset and HF_TOKEN --------- UseMemory=False DATASET_REPO_URL="https://huggingface.co/datasets/awacke1/ChatbotMemory.csv" DATASET_REPO_ID="awacke1/ChatbotMemory.csv" DATA_FILENAME="ChatbotMemory.csv" DATA_FILE=os.path.join("data", DATA_FILENAME) HF_TOKEN=os.environ.get("HF_TOKEN") if UseMemory: try: hf_hub_download( repo_id=DATASET_REPO_ID, filename=DATA_FILENAME, cache_dir=DATA_DIRNAME, force_filename=DATA_FILENAME ) except: print("file not found") repo = Repository( local_dir="data", clone_from=DATASET_REPO_URL, use_auth_token=HF_TOKEN ) def get_df(name: str): dataset = load_dataset(str, split="train") return dataset #def store_message(name: str, message: str) -> str: def store_message(name: str, message: str): if name and message: with open(DATA_FILE, "a") as csvfile: writer = csv.DictWriter(csvfile, fieldnames=[ "time", "message", "name", ]) writer.writerow( {"time": str(datetime.now()), "message": message.strip(), "name": name.strip() } ) commit_url = repo.push_to_hub() # test api retrieval of any dataset that is saved, then return it... # app = FastAPI() # see: https://gradio.app/sharing_your_app/#api-page # f=get_df(DATASET_REPO_ID) # print(f) #return commit_url return "" # ----------------------------------------------- For Memory repo = Repository( local_dir="data", clone_from=DATASET_REPO_URL, use_auth_token=HF_TOKEN ) def generate_html() -> str: with open(DATA_FILE) as csvfile: reader = csv.DictReader(csvfile) rows = [] for row in reader: rows.append(row) rows.reverse() if len(rows) == 0: return "no messages yet" else: html = "
" for row in rows: html += "
" html += f"{row['name']}" html += f"{row['message']}" html += "
" html += "
" return html return generate_html() def gan(): images = [ (random.choice( [ "Comectress.png", "Comic Plate 1 - Amnesia.png", "Comic Plate 1 - Depths.png", "Comic Plate 1 - Helion.png", "Comic Plate 1 - Kitsune.png", "Comic Plate 1 - Sinbad.png", "Comic Plate 1 - Vampiress.png", "Comic Plate 2 - Amnesia.png", "Comic Plate 2 - Depths.png", "Comic Plate 2 - Helion.png", "Comic Plate 2 - Kitsune.png", "Comic Plate 2 - Sinbad.png", "Comic Plate 2 - Vampiress.png", "Comic Plate 3 - Amnesia.png", "Comic Plate 3 - Depths.png", "Comic Plate 3 - Helion.png", "Comic Plate 3 - Kitsune.png", "Comic Plate 3 - Vampiress.png", "Comic Plate 4 - Amnesia.png", "Comic Plate 4 - Depths.png", "Comic Plate 4 - Helion.png", "Comic Plate 4 - Kitsune.png", "Comic Plate 4 - Sinbad.png", "Comic Plate 4 - Vampiress.png", "Comic Plate 5 - Vampiress.png", "Gold Suit.png", "Heavens.png", "Red Dot Sight.png", "Starfire.png", "Vamp 1.png", "Vamp 2.png", "Vamp 3.png", "Vamp 4.png", "Whirlwind.png", "Zyphoria.png", ] ), f"label {i}" if i != 0 else "label" * 50) for i in range(10) ] return images with gr.Blocks() as demo: with gr.Column(variant="panel"): [ inputs.Textbox(placeholder="Your name"), inputs.Textbox(placeholder="Your message", lines=2), ] with gr.Row(variant="compact"): text = gr.Textbox( label="Health and Medical Icon Sets", show_label=False, max_lines=1, placeholder="Enter your prompt", ).style( container=False, ) btn = gr.Button("Generate image").style(full_width=False) btn2 = gr.Button("Generate story").style(full_width=False) gallery = gr.Gallery( label="Generated images", show_label=False, elem_id="gallery" ).style(grid=[2], height="auto") gallery2 = gr.Gallery( label="Generated images 2", show_label=False, elem_id="gallery" ).style(grid=[2], height="auto") btn.click(gan, None, gallery) if __name__ == "__main__": demo.launch()