opt:Optimize the algorithm to check whether Midjourney images can continue to variation

This commit is contained in:
RockYang
2023-08-17 14:20:16 +08:00
parent 2964c1d82e
commit 08d8d65599
11 changed files with 31 additions and 30 deletions

View File

@@ -7,7 +7,7 @@
<div class="chat-item">
<div class="content">
<div class="text" v-html="data.content"></div>
<div class="text" v-html="data.html"></div>
<div class="images" v-if="data.image?.url !== ''">
<el-image :src="data.image?.url"
:zoom-rate="1.0"
@@ -30,7 +30,7 @@
</div>
</div>
<div class="opt" v-if="!data['reference_id'] &&data.image?.hash !== ''">
<div class="opt" v-if="data.showOpt &&data.image?.hash !== ''">
<div class="opt-line">
<ul>
<li><a @click="upscale(1)">U1</a></li>
@@ -86,6 +86,8 @@ if (data.value["image"]?.width > 0) {
height.value = 350 * data.value["image"]?.height / data.value["image"]?.width
localStorage.setItem(cacheKey, height.value)
}
data.value["showOpt"] = data.value["content"]?.indexOf("- Image #") === -1;
// console.log(data.value)
watch(() => props.content, (newVal) => {
data.value = newVal;

View File

@@ -1,19 +1,26 @@
/* eslint-disable no-constant-condition */
import {randString} from "@/utils/libs";
/**
* storage handler
*/
const SessionUserKey = 'SESSION_ID';
const SessionIDKey = 'SESSION_ID';
export function getSessionId() {
return sessionStorage.getItem(SessionUserKey)
let sessionId = sessionStorage.getItem(SessionIDKey)
if (!sessionId) {
sessionId = randString(42)
setSessionId(sessionId)
}
return sessionId
}
export function removeLoginUser() {
sessionStorage.removeItem(SessionUserKey)
sessionStorage.removeItem(SessionIDKey)
}
export function setSessionId(sessionId) {
sessionStorage.setItem(SessionUserKey, sessionId)
sessionStorage.setItem(SessionIDKey, sessionId)
}

View File

@@ -1,4 +1,5 @@
import axios from 'axios'
import {getSessionId} from "@/store/session";
axios.defaults.timeout = 10000
axios.defaults.baseURL = process.env.VUE_APP_API_HOST
@@ -9,7 +10,7 @@ axios.defaults.headers.post['Content-Type'] = 'application/json'
axios.interceptors.request.use(
config => {
// set token
// config.headers['ChatGPT-TOKEN'] = getSessionId();
config.headers['Chat-Token'] = getSessionId();
return config
}, error => {
return Promise.reject(error)

View File

@@ -534,7 +534,7 @@ const connect = function (chat_id, role_id) {
} else { // 加载聊天记录
loadChatHistory(chat_id);
}
});
_socket.addEventListener('message', event => {
@@ -554,7 +554,7 @@ const connect = function (chat_id, role_id) {
disableInput(true)
const content = data.content;
const md = require('markdown-it')({breaks: true});
content.content = md.render(content.content)
content.html = md.render(content.content)
let key = content.key
// fixed bug: 执行 Upscale 和 Variation 操作的时候覆盖之前的绘画
if (content.status === "Finished") {
@@ -773,7 +773,7 @@ const loadChatHistory = function (chatId) {
continue;
} else if (data[i].type === "mj") {
data[i].content = JSON.parse(data[i].content)
data[i].content.content = md.render(data[i].content?.content)
data[i].content.html = md.render(data[i].content?.content)
chatData.value.push(data[i]);
continue;
}

View File

@@ -52,7 +52,6 @@ import {onMounted, ref} from "vue";
import {Lock, UserFilled} from "@element-plus/icons-vue";
import {httpPost} from "@/utils/http";
import {ElMessage} from "element-plus";
import {setSessionId} from "@/store/session";
import {useRouter} from "vue-router";
import FooterBar from "@/components/FooterBar.vue";
import {isMobile} from "@/utils/libs";
@@ -78,8 +77,7 @@ const login = function () {
return ElMessage.error('请输入密码');
}
httpPost('/api/user/login', {username: username.value.trim(), password: password.value.trim()}).then((res) => {
setSessionId(res.data)
httpPost('/api/user/login', {username: username.value.trim(), password: password.value.trim()}).then(() => {
if (isMobile()) {
router.push('/mobile')
} else {