You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
> :iphone:**Try the new [difPy Web App](https://difpy.app/)**!
20
-
21
-
> :point_right::new: With **difPy v3.x** you can count on signifcant **performance increases**, **new features** and **bug fixes**. Check out the [release notes](https://github.com/elisemercury/Duplicate-Image-Finder/releases/) for details.
23
+
> :point_right::new:**difPy v4** is out! difPy v4 comes with up to **10x more performace** than previous difPy versions. Check out the [release notes](https://github.com/elisemercury/Duplicate-Image-Finder/releases/) for details.
22
24
23
-
> :open_hands: Our motto? We :heart: Open Source! **Contributions and new ideas for difPy are always welcome** - check our [Contributor Guidelines](https://github.com/elisemercury/Duplicate-Image-Finder/wiki/Contributing-to-difPy) for more information.
25
+
> :open_hands: Our motto? We :heart: Open Source! **Contributions and new ideas for difPy are always welcome** - check our [Contributor Guidelines](https://difpy.readthedocs.io/en/latest/contributing.html) for more information.
24
26
25
27
Read more on how the algorithm of difPy works in my Medium article [Finding Duplicate Images with Python](https://towardsdatascience.com/finding-duplicate-images-with-python-71c04ec8051).
26
28
@@ -31,32 +33,43 @@ Check out the [difPy package on PyPI.org](https://pypi.org/project/difPy/)
31
33
## Description
32
34
difPy searches for images in **one or more different folders**, compares the images it found and checks whether these are duplicates. It then outputs the **image files classified as duplicates** as well as the **images having the lowest resolutions**, so you know which of the duplicate images are safe to be deleted. You can then either delete them manually, or let difPy delete them for you.
difPy does not compare images based on their hashes. It compares them based on their tensors i. e. the image content - this allows difPy to **not only search for duplicate images, but also for similar images**.
39
37
38
+
difPy leverages Python's **multiprocessing capabilities** and is therefore able to perform at high performance even on large datasets.
39
+
40
+
:notebook: For a **detailed usage guide**, please view the official **[difPy Usage Documentation](https://difpy.readthedocs.io/)**.
Folder paths can be specified as standalone Python strings, or within a list.
64
+
65
+
Folder paths can be specified as standalone Python strings, or within a list. With `difPy.build()`, difPy first scans the images in the provided folders and builds a collection of images by generating image tensors. `difPy.search()` then starts the search for duplicate images.
54
66
55
67
:notebook: For a **detailed usage guide**, please view the official **[difPy Usage Documentation](https://difpy.readthedocs.io/)**.
56
68
57
69
## Output
58
70
difPy returns various types of output that you may use depending on your use case:
59
71
72
+
### I. Search Result Dictionary
60
73
A **JSON formatted collection** of duplicates/similar images (i. e. **match groups**) that were found, where the keys are a **randomly generated unique id** for each image file:
61
74
62
75
```python
@@ -73,46 +86,65 @@ search.result
73
86
}
74
87
```
75
88
76
-
A **list** of duplicates/similar images that have the **lowest quality** among match groups:
89
+
### II. Lower Quality Files
90
+
A **JSON formatted collection** of duplicates/similar images that have the **lowest quality** among match groups:
> :point_right: Windows users can add difPy to their [PATH system variables](https://www.computerhope.com/issues/ch000549.htm) by pointing it to their difPy package installation folder containing the [`difPy.bat`](https://github.com/elisemercury/Duplicate-Image-Finder/difPy/difPy.bat) file. This adds `difPy` as a command in the CLI and will allow direct invocation of `difPy` from anywhere on the device.
When running from the CLI, the output of difPy is written to files and saved in the working directory by default. To change the default output directory, specify the `-Z / -output_directory` parameter. The "xxx" in the output filenames is a unique timestamp:
184
+
If no directory parameter is given in the CLI, difPy will **run on the current working directory**.
185
+
186
+
When running from the CLI, the output of difPy is written to files and **saved in the working directory** by default. To change the default output directory, specify the `-Z / -output_directory` parameter. The "xxx" in the output filenames is the current timestamp:
147
187
148
188
```python
149
-
difPy_results_xxx.json
150
-
difPy_lower_quality_xxx.csv
151
-
difPy_stats_xxx.json
189
+
difPy_xxx_results.json
190
+
difPy_xxx_lower_quality.json
191
+
difPy_xxx_stats.json
152
192
```
153
193
154
194
:notebook: For a **detailed usage guide**, please view the official **[difPy Usage Documentation](https://difpy.readthedocs.io/)**.
155
195
156
196
## difPy Web App
157
197
158
-
difPy can also be accessed via its new **web interface**. With difPy Web, you can compare **up to 200 images** and download a **deduplicated ZIP file** - all powered by difPy. [Read more](https://github.com/elisemercury/difPy-app).
198
+
difPy can also be accessed via a browser. With difPy Web, you can compare **up to 200 images** and download a **deduplicated ZIP file** - all powered by difPy. [Read more](https://github.com/elisemercury/difPy-app).
159
199
160
200
:iphone:**Try the new [difPy Web App](https://difpy.app/)**!
161
201
@@ -166,5 +206,5 @@ difPy can also be accessed via its new **web interface**. With difPy Web, you ca
0 commit comments