aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/workers/workers/inference/tagging.ts10
-rw-r--r--packages/shared/assetdb.ts2
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,