Update AI Horde client library

This commit is contained in:
Cohee
2024-05-30 21:09:53 +03:00
parent 6228d1d3b1
commit 760af12252
3 changed files with 15 additions and 23 deletions

20
package-lock.json generated
View File

@@ -12,7 +12,7 @@
"dependencies": { "dependencies": {
"@agnai/sentencepiece-js": "^1.1.1", "@agnai/sentencepiece-js": "^1.1.1",
"@agnai/web-tokenizers": "^0.1.3", "@agnai/web-tokenizers": "^0.1.3",
"@zeldafan0225/ai_horde": "^4.0.1", "@zeldafan0225/ai_horde": "^5.1.0",
"archiver": "^7.0.1", "archiver": "^7.0.1",
"bing-translate-api": "^2.9.1", "bing-translate-api": "^2.9.1",
"body-parser": "^1.20.2", "body-parser": "^1.20.2",
@@ -880,12 +880,14 @@
"license": "ISC" "license": "ISC"
}, },
"node_modules/@zeldafan0225/ai_horde": { "node_modules/@zeldafan0225/ai_horde": {
"version": "4.0.1", "version": "5.1.0",
"license": "MIT", "resolved": "https://registry.npmjs.org/@zeldafan0225/ai_horde/-/ai_horde-5.1.0.tgz",
"integrity": "sha512-rPC0nmmFSXK808Oon0zFPA7yGSUKBXiLtMejkmKTyfAzzOHHQt/i2lO4ccfN2e355LzX1lBLwSi+nlATVA43Sw==",
"dependencies": { "dependencies": {
"@thunder04/supermap": "^3.0.2", "@thunder04/supermap": "^3.0.2"
"centra": "^2.5.0", },
"esbuild": "^0.12.28" "engines": {
"node": ">=18.0.0"
} }
}, },
"node_modules/abort-controller": { "node_modules/abort-controller": {
@@ -2122,12 +2124,6 @@
"url": "https://github.com/fb55/entities?sponsor=1" "url": "https://github.com/fb55/entities?sponsor=1"
} }
}, },
"node_modules/esbuild": {
"name": "dry-uninstall",
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/dry-uninstall/-/dry-uninstall-0.3.0.tgz",
"integrity": "sha512-b8h94RVpETWkVV59x62NsY++79bM7Si6Dxq7a4iVxRcJU3ZJJ4vaiC7wUZwM8WDK0ySRL+i+T/1SMAzbJLejYA=="
},
"node_modules/escalade": { "node_modules/escalade": {
"version": "3.1.1", "version": "3.1.1",
"license": "MIT", "license": "MIT",

View File

@@ -2,7 +2,7 @@
"dependencies": { "dependencies": {
"@agnai/sentencepiece-js": "^1.1.1", "@agnai/sentencepiece-js": "^1.1.1",
"@agnai/web-tokenizers": "^0.1.3", "@agnai/web-tokenizers": "^0.1.3",
"@zeldafan0225/ai_horde": "^4.0.1", "@zeldafan0225/ai_horde": "^5.1.0",
"archiver": "^7.0.1", "archiver": "^7.0.1",
"bing-translate-api": "^2.9.1", "bing-translate-api": "^2.9.1",
"body-parser": "^1.20.2", "body-parser": "^1.20.2",
@@ -59,9 +59,6 @@
"axios": { "axios": {
"follow-redirects": "^1.15.4" "follow-redirects": "^1.15.4"
}, },
"@zeldafan0225/ai_horde": {
"esbuild": "npm:dry-uninstall"
},
"node-fetch": { "node-fetch": {
"whatwg-url": "^14.0.0" "whatwg-url": "^14.0.0"
} }

View File

@@ -1,6 +1,6 @@
const fetch = require('node-fetch').default; const fetch = require('node-fetch').default;
const express = require('express'); const express = require('express');
const AIHorde = require('@zeldafan0225/ai_horde'); const { AIHorde, ModelGenerationInputStableSamplers, ModelInterrogationFormTypes, HordeAsyncRequestStates } = require('@zeldafan0225/ai_horde');
const { getVersion, delay, Cache } = require('../util'); const { getVersion, delay, Cache } = require('../util');
const { readSecret, SECRET_KEYS } = require('./secrets'); const { readSecret, SECRET_KEYS } = require('./secrets');
const { jsonParser } = require('../express-common'); const { jsonParser } = require('../express-common');
@@ -191,8 +191,7 @@ router.post('/generate-text', jsonParser, async (request, response) => {
router.post('/sd-samplers', jsonParser, async (_, response) => { router.post('/sd-samplers', jsonParser, async (_, response) => {
try { try {
const ai_horde = await getHordeClient(); const samplers = Object.values(ModelGenerationInputStableSamplers);
const samplers = Object.values(ai_horde.ModelGenerationInputStableSamplers);
response.send(samplers); response.send(samplers);
} catch (error) { } catch (error) {
console.error(error); console.error(error);
@@ -217,7 +216,7 @@ router.post('/caption-image', jsonParser, async (request, response) => {
const ai_horde = await getHordeClient(); const ai_horde = await getHordeClient();
const result = await ai_horde.postAsyncInterrogate({ const result = await ai_horde.postAsyncInterrogate({
source_image: request.body.image, source_image: request.body.image,
forms: [{ name: AIHorde.ModelInterrogationFormTypes.caption }], forms: [{ name: ModelInterrogationFormTypes.caption }],
}, { token: api_key_horde }); }, { token: api_key_horde });
if (!result.id) { if (!result.id) {
@@ -233,7 +232,7 @@ router.post('/caption-image', jsonParser, async (request, response) => {
const status = await ai_horde.getInterrogationStatus(result.id); const status = await ai_horde.getInterrogationStatus(result.id);
console.log(status); console.log(status);
if (status.state === AIHorde.HordeAsyncRequestStates.done) { if (status.state === HordeAsyncRequestStates.done) {
if (status.forms === undefined) { if (status.forms === undefined) {
console.error('Image interrogation request failed: no forms found.'); console.error('Image interrogation request failed: no forms found.');
@@ -251,7 +250,7 @@ router.post('/caption-image', jsonParser, async (request, response) => {
return response.send({ caption }); return response.send({ caption });
} }
if (status.state === AIHorde.HordeAsyncRequestStates.faulted || status.state === AIHorde.HordeAsyncRequestStates.cancelled) { if (status.state === HordeAsyncRequestStates.faulted || status.state === HordeAsyncRequestStates.cancelled) {
console.log('Image interrogation request is not successful.'); console.log('Image interrogation request is not successful.');
return response.sendStatus(503); return response.sendStatus(503);
} }