koishi-plugin-aka-ai-generator 0.1.7 → 0.1.8
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 +38 -8
- package/package.json +1 -1
package/lib/index.js
CHANGED
|
@@ -173,6 +173,8 @@ var YunwuProvider = class {
|
|
|
173
173
|
|
|
174
174
|
// src/providers/gptgod.ts
|
|
175
175
|
var GPTGOD_DEFAULT_API_URL = "https://api.gptgod.online/v1/chat/completions";
|
|
176
|
+
var HTTP_URL_REGEX = /^https?:\/\//i;
|
|
177
|
+
var DATA_URL_REGEX = /^data:image\//i;
|
|
176
178
|
async function downloadImageAsBase642(ctx, url, timeout, logger) {
|
|
177
179
|
try {
|
|
178
180
|
const response = await ctx.http.get(url, {
|
|
@@ -205,6 +207,39 @@ async function downloadImageAsBase642(ctx, url, timeout, logger) {
|
|
|
205
207
|
}
|
|
206
208
|
}
|
|
207
209
|
__name(downloadImageAsBase642, "downloadImageAsBase64");
|
|
210
|
+
function isHttpImage(url) {
|
|
211
|
+
return HTTP_URL_REGEX.test(url);
|
|
212
|
+
}
|
|
213
|
+
__name(isHttpImage, "isHttpImage");
|
|
214
|
+
function isDataImage(url) {
|
|
215
|
+
return DATA_URL_REGEX.test(url);
|
|
216
|
+
}
|
|
217
|
+
__name(isDataImage, "isDataImage");
|
|
218
|
+
async function buildImageContentPart(ctx, url, timeout, logger) {
|
|
219
|
+
if (!url) {
|
|
220
|
+
throw new Error("下载图片失败,请检查图片链接是否有效");
|
|
221
|
+
}
|
|
222
|
+
if (isDataImage(url)) {
|
|
223
|
+
return {
|
|
224
|
+
type: "image_url",
|
|
225
|
+
image_url: { url }
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
if (isHttpImage(url)) {
|
|
229
|
+
return {
|
|
230
|
+
type: "image_url",
|
|
231
|
+
image_url: { url }
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
const { data, mimeType } = await downloadImageAsBase642(ctx, url, timeout, logger);
|
|
235
|
+
return {
|
|
236
|
+
type: "image_url",
|
|
237
|
+
image_url: {
|
|
238
|
+
url: `data:${mimeType};base64,${data}`
|
|
239
|
+
}
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
__name(buildImageContentPart, "buildImageContentPart");
|
|
208
243
|
function parseGptGodResponse(response, logger) {
|
|
209
244
|
try {
|
|
210
245
|
const images = [];
|
|
@@ -377,18 +412,13 @@ var GptGodProvider = class {
|
|
|
377
412
|
}
|
|
378
413
|
];
|
|
379
414
|
for (const url of urls) {
|
|
380
|
-
const
|
|
415
|
+
const imagePart = await buildImageContentPart(
|
|
381
416
|
ctx,
|
|
382
417
|
url,
|
|
383
418
|
this.config.apiTimeout,
|
|
384
419
|
logger
|
|
385
420
|
);
|
|
386
|
-
contentParts.push(
|
|
387
|
-
type: "image_url",
|
|
388
|
-
image_url: {
|
|
389
|
-
url: `data:${mimeType};base64,${data}`
|
|
390
|
-
}
|
|
391
|
-
});
|
|
421
|
+
contentParts.push(imagePart);
|
|
392
422
|
}
|
|
393
423
|
const requestData = {
|
|
394
424
|
model: this.config.modelId,
|
|
@@ -567,7 +597,7 @@ var Config = import_koishi.Schema.intersect([
|
|
|
567
597
|
},
|
|
568
598
|
{
|
|
569
599
|
commandName: "变写实",
|
|
570
|
-
prompt: "请根据用户提供的图片,在严格保持主体身份、外观特征与姿态不变的前提下,生成一张照片级真实感的超写实摄影作品。要求:1. 采用专业相机拍摄(如佳能EOS R5),使用85mm f/1.4人像镜头,呈现柯达Portra 400胶片质感,8K超高清画质,HDR高动态范围,电影级打光效果;2. 画面应具有照片级真实感、超现实主义风格和高细节表现,确保光影、皮肤质感、服饰纹理与背景环境都贴近真实世界;3. 使用自然光影营造真实氛围,呈现raw and natural的原始自然感,具有authentic film snapshot
|
|
600
|
+
prompt: "请根据用户提供的图片,在严格保持主体身份、外观特征与姿态不变的前提下,生成一张照片级真实感的超写实摄影作品。要求:1. 采用专业相机拍摄(如佳能EOS R5),使用85mm f/1.4人像镜头,呈现柯达Portra 400胶片质感,8K超高清画质,HDR高动态范围,电影级打光效果;2. 画面应具有照片级真实感、超现实主义风格和高细节表现,确保光影、皮肤质感、服饰纹理与背景环境都贴近真实世界;3. 使用自然光影营造真实氛围,呈现raw and natural的原始自然感,具有authentic film snapshot的真实胶片质感;4. 整体需具备tactile feel触感质感和simulated texture模拟纹理细节,可以适度优化噪点与瑕疵,但不要改变主体特征或添加额外元素;5. 整体效果需像专业摄影棚拍摄的真实照片,具有电影级画质;6. 如果主体是人物脸部,脸部生成效果应参考欧美混血白人精致美丽帅气英俊的外观特征进行生成,保持精致立体的五官轮廓、健康光泽的肌肤质感、优雅的气质和自然的表情,确保面部特征协调美观。"
|
|
571
601
|
},
|
|
572
602
|
{
|
|
573
603
|
commandName: "生成设定",
|