Add generative panels, provider settings UI, and credits

Frontend:
- tools/ai_replace_selection.js: use any selection → remote inpaint with prompt
- modules/generate/text_to_image.js: Text → Image dialog (new layer or replace canvas)
- modules/generate/outpaint.js: Expand Canvas in any direction via remote provider
- modules/tools/ai_provider_settings.js: in-app provider config (OpenAI / InvokeAI /
  ComfyUI / Replicate); persists to localStorage, pushes to POST /api/config at runtime
- config.js: register ai_replace_selection tool
- config-menu.js: add Generate menu (Text→Image, Outpaint); AI Provider Settings under Tools
- modules/help/about.js: updated credits (LaMa, rembg, SAM, InvokeAI, ComfyUI, OpenAI)
- api/capabilities.js: add refreshCapabilities() for post-save cache invalidation

Backend:
- routers/ai_tools.py: POST /api/config — apply provider settings at runtime
  without restart (session-scoped, non-persistent; .env for permanence)

https://claude.ai/code/session_01B58MaJCU1R6KwBDJCp8AfN
This commit is contained in:
Claude
2026-06-09 17:54:44 +00:00
parent 27261c4ef4
commit b2a12c356f
9 changed files with 791 additions and 9 deletions
+23
View File
@@ -816,9 +816,32 @@ const menuDefinition = [
name: 'Settings',
ellipsis: true,
target: 'tools/settings.settings'
},
{
divider: true
},
{
name: 'AI Provider Settings',
ellipsis: true,
target: 'tools/ai_provider_settings.ai_provider_settings'
}
]
},
{
name: 'Generate',
children: [
{
name: 'Text → Image',
ellipsis: true,
target: 'generate/text_to_image.text_to_image'
},
{
name: 'Expand Canvas (Outpaint)',
ellipsis: true,
target: 'generate/outpaint.outpaint'
},
]
},
{
name: 'Help',
children: [