File size: 1,957 Bytes
2ba25b8
 
 
 
1ba42fb
dd7063b
b66789c
 
1ba42fb
9ef9eb7
ce5a1bf
2ba25b8
 
 
 
54bc9ed
6becdd1
2ba25b8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
be37715
 
2ba25b8
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import pandas as pd
import gradio as gr
from datasets import load_dataset

#dataset = load_dataset("laion/laion2B-en-joined")  too big space evicted
#dataset = load_dataset("laion/laion-coco")  # try smaller? evicted again.  try try again
#dataset = load_dataset("laion/laion400m")  # smaller still - you can do it!
dataset = load_dataset("laion/laion-art") # 1.2G? parquet

#print(dataset.features)
#print (type(dataset))

df = pd.DataFrame(dataset)
#df = pd.read_csv("images.csv")

#df['URL'] = df['URL'].apply(lambda x: '<a href= "' + str(x) + '" target="_blank"> <img src= "' + str(x) + '"/> </a>') 
df = df[["TEXT", "URL", "HEIGHT", "WIDTH"]]

def display_df():
  df_images = df.head(100)
  return df_images

def display_next100(dataframe, end):
  dataframe = dataframe.sample(frac=1)
  start = (end  or dataframe.index[-1]) + 1
  end = start + 99
  df_images = df.loc[start:end]
  return df_images, end
  
with gr.Blocks() as demo:
  gr.Markdown("<h1><center>🦁Lion Image Search🎨</center></h1>")
  gr.Markdown("""<div align="center">Art Descriptions from <a href = "https://huggingface.co/datasets/laion/laion2B-en-joined">Laion</a>.  <a href="https://playgroundai.com/create">Create Art Here</a>.  <a href="https://paperswithcode.com/datasets?q=art&v=lst&o=newest">Papers,Code,Datasets for SOTA in Art</a>""")

  with gr.Row():
    num_end = gr.Number(visible=False)
    b1 = gr.Button("Images with Descriptions 0-100")
    b2 = gr.Button("Next 100 Images with Descriptions")
    
  with gr.Row():
    #out_dataframe = gr.Dataframe(wrap=True, max_rows=100, overflow_row_behaviour= "paginate", datatype = ["markdown", "markdown"], headers=['URL', 'TEXT'])
    out_dataframe = gr.Dataframe(wrap=True, max_rows=100, overflow_row_behaviour= "paginate")
    
  b1.click(fn=display_df, outputs=out_dataframe) 
  b2.click(fn=display_next100, inputs= [out_dataframe, num_end ], outputs=[out_dataframe, num_end])

demo.launch(debug=True, show_error=True)