salihmarangoz commited on
Commit
d7b8e7c
1 Parent(s): 77666dd
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +2 -0
  2. .gitignore +1 -0
  3. .vscode/settings.json +3 -0
  4. README.md +1 -1
  5. app.py +125 -0
  6. image_filenames.txt +0 -0
  7. images/0_430b273cb7915d83.jpg +3 -0
  8. images/0_618577ba46bc3d04.jpg +3 -0
  9. images/0_8684223b404f7e47.jpg +3 -0
  10. images/0_c8f198d7da690cc8.jpg +3 -0
  11. images/0_e7ec496a16bfed05.jpg +3 -0
  12. images/0_e8b9b9a19ebf6a0d.jpg +3 -0
  13. images/0_ff075584fa3ac3fe.jpg +3 -0
  14. images/1000_nm1265067_rm1814797056_1975-7-6_2006.jpg +3 -0
  15. images/1000_nm1265067_rm2092538624_1975-7-6_2006.jpg +3 -0
  16. images/1000_nm1265067_rm2210106880_1975-7-6_2009.jpg +3 -0
  17. images/1000_nm1265067_rm2516756224_1975-7-6_2013.jpg +3 -0
  18. images/1000_nm1265067_rm3130391296_1975-7-6_2014.jpg +3 -0
  19. images/1000_nm1265067_rm3375870464_1975-7-6_2011.jpg +3 -0
  20. images/1000_nm1265067_rm518437632_1975-7-6_2011.jpg +3 -0
  21. images/1000_nm1265067_rm964988416_1975-7-6_2009.jpg +3 -0
  22. images/1001_nm0118568_rm1345886720_1978-2-9_2006.jpg +3 -0
  23. images/1001_nm0118568_rm1602599168_1978-2-9_2010.jpg +3 -0
  24. images/1001_nm0118568_rm2938931456_1978-2-9_2004.jpg +3 -0
  25. images/1001_nm0118568_rm3014951936_1978-2-9_2010.jpg +3 -0
  26. images/1001_nm0118568_rm3094448384_1978-2-9_2009.jpg +3 -0
  27. images/1001_nm0118568_rm3115615232_1978-2-9_2010.jpg +3 -0
  28. images/1001_nm0118568_rm323651840_1978-2-9_2009.jpg +3 -0
  29. images/1001_nm0118568_rm3554462208_1978-2-9_2005.jpg +3 -0
  30. images/1001_nm0118568_rm4114192896_1978-2-9_2000.jpg +3 -0
  31. images/1001_nm0118568_rm908588288_1978-2-9_2014.jpg +3 -0
  32. images/1002_nm1404488_rm1000782336_1991-4-10_2011.jpg +3 -0
  33. images/1002_nm1404488_rm1784853248_1991-4-10_2011.jpg +3 -0
  34. images/1002_nm1404488_rm1801630464_1991-4-10_2011.jpg +3 -0
  35. images/1002_nm1404488_rm1820361728_1991-4-10_2010.jpg +3 -0
  36. images/1002_nm1404488_rm1835184896_1991-4-10_2011.jpg +3 -0
  37. images/1002_nm1404488_rm2423361024_1991-4-10_2009.jpg +3 -0
  38. images/1002_nm1404488_rm2595915264_1991-4-10_2010.jpg +3 -0
  39. images/1002_nm1404488_rm3253067264_1991-4-10_2013.jpg +3 -0
  40. images/1002_nm1404488_rm380025344_1991-4-10_2011.jpg +3 -0
  41. images/1003_nm0004395_rm1588953600_1973-4-3_2009.jpg +3 -0
  42. images/1003_nm0004395_rm202870272_1973-4-3_2010.jpg +3 -0
  43. images/1003_nm0004395_rm2100920576_1973-4-3_2009.jpg +3 -0
  44. images/1003_nm0004395_rm2391973888_1973-4-3_2012.jpg +3 -0
  45. images/1003_nm0004395_rm3014891520_1973-4-3_2002.jpg +3 -0
  46. images/1003_nm0004395_rm3628986880_1973-4-3_2015.jpg +3 -0
  47. images/1003_nm0004395_rm504860160_1973-4-3_2010.jpg +3 -0
  48. images/1004_nm0788202_rm1421581056_1964-11-27_2007.jpg +3 -0
  49. images/1004_nm0788202_rm1603177472_1964-11-27_2010.jpg +3 -0
  50. images/1004_nm0788202_rm1629587200_1964-11-27_2010.jpg +3 -0
.gitattributes CHANGED
@@ -33,3 +33,5 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ *.faiss filter=lfs diff=lfs merge=lfs -text
37
+ images/** filter=lfs diff=lfs merge=lfs -text
.gitignore ADDED
@@ -0,0 +1 @@
 
 
1
+ venv
.vscode/settings.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ {
2
+ "ros.distro": "noetic"
3
+ }
README.md CHANGED
@@ -10,4 +10,4 @@ pinned: false
10
  license: gpl-3.0
11
  ---
12
 
13
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
10
  license: gpl-3.0
11
  ---
12
 
13
+ [GPR1200 Dataset](https://www.kaggle.com/datasets/mathurinache/gpr1200-dataset) is licensed with [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/). Randomly picked 10.000 (~83.3%) images from the given dataset.
app.py ADDED
@@ -0,0 +1,125 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ import gradio as gr
3
+ from PIL import Image
4
+ from transformers import AutoProcessor, AutoModel, AutoTokenizer
5
+ import torch
6
+ import faiss
7
+ import glob
8
+ import numpy as np
9
+
10
+ device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
11
+
12
+ model = AutoModel.from_pretrained("google/siglip-base-patch16-256-multilingual").to(device)
13
+ processor = AutoProcessor.from_pretrained("google/siglip-base-patch16-256-multilingual")
14
+ tokenizer = AutoTokenizer.from_pretrained("google/siglip-base-patch16-256-multilingual")
15
+
16
+ num_dimensions = model.vision_model.config.hidden_size # 768
17
+ num_k = 30
18
+
19
+ def preprocess_images(pathname="images/*", index_file="index.faiss"):
20
+ print("Preprocessing images...")
21
+ index = faiss.IndexFlatIP(num_dimensions) # Build the index using Inner Product (IP) similarity.
22
+ image_filenames = []
23
+ image_features = []
24
+ for image_filename in glob.glob(pathname):
25
+ try:
26
+ image_raw = Image.open(image_filename)
27
+ image_rgb = image_raw.convert('RGB')
28
+ image_filenames.append(image_filename)
29
+ inputs = processor(images=image_rgb, return_tensors="pt").to(device)
30
+ with torch.no_grad():
31
+ image_embedding = model.get_image_features(**inputs).to("cpu")
32
+ image_embedding_n = image_embedding / image_embedding.norm(p=2, dim=-1, keepdim=True)
33
+ image_embedding_n = image_embedding_n.numpy()
34
+ image_features.append(image_embedding_n)
35
+ except Exception as e:
36
+ print(f"Error processing {image_filename}".format(image_filename))
37
+ print(e)
38
+ exit(1)
39
+
40
+ print("Indexing images...")
41
+ image_features = np.concatenate(image_features, axis=0)
42
+ index.add(image_features)
43
+
44
+ print("Saving index...")
45
+ faiss.write_index(index, index_file)
46
+ with open("image_filenames.txt", "w") as f:
47
+ for image_filename in image_filenames:
48
+ f.write(image_filename + "\n")
49
+
50
+ print("Preprocessing complete.")
51
+ return index, image_filenames
52
+
53
+ def load_processed_images(index_file="index.faiss", image_filenames_file="image_filenames.txt"):
54
+ print("Loading index...")
55
+ index = faiss.read_index(index_file)
56
+ with open(image_filenames_file) as f:
57
+ image_filenames = f.readlines()
58
+ image_filenames = [x.strip() for x in image_filenames]
59
+ return index, image_filenames
60
+
61
+ @torch.no_grad()
62
+ def search_using_text(text):
63
+ inputs = tokenizer(text, padding="max_length", return_tensors="pt").to(device)
64
+ text_features = model.get_text_features(**inputs).to("cpu")
65
+ text_features_n = text_features / text_features.norm(p=2, dim=-1, keepdim=True)
66
+ text_features_n = text_features_n.numpy()
67
+
68
+ D, I = index.search(text_features_n, num_k)
69
+
70
+ scale = model.logit_scale.exp().cpu().numpy()
71
+ bias = model.logit_bias.cpu().numpy()
72
+ result = []
73
+ for dist, idx in zip(D[0], I[0]):
74
+ score_logit = dist * scale + bias
75
+ score_probability = torch.sigmoid(torch.tensor(score_logit)).item()
76
+ found_image = Image.open(image_filenames[idx])
77
+ found_image.load()
78
+ result.append((found_image, "{:.2f}%".format(score_probability*100)))
79
+
80
+ return result
81
+
82
+ @torch.no_grad()
83
+ def search_using_image(image):
84
+ image = Image.fromarray(image)
85
+ image_rgb = image.convert('RGB')
86
+ inputs = processor(images=image_rgb, return_tensors="pt").to(device)
87
+
88
+ image_embedding = model.get_image_features(**inputs).to("cpu")
89
+ image_embedding_n = image_embedding / image_embedding.norm(p=2, dim=-1, keepdim=True)
90
+ image_embedding_n = image_embedding_n.numpy()
91
+
92
+ D, I = index.search(image_embedding_n, num_k)
93
+
94
+ result = []
95
+ for dist, idx in zip(D[0], I[0]):
96
+ found_image = Image.open(image_filenames[idx])
97
+ found_image.load()
98
+ result.append(found_image)
99
+
100
+ return result
101
+
102
+ if __name__ == "__main__":
103
+ index, image_filenames = preprocess_images() # uncomment this line to preprocess images
104
+ index, image_filenames = load_processed_images()
105
+
106
+ with gr.Blocks() as demo:
107
+ gr.Markdown("# Image Search Engine Demo")
108
+ with gr.Row(equal_height=False):
109
+ with gr.Column():
110
+ gr.Markdown("This app is powered by [SigLIP](https://huggingface.co/google/siglip-base-patch16-256-multilingual) with multilingual support and [GPR1200 Dataset](https://www.kaggle.com/datasets/mathurinache/gpr1200-dataset) image contents. Enter your query in the text box or upload an image to search for similar images.")
111
+ with gr.Tab("Text-Image Search"):
112
+ text_input = gr.Textbox(label="Type a word or a sentence", placeholder="a frog waiting on a rock")
113
+ search_using_text_btn = gr.Button("Search with text", scale=0)
114
+
115
+ with gr.Tab("Image-Image Search"):
116
+ image_input = gr.Image()
117
+ search_using_image_btn = gr.Button("Search with image", scale=0)
118
+
119
+ gallery = gr.Gallery(label="Generated images", show_label=False,
120
+ elem_id="gallery", columns=3,
121
+ object_fit="contain", interactive=False, scale=3)
122
+
123
+ search_using_text_btn.click(search_using_text, inputs=text_input, outputs=gallery)
124
+ search_using_image_btn.click(search_using_image, inputs=image_input, outputs=gallery)
125
+ demo.launch(share=False)
image_filenames.txt ADDED
The diff for this file is too large to render. See raw diff
 
images/0_430b273cb7915d83.jpg ADDED

Git LFS Details

  • SHA256: fdc808e0dddfef462e403efad443ebc6918476e1bc8fbef78bfd4b2cc3ed43b1
  • Pointer size: 131 Bytes
  • Size of remote file: 140 kB
images/0_618577ba46bc3d04.jpg ADDED

Git LFS Details

  • SHA256: c7bb930bf14a5d1ed2dd854d4901713121f067cfeb9719af1a44f05ecf5f23dc
  • Pointer size: 131 Bytes
  • Size of remote file: 181 kB
images/0_8684223b404f7e47.jpg ADDED

Git LFS Details

  • SHA256: 97496d870d7a8dc431ff6988ea105d3f835db275bf3bbc67756d33f38f4aeacd
  • Pointer size: 131 Bytes
  • Size of remote file: 124 kB
images/0_c8f198d7da690cc8.jpg ADDED

Git LFS Details

  • SHA256: 0d3261a4b7e11579cc703c5dfd4a167162c1ce29c2bdf4dbac3c41e4ece6a3a8
  • Pointer size: 131 Bytes
  • Size of remote file: 179 kB
images/0_e7ec496a16bfed05.jpg ADDED

Git LFS Details

  • SHA256: 1bbb144b96f2ec7faf37e373e378ac1a595eeba8e64f6472c6af4531a33a8c04
  • Pointer size: 131 Bytes
  • Size of remote file: 183 kB
images/0_e8b9b9a19ebf6a0d.jpg ADDED

Git LFS Details

  • SHA256: 0b3c8f0ec5c2e338c8af5a298085dca0733e91eb1052cb790eed8db06faa00c3
  • Pointer size: 131 Bytes
  • Size of remote file: 188 kB
images/0_ff075584fa3ac3fe.jpg ADDED

Git LFS Details

  • SHA256: ac7e90a31ddc3500d70992b9a67fd46282b01b537d558def23a1dfc74e5d285b
  • Pointer size: 131 Bytes
  • Size of remote file: 199 kB
images/1000_nm1265067_rm1814797056_1975-7-6_2006.jpg ADDED

Git LFS Details

  • SHA256: 8ef19c898677fe55b26164f32ab3995fc02e1e0e844d7b58ee0c4d7334b96129
  • Pointer size: 129 Bytes
  • Size of remote file: 8.98 kB
images/1000_nm1265067_rm2092538624_1975-7-6_2006.jpg ADDED

Git LFS Details

  • SHA256: 4bb245aa1b64d0571e7767ed1efe325c27d2f577f9b04f7fff123aded02b475e
  • Pointer size: 130 Bytes
  • Size of remote file: 14.3 kB
images/1000_nm1265067_rm2210106880_1975-7-6_2009.jpg ADDED

Git LFS Details

  • SHA256: 99cebc9315047f770f4206971d289a3f6ad694831c566d0c6cef7302b45d2c84
  • Pointer size: 130 Bytes
  • Size of remote file: 16.7 kB
images/1000_nm1265067_rm2516756224_1975-7-6_2013.jpg ADDED

Git LFS Details

  • SHA256: 796abdbaa1d2fa1bf1fc707c2d49e280c09f8d55b8dac7f6eb5095a70ffefe5d
  • Pointer size: 130 Bytes
  • Size of remote file: 30.1 kB
images/1000_nm1265067_rm3130391296_1975-7-6_2014.jpg ADDED

Git LFS Details

  • SHA256: abdb8effead6c3926cfec9aa35c2642f077d61000cb8b06953d1f8a521a0e87e
  • Pointer size: 130 Bytes
  • Size of remote file: 29.1 kB
images/1000_nm1265067_rm3375870464_1975-7-6_2011.jpg ADDED

Git LFS Details

  • SHA256: de84fe7d0b8a4cfd3fd0986a8aa70d0fd5f22c856e9fd6ea35a26f717975cbdf
  • Pointer size: 130 Bytes
  • Size of remote file: 32.6 kB
images/1000_nm1265067_rm518437632_1975-7-6_2011.jpg ADDED

Git LFS Details

  • SHA256: 4d9d76ff099fb1182e8279cfb5810d0d607c538d436211c725217edd32a86ef0
  • Pointer size: 130 Bytes
  • Size of remote file: 33.1 kB
images/1000_nm1265067_rm964988416_1975-7-6_2009.jpg ADDED

Git LFS Details

  • SHA256: 36ef6035669b50ef34cf3e7197ac45d5525e179bcf0b0aabec8662df57c68ea2
  • Pointer size: 130 Bytes
  • Size of remote file: 10.6 kB
images/1001_nm0118568_rm1345886720_1978-2-9_2006.jpg ADDED

Git LFS Details

  • SHA256: e3f34bcd254b8b7b337ce45cec9d54f64758aff4b348ddac4c38661389601b80
  • Pointer size: 129 Bytes
  • Size of remote file: 8.87 kB
images/1001_nm0118568_rm1602599168_1978-2-9_2010.jpg ADDED

Git LFS Details

  • SHA256: 39fa7e9ce3bcba5224e599b069b6705a00c1e169438708f18e75ad09d508daf7
  • Pointer size: 130 Bytes
  • Size of remote file: 30.6 kB
images/1001_nm0118568_rm2938931456_1978-2-9_2004.jpg ADDED

Git LFS Details

  • SHA256: b9ad61af2494a7bcfd231dcf69f153ff03527d42902e620abbaff79389caed71
  • Pointer size: 129 Bytes
  • Size of remote file: 5.65 kB
images/1001_nm0118568_rm3014951936_1978-2-9_2010.jpg ADDED

Git LFS Details

  • SHA256: 05f32b00e0f8e3001e1904b51c0ffb9655c8b74908807565b5aaadc83e3256f7
  • Pointer size: 130 Bytes
  • Size of remote file: 10.4 kB
images/1001_nm0118568_rm3094448384_1978-2-9_2009.jpg ADDED

Git LFS Details

  • SHA256: 94d9791b3d2f3b7fba7b242929309519b948632b8eac73303e07ac5733013a32
  • Pointer size: 129 Bytes
  • Size of remote file: 6.01 kB
images/1001_nm0118568_rm3115615232_1978-2-9_2010.jpg ADDED

Git LFS Details

  • SHA256: 631675dfd152873e1679bc06b84988a7548dc1c893dc2241393ca2e1024ba9d1
  • Pointer size: 130 Bytes
  • Size of remote file: 14.7 kB
images/1001_nm0118568_rm323651840_1978-2-9_2009.jpg ADDED

Git LFS Details

  • SHA256: 5cfbb6a896c2cb86b11cfa3b1912812c2ed01b77ec1e6a7412740171fd9e95ec
  • Pointer size: 130 Bytes
  • Size of remote file: 10.5 kB
images/1001_nm0118568_rm3554462208_1978-2-9_2005.jpg ADDED

Git LFS Details

  • SHA256: a3807350241ef91fe1be067d4f3c5e4032c2dea497f276d6d12103e198de06a2
  • Pointer size: 130 Bytes
  • Size of remote file: 16.4 kB
images/1001_nm0118568_rm4114192896_1978-2-9_2000.jpg ADDED

Git LFS Details

  • SHA256: dc55eacd4c0e120583b96e6a313df5636d91d712acbfe018bc7b0de95145f899
  • Pointer size: 129 Bytes
  • Size of remote file: 6.19 kB
images/1001_nm0118568_rm908588288_1978-2-9_2014.jpg ADDED

Git LFS Details

  • SHA256: a7dceb56d7b040635a6861978761b35248d1c7248e3ed79829af038576f81942
  • Pointer size: 130 Bytes
  • Size of remote file: 36.4 kB
images/1002_nm1404488_rm1000782336_1991-4-10_2011.jpg ADDED

Git LFS Details

  • SHA256: 5873a646c0bd562e35baa82341c7354e132ce73cac08e2d0afe7c5ba143ca022
  • Pointer size: 130 Bytes
  • Size of remote file: 33.7 kB
images/1002_nm1404488_rm1784853248_1991-4-10_2011.jpg ADDED

Git LFS Details

  • SHA256: a6295693de5bde8af3260a0c84775ce3146e32f2e909c08371fe05e1108a644b
  • Pointer size: 130 Bytes
  • Size of remote file: 12.9 kB
images/1002_nm1404488_rm1801630464_1991-4-10_2011.jpg ADDED

Git LFS Details

  • SHA256: ae56dbf87ae3f85c807239af9fbb80c3f25711e56c7cb19183b717d64084fe99
  • Pointer size: 130 Bytes
  • Size of remote file: 30.8 kB
images/1002_nm1404488_rm1820361728_1991-4-10_2010.jpg ADDED

Git LFS Details

  • SHA256: acf2b877ea3ef6a603e46c72d8228b3c848bddc6b913a5fe3c99c282032529e4
  • Pointer size: 130 Bytes
  • Size of remote file: 11.3 kB
images/1002_nm1404488_rm1835184896_1991-4-10_2011.jpg ADDED

Git LFS Details

  • SHA256: 152dcdff336704d7a2933a372be8cc657976ef4a7c5141016989b7d697fc4da4
  • Pointer size: 130 Bytes
  • Size of remote file: 34.6 kB
images/1002_nm1404488_rm2423361024_1991-4-10_2009.jpg ADDED

Git LFS Details

  • SHA256: 9c0eb6b75266cf21e3369399b8a6e86f2e1a4eaafd9d90c68d8f5bf165bb992f
  • Pointer size: 130 Bytes
  • Size of remote file: 14 kB
images/1002_nm1404488_rm2595915264_1991-4-10_2010.jpg ADDED

Git LFS Details

  • SHA256: 8d132aaa3ac410b12fde2d6eef5233561ceb13b7750fce25aa0ded584dbe8d61
  • Pointer size: 130 Bytes
  • Size of remote file: 11 kB
images/1002_nm1404488_rm3253067264_1991-4-10_2013.jpg ADDED

Git LFS Details

  • SHA256: 7fa1fa192724a1588d4135d49432c3cccbe37e90ae8a34bcf96a23e2e197c23c
  • Pointer size: 130 Bytes
  • Size of remote file: 11.4 kB
images/1002_nm1404488_rm380025344_1991-4-10_2011.jpg ADDED

Git LFS Details

  • SHA256: 6adb71ba1ac4005a96cf92132ccc478b7603695fcefe1eaa6d6c6dc1ce6ffafd
  • Pointer size: 130 Bytes
  • Size of remote file: 36.8 kB
images/1003_nm0004395_rm1588953600_1973-4-3_2009.jpg ADDED

Git LFS Details

  • SHA256: 098ad1ea4fcf2d4d959eb2b7221b275c31ae3d318783b6315e60f1d6a0d405d7
  • Pointer size: 130 Bytes
  • Size of remote file: 11.1 kB
images/1003_nm0004395_rm202870272_1973-4-3_2010.jpg ADDED

Git LFS Details

  • SHA256: ccbc480b96594ed74a3e6acfda1f7745d96b5e758aca05f1161dc7de0e213e9b
  • Pointer size: 130 Bytes
  • Size of remote file: 11.9 kB
images/1003_nm0004395_rm2100920576_1973-4-3_2009.jpg ADDED

Git LFS Details

  • SHA256: 1c30ce222575779674c761196e0e221506838eebe36e4d7d34b73d2136bad267
  • Pointer size: 129 Bytes
  • Size of remote file: 10 kB
images/1003_nm0004395_rm2391973888_1973-4-3_2012.jpg ADDED

Git LFS Details

  • SHA256: 6016a72cd1e41d1a8731bb8d97605377e667c3f0b148ba7ef6126b7d9b9a85b4
  • Pointer size: 130 Bytes
  • Size of remote file: 20.4 kB
images/1003_nm0004395_rm3014891520_1973-4-3_2002.jpg ADDED

Git LFS Details

  • SHA256: 0ef3877097b03f507cd281183e27188796419d287eb88d7422a2b10c7852022c
  • Pointer size: 130 Bytes
  • Size of remote file: 12.7 kB
images/1003_nm0004395_rm3628986880_1973-4-3_2015.jpg ADDED

Git LFS Details

  • SHA256: 89bf863559ae3ecf896c266935aeeac74c46e576411ce2398788de79ead708dc
  • Pointer size: 130 Bytes
  • Size of remote file: 34.6 kB
images/1003_nm0004395_rm504860160_1973-4-3_2010.jpg ADDED

Git LFS Details

  • SHA256: 6924babeefc69ef5b1e0064e46133193d29ccbcd8f167aefbe8fa1303e946af1
  • Pointer size: 130 Bytes
  • Size of remote file: 11.6 kB
images/1004_nm0788202_rm1421581056_1964-11-27_2007.jpg ADDED

Git LFS Details

  • SHA256: a2f5f2e22ee2cfa2954788002321cb976cc19a8c985f734b1e0ae684d9048afb
  • Pointer size: 130 Bytes
  • Size of remote file: 18 kB
images/1004_nm0788202_rm1603177472_1964-11-27_2010.jpg ADDED

Git LFS Details

  • SHA256: 101d7b4268dd44cf6accbef53efbbb57cfcdc58e31b51c4ea377e5fd3883c580
  • Pointer size: 129 Bytes
  • Size of remote file: 9.92 kB
images/1004_nm0788202_rm1629587200_1964-11-27_2010.jpg ADDED

Git LFS Details

  • SHA256: 257910b29ad94fa6a2a50f4318ce166996343e566bb0a39b2f5788b76b1eb359
  • Pointer size: 130 Bytes
  • Size of remote file: 10.1 kB