Jason Rasmussen
3f2e0780d5
feat: availability checks ( #22185 )
2025-09-19 12:18:42 -04:00
Jason Rasmussen
bcb968e3d1
refactor: job names ( #19949 )
2025-07-15 18:39:00 -04:00
Jason Rasmussen
e73abe0762
refactor: enum casing ( #19946 )
2025-07-15 14:50:13 -04:00
Mert
3a0ddfb92d
fix(server): vacuum after deleting people ( #18299 )
...
* vacuum after deleting people
* update sql
2025-05-14 23:13:13 -04:00
Mert
2a80251dc3
fix(server): more robust person thumbnail generation ( #17974 )
...
* more robust person thumbnail generation
* clamp bounding boxes
* update sql
* no need to process invalid images after decoding
* cursed knowledge
* new line
2025-05-06 14:18:22 -04:00
Jason Rasmussen
be5cc2cdf5
refactor: stream detect faces ( #17996 )
2025-04-30 11:25:30 -04:00
Daniel Dietzler
586a7a173b
refactor: handle detect faces job query ( #17660 )
2025-04-16 22:52:54 +02:00
Mert
25f2b9602f
refactor(server): remove face, person and face search entities ( #17535 )
...
* remove face, person and face search entities
update tests and mappers
check if face relation exists
update sql
unused imports
* pr feedback
generate sql, remove unused imports
2025-04-11 14:44:45 -04:00
Jason Rasmussen
584e5894bf
refactor: user factories instead of stubs ( #17540 )
2025-04-11 11:53:37 -04:00
Zack Pollard
94dba29298
refactor: remove user entity ( #17498 )
2025-04-10 10:53:21 -04:00
Abhinav Valecha
b621281351
feat(server): Avoid face match with people born after file creation #4743 ( #16918 )
...
* feat(server): Avoid face matching with people born after file creation date (#4743 )
* lint
* add medium tests for facial recognition
---------
Co-authored-by: Alex <alex.tran1502@gmail.com >
2025-04-02 10:37:26 -05:00
Jason Rasmussen
1382b27349
refactor: repository mocks ( #16785 )
2025-03-10 16:52:44 -04:00
David Bourgault
9870ad9687
fix(server): adjust type of person.birthDate ( #16628 )
...
The API currently does not respect the documentation when returning a
person's birthDate. The doc/swagger says it will be of "YYYY-MM-DD"
format but the string is a full ISO8601-with-tz string. This causes
issue #16216 because the <input> tag is strict about supported value
formats.
I believe this was introduced by #15242 which switched some queries from
TypeORM to Kysely for the person repository. TypeORM does not parse
date, but our Kysely configuration does (explicitely).
This commits updates the types to represent both possibilities and ensure
the API always returns the correct format.
2025-03-09 21:32:05 -05:00
Jason Rasmussen
fa5aeaf539
refactor: last repository ( #16042 )
2025-02-11 22:15:56 +00:00
Jason Rasmussen
5f3a42a132
refactor: repositories ( #16038 )
2025-02-11 15:12:31 -05:00
Jason Rasmussen
9d85272c2b
refactor: repositories ( #16036 )
2025-02-11 14:08:13 -05:00
Jason Rasmussen
735f8d661e
refactor: test mocks ( #16008 )
2025-02-11 00:47:42 +01:00
Jason Rasmussen
03948a69e2
refactor: system metadata repository ( #15954 )
2025-02-07 17:26:49 -05:00
Jason Rasmussen
23014c263b
feat(api): set person color ( #15937 )
2025-02-07 10:06:58 -05:00
Arno
7ec3610753
feat: Mark people as favorite ( #14866 )
...
* feat: added ability to mark people as favorite, which get sorted to the front of the people list
* feat(server): added unit test for favorite people
* feat(server): refactored for better readability
* fixed person service unit tests
* fixed open-api and sql checks
* fixed bad codegen and removed unnecessary type assertion again
* chore: clean up
---------
Co-authored-by: Alex <alex.tran1502@gmail.com >
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com >
2025-02-04 08:52:17 +00:00
Jason Rasmussen
66849d0d45
refactor: migrate media repository ( #15536 )
2025-01-22 22:11:07 +00:00
Mert
49a6961ec6
fix(server): query fixes ( #15509 )
2025-01-22 14:17:42 -06:00
Daniel Dietzler
332a865ce6
refactor: migrate person repository to kysely ( #15242 )
...
* refactor: migrate person repository to kysely
* `asVector` begone
* linting
* fix metadata faces
* update test
---------
Co-authored-by: Alex <alex.tran1502@gmail.com >
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com >
2025-01-21 13:12:28 -05:00
Mert
2e12c46980
refactor(server): use kysely ( #12857 )
2025-01-09 11:15:41 -05:00
Mert
4bf1b84cc2
feat(ml): support multiple urls ( #14347 )
...
* support multiple url
* update api
* styling
unnecessary `?.`
* update docs, make new url field go first
add load balancing section
* update tests
doc formatting
wording
wording
linting
* small styling
* `url` -> `urls`
* fix tests
* update docs
* make docusaurus happy
---------
Co-authored-by: Alex <alex.tran1502@gmail.com >
2024-12-04 20:17:47 +00:00
Jason Rasmussen
930df46f74
chore(server): remove unused code ( #13367 )
2024-10-11 00:44:38 -04:00
Jason Rasmussen
7ee0221c8e
chore: remove deprecated endpoint ( #13190 )
2024-10-04 15:10:13 -04:00
Mert
2c87683fd4
feat(server): refresh face detection ( #12335 )
...
* refresh faces
handle non-ml faces
* fix metadata face handling
* updated tests
* added todo comment
2024-10-03 21:58:28 -04:00
Jason Rasmussen
4ea281f854
refactor: service dependencies ( #13108 )
...
refactor(server): simplify service dependency management
2024-10-02 10:54:35 -04:00
Jason Rasmussen
63437529e1
refactor(server): config file env ( #13100 )
2024-10-01 16:03:55 -04:00
Mert
2f13db51df
fix(server): "all" button for facial recognition deleting faces instead of unassigning them ( #13042 )
...
* unassign faces instead of deleting them
* formatting
2024-09-30 00:29:14 -04:00
Mert
2bcd27e166
feat(server): generate all thumbnails for an asset in one job ( #13012 )
...
* wip
cleanup
add success logs, rename method
do thumbhash too
fixes
fix tests
handle `notify`
wip refactor
refactor
* update tests
* update sql
* pr feedback
* remove unused code
* formatting
2024-09-28 17:47:24 +00:00
Jason Rasmussen
12da250028
refactor: enums ( #12988 )
2024-09-27 10:28:42 -04:00
Jason Rasmussen
d634ef2d2b
fix(server): person repo methods ( #12524 )
2024-09-10 08:48:29 -05:00
BugFest
77e6a6d78b
feat(server): Import face regions from metadata ( #6455 )
...
* feat: faces-from-metadata - Import face regions from metadata
Implements immich-app#1692.
- OpenAPI spec changes to accomodate metadata face import configs. New settings to enable the feature.
- Updates admin UI compoments
- ML faces detection/recognition & Exif/Metadata faces compatibility
Signed-off-by: BugFest <bugfest.dev@pm.me >
* chore(web): remove unused file confirm-enable-import-faces
* chore(web): format metadata-settings
* fix(server): faces-from-metadata tests and format
* fix(server): code refinements, nullable face asset sourceType
* fix(server): Add RegionInfo to ImmichTags interface
* fix(server): deleteAllFaces sourceType param can be undefined
* fix(server): exiftool-vendored 27.0.0 moves readArgs into ExifToolOptions
* fix(server): rename isImportFacesFromMetadataEnabled to isFaceImportEnabled
* fix(server): simplify sourceType conditional
* fix(server): small fixes
* fix(server): handling sourceType
* fix(server): sourceType enum
* fix(server): refactor metadata applyTaggedFaces
* fix(server): create/update signature changes
* fix(server): reduce computational cost of Person.getManyByName
* fix(server): use faceList instead of faceSet
* fix(server): Skip regions without Name defined
* fix(mobile): Update open-api (face assets feature changes)
* fix(server): Face-Person reconciliation with map/index
* fix(server): tags.RegionInfo.AppliedToDimensions must be defined to process face-region
* fix(server): fix shared-link.service.ts format
* fix(mobile): Update open-api after branch update
* simplify
* fix(server): minor fixes
* fix(server): person create/update methods type enforcement
* fix(server): style fixes
* fix(server): remove unused metadata code
* fix(server): metadata faces unit tests
* fix(server): top level config metadata category
* fix(server): rename upsertFaces to replaceFaces
* fix(server): remove sourceType when unnecessary
* fix(server): sourceType as ENUM
* fix(server): format fixes
* fix(server): fix tests after sourceType ENUM change
* fix(server): remove unnecessary JobItem cast
* fix(server): fix asset enum imports
* fix(open-api): add metadata config
* fix(mobile): update open-api after metadata open-api spec changes
* fix(web): update web/api metadata config
* fix(server): remove duplicated sourceType def
* fix(server): update generated sql queries
* fix(e2e): tests for metadata face import feature
* fix(web): Fix check:typescript
* fix(e2e): update subproject ref
* fix(server): revert format changes to pass format checks after ci
* fix(mobile): update open-api
* fix(server,movile,open-api,mobile): sourceType as DB data type
* fix(e2e): upload face asset after enabling metadata face import
* fix(web): simplify metadata admin settings and i18n keys
* Update person.repository.ts
Co-authored-by: Jason Rasmussen <jason@rasm.me >
* fix(server): asset_faces.sourceType column not nullable
* fix(server): simplified syntax
* fix(e2e): use SDK for everything except the endpoint being tested
* fix(e2e): fix test format
* chore: clean up
* chore: clean up
* chore: update e2e/test-assets
---------
Signed-off-by: BugFest <bugfest.dev@pm.me >
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com >
Co-authored-by: Jason Rasmussen <jason@rasm.me >
2024-09-04 18:23:58 -04:00
Jason Rasmussen
7af6733665
refactor(server): move files to separate table ( #11861 )
2024-08-19 20:03:33 -04:00
Jason Rasmussen
b288241a5c
refactor(server): enums ( #11809 )
2024-08-15 06:57:01 -04:00
Michel Heusschen
434bcec5cc
fix(server): correct person birth date across timezones ( #11369 )
...
* fix(server): correct person birth date across timezones
* fix test
* update e2e tests
* use Optional decorator
2024-07-29 19:52:04 -04:00
Michel Heusschen
8e6bc13540
feat: people infinite scroll ( #11326 )
...
* feat: people infinite scroll
* add infinite scroll to show & hide modal
* update unit tests
* show total people count instead of currently loaded
* update personsearchdto
2024-07-25 15:59:28 -04:00
Saschl
d37e8ede3b
feat: optionally generate thumbnails for invalid images ( #11126 )
2024-07-18 12:07:22 -04:00
Mert
8193416230
feat(server): conditionally run facial recognition nightly ( #11080 )
...
* only run nightly if new person
* add tests
* use string instead of date
* update sql
* update tests
* simplify condition
2024-07-14 22:53:42 +00:00
martin
37b5d92110
fix(web): new feature photo ( #9443 )
...
* fix: new feature photo
* fix: use updatedAt
2024-06-27 20:16:26 -04:00
Mert
6b1b5054f8
feat(server): separate face search relation ( #10371 )
...
* wip
* various fixes
* new migration
* fix test
* add face search entity, update sql
* update e2e
* set storage to external
2024-06-16 19:25:27 +00:00
Mert
e77e87b936
fix(server): orientation handling for person thumbnails ( #10382 )
...
fix orientation handling
2024-06-16 08:45:58 -07:00
Mert
fb641c74be
fix(server): use preview image when generating person thumbnail from video ( #10240 )
2024-06-12 22:16:26 -04:00
Mert
2b1b43a7e4
feat(ml): composable ml ( #9973 )
...
* modularize model classes
* various fixes
* expose port
* change response
* round coordinates
* simplify preload
* update server
* simplify interface
simplify
* update tests
* composable endpoint
* cleanup
fixes
remove unnecessary interface
support text input, cleanup
* ew camelcase
* update server
server fixes
fix typing
* ml fixes
update locustfile
fixes
* cleaner response
* better repo response
* update tests
formatting and typing
rename
* undo compose change
* linting
fix type
actually fix typing
* stricter typing
fix detection-only response
no need for defaultdict
* update spec file
update api
linting
* update e2e
* unnecessary dimension
* remove commented code
* remove duplicate code
* remove unused imports
* add batch dim
2024-06-07 03:09:47 +00:00
Jason Rasmussen
984aa8fb41
refactor(server): system config ( #9517 )
2024-05-15 18:58:23 -04:00
Jason Rasmussen
7b1112f3e3
refactor(server): system config ( #9484 )
2024-05-14 14:43:49 -04:00
Mert
1167f0f2b7
feat(server): optimize person thumbnail generation ( #7513 )
...
* do crop and resize together
* redundant `pipelineColorspace` call
* formatting
* fix rebase
* handle orientation
* remove unused import
* formatting
* use oriented dimensions for half size calculation
* default case for orientation
* simplify orientation code
---------
Co-authored-by: Alex <alex.tran1502@gmail.com >
2024-05-08 08:09:34 -05:00
AmAn Sharma
6e6deec40c
feat: use ILoggerRepository ( #8855 )
...
* Migrate ImmichLogger over to injected ILoggerRepository
* chore: cleanup and tests
---------
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com >
2024-04-16 17:30:31 -04:00