V 2.2.6 增加了MJ的api
This commit is contained in:
+26
-3
@@ -4,6 +4,8 @@ import { DEFINE_STRING } from "../../define/define_string";
|
||||
import { define } from "../../define/define";
|
||||
let fspromises = require("fs").promises;
|
||||
import { gptDefine } from "../../define/gptDefine";
|
||||
import { apiUrl } from "../../define/api/apiUrlDefine";
|
||||
import { successMessage } from "../generalTools";
|
||||
|
||||
export class GPT {
|
||||
constructor(global) {
|
||||
@@ -255,6 +257,18 @@ export class GPT {
|
||||
gpt_key = this.global.config.gpt_key,
|
||||
gpt_model = this.global.config.gpt_model) {
|
||||
try {
|
||||
// 还有自定义的
|
||||
let all_options = (await this.GetGPTBusinessOption("all", (value) => value.gpt_url)).data;
|
||||
// 判断gpt_business 是不是一个http开头的
|
||||
if (!gpt_url.includes("http")) {
|
||||
// 获取对应Id的gpt_url
|
||||
let index = all_options.findIndex(item => item.value == gpt_url && item.gpt_url);
|
||||
if (index < 0) {
|
||||
throw new Error("获取GPT的服务商配置失败");
|
||||
}
|
||||
gpt_url = all_options[index].gpt_url;
|
||||
}
|
||||
|
||||
|
||||
let data = {
|
||||
"model": gpt_model,
|
||||
@@ -268,7 +282,8 @@ export class GPT {
|
||||
url: gpt_url,
|
||||
headers: {
|
||||
'Authorization': `Bearer ${gpt_key}`,
|
||||
'Content-Type': 'application/json'
|
||||
'Content-Type': 'application/json',
|
||||
"Accept": "application/json"
|
||||
},
|
||||
data: JSON.stringify(data)
|
||||
};
|
||||
@@ -317,8 +332,16 @@ export class GPT {
|
||||
* 获取GPT的服务商配置,默认的和自定义的
|
||||
* @returns
|
||||
*/
|
||||
async GetGPTBusinessOption(value) {
|
||||
return await gptDefine.getGptDataByTypeAndProperty(value, "gpt_options", []);
|
||||
async GetGPTBusinessOption(value, callback = null) {
|
||||
let res = await gptDefine.getGptDataByTypeAndProperty(value, "gpt_options", []);
|
||||
if (res.code == 0) {
|
||||
return res;
|
||||
} else {
|
||||
if (callback) {
|
||||
callback(res.data)
|
||||
}
|
||||
return successMessage(res.data)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
import { errorMessage, successMessage } from "../generalTools";
|
||||
import path from "path";
|
||||
import { Tools } from "../tools";
|
||||
|
||||
export class Image {
|
||||
constructor(global) {
|
||||
this.global = global;
|
||||
this.tools = new Tools();
|
||||
}
|
||||
|
||||
// 将指定的文件夹复制到四个文件夹中
|
||||
async OneSplitFour(value) {
|
||||
try {
|
||||
value = JSON.parse(value);
|
||||
let count = value[1];
|
||||
let data = value[0];
|
||||
// 先创建输出文件
|
||||
if (count <= 1) {
|
||||
throw new Error("可选择的图片的数量必须大于1");
|
||||
}
|
||||
for (let i = 1; i < count; i++) {
|
||||
let out_folder = path.join(this.global.config.project_path, `tmp/output_crop_0000${i + 1}`);
|
||||
// 判断当前的文件夹是不是存在,存在删除
|
||||
let isH = await this.tools.checkExists(out_folder);
|
||||
if (isH) {
|
||||
await this.tools.deleteFileOrDirectory(out_folder);
|
||||
}
|
||||
await this.tools.checkFolderExistsOrCreate(out_folder)
|
||||
}
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
const element = data[i];
|
||||
let subImagePath = element.subImagePath;
|
||||
for (let j = 1; j < count; j++) {
|
||||
let out_file = path.join(this.global.config.project_path, `tmp/output_crop_0000${j + 1}/${element.name}`);
|
||||
if (subImagePath[j] && subImagePath[j].startsWith("file")) {
|
||||
subImagePath[j] = subImagePath[j].replace("file://", "");
|
||||
subImagePath[j] = subImagePath[j].replace(/\?time=.*$/, '');
|
||||
}
|
||||
await this.tools.copyFileOrDirectory(subImagePath[j], out_file);
|
||||
}
|
||||
}
|
||||
return successMessage("拆分成功");
|
||||
|
||||
} catch (error) {
|
||||
return errorMessage(error.message);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user