diff options
| -rw-r--r-- | apps/workers/workers/inference/tagging.ts | 10 | ||||
| -rw-r--r-- | packages/shared/assetdb.ts | 2 |
2 files changed, 10 insertions, 2 deletions
diff --git a/apps/workers/workers/inference/tagging.ts b/apps/workers/workers/inference/tagging.ts index 5697e73a..6dd146af 100644 --- a/apps/workers/workers/inference/tagging.ts +++ b/apps/workers/workers/inference/tagging.ts @@ -15,7 +15,7 @@ import { customPrompts, tagsOnBookmarks, } from "@karakeep/db/schema"; -import { readAsset } from "@karakeep/shared/assetdb"; +import { ASSET_TYPES, readAsset } from "@karakeep/shared/assetdb"; import serverConfig from "@karakeep/shared/config"; import logger from "@karakeep/shared/logger"; import { buildImagePrompt, buildTextPrompt } from "@karakeep/shared/prompts"; @@ -122,7 +122,7 @@ async function inferTagsFromImage( bookmark: NonNullable<Awaited<ReturnType<typeof fetchBookmark>>>, inferenceClient: InferenceClient, abortSignal: AbortSignal, -) { +): Promise<InferenceResponse | null> { const { asset, metadata } = await readAsset({ userId: bookmark.userId, assetId: bookmark.asset.assetId, @@ -133,6 +133,12 @@ async function inferTagsFromImage( `[inference][${jobId}] AssetId ${bookmark.asset.assetId} for bookmark ${bookmark.id} not found`, ); } + if (metadata.contentType === ASSET_TYPES.IMAGE_GIF) { + logger.info( + `[inference][${jobId}] Skipping inference for bookmark with id "${bookmark.id}" because it's a GIF.`, + ); + return null; + } const base64 = asset.toString("base64"); return inferenceClient.inferFromImage( diff --git a/packages/shared/assetdb.ts b/packages/shared/assetdb.ts index 7eda80ef..ff87e847 100644 --- a/packages/shared/assetdb.ts +++ b/packages/shared/assetdb.ts @@ -21,6 +21,7 @@ import { QuotaApproved } from "./storageQuota"; const ROOT_PATH = serverConfig.assetsDir; export const enum ASSET_TYPES { + IMAGE_GIF = "image/gif", IMAGE_JPEG = "image/jpeg", IMAGE_PNG = "image/png", IMAGE_WEBP = "image/webp", @@ -39,6 +40,7 @@ export const VIDEO_ASSET_TYPES: Set<string> = new Set<string>([ ]); export const IMAGE_ASSET_TYPES: Set<string> = new Set<string>([ + ASSET_TYPES.IMAGE_GIF, ASSET_TYPES.IMAGE_JPEG, ASSET_TYPES.IMAGE_PNG, ASSET_TYPES.IMAGE_WEBP, |
