{{ t('community.mine.tabs.posts') }}
From 3773f456fd59d0c1fbec3df53acd69543ae78bdd Mon Sep 17 00:00:00 2001
From: "lin8780860@163.com"
Date: Sat, 17 May 2025 12:34:13 +0800
Subject: [PATCH 06/20] =?UTF-8?q?=E4=BF=AE=E6=94=B9siliconflow=E7=99=BB?=
=?UTF-8?q?=E5=BD=95=E7=9A=84clientId?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/views/btnApiKey/apiKeyDialog.vue | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/src/views/btnApiKey/apiKeyDialog.vue b/src/views/btnApiKey/apiKeyDialog.vue
index cb840ea8..cc96d8ba 100644
--- a/src/views/btnApiKey/apiKeyDialog.vue
+++ b/src/views/btnApiKey/apiKeyDialog.vue
@@ -90,14 +90,13 @@
const closeDialog = () => {
statusStore.handleApiKeyDialog(false)
}
-
const openOAuthPopup = async (setKey: (key: string) => void) => {
- const clientId = 'SFIW4myD4HvRT9u9HF12hk'
+ const clientId = 'SFtNABXGEb5rZxogl8p3cM'
const ACCOUNT_ENDPOINT = 'https://account.siliconflow.cn'
const authUrl = `${ACCOUNT_ENDPOINT}/oauth?client_id=${clientId}`
const popup = window.open(authUrl, 'oauthPopup', 'width=600,height=600')
window.addEventListener('message', event => {
- if (event.data.length > 0 && event.data[0]['secretKey'] !== undefined) {
+ if (event.data.length > 0 && event.data[1]['secretKey'] !== undefined) {
setKey(event.data[0]['secretKey'])
if (popup) {
popup.close()
From 570ac7be611c2dcde66b7a0badd7e1d98896b19b Mon Sep 17 00:00:00 2001
From: "lin8780860@163.com"
Date: Sat, 17 May 2025 12:41:49 +0800
Subject: [PATCH 07/20] fix
---
src/views/btnApiKey/apiKeyDialog.vue | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/views/btnApiKey/apiKeyDialog.vue b/src/views/btnApiKey/apiKeyDialog.vue
index cc96d8ba..13bef960 100644
--- a/src/views/btnApiKey/apiKeyDialog.vue
+++ b/src/views/btnApiKey/apiKeyDialog.vue
@@ -96,7 +96,7 @@
const authUrl = `${ACCOUNT_ENDPOINT}/oauth?client_id=${clientId}`
const popup = window.open(authUrl, 'oauthPopup', 'width=600,height=600')
window.addEventListener('message', event => {
- if (event.data.length > 0 && event.data[1]['secretKey'] !== undefined) {
+ if (event.data.length > 0 && event.data[0]['secretKey'] !== undefined) {
setKey(event.data[0]['secretKey'])
if (popup) {
popup.close()
From 289837ef86818948a161fbd864a33c99e7c5f192 Mon Sep 17 00:00:00 2001
From: "lin8780860@163.com"
Date: Sat, 17 May 2025 12:42:56 +0800
Subject: [PATCH 08/20] fix
---
version.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/version.txt b/version.txt
index 3c43790f..c04c650a 100644
--- a/version.txt
+++ b/version.txt
@@ -1 +1 @@
-1.2.6
+1.2.7
From 897665234fd59adc39f46a4e3deceb877aa6dd0f Mon Sep 17 00:00:00 2001
From: "lin8780860@163.com"
Date: Fri, 6 Jun 2025 17:09:21 +0800
Subject: [PATCH 09/20] fix
---
package-lock.json | 15 +++++++++++++++
package.json | 2 ++
src/App.vue | 7 ++++++-
src/api/user.ts | 2 ++
src/main.ts | 21 +++++++++++++++++++--
src/stores/notificationStore.ts | 11 +++++++++++
src/stores/userStatus.ts | 16 +++++++++++++---
src/utils/customFetch.ts | 15 ++++++++++++++-
8 files changed, 82 insertions(+), 7 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 769a81bc..aa89d0a2 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -11,6 +11,7 @@
"@fortawesome/fontawesome-svg-core": "^6.6.0",
"@fortawesome/free-solid-svg-icons": "^6.6.0",
"@fortawesome/vue-fontawesome": "^3.0.8",
+ "@types/js-cookie": "^3.0.6",
"@types/qrcode": "^1.5.5",
"@vee-validate/zod": "^4.14.6",
"@vueuse/core": "^11.2.0",
@@ -24,6 +25,7 @@
"file-saver": "^2.0.5",
"hash-wasm": "^4.12.0",
"highlight.js": "^11.10.0",
+ "js-cookie": "^3.0.5",
"jszip": "^3.10.1",
"katex": "^0.16.11",
"lucide-vue-next": "^0.454.0",
@@ -2112,6 +2114,11 @@
"resolved": "https://registry.npmmirror.com/@types/geojson/-/geojson-7946.0.14.tgz",
"integrity": "sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg=="
},
+ "node_modules/@types/js-cookie": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@types/js-cookie/-/js-cookie-3.0.6.tgz",
+ "integrity": "sha512-wkw9yd1kEXOPnvEeEV1Go1MmxtBJL0RR79aOTAApecWFVu7w0NNXNqhcWgvw2YgZDYadliXkl14pa3WXw5jlCQ=="
+ },
"node_modules/@types/katex": {
"version": "0.16.7",
"resolved": "https://registry.npmmirror.com/@types/katex/-/katex-0.16.7.tgz",
@@ -5172,6 +5179,14 @@
"resolved": "https://registry.npmmirror.com/js-base64/-/js-base64-2.6.4.tgz",
"integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ=="
},
+ "node_modules/js-cookie": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz",
+ "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==",
+ "engines": {
+ "node": ">=14"
+ }
+ },
"node_modules/js-tokens": {
"version": "9.0.0",
"resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-9.0.0.tgz",
diff --git a/package.json b/package.json
index b3fffcf8..be4a5ffe 100644
--- a/package.json
+++ b/package.json
@@ -15,6 +15,7 @@
"@fortawesome/fontawesome-svg-core": "^6.6.0",
"@fortawesome/free-solid-svg-icons": "^6.6.0",
"@fortawesome/vue-fontawesome": "^3.0.8",
+ "@types/js-cookie": "^3.0.6",
"@types/qrcode": "^1.5.5",
"@vee-validate/zod": "^4.14.6",
"@vueuse/core": "^11.2.0",
@@ -28,6 +29,7 @@
"file-saver": "^2.0.5",
"hash-wasm": "^4.12.0",
"highlight.js": "^11.10.0",
+ "js-cookie": "^3.0.5",
"jszip": "^3.10.1",
"katex": "^0.16.11",
"lucide-vue-next": "^0.454.0",
diff --git a/src/App.vue b/src/App.vue
index 4b4643bf..cca4ca76 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -168,7 +168,7 @@
import { useCommunityStore } from '@/stores/communityStore'
import { get_share_code } from '@/api/model'
- import { get_user_language_profile, put_user_language_profile } from '@/api/user'
+ import { get_user_language_profile, put_user_language_profile, server_mode } from '@/api/user'
import ModelDetail from '@/components/community/detail/Index.vue'
import { useToaster } from '@/components/modules/toats/index'
@@ -182,6 +182,11 @@
const getUserLanguageProfile = async () => {
try {
+ const serverModeRes = await server_mode()
+ const isServerMode = serverModeRes?.data?.server_mode
+ if (isServerMode) {
+ return
+ }
const res = await get_user_language_profile()
if (res.data?.global?.lang) {
const userLang = res.data.global.lang
diff --git a/src/api/user.ts b/src/api/user.ts
index a33d54fc..fafdbb6e 100644
--- a/src/api/user.ts
+++ b/src/api/user.ts
@@ -43,3 +43,5 @@ export const get_coins = (param: any) =>
customFetch(`/bizyair/user/coins?${new URLSearchParams(param).toString()}`, { method: 'GET' })
export const logout = () => customFetch(`/bizyair/user/logout`, { method: 'POST' })
+
+export const server_mode = () => customFetch(`/bizyair/server_mode`, { method: 'GET' }, false, false)
\ No newline at end of file
diff --git a/src/main.ts b/src/main.ts
index bb54175a..bf2adccf 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -9,6 +9,7 @@ import { createI18n } from 'vue-i18n'
import enMessages from './locales/en.json'
import zhMessages from './locales/zh.json'
import { useSidebarStore } from '@/stores/sidebarStore'
+import { server_mode } from '@/api/user'
// 创建i18n实例
const i18n = createI18n({
@@ -234,10 +235,26 @@ app.directive('debounce', {
}
})
+
export function mount(container: string | Element, comfyUIApp?: any) {
app.provide('comfyUIApp', comfyUIApp)
- app.use(i18n)
- app.mount(container)
+ server_mode().then((res) => {
+ console.log('server_mode100', res)
+ if (!res.data.server_mode) {
+
+ app.use(i18n)
+ app.mount(container)
+ } else {
+ const timer = setInterval(() => {
+ const authToken = document.cookie.split(';').find(cookie => cookie.trim().startsWith('bizy_token='))
+ if (authToken) {
+ clearInterval(timer)
+ app.use(i18n)
+ app.mount(container)
+ }
+ }, 300)
+ }
+ })
}
export function unmount() {
diff --git a/src/stores/notificationStore.ts b/src/stores/notificationStore.ts
index 61e04ea2..fb8cbdfe 100644
--- a/src/stores/notificationStore.ts
+++ b/src/stores/notificationStore.ts
@@ -7,6 +7,7 @@ import {
get_message_unread_count
} from '@/api/message-box'
import { useDictStore } from './dictStore'
+import { server_mode } from '@/api/user'
export const useNotificationStore = defineStore('notification', {
state: () => ({
@@ -375,6 +376,11 @@ export const useNotificationStore = defineStore('notification', {
async loadUnreadCount() {
try {
+ const serverModeRes = await server_mode()
+ const isServerMode = serverModeRes?.data?.server_mode
+ if (isServerMode) {
+ return
+ }
const res = await get_message_unread_count()
if (res?.data && res?.data.types && res?.data.counts) {
this.officialNoticesUnReadCount = 0
@@ -416,6 +422,11 @@ export const useNotificationStore = defineStore('notification', {
},
async loadUnreadCountWithError() {
try {
+ const serverModeRes = await server_mode()
+ const isServerMode = serverModeRes?.data?.server_mode
+ if (isServerMode) {
+ return
+ }
const res = await get_message_unread_count()
if (res?.data && res?.data.types && res?.data.counts) {
this.officialNoticesUnReadCount = 0
diff --git a/src/stores/userStatus.ts b/src/stores/userStatus.ts
index c983d97d..a20e5454 100644
--- a/src/stores/userStatus.ts
+++ b/src/stores/userStatus.ts
@@ -1,5 +1,5 @@
import { defineStore } from 'pinia'
-import { get_user_info, get_metadata, get_coins, get_wallet, logout } from '@/api/user'
+import { get_user_info, get_metadata, get_coins, get_wallet, logout, server_mode } from '@/api/user'
// , put_smetadata, post_real_name, get_wallet, get_coins
import { WebSocketClient } from '@/utils/socket.ts'
// import useClipboard from 'vue-clipboard3'
@@ -88,7 +88,12 @@ export const useStatusStore = defineStore('userStatus', {
coinsListTitle: ''
}),
actions: {
- loginRefresh(isLoading?: string) {
+ async loginRefresh(isLoading?: string) {
+ const serverModeRes = await server_mode()
+ const isServerMode = serverModeRes?.data?.server_mode
+ if (isServerMode) {
+ return
+ }
get_user_info()
.then((info: { data: any }) => {
if (info !== null) {
@@ -105,7 +110,12 @@ export const useStatusStore = defineStore('userStatus', {
this.get_wallet()
}
},
- sendSocket(fn: (res: any) => void) {
+ async sendSocket(fn: (res: any) => void) {
+ const serverModeRes = await server_mode()
+ const isServerMode = serverModeRes?.data?.server_mode
+ if (isServerMode) {
+ return
+ }
const wsClient = new WebSocketClient(
`/bizyair/ws?clientId=${sessionStorage.getItem('clientId')}`,
[]
diff --git a/src/utils/customFetch.ts b/src/utils/customFetch.ts
index 8876618c..fc491a11 100644
--- a/src/utils/customFetch.ts
+++ b/src/utils/customFetch.ts
@@ -1,4 +1,5 @@
import { useToaster } from '@/components/modules/toats/index'
+import Cookies from 'js-cookie'
const fetchCache = new Map()
@@ -14,9 +15,21 @@ export function customFetch(url: string, options = {}, needDebounce = true, need
fetchCache.set(url, now)
}
+ // 添加自定义header
+ const headers = {
+ 'Content-Type': 'application/json',
+ 'api_key': Cookies.get('bizy_token') || '',
+ ...(options as any)?.headers
+ }
+
+ const updatedOptions = {
+ ...options,
+ headers
+ }
+
const host = `${window.location.origin}${window.location.pathname === '/' ? '' : window.location.pathname}`
return window
- .fetch(`${host}${url}`, options)
+ .fetch(`${host}${url}`, updatedOptions)
.then(response => {
if (response.status === 404) {
useToaster.error(
From 5db91d7d7987f656ce38f34d294b9ae1a968d5d0 Mon Sep 17 00:00:00 2001
From: doombeaker <3351623+doombeaker@users.noreply.github.com>
Date: Fri, 6 Jun 2025 09:23:00 +0000
Subject: [PATCH 10/20] auto prettier format code
---
src/api/user.ts | 3 ++-
src/main.ts | 8 ++++----
src/utils/customFetch.ts | 4 ++--
3 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/src/api/user.ts b/src/api/user.ts
index fafdbb6e..3848e74f 100644
--- a/src/api/user.ts
+++ b/src/api/user.ts
@@ -44,4 +44,5 @@ export const get_coins = (param: any) =>
export const logout = () => customFetch(`/bizyair/user/logout`, { method: 'POST' })
-export const server_mode = () => customFetch(`/bizyair/server_mode`, { method: 'GET' }, false, false)
\ No newline at end of file
+export const server_mode = () =>
+ customFetch(`/bizyair/server_mode`, { method: 'GET' }, false, false)
diff --git a/src/main.ts b/src/main.ts
index bf2adccf..9c823252 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -235,18 +235,18 @@ app.directive('debounce', {
}
})
-
export function mount(container: string | Element, comfyUIApp?: any) {
app.provide('comfyUIApp', comfyUIApp)
- server_mode().then((res) => {
+ server_mode().then(res => {
console.log('server_mode100', res)
if (!res.data.server_mode) {
-
app.use(i18n)
app.mount(container)
} else {
const timer = setInterval(() => {
- const authToken = document.cookie.split(';').find(cookie => cookie.trim().startsWith('bizy_token='))
+ const authToken = document.cookie
+ .split(';')
+ .find(cookie => cookie.trim().startsWith('bizy_token='))
if (authToken) {
clearInterval(timer)
app.use(i18n)
diff --git a/src/utils/customFetch.ts b/src/utils/customFetch.ts
index fc491a11..84668028 100644
--- a/src/utils/customFetch.ts
+++ b/src/utils/customFetch.ts
@@ -18,10 +18,10 @@ export function customFetch(url: string, options = {}, needDebounce = true, need
// 添加自定义header
const headers = {
'Content-Type': 'application/json',
- 'api_key': Cookies.get('bizy_token') || '',
+ api_key: Cookies.get('bizy_token') || '',
...(options as any)?.headers
}
-
+
const updatedOptions = {
...options,
headers
From 807e2ec97d48957b7f1949dbed0a4edabcc5f38c Mon Sep 17 00:00:00 2001
From: "lin8780860@163.com"
Date: Fri, 6 Jun 2025 18:00:43 +0800
Subject: [PATCH 11/20] fix
---
version.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/version.txt b/version.txt
index 9d4f8239..c1147005 100644
--- a/version.txt
+++ b/version.txt
@@ -1 +1 @@
-1.2.9
+1.2.11
From 78298485280061fb18ec4762c6758e72f6558bb0 Mon Sep 17 00:00:00 2001
From: "lin8780860@163.com"
Date: Fri, 6 Jun 2025 22:42:42 +0800
Subject: [PATCH 12/20] fix
---
src/utils/customFetch.ts | 2 +-
version.txt | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/utils/customFetch.ts b/src/utils/customFetch.ts
index 84668028..46ac88f3 100644
--- a/src/utils/customFetch.ts
+++ b/src/utils/customFetch.ts
@@ -18,7 +18,7 @@ export function customFetch(url: string, options = {}, needDebounce = true, need
// 添加自定义header
const headers = {
'Content-Type': 'application/json',
- api_key: Cookies.get('bizy_token') || '',
+ 'Authorization': Cookies.get('bizy_token') || '',
...(options as any)?.headers
}
diff --git a/version.txt b/version.txt
index c1147005..963ed7cf 100644
--- a/version.txt
+++ b/version.txt
@@ -1 +1 @@
-1.2.11
+1.2.10
From 4a4bc510ee03bc38589cd49cbe1cb960c2a133ac Mon Sep 17 00:00:00 2001
From: linjm8780860 <11494038+linjm8780860@users.noreply.github.com>
Date: Fri, 6 Jun 2025 14:48:56 +0000
Subject: [PATCH 13/20] auto prettier format code
---
src/utils/customFetch.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/utils/customFetch.ts b/src/utils/customFetch.ts
index 46ac88f3..1da83117 100644
--- a/src/utils/customFetch.ts
+++ b/src/utils/customFetch.ts
@@ -18,7 +18,7 @@ export function customFetch(url: string, options = {}, needDebounce = true, need
// 添加自定义header
const headers = {
'Content-Type': 'application/json',
- 'Authorization': Cookies.get('bizy_token') || '',
+ Authorization: Cookies.get('bizy_token') || '',
...(options as any)?.headers
}
From 9f1cb715b17dee9e5d675d1738976a24a23a8148 Mon Sep 17 00:00:00 2001
From: "lin8780860@163.com"
Date: Fri, 13 Jun 2025 11:31:08 +0800
Subject: [PATCH 14/20] fix
---
bizyui/js/apply_image_to_node.js | 21 +++++++++++++++++++--
bizyui/js/model_apply.js | 22 ++++++++++++++++++++--
bizyui/js/siliconcloud_llm_api.js | 22 ++++++++++++++++++++++
bizyui/js/subassembly/tools.js | 7 +++++++
4 files changed, 68 insertions(+), 4 deletions(-)
diff --git a/bizyui/js/apply_image_to_node.js b/bizyui/js/apply_image_to_node.js
index 9ea71c5f..9bff77e9 100644
--- a/bizyui/js/apply_image_to_node.js
+++ b/bizyui/js/apply_image_to_node.js
@@ -1,5 +1,5 @@
import { app } from "../../scripts/app.js";
-
+import { getCookie } from "./subassembly/tools.js";
function inspectNode(node) {
console.log('节点信息:', {
@@ -38,6 +38,20 @@ window.addEventListener('message', async function(event) {
return;
}
+ // 等待token可用
+ const token = await new Promise((resolve) => {
+ const checkToken = () => {
+ const token = getCookie("bizy_token");
+ if (token) {
+ clearInterval(timer);
+ resolve(token);
+ }
+ };
+
+ const timer = setInterval(checkToken, 300);
+ checkToken(); // 立即执行一次检查
+ });
+
// 保存原始节点大小
const originalSize = targetNode.size ? [...targetNode.size] : null;
@@ -88,7 +102,10 @@ window.addEventListener('message', async function(event) {
// 发送请求
const response = await fetch('/upload/image', {
method: 'POST',
- body: formData
+ body: formData,
+ headers: {
+ "Authorization": `Bearer ${token}`
+ }
});
if (!response.ok) {
diff --git a/bizyui/js/model_apply.js b/bizyui/js/model_apply.js
index 32dabcc6..cee214d6 100644
--- a/bizyui/js/model_apply.js
+++ b/bizyui/js/model_apply.js
@@ -3,7 +3,7 @@ import { app } from "../../scripts/app.js";
import './bizyair_frontend.js'
import './apply_image_to_node.js'
import { hideWidget } from './subassembly/tools.js'
-
+import { getCookie } from './subassembly/tools.js'
const possibleWidgetNames=[
"clip_name",
"clip_name1",
@@ -37,8 +37,26 @@ const NodeInfoLogger = (function() {
// 获取图片并转换为base64
const getImageAsBase64 = async (filename, type) => {
try {
+ // 等待token可用
+ const token = await new Promise((resolve) => {
+ const checkToken = () => {
+ const token = getCookie("bizy_token");
+ if (token) {
+ clearInterval(timer);
+ resolve(token);
+ }
+ };
+
+ const timer = setInterval(checkToken, 300);
+ checkToken(); // 立即执行一次检查
+ });
+
const imageUrl = buildImageUrl(filename, type);
- const response = await fetch(imageUrl);
+ const response = await fetch(imageUrl, {
+ headers: {
+ "Authorization": `Bearer ${token}`
+ }
+ });
if (!response.ok) {
throw new Error(`获取图片失败: ${response.status} ${response.statusText}`);
}
diff --git a/bizyui/js/siliconcloud_llm_api.js b/bizyui/js/siliconcloud_llm_api.js
index 551c8a5d..d58b5171 100644
--- a/bizyui/js/siliconcloud_llm_api.js
+++ b/bizyui/js/siliconcloud_llm_api.js
@@ -1,4 +1,5 @@
import { app } from "../../scripts/app.js";
+import { getCookie } from "./subassembly/tools.js";
const createModelFetchExtension = (nodeName, endpoint) => {
return {
@@ -14,11 +15,32 @@ const createModelFetchExtension = (nodeName, endpoint) => {
const modelWidget = this.widgets.find((w) => w.name === "model");
const fetchModels = async () => {
+ try {
+ return new Promise((resolve) => {
+ const checkToken = () => {
+ const token = getCookie("bizy_token");
+ if (token) {
+ clearInterval(timer);
+ fetchWithToken(token).then(resolve);
+ }
+ };
+
+ const timer = setInterval(checkToken, 300);
+ checkToken(); // 立即执行一次检查
+ });
+ } catch (error) {
+ console.error(`Error fetching ${nodeName} models`, error);
+ return [];
+ }
+ };
+
+ const fetchWithToken = async (token) => {
try {
const response = await fetch(endpoint, {
method: "POST",
headers: {
"Content-Type": "application/json",
+ "Authorization": `Bearer ${token}`,
},
body: JSON.stringify({}),
});
diff --git a/bizyui/js/subassembly/tools.js b/bizyui/js/subassembly/tools.js
index 26d91694..81a4f19c 100644
--- a/bizyui/js/subassembly/tools.js
+++ b/bizyui/js/subassembly/tools.js
@@ -16,3 +16,10 @@ export const hideWidget = (node, widget_name) => {
widget.height = undefined;
};
}
+
+export function getCookie(name) {
+ const value = `; ${document.cookie}`;
+ const parts = value.split(`; ${name}=`);
+ if (parts.length === 2) return parts.pop().split(';').shift();
+ return null;
+}
\ No newline at end of file
From 6022b9811ca7e683cb342b1aaf6f5cfc9407e893 Mon Sep 17 00:00:00 2001
From: "lin8780860@163.com"
Date: Fri, 13 Jun 2025 11:53:19 +0800
Subject: [PATCH 15/20] fix
---
bizyui/js/apply_image_to_node.js | 42 ++++++++++++++++-----------
bizyui/js/model_apply.js | 42 ++++++++++++++++-----------
bizyui/js/siliconcloud_llm_api.js | 48 ++++++++++++++++++++-----------
src/main.ts | 1 -
4 files changed, 84 insertions(+), 49 deletions(-)
diff --git a/bizyui/js/apply_image_to_node.js b/bizyui/js/apply_image_to_node.js
index 9bff77e9..dbfbd2df 100644
--- a/bizyui/js/apply_image_to_node.js
+++ b/bizyui/js/apply_image_to_node.js
@@ -38,19 +38,26 @@ window.addEventListener('message', async function(event) {
return;
}
- // 等待token可用
- const token = await new Promise((resolve) => {
- const checkToken = () => {
- const token = getCookie("bizy_token");
- if (token) {
- clearInterval(timer);
- resolve(token);
- }
- };
-
- const timer = setInterval(checkToken, 300);
- checkToken(); // 立即执行一次检查
- });
+ // 检查服务器模式
+ const serverModeResponse = await fetch("/bizyair/server_mode");
+ const serverModeData = await serverModeResponse.json();
+
+ let token = null;
+ if (serverModeData.data.server_mode) {
+ // 服务器模式,需要token
+ token = await new Promise((resolve) => {
+ const checkToken = () => {
+ const token = getCookie("bizy_token");
+ if (token) {
+ clearInterval(timer);
+ resolve(token);
+ }
+ };
+
+ const timer = setInterval(checkToken, 300);
+ checkToken(); // 立即执行一次检查
+ });
+ }
// 保存原始节点大小
const originalSize = targetNode.size ? [...targetNode.size] : null;
@@ -100,12 +107,15 @@ window.addEventListener('message', async function(event) {
formData.append('filename', filename);
// 发送请求
+ const headers = {};
+ if (token) {
+ headers["Authorization"] = `Bearer ${token}`;
+ }
+
const response = await fetch('/upload/image', {
method: 'POST',
body: formData,
- headers: {
- "Authorization": `Bearer ${token}`
- }
+ headers: headers
});
if (!response.ok) {
diff --git a/bizyui/js/model_apply.js b/bizyui/js/model_apply.js
index cee214d6..ae587a9e 100644
--- a/bizyui/js/model_apply.js
+++ b/bizyui/js/model_apply.js
@@ -37,25 +37,35 @@ const NodeInfoLogger = (function() {
// 获取图片并转换为base64
const getImageAsBase64 = async (filename, type) => {
try {
- // 等待token可用
- const token = await new Promise((resolve) => {
- const checkToken = () => {
- const token = getCookie("bizy_token");
- if (token) {
- clearInterval(timer);
- resolve(token);
- }
- };
-
- const timer = setInterval(checkToken, 300);
- checkToken(); // 立即执行一次检查
- });
+ // 检查服务器模式
+ const serverModeResponse = await fetch("/bizyair/server_mode");
+ const serverModeData = await serverModeResponse.json();
+
+ let token = null;
+ if (serverModeData.data.server_mode) {
+ // 服务器模式,需要token
+ token = await new Promise((resolve) => {
+ const checkToken = () => {
+ const token = getCookie("bizy_token");
+ if (token) {
+ clearInterval(timer);
+ resolve(token);
+ }
+ };
+
+ const timer = setInterval(checkToken, 300);
+ checkToken(); // 立即执行一次检查
+ });
+ }
const imageUrl = buildImageUrl(filename, type);
+ const headers = {};
+ if (token) {
+ headers["Authorization"] = `Bearer ${token}`;
+ }
+
const response = await fetch(imageUrl, {
- headers: {
- "Authorization": `Bearer ${token}`
- }
+ headers: headers
});
if (!response.ok) {
throw new Error(`获取图片失败: ${response.status} ${response.statusText}`);
diff --git a/bizyui/js/siliconcloud_llm_api.js b/bizyui/js/siliconcloud_llm_api.js
index d58b5171..82941303 100644
--- a/bizyui/js/siliconcloud_llm_api.js
+++ b/bizyui/js/siliconcloud_llm_api.js
@@ -16,18 +16,28 @@ const createModelFetchExtension = (nodeName, endpoint) => {
const fetchModels = async () => {
try {
- return new Promise((resolve) => {
- const checkToken = () => {
- const token = getCookie("bizy_token");
- if (token) {
- clearInterval(timer);
- fetchWithToken(token).then(resolve);
- }
- };
-
- const timer = setInterval(checkToken, 300);
- checkToken(); // 立即执行一次检查
- });
+ // 首先检查服务器模式
+ const serverModeResponse = await fetch("/bizyair/server_mode");
+ const serverModeData = await serverModeResponse.json();
+
+ if (serverModeData.data.server_mode) {
+ // 服务器模式,需要token
+ return new Promise((resolve) => {
+ const checkToken = () => {
+ const token = getCookie("bizy_token");
+ if (token) {
+ clearInterval(timer);
+ fetchWithToken(token).then(resolve);
+ }
+ };
+
+ const timer = setInterval(checkToken, 300);
+ checkToken(); // 立即执行一次检查
+ });
+ } else {
+ // 非服务器模式,直接发送请求
+ return fetchWithToken();
+ }
} catch (error) {
console.error(`Error fetching ${nodeName} models`, error);
return [];
@@ -36,12 +46,18 @@ const createModelFetchExtension = (nodeName, endpoint) => {
const fetchWithToken = async (token) => {
try {
+ const headers = {
+ "Content-Type": "application/json"
+ };
+
+ // 只有在token存在时才添加Authorization头
+ if (token) {
+ headers["Authorization"] = `Bearer ${token}`;
+ }
+
const response = await fetch(endpoint, {
method: "POST",
- headers: {
- "Content-Type": "application/json",
- "Authorization": `Bearer ${token}`,
- },
+ headers: headers,
body: JSON.stringify({}),
});
diff --git a/src/main.ts b/src/main.ts
index 9c823252..0f746b78 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -238,7 +238,6 @@ app.directive('debounce', {
export function mount(container: string | Element, comfyUIApp?: any) {
app.provide('comfyUIApp', comfyUIApp)
server_mode().then(res => {
- console.log('server_mode100', res)
if (!res.data.server_mode) {
app.use(i18n)
app.mount(container)
From ca5797b0082b33e63293f22b7166d861238ededa Mon Sep 17 00:00:00 2001
From: Yao Chi
Date: Fri, 13 Jun 2025 12:40:39 +0800
Subject: [PATCH 16/20] add version check
---
.github/workflows/check_version.yml | 53 +++++++++++++++++++++++++++++
1 file changed, 53 insertions(+)
create mode 100644 .github/workflows/check_version.yml
diff --git a/.github/workflows/check_version.yml b/.github/workflows/check_version.yml
new file mode 100644
index 00000000..349f992f
--- /dev/null
+++ b/.github/workflows/check_version.yml
@@ -0,0 +1,53 @@
+name: Check Version Updated
+
+on:
+ pull_request:
+ types: [opened, synchronize, reopened]
+
+permissions:
+ contents: read
+ pull-requests: write
+
+env:
+ target_branch: ${{ github.base_ref || 'master' }}
+
+jobs:
+ check_version:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+ ref: ${{ github.head_ref }}
+
+ - name: Fetch target branch
+ run: |
+ git fetch origin ${{ env.target_branch }}
+
+ - name: Diff version.txt
+ run: |
+ echo "Current directory: $(pwd)"
+ modified_files=$(git diff --name-only origin/${{ env.target_branch }}...HEAD | grep bizyengine/version.txt)
+ echo "Modified files: $modified_files"
+ if [[ ! -n $modified_files ]]; then
+ echo "version.txt unchanged"
+ exit 1
+ else
+ echo "version.txt changed"
+ fi
+
+ - name: Add PR review comment if version.txt is not updated
+ if: failure() && !cancelled()
+ uses: actions/github-script@v4
+ with:
+ script: |
+ const { pull_request } = context.payload;
+ const comment = "代码改动同时请更新版本文件bizyengine/version.txt";
+ await github.issues.createComment({
+ issue_number: pull_request.number,
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ body: comment
+ });
From 0e6b0223a186ace272b8c2594f418a1fa055efd0 Mon Sep 17 00:00:00 2001
From: Yao Chi
Date: Fri, 13 Jun 2025 12:41:53 +0800
Subject: [PATCH 17/20] Update check_version.yml
---
.github/workflows/check_version.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/check_version.yml b/.github/workflows/check_version.yml
index 349f992f..f08682a1 100644
--- a/.github/workflows/check_version.yml
+++ b/.github/workflows/check_version.yml
@@ -29,7 +29,7 @@ jobs:
- name: Diff version.txt
run: |
echo "Current directory: $(pwd)"
- modified_files=$(git diff --name-only origin/${{ env.target_branch }}...HEAD | grep bizyengine/version.txt)
+ modified_files=$(git diff --name-only origin/${{ env.target_branch }}...HEAD | grep version.txt)
echo "Modified files: $modified_files"
if [[ ! -n $modified_files ]]; then
echo "version.txt unchanged"
@@ -44,7 +44,7 @@ jobs:
with:
script: |
const { pull_request } = context.payload;
- const comment = "代码改动同时请更新版本文件bizyengine/version.txt";
+ const comment = "代码改动同时请更新版本文件 version.txt";
await github.issues.createComment({
issue_number: pull_request.number,
owner: context.repo.owner,
From f4b0ab92b65b63f78e718d6f8b443b2848fe5eb1 Mon Sep 17 00:00:00 2001
From: Yao Chi
Date: Fri, 13 Jun 2025 12:42:48 +0800
Subject: [PATCH 18/20] Update version.txt
---
version.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/version.txt b/version.txt
index 963ed7cf..c1147005 100644
--- a/version.txt
+++ b/version.txt
@@ -1 +1 @@
-1.2.10
+1.2.11
From 2f16d2a77cd22d85352f6a7f9c4ed62bb27e2f79 Mon Sep 17 00:00:00 2001
From: "lin8780860@163.com"
Date: Mon, 16 Jun 2025 10:37:40 +0800
Subject: [PATCH 19/20] fix
---
bizyui/js/apply_image_to_node.js | 2 +-
bizyui/js/model_apply.js | 2 +-
bizyui/js/siliconcloud_llm_api.js | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/bizyui/js/apply_image_to_node.js b/bizyui/js/apply_image_to_node.js
index dbfbd2df..b6a2962f 100644
--- a/bizyui/js/apply_image_to_node.js
+++ b/bizyui/js/apply_image_to_node.js
@@ -109,7 +109,7 @@ window.addEventListener('message', async function(event) {
// 发送请求
const headers = {};
if (token) {
- headers["Authorization"] = `Bearer ${token}`;
+ headers["Authorization"] = token;
}
const response = await fetch('/upload/image', {
diff --git a/bizyui/js/model_apply.js b/bizyui/js/model_apply.js
index ae587a9e..4fe7d04e 100644
--- a/bizyui/js/model_apply.js
+++ b/bizyui/js/model_apply.js
@@ -61,7 +61,7 @@ const NodeInfoLogger = (function() {
const imageUrl = buildImageUrl(filename, type);
const headers = {};
if (token) {
- headers["Authorization"] = `Bearer ${token}`;
+ headers["Authorization"] = token;
}
const response = await fetch(imageUrl, {
diff --git a/bizyui/js/siliconcloud_llm_api.js b/bizyui/js/siliconcloud_llm_api.js
index 82941303..6e368f07 100644
--- a/bizyui/js/siliconcloud_llm_api.js
+++ b/bizyui/js/siliconcloud_llm_api.js
@@ -52,7 +52,7 @@ const createModelFetchExtension = (nodeName, endpoint) => {
// 只有在token存在时才添加Authorization头
if (token) {
- headers["Authorization"] = `Bearer ${token}`;
+ headers["Authorization"] = token;
}
const response = await fetch(endpoint, {
From 3a89b33c7da15318b487b02b7edf04ca01e8287d Mon Sep 17 00:00:00 2001
From: "lin8780860@163.com"
Date: Mon, 16 Jun 2025 11:23:53 +0800
Subject: [PATCH 20/20] =?UTF-8?q?=E6=BC=8F=E6=94=B9=E7=89=88=E6=9C=AC?=
=?UTF-8?q?=E6=96=87=E4=BB=B6=E4=BA=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
version.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/version.txt b/version.txt
index c1147005..f2ae0b4a 100644
--- a/version.txt
+++ b/version.txt
@@ -1 +1 @@
-1.2.11
+1.2.12