mirror of
				https://github.com/SillyTavern/SillyTavern.git
				synced 2025-06-05 21:59:27 +02:00 
			
		
		
		
	Endpoint for local captioning pipeline
This commit is contained in:
		
							
								
								
									
										368
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										368
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @@ -26,7 +26,7 @@ | ||||
|                 "gpt3-tokenizer": "^1.1.5", | ||||
|                 "ip-matching": "^2.1.2", | ||||
|                 "ipaddr.js": "^2.0.1", | ||||
|                 "jimp": "^0.22.7", | ||||
|                 "jimp": "^0.22.10", | ||||
|                 "jquery": "^3.6.4", | ||||
|                 "json5": "^2.2.3", | ||||
|                 "lodash": "^4.17.21", | ||||
| @@ -40,7 +40,7 @@ | ||||
|                 "png-chunks-extract": "^1.0.0", | ||||
|                 "response-time": "^2.3.2", | ||||
|                 "sanitize-filename": "^1.6.3", | ||||
|                 "sillytavern-transformers": "^2.6.2", | ||||
|                 "sillytavern-transformers": "^2.7.3", | ||||
|                 "simple-git": "^3.19.1", | ||||
|                 "uniqolor": "^1.1.0", | ||||
|                 "vectra": "^0.2.2", | ||||
| @@ -135,11 +135,11 @@ | ||||
|             "integrity": "sha512-bhR5k5W+8GLzysjk8zTMVygQZsgvf7W1F0IlL4ZQ5ugjo5rCyiwGM5d8DYriXspytfu98tv59niang3/T+FoDw==" | ||||
|         }, | ||||
|         "node_modules/@jimp/bmp": { | ||||
|             "version": "0.22.8", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.22.8.tgz", | ||||
|             "integrity": "sha512-JEMKgM1AEvvWfn9ZCHn62nK+QCE3Pb/ZhPdL3NF0ZgKNww6pqOmo6KqXzqY18JLB7c0epuTp4GPDPDhOh/ou1g==", | ||||
|             "version": "0.22.10", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.22.10.tgz", | ||||
|             "integrity": "sha512-1UXRl1Nw1KptZ1r0ANqtXOst9vGH51dq7keVKQzyyTO2lz4dOaezS9StuSTNh+RmiHg/SVPaFRpPfB0S/ln4Kg==", | ||||
|             "dependencies": { | ||||
|                 "@jimp/utils": "^0.22.8", | ||||
|                 "@jimp/utils": "^0.22.10", | ||||
|                 "bmp-js": "^0.1.0" | ||||
|             }, | ||||
|             "peerDependencies": { | ||||
| @@ -147,36 +147,35 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@jimp/core": { | ||||
|             "version": "0.22.8", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/core/-/core-0.22.8.tgz", | ||||
|             "integrity": "sha512-vkN28aFikzQieA6bGxN+qe20pseCAemCyUI0YmRkJIArlb6OujtAwWAKyokv2lylV56bq8EQGIz+Y30OXUnRqg==", | ||||
|             "version": "0.22.10", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/core/-/core-0.22.10.tgz", | ||||
|             "integrity": "sha512-ZKyrehVy6wu1PnBXIUpn/fXmyMRQiVSbvHDubgXz4bfTOao3GiOurKHjByutQIgozuAN6ZHWiSge1dKA+dex3w==", | ||||
|             "dependencies": { | ||||
|                 "@jimp/utils": "^0.22.8", | ||||
|                 "@jimp/utils": "^0.22.10", | ||||
|                 "any-base": "^1.1.0", | ||||
|                 "buffer": "^5.2.0", | ||||
|                 "exif-parser": "^0.1.12", | ||||
|                 "file-type": "^16.5.4", | ||||
|                 "isomorphic-fetch": "^3.0.0", | ||||
|                 "mkdirp": "^2.1.3", | ||||
|                 "pixelmatch": "^4.0.2", | ||||
|                 "tinycolor2": "^1.6.0" | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@jimp/custom": { | ||||
|             "version": "0.22.8", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/custom/-/custom-0.22.8.tgz", | ||||
|             "integrity": "sha512-u6lP9x/HNeGHB0Oojv4c2mhuDvn7G0ikzYbK4IKLsH4HzHxt62faMjBzQMcFhKJhR6UiiKE/jiHrhGvBT/fMkw==", | ||||
|             "version": "0.22.10", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/custom/-/custom-0.22.10.tgz", | ||||
|             "integrity": "sha512-sPZkUYe1hu0iIgNisjizxPJqq2vaaKvkCkPoXq2U6UV3ZA1si/WVdrg25da3IcGIEV+83AoHgM8TvqlLgrCJsg==", | ||||
|             "dependencies": { | ||||
|                 "@jimp/core": "^0.22.8" | ||||
|                 "@jimp/core": "^0.22.10" | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@jimp/gif": { | ||||
|             "version": "0.22.8", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/gif/-/gif-0.22.8.tgz", | ||||
|             "integrity": "sha512-I0l6koS67IPU40RPxCJTD1NvePEd8vUIHTejx1ly0jrjGnumbqdarAlBUkDrKfPPc+Fnqp84hBbSN1w5hNPT6w==", | ||||
|             "version": "0.22.10", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/gif/-/gif-0.22.10.tgz", | ||||
|             "integrity": "sha512-yEX2dSpamvkSx1PPDWGnKeWDrBz0vrCKjVG/cn4Zr68MRRT75tbZIeOrBa+RiUpY3ho5ix7d36LkYvt3qfUIhQ==", | ||||
|             "dependencies": { | ||||
|                 "@jimp/utils": "^0.22.8", | ||||
|                 "gifwrap": "^0.9.2", | ||||
|                 "@jimp/utils": "^0.22.10", | ||||
|                 "gifwrap": "^0.10.1", | ||||
|                 "omggif": "^1.0.9" | ||||
|             }, | ||||
|             "peerDependencies": { | ||||
| @@ -184,11 +183,11 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@jimp/jpeg": { | ||||
|             "version": "0.22.8", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.22.8.tgz", | ||||
|             "integrity": "sha512-hLXrQ7/0QiUhAVAF10dfGCSq3hvyqjKltlpu/87b3wqMDKe9KdvhX1AJHiUUrAbJv1fAcnOmQGTyXGuySa1D6A==", | ||||
|             "version": "0.22.10", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.22.10.tgz", | ||||
|             "integrity": "sha512-6bu98pAcVN4DY2oiDLC4TOgieX/lZrLd1tombWZOFCN5PBmqaHQxm7IUmT+Wj4faEvh8QSHgVLSA+2JQQRJWVA==", | ||||
|             "dependencies": { | ||||
|                 "@jimp/utils": "^0.22.8", | ||||
|                 "@jimp/utils": "^0.22.10", | ||||
|                 "jpeg-js": "^0.4.4" | ||||
|             }, | ||||
|             "peerDependencies": { | ||||
| @@ -196,44 +195,44 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@jimp/plugin-blit": { | ||||
|             "version": "0.22.8", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-0.22.8.tgz", | ||||
|             "integrity": "sha512-rQ19txVCKIwo74HtgFodFt4//0ATPCJK+f24riqzb+nx+1JaOo1xRvpJqg4moirHwKR2fhwdDxmY7KX20kCeYA==", | ||||
|             "version": "0.22.10", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-0.22.10.tgz", | ||||
|             "integrity": "sha512-6EI8Sl+mxYHEIy6Yteh6eknD+EZguKpNdr3sCKxNezmLR0+vK99vHcllo6uGSjXXiwtwS67Xqxn8SsoatL+UJQ==", | ||||
|             "dependencies": { | ||||
|                 "@jimp/utils": "^0.22.8" | ||||
|                 "@jimp/utils": "^0.22.10" | ||||
|             }, | ||||
|             "peerDependencies": { | ||||
|                 "@jimp/custom": ">=0.3.5" | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@jimp/plugin-blur": { | ||||
|             "version": "0.22.8", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-0.22.8.tgz", | ||||
|             "integrity": "sha512-GWbNK3YW6k2EKiGJdpAFEr0jezPBtiVxj2wG/lCPuWJz7KmzSSN99hQjIy73xQxoBCRdALfJlkhe3leFNRueSQ==", | ||||
|             "version": "0.22.10", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-0.22.10.tgz", | ||||
|             "integrity": "sha512-4XRTWuPVdMXJeclJMisXPGizeHtTryVaVV5HnuQXpKqIZtzXReCCpNGH8q/i0kBQOQMXhGWS3mpqOEwtpPePKw==", | ||||
|             "dependencies": { | ||||
|                 "@jimp/utils": "^0.22.8" | ||||
|                 "@jimp/utils": "^0.22.10" | ||||
|             }, | ||||
|             "peerDependencies": { | ||||
|                 "@jimp/custom": ">=0.3.5" | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@jimp/plugin-circle": { | ||||
|             "version": "0.22.8", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-circle/-/plugin-circle-0.22.8.tgz", | ||||
|             "integrity": "sha512-qPCw8XFW8opT89ciFDuvs+eB3EB1mZIJWVajD2qAlprHiE7YGr34TkM7N5MNr3qZ1pJgkYdW6+HbBrJwBaonqw==", | ||||
|             "version": "0.22.10", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-circle/-/plugin-circle-0.22.10.tgz", | ||||
|             "integrity": "sha512-mhcwTO1ywRxiCgtLGge6tDDIDPlX6qkI3CY+BjgGG/XhVHccCddXgOGLdlf+5OuKIEF2Nqs0V01LQEQIJFTmEw==", | ||||
|             "dependencies": { | ||||
|                 "@jimp/utils": "^0.22.8" | ||||
|                 "@jimp/utils": "^0.22.10" | ||||
|             }, | ||||
|             "peerDependencies": { | ||||
|                 "@jimp/custom": ">=0.3.5" | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@jimp/plugin-color": { | ||||
|             "version": "0.22.8", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-0.22.8.tgz", | ||||
|             "integrity": "sha512-ogkbg6rpDVH/mMLgAQKg17z3oZE0VN7ZWxNoH12fUHchqKz1I57zpa65fxZe2I8T5Xz97HR3x+7V7oI8qQGdSA==", | ||||
|             "version": "0.22.10", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-0.22.10.tgz", | ||||
|             "integrity": "sha512-e4t3L7Kedd96E0x1XjsTM6NcgulKUU66HdFTao7Tc9FYJRFSlttARZ/C6LEryGDm/i69R6bJEpo7BkNz0YL55Q==", | ||||
|             "dependencies": { | ||||
|                 "@jimp/utils": "^0.22.8", | ||||
|                 "@jimp/utils": "^0.22.10", | ||||
|                 "tinycolor2": "^1.6.0" | ||||
|             }, | ||||
|             "peerDependencies": { | ||||
| @@ -241,11 +240,11 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@jimp/plugin-contain": { | ||||
|             "version": "0.22.8", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-contain/-/plugin-contain-0.22.8.tgz", | ||||
|             "integrity": "sha512-oiaPLdJt9Dk+XEEhM/OU3lFemM51mA9NgMCAdburSCjDzKacJYBGFSHjTOhXzcxOie/ZDpOYN/UzFGKy8Dgl9A==", | ||||
|             "version": "0.22.10", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-contain/-/plugin-contain-0.22.10.tgz", | ||||
|             "integrity": "sha512-eP8KrzctuEoqibQAxi9WhbnoRosydhiwg+IYya3dKuKDBTrD9UHt+ERlPQ/lTNWHzV/l4S1ntV3r9s9saJgsXA==", | ||||
|             "dependencies": { | ||||
|                 "@jimp/utils": "^0.22.8" | ||||
|                 "@jimp/utils": "^0.22.10" | ||||
|             }, | ||||
|             "peerDependencies": { | ||||
|                 "@jimp/custom": ">=0.3.5", | ||||
| @@ -255,11 +254,11 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@jimp/plugin-cover": { | ||||
|             "version": "0.22.8", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-cover/-/plugin-cover-0.22.8.tgz", | ||||
|             "integrity": "sha512-mO68w1m/LhfuHU8LKHY05a4/hhWnY4t+T+8JCw9t+5yfzA4+LofBZZKtFtWgwf/QGe1y3X2rtUU/avAzDUKyyA==", | ||||
|             "version": "0.22.10", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-cover/-/plugin-cover-0.22.10.tgz", | ||||
|             "integrity": "sha512-kJCwL5T1igfa0InCfkE7bBeqg26m46aoRt10ug+rvm11P6RrvRMGrgINFyIKB+mnB7CiyBN/MOula1CvLhSInQ==", | ||||
|             "dependencies": { | ||||
|                 "@jimp/utils": "^0.22.8" | ||||
|                 "@jimp/utils": "^0.22.10" | ||||
|             }, | ||||
|             "peerDependencies": { | ||||
|                 "@jimp/custom": ">=0.3.5", | ||||
| @@ -269,55 +268,55 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@jimp/plugin-crop": { | ||||
|             "version": "0.22.8", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-0.22.8.tgz", | ||||
|             "integrity": "sha512-ns4oH0h0gezYsbuH8RThcMLY5uTLk/vnqOVjWCehMHEzxi0DHMWCmpcb6bC//vJ+XFNhtVGn1ALN7+ROmPrj+A==", | ||||
|             "version": "0.22.10", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-0.22.10.tgz", | ||||
|             "integrity": "sha512-BOZ+YGaZlhU7c5ye65RxikicXH0Ki0It6/XHISvipR5WZrfjLjL2Ke20G+AGnwBQc76gKenVcMXVUCnEjtZV+Q==", | ||||
|             "dependencies": { | ||||
|                 "@jimp/utils": "^0.22.8" | ||||
|                 "@jimp/utils": "^0.22.10" | ||||
|             }, | ||||
|             "peerDependencies": { | ||||
|                 "@jimp/custom": ">=0.3.5" | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@jimp/plugin-displace": { | ||||
|             "version": "0.22.8", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-displace/-/plugin-displace-0.22.8.tgz", | ||||
|             "integrity": "sha512-Cj8nHYgsdFynOIx3dbbiVwRuZn3xO+RVfwkTRy0JBye+K2AU8SQJS+hSFNMQFTZt5djivh6kh0TzvR/6LkOd1w==", | ||||
|             "version": "0.22.10", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-displace/-/plugin-displace-0.22.10.tgz", | ||||
|             "integrity": "sha512-llNiWWMTKISDXt5+cXI0GaFmZWAjlT+4fFLYf4eXquuL/9wZoQsEBhv2GdGd48mkiS8jZq1Nnb2Q4ehEPTvrzw==", | ||||
|             "dependencies": { | ||||
|                 "@jimp/utils": "^0.22.8" | ||||
|                 "@jimp/utils": "^0.22.10" | ||||
|             }, | ||||
|             "peerDependencies": { | ||||
|                 "@jimp/custom": ">=0.3.5" | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@jimp/plugin-dither": { | ||||
|             "version": "0.22.8", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-dither/-/plugin-dither-0.22.8.tgz", | ||||
|             "integrity": "sha512-oE0Us/6bEgrgEg56plU3jSBzvB9iGhweKUHmxYMWnQbFCHP4mNCtPAs8+Fmq6c+m98ZgBgRcrJTnC7lphHkGyw==", | ||||
|             "version": "0.22.10", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-dither/-/plugin-dither-0.22.10.tgz", | ||||
|             "integrity": "sha512-05WLmeV5M+P/0FS+bWf13hMew2X0oa8w9AtmevL2UyA/5GqiyvP2Xm5WfGQ8oFiiMvpnL6RFomJQOZtWca0C2w==", | ||||
|             "dependencies": { | ||||
|                 "@jimp/utils": "^0.22.8" | ||||
|                 "@jimp/utils": "^0.22.10" | ||||
|             }, | ||||
|             "peerDependencies": { | ||||
|                 "@jimp/custom": ">=0.3.5" | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@jimp/plugin-fisheye": { | ||||
|             "version": "0.22.8", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-fisheye/-/plugin-fisheye-0.22.8.tgz", | ||||
|             "integrity": "sha512-bWvYY/nfMcKclWEaRyAir+YsT6C5St823HUQAsewZowTrJmme+w4U2a6InsryTHUL01BBcV5BLH0aDHuV3StvA==", | ||||
|             "version": "0.22.10", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-fisheye/-/plugin-fisheye-0.22.10.tgz", | ||||
|             "integrity": "sha512-InjiXvc7Gkzrx8VWtU97kDqV7ENnhHGPULymJWeZaF2aicud9Fpk4iCtd/DcZIrk7Cbe60A8RwNXN00HXIbSCg==", | ||||
|             "dependencies": { | ||||
|                 "@jimp/utils": "^0.22.8" | ||||
|                 "@jimp/utils": "^0.22.10" | ||||
|             }, | ||||
|             "peerDependencies": { | ||||
|                 "@jimp/custom": ">=0.3.5" | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@jimp/plugin-flip": { | ||||
|             "version": "0.22.8", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-flip/-/plugin-flip-0.22.8.tgz", | ||||
|             "integrity": "sha512-0NFTNzjsdmOQkaIkNjZqO3/yU4SQb9nnWQXsLS1fFo+9QrIL5v8vVkXpk/rhiND6PyTj2mMTNjOa76GuZcC+iQ==", | ||||
|             "version": "0.22.10", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-flip/-/plugin-flip-0.22.10.tgz", | ||||
|             "integrity": "sha512-42GkGtTHWnhnwTMPVK/kXObZbkYIpQWfuIfy5EMEMk6zRj05zpv4vsjkKWfuemweZINwfvD7wDJF7FVFNNcZZg==", | ||||
|             "dependencies": { | ||||
|                 "@jimp/utils": "^0.22.8" | ||||
|                 "@jimp/utils": "^0.22.10" | ||||
|             }, | ||||
|             "peerDependencies": { | ||||
|                 "@jimp/custom": ">=0.3.5", | ||||
| @@ -325,55 +324,55 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@jimp/plugin-gaussian": { | ||||
|             "version": "0.22.8", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-gaussian/-/plugin-gaussian-0.22.8.tgz", | ||||
|             "integrity": "sha512-E/f14aLzCS50QAM7K+InI9V61KVy/Zx52vy7Jjfo1h7qKhQHss3PYaydaH0N6qlXRNeXgh+4/32P9JfieLMcdw==", | ||||
|             "version": "0.22.10", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-gaussian/-/plugin-gaussian-0.22.10.tgz", | ||||
|             "integrity": "sha512-ykrG/6lTp9Q5YA8jS5XzwMHtRxb9HOFMgtmnrUZ8kU+BK8REecfy9Ic5BUEOjCYvS1a/xLsnrZQU07iiYxBxFg==", | ||||
|             "dependencies": { | ||||
|                 "@jimp/utils": "^0.22.8" | ||||
|                 "@jimp/utils": "^0.22.10" | ||||
|             }, | ||||
|             "peerDependencies": { | ||||
|                 "@jimp/custom": ">=0.3.5" | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@jimp/plugin-invert": { | ||||
|             "version": "0.22.8", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-invert/-/plugin-invert-0.22.8.tgz", | ||||
|             "integrity": "sha512-UauP39FF2cwbA5VU+Tz9VlNa9rtULPSHZb0Huwcjqjm9/G/xVN69VJ8+RKiFC4zM1/kYAUp/6IRwPa6qdKJpSw==", | ||||
|             "version": "0.22.10", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-invert/-/plugin-invert-0.22.10.tgz", | ||||
|             "integrity": "sha512-d8j9BlUJYs/c994t4azUWSWmQq4LLPG4ecm8m6SSNqap+S/HlVQGqjYhJEBbY9EXkOTYB9vBL9bqwSM1Rr6paA==", | ||||
|             "dependencies": { | ||||
|                 "@jimp/utils": "^0.22.8" | ||||
|                 "@jimp/utils": "^0.22.10" | ||||
|             }, | ||||
|             "peerDependencies": { | ||||
|                 "@jimp/custom": ">=0.3.5" | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@jimp/plugin-mask": { | ||||
|             "version": "0.22.8", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-mask/-/plugin-mask-0.22.8.tgz", | ||||
|             "integrity": "sha512-bhg5+3i8x1CmYj6cjvPBQZLwZEI3iK3gJWF25ZHF+12d3cqDuJngtr8oRQOQLlAgvKmrj9FXIiEPDczUI9cnWQ==", | ||||
|             "version": "0.22.10", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-mask/-/plugin-mask-0.22.10.tgz", | ||||
|             "integrity": "sha512-yRBs1230XZkz24uFTdTcSlZ0HXZpIWzM3iFQN56MzZ7USgdVZjPPDCQ8I9RpqfZ36nDflQkUO0wV7ucsi4ogow==", | ||||
|             "dependencies": { | ||||
|                 "@jimp/utils": "^0.22.8" | ||||
|                 "@jimp/utils": "^0.22.10" | ||||
|             }, | ||||
|             "peerDependencies": { | ||||
|                 "@jimp/custom": ">=0.3.5" | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@jimp/plugin-normalize": { | ||||
|             "version": "0.22.8", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-normalize/-/plugin-normalize-0.22.8.tgz", | ||||
|             "integrity": "sha512-Yg5nreAR1JYuSObu3ExlgaLxVeW6VvjVL5qFwiPFxSNlG8JIwL1Ir3K3ChSnnvymyZvJMHb6YKTYNfXKw5Da6g==", | ||||
|             "version": "0.22.10", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-normalize/-/plugin-normalize-0.22.10.tgz", | ||||
|             "integrity": "sha512-Wk9GX6eJMchX/ZAazVa70Fagu+OXMvHiPY+HrcEwcclL+p1wo8xAHEsf9iKno7Ja4EU9lLhbBRY5hYJyiKMEkg==", | ||||
|             "dependencies": { | ||||
|                 "@jimp/utils": "^0.22.8" | ||||
|                 "@jimp/utils": "^0.22.10" | ||||
|             }, | ||||
|             "peerDependencies": { | ||||
|                 "@jimp/custom": ">=0.3.5" | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@jimp/plugin-print": { | ||||
|             "version": "0.22.8", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-print/-/plugin-print-0.22.8.tgz", | ||||
|             "integrity": "sha512-86O5ejCDi543IYl0TykSmNWErzAjEYhiAxNQb2F7rFRT38WJYNVsvJ6QhxhDQHKxSmF5iwmqbk0jYk5Wp2Z1kw==", | ||||
|             "version": "0.22.10", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-print/-/plugin-print-0.22.10.tgz", | ||||
|             "integrity": "sha512-1U3VloIR+beE1kWPdGEJMiE2h1Do29iv3w8sBbvPyRP4qXxRFcDpmCGtctsrKmb1krlBFlj8ubyAY90xL+5n9w==", | ||||
|             "dependencies": { | ||||
|                 "@jimp/utils": "^0.22.8", | ||||
|                 "@jimp/utils": "^0.22.10", | ||||
|                 "load-bmfont": "^1.4.1" | ||||
|             }, | ||||
|             "peerDependencies": { | ||||
| @@ -382,22 +381,22 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@jimp/plugin-resize": { | ||||
|             "version": "0.22.8", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.22.8.tgz", | ||||
|             "integrity": "sha512-kg8ArQRPqv/iU3DWNXCa8kcVIhoq64Ze0aGCAeFLKlAq/59f5pzAci6m6vV4L/uOVdYmUa9/kYwIFY6RWKpfzQ==", | ||||
|             "version": "0.22.10", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.22.10.tgz", | ||||
|             "integrity": "sha512-ixomxVcnAONXDgaq0opvAx4UAOiEhOA/tipuhFFOvPKFd4yf1BAnEviB5maB0SBHHkJXPUSzDp/73xVTMGSe7g==", | ||||
|             "dependencies": { | ||||
|                 "@jimp/utils": "^0.22.8" | ||||
|                 "@jimp/utils": "^0.22.10" | ||||
|             }, | ||||
|             "peerDependencies": { | ||||
|                 "@jimp/custom": ">=0.3.5" | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@jimp/plugin-rotate": { | ||||
|             "version": "0.22.8", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-0.22.8.tgz", | ||||
|             "integrity": "sha512-9a+VPZWMN/Cks76wf8LjM5RVA3ntP9+NAdsS1SZhhXel7U3Re/dWMouIEbo3QTt6K+igRo4txUCdZiw4ZucvkQ==", | ||||
|             "version": "0.22.10", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-0.22.10.tgz", | ||||
|             "integrity": "sha512-eeFX8dnRyf3LAdsdXWKWuN18hLRg8zy1cP0cP9rHzQVWRK7ck/QsLxK1vHq7MADGwQalNaNTJ9SQxH6c8mz6jw==", | ||||
|             "dependencies": { | ||||
|                 "@jimp/utils": "^0.22.8" | ||||
|                 "@jimp/utils": "^0.22.10" | ||||
|             }, | ||||
|             "peerDependencies": { | ||||
|                 "@jimp/custom": ">=0.3.5", | ||||
| @@ -407,11 +406,11 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@jimp/plugin-scale": { | ||||
|             "version": "0.22.8", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-scale/-/plugin-scale-0.22.8.tgz", | ||||
|             "integrity": "sha512-dQS4pG6DX6endu8zUpvBBOEtGC+ljDDDNw0scSXY71TxyQdNo5Ro0apfsppjmuAr8rNotRkfyxbITKkXQDRUDQ==", | ||||
|             "version": "0.22.10", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-scale/-/plugin-scale-0.22.10.tgz", | ||||
|             "integrity": "sha512-TG/H0oUN69C9ArBCZg4PmuoixFVKIiru8282KzSB/Tp1I0xwX0XLTv3dJ5pobPlIgPcB+TmD4xAIdkCT4rtWxg==", | ||||
|             "dependencies": { | ||||
|                 "@jimp/utils": "^0.22.8" | ||||
|                 "@jimp/utils": "^0.22.10" | ||||
|             }, | ||||
|             "peerDependencies": { | ||||
|                 "@jimp/custom": ">=0.3.5", | ||||
| @@ -419,11 +418,11 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@jimp/plugin-shadow": { | ||||
|             "version": "0.22.8", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-shadow/-/plugin-shadow-0.22.8.tgz", | ||||
|             "integrity": "sha512-HyAhr7OblTQh+BoKHQg4qbS9MweNlH77yfpBqUEyDtfyjI5r06+5chf1ZdLRIPEWv/BdCfdI/g81Wv69muCMwA==", | ||||
|             "version": "0.22.10", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-shadow/-/plugin-shadow-0.22.10.tgz", | ||||
|             "integrity": "sha512-TN9xm6fI7XfxbMUQqFPZjv59Xdpf0tSiAQdINB4g6pJMWiVANR/74OtDONoy3KKpenu5Y38s+FkrtID/KcQAhw==", | ||||
|             "dependencies": { | ||||
|                 "@jimp/utils": "^0.22.8" | ||||
|                 "@jimp/utils": "^0.22.10" | ||||
|             }, | ||||
|             "peerDependencies": { | ||||
|                 "@jimp/custom": ">=0.3.5", | ||||
| @@ -432,11 +431,11 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@jimp/plugin-threshold": { | ||||
|             "version": "0.22.8", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-threshold/-/plugin-threshold-0.22.8.tgz", | ||||
|             "integrity": "sha512-ZmkfH0PtjvF1UcKsjw0H7V6r+LC0yKzEfg76Jhs2nIqIgsxsSOVfHwS7z0/1IWnyXxSw36m+NjCAotNHRILGmA==", | ||||
|             "version": "0.22.10", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugin-threshold/-/plugin-threshold-0.22.10.tgz", | ||||
|             "integrity": "sha512-DA2lSnU0TgIRbAgmXaxroYw3Ad6J2DOFEoJp0NleSm2h3GWbZEE5yW9U2B6hD3iqn4AenG4E2b2WzHXZyzSutw==", | ||||
|             "dependencies": { | ||||
|                 "@jimp/utils": "^0.22.8" | ||||
|                 "@jimp/utils": "^0.22.10" | ||||
|             }, | ||||
|             "peerDependencies": { | ||||
|                 "@jimp/custom": ">=0.3.5", | ||||
| @@ -445,31 +444,31 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@jimp/plugins": { | ||||
|             "version": "0.22.8", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugins/-/plugins-0.22.8.tgz", | ||||
|             "integrity": "sha512-ieI2+kCpmIfjwVlT7B67ULCzxMizfj7LspJh9HnIZCDXQB9GBOZ9KImLYc75Krae0dP/3FR7FglLiSI7fkOHbw==", | ||||
|             "version": "0.22.10", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/plugins/-/plugins-0.22.10.tgz", | ||||
|             "integrity": "sha512-KDMZyM6pmvS8freB+UBLko1TO/k4D7URS/nphCozuH+P7i3UMe7NdckXKJ8u+WD6sqN0YFYvBehpkpnUiw/91w==", | ||||
|             "dependencies": { | ||||
|                 "@jimp/plugin-blit": "^0.22.8", | ||||
|                 "@jimp/plugin-blur": "^0.22.8", | ||||
|                 "@jimp/plugin-circle": "^0.22.8", | ||||
|                 "@jimp/plugin-color": "^0.22.8", | ||||
|                 "@jimp/plugin-contain": "^0.22.8", | ||||
|                 "@jimp/plugin-cover": "^0.22.8", | ||||
|                 "@jimp/plugin-crop": "^0.22.8", | ||||
|                 "@jimp/plugin-displace": "^0.22.8", | ||||
|                 "@jimp/plugin-dither": "^0.22.8", | ||||
|                 "@jimp/plugin-fisheye": "^0.22.8", | ||||
|                 "@jimp/plugin-flip": "^0.22.8", | ||||
|                 "@jimp/plugin-gaussian": "^0.22.8", | ||||
|                 "@jimp/plugin-invert": "^0.22.8", | ||||
|                 "@jimp/plugin-mask": "^0.22.8", | ||||
|                 "@jimp/plugin-normalize": "^0.22.8", | ||||
|                 "@jimp/plugin-print": "^0.22.8", | ||||
|                 "@jimp/plugin-resize": "^0.22.8", | ||||
|                 "@jimp/plugin-rotate": "^0.22.8", | ||||
|                 "@jimp/plugin-scale": "^0.22.8", | ||||
|                 "@jimp/plugin-shadow": "^0.22.8", | ||||
|                 "@jimp/plugin-threshold": "^0.22.8", | ||||
|                 "@jimp/plugin-blit": "^0.22.10", | ||||
|                 "@jimp/plugin-blur": "^0.22.10", | ||||
|                 "@jimp/plugin-circle": "^0.22.10", | ||||
|                 "@jimp/plugin-color": "^0.22.10", | ||||
|                 "@jimp/plugin-contain": "^0.22.10", | ||||
|                 "@jimp/plugin-cover": "^0.22.10", | ||||
|                 "@jimp/plugin-crop": "^0.22.10", | ||||
|                 "@jimp/plugin-displace": "^0.22.10", | ||||
|                 "@jimp/plugin-dither": "^0.22.10", | ||||
|                 "@jimp/plugin-fisheye": "^0.22.10", | ||||
|                 "@jimp/plugin-flip": "^0.22.10", | ||||
|                 "@jimp/plugin-gaussian": "^0.22.10", | ||||
|                 "@jimp/plugin-invert": "^0.22.10", | ||||
|                 "@jimp/plugin-mask": "^0.22.10", | ||||
|                 "@jimp/plugin-normalize": "^0.22.10", | ||||
|                 "@jimp/plugin-print": "^0.22.10", | ||||
|                 "@jimp/plugin-resize": "^0.22.10", | ||||
|                 "@jimp/plugin-rotate": "^0.22.10", | ||||
|                 "@jimp/plugin-scale": "^0.22.10", | ||||
|                 "@jimp/plugin-shadow": "^0.22.10", | ||||
|                 "@jimp/plugin-threshold": "^0.22.10", | ||||
|                 "timm": "^1.6.1" | ||||
|             }, | ||||
|             "peerDependencies": { | ||||
| @@ -477,11 +476,11 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@jimp/png": { | ||||
|             "version": "0.22.8", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/png/-/png-0.22.8.tgz", | ||||
|             "integrity": "sha512-XOj11kcCr8zKg24QSwlRfH9k4hbV6rkMGUVxMS3puRzzB0FBSQy42NBYEfYf2XlY2QJSAByPl4AYerOtKb805w==", | ||||
|             "version": "0.22.10", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/png/-/png-0.22.10.tgz", | ||||
|             "integrity": "sha512-RYinU7tZToeeR2g2qAMn42AU+8OUHjXPKZZ9RkmoL4bguA1xyZWaSdr22/FBkmnHhOERRlr02KPDN1OTOYHLDQ==", | ||||
|             "dependencies": { | ||||
|                 "@jimp/utils": "^0.22.8", | ||||
|                 "@jimp/utils": "^0.22.10", | ||||
|                 "pngjs": "^6.0.0" | ||||
|             }, | ||||
|             "peerDependencies": { | ||||
| @@ -489,9 +488,9 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@jimp/tiff": { | ||||
|             "version": "0.22.8", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.22.8.tgz", | ||||
|             "integrity": "sha512-K0hYUVW5MLgwq3jiHVHa6LvP05J1rXOlRCC+5dMTUnAXVwi45+MKsqA/8lzzwhHYJ65CNhZwy6D3+ZNzM9SIBQ==", | ||||
|             "version": "0.22.10", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.22.10.tgz", | ||||
|             "integrity": "sha512-OaivlSYzpNTHyH/h7pEtl3A7F7TbsgytZs52GLX/xITW92ffgDgT6PkldIrMrET6ERh/hdijNQiew7IoEEr2og==", | ||||
|             "dependencies": { | ||||
|                 "utif2": "^4.0.1" | ||||
|             }, | ||||
| @@ -500,15 +499,15 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@jimp/types": { | ||||
|             "version": "0.22.8", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/types/-/types-0.22.8.tgz", | ||||
|             "integrity": "sha512-9+xc+mzuYwu0i+6dsnhXiUgfcS+Ktqn5q2jczoKyyBT0cOKgsk+57EIeFLgpTfVGRKRR0y/UIdHByeCzGguF3A==", | ||||
|             "version": "0.22.10", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/types/-/types-0.22.10.tgz", | ||||
|             "integrity": "sha512-u/r+XYzbCx4zZukDmxx8S0er3Yq3iDPI6+31WKX0N18i2qPPJYcn8qwIFurfupRumGvJ8SlGLCgt/T+Y8zzUIw==", | ||||
|             "dependencies": { | ||||
|                 "@jimp/bmp": "^0.22.8", | ||||
|                 "@jimp/gif": "^0.22.8", | ||||
|                 "@jimp/jpeg": "^0.22.8", | ||||
|                 "@jimp/png": "^0.22.8", | ||||
|                 "@jimp/tiff": "^0.22.8", | ||||
|                 "@jimp/bmp": "^0.22.10", | ||||
|                 "@jimp/gif": "^0.22.10", | ||||
|                 "@jimp/jpeg": "^0.22.10", | ||||
|                 "@jimp/png": "^0.22.10", | ||||
|                 "@jimp/tiff": "^0.22.10", | ||||
|                 "timm": "^1.6.1" | ||||
|             }, | ||||
|             "peerDependencies": { | ||||
| @@ -516,9 +515,9 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@jimp/utils": { | ||||
|             "version": "0.22.8", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/utils/-/utils-0.22.8.tgz", | ||||
|             "integrity": "sha512-AaqjfqDeLzSFzrbGRKHMXg/ntiWKvoG9tpVgWzgOx5/gPWj/IyGfztojLTTvY8HqZCr25z8z91u2lAQD2v46Jw==", | ||||
|             "version": "0.22.10", | ||||
|             "resolved": "https://registry.npmjs.org/@jimp/utils/-/utils-0.22.10.tgz", | ||||
|             "integrity": "sha512-ztlOK9Mm2iLG2AMoabzM4i3WZ/FtshcgsJCbZCRUs/DKoeS2tySRJTnQZ1b7Roq0M4Ce+FUAxnCAcBV0q7PH9w==", | ||||
|             "dependencies": { | ||||
|                 "regenerator-runtime": "^0.13.3" | ||||
|             } | ||||
| @@ -2069,9 +2068,9 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/gifwrap": { | ||||
|             "version": "0.9.4", | ||||
|             "resolved": "https://registry.npmjs.org/gifwrap/-/gifwrap-0.9.4.tgz", | ||||
|             "integrity": "sha512-MDMwbhASQuVeD4JKd1fKgNgCRL3fGqMM4WaqpNhWO0JiMOAjbQdumbs4BbBZEy9/M00EHEjKN3HieVhCUlwjeQ==", | ||||
|             "version": "0.10.1", | ||||
|             "resolved": "https://registry.npmjs.org/gifwrap/-/gifwrap-0.10.1.tgz", | ||||
|             "integrity": "sha512-2760b1vpJHNmLzZ/ubTtNnEx5WApN/PYWJvXvgS+tL1egTTthayFYIQQNi136FLEDcN/IyEY2EcGpIITD6eYUw==", | ||||
|             "dependencies": { | ||||
|                 "image-q": "^4.0.0", | ||||
|                 "omggif": "^1.0.10" | ||||
| @@ -2456,13 +2455,13 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/jimp": { | ||||
|             "version": "0.22.8", | ||||
|             "resolved": "https://registry.npmjs.org/jimp/-/jimp-0.22.8.tgz", | ||||
|             "integrity": "sha512-pBbrooJMX7795sDcxx1XpwNZC8B/ITyDV+JK2/1qNbQl/1UWqWeh5Dq7qQpMZl5jLdcFDv5IVTM+OhpafSqSFA==", | ||||
|             "version": "0.22.10", | ||||
|             "resolved": "https://registry.npmjs.org/jimp/-/jimp-0.22.10.tgz", | ||||
|             "integrity": "sha512-lCaHIJAgTOsplyJzC1w/laxSxrbSsEBw4byKwXgUdMmh+ayPsnidTblenQm+IvhIs44Gcuvlb6pd2LQ0wcKaKg==", | ||||
|             "dependencies": { | ||||
|                 "@jimp/custom": "^0.22.8", | ||||
|                 "@jimp/plugins": "^0.22.8", | ||||
|                 "@jimp/types": "^0.22.8", | ||||
|                 "@jimp/custom": "^0.22.10", | ||||
|                 "@jimp/plugins": "^0.22.10", | ||||
|                 "@jimp/types": "^0.22.10", | ||||
|                 "regenerator-runtime": "^0.13.3" | ||||
|             } | ||||
|         }, | ||||
| @@ -2719,20 +2718,6 @@ | ||||
|                 "url": "https://github.com/sponsors/ljharb" | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/mkdirp": { | ||||
|             "version": "2.1.6", | ||||
|             "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.6.tgz", | ||||
|             "integrity": "sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==", | ||||
|             "bin": { | ||||
|                 "mkdirp": "dist/cjs/src/bin.js" | ||||
|             }, | ||||
|             "engines": { | ||||
|                 "node": ">=10" | ||||
|             }, | ||||
|             "funding": { | ||||
|                 "url": "https://github.com/sponsors/isaacs" | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/mkdirp-classic": { | ||||
|             "version": "0.5.3", | ||||
|             "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", | ||||
| @@ -3021,18 +3006,6 @@ | ||||
|                 "xml2js": "^0.4.5" | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/parse-bmfont-xml/node_modules/xml2js": { | ||||
|             "version": "0.5.0", | ||||
|             "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", | ||||
|             "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", | ||||
|             "dependencies": { | ||||
|                 "sax": ">=0.6.0", | ||||
|                 "xmlbuilder": "~11.0.0" | ||||
|             }, | ||||
|             "engines": { | ||||
|                 "node": ">=4.0.0" | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/parse-headers": { | ||||
|             "version": "2.0.5", | ||||
|             "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", | ||||
| @@ -3768,10 +3741,11 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/sillytavern-transformers": { | ||||
|             "version": "2.6.2", | ||||
|             "resolved": "https://registry.npmjs.org/sillytavern-transformers/-/sillytavern-transformers-2.6.2.tgz", | ||||
|             "integrity": "sha512-C9l7mEjSHpOMuAAXrCY0r4Mv8FKlrgTr3XV51evybtXc1bk38KzWSyMukFOC+dVCsuTdqBCyjhdBeF4+6mrHzQ==", | ||||
|             "version": "2.7.3", | ||||
|             "resolved": "https://registry.npmjs.org/sillytavern-transformers/-/sillytavern-transformers-2.7.3.tgz", | ||||
|             "integrity": "sha512-vr6BQdLlT3TbCLJdzLt5Sc/MzZ7LWoTzdkkQJgtvKwU3sX1TcnW0Oz23hl211sefWdxwkj/g0RZdvL18hk1Jew==", | ||||
|             "dependencies": { | ||||
|                 "jimp": "^0.22.10", | ||||
|                 "onnxruntime-web": "1.14.0" | ||||
|             }, | ||||
|             "optionalDependencies": { | ||||
| @@ -4214,9 +4188,9 @@ | ||||
|             "integrity": "sha512-9kQ9Q/MPzUV2mye8Tv7vA6vDIPk77rI4AWWm2vSaCyGAEsxqyVZYeVU2MSJY5fLkf6u7G5K343vLxKubOxz16Q==" | ||||
|         }, | ||||
|         "node_modules/whatwg-fetch": { | ||||
|             "version": "3.6.2", | ||||
|             "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", | ||||
|             "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" | ||||
|             "version": "3.6.18", | ||||
|             "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.18.tgz", | ||||
|             "integrity": "sha512-ltN7j66EneWn5TFDO4L9inYC1D+Czsxlrw2SalgjMmEMkLfA5SIZxEFdE6QtHFiiM6Q7WL32c7AkI3w6yxM84Q==" | ||||
|         }, | ||||
|         "node_modules/whatwg-url": { | ||||
|             "version": "5.0.0", | ||||
| @@ -4297,6 +4271,18 @@ | ||||
|             "resolved": "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz", | ||||
|             "integrity": "sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g==" | ||||
|         }, | ||||
|         "node_modules/xml2js": { | ||||
|             "version": "0.5.0", | ||||
|             "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", | ||||
|             "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", | ||||
|             "dependencies": { | ||||
|                 "sax": ">=0.6.0", | ||||
|                 "xmlbuilder": "~11.0.0" | ||||
|             }, | ||||
|             "engines": { | ||||
|                 "node": ">=4.0.0" | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/xmlbuilder": { | ||||
|             "version": "11.0.1", | ||||
|             "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", | ||||
|   | ||||
| @@ -17,7 +17,7 @@ | ||||
|         "gpt3-tokenizer": "^1.1.5", | ||||
|         "ip-matching": "^2.1.2", | ||||
|         "ipaddr.js": "^2.0.1", | ||||
|         "jimp": "^0.22.7", | ||||
|         "jimp": "^0.22.10", | ||||
|         "jquery": "^3.6.4", | ||||
|         "json5": "^2.2.3", | ||||
|         "lodash": "^4.17.21", | ||||
| @@ -31,7 +31,7 @@ | ||||
|         "png-chunks-extract": "^1.0.0", | ||||
|         "response-time": "^2.3.2", | ||||
|         "sanitize-filename": "^1.6.3", | ||||
|         "sillytavern-transformers": "^2.6.2", | ||||
|         "sillytavern-transformers": "^2.7.3", | ||||
|         "simple-git": "^3.19.1", | ||||
|         "uniqolor": "^1.1.0", | ||||
|         "vectra": "^0.2.2", | ||||
|   | ||||
| @@ -5666,3 +5666,9 @@ import('./src/classify.mjs').then(module => { | ||||
| }).catch(err => { | ||||
|     console.error(err); | ||||
| }); | ||||
| // Image captioning | ||||
| import('./src/caption.mjs').then(module => { | ||||
|     module.default.registerEndpoints(app, jsonParser); | ||||
| }).catch(err => { | ||||
|     console.error(err); | ||||
| }); | ||||
|   | ||||
							
								
								
									
										70
									
								
								src/caption.mjs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								src/caption.mjs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,70 @@ | ||||
| import { pipeline, env, RawImage } from 'sillytavern-transformers'; | ||||
| import path from 'path'; | ||||
| import { getConfig } from './util.js'; | ||||
|  | ||||
| // Limit the number of threads to 1 to avoid issues on Android | ||||
| env.backends.onnx.wasm.numThreads = 1; | ||||
|  | ||||
| class PipelineAccessor { | ||||
|     /** | ||||
|      * @type {import("sillytavern-transformers").ImageToTextPipeline} | ||||
|      */ | ||||
|     pipe; | ||||
|  | ||||
|     async get() { | ||||
|         if (!this.pipe) { | ||||
|             const cache_dir = path.join(process.cwd(), 'cache'); | ||||
|             const model = this.getCaptioningModel(); | ||||
|             this.pipe = await pipeline('image-to-text', model, { cache_dir, quantized: true }); | ||||
|         } | ||||
|  | ||||
|         return this.pipe; | ||||
|     } | ||||
|  | ||||
|     getCaptioningModel() { | ||||
|         const DEFAULT_MODEL = 'Xenova/vit-gpt2-image-captioning'; | ||||
|  | ||||
|         try { | ||||
|             const config = getConfig(); | ||||
|             const model = config?.extras?.captioningModel; | ||||
|             return model || DEFAULT_MODEL; | ||||
|         } catch (error) { | ||||
|             console.warn('Failed to read config.conf, using default captioning model.'); | ||||
|             return DEFAULT_MODEL; | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * @param {import("express").Express} app | ||||
|  * @param {any} jsonParser | ||||
|  */ | ||||
| function registerEndpoints(app, jsonParser) { | ||||
|     const pipelineAccessor = new PipelineAccessor(); | ||||
|  | ||||
|     app.post('/api/extra/caption', jsonParser, async (req, res) => { | ||||
|         try { | ||||
|             const { image } = req.body; | ||||
|  | ||||
|             // base64 string to blob | ||||
|             const buffer = Buffer.from(image, 'base64'); | ||||
|             const byteArray = new Uint8Array(buffer); | ||||
|             const blob = new Blob([byteArray]); | ||||
|  | ||||
|             const rawImage = await RawImage.fromBlob(blob); | ||||
|             const pipe = await pipelineAccessor.get(); | ||||
|             const result = await pipe(rawImage); | ||||
|             const text = result[0].generated_text; | ||||
|             console.log('Image caption:', text); | ||||
|  | ||||
|             return res.json({ caption: text }); | ||||
|         } catch (error) { | ||||
|             console.error(error); | ||||
|             return res.sendStatus(500); | ||||
|         } | ||||
|     }); | ||||
| } | ||||
|  | ||||
| export default { | ||||
|     registerEndpoints, | ||||
| }; | ||||
		Reference in New Issue
	
	Block a user