{ saveHandler(); }} >
{#if config}
{$i18n.t('General')}
{$i18n.t('Image Generation')}
{$i18n.t('Create Image')}
{#if config.ENABLE_IMAGE_GENERATION}
{$i18n.t('Model')}
{#each models ?? [] as model}
{model.name}
{/each}
{$i18n.t('Image Size')}
{#if ['comfyui', 'automatic1111', ''].includes(config?.IMAGE_GENERATION_ENGINE)}
{$i18n.t('Steps')}
{/if}
{$i18n.t('Image Prompt Generation')}
{/if}
{$i18n.t('Image Generation Engine')}
{$i18n.t('Default (Open AI)')}
{$i18n.t('ComfyUI')}
{$i18n.t('Automatic1111')}
{$i18n.t('Gemini')}
{#if config?.IMAGE_GENERATION_ENGINE === 'openai'}
{$i18n.t('OpenAI API Base URL')}
{$i18n.t('OpenAI API Key')}
{$i18n.t('OpenAI API Version')}
{$i18n.t('Additional Parameters')}
{:else if (config?.IMAGE_GENERATION_ENGINE ?? 'automatic1111') === 'automatic1111'}
{$i18n.t('AUTOMATIC1111 Base URL')}
{ await updateConfigHandler(); const res = await verifyConfigUrl(localStorage.token).catch((error) => { toast.error(`${error}`); return null; }); if (res) { toast.success($i18n.t('Server connection verified')); } }} >
{$i18n.t('Include `--api` flag when running stable-diffusion-webui')}
{$i18n.t('(e.g. `sh webui.sh --api`)')}
{$i18n.t('AUTOMATIC1111 Api Auth String')}
{$i18n.t('Include `--api-auth` flag when running stable-diffusion-webui')}
{$i18n .t('(e.g. `sh webui.sh --api --api-auth username_password`)') .replace('_', ':')}
{$i18n.t('Additional Parameters')}
{:else if config?.IMAGE_GENERATION_ENGINE === 'comfyui'}
{$i18n.t('ComfyUI Base URL')}
{ await updateConfigHandler(); const res = await verifyConfigUrl(localStorage.token).catch((error) => { toast.error(`${error}`); return null; }); if (res) { toast.success($i18n.t('Server connection verified')); } }} >
{$i18n.t('ComfyUI API Key')}
{ 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); }} />
{$i18n.t('ComfyUI Workflow')}
{#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'); }} /> {$i18n.t('Make sure to export a workflow.json file as API format from ComfyUI.')}
{#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'}
{$i18n.t('Gemini Base URL')}
{$i18n.t('Gemini API Key')}
{$i18n.t('Gemini Endpoint Method')}
predict
generateContent
{/if}
{$i18n.t('Edit Image')}
{$i18n.t('Image Edit Engine')}
{$i18n.t('Default (Open AI)')}
{$i18n.t('ComfyUI')}
{$i18n.t('Gemini')}
{#if config.ENABLE_IMAGE_GENERATION}
{$i18n.t('Model')}
{#each models ?? [] as model}
{model.name}
{/each}
{$i18n.t('Image Size')}
{/if} {#if config?.IMAGE_EDIT_ENGINE === 'openai'}
{$i18n.t('OpenAI API Base URL')}
{$i18n.t('OpenAI API Key')}
{$i18n.t('OpenAI API Version')}
{:else if config?.IMAGE_EDIT_ENGINE === 'comfyui'}
{$i18n.t('ComfyUI Base URL')}
{ await updateConfigHandler(); const res = await verifyConfigUrl(localStorage.token).catch((error) => { toast.error(`${error}`); return null; }); if (res) { toast.success($i18n.t('Server connection verified')); } }} >
{$i18n.t('ComfyUI API Key')}
{ 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); }} />
{$i18n.t('ComfyUI Workflow')}
{#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'); }} /> {$i18n.t('Make sure to export a workflow.json file as API format from ComfyUI.')}
{#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}