# ilytix
A simple command-line tool for visual image analysis, with features like checking image integrity, deduplication, and retrieval, written in Rust.
# Installation
```bash
pip install -U ilytix
```
# Getting Started
## Check the integrity of images (检查图片完整性)
It will attempt to repair incorrect image formats whenever possible.
```bash
ilytix check -i ./datasets -r -o A/B/C
```
**Options:**
`-i <PATH>` Path for input image or images folder.
`-o <PATH>` Path for setting the saving results.
`-r`, `--recursive` Recursively traverse folders to obtain files.
`--mv` Store results by moving instead of copying.
**And you'll see something like this**
```bash
✔ Source · /home/qweasd/Desktop/datasets › Folder
✔ Recursively · true
🐢 Integrity Checking [####################] 73/73 (100% | 0.00s | 00:00:00)
✔ Found · x73
· Intact › x34
· Incorrect › x3
· Deprecated Or Unsupported › x36
🐢 Saving[Copy] [####################] 73/73 (100% | 0.00s | 00:00:00)
✔ Results saved to · /home/qweasd/Desktop/A/B/C
```
## Images deduplication (图片去重)
Used for deduplicating images within a folder.
```bash
ilytix dedup -i ./datasets -r -o A/B/C
```
**Options:**
`-i <PATH>` Path for images folder.
`-o <PATH>` Path for setting the saving results.
`-r`, `--recursive` Recursively traverse folders to obtain files.
`--mv` Store results by moving instead of copying.
`-thresh` Used to adjust image similarity threshold.
**And you'll see something like this**
```bash
✔ Source · /home/qweasd/Desktop/datasets › Folder
✔ Recursively · true
🐢 Building [####################] 73/73 (100% | 0.00s | 00:00:00)
✔ Index
· Capacity › 73
· Size › 37
· Dimensions › 32
🐢 Deduplicating [####################] 73/73 (100% | 0.00s | 00:00:00)
✔ Found
· Duplicated › x17
· Curated › x20
· Deprecated Or Unsupported › x36
🐢 Saving[Copy] [####################] 73/73 (100% | 0.00s | 00:00:00)
✔ Results saved to · /home/qweasd/Desktop/A/B/C-1
```
## Image-Image Retrival (图片检索相似图片)
```bash
ilytix retrive -i <Images Folder> -r --query <Query> -v
```
**Output**
```bash
✔ Collection · /home/qweasd/Desktop/4test › Folder
✔ Recursively · true
🐢 Building [####################] 10,693/10,693 (100% | 0.00s | 00:00:36)
✔ Index
· Capacity › 10693
· Size › 10677
· Dimensions › 32
✔ Query · /home/qweasd/Desktop/query.png
✔ Matched · x6
· /home/qweasd/Desktop/4test/clips/query (3rd copy).png
· /home/qweasd/Desktop/4test/clips/query (another copy).png
· /home/qweasd/Desktop/4test/clips/query (4th copy).png
· /home/qweasd/Desktop/4test/clips/query (copy).png
· /home/qweasd/Desktop/4test/clips/query.png
· /home/qweasd/Desktop/4test/clips/query (5th copy).png
🐢 Saving[Copy] [####################] 6/6 (100% | 0.00s | 00:00:00)
✔ Results saved to · /home/qweasd/Desktop/A/B
```
# TODO
- [X] images integrity check
- [X] images de-duplicate
- [X] image-image retrival
- [ ] text-image retrival
- [ ] image catption
Raw data
{
"_id": null,
"home_page": null,
"name": "ilytix",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "automation, cli, Dedup, rust, python",
"author": "Jamjamjon <jamjamjon.usls@gmail.com>",
"author_email": "Jamjamjon <jamjamjon.usls@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/03/8e/924d62ed1afcb2f0605cca762cfb089161699617934aedd4780ae21ef809/ilytix-0.2.5.tar.gz",
"platform": null,
"description": "# ilytix\nA simple command-line tool for visual image analysis, with features like checking image integrity, deduplication, and retrieval, written in Rust.\n\n# Installation\n```bash\npip install -U ilytix\n```\n\n# Getting Started\n\n## Check the integrity of images (\u68c0\u67e5\u56fe\u7247\u5b8c\u6574\u6027)\nIt will attempt to repair incorrect image formats whenever possible. \n```bash\nilytix check -i ./datasets -r -o A/B/C\n```\n\n**Options:** \n`-i <PATH>` Path for input image or images folder. \n`-o <PATH>` Path for setting the saving results. \n`-r`, `--recursive` Recursively traverse folders to obtain files. \n`--mv` Store results by moving instead of copying.\n\n**And you'll see something like this**\n```bash\n\u2714 Source \u00b7 /home/qweasd/Desktop/datasets \u203a Folder\n\u2714 Recursively \u00b7 true\n\n\ud83d\udc22 Integrity Checking [####################] 73/73 (100% | 0.00s | 00:00:00)\n\u2714 Found \u00b7 x73\n \u00b7 Intact \u203a x34\n \u00b7 Incorrect \u203a x3\n \u00b7 Deprecated Or Unsupported \u203a x36\n\n\ud83d\udc22 Saving[Copy] [####################] 73/73 (100% | 0.00s | 00:00:00)\n\u2714 Results saved to \u00b7 /home/qweasd/Desktop/A/B/C\n```\n\n## Images deduplication (\u56fe\u7247\u53bb\u91cd)\nUsed for deduplicating images within a folder. \n\n```bash\nilytix dedup -i ./datasets -r -o A/B/C\n```\n**Options:** \n`-i <PATH>` Path for images folder. \n`-o <PATH>` Path for setting the saving results. \n`-r`, `--recursive` Recursively traverse folders to obtain files. \n`--mv` Store results by moving instead of copying. \n`-thresh` Used to adjust image similarity threshold. \n\n**And you'll see something like this**\n```bash\n\u2714 Source \u00b7 /home/qweasd/Desktop/datasets \u203a Folder\n\u2714 Recursively \u00b7 true\n\n\ud83d\udc22 Building [####################] 73/73 (100% | 0.00s | 00:00:00)\n\u2714 Index\n \u00b7 Capacity \u203a 73\n \u00b7 Size \u203a 37\n \u00b7 Dimensions \u203a 32\n\n\ud83d\udc22 Deduplicating [####################] 73/73 (100% | 0.00s | 00:00:00)\n\u2714 Found\n \u00b7 Duplicated \u203a x17\n \u00b7 Curated \u203a x20\n \u00b7 Deprecated Or Unsupported \u203a x36\n\n\ud83d\udc22 Saving[Copy] [####################] 73/73 (100% | 0.00s | 00:00:00)\n\u2714 Results saved to \u00b7 /home/qweasd/Desktop/A/B/C-1\n\n```\n\n## Image-Image Retrival (\u56fe\u7247\u68c0\u7d22\u76f8\u4f3c\u56fe\u7247)\n```bash\nilytix retrive -i <Images Folder> -r --query <Query> -v\n```\n\n**Output**\n```bash\n\u2714 Collection \u00b7 /home/qweasd/Desktop/4test \u203a Folder\n\u2714 Recursively \u00b7 true\n\n\ud83d\udc22 Building [####################] 10,693/10,693 (100% | 0.00s | 00:00:36)\n\u2714 Index\n \u00b7 Capacity \u203a 10693\n \u00b7 Size \u203a 10677\n \u00b7 Dimensions \u203a 32\n\u2714 Query \u00b7 /home/qweasd/Desktop/query.png\n\u2714 Matched \u00b7 x6\n \u00b7 /home/qweasd/Desktop/4test/clips/query (3rd copy).png\n \u00b7 /home/qweasd/Desktop/4test/clips/query (another copy).png\n \u00b7 /home/qweasd/Desktop/4test/clips/query (4th copy).png\n \u00b7 /home/qweasd/Desktop/4test/clips/query (copy).png\n \u00b7 /home/qweasd/Desktop/4test/clips/query.png\n \u00b7 /home/qweasd/Desktop/4test/clips/query (5th copy).png\n\n\ud83d\udc22 Saving[Copy] [####################] 6/6 (100% | 0.00s | 00:00:00)\n\u2714 Results saved to \u00b7 /home/qweasd/Desktop/A/B\n\n```\n\n\n# TODO\n- [X] images integrity check\n- [X] images de-duplicate\n- [X] image-image retrival\n- [ ] text-image retrival\n- [ ] image catption\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A simple cli tool for images analysis, written in Rust.",
"version": "0.2.5",
"project_urls": {
"Repository": "https://github.com/jamjamjon/ilytix"
},
"split_keywords": [
"automation",
" cli",
" dedup",
" rust",
" python"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "d56dca2cdabfe1f15661168c5278ca1296222f10b95d3fc0bc4c1d6991bf4f99",
"md5": "05875804e9013d16ea224561322e0092",
"sha256": "9accb66b3ee0a02d45aa1c42f6578513ecbc73b353d2c10bb53cc369a32a85a2"
},
"downloads": -1,
"filename": "ilytix-0.2.5-py3-none-macosx_10_12_x86_64.whl",
"has_sig": false,
"md5_digest": "05875804e9013d16ea224561322e0092",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 1271591,
"upload_time": "2024-03-27T08:48:49",
"upload_time_iso_8601": "2024-03-27T08:48:49.638323Z",
"url": "https://files.pythonhosted.org/packages/d5/6d/ca2cdabfe1f15661168c5278ca1296222f10b95d3fc0bc4c1d6991bf4f99/ilytix-0.2.5-py3-none-macosx_10_12_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "294bbcaa29d7c8960850921d2751fc005ee69309f14399b4cf45cbf21ee8398d",
"md5": "0aef0af68d4bb1f248125e1440f1f8cb",
"sha256": "ed39f22de0be92d82c83b9a35b8e09502465f9f75055387bc0e901318d65efaa"
},
"downloads": -1,
"filename": "ilytix-0.2.5-py3-none-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "0aef0af68d4bb1f248125e1440f1f8cb",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 1221457,
"upload_time": "2024-03-27T08:48:51",
"upload_time_iso_8601": "2024-03-27T08:48:51.580767Z",
"url": "https://files.pythonhosted.org/packages/29/4b/bcaa29d7c8960850921d2751fc005ee69309f14399b4cf45cbf21ee8398d/ilytix-0.2.5-py3-none-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "12861c409da167d3e5ca159c3ab555bb85acd893aae1048f7e86d52129f8ecb1",
"md5": "5a01bc9c0a2806735003ad95be288a0f",
"sha256": "241bb9b6d6f2e47a0d483a6b9d28421a997d118a7cdb5150349dcdbfba0fd44c"
},
"downloads": -1,
"filename": "ilytix-0.2.5-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "5a01bc9c0a2806735003ad95be288a0f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 1415866,
"upload_time": "2024-03-27T08:48:53",
"upload_time_iso_8601": "2024-03-27T08:48:53.426085Z",
"url": "https://files.pythonhosted.org/packages/12/86/1c409da167d3e5ca159c3ab555bb85acd893aae1048f7e86d52129f8ecb1/ilytix-0.2.5-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "7949db200b82573bd11a9c14c2e42583280eb50a78a40065a691eb78292693b5",
"md5": "1227cb7e7f8c3d339e6fde1eb80e8ef2",
"sha256": "8c277d53b2ab7ab6bc92617385353da4330a5b5fc75b0603f48a6103b1de45a5"
},
"downloads": -1,
"filename": "ilytix-0.2.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "1227cb7e7f8c3d339e6fde1eb80e8ef2",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 1277853,
"upload_time": "2024-03-27T08:48:55",
"upload_time_iso_8601": "2024-03-27T08:48:55.276381Z",
"url": "https://files.pythonhosted.org/packages/79/49/db200b82573bd11a9c14c2e42583280eb50a78a40065a691eb78292693b5/ilytix-0.2.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ef1ec1a0f8fd5d939dd6b2a570be8f48e77a88a36a66085343a75b72e26da582",
"md5": "467a747af2d75c60930b4f7955b979b5",
"sha256": "f274764462a0b77587d24080bcaf02ed8e5b98a3b916db33bc605109e88d678a"
},
"downloads": -1,
"filename": "ilytix-0.2.5-py3-none-win32.whl",
"has_sig": false,
"md5_digest": "467a747af2d75c60930b4f7955b979b5",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 1128983,
"upload_time": "2024-03-27T08:48:57",
"upload_time_iso_8601": "2024-03-27T08:48:57.137964Z",
"url": "https://files.pythonhosted.org/packages/ef/1e/c1a0f8fd5d939dd6b2a570be8f48e77a88a36a66085343a75b72e26da582/ilytix-0.2.5-py3-none-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "20ba9cc84deb89f8ab7aa8be057559797013df4f2d349814300cdda21f3b6f63",
"md5": "5adb34694a672dc3ea7bd62c8a118c76",
"sha256": "3942ea00bb14177991ffc667adfbc1df52e1f8ffb90b5d36c420f951834a72ea"
},
"downloads": -1,
"filename": "ilytix-0.2.5-py3-none-win_amd64.whl",
"has_sig": false,
"md5_digest": "5adb34694a672dc3ea7bd62c8a118c76",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 1170839,
"upload_time": "2024-03-27T08:48:59",
"upload_time_iso_8601": "2024-03-27T08:48:59.088442Z",
"url": "https://files.pythonhosted.org/packages/20/ba/9cc84deb89f8ab7aa8be057559797013df4f2d349814300cdda21f3b6f63/ilytix-0.2.5-py3-none-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "038e924d62ed1afcb2f0605cca762cfb089161699617934aedd4780ae21ef809",
"md5": "b727db509a4df6561bb819ef1e667c66",
"sha256": "f12cb31b5e2ab5bc154c51b21436a14e0d5112c2e2471756307558510194ac9f"
},
"downloads": -1,
"filename": "ilytix-0.2.5.tar.gz",
"has_sig": false,
"md5_digest": "b727db509a4df6561bb819ef1e667c66",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 17936,
"upload_time": "2024-03-27T08:49:01",
"upload_time_iso_8601": "2024-03-27T08:49:01.103642Z",
"url": "https://files.pythonhosted.org/packages/03/8e/924d62ed1afcb2f0605cca762cfb089161699617934aedd4780ae21ef809/ilytix-0.2.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-03-27 08:49:01",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "jamjamjon",
"github_project": "ilytix",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "ilytix"
}