Enhance logging and error handling across tools; add full tool audit and Playwright tests

- Added model mismatch warnings in colorize, enhance-faces, and upscale routes.
- Improved error handling in colorize, enhance_faces, remove_bg, restore, and upscale scripts with detailed logging.
- Updated Dockerfile to align NCCL versions for compatibility.
- Introduced a new full tool audit script to test all tools for functionality and GPU usage.
- Created Playwright E2E tests for GPU-dependent tools to ensure proper functionality and performance.
This commit is contained in:
Ashim
2026-04-17 23:06:31 +08:00
parent 51f60a8269
commit 08a7ffe403
16 changed files with 607 additions and 42 deletions
+7
View File
@@ -142,6 +142,13 @@ export function registerColorize(app: FastifyInstance) {
});
}
if (model !== "auto" && result.method !== model) {
request.log.warn(
{ toolId: "colorize", requested: model, actual: result.method },
`Colorize model mismatch: requested ${model} but used ${result.method}`,
);
}
return reply.send({
jobId,
downloadUrl: `/api/v1/download/${jobId}/${encodeURIComponent(outputFilename)}`,
@@ -122,6 +122,13 @@ export function registerEnhanceFaces(app: FastifyInstance) {
});
}
if (model !== "auto" && result.model !== model) {
request.log.warn(
{ toolId: "enhance-faces", requested: model, actual: result.model },
`Face enhance model mismatch: requested ${model} but used ${result.model}`,
);
}
return reply.send({
jobId,
downloadUrl: `/api/v1/download/${jobId}/${encodeURIComponent(outputFilename)}`,
@@ -145,6 +145,7 @@ export function registerRemoveBackground(app: FastifyInstance) {
originalSize: fileBuffer.length,
processedSize: transparentResult.length,
filename,
model: settings.model,
});
} catch (err) {
request.log.error({ err, toolId: "remove-background" }, "Background removal failed");
+7
View File
@@ -166,6 +166,13 @@ export function registerUpscale(app: FastifyInstance) {
});
}
if (model !== "auto" && result.method !== model) {
request.log.warn(
{ toolId: "upscale", requested: model, actual: result.method },
`Upscale model mismatch: requested ${model} but used ${result.method}`,
);
}
return reply.send({
jobId,
downloadUrl: `/api/v1/download/${jobId}/${encodeURIComponent(outputFilename)}`,