www/immich-deduper 0.3.6 FreeBSD
Find and remove duplicate photos in an Immich library
- System
- FreeBSD
- Repository
- FreeBSD ports
- Maintainer
- [email protected]
- Port added
- Last update
- Commit
ded8fe316e- License
- GPLv3
- Categories
- www
Description
Deduper looks for duplicate and near duplicate photos in an Immich library. It reads the library over the Immich API and its database, computes an embedding for every picture with a local model and keeps the vectors in Qdrant, which lets it group pictures that differ only in resolution, crop or compression.
The findings are presented in a web interface, where the copies to keep and the ones to delete are picked by hand or by rules.
Version history 1
Upstream's version as each commit to the port's Makefile set it, or as this site first saw it in the system's packages; the tree's own revisions are not versions here.
Install
Binary package:
pkg install immich-deduper
From the ports tree:
cd /usr/ports/www/immich-deduper/ && make install clean
To depend on this port in another port's Makefile:
RUN_DEPENDS= immich-deduper>0:www/immich-deduper
Packages
The version each package repository carries. “-” means the repository builds no package of it, “n/a” that there is no such repository.
| Repository | aarch64 | amd64 | armv6 | armv7 | i386 |
|---|---|---|---|---|---|
| FreeBSD:14:latest | - | - | - | - | - |
| FreeBSD:14:quarterly | - | - | n/a | - | - |
| FreeBSD:15:latest | - | 0.3.6 | n/a | - | - |
| FreeBSD:15:quarterly | - | - | n/a | n/a | n/a |
| FreeBSD:16:latest | - | - | n/a | n/a | n/a |
| FreeBSD:16:quarterly | n/a | n/a | n/a | n/a | n/a |
Dependency graph
Ports that need it on the left, what it needs to run on the right; at most 8 of each. "Dependencies" below lists them all.
Dependencies
As this port's Makefile names them.
Runtime 18
exiftool: graphics/p5-Image-ExifTool${PYTHON_PKGNAMEPREFIX}dash>=4.4.1<5: www/py-dash${PYTHON_PKGNAMEPREFIX}dash-bootstrap-components>=2.0.4<3: www/py-dash-bootstrap-components${PYTHON_PKGNAMEPREFIX}flask>=3.1.3<4: www/py-flask${PYTHON_PKGNAMEPREFIX}flask-caching>=2.5<3: www/py-flask-caching${PYTHON_PKGNAMEPREFIX}flask-socketio>=5.6<6: www/py-flask-socketio${PYTHON_PKGNAMEPREFIX}numpy>=2.2.6,1<3,1: math/py-numpy${PYTHON_PKGNAMEPREFIX}pillow>=11.2.1<14: graphics/py-pillow${PYTHON_PKGNAMEPREFIX}pillow-heif>=0.22<2: graphics/py-pillow-heif${PYTHON_PKGNAMEPREFIX}psutil>=6.1<8: sysutils/py-psutil${PYTHON_PKGNAMEPREFIX}psycopg>=3.2.3<4: databases/py-psycopg${PYTHON_PKGNAMEPREFIX}python-dotenv>=1.1<2: www/py-python-dotenv${PYTHON_PKGNAMEPREFIX}pytorch>=2.11<3: misc/py-pytorch${PYTHON_PKGNAMEPREFIX}qdrant-client>=1.16.1<2: databases/py-qdrant-client${PYTHON_PKGNAMEPREFIX}requests>=2.32.3<3: www/py-requests${PYTHON_PKGNAMEPREFIX}torchvision>=0.26<1: misc/py-torchvision${PYTHON_PKGNAMEPREFIX}watchdog>=4.0.2<7: devel/py-watchdog${PYTHON_PKGNAMEPREFIX}websockets>=17.1<18: devel/py-websockets
The full lists below include those, and their dependencies in turn.
Run dependencies 309
- archivers/brotli
- archivers/libdeflate
- archivers/liblz4
- archivers/lzo2
- archivers/minizip
- archivers/py-brotli
- archivers/py-zopfli
- archivers/zopfli
- archivers/zstd
- audio/lame
- audio/libogg
- audio/libvorbis
- audio/mpg123
- audio/opus
- converters/fribidi
- converters/libiconv
- databases/postgresql18-client
- databases/py-psycopg
- databases/py-psycopg-c
- databases/py-psycopg-pool
- databases/py-qdrant-client
- databases/py-sqlite3
- databases/sfcgal
- databases/spatialite
- databases/sqlite3
- devel/abseil
- devel/binutils
- devel/boost-libs
- devel/gettext-runtime
- devel/glib20
- devel/hwloc2
- devel/icu
- devel/json-c
- devel/jsoncpp
- devel/level-zero
- devel/libdatrie
- devel/libedit
- devel/libepoll-shim
- devel/libevent
- devel/libffi
- devel/libinotify
- devel/libltdl
- devel/libpciaccess
- devel/librttopo
- devel/libthai
- devel/libunistring
- devel/llvm12
- devel/npth
- devel/nspr
- devel/pcre2
- devel/pkgconf
- devel/protobuf
- devel/py-Jinja2
- devel/py-aiosignal
- devel/py-annotated-types
- devel/py-anyio
- devel/py-astunparse
- devel/py-async_generator
- devel/py-async_timeout
- devel/py-attrs
- devel/py-babel
- devel/py-bidict
- devel/py-blinker
- devel/py-cffi
- devel/py-click
- devel/py-comm
- devel/py-cycler
- devel/py-dill
- devel/py-frozenlist
- devel/py-grpcio
- devel/py-importlib-metadata
- devel/py-janus
- devel/py-lxml
- devel/py-nest-asyncio
- devel/py-olefile
- devel/py-outcome
- devel/py-packaging
- devel/py-portalocker
- devel/py-propcache
- devel/py-protobuf
- devel/py-pycparser
- devel/py-pydantic-core
- devel/py-pydantic2
- devel/py-pyparsing
- devel/py-python-dateutil
- devel/py-python-engineio
- devel/py-python-socketio
- devel/py-pytz
- devel/py-pyyaml
- devel/py-retrying
- devel/py-setuptools
- devel/py-six
- devel/py-sniffio
- devel/py-sortedcontainers
- devel/py-typing-extensions
- devel/py-typing-inspection
- devel/py-tzdata
- devel/py-unicodedata2
- devel/py-watchdog
- devel/py-websockets
The first 100 are listed.
No port depends on this one.
Configuration
No options to configure.
- USES
- python:3.12+,run
- Service scripts
immich_deduper
Files
pkg-plist 82
- bin/immich-deduper
- etc/newsyslog.conf.d/immich_deduper.conf
- @sample(root,immich,0640) etc/immich-deduper/deduper.env.sample
- share/immich-deduper/src/api.py
- share/immich-deduper/src/app.py
- share/immich-deduper/src/assets/app.js
- share/immich-deduper/src/assets/appui.js
- share/immich-deduper/src/assets/appws.js
- share/immich-deduper/src/assets/base.css
- share/immich-deduper/src/assets/bs5.css
- share/immich-deduper/src/assets/comp.css
- share/immich-deduper/src/assets/favicon.ico
- share/immich-deduper/src/assets/fn.css
- share/immich-deduper/src/assets/ico.css
- share/immich-deduper/src/assets/logo.png
- share/immich-deduper/src/assets/main.base.css
- share/immich-deduper/src/assets/main.css
- share/immich-deduper/src/assets/mod/base.js
- share/immich-deduper/src/assets/mod/livePhoto.js
- share/immich-deduper/src/assets/mod/mdlImg.js
- share/immich-deduper/src/assets/mod/nfy.js
- share/immich-deduper/src/assets/mod/sim.js
- share/immich-deduper/src/assets/mod/ste.js
- share/immich-deduper/src/assets/mod/tsk.js
- share/immich-deduper/src/assets/noimg.png
- share/immich-deduper/src/assets/socket.io.min.js
- share/immich-deduper/src/chk.py
- share/immich-deduper/src/conf.py
- share/immich-deduper/src/db/__init__.py
- share/immich-deduper/src/db/pics.py
- share/immich-deduper/src/db/psql.py
- share/immich-deduper/src/db/sets.py
- share/immich-deduper/src/db/sim.py
- share/immich-deduper/src/db/vecs.py
- share/immich-deduper/src/dsh.py
- share/immich-deduper/src/dto.py
- share/immich-deduper/src/dtom.py
- share/immich-deduper/src/imgs.py
- share/immich-deduper/src/immich.py
- share/immich-deduper/src/mod/__init__.py
- share/immich-deduper/src/mod/bsh.py
- share/immich-deduper/src/mod/mdl.py
- share/immich-deduper/src/mod/mdlImg.py
- share/immich-deduper/src/mod/mgr/__init__.py
- share/immich-deduper/src/mod/mgr/tskMgr.py
- share/immich-deduper/src/mod/mgr/tskSvc.py
- share/immich-deduper/src/mod/models/__init__.py
- share/immich-deduper/src/mod/models/base.py
- share/immich-deduper/src/mod/models/core.py
- share/immich-deduper/src/mod/models/data.py
- share/immich-deduper/src/mod/models/mods.py
- share/immich-deduper/src/mod/models/page.py
- share/immich-deduper/src/mod/models/shared.py
- share/immich-deduper/src/mod/notify.py
- share/immich-deduper/src/mod/session.py
- share/immich-deduper/src/mod/tsk.py
- share/immich-deduper/src/pages/fetch.py
- share/immich-deduper/src/pages/not_found_404.py
- share/immich-deduper/src/pages/settings.py
- share/immich-deduper/src/pages/similar.py
- share/immich-deduper/src/pages/vector.py
- share/immich-deduper/src/pages/view.py
- share/immich-deduper/src/rtm.py
- share/immich-deduper/src/scss/base.scss
- share/immich-deduper/src/scss/bs5.scss
- share/immich-deduper/src/scss/comp.scss
- share/immich-deduper/src/scss/ico.scss
- share/immich-deduper/src/scss/main.base.scss
- share/immich-deduper/src/scss/main.scss
- share/immich-deduper/src/serve.py
- share/immich-deduper/src/ui/__init__.py
- share/immich-deduper/src/ui/cards.py
- share/immich-deduper/src/ui/cardSets.py
- share/immich-deduper/src/ui/gv.py
- share/immich-deduper/src/ui/gvEx.py
- share/immich-deduper/src/ui/nav.py
- share/immich-deduper/src/ui/pager.py
- share/immich-deduper/src/ui/sidebar.py
- share/immich-deduper/src/util/__init__.py
- share/immich-deduper/src/util/err.py
- share/immich-deduper/src/util/log.py
- @dir(immich,immich,0750)
distinfo 1
| File | Size | SHA256 |
|---|---|---|
| RazgrizHsu-immich-deduper-v0.3.6_GH0.tar.gz | 9.195273e+06 | ab71dabe0e47a6d68da3cc7a665faee9a173842cd457228bae402461ec63843a |