Expose image studio flow and related admin controls

Bundle the current backend and web changes into one publishable snapshot
from the server worktree so the remote mirror reflects the deployed source.

Constraint: Push the existing mixed worktree from /docker/new-api/src without reshaping files
Rejected: Split into feature-specific commits | current worktree is already a single undifferentiated snapshot
Confidence: medium
Scope-risk: moderate
Directive: Split future feature work before deployment to preserve clearer history
Tested: git status inspection; git diff --stat review
Not-tested: build, lint, unit tests, integration tests
This commit is contained in:
OpenClaw Task Bot
2026-05-05 12:16:54 +08:00
parent 58c0258362
commit 92ee465a41
23 changed files with 2694 additions and 202 deletions

View File

@@ -35,6 +35,7 @@ export default function SettingsSensitiveWords(props) {
CheckSensitiveEnabled: false,
CheckSensitiveOnPromptEnabled: false,
SensitiveWords: '',
ImageStudioSafetyPrompt: '',
});
const refForm = useRef();
const [inputsRow, setInputsRow] = useState(inputs);
@@ -130,8 +131,8 @@ export default function SettingsSensitiveWords(props) {
<Col xs={24} sm={12} md={8} lg={8} xl={8}>
<Form.TextArea
label={t('屏蔽词列表')}
extraText={t('一行一个屏蔽词,不需要符号分割')}
placeholder={t('一行一个屏蔽词,不需要符号分割')}
extraText={t('一行一个屏蔽词,不需要符号分割。该词库也会用于图片生图提示词审核')}
placeholder={t('一行一个屏蔽词,不需要符号分割。该词库也会用于图片生图提示词审核')}
field={'SensitiveWords'}
onChange={(value) =>
setInputs({
@@ -144,6 +145,24 @@ export default function SettingsSensitiveWords(props) {
/>
</Col>
</Row>
<Row>
<Col xs={24} sm={12} md={8} lg={8} xl={8}>
<Form.TextArea
label={t('图片生图安全提示词')}
extraText={t('仅用于图片生成/编辑,请写入暴力、色情、赌博、毒品、中国政治敏感、恐怖、恶心等禁止内容约束')}
placeholder={t('仅用于图片生成/编辑,请写入暴力、色情、赌博、毒品、中国政治敏感、恐怖、恶心等禁止内容约束')}
field={'ImageStudioSafetyPrompt'}
onChange={(value) =>
setInputs({
...inputs,
ImageStudioSafetyPrompt: value,
})
}
style={{ fontFamily: 'JetBrains Mono, Consolas' }}
autosize={{ minRows: 10, maxRows: 20 }}
/>
</Col>
</Row>
<Row>
<Button size='default' onClick={onSubmit}>
{t('保存屏蔽词过滤设置')}