From 2530ddada6723bf8407a59e471e106c459aa8ecf Mon Sep 17 00:00:00 2001 From: Your Name Date: Wed, 22 Jul 2026 09:49:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 + frontend-admin/src/views/ModelsView.vue | 28 +- frontend/src/components/ChatInput.vue | 643 ++---------- frontend/src/components/ImageWorkbench.vue | 1085 ++++++++++++++++++++ frontend/src/components/MessageItem.vue | 387 ++++++- frontend/src/components/MessageList.vue | 161 ++- frontend/src/stores/chat.js | 106 +- package.json | 6 + scripts/run-conversation-adversarial.ps1 | 56 + scripts/run-stability-suite.ps1 | 87 ++ 10 files changed, 1932 insertions(+), 629 deletions(-) create mode 100644 .gitignore create mode 100644 frontend/src/components/ImageWorkbench.vue create mode 100644 scripts/run-conversation-adversarial.ps1 create mode 100644 scripts/run-stability-suite.ps1 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d40fa88 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +logs/stability/ +logs/conversation/ diff --git a/frontend-admin/src/views/ModelsView.vue b/frontend-admin/src/views/ModelsView.vue index 74a9914..2284ac2 100644 --- a/frontend-admin/src/views/ModelsView.vue +++ b/frontend-admin/src/views/ModelsView.vue @@ -159,6 +159,18 @@ +
+
+ + +

默认 0.45;越低越保留原图,越高变化越明显。

+
+
+ + +

默认 0.72;仅作用于白色遮罩区域。

+
+

必须使用 Save (API Format) 导出的 JSON(节点含 class_type)。 UI Format(含 nodes/links)导入后会秒结束且不出图。 @@ -310,6 +322,8 @@ const form = reactive({ workflow_json: '', prompt_node: '', seed_node: '', + img2img_denoise: 0.45, + inpaint_denoise: 0.72, refine_prompt: true, system_prompt: '' }) @@ -385,14 +399,16 @@ function onProviderChange() { } function parseExtraConfig(extra) { - if (!extra) return { workflow_json: '', prompt_node: '', seed_node: '', refine_prompt: true, system_prompt: '' } + if (!extra) return { workflow_json: '', prompt_node: '', seed_node: '', img2img_denoise: 0.45, inpaint_denoise: 0.72, refine_prompt: true, system_prompt: '' } if (typeof extra === 'string') { - try { extra = JSON.parse(extra) } catch { return { workflow_json: '', prompt_node: '', seed_node: '', refine_prompt: true, system_prompt: '' } } + try { extra = JSON.parse(extra) } catch { return { workflow_json: '', prompt_node: '', seed_node: '', img2img_denoise: 0.45, inpaint_denoise: 0.72, refine_prompt: true, system_prompt: '' } } } return { workflow_json: extra.workflow ? JSON.stringify(extra.workflow, null, 2) : '', prompt_node: extra.prompt_node || '', seed_node: extra.seed_node || '', + img2img_denoise: Number(extra.img2img_denoise ?? 0.45), + inpaint_denoise: Number(extra.inpaint_denoise ?? 0.72), refine_prompt: extra.refine_prompt === undefined ? true : !!extra.refine_prompt, system_prompt: extra.system_prompt || '' } @@ -437,6 +453,8 @@ function buildExtraConfig() { } if ((form.prompt_node || '').trim()) config.prompt_node = form.prompt_node.trim() if ((form.seed_node || '').trim()) config.seed_node = form.seed_node.trim() + config.img2img_denoise = Math.max(0.01, Math.min(1, Number(form.img2img_denoise) || 0.45)) + config.inpaint_denoise = Math.max(0.01, Math.min(1, Number(form.inpaint_denoise) || 0.72)) if ((form.system_prompt || '').trim()) config.system_prompt = form.system_prompt.trim() config.refine_prompt = !!form.refine_prompt return config @@ -485,7 +503,7 @@ function openCreate() { name: '', provider: 'openai', model_id: '', api_base_url: 'https://api.openai.com/v1', api_key: '', max_tokens: 4096, temperature: 0.7, is_default: false, enabled: true, support_context: true, support_image: true, frequency_penalty: 0, presence_penalty: 0, - workflow_json: '', prompt_node: '', seed_node: '', refine_prompt: true, system_prompt: '' + workflow_json: '', prompt_node: '', seed_node: '', img2img_denoise: 0.45, inpaint_denoise: 0.72, refine_prompt: true, system_prompt: '' }) showModal.value = true } @@ -510,6 +528,8 @@ function openEdit(m) { workflow_json: extra.workflow_json, prompt_node: extra.prompt_node, seed_node: extra.seed_node, + img2img_denoise: extra.img2img_denoise, + inpaint_denoise: extra.inpaint_denoise, refine_prompt: extra.refine_prompt, system_prompt: extra.system_prompt }) @@ -540,6 +560,8 @@ async function saveModel() { delete payload.workflow_json delete payload.prompt_node delete payload.seed_node + delete payload.img2img_denoise + delete payload.inpaint_denoise delete payload.refine_prompt delete payload.system_prompt diff --git a/frontend/src/components/ChatInput.vue b/frontend/src/components/ChatInput.vue index 91ff904..75d98b8 100644 --- a/frontend/src/components/ChatInput.vue +++ b/frontend/src/components/ChatInput.vue @@ -39,87 +39,7 @@ -

- -
-
-
- Agent 工作台 -

选择处理这项任务的方式

-

Agent 会为当前请求加入稳定的分析步骤和输出规范。

-
- -
- -
- -
- -
-
- 快速开始 - -
- -
-
-
- -
- - - - - {{ activeAgent.name }} - {{ activeAgent.description }} - - - -
- +