sonoisa commited on
Commit
17d6a7b
1 Parent(s): ffb0f8f

Add image query

Browse files
Files changed (1) hide show
  1. app.py +12 -7
app.py CHANGED
@@ -310,11 +310,14 @@ def encode_image(image_filename, model):
310
  return image_embedding
311
 
312
 
313
- @st.cache
314
- def load_model_and_data():
 
 
315
  description_text.text("日本語CLIPモデル読み込み中... ")
316
  device = "cuda" if torch.cuda.is_available() else "cpu"
317
  model = ClipModel("sonoisa/clip-vit-b-32-japanese-v1", device=device)
 
318
 
319
  pyminizip.uncompress(
320
  "clip_zeroshot_irasuto_items_20210224.pq.zip", st.secrets["ZIP_PASSWORD"], None, 1
@@ -326,13 +329,15 @@ def load_model_and_data():
326
  sentence_vectors = np.stack(df["sentence_vector"])
327
  image_vectors = np.stack(df["image_vector"])
328
 
329
- return model, df, sentence_vectors, image_vectors
 
 
330
 
331
 
332
- st.title("いらすと検索(日本語CLIPゼロショット)")
333
- description_text = st.empty()
334
-
335
- model, df, sentence_vectors, image_vectors = load_model_and_data()
336
 
337
  description_text.text("日本語CLIPモデル(ゼロショット)を用いて、説明文の意味が近い「いらすとや」画像を検索します。\nキーワードを列挙するよりも、自然な文章を入力した方が精度よく検索できます。\n画像は必ずリンク先の「いらすとや」さんのページを開き、そこからダウンロードしてください。")
338
 
 
310
  return image_embedding
311
 
312
 
313
+ st.title("いらすと検索(日本語CLIPゼロショット)")
314
+ description_text = st.empty()
315
+
316
+ if "model" not in st.session_state:
317
  description_text.text("日本語CLIPモデル読み込み中... ")
318
  device = "cuda" if torch.cuda.is_available() else "cpu"
319
  model = ClipModel("sonoisa/clip-vit-b-32-japanese-v1", device=device)
320
+ st.session_state.model = model
321
 
322
  pyminizip.uncompress(
323
  "clip_zeroshot_irasuto_items_20210224.pq.zip", st.secrets["ZIP_PASSWORD"], None, 1
 
329
  sentence_vectors = np.stack(df["sentence_vector"])
330
  image_vectors = np.stack(df["image_vector"])
331
 
332
+ st.session_state.df = df
333
+ st.session_state.sentence_vectors = sentence_vectors
334
+ st.session_state.image_vectors = image_vectors
335
 
336
 
337
+ model = st.session_state.model
338
+ df = st.session_state.df
339
+ sentence_vectors = st.session_state.sentence_vectors
340
+ image_vectors = st.session_state.image_vectors
341
 
342
  description_text.text("日本語CLIPモデル(ゼロショット)を用いて、説明文の意味が近い「いらすとや」画像を検索します。\nキーワードを列挙するよりも、自然な文章を入力した方が精度よく検索できます。\n画像は必ずリンク先の「いらすとや」さんのページを開き、そこからダウンロードしてください。")
343