1
0
Fork 0
mirror of https://github.com/immich-app/immich.git synced 2025-03-01 15:11:21 +01:00
Commit graph

81 commits

Author SHA1 Message Date
Mert
aa0097bde2
fix(server): copy video projection metadata for 360 videos () 2024-09-06 00:30:34 -04:00
BugFest
77e6a6d78b
feat(server): Import face regions from metadata ()
* 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
12b65e3c24
fix(server): auto-reconnect to database () 2024-09-04 13:32:43 -04:00
Jason Rasmussen
9b1a985d29
fix(server): tag upsert () 2024-08-30 12:44:24 -04:00
Michel Heusschen
74f18a4523
fix(server): skip smtp validation if unchanged ()
* fix(server): skip smtp validation if unchanged

* update comparison + convert config to plain object
2024-08-29 14:10:09 -04:00
Jason Rasmussen
d08a20bd57
feat: tags ()
* feat: tags

* fix: folder tree icons

* navigate to tag from detail panel

* delete tag

* Tag position and add tag button

* Tag asset in detail panel

* refactor form

* feat: navigate to tag page from clicking on a tag

* feat: delete tags from the tag page

* refactor: moving tag section in detail panel and add + tag button

* feat: tag asset action in detail panel

* refactor add tag form

* fdisable add tag button when there is no selection

* feat: tag bulk endpoint

* feat: tag colors

* chore: clean up

* chore: unit tests

* feat: write tags to sidecar

* Remove tag and auto focus on tag creation form opened

* chore: regenerate migration

* chore: linting

* add color picker to tag edit form

* fix: force render tags timeline on navigating back from asset viewer

* feat: read tags from keywords

* chore: clean up

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-08-29 12:14:03 -04:00
Anil Madhavapeddy
fe672d4f35
feat(format): nrw format () 2024-08-26 08:16:24 -04:00
Jason Rasmussen
3be1aaaaa4
refactor(server): controller cleanup ()
chore(server): controller cleanup
2024-08-20 12:50:14 +00:00
Jason Rasmussen
8285803c95
refactor: access core () 2024-08-20 07:49:56 -04:00
Jason Rasmussen
7af6733665
refactor(server): move files to separate table () 2024-08-19 20:03:33 -04:00
Jason Rasmussen
f230b3aa42
feat(server): granular permissions for api keys ()
feat(server): api auth permissions
2024-08-16 09:48:43 -04:00
Jason Rasmussen
433c7ab01d
refactor: server emit events () 2024-08-15 20:12:41 +00:00
Jason Rasmussen
b288241a5c
refactor(server): enums () 2024-08-15 06:57:01 -04:00
renovate[bot]
2821e0bf95
chore(deps): update typescript-eslint monorepo to v8 (major) ()
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2024-08-05 19:13:00 +00:00
Justin Forseth
d3a5490e71
feat(server): search unknown place ()
* Allow submission of null country

* Update searchAssetBuilder to handle nulls

andWhere({country:null}) produces `"exifInfo"."country" = NULL`. We want
`"exifInfo"."country" IS NULL`, so we have to treat NULL as a special
case

* Allow null country in frontend

* Make the query code a bit more straightforward

* Remove unused brackets import

* Remove log message

* Don't change whitespace for no reason

* Fix prettier style issue

* Update search.dto.ts validators per @jrasm91's recommendation

* Update api types

* Combine null country and state into one guard clause

* chore: clean up

* chore: add e2e for null/empty city, state, country search

* refactor: server returns suggestion for null values

* chore: clean up

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2024-08-02 03:27:40 +00:00
Alex
ef7a6bb246
chore(web): change license wording and other things () 2024-07-26 10:34:35 -05:00
Daniel Dietzler
7ecdcb3bc0
fix(server): static mail attachment extension ()
* fix: static file extension

* chore: unit tests
2024-07-20 19:00:46 -04:00
apeman
678111ed3b
fix(server): wrong video rotation with QSV and RKMPP decoding () 2024-07-09 15:18:49 +00:00
Jason Rasmussen
59cdbdc492
refactor(server): use .toSorted () 2024-07-06 10:32:38 -04:00
Jason Rasmussen
24c1855899
fix: album remove asset bug ()
* fix: album remove asset bug

* trigger GH Action

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-06-29 00:17:58 -04:00
Jason Rasmussen
72bf9439b0
refactor(server): event emits ()
* refactor(server): event emits

* refactor: change default priority to 0
2024-06-27 15:54:20 -04:00
Daniel Dietzler
5e9a7b17d9
fix(server): allow library id to be null in metadata search ()
* fix: allow library id to be null in metadata search

* chore: open api
2024-06-20 16:02:05 -07:00
Mert
968553a50e
fix(server): video thumbnail generation failing with single i-frame () 2024-06-19 10:50:25 -04:00
Mert
e58131492d
fix(server): consider all I-frames for video thumbnails ()
nointra instead of nokey
2024-06-18 19:02:33 -04:00
Jason Rasmussen
78f600ebce
refactor(server): partner ids () 2024-06-14 18:29:32 -04:00
Jason Rasmussen
77bd162872
fix(server): headers already send () 2024-06-13 13:30:34 -05:00
Jason Rasmussen
3d82005797
fix: no floats (replace with doubles) ()
* fix: no floats (replace with doubles)

* Update server/src/utils/misc.ts

Co-authored-by: Zack Pollard <zackpollard@ymail.com>

---------

Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2024-06-12 17:36:24 +01:00
Zack Pollard
ae095baad3
fix(server): only run healthchecks when api worker is running on immich-server ()
fix: only run healthchecks when api worker is running on immich-server
2024-06-12 12:44:30 +01:00
Mert
126cbeabe8
feat(server): add av1 support for vaapi ()
add av1
2024-06-12 00:24:06 +00:00
Zack Pollard
2f2aecfb47
fix(server): otel not working due to port conflicts after combining containers ()
fix: otel not working due to port conflicts after combining containers

Fixes 
2024-06-10 16:01:04 +00:00
Mert
62f8bd80f4
fix(server): add fallback for video thumbnail generation ()
they called me a madman
2024-06-08 04:55:05 -05:00
Mert
f2148ddf03
fix(server): video thumbnail colors when using webp ()
use gbrpf32le
2024-06-07 02:43:10 -04:00
Jason Rasmussen
4ad97ccded
fix(server): closed connections () 2024-06-06 09:09:42 -05:00
Mert
8812c3afcf
fix(server): apply qsv and vaapi quality to video stream only ()
apply quality to video stream only
2024-05-28 09:49:51 +01:00
Mert
fbc3790cb6
fix(server): video thumbnail generation failing when using qsv ()
fix multiplier
2024-05-28 09:47:41 +01:00
Jason Rasmussen
0fc6d69824
feat(server): user preferences ()
* refactor(server): user endpoints

* feat(server): user preferences

* mobile: user preference

* wording

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-05-28 09:16:53 +07:00
Mert
dca420ef70
chore: refactor transcode config routing ()
* chore: refactor transcode config

* rename parameter

* handle no /dev/dri

* prefer undefined
2024-05-27 15:20:07 -04:00
Mert
21bd20fd75
fix(server): nvenc not working when there are no filters ()
don't add format=nv12
2024-05-27 15:18:01 -04:00
Mert
351dd647a9
feat(server): better video thumbnails () 2024-05-27 12:08:38 -04:00
Mert
69b5eb005f
fix(server): use qsv format for hwmap ()
use qsv format for hwmap
2024-05-24 09:50:28 +01:00
Jason Rasmussen
e7aa50425c
test: sync open api spec ()
test: sync spec file
2024-05-23 07:40:57 -04:00
Mert
a5e8b451b2
feat(server): qsv hardware decoding and tone-mapping ()
* qsv hw decoding and tone-mapping

* fix vaapi

* add tests

* formatting

* handle device name without path
2024-05-23 03:58:29 +00:00
CodaBool
6a4c2e97c0
feat: add docker healthchecks to server and ml ()
* add healthcheck

* format, import, IMMICH_PORT, and eslint change

* chore: clean up nodejs healthcheck

* fix ruff formating

* add healthcheck

* format, import, IMMICH_PORT, and eslint change

* chore: clean up nodejs healthcheck

* fix ruff formating

* add healthcheck to dockerfile

* poetry run ruff check --fix

* removed 2 of 3 console calls

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-05-22 16:54:29 +00:00
Jason Rasmussen
06ce8247cc
feat(server): user metadata ()
* feat(server): user metadata

* add missing method to user mock

* update migration to include cascades

* update sql files

* test: fix e2e

* chore: clean up

---------

Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2024-05-22 08:13:36 -04:00
Jason Rasmussen
1df7be8436
refactor(server): version logic ()
* refactor(server): version

* test: better version and log checks
2024-05-20 20:31:36 -04:00
Nicholas Flamy
975f2351ec
fix(server): Disable duplicate detection when smart search disabled () 2024-05-17 16:37:26 -04:00
Jason Rasmussen
c03981ac1d
refactor(server): new version check () 2024-05-17 12:22:39 -04:00
Zack Pollard
85aca2bb54
feat: microservices be gone ()
* feat: microservices be gone and api is a worker now too

* chore: remove very old startup scripts, surely nobody is using these anymore, right?

right?....
2024-05-17 14:44:30 +01:00
Mert
d8eca168ca
feat(server): fully accelerated nvenc ()
* use arrayContaining

* libplacebo for nvenc

update dockerfile

* tweaks

* update nvenc options

* tweak settings

* refactor

* toggle for hardware decoding, software / hardware decoding for nvenc and rkmpp

* fix software tone-mapping not being applied

* separate configs for hw/sw

* update api

* add hw decode toggle

* fix mutating config

* remove `version` flag

* fix config type

* remove submodule

* handle temporal AQ

* remove duplicate tests

* use `tonemap_opencl`

* wording

* update docs
2024-05-16 13:30:26 -04:00
Mert
64636c0618
feat(server): near-duplicate detection ()
* duplicate detection job, entity, config

* queueing

* job panel, update api

* use embedding in db instead of fetching

* disable concurrency

* only queue visible assets

* handle multiple duplicateIds

* update concurrent queue check

* add provider

* add web placeholder, server endpoint, migration, various fixes

* update sql

* select embedding by default

* rename variable

* simplify

* remove separate entity, handle re-running with different threshold, set default back to 0.02

* fix tests

* add tests

* add index to entity

* formatting

* update asset mock

* fix `upsertJobStatus` signature

* update sql

* formatting

* default to 0.03

* optimize clustering

* use asset's `duplicateId` if present

* update sql

* update tests

* expose admin setting

* refactor

* formatting

* skip if ml is disabled

* debug trash e2e

* remove from web

* remove from sidebar

* test if ml is disabled

* update sql

* separate duplicate detection from clip in config, disable by default for now

* fix doc

* lower minimum `maxDistance`

* update api

* Add and Use Duplicate Detection Feature Flag ()

* Add Duplicate Detection Flag

* Use Duplicate Detection Flag

* Attempt Fixes for Failing Checks

* lower minimum `maxDistance`

* fix tests

---------

Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>

* chore: fixes and additions after rebase

* chore: update api (remove new Role enum)

* fix: left join smart search so getAll works without machine learning

* test: trash e2e go back to checking length of assets is zero

* chore: regen api after rebase

* test: fix tests after rebase

* redundant join

---------

Co-authored-by: Nicholas Flamy <30300649+NicholasFlamy@users.noreply.github.com>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
Co-authored-by: Zack Pollard <zack@futo.org>
2024-05-16 18:08:37 +01:00