{ saveHandler(); }} >
{$i18n.t('Images')}
{#if config}
{$i18n.t('Default (Open AI)')}
{$i18n.t('ComfyUI')}
{$i18n.t('Automatic1111')}
{$i18n.t('Gemini')}
{#if config.ENABLE_IMAGE_GENERATION}
{#each models ?? [] as model}
{model.name}
{/each}
{#if ['comfyui', 'automatic1111', ''].includes(config?.IMAGE_GENERATION_ENGINE)}
{/if}
{/if} {#if config?.IMAGE_GENERATION_ENGINE === 'openai'}
{:else if (config?.IMAGE_GENERATION_ENGINE ?? 'automatic1111') === 'automatic1111'}
{ await updateConfigHandler(); const res = await verifyConfigUrl(localStorage.token).catch((error) => { toast.error(`${error}`); return null; }); if (res) { toast.success($i18n.t('Server connection verified')); } }} >
{:else if config?.IMAGE_GENERATION_ENGINE === 'comfyui'}
{ await updateConfigHandler(); const res = await verifyConfigUrl(localStorage.token).catch((error) => { toast.error(`${error}`); return null; }); if (res) { toast.success($i18n.t('Server connection verified')); } }} >
{ const file = e.target.files[0]; const reader = new FileReader(); reader.onload = (e) => { config.COMFYUI_WORKFLOW = e.target.result; e.target.value = null; }; reader.readAsText(file); }} />
{#if config.COMFYUI_WORKFLOW}
{ // open code editor modal showComfyUIWorkflowEditor = true; }} > {$i18n.t('Edit')}
{/if}
{ document.getElementById('upload-comfyui-workflow-input')?.click(); }} > {$i18n.t('Upload')}
{ config.COMFYUI_WORKFLOW = e; }} onSave={() => { console.log('Saved'); }} />
{#if config.COMFYUI_WORKFLOW}
{$i18n.t('ComfyUI Workflow Nodes')}
{#each REQUIRED_WORKFLOW_NODES as node}
{node.type}{node.type === 'prompt' ? '*' : ''}
:
{/each}
{$i18n.t('*Prompt node ID(s) are required for image generation')}
{/if} {:else if config?.IMAGE_GENERATION_ENGINE === 'gemini'}
predict
generateContent
{/if}
{$i18n.t('Default (Open AI)')}
{$i18n.t('ComfyUI')}
{$i18n.t('Gemini')}
{#if config?.ENABLE_IMAGE_GENERATION && config?.ENABLE_IMAGE_EDIT}
{#each models ?? [] as model}
{model.name}
{/each}
{/if} {#if config?.IMAGE_EDIT_ENGINE === 'openai'}
{:else if config?.IMAGE_EDIT_ENGINE === 'comfyui'}
{ await updateConfigHandler(); const res = await verifyConfigUrl(localStorage.token).catch((error) => { toast.error(`${error}`); return null; }); if (res) { toast.success($i18n.t('Server connection verified')); } }} >
{ const file = e.target.files[0]; const reader = new FileReader(); reader.onload = (e) => { config.IMAGES_EDIT_COMFYUI_WORKFLOW = e.target.result; e.target.value = null; }; reader.readAsText(file); }} />
{#if config.IMAGES_EDIT_COMFYUI_WORKFLOW}
{ // open code editor modal showComfyUIEditWorkflowEditor = true; }} > {$i18n.t('Edit')}
{/if}
{ document.getElementById('upload-comfyui-edit-workflow-input')?.click(); }} > {$i18n.t('Upload')}
{ config.IMAGES_EDIT_COMFYUI_WORKFLOW = e; }} onSave={() => { console.log('Saved'); }} />
{#if config.IMAGES_EDIT_COMFYUI_WORKFLOW}
{$i18n.t('ComfyUI Workflow Nodes')}
{#each REQUIRED_EDIT_WORKFLOW_NODES as node}
{node.type}{['prompt', 'image'].includes(node.type) ? '*' : ''}
:
{/each}
{$i18n.t('*Prompt node ID(s) are required for image generation')}
{/if} {:else if config?.IMAGE_EDIT_ENGINE === 'gemini'}
{$i18n.t('Gemini Base URL')}
{$i18n.t('Gemini API Key')}
{/if}
{/if}
{$i18n.t('Save')} {#if loading}
{/if}