This commit is contained in:
vastxie
2024-02-04 21:06:59 +08:00
parent 4aaa8d05f7
commit 435fc44522
180 changed files with 790 additions and 1476 deletions

View File

@@ -34,9 +34,9 @@ __decorate([
__metadata("design:type", String)
], MjDrawDto.prototype, "imgUrl", void 0);
__decorate([
(0, swagger_1.ApiProperty)({ example: 1, description: '绘画动作 绘图、放大、变换、图生图' }),
(0, swagger_1.ApiProperty)({ example: 'IMAGINE', description: '任务类型,可用值:IMAGINE,UPSCALE,VARIATION,ZOOM,PAN,DESCRIBE,BLEND,SHORTEN,SWAP_FACE' }),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", Number)
__metadata("design:type", String)
], MjDrawDto.prototype, "action", void 0);
__decorate([
(0, swagger_1.ApiProperty)({ example: 1, description: '变体或者放大的序号' }),
@@ -48,4 +48,9 @@ __decorate([
(0, class_validator_1.IsOptional)(),
__metadata("design:type", Number)
], MjDrawDto.prototype, "drawId", void 0);
__decorate([
(0, swagger_1.ApiProperty)({ example: 1, description: '任务ID' }),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", Number)
], MjDrawDto.prototype, "taskId", void 0);
exports.MjDrawDto = MjDrawDto;

View File

@@ -17,7 +17,6 @@ const common_1 = require("@nestjs/common");
const bull_1 = require("@nestjs/bull");
const utils_1 = require("../../common/utils");
const midjourney_service_1 = require("../midjourney/midjourney.service");
const midjourney_constant_1 = require("../../common/constants/midjourney.constant");
const userBalance_service_1 = require("../userBalance/userBalance.service");
const globalConfig_service_1 = require("../globalConfig/globalConfig.service");
let QueueService = class QueueService {
@@ -33,68 +32,31 @@ let QueueService = class QueueService {
await this.midjourneyService.cleanQueue();
}
async addMjDrawQueue(body, req) {
const { prompt, imgUrl, extraParam, orderId, action = 1, drawId } = body;
const { imgUrl, orderId, action, drawId } = body;
await this.midjourneyService.checkLimit(req);
await this.userBalanceService.validateBalance(req, 'mjDraw', action === 2 ? 1 : 4);
if (action === midjourney_constant_1.MidjourneyActionEnum.DRAW || action === midjourney_constant_1.MidjourneyActionEnum.GENERATE) {
await this.userBalanceService.validateBalance(req, 'mjDraw', action === 'UPSCALE' ? 1 : 4);
if (action === 'IMAGINE') {
const randomDrawId = `${(0, utils_1.createRandomUid)()}`;
const params = Object.assign(Object.assign({}, body), { userId: req.user.id, randomDrawId });
const res = await this.midjourneyService.addDrawQueue(params);
const timeout = (await this.globalConfigService.getConfigs(['mjTimeoutMs'])) || 200000;
const job = await this.mjDrawQueue.add('mjDraw', { id: res.id, action: imgUrl ? 4 : 1, userId: req.user.id }, { delay: 1000, timeout: +timeout });
const job = await this.mjDrawQueue.add('mjDraw', { id: res.id, action: action, userId: req.user.id }, { delay: 1000, timeout: +timeout });
this.jobIds.push(job.id);
return true;
}
else {
const { orderId, action, drawId } = body;
const actionDetail = await this.midjourneyService.getDrawActionDetail(action, drawId, orderId);
const params = Object.assign(Object.assign(Object.assign({}, body), { userId: req.user.id }), actionDetail);
const res = await this.midjourneyService.addDrawQueue(params);
const timeout = (await this.globalConfigService.getConfigs(['mjTimeoutMs'])) || 200000;
const job = await this.mjDrawQueue.add('mjDraw', { id: res.id, action, userId: req.user.id }, { delay: 1000, timeout: +timeout });
this.jobIds.push(job.id);
return;
}
if (!drawId || !orderId) {
throw new common_1.HttpException('缺少必要参数!', common_1.HttpStatus.BAD_REQUEST);
}
if (action === midjourney_constant_1.MidjourneyActionEnum.UPSCALE) {
const actionDetail = await this.midjourneyService.getDrawActionDetail(action, drawId, orderId);
const { custom_id } = actionDetail;
await this.midjourneyService.checkIsUpscale(custom_id);
const params = Object.assign(Object.assign(Object.assign({}, body), { userId: req.user.id }), actionDetail);
const res = await this.midjourneyService.addDrawQueue(params);
const timeout = (await this.globalConfigService.getConfigs(['mjTimeoutMs'])) || 200000;
const job = await this.mjDrawQueue.add('mjDraw', { id: res.id, action, userId: req.user.id }, { delay: 1000, timeout: +timeout });
this.jobIds.push(job.id);
return;
}
if (action === midjourney_constant_1.MidjourneyActionEnum.VARIATION) {
const actionDetail = await this.midjourneyService.getDrawActionDetail(action, drawId, orderId);
const params = Object.assign(Object.assign(Object.assign({}, body), { userId: req.user.id }), actionDetail);
const res = await this.midjourneyService.addDrawQueue(params);
const timeout = (await this.globalConfigService.getConfigs(['mjTimeoutMs'])) || 200000;
const job = await this.mjDrawQueue.add('mjDraw', { id: res.id, action, userId: req.user.id }, { delay: 1000, timeout: +timeout });
this.jobIds.push(job.id);
return;
}
if (action === midjourney_constant_1.MidjourneyActionEnum.REGENERATE) {
const actionDetail = await this.midjourneyService.getDrawActionDetail(action, drawId, orderId);
const params = Object.assign(Object.assign(Object.assign({}, body), { userId: req.user.id }), actionDetail);
const res = await this.midjourneyService.addDrawQueue(params);
const timeout = (await this.globalConfigService.getConfigs(['mjTimeoutMs'])) || 200000;
const job = await this.mjDrawQueue.add('mjDraw', { id: res.id, action, userId: req.user.id }, { delay: 1000, timeout: +timeout });
this.jobIds.push(job.id);
return;
}
if (action === midjourney_constant_1.MidjourneyActionEnum.VARY) {
const actionDetail = await this.midjourneyService.getDrawActionDetail(action, drawId, orderId);
const params = Object.assign(Object.assign(Object.assign({}, body), { userId: req.user.id }), actionDetail);
const res = await this.midjourneyService.addDrawQueue(params);
const timeout = (await this.globalConfigService.getConfigs(['mjTimeoutMs'])) || 200000;
const job = await this.mjDrawQueue.add('mjDraw', { id: res.id, action, userId: req.user.id }, { delay: 1000, timeout: +timeout });
this.jobIds.push(job.id);
return;
}
if (action === midjourney_constant_1.MidjourneyActionEnum.ZOOM) {
const actionDetail = await this.midjourneyService.getDrawActionDetail(action, drawId, orderId);
const params = Object.assign(Object.assign(Object.assign({}, body), { userId: req.user.id }), actionDetail);
const res = await this.midjourneyService.addDrawQueue(params);
const timeout = (await this.globalConfigService.getConfigs(['mjTimeoutMs'])) || 200000;
const job = await this.mjDrawQueue.add('mjDraw', { id: res.id, action, userId: req.user.id }, { delay: 1000, timeout: +timeout });
this.jobIds.push(job.id);
return;
}
}
async getQueue() {
return { jobIds: this.jobIds };