fix: add core jimeng
This commit is contained in:
51
src/jimeng/core.ts
Normal file
51
src/jimeng/core.ts
Normal file
@@ -0,0 +1,51 @@
|
||||
import { adapter } from '@kevisual/query/query'
|
||||
export type CoreOpts = {
|
||||
baseURL?: string;
|
||||
token?: string;
|
||||
}
|
||||
export class Core {
|
||||
baseURL: string = 'https://jimeng-api.kevisual.cn/v1';
|
||||
token?: string;
|
||||
constructor(opts: CoreOpts = {}) {
|
||||
console.log("Core initialized");
|
||||
if (opts.baseURL) {
|
||||
this.baseURL = opts.baseURL;
|
||||
}
|
||||
if (opts.token) {
|
||||
this.token = opts.token;
|
||||
}
|
||||
}
|
||||
makeHeader() {
|
||||
return {
|
||||
Authorization: this.token ? `Bearer ${this.token}` : undefined,
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
}
|
||||
generateImage({ model = 'jimeng-4.0', prompt, resolution = '2k' }: ImageOptions) {
|
||||
const url = `${this.baseURL}/images/generations`;
|
||||
return adapter({
|
||||
url,
|
||||
headers: this.makeHeader(),
|
||||
body: {
|
||||
model,
|
||||
prompt,
|
||||
resolution
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export type ImageOptions = {
|
||||
model?: string;
|
||||
prompt: string;
|
||||
/**
|
||||
* 宽高比,如 "16:9", "4:3", "1:1" 等
|
||||
*/
|
||||
ratio?: string;
|
||||
/**
|
||||
*
|
||||
* 图片分辨率,如 "1024x768", "512x512" 等
|
||||
* 4k 2k
|
||||
*/
|
||||
resolution?: string;
|
||||
}
|
||||
7
src/jimeng/index.ts
Normal file
7
src/jimeng/index.ts
Normal file
@@ -0,0 +1,7 @@
|
||||
import { Core, CoreOpts } from "./core.ts";
|
||||
|
||||
export class Jimen extends Core {
|
||||
constructor(opts: CoreOpts = {}) {
|
||||
super(opts);
|
||||
}
|
||||
}
|
||||
18
src/test/common.ts
Normal file
18
src/test/common.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
import { Jimen } from "../jimeng/index.ts"
|
||||
import dotenv from 'dotenv';
|
||||
dotenv.config();
|
||||
|
||||
const jimeng = new Jimen({
|
||||
token: process.env.JIMENG_TOKEN,
|
||||
})
|
||||
|
||||
console.log("Generating image...");
|
||||
|
||||
await jimeng.generateImage({
|
||||
prompt: "创建一幅未来城市的数字艺术作品,充满科技感和创新元素,色彩鲜艳,细节丰富",
|
||||
resolution: "2k"
|
||||
}).then((res) => {
|
||||
console.log("Image generation response:", res);
|
||||
}).catch((err) => {
|
||||
console.error("Error generating image:", err);
|
||||
});
|
||||
Reference in New Issue
Block a user