koishi-plugin-aka-ai-generator 0.8.1 → 0.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.js +55 -10
- package/package.json +1 -1
package/lib/index.js
CHANGED
|
@@ -2838,9 +2838,11 @@ ${messages.join("\n")}`;
|
|
|
2838
2838
|
logger.info(`已注册视频风格命令: ${style.commandName}`);
|
|
2839
2839
|
}
|
|
2840
2840
|
}
|
|
2841
|
-
ctx.command(`${COMMANDS.TXT_TO_IMG} [prompt:text]`, "根据文字描述生成图像").option("num", "-n <num:number> 生成图片数量 (1-4)").action(async (
|
|
2841
|
+
ctx.command(`${COMMANDS.TXT_TO_IMG} [prompt:text]`, "根据文字描述生成图像").option("num", "-n <num:number> 生成图片数量 (1-4)").action(async (argv, prompt) => {
|
|
2842
|
+
const { session, options } = argv;
|
|
2842
2843
|
if (!session?.userId) return "会话无效";
|
|
2843
2844
|
const numImages = options?.num || config.defaultNumImages;
|
|
2845
|
+
const modifiers = parseStyleCommandModifiers(argv, prompt, modelMappingIndex);
|
|
2844
2846
|
const userName = session.username || session.userId || "未知用户";
|
|
2845
2847
|
const limitCheck = await userManager.checkAndReserveQuota(session.userId, userName, numImages, config);
|
|
2846
2848
|
if (!limitCheck.allowed) {
|
|
@@ -2849,12 +2851,25 @@ ${messages.join("\n")}`;
|
|
|
2849
2851
|
const requestContext = {
|
|
2850
2852
|
numImages
|
|
2851
2853
|
};
|
|
2852
|
-
|
|
2854
|
+
if (modifiers.modelMapping?.provider) {
|
|
2855
|
+
requestContext.provider = modifiers.modelMapping.provider;
|
|
2856
|
+
}
|
|
2857
|
+
if (modifiers.modelMapping?.modelId) {
|
|
2858
|
+
requestContext.modelId = modifiers.modelMapping.modelId;
|
|
2859
|
+
}
|
|
2860
|
+
const displayInfo = {};
|
|
2861
|
+
if (modifiers.modelMapping?.modelId) {
|
|
2862
|
+
displayInfo.modelId = modifiers.modelMapping.modelId;
|
|
2863
|
+
displayInfo.modelDescription = modifiers.modelMapping.suffix || modifiers.modelMapping.modelId;
|
|
2864
|
+
}
|
|
2865
|
+
return processImageWithTimeout(session, prompt, "", COMMANDS.TXT_TO_IMG, requestContext, displayInfo, "text");
|
|
2853
2866
|
});
|
|
2854
|
-
ctx.command(`${COMMANDS.IMG_TO_IMG} [img:text]`, "使用自定义prompt进行图像处理").option("num", "-n <num:number> 生成图片数量 (1-4)").option("multiple", "-m 允许多图输入").action(async (
|
|
2867
|
+
ctx.command(`${COMMANDS.IMG_TO_IMG} [img:text]`, "使用自定义prompt进行图像处理").option("num", "-n <num:number> 生成图片数量 (1-4)").option("multiple", "-m 允许多图输入").action(async (argv, img) => {
|
|
2868
|
+
const { session, options } = argv;
|
|
2855
2869
|
if (!session?.userId) return "会话无效";
|
|
2856
2870
|
const numImages = options?.num || config.defaultNumImages;
|
|
2857
2871
|
const mode = options?.multiple ? "multiple" : "single";
|
|
2872
|
+
const modifiers = parseStyleCommandModifiers(argv, img, modelMappingIndex);
|
|
2858
2873
|
const userName = session.username || session.userId || "未知用户";
|
|
2859
2874
|
const limitCheck = await userManager.checkAndReserveQuota(session.userId, userName, numImages, config);
|
|
2860
2875
|
if (!limitCheck.allowed) {
|
|
@@ -2863,11 +2878,24 @@ ${messages.join("\n")}`;
|
|
|
2863
2878
|
const requestContext = {
|
|
2864
2879
|
numImages
|
|
2865
2880
|
};
|
|
2866
|
-
|
|
2881
|
+
if (modifiers.modelMapping?.provider) {
|
|
2882
|
+
requestContext.provider = modifiers.modelMapping.provider;
|
|
2883
|
+
}
|
|
2884
|
+
if (modifiers.modelMapping?.modelId) {
|
|
2885
|
+
requestContext.modelId = modifiers.modelMapping.modelId;
|
|
2886
|
+
}
|
|
2887
|
+
const displayInfo = {};
|
|
2888
|
+
if (modifiers.modelMapping?.modelId) {
|
|
2889
|
+
displayInfo.modelId = modifiers.modelMapping.modelId;
|
|
2890
|
+
displayInfo.modelDescription = modifiers.modelMapping.suffix || modifiers.modelMapping.modelId;
|
|
2891
|
+
}
|
|
2892
|
+
return processImageWithTimeout(session, img, "", COMMANDS.IMG_TO_IMG, requestContext, displayInfo, mode);
|
|
2867
2893
|
});
|
|
2868
|
-
ctx.command(COMMANDS.COMPOSE_IMAGE, "合成多张图片,使用自定义prompt控制合成效果").option("num", "-n <num:number> 生成图片数量 (1-4)").action(async (
|
|
2894
|
+
ctx.command(COMMANDS.COMPOSE_IMAGE, "合成多张图片,使用自定义prompt控制合成效果").option("num", "-n <num:number> 生成图片数量 (1-4)").action(async (argv) => {
|
|
2895
|
+
const { session, options } = argv;
|
|
2869
2896
|
if (!session?.userId) return "会话无效";
|
|
2870
2897
|
const userId = session.userId;
|
|
2898
|
+
const modifiers = parseStyleCommandModifiers(argv, void 0, modelMappingIndex);
|
|
2871
2899
|
if (!userManager.startTask(userId)) {
|
|
2872
2900
|
return "您有一个图像处理任务正在进行中,请等待完成";
|
|
2873
2901
|
}
|
|
@@ -2924,15 +2952,31 @@ ${messages.join("\n")}`;
|
|
|
2924
2952
|
return limitCheck.message;
|
|
2925
2953
|
}
|
|
2926
2954
|
if (isTimeout) throw new Error("命令执行超时");
|
|
2955
|
+
const requestContext = {
|
|
2956
|
+
numImages: imageCount
|
|
2957
|
+
};
|
|
2958
|
+
if (modifiers.modelMapping?.provider) {
|
|
2959
|
+
requestContext.provider = modifiers.modelMapping.provider;
|
|
2960
|
+
}
|
|
2961
|
+
if (modifiers.modelMapping?.modelId) {
|
|
2962
|
+
requestContext.modelId = modifiers.modelMapping.modelId;
|
|
2963
|
+
}
|
|
2927
2964
|
logger.info("开始图片合成处理", {
|
|
2928
2965
|
userId,
|
|
2929
2966
|
imageUrls: collectedImages,
|
|
2930
2967
|
prompt,
|
|
2931
2968
|
numImages: imageCount,
|
|
2932
|
-
imageCount: collectedImages.length
|
|
2969
|
+
imageCount: collectedImages.length,
|
|
2970
|
+
modelMapping: modifiers.modelMapping ? { provider: modifiers.modelMapping.provider, modelId: modifiers.modelMapping.modelId } : null
|
|
2933
2971
|
});
|
|
2934
|
-
|
|
2935
|
-
|
|
2972
|
+
let statusMessage = `开始合成图(${collectedImages.length}张)...`;
|
|
2973
|
+
if (modifiers.modelMapping?.modelId) {
|
|
2974
|
+
statusMessage += `
|
|
2975
|
+
使用模型:${modifiers.modelMapping.suffix || modifiers.modelMapping.modelId}`;
|
|
2976
|
+
}
|
|
2977
|
+
statusMessage += `
|
|
2978
|
+
Prompt: ${prompt}`;
|
|
2979
|
+
await session.send(statusMessage);
|
|
2936
2980
|
const generatedImages = [];
|
|
2937
2981
|
let creditDeducted = false;
|
|
2938
2982
|
const onImageGenerated = /* @__PURE__ */ __name(async (imageUrl, index, total) => {
|
|
@@ -2998,9 +3042,10 @@ Prompt: ${prompt}`);
|
|
|
2998
3042
|
hasCallback: !!onImageGenerated,
|
|
2999
3043
|
imageCount,
|
|
3000
3044
|
promptLength: prompt.length,
|
|
3001
|
-
collectedImagesCount: collectedImages.length
|
|
3045
|
+
collectedImagesCount: collectedImages.length,
|
|
3046
|
+
modelId: requestContext.modelId || "default"
|
|
3002
3047
|
});
|
|
3003
|
-
const resultImages = await requestProviderImages(prompt, collectedImages, imageCount,
|
|
3048
|
+
const resultImages = await requestProviderImages(prompt, collectedImages, imageCount, requestContext, onImageGenerated);
|
|
3004
3049
|
logger.info("requestProviderImages 返回 (COMPOSE_IMAGE)", {
|
|
3005
3050
|
userId,
|
|
3006
3051
|
imagesCount: resultImages.length,
|