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.
Files changed (2) hide show
  1. package/lib/index.js +55 -10
  2. 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 ({ session, options }, prompt) => {
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
- return processImageWithTimeout(session, prompt, "", COMMANDS.TXT_TO_IMG, requestContext, {}, "text");
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 ({ session, options }, img) => {
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
- return processImageWithTimeout(session, img, "", COMMANDS.IMG_TO_IMG, requestContext, {}, mode);
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 ({ session, options }) => {
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
- await session.send(`开始合成图(${collectedImages.length}张)...
2935
- Prompt: ${prompt}`);
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, void 0, onImageGenerated);
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,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "koishi-plugin-aka-ai-generator",
3
3
  "description": "自用AI生成插件(GPTGod & Yunwu)",
4
- "version": "0.8.1",
4
+ "version": "0.8.3",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
7
7
  "files": [