feat: preload textual model #24706
test.yml
on: pull_request
pre-job
8s
ShellCheck
4s
OpenAPI Clients
1m 11s
TypeORM Checks
1m 21s
Test & Lint Server
1m 38s
Unit Test CLI
23s
Unit Test CLI (Windows)
1m 19s
Test & Lint Web
4m 36s
End-to-End Lint
0s
End-to-End Tests (Server & CLI)
3m 11s
End-to-End Tests (Web)
3m 5s
Unit Test Mobile
2m 47s
Unit Test ML
57s
Annotations
18 errors
OpenAPI Clients
Process completed with exit code 1.
|
Unit Test ML
Process completed with exit code 1.
|
TypeORM Checks
Process completed with exit code 1.
|
Test & Lint Server
Property 'loadTextualModelOnConnection' is missing in type '{ enabled: true; modelName: string; }' but required in type '{ enabled: boolean; modelName: string; loadTextualModelOnConnection: { enabled: boolean; }; }'.
|
Test & Lint Server
Type '{ encodeImage: Mock<(url: string, imagePath: string, config: ModelOptions) => Promise<number[]>>; encodeText: Mock<(url: string, text: string, config: ModelOptions) => Promise<number[]>>; detectFaces: Mock<...>; }' is not assignable to type 'Mocked<IMachineLearningRepository>'.
|
Test & Lint Server
Process completed with exit code 2.
|
Test & Lint Server:
server/src/repositories/event.repository.ts#L83
Promises must be awaited, end with a call to .catch, end with a call to .then with a rejection handler or be explicitly marked as ignored with the `void` operator
|
Test & Lint Server:
server/src/repositories/event.repository.ts#L112
Promises must be awaited, end with a call to .catch, end with a call to .then with a rejection handler or be explicitly marked as ignored with the `void` operator
|
Test & Lint Server:
server/src/repositories/machine-learning.repository.ts#L55
Remove unused catch binding `error`
|
Test & Lint Server:
server/src/repositories/machine-learning.repository.ts#L55
'error' is defined but never used
|
Test & Lint Server
Process completed with exit code 1.
|
src/services/system-config.service.spec.ts > SystemConfigService > getConfig > should merge the overrides:
server/src/services/system-config.service.spec.ts#L227
AssertionError: expected { ffmpeg: { crf: 30, …(21) }, …(17) } to deeply equal { job: { …(11) }, …(17) }
- Expected
+ Received
Object {
"ffmpeg": Object {
"accel": "disabled",
"accelDecode": false,
"acceptedAudioCodecs": Array [
"aac",
"mp3",
"libopus",
],
"acceptedContainers": Array [
"mov",
"ogg",
"webm",
],
"acceptedVideoCodecs": Array [
"h264",
],
"bframes": -1,
"cqMode": "auto",
"crf": 30,
"gopSize": 0,
"maxBitrate": "0",
"npl": 0,
"preferredHwDevice": "auto",
"preset": "ultrafast",
"refs": 0,
"targetAudioCodec": "aac",
"targetResolution": "720",
"targetVideoCodec": "h264",
"temporalAQ": false,
"threads": 0,
"tonemap": "hable",
"transcode": "required",
"twoPass": false,
},
"image": Object {
"colorspace": "p3",
"extractEmbedded": false,
"previewFormat": "jpeg",
"previewSize": 1440,
"quality": 80,
"thumbnailFormat": "webp",
"thumbnailSize": 250,
},
"job": Object {
"backgroundTask": Object {
"concurrency": 5,
},
"faceDetection": Object {
"concurrency": 2,
},
"library": Object {
"concurrency": 5,
},
"metadataExtraction": Object {
"concurrency": 5,
},
"migration": Object {
"concurrency": 5,
},
"notifications": Object {
"concurrency": 5,
},
"search": Object {
"concurrency": 5,
},
"sidecar": Object {
"concurrency": 5,
},
"smartSearch": Object {
"concurrency": 2,
},
"thumbnailGeneration": Object {
"concurrency": 3,
},
"videoConversion": Object {
"concurrency": 1,
},
},
"library": Object {
"scan": Object {
"cronExpression": "0 0 * * *",
"enabled": true,
},
"watch": Object {
"enabled": false,
},
},
"logging": Object {
"enabled": true,
"level": "log",
},
"machineLearning": Object {
"clip": Object {
"enabled": true,
+ "loadTextualModelOnConnection": Object {
+ "enabled": false,
+ },
"modelName": "ViT-B-32__openai",
},
"duplicateDetection": Object {
"enabled": true,
"maxDistance": 0.01,
},
"enabled": true,
"facialRecognition": Object {
"enabled": true,
"maxDistance": 0.5,
"minFaces": 3,
"minScore": 0.7,
"modelName": "buffalo_l",
},
"url": "http://immich-machine-learning:3003",
},
"map": Object {
"darkStyle": "https://tiles.immich.cloud/v1/style/dark.json",
"enabled": true,
"lightStyle": "https://tiles.immich.cloud/v1/style/light.json",
},
"metadata": Object {
"faces": Object {
"import": false,
},
},
"newVersionCheck": Object {
"enabled": true,
},
"notifications": Object {
"smtp": Object {
"enabled": false,
"from": "",
"replyTo": "",
"transport": Object {
"host": "",
"ignoreCert": false,
"password": "",
"port": 587,
"username": "",
},
},
},
"oauth": Object {
"autoLaunch": true,
"autoRegister": true,
"buttonText": "Login with OAuth",
"clientId": "",
"clientSecret": "",
"defaultStorageQuota": 0,
"enabled": false,
"issuerUrl": "",
"mobileOverrideEnabled": false,
"mobileRedirectUri": "",
"profileSigningAlgorithm": "none",
"scope": "openid email profile",
"signingAlgorithm": "RS256",
"storageLabelClaim": "preferred_username",
"storageQuotaClaim": "immich_quota",
},
"passwordLogin": Object {
"enabled": true,
},
"reverseGeocoding": Object {
"enabled": true,
},
"server": Object {
"externalDomain": "",
"loginPageMessag
|
src/services/system-config.service.spec.ts > SystemConfigService > getConfig > should load the config from a json file:
server/src/services/system-config.service.spec.ts#L235
AssertionError: expected { ffmpeg: { crf: 30, …(21) }, …(17) } to deeply equal { job: { …(11) }, …(17) }
- Expected
+ Received
Object {
"ffmpeg": Object {
"accel": "disabled",
"accelDecode": false,
"acceptedAudioCodecs": Array [
"aac",
"mp3",
"libopus",
],
"acceptedContainers": Array [
"mov",
"ogg",
"webm",
],
"acceptedVideoCodecs": Array [
"h264",
],
"bframes": -1,
"cqMode": "auto",
"crf": 30,
"gopSize": 0,
"maxBitrate": "0",
"npl": 0,
"preferredHwDevice": "auto",
"preset": "ultrafast",
"refs": 0,
"targetAudioCodec": "aac",
"targetResolution": "720",
"targetVideoCodec": "h264",
"temporalAQ": false,
"threads": 0,
"tonemap": "hable",
"transcode": "required",
"twoPass": false,
},
"image": Object {
"colorspace": "p3",
"extractEmbedded": false,
"previewFormat": "jpeg",
"previewSize": 1440,
"quality": 80,
"thumbnailFormat": "webp",
"thumbnailSize": 250,
},
"job": Object {
"backgroundTask": Object {
"concurrency": 5,
},
"faceDetection": Object {
"concurrency": 2,
},
"library": Object {
"concurrency": 5,
},
"metadataExtraction": Object {
"concurrency": 5,
},
"migration": Object {
"concurrency": 5,
},
"notifications": Object {
"concurrency": 5,
},
"search": Object {
"concurrency": 5,
},
"sidecar": Object {
"concurrency": 5,
},
"smartSearch": Object {
"concurrency": 2,
},
"thumbnailGeneration": Object {
"concurrency": 3,
},
"videoConversion": Object {
"concurrency": 1,
},
},
"library": Object {
"scan": Object {
"cronExpression": "0 0 * * *",
"enabled": true,
},
"watch": Object {
"enabled": false,
},
},
"logging": Object {
"enabled": true,
"level": "log",
},
"machineLearning": Object {
"clip": Object {
"enabled": true,
+ "loadTextualModelOnConnection": Object {
+ "enabled": false,
+ },
"modelName": "ViT-B-32__openai",
},
"duplicateDetection": Object {
"enabled": true,
"maxDistance": 0.01,
},
"enabled": true,
"facialRecognition": Object {
"enabled": true,
"maxDistance": 0.5,
"minFaces": 3,
"minScore": 0.7,
"modelName": "buffalo_l",
},
"url": "http://immich-machine-learning:3003",
},
"map": Object {
"darkStyle": "https://tiles.immich.cloud/v1/style/dark.json",
"enabled": true,
"lightStyle": "https://tiles.immich.cloud/v1/style/light.json",
},
"metadata": Object {
"faces": Object {
"import": false,
},
},
"newVersionCheck": Object {
"enabled": true,
},
"notifications": Object {
"smtp": Object {
"enabled": false,
"from": "",
"replyTo": "",
"transport": Object {
"host": "",
"ignoreCert": false,
"password": "",
"port": 587,
"username": "",
},
},
},
"oauth": Object {
"autoLaunch": true,
"autoRegister": true,
"buttonText": "Login with OAuth",
"clientId": "",
"clientSecret": "",
"defaultStorageQuota": 0,
"enabled": false,
"issuerUrl": "",
"mobileOverrideEnabled": false,
"mobileRedirectUri": "",
"profileSigningAlgorithm": "none",
"scope": "openid email profile",
"signingAlgorithm": "RS256",
"storageLabelClaim": "preferred_username",
"storageQuotaClaim": "immich_quota",
},
"passwordLogin": Object {
"enabled": true,
},
"reverseGeocoding": Object {
"enabled": true,
},
"server": Object {
"externalDomain": "",
"loginPageMessag
|
src/services/system-config.service.spec.ts > SystemConfigService > getConfig > should load the config from a yaml file:
server/src/services/system-config.service.spec.ts#L269
AssertionError: expected { ffmpeg: { crf: 30, …(21) }, …(17) } to deeply equal { job: { …(11) }, …(17) }
- Expected
+ Received
Object {
"ffmpeg": Object {
"accel": "disabled",
"accelDecode": false,
"acceptedAudioCodecs": Array [
"aac",
"mp3",
"libopus",
],
"acceptedContainers": Array [
"mov",
"ogg",
"webm",
],
"acceptedVideoCodecs": Array [
"h264",
],
"bframes": -1,
"cqMode": "auto",
"crf": 30,
"gopSize": 0,
"maxBitrate": "0",
"npl": 0,
"preferredHwDevice": "auto",
"preset": "ultrafast",
"refs": 0,
"targetAudioCodec": "aac",
"targetResolution": "720",
"targetVideoCodec": "h264",
"temporalAQ": false,
"threads": 0,
"tonemap": "hable",
"transcode": "required",
"twoPass": false,
},
"image": Object {
"colorspace": "p3",
"extractEmbedded": false,
"previewFormat": "jpeg",
"previewSize": 1440,
"quality": 80,
"thumbnailFormat": "webp",
"thumbnailSize": 250,
},
"job": Object {
"backgroundTask": Object {
"concurrency": 5,
},
"faceDetection": Object {
"concurrency": 2,
},
"library": Object {
"concurrency": 5,
},
"metadataExtraction": Object {
"concurrency": 5,
},
"migration": Object {
"concurrency": 5,
},
"notifications": Object {
"concurrency": 5,
},
"search": Object {
"concurrency": 5,
},
"sidecar": Object {
"concurrency": 5,
},
"smartSearch": Object {
"concurrency": 2,
},
"thumbnailGeneration": Object {
"concurrency": 3,
},
"videoConversion": Object {
"concurrency": 1,
},
},
"library": Object {
"scan": Object {
"cronExpression": "0 0 * * *",
"enabled": true,
},
"watch": Object {
"enabled": false,
},
},
"logging": Object {
"enabled": true,
"level": "log",
},
"machineLearning": Object {
"clip": Object {
"enabled": true,
+ "loadTextualModelOnConnection": Object {
+ "enabled": false,
+ },
"modelName": "ViT-B-32__openai",
},
"duplicateDetection": Object {
"enabled": true,
"maxDistance": 0.01,
},
"enabled": true,
"facialRecognition": Object {
"enabled": true,
"maxDistance": 0.5,
"minFaces": 3,
"minScore": 0.7,
"modelName": "buffalo_l",
},
"url": "http://immich-machine-learning:3003",
},
"map": Object {
"darkStyle": "https://tiles.immich.cloud/v1/style/dark.json",
"enabled": true,
"lightStyle": "https://tiles.immich.cloud/v1/style/light.json",
},
"metadata": Object {
"faces": Object {
"import": false,
},
},
"newVersionCheck": Object {
"enabled": true,
},
"notifications": Object {
"smtp": Object {
"enabled": false,
"from": "",
"replyTo": "",
"transport": Object {
"host": "",
"ignoreCert": false,
"password": "",
"port": 587,
"username": "",
},
},
},
"oauth": Object {
"autoLaunch": true,
"autoRegister": true,
"buttonText": "Login with OAuth",
"clientId": "",
"clientSecret": "",
"defaultStorageQuota": 0,
"enabled": false,
"issuerUrl": "",
"mobileOverrideEnabled": false,
"mobileRedirectUri": "",
"profileSigningAlgorithm": "none",
"scope": "openid email profile",
"signingAlgorithm": "RS256",
"storageLabelClaim": "preferred_username",
"storageQuotaClaim": "immich_quota",
},
"passwordLogin": Object {
"enabled": true,
},
"reverseGeocoding": Object {
"enabled": true,
},
"server": Object {
"externalDomain": "",
"loginPageMessag
|
src/services/system-config.service.spec.ts > SystemConfigService > updateConfig > should update the config and emit client and server events:
server/src/services/system-config.service.spec.ts#L383
AssertionError: expected { ffmpeg: { crf: 30, …(21) }, …(17) } to deeply equal { job: { …(11) }, …(17) }
- Expected
+ Received
Object {
"ffmpeg": Object {
"accel": "disabled",
"accelDecode": false,
"acceptedAudioCodecs": Array [
"aac",
"mp3",
"libopus",
],
"acceptedContainers": Array [
"mov",
"ogg",
"webm",
],
"acceptedVideoCodecs": Array [
"h264",
],
"bframes": -1,
"cqMode": "auto",
"crf": 30,
"gopSize": 0,
"maxBitrate": "0",
"npl": 0,
"preferredHwDevice": "auto",
"preset": "ultrafast",
"refs": 0,
"targetAudioCodec": "aac",
"targetResolution": "720",
"targetVideoCodec": "h264",
"temporalAQ": false,
"threads": 0,
"tonemap": "hable",
"transcode": "required",
"twoPass": false,
},
"image": Object {
"colorspace": "p3",
"extractEmbedded": false,
"previewFormat": "jpeg",
"previewSize": 1440,
"quality": 80,
"thumbnailFormat": "webp",
"thumbnailSize": 250,
},
"job": Object {
"backgroundTask": Object {
"concurrency": 5,
},
"faceDetection": Object {
"concurrency": 2,
},
"library": Object {
"concurrency": 5,
},
"metadataExtraction": Object {
"concurrency": 5,
},
"migration": Object {
"concurrency": 5,
},
"notifications": Object {
"concurrency": 5,
},
"search": Object {
"concurrency": 5,
},
"sidecar": Object {
"concurrency": 5,
},
"smartSearch": Object {
"concurrency": 2,
},
"thumbnailGeneration": Object {
"concurrency": 3,
},
"videoConversion": Object {
"concurrency": 1,
},
},
"library": Object {
"scan": Object {
"cronExpression": "0 0 * * *",
"enabled": true,
},
"watch": Object {
"enabled": false,
},
},
"logging": Object {
"enabled": true,
"level": "log",
},
"machineLearning": Object {
"clip": Object {
"enabled": true,
+ "loadTextualModelOnConnection": Object {
+ "enabled": false,
+ },
"modelName": "ViT-B-32__openai",
},
"duplicateDetection": Object {
"enabled": true,
"maxDistance": 0.01,
},
"enabled": true,
"facialRecognition": Object {
"enabled": true,
"maxDistance": 0.5,
"minFaces": 3,
"minScore": 0.7,
"modelName": "buffalo_l",
},
"url": "http://immich-machine-learning:3003",
},
"map": Object {
"darkStyle": "https://tiles.immich.cloud/v1/style/dark.json",
"enabled": true,
"lightStyle": "https://tiles.immich.cloud/v1/style/light.json",
},
"metadata": Object {
"faces": Object {
"import": false,
},
},
"newVersionCheck": Object {
"enabled": true,
},
"notifications": Object {
"smtp": Object {
"enabled": false,
"from": "",
"replyTo": "",
"transport": Object {
"host": "",
"ignoreCert": false,
"password": "",
"port": 587,
"username": "",
},
},
},
"oauth": Object {
"autoLaunch": true,
"autoRegister": true,
"buttonText": "Login with OAuth",
"clientId": "",
"clientSecret": "",
"defaultStorageQuota": 0,
"enabled": false,
"issuerUrl": "",
"mobileOverrideEnabled": false,
"mobileRedirectUri": "",
"profileSigningAlgorithm": "none",
"scope": "openid email profile",
"signingAlgorithm": "RS256",
"storageLabelClaim": "preferred_username",
"storageQuotaClaim": "immich_quota",
},
"passwordLogin": Object {
"enabled": true,
},
"reverseGeocoding": Object {
"enabled": true,
},
"server": Object {
"externalDomain": "",
"loginPageMessag
|
Test & Lint Server
Process completed with exit code 1.
|
Unit Test Mobile
10 tests passed, 12 failed, 3 skipped.
|
Unit Test Mobile
Process completed with exit code 1.
|