mirror of
https://github.com/invoke-ai/InvokeAI.git
synced 2026-01-16 16:07:54 -05:00
Compare commits
18 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c3f82d4481 | ||
|
|
3929bd3e13 | ||
|
|
caf7caddf7 | ||
|
|
9fded69f0c | ||
|
|
9f719883c8 | ||
|
|
5d4da31dcd | ||
|
|
686640af3a | ||
|
|
edc22e06c3 | ||
|
|
409a46e2c4 | ||
|
|
e7ee4ecac7 | ||
|
|
da6c690d7b | ||
|
|
7c4544f95e | ||
|
|
f173e0a085 | ||
|
|
2a90e0c55f | ||
|
|
9d103ef030 | ||
|
|
4cc60669c1 | ||
|
|
d456aea8f3 | ||
|
|
4151883cb2 |
@@ -17,7 +17,6 @@ from PIL import Image, ImageOps
|
||||
from PIL.Image import Image as ImageType
|
||||
from uuid import uuid4
|
||||
from threading import Event
|
||||
from tkinter import filedialog
|
||||
|
||||
from ldm.generate import Generate
|
||||
from ldm.invoke.args import Args, APP_ID, APP_VERSION, calculate_init_img_hash
|
||||
|
||||
@@ -6,70 +6,70 @@ title: WebUI Hotkey List
|
||||
|
||||
## App Hotkeys
|
||||
|
||||
| Setting | Hotkey |
|
||||
| -------------- | ------------------ |
|
||||
| ++Ctrl+Enter++ | Invoke |
|
||||
| ++Shift+X++ | Cancel |
|
||||
| ++Alt+A++ | Focus Prompt |
|
||||
| ++O++ | Toggle Options |
|
||||
| ++Shift+O++ | Pin Options |
|
||||
| ++Z++ | Toggle Viewer |
|
||||
| ++G++ | Toggle Gallery |
|
||||
| ++F++ | Maximize Workspace |
|
||||
| ++1-5++ | Change Tabs |
|
||||
| ++"`"++ | Toggle Console |
|
||||
| Setting | Hotkey |
|
||||
| --------------- | ------------------ |
|
||||
| ++ctrl+enter++ | Invoke |
|
||||
| ++shift+x++ | Cancel |
|
||||
| ++alt+a++ | Focus Prompt |
|
||||
| ++o++ | Toggle Options |
|
||||
| ++shift+o++ | Pin Options |
|
||||
| ++z++ | Toggle Viewer |
|
||||
| ++g++ | Toggle Gallery |
|
||||
| ++f++ | Maximize Workspace |
|
||||
| ++1++ - ++5++ | Change Tabs |
|
||||
| ++"`"++ | Toggle Console |
|
||||
|
||||
## General Hotkeys
|
||||
|
||||
| Setting | Hotkey |
|
||||
| ----------- | ---------------------- |
|
||||
| ++P++ | Set Prompt |
|
||||
| ++S++ | Set Seed |
|
||||
| ++A++ | Set Parameters |
|
||||
| ++Shift+R++ | Restore Faces |
|
||||
| ++Shift+U++ | Upscale |
|
||||
| ++I++ | Show Info |
|
||||
| ++Shift+I++ | Send To Image To Image |
|
||||
| ++Del++ | Delete Image |
|
||||
| ++Esc++ | Close Panels |
|
||||
| Setting | Hotkey |
|
||||
| -------------- | ---------------------- |
|
||||
| ++p++ | Set Prompt |
|
||||
| ++s++ | Set Seed |
|
||||
| ++a++ | Set Parameters |
|
||||
| ++shift+r++ | Restore Faces |
|
||||
| ++shift+u++ | Upscale |
|
||||
| ++i++ | Show Info |
|
||||
| ++shift+i++ | Send To Image To Image |
|
||||
| ++del++ | Delete Image |
|
||||
| ++esc++ | Close Panels |
|
||||
|
||||
## Gallery Hotkeys
|
||||
|
||||
| Setting | Hotkey |
|
||||
| --------------- | --------------------------- |
|
||||
| ++Arrow Left++ | Previous Image |
|
||||
| ++Arrow Right++ | Next Image |
|
||||
| ++Shift+G++ | Toggle Gallery Pin |
|
||||
| ++Shift+Up++ | Increase Gallery Image Size |
|
||||
| ++Shift+Down++ | Decrease Gallery Image Size |
|
||||
| Setting | Hotkey |
|
||||
| ----------------------| --------------------------- |
|
||||
| ++arrow-left++ | Previous Image |
|
||||
| ++arrow-right++ | Next Image |
|
||||
| ++shift+g++ | Toggle Gallery Pin |
|
||||
| ++shift+arrow-up++ | Increase Gallery Image Size |
|
||||
| ++shift+arrow-down++ | Decrease Gallery Image Size |
|
||||
|
||||
## Unified Canvas Hotkeys
|
||||
|
||||
| Setting | Hotkey |
|
||||
| ------------------------- | ---------------------- |
|
||||
| ++B++ | Select Brush |
|
||||
| ++E++ | Select Eraser |
|
||||
| ++[++ | Decrease Brush Size |
|
||||
| ++]++ | Increase Brush Size |
|
||||
| ++Shift+[++ | Decrease Brush Opacity |
|
||||
| ++Shift+]++ | Increase Brush Opacity |
|
||||
| ++V++ | Move Tool |
|
||||
| ++Shift+F++ | Fill Bounding Box |
|
||||
| ++Delete/Backspace++ | Erase Bounding Box |
|
||||
| ++C++ | Select Color Picker |
|
||||
| ++N++ | Toggle Snap |
|
||||
| ++Hold Space++ | Quick Toggle Move |
|
||||
| ++Q++ | Toggle Layer |
|
||||
| ++Shift+C++ | Clear Mask |
|
||||
| ++H++ | Hide Mask |
|
||||
| ++Shift+H++ | Show/Hide Bounding Box |
|
||||
| ++Shift+M++ | Merge Visible |
|
||||
| ++Shift+S++ | Save To Gallery |
|
||||
| ++Ctrl+C++ | Copy To Clipboard |
|
||||
| ++Shift+D++ | Download Image |
|
||||
| ++Ctrl+Z++ | Undo |
|
||||
| ++Ctrl+Y / Ctrl+Shift+Z++ | Redo |
|
||||
| ++R++ | Reset View |
|
||||
| ++Arrow Left++ | Previous Staging Image |
|
||||
| ++Arrow Right++ | Next Staging Image |
|
||||
| ++Enter++ | Accept Staging Image |
|
||||
| Setting | Hotkey |
|
||||
| --------------------------------- | ---------------------- |
|
||||
| ++b++ | Select Brush |
|
||||
| ++e++ | Select Eraser |
|
||||
| ++bracket-left++ | Decrease Brush Size |
|
||||
| ++bracket-right++ | Increase Brush Size |
|
||||
| ++shift+bracket-left++ | Decrease Brush Opacity |
|
||||
| ++shift+bracket-right++ | Increase Brush Opacity |
|
||||
| ++v++ | Move Tool |
|
||||
| ++shift+f++ | Fill Bounding Box |
|
||||
| ++del++ / ++backspace++ | Erase Bounding Box |
|
||||
| ++c++ | Select Color Picker |
|
||||
| ++n++ | Toggle Snap |
|
||||
| ++"Hold Space"++ | Quick Toggle Move |
|
||||
| ++q++ | Toggle Layer |
|
||||
| ++shift+c++ | Clear Mask |
|
||||
| ++h++ | Hide Mask |
|
||||
| ++shift+h++ | Show/Hide Bounding Box |
|
||||
| ++shift+m++ | Merge Visible |
|
||||
| ++shift+s++ | Save To Gallery |
|
||||
| ++ctrl+c++ | Copy To Clipboard |
|
||||
| ++shift+d++ | Download Image |
|
||||
| ++ctrl+z++ | Undo |
|
||||
| ++ctrl+y++ / ++ctrl+shift+z++ | Redo |
|
||||
| ++r++ | Reset View |
|
||||
| ++arrow-left++ | Previous Staging Image |
|
||||
| ++arrow-right++ | Next Staging Image |
|
||||
| ++enter++ | Accept Staging Image |
|
||||
@@ -14,7 +14,7 @@ huggingface-hub
|
||||
imageio
|
||||
imageio-ffmpeg
|
||||
kornia
|
||||
numpy
|
||||
numpy==1.23.*
|
||||
omegaconf
|
||||
opencv-python
|
||||
picklescan
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
4
frontend/dist/index.html
vendored
4
frontend/dist/index.html
vendored
@@ -7,7 +7,7 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>InvokeAI - A Stable Diffusion Toolkit</title>
|
||||
<link rel="shortcut icon" type="icon" href="./assets/favicon.0d253ced.ico" />
|
||||
<script type="module" crossorigin src="./assets/index.21ff81eb.js"></script>
|
||||
<script type="module" crossorigin src="./assets/index.ec2d89c6.js"></script>
|
||||
<link rel="stylesheet" href="./assets/index.0dadf5d0.css">
|
||||
<script type="module">try{import.meta.url;import("_").catch(()=>1);}catch(e){}window.__vite_is_modern_browser=true;</script>
|
||||
<script type="module">!function(){if(window.__vite_is_modern_browser)return;console.warn("vite: loading legacy build because dynamic import or import.meta.url is unsupported, syntax error above should be ignored");var e=document.getElementById("vite-legacy-polyfill"),n=document.createElement("script");n.src=e.src,n.onload=function(){System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))},document.body.appendChild(n)}();</script>
|
||||
@@ -18,6 +18,6 @@
|
||||
|
||||
<script nomodule>!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",(function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()}),!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();</script>
|
||||
<script nomodule crossorigin id="vite-legacy-polyfill" src="./assets/polyfills-legacy-dde3a68a.js"></script>
|
||||
<script nomodule crossorigin id="vite-legacy-entry" data-src="./assets/index-legacy-b741077f.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
|
||||
<script nomodule crossorigin id="vite-legacy-entry" data-src="./assets/index-legacy-5c5a479d.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
1
frontend/dist/locales/common/de.json
vendored
1
frontend/dist/locales/common/de.json
vendored
@@ -15,6 +15,7 @@
|
||||
"langPortuguese": "Portugiesisch",
|
||||
"langFrench": "Französich",
|
||||
"langGerman": "Deutsch",
|
||||
"langSpanish": "Spanisch",
|
||||
"text2img": "Text zu Bild",
|
||||
"img2img": "Bild zu Bild",
|
||||
"unifiedCanvas": "Unified Canvas",
|
||||
|
||||
1
frontend/dist/locales/common/en.json
vendored
1
frontend/dist/locales/common/en.json
vendored
@@ -18,6 +18,7 @@
|
||||
"langFrench": "French",
|
||||
"langPolish": "Polish",
|
||||
"langSimplifiedChinese": "Simplified Chinese",
|
||||
"langSpanish": "Spanish",
|
||||
"text2img": "Text To Image",
|
||||
"img2img": "Image To Image",
|
||||
"unifiedCanvas": "Unified Canvas",
|
||||
|
||||
58
frontend/dist/locales/common/es.json
vendored
Normal file
58
frontend/dist/locales/common/es.json
vendored
Normal file
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"hotkeysLabel": "Atajos de teclado",
|
||||
"themeLabel": "Tema",
|
||||
"languagePickerLabel": "Selector de idioma",
|
||||
"reportBugLabel": "Reportar errores",
|
||||
"githubLabel": "GitHub",
|
||||
"discordLabel": "Discord",
|
||||
"settingsLabel": "Ajustes",
|
||||
"darkTheme": "Oscuro",
|
||||
"lightTheme": "Claro",
|
||||
"greenTheme": "Verde",
|
||||
"langEnglish": "Inglés",
|
||||
"langRussian": "Ruso",
|
||||
"langItalian": "Italiano",
|
||||
"langBrPortuguese": "Portugués (Brasil)",
|
||||
"langGerman": "Alemán",
|
||||
"langPortuguese": "Portugués",
|
||||
"langFrench": "French",
|
||||
"langPolish": "Polish",
|
||||
"langSpanish": "Español",
|
||||
"text2img": "Texto a Imagen",
|
||||
"img2img": "Imagen a Imagen",
|
||||
"unifiedCanvas": "Lienzo Unificado",
|
||||
"nodes": "Nodos",
|
||||
"nodesDesc": "Un sistema de generación de imágenes basado en nodos, actualmente se encuentra en desarrollo. Mantente pendiente a nuestras actualizaciones acerca de esta fabulosa funcionalidad.",
|
||||
"postProcessing": "Post-procesamiento",
|
||||
"postProcessDesc1": "Invoke AI ofrece una gran variedad de funciones de post-procesamiento, El aumento de tamaño y Restauración de Rostros ya se encuentran disponibles en la interfaz web, puedes acceder desde el menú de Opciones Avanzadas en las pestañas de Texto a Imagen y de Imagen a Imagen. También puedes acceder a estas funciones directamente mediante el botón de acciones en el menú superior de la imagen actual o en el visualizador",
|
||||
"postProcessDesc2": "Una interfaz de usuario dedicada se lanzará pronto para facilitar flujos de trabajo de postprocesamiento más avanzado.",
|
||||
"postProcessDesc3": "La Interfaz de Línea de Comandos de Invoke AI ofrece muchas otras características, incluyendo -Embiggen-.",
|
||||
"training": "Entrenamiento",
|
||||
"trainingDesc1": "Un flujo de trabajo dedicado para el entrenamiento de sus propios -embeddings- y puntos de control utilizando Inversión Textual y Dreambooth desde la interfaz web.",
|
||||
"trainingDesc2": "InvokeAI already supports training custom embeddings using Textual Inversion using the main script.",
|
||||
"trainingDesc2": "InvokeAI ya soporta el entrenamiento de -embeddings- personalizados utilizando la Inversión Textual mediante el script principal.",
|
||||
"upload": "Subir imagen",
|
||||
"close": "Cerrar",
|
||||
"load": "Cargar",
|
||||
"statusConnected": "Conectado",
|
||||
"statusDisconnected": "Desconectado",
|
||||
"statusError": "Error",
|
||||
"statusPreparing": "Preparando",
|
||||
"statusProcessingCanceled": "Procesamiento Cancelado",
|
||||
"statusProcessingComplete": "Procesamiento Completo",
|
||||
"statusGenerating": "Generando",
|
||||
"statusGeneratingTextToImage": "Generando Texto a Imagen",
|
||||
"statusGeneratingImageToImage": "Generando Imagen a Imagen",
|
||||
"statusGeneratingInpainting": "Generando pintura interior",
|
||||
"statusGeneratingOutpainting": "Generando pintura exterior",
|
||||
"statusGenerationComplete": "Generación Completa",
|
||||
"statusIterationComplete": "Iteración Completa",
|
||||
"statusSavingImage": "Guardando Imagen",
|
||||
"statusRestoringFaces": "Restaurando Rostros",
|
||||
"statusRestoringFacesGFPGAN": "Restaurando Rostros (GFPGAN)",
|
||||
"statusRestoringFacesCodeFormer": "Restaurando Rostros (CodeFormer)",
|
||||
"statusUpscaling": "Aumentando Tamaño",
|
||||
"statusUpscalingESRGAN": "Restaurando Rostros(ESRGAN)",
|
||||
"statusLoadingModel": "Cargando Modelo",
|
||||
"statusModelChanged": "Modelo cambiado"
|
||||
}
|
||||
1
frontend/dist/locales/common/it.json
vendored
1
frontend/dist/locales/common/it.json
vendored
@@ -18,6 +18,7 @@
|
||||
"langFrench": "Francese",
|
||||
"langPolish": "Polacco",
|
||||
"langSimplifiedChinese": "Cinese semplificato",
|
||||
"langSpanish": "Spagnolo",
|
||||
"text2img": "Testo a Immagine",
|
||||
"img2img": "Immagine a Immagine",
|
||||
"unifiedCanvas": "Tela unificata",
|
||||
|
||||
1
frontend/dist/locales/common/pl.json
vendored
1
frontend/dist/locales/common/pl.json
vendored
@@ -15,6 +15,7 @@
|
||||
"langPortuguese": "Portugalski",
|
||||
"langFrench": "Francuski",
|
||||
"langPolish": "Polski",
|
||||
"langSpanish": "Hiszpański",
|
||||
"text2img": "Tekst na obraz",
|
||||
"img2img": "Obraz na obraz",
|
||||
"unifiedCanvas": "Tryb uniwersalny",
|
||||
|
||||
1
frontend/dist/locales/common/pt_br.json
vendored
1
frontend/dist/locales/common/pt_br.json
vendored
@@ -15,6 +15,7 @@
|
||||
"langBrPortuguese": "Português do Brasil",
|
||||
"langPortuguese": "Portuguese",
|
||||
"langFrench": "French",
|
||||
"langSpanish": "Spanish",
|
||||
"text2img": "Texto Para Imagem",
|
||||
"img2img": "Imagem Para Imagem",
|
||||
"unifiedCanvas": "Tela Unificada",
|
||||
|
||||
2
frontend/dist/locales/common/ru.json
vendored
2
frontend/dist/locales/common/ru.json
vendored
@@ -14,6 +14,7 @@
|
||||
"langItalian": "Italian",
|
||||
"langPortuguese": "Portuguese",
|
||||
"langFrench": "French",
|
||||
"langSpanish": "Spanish",
|
||||
"text2img": "Изображение из текста (text2img)",
|
||||
"img2img": "Изображение в изображение (img2img)",
|
||||
"unifiedCanvas": "Универсальный холст",
|
||||
@@ -51,4 +52,3 @@
|
||||
"statusLoadingModel": "Загрузка модели",
|
||||
"statusModelChanged": "Модель изменена"
|
||||
}
|
||||
|
||||
|
||||
16
frontend/dist/locales/gallery/es.json
vendored
Normal file
16
frontend/dist/locales/gallery/es.json
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"generations": "Generaciones",
|
||||
"showGenerations": "Mostrar Generaciones",
|
||||
"uploads": "Subidas de archivos",
|
||||
"showUploads": "Mostar Subidas",
|
||||
"galleryImageSize": "Tamaño de la imagen",
|
||||
"galleryImageResetSize": "Restablecer tamaño de la imagen",
|
||||
"gallerySettings": "Ajustes de la galería",
|
||||
"maintainAspectRatio": "Mantener relación de aspecto",
|
||||
"autoSwitchNewImages": "Auto seleccionar Imágenes nuevas",
|
||||
"singleColumnLayout": "Diseño de una columna",
|
||||
"pinGallery": "Fijar galería",
|
||||
"allImagesLoaded": "Todas las imágenes cargadas",
|
||||
"loadMore": "Cargar más",
|
||||
"noImagesInGallery": "Sin imágenes en la galería"
|
||||
}
|
||||
207
frontend/dist/locales/hotkeys/es.json
vendored
Normal file
207
frontend/dist/locales/hotkeys/es.json
vendored
Normal file
@@ -0,0 +1,207 @@
|
||||
{
|
||||
"keyboardShortcuts": "Atajos de teclado",
|
||||
"appHotkeys": "Atajos de applicación",
|
||||
"generalHotkeys": "Atajos generales",
|
||||
"galleryHotkeys": "Atajos de galería",
|
||||
"unifiedCanvasHotkeys": "Atajos de lienzo unificado",
|
||||
"invoke": {
|
||||
"title": "Invocar",
|
||||
"desc": "Generar una imagen"
|
||||
},
|
||||
"cancel": {
|
||||
"title": "Cancelar",
|
||||
"desc": "Cancelar el proceso de generación de imagen"
|
||||
},
|
||||
"focusPrompt": {
|
||||
"title": "Mover foco a Entrada de texto",
|
||||
"desc": "Mover foco hacia el campo de texto de la Entrada"
|
||||
},
|
||||
"toggleOptions": {
|
||||
"title": "Alternar opciones",
|
||||
"desc": "Mostar y ocultar el panel de opciones"
|
||||
},
|
||||
"pinOptions": {
|
||||
"title": "Fijar opciones",
|
||||
"desc": "Fijar el panel de opciones"
|
||||
},
|
||||
"toggleViewer": {
|
||||
"title": "Alternar visor",
|
||||
"desc": "Mostar y ocultar el visor de imágenes"
|
||||
},
|
||||
"toggleGallery": {
|
||||
"title": "Alternar galería",
|
||||
"desc": "Mostar y ocultar la galería de imágenes"
|
||||
},
|
||||
"maximizeWorkSpace": {
|
||||
"title": "Maximizar espacio de trabajo",
|
||||
"desc": "Cerrar otros páneles y maximizar el espacio de trabajo"
|
||||
},
|
||||
"changeTabs": {
|
||||
"title": "Cambiar",
|
||||
"desc": "Cambiar entre áreas de trabajo"
|
||||
},
|
||||
"consoleToggle": {
|
||||
"title": "Alternar consola",
|
||||
"desc": "Mostar y ocultar la consola"
|
||||
},
|
||||
"setPrompt": {
|
||||
"title": "Establecer Entrada",
|
||||
"desc": "Usar el texto de entrada de la imagen actual"
|
||||
},
|
||||
"setSeed": {
|
||||
"title": "Establecer semilla",
|
||||
"desc": "Usar la semilla de la imagen actual"
|
||||
},
|
||||
"setParameters": {
|
||||
"title": "Establecer parámetros",
|
||||
"desc": "Usar todos los parámetros de la imagen actual"
|
||||
},
|
||||
"restoreFaces": {
|
||||
"title": "Restaurar rostros",
|
||||
"desc": "Restaurar rostros en la imagen actual"
|
||||
},
|
||||
"upscale": {
|
||||
"title": "Aumentar resolución",
|
||||
"desc": "Aumentar la resolución de la imagen actual"
|
||||
},
|
||||
"showInfo": {
|
||||
"title": "Mostrar información",
|
||||
"desc": "Mostar metadatos de la imagen actual"
|
||||
},
|
||||
"sendToImageToImage": {
|
||||
"title": "Enviar hacia Imagen a Imagen",
|
||||
"desc": "Enviar imagen actual hacia Imagen a Imagen"
|
||||
},
|
||||
"deleteImage": {
|
||||
"title": "Eliminar imagen",
|
||||
"desc": "Eliminar imagen actual"
|
||||
},
|
||||
"closePanels": {
|
||||
"title": "Cerrar páneles",
|
||||
"desc": "Cerrar los páneles abiertos"
|
||||
},
|
||||
"previousImage": {
|
||||
"title": "Imagen anterior",
|
||||
"desc": "Muetra la imagen anterior en la galería"
|
||||
},
|
||||
"nextImage": {
|
||||
"title": "Imagen siguiente",
|
||||
"desc": "Muetra la imagen siguiente en la galería"
|
||||
},
|
||||
"toggleGalleryPin": {
|
||||
"title": "Alternar fijado de galería",
|
||||
"desc": "Fijar o desfijar la galería en la interfaz"
|
||||
},
|
||||
"increaseGalleryThumbSize": {
|
||||
"title": "Aumentar imagen en galería",
|
||||
"desc": "Aumenta el tamaño de las miniaturas de la galería"
|
||||
},
|
||||
"decreaseGalleryThumbSize": {
|
||||
"title": "Reducir imagen en galería",
|
||||
"desc": "Reduce el tamaño de las miniaturas de la galería"
|
||||
},
|
||||
"selectBrush": {
|
||||
"title": "Seleccionar pincel",
|
||||
"desc": "Selecciona el pincel en el lienzo"
|
||||
},
|
||||
"selectEraser": {
|
||||
"title": "Seleccionar borrador",
|
||||
"desc": "Selecciona el borrador en el lienzo"
|
||||
},
|
||||
"decreaseBrushSize": {
|
||||
"title": "Disminuir tamaño de herramienta",
|
||||
"desc": "Disminuye el tamaño del pincel/borrador en el lienzo"
|
||||
},
|
||||
"increaseBrushSize": {
|
||||
"title": "Aumentar tamaño del pincel",
|
||||
"desc": "Aumenta el tamaño del pincel en el lienzo"
|
||||
},
|
||||
"decreaseBrushOpacity": {
|
||||
"title": "Disminuir opacidad del pincel",
|
||||
"desc": "Disminuye la opacidad del pincel en el lienzo"
|
||||
},
|
||||
"increaseBrushOpacity": {
|
||||
"title": "Aumentar opacidad del pincel",
|
||||
"desc": "Aumenta la opacidad del pincel en el lienzo"
|
||||
},
|
||||
"moveTool": {
|
||||
"title": "Herramienta de movimiento",
|
||||
"desc": "Permite navegar por el lienzo"
|
||||
},
|
||||
"fillBoundingBox": {
|
||||
"title": "Rellenar Caja contenedora",
|
||||
"desc": "Rellena la caja contenedora con el color seleccionado"
|
||||
},
|
||||
"eraseBoundingBox": {
|
||||
"title": "Borrar Caja contenedora",
|
||||
"desc": "Borra el contenido dentro de la caja contenedora"
|
||||
},
|
||||
"colorPicker": {
|
||||
"title": "Selector de color",
|
||||
"desc": "Selecciona un color del lienzo"
|
||||
},
|
||||
"toggleSnap": {
|
||||
"title": "Alternar ajuste de cuadrícula",
|
||||
"desc": "Activa o desactiva el ajuste automático a la cuadrícula"
|
||||
},
|
||||
"quickToggleMove": {
|
||||
"title": "Alternar movimiento rápido",
|
||||
"desc": "Activa momentáneamente la herramienta de movimiento"
|
||||
},
|
||||
"toggleLayer": {
|
||||
"title": "Alternar capa",
|
||||
"desc": "Alterna entre las capas de máscara y base"
|
||||
},
|
||||
"clearMask": {
|
||||
"title": "Limpiar máscara",
|
||||
"desc": "Limpia toda la máscara actual"
|
||||
},
|
||||
"hideMask": {
|
||||
"title": "Ocultar máscara",
|
||||
"desc": "Oculta o muetre la máscara actual"
|
||||
},
|
||||
"showHideBoundingBox": {
|
||||
"title": "Alternar caja contenedora",
|
||||
"desc": "Muestra u oculta la caja contenedora"
|
||||
},
|
||||
"mergeVisible": {
|
||||
"title": "Consolida capas visibles",
|
||||
"desc": "Consolida todas las capas visibles en una sola"
|
||||
},
|
||||
"saveToGallery": {
|
||||
"title": "Guardar en galería",
|
||||
"desc": "Guardar la imagen actual del lienzo en la galería"
|
||||
},
|
||||
"copyToClipboard": {
|
||||
"title": "Copiar al portapapeles",
|
||||
"desc": "Copiar el lienzo actual al portapapeles"
|
||||
},
|
||||
"downloadImage": {
|
||||
"title": "Descargar imagen",
|
||||
"desc": "Descargar la imagen actual del lienzo"
|
||||
},
|
||||
"undoStroke": {
|
||||
"title": "Deshar trazo",
|
||||
"desc": "Desahacer el último trazo del pincel"
|
||||
},
|
||||
"redoStroke": {
|
||||
"title": "Rehacer trazo",
|
||||
"desc": "Rehacer el último trazo del pincel"
|
||||
},
|
||||
"resetView": {
|
||||
"title": "Restablecer vista",
|
||||
"desc": "Restablecer la vista del lienzo"
|
||||
},
|
||||
"previousStagingImage": {
|
||||
"title": "Imagen anterior",
|
||||
"desc": "Imagen anterior en el área de preparación"
|
||||
},
|
||||
"nextStagingImage": {
|
||||
"title": "Imagen siguiente",
|
||||
"desc": "Siguiente imagen en el área de preparación"
|
||||
},
|
||||
"acceptStagingImage": {
|
||||
"title": "Aceptar imagen",
|
||||
"desc": "Aceptar la imagen actual en el área de preparación"
|
||||
}
|
||||
}
|
||||
3
frontend/dist/locales/modelmanager/de.json
vendored
3
frontend/dist/locales/modelmanager/de.json
vendored
@@ -34,6 +34,7 @@
|
||||
"checkpointFolder": "Checkpoint-Ordner",
|
||||
"clearCheckpointFolder": "Checkpoint-Ordner löschen",
|
||||
"findModels": "Models finden",
|
||||
"scanAgain": "Erneut scannen",
|
||||
"modelsFound": "Models gefunden",
|
||||
"selectFolder": "Ordner auswählen",
|
||||
"selected": "Ausgewählt",
|
||||
@@ -42,6 +43,8 @@
|
||||
"showExisting": "Vorhandene anzeigen",
|
||||
"addSelected": "Auswahl hinzufügen",
|
||||
"modelExists": "Model existiert",
|
||||
"selectAndAdd": "Unten aufgeführte Models auswählen und hinzufügen",
|
||||
"noModelsFound": "Keine Models gefunden",
|
||||
"delete": "Löschen",
|
||||
"deleteModel": "Model löschen",
|
||||
"deleteConfig": "Konfiguration löschen",
|
||||
|
||||
53
frontend/dist/locales/modelmanager/es.json
vendored
Normal file
53
frontend/dist/locales/modelmanager/es.json
vendored
Normal file
@@ -0,0 +1,53 @@
|
||||
{
|
||||
"modelManager": "Gestor de Modelos",
|
||||
"model": "Modelo",
|
||||
"modelAdded": "Modelo añadido",
|
||||
"modelUpdated": "Modelo actualizado",
|
||||
"modelEntryDeleted": "Endrada de Modelo eliminada",
|
||||
"cannotUseSpaces": "No se pueden usar Spaces",
|
||||
"addNew": "Añadir nuevo",
|
||||
"addNewModel": "Añadir nuevo modelo",
|
||||
"addManually": "Añadir manualmente",
|
||||
"manual": "Manual",
|
||||
"name": "Nombre",
|
||||
"nameValidationMsg": "Introduce un nombre para tu modelo",
|
||||
"description": "Descripción",
|
||||
"descriptionValidationMsg": "Introduce una descripción para tu modelo",
|
||||
"config": "Config",
|
||||
"configValidationMsg": "Ruta del archivo de configuración del modelo",
|
||||
"modelLocation": "Ubicación del Modelo",
|
||||
"modelLocationValidationMsg": "Ruta del archivo de modelo",
|
||||
"vaeLocation": "Ubicación VAE",
|
||||
"vaeLocationValidationMsg": "Ruta del archivo VAE",
|
||||
"width": "Ancho",
|
||||
"widthValidationMsg": "Ancho predeterminado de tu modelo",
|
||||
"height": "Alto",
|
||||
"heightValidationMsg": "Alto predeterminado de tu modelo",
|
||||
"addModel": "Añadir Modelo",
|
||||
"updateModel": "Actualizar Modelo",
|
||||
"availableModels": "Modelos disponibles",
|
||||
"search": "Búsqueda",
|
||||
"load": "Cargar",
|
||||
"active": "activo",
|
||||
"notLoaded": "no cargado",
|
||||
"cached": "en caché",
|
||||
"checkpointFolder": "Directorio de Checkpoint",
|
||||
"clearCheckpointFolder": "Limpiar directorio de checkpoint",
|
||||
"findModels": "Buscar modelos",
|
||||
"scanAgain": "Escanear de nuevo",
|
||||
"modelsFound": "Modelos encontrados",
|
||||
"selectFolder": "Selecciona un directorio",
|
||||
"selected": "Seleccionado",
|
||||
"selectAll": "Seleccionar todo",
|
||||
"deselectAll": "Deseleccionar todo",
|
||||
"showExisting": "Mostrar existentes",
|
||||
"addSelected": "Añadir seleccionados",
|
||||
"modelExists": "Modelo existente",
|
||||
"selectAndAdd": "Selecciona de la lista un modelo para añadir",
|
||||
"noModelsFound": "No se encontró ningún modelo",
|
||||
"delete": "Eliminar",
|
||||
"deleteModel": "Eliminar Modelo",
|
||||
"deleteConfig": "Eliminar Configuración",
|
||||
"deleteMsg1": "¿Estás seguro de querer eliminar esta entrada de modelo de InvokeAI?",
|
||||
"deleteMsg2": "El checkpoint del modelo no se eliminará de tu disco. Puedes volver a añadirlo si lo deseas."
|
||||
}
|
||||
54
frontend/dist/locales/modelmanager/ru.json
vendored
54
frontend/dist/locales/modelmanager/ru.json
vendored
@@ -1 +1,53 @@
|
||||
{}
|
||||
{
|
||||
"modelManager": "Менеджер моделей",
|
||||
"model": "Модель",
|
||||
"modelAdded": "Модель добавлена",
|
||||
"modelUpdated": "Модель обновлена",
|
||||
"modelEntryDeleted": "Запись о модели удалена",
|
||||
"cannotUseSpaces": "Нельзя использовать пробелы",
|
||||
"addNew": "Добавить новую",
|
||||
"addNewModel": "Добавить новую модель",
|
||||
"addManually": "Добавить вручную",
|
||||
"manual": "Ручное",
|
||||
"name": "Название",
|
||||
"nameValidationMsg": "Введите название модели",
|
||||
"description": "Описание",
|
||||
"descriptionValidationMsg": "Введите описание модели",
|
||||
"config": "Файл конфигурации",
|
||||
"configValidationMsg": "Путь до файла конфигурации",
|
||||
"modelLocation": "Расположение модели",
|
||||
"modelLocationValidationMsg": "Путь до файла с моделью",
|
||||
"vaeLocation": "Расположение VAE",
|
||||
"vaeLocationValidationMsg": "Путь до VAE",
|
||||
"width": "Ширина",
|
||||
"widthValidationMsg": "Исходная ширина изображений",
|
||||
"height": "Высота",
|
||||
"heightValidationMsg": "Исходная высота изображений",
|
||||
"addModel": "Добавить модель",
|
||||
"updateModel": "Обновить модель",
|
||||
"availableModels": "Доступные модели",
|
||||
"search": "Искать",
|
||||
"load": "Загрузить",
|
||||
"active": "активна",
|
||||
"notLoaded": "не загружена",
|
||||
"cached": "кэширована",
|
||||
"checkpointFolder": "Папка с моделями",
|
||||
"clearCheckpointFolder": "Очистить папку с моделями",
|
||||
"findModels": "Найти модели",
|
||||
"scanAgain": "Сканировать снова",
|
||||
"modelsFound": "Найденные модели",
|
||||
"selectFolder": "Выбрать папку",
|
||||
"selected": "Выбраны",
|
||||
"selectAll": "Выбрать все",
|
||||
"deselectAll": "Снять выделение",
|
||||
"showExisting": "Показывать добавленные",
|
||||
"addSelected": "Добавить выбранные",
|
||||
"modelExists": "Модель уже добавлена",
|
||||
"selectAndAdd": "Выберите и добавьте модели из списка",
|
||||
"noModelsFound": "Модели не найдены",
|
||||
"delete": "Удалить",
|
||||
"deleteModel": "Удалить модель",
|
||||
"deleteConfig": "Удалить конфигурацию",
|
||||
"deleteMsg1": "Вы точно хотите удалить модель из InvokeAI?",
|
||||
"deleteMsg2": "Это не удалит файл модели с диска. Позже вы можете добавить его снова."
|
||||
}
|
||||
|
||||
51
frontend/dist/locales/modelmanager/zh_cn.json
vendored
51
frontend/dist/locales/modelmanager/zh_cn.json
vendored
@@ -1 +1,50 @@
|
||||
{}
|
||||
{
|
||||
"modelManager": "模型管理器",
|
||||
"model": "模型",
|
||||
"modelAdded": "模型已添加",
|
||||
"modelUpdated": "模型已更新",
|
||||
"modelEntryDeleted": "模型已删除",
|
||||
"cannotUseSpaces": "不能使用空格",
|
||||
"addNew": "添加",
|
||||
"addNewModel": "添加新模型",
|
||||
"addManually": "手动添加",
|
||||
"manual": "手动",
|
||||
"name": "名称",
|
||||
"nameValidationMsg": "输入模型的名称",
|
||||
"description": "描述",
|
||||
"descriptionValidationMsg": "添加模型的描述",
|
||||
"config": "配置",
|
||||
"configValidationMsg": "模型配置文件的路径",
|
||||
"modelLocation": "模型位置",
|
||||
"modelLocationValidationMsg": "模型文件的路径",
|
||||
"vaeLocation": "VAE 位置",
|
||||
"vaeLocationValidationMsg": "VAE 文件的路径",
|
||||
"width": "宽度",
|
||||
"widthValidationMsg": "模型的默认宽度",
|
||||
"height": "高度",
|
||||
"heightValidationMsg": "模型的默认高度",
|
||||
"addModel": "添加模型",
|
||||
"updateModel": "更新模型",
|
||||
"availableModels": "可用模型",
|
||||
"search": "搜索",
|
||||
"load": "加载",
|
||||
"active": "活跃",
|
||||
"notLoaded": "未加载",
|
||||
"cached": "缓存",
|
||||
"checkpointFolder": "模型检查点文件夹",
|
||||
"clearCheckpointFolder": "清除模型检查点文件夹",
|
||||
"findModels": "寻找模型",
|
||||
"modelsFound": "找到的模型",
|
||||
"selectFolder": "选择文件夹",
|
||||
"selected": "已选择",
|
||||
"selectAll": "选择所有",
|
||||
"deselectAll": "取消选择所有",
|
||||
"showExisting": "显示已存在",
|
||||
"addSelected": "添加选择",
|
||||
"modelExists": "模型已存在",
|
||||
"delete": "删除",
|
||||
"deleteModel": "删除模型",
|
||||
"deleteConfig": "删除配置",
|
||||
"deleteMsg1": "您确定要将这个模型从 InvokeAI 删除吗?",
|
||||
"deleteMsg2": "这不会从磁盘中删除模型检查点文件。如果您愿意,可以重新添加它们。"
|
||||
}
|
||||
|
||||
62
frontend/dist/locales/options/es.json
vendored
Normal file
62
frontend/dist/locales/options/es.json
vendored
Normal file
@@ -0,0 +1,62 @@
|
||||
{
|
||||
"images": "Imágenes",
|
||||
"steps": "Pasos",
|
||||
"cfgScale": "Escala CFG",
|
||||
"width": "Ancho",
|
||||
"height": "Alto",
|
||||
"sampler": "Muestreo",
|
||||
"seed": "Semilla",
|
||||
"randomizeSeed": "Semilla aleatoria",
|
||||
"shuffle": "Aleatorizar",
|
||||
"noiseThreshold": "Umbral de Ruido",
|
||||
"perlinNoise": "Ruido Perlin",
|
||||
"variations": "Variaciones",
|
||||
"variationAmount": "Cantidad de Variación",
|
||||
"seedWeights": "Peso de las semillas",
|
||||
"faceRestoration": "Restauración de Rostros",
|
||||
"restoreFaces": "Restaurar rostros",
|
||||
"type": "Tipo",
|
||||
"strength": "Fuerza",
|
||||
"upscaling": "Aumento de resolución",
|
||||
"upscale": "Aumentar resolución",
|
||||
"upscaleImage": "Aumentar la resolución de la imagen",
|
||||
"scale": "Escala",
|
||||
"otherOptions": "Otras opciones",
|
||||
"seamlessTiling": "Mosaicos sin parches",
|
||||
"hiresOptim": "Optimización de Alta Resolución",
|
||||
"imageFit": "Ajuste tamaño de imagen inicial al tamaño objetivo",
|
||||
"codeformerFidelity": "Fidelidad",
|
||||
"seamSize": "Tamaño del parche",
|
||||
"seamBlur": "Desenfoque del parche",
|
||||
"seamStrength": "Fuerza del parche",
|
||||
"seamSteps": "Pasos del parche",
|
||||
"inpaintReplace": "Reemplazar impresión interior",
|
||||
"scaleBeforeProcessing": "Redimensionar antes de procesar",
|
||||
"scaledWidth": "Ancho escalado",
|
||||
"scaledHeight": "Alto escalado",
|
||||
"infillMethod": "Método de relleno",
|
||||
"tileSize": "Tamaño del mosaico",
|
||||
"boundingBoxHeader": "Caja contenedora",
|
||||
"seamCorrectionHeader": "Corrección de parches",
|
||||
"infillScalingHeader": "Remplazo y escalado",
|
||||
"img2imgStrength": "Peso de Imagen a Imagen",
|
||||
"toggleLoopback": "Alternar Retroalimentación",
|
||||
"invoke": "Invocar",
|
||||
"cancel": "Cancelar",
|
||||
"promptPlaceholder": "Ingrese la entrada aquí. [símbolos negativos], (subir peso)++, (bajar peso)--, también disponible alternado y mezclado (ver documentación)",
|
||||
"sendTo": "Enviar a",
|
||||
"sendToImg2Img": "Enviar a Imagen a Imagen",
|
||||
"sendToUnifiedCanvas": "Enviar a Lienzo Unificado",
|
||||
"copyImageToLink": "Copiar imagen a enlace",
|
||||
"downloadImage": "Descargar imagen",
|
||||
"openInViewer": "Abrir en Visor",
|
||||
"closeViewer": "Cerrar Visor",
|
||||
"usePrompt": "Usar Entrada",
|
||||
"useSeed": "Usar Semilla",
|
||||
"useAll": "Usar Todo",
|
||||
"useInitImg": "Usar Imagen Inicial",
|
||||
"info": "Información",
|
||||
"deleteImage": "Eliminar Imagen",
|
||||
"initialImage": "Imagen Inicial",
|
||||
"showOptionsPanel": "Mostrar panel de opciones"
|
||||
}
|
||||
2
frontend/dist/locales/options/ru.json
vendored
2
frontend/dist/locales/options/ru.json
vendored
@@ -5,7 +5,7 @@
|
||||
"width": "Ширина",
|
||||
"height": "Высота",
|
||||
"sampler": "Семплер",
|
||||
"seed": "Сид (Seed)",
|
||||
"seed": "Сид",
|
||||
"randomizeSeed": "Случайный сид",
|
||||
"shuffle": "Обновить",
|
||||
"noiseThreshold": "Порог шума",
|
||||
|
||||
13
frontend/dist/locales/settings/es.json
vendored
Normal file
13
frontend/dist/locales/settings/es.json
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"models": "Modelos",
|
||||
"displayInProgress": "Mostrar imágenes en progreso",
|
||||
"saveSteps": "Guardar imágenes cada n pasos",
|
||||
"confirmOnDelete": "Confirmar antes de eliminar",
|
||||
"displayHelpIcons": "Mostrar iconos de ayuda",
|
||||
"useCanvasBeta": "Usar versión beta del Lienzo",
|
||||
"enableImageDebugging": "Habilitar depuración de imágenes",
|
||||
"resetWebUI": "Restablecer interfaz web",
|
||||
"resetWebUIDesc1": "Al restablecer la interfaz web, solo se restablece la caché local del navegador de sus imágenes y la configuración guardada. No se elimina ninguna imagen de su disco duro.",
|
||||
"resetWebUIDesc2": "Si las imágenes no se muestran en la galería o algo más no funciona, intente restablecer antes de reportar un incidente en GitHub.",
|
||||
"resetComplete": "La interfaz web se ha restablecido. Actualice la página para recargarla."
|
||||
}
|
||||
2
frontend/dist/locales/settings/pl.json
vendored
2
frontend/dist/locales/settings/pl.json
vendored
@@ -4,7 +4,7 @@
|
||||
"saveSteps": "Zapisuj obrazy co X kroków",
|
||||
"confirmOnDelete": "Potwierdzaj usuwanie",
|
||||
"displayHelpIcons": "Wyświetlaj ikony pomocy",
|
||||
"useCanvasBeta": "Nowego układ trybu uniwersalnego",
|
||||
"useCanvasBeta": "Nowy układ trybu uniwersalnego",
|
||||
"enableImageDebugging": "Włącz debugowanie obrazu",
|
||||
"resetWebUI": "Zresetuj interfejs",
|
||||
"resetWebUIDesc1": "Resetowanie interfejsu wyczyści jedynie dane i ustawienia zapisane w pamięci przeglądarki. Nie usunie żadnych obrazów z dysku.",
|
||||
|
||||
32
frontend/dist/locales/toast/es.json
vendored
Normal file
32
frontend/dist/locales/toast/es.json
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"tempFoldersEmptied": "Directorio temporal vaciado",
|
||||
"uploadFailed": "Error al subir archivo",
|
||||
"uploadFailedMultipleImagesDesc": "Únicamente se puede subir una imágen a la vez",
|
||||
"uploadFailedUnableToLoadDesc": "No se pudo cargar la imágen",
|
||||
"downloadImageStarted": "Descargando imágen",
|
||||
"imageCopied": "Imágen copiada",
|
||||
"imageLinkCopied": "Enlace de imágen copiado",
|
||||
"imageNotLoaded": "No se cargó la imágen",
|
||||
"imageNotLoadedDesc": "No se encontró imagen para enviar al módulo Imagen a Imagen",
|
||||
"imageSavedToGallery": "Imágen guardada en la galería",
|
||||
"canvasMerged": "Lienzo consolidado",
|
||||
"sentToImageToImage": "Enviar hacia Imagen a Imagen",
|
||||
"sentToUnifiedCanvas": "Enviar hacia Lienzo Consolidado",
|
||||
"parametersSet": "Parámetros establecidos",
|
||||
"parametersNotSet": "Parámetros no establecidos",
|
||||
"parametersNotSetDesc": "No se encontraron metadatos para esta imágen.",
|
||||
"parametersFailed": "Error cargando parámetros",
|
||||
"parametersFailedDesc": "No fue posible cargar la imagen inicial.",
|
||||
"seedSet": "Semilla establecida",
|
||||
"seedNotSet": "Semilla no establecida",
|
||||
"seedNotSetDesc": "No se encontró una semilla para esta imágen.",
|
||||
"promptSet": "Entrada establecida",
|
||||
"promptNotSet": "Entrada no establecida",
|
||||
"promptNotSetDesc": "No se encontró una entrada para esta imágen.",
|
||||
"upscalingFailed": "Error al aumentar tamaño de imagn",
|
||||
"faceRestoreFailed": "Restauración de rostro fallida",
|
||||
"metadataLoadFailed": "Error al cargar metadatos",
|
||||
"initialImageSet": "Imágen inicial establecida",
|
||||
"initialImageNotSet": "Imagen inicial no establecida",
|
||||
"initialImageNotSetDesc": "Error al establecer la imágen inicial"
|
||||
}
|
||||
15
frontend/dist/locales/tooltip/de.json
vendored
Normal file
15
frontend/dist/locales/tooltip/de.json
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"feature": {
|
||||
"prompt": "Dies ist das Prompt-Feld. Ein Prompt enthält Generierungsobjekte und stilistische Begriffe. Sie können auch Gewichtungen (Token-Bedeutung) dem Prompt hinzufügen, aber CLI-Befehle und Parameter funktionieren nicht.",
|
||||
"gallery": "Die Galerie zeigt erzeugte Bilder aus dem Ausgabeordner an, sobald sie erstellt wurden. Die Einstellungen werden in den Dateien gespeichert und können über das Kontextmenü aufgerufen werden.",
|
||||
"other": "Mit diesen Optionen werden alternative Verarbeitungsmodi für InvokeAI aktiviert. 'Nahtlose Kachelung' erzeugt sich wiederholende Muster in der Ausgabe. 'Hohe Auflösungen' werden in zwei Schritten mit img2img erzeugt: Verwenden Sie diese Einstellung, wenn Sie ein größeres und kohärenteres Bild ohne Artefakte wünschen. Es dauert länger als das normale txt2img.",
|
||||
"seed": "Der Seed-Wert beeinflusst das Ausgangsrauschen, aus dem das Bild erstellt wird. Sie können die bereits vorhandenen Seeds von früheren Bildern verwenden. 'Der Rauschschwellenwert' wird verwendet, um Artefakte bei hohen CFG-Werten abzuschwächen (versuchen Sie es im Bereich 0-10), und Perlin, um während der Erzeugung Perlin-Rauschen hinzuzufügen: Beide dienen dazu, Ihre Ergebnisse zu variieren.",
|
||||
"variations": "Versuchen Sie eine Variation mit einem Wert zwischen 0,1 und 1,0, um das Ergebnis für ein bestimmtes Seed zu ändern. Interessante Variationen des Seeds liegen zwischen 0,1 und 0,3.",
|
||||
"upscale": "Verwenden Sie ESRGAN, um das Bild unmittelbar nach der Erzeugung zu vergrößern.",
|
||||
"faceCorrection": "Gesichtskorrektur mit GFPGAN oder Codeformer: Der Algorithmus erkennt Gesichter im Bild und korrigiert alle Fehler. Ein hoher Wert verändert das Bild stärker, was zu attraktiveren Gesichtern führt. Codeformer mit einer höheren Genauigkeit bewahrt das Originalbild auf Kosten einer stärkeren Gesichtskorrektur.",
|
||||
"imageToImage": "Bild zu Bild lädt ein beliebiges Bild als Ausgangsbild, aus dem dann zusammen mit dem Prompt ein neues Bild erzeugt wird. Je höher der Wert ist, desto stärker wird das Ergebnisbild verändert. Werte von 0,0 bis 1,0 sind möglich, der empfohlene Bereich ist .25-.75",
|
||||
"boundingBox": "Der Begrenzungsrahmen ist derselbe wie die Einstellungen für Breite und Höhe bei Text zu Bild oder Bild zu Bild. Es wird nur der Bereich innerhalb des Rahmens verarbeitet.",
|
||||
"seamCorrection": "Steuert die Behandlung von sichtbaren Übergängen, die zwischen den erzeugten Bildern auf der Leinwand auftreten.",
|
||||
"infillAndScaling": "Verwalten Sie Infill-Methoden (für maskierte oder gelöschte Bereiche der Leinwand) und Skalierung (nützlich für kleine Begrenzungsrahmengrößen)."
|
||||
}
|
||||
}
|
||||
15
frontend/dist/locales/tooltip/en-US.json
vendored
Normal file
15
frontend/dist/locales/tooltip/en-US.json
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"feature": {
|
||||
"prompt": "This is the prompt field. Prompt includes generation objects and stylistic terms. You can add weight (token importance) in the prompt as well, but CLI commands and parameters will not work.",
|
||||
"gallery": "Gallery displays generations from the outputs folder as they're created. Settings are stored within files and accesed by context menu.",
|
||||
"other": "These options will enable alternative processing modes for Invoke. 'Seamless tiling' will create repeating patterns in the output. 'High resolution' is generation in two steps with img2img: use this setting when you want a larger and more coherent image without artifacts. It will take longer that usual txt2img.",
|
||||
"seed": "Seed value affects the initial noise from which the image is formed. You can use the already existing seeds from previous images. 'Noise Threshold' is used to mitigate artifacts at high CFG values (try the 0-10 range), and Perlin to add Perlin noise during generation: both serve to add variation to your outputs.",
|
||||
"variations": "Try a variation with a value between 0.1 and 1.0 to change the result for a given seed. Interesting variations of the seed are between 0.1 and 0.3.",
|
||||
"upscale": "Use ESRGAN to enlarge the image immediately after generation.",
|
||||
"faceCorrection": "Face correction with GFPGAN or Codeformer: the algorithm detects faces in the image and corrects any defects. High value will change the image more, resulting in more attractive faces. Codeformer with a higher fidelity preserves the original image at the expense of stronger face correction.",
|
||||
"imageToImage": "Image to Image loads any image as initial, which is then used to generate a new one along with the prompt. The higher the value, the more the result image will change. Values from 0.0 to 1.0 are possible, the recommended range is .25-.75",
|
||||
"boundingBox": "The bounding box is the same as the Width and Height settings for Text to Image or Image to Image. Only the area in the box will be processed.",
|
||||
"seamCorrection": "Controls the handling of visible seams that occur between generated images on the canvas.",
|
||||
"infillAndScaling": "Manage infill methods (used on masked or erased areas of the canvas) and scaling (useful for small bounding box sizes)."
|
||||
}
|
||||
}
|
||||
15
frontend/dist/locales/tooltip/en.json
vendored
Normal file
15
frontend/dist/locales/tooltip/en.json
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"feature": {
|
||||
"prompt": "This is the prompt field. Prompt includes generation objects and stylistic terms. You can add weight (token importance) in the prompt as well, but CLI commands and parameters will not work.",
|
||||
"gallery": "Gallery displays generations from the outputs folder as they're created. Settings are stored within files and accesed by context menu.",
|
||||
"other": "These options will enable alternative processing modes for Invoke. 'Seamless tiling' will create repeating patterns in the output. 'High resolution' is generation in two steps with img2img: use this setting when you want a larger and more coherent image without artifacts. It will take longer that usual txt2img.",
|
||||
"seed": "Seed value affects the initial noise from which the image is formed. You can use the already existing seeds from previous images. 'Noise Threshold' is used to mitigate artifacts at high CFG values (try the 0-10 range), and Perlin to add Perlin noise during generation: both serve to add variation to your outputs.",
|
||||
"variations": "Try a variation with a value between 0.1 and 1.0 to change the result for a given seed. Interesting variations of the seed are between 0.1 and 0.3.",
|
||||
"upscale": "Use ESRGAN to enlarge the image immediately after generation.",
|
||||
"faceCorrection": "Face correction with GFPGAN or Codeformer: the algorithm detects faces in the image and corrects any defects. High value will change the image more, resulting in more attractive faces. Codeformer with a higher fidelity preserves the original image at the expense of stronger face correction.",
|
||||
"imageToImage": "Image to Image loads any image as initial, which is then used to generate a new one along with the prompt. The higher the value, the more the result image will change. Values from 0.0 to 1.0 are possible, the recommended range is .25-.75",
|
||||
"boundingBox": "The bounding box is the same as the Width and Height settings for Text to Image or Image to Image. Only the area in the box will be processed.",
|
||||
"seamCorrection": "Controls the handling of visible seams that occur between generated images on the canvas.",
|
||||
"infillAndScaling": "Manage infill methods (used on masked or erased areas of the canvas) and scaling (useful for small bounding box sizes)."
|
||||
}
|
||||
}
|
||||
15
frontend/dist/locales/tooltip/es.json
vendored
Normal file
15
frontend/dist/locales/tooltip/es.json
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"feature": {
|
||||
"prompt": "Este campo tomará todo el texto de entrada, incluidos tanto los términos de contenido como los estilísticos. Si bien se pueden incluir pesos en la solicitud, los comandos/parámetros estándar de línea de comandos no funcionarán.",
|
||||
"gallery": "Conforme se generan nuevas invocaciones, los archivos del directorio de salida se mostrarán aquí. Las generaciones tienen opciones adicionales para configurar nuevas generaciones.",
|
||||
"other": "Estas opciones habilitarán modos de procesamiento alternativos para Invoke. El modo sin costuras funciona para generar patrones repetitivos en la salida. La optimización de alta resolución realiza un ciclo de generación de dos pasos y debe usarse en resoluciones más altas cuando desee una imagen/composición más coherente.",
|
||||
"seed": "Los valores de semilla proporcionan un conjunto inicial de ruido que guían el proceso de eliminación de ruido y se pueden aleatorizar o rellenar con una semilla de una invocación anterior. La función Umbral se puede usar para mitigar resultados indeseables a valores CFG más altos (intente entre 0-10), y Perlin se puede usar para agregar ruido Perlin al proceso de eliminación de ruido. Ambos sirven para agregar variación a sus salidas.",
|
||||
"variations": "Pruebe una variación con una cantidad entre 0 y 1 para cambiar la imagen de salida para la semilla establecida. Se encuentran variaciones interesantes en la semilla entre 0.1 y 0.3.",
|
||||
"upscale": "Usando ESRGAN, puede aumentar la resolución de salida sin requerir un ancho/alto más alto en la generación inicial.",
|
||||
"faceCorrection": "Usando GFPGAN o Codeformer, la corrección de rostros intentará identificar rostros en las salidas y corregir cualquier defecto/anormalidad. Los valores de fuerza más altos aplicarán una presión correctiva más fuerte en las salidas, lo que resultará en rostros más atractivos. Con Codeformer, una mayor fidelidad intentará preservar la imagen original, a expensas de la fuerza de corrección de rostros.",
|
||||
"imageToImage": "Imagen a Imagen permite cargar una imagen inicial, que InvokeAI usará para guiar el proceso de generación, junto con una solicitud. Un valor más bajo para esta configuración se parecerá más a la imagen original. Se aceptan valores entre 0-1, y se recomienda un rango de .25-.75.",
|
||||
"boundingBox": "La caja delimitadora es análoga a las configuraciones de Ancho y Alto para Texto a Imagen o Imagen a Imagen. Solo se procesará el área en la caja.",
|
||||
"seamCorrection": "Controla el manejo de parches visibles que pueden ocurrir cuando se pega una imagen generada de nuevo en el lienzo.",
|
||||
"infillAndScaling": "Administra los métodos de relleno (utilizados en áreas enmascaradas o borradas del lienzo) y la escala (útil para tamaños de caja delimitadora pequeños)."
|
||||
}
|
||||
}
|
||||
1
frontend/dist/locales/tooltip/it.json
vendored
Normal file
1
frontend/dist/locales/tooltip/it.json
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{}
|
||||
15
frontend/dist/locales/tooltip/pl.json
vendored
Normal file
15
frontend/dist/locales/tooltip/pl.json
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"feature": {
|
||||
"prompt": "To pole musi zawierać cały tekst sugestii, w tym zarówno opis oczekiwanej zawartości, jak i terminy stylistyczne. Chociaż wagi mogą być zawarte w sugestiach, inne parametry znane z linii poleceń nie będą działać.",
|
||||
"gallery": "W miarę generowania nowych wywołań w tym miejscu będą wyświetlane pliki z katalogu wyjściowego. Obrazy mają dodatkowo opcje konfiguracji nowych wywołań.",
|
||||
"other": "Opcje umożliwią alternatywne tryby przetwarzania. Płynne scalanie będzie pomocne przy generowaniu powtarzających się wzorów. Optymalizacja wysokiej rozdzielczości wykonuje dwuetapowy cykl generowania i powinna być używana przy wyższych rozdzielczościach, gdy potrzebny jest bardziej spójny obraz/kompozycja.",
|
||||
"seed": "Inicjator określa początkowy zestaw szumów, który kieruje procesem odszumiania i może być losowy lub pobrany z poprzedniego wywołania. Funkcja \"Poziom szumu\" może być użyta do złagodzenia saturacji przy wyższych wartościach CFG (spróbuj między 0-10), a Perlin może być użyty w celu dodania wariacji do twoich wyników.",
|
||||
"variations": "Poziom zróżnicowania przyjmuje wartości od 0 do 1 i pozwala zmienić obraz wyjściowy dla ustawionego inicjatora. Interesujące wyniki uzyskuje się zwykle między 0,1 a 0,3.",
|
||||
"upscale": "Korzystając z ESRGAN, możesz zwiększyć rozdzielczość obrazu wyjściowego bez konieczności zwiększania szerokości/wysokości w ustawieniach początkowych.",
|
||||
"faceCorrection": "Poprawianie twarzy próbuje identyfikować twarze na obrazie wyjściowym i korygować wszelkie defekty/nieprawidłowości. W GFPGAN im większa siła, tym mocniejszy efekt. W metodzie Codeformer wyższa wartość oznacza bardziej wierne odtworzenie oryginalnej twarzy, nawet kosztem siły korekcji.",
|
||||
"imageToImage": "Tryb \"Obraz na obraz\" pozwala na załadowanie obrazu wzorca, który obok wprowadzonych sugestii zostanie użyty porzez InvokeAI do wygenerowania nowego obrazu. Niższa wartość tego ustawienia będzie bardziej przypominać oryginalny obraz. Akceptowane są wartości od 0 do 1, a zalecany jest zakres od 0,25 do 0,75.",
|
||||
"boundingBox": "Zaznaczony obszar odpowiada ustawieniom wysokości i szerokości w trybach Tekst na obraz i Obraz na obraz. Jedynie piksele znajdujące się w obszarze zaznaczenia zostaną uwzględnione podczas wywoływania nowego obrazu.",
|
||||
"seamCorrection": "Opcje wpływające na poziom widoczności szwów, które mogą wystąpić, gdy wygenerowany obraz jest ponownie wklejany na płótno.",
|
||||
"infillAndScaling": "Zarządzaj metodami wypełniania (używanymi na zamaskowanych lub wymazanych obszarach płótna) i skalowaniem (przydatne w przypadku zaznaczonego obszaru o b. małych rozmiarach)."
|
||||
}
|
||||
}
|
||||
1
frontend/dist/locales/tooltip/pt_br.json
vendored
Normal file
1
frontend/dist/locales/tooltip/pt_br.json
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{}
|
||||
15
frontend/dist/locales/tooltip/ru.json
vendored
Normal file
15
frontend/dist/locales/tooltip/ru.json
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"feature": {
|
||||
"prompt": "Это поле для текста запроса, включая объекты генерации и стилистические термины. В запрос можно включить и коэффициенты веса (значимости токена), но консольные команды и параметры не будут работать.",
|
||||
"gallery": "Здесь отображаются генерации из папки outputs по мере их появления.",
|
||||
"other": "Эти опции включают альтернативные режимы обработки для Invoke. 'Бесшовный узор' создаст повторяющиеся узоры на выходе. 'Высокое разрешение' это генерация в два этапа с помощью img2img: используйте эту настройку, когда хотите получить цельное изображение большего размера без артефактов.",
|
||||
"seed": "Значение сида влияет на начальный шум, из которого сформируется изображение. Можно использовать уже имеющийся сид из предыдущих изображений. 'Порог шума' используется для смягчения артефактов при высоких значениях CFG (попробуйте в диапазоне 0-10), а Перлин для добавления шума Перлина в процессе генерации: оба параметра служат для большей вариативности результатов.",
|
||||
"variations": "Попробуйте вариацию со значением от 0.1 до 1.0, чтобы изменить результат для заданного сида. Интересные вариации сида находятся между 0.1 и 0.3.",
|
||||
"upscale": "Используйте ESRGAN, чтобы увеличить изображение сразу после генерации.",
|
||||
"faceCorrection": "Коррекция лиц с помощью GFPGAN или Codeformer: алгоритм определяет лица в готовом изображении и исправляет любые дефекты. Высокие значение силы меняет изображение сильнее, в результате лица будут выглядеть привлекательнее. У Codeformer более высокая точность сохранит исходное изображение в ущерб коррекции лица.",
|
||||
"imageToImage": "'Изображение в изображение' загружает любое изображение, которое затем используется для генерации вместе с запросом. Чем больше значение, тем сильнее изменится изображение в результате. Возможны значения от 0 до 1, рекомендуется диапазон .25-.75",
|
||||
"boundingBox": "'Ограничительная рамка' аналогична настройкам Ширина и Высота для 'Избражения из текста' или 'Изображения в изображение'. Будет обработана только область в рамке.",
|
||||
"seamCorrection": "Управление обработкой видимых швов, возникающих между изображениями на холсте.",
|
||||
"infillAndScaling": "Управление методами заполнения (используется для масок или стертых областей холста) и масштабирования (полезно для малых размеров ограничивающей рамки)."
|
||||
}
|
||||
}
|
||||
15
frontend/dist/locales/tooltips/it.json
vendored
Normal file
15
frontend/dist/locales/tooltips/it.json
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"feature": {
|
||||
"prompt": "Questo è il campo del prompt. Il prompt include oggetti di generazione e termini stilistici. Puoi anche aggiungere il peso (importanza del token) nel prompt, ma i comandi e i parametri dell'interfaccia a linea di comando non funzioneranno.",
|
||||
"gallery": "Galleria visualizza le generazioni dalla cartella degli output man mano che vengono create. Le impostazioni sono memorizzate all'interno di file e accessibili dal menu contestuale.",
|
||||
"other": "Queste opzioni abiliteranno modalità di elaborazione alternative per Invoke. 'Piastrella senza cuciture' creerà modelli ripetuti nell'output. 'Ottimizzzazione Alta risoluzione' è la generazione in due passaggi con 'Immagine a Immagine': usa questa impostazione quando vuoi un'immagine più grande e più coerente senza artefatti. Ci vorrà più tempo del solito 'Testo a Immagine'.",
|
||||
"seed": "Il valore del Seme influenza il rumore iniziale da cui è formata l'immagine. Puoi usare i semi già esistenti dalle immagini precedenti. 'Soglia del rumore' viene utilizzato per mitigare gli artefatti a valori CFG elevati (provare l'intervallo 0-10) e Perlin per aggiungere il rumore Perlin durante la generazione: entrambi servono per aggiungere variazioni ai risultati.",
|
||||
"variations": "Prova una variazione con un valore compreso tra 0.1 e 1.0 per modificare il risultato per un dato seme. Variazioni interessanti del seme sono comprese tra 0.1 e 0.3.",
|
||||
"upscale": "Utilizza ESRGAN per ingrandire l'immagine subito dopo la generazione.",
|
||||
"faceCorrection": "Correzione del volto con GFPGAN o Codeformer: l'algoritmo rileva i volti nell'immagine e corregge eventuali difetti. Un valore alto cambierà maggiormente l'immagine, dando luogo a volti più attraenti. Codeformer con una maggiore fedeltà preserva l'immagine originale a scapito di una correzione facciale più forte.",
|
||||
"imageToImage": "Da Immagine a Immagine carica qualsiasi immagine come iniziale, che viene quindi utilizzata per generarne una nuova in base al prompt. Più alto è il valore, più cambierà l'immagine risultante. Sono possibili valori da 0.0 a 1.0, l'intervallo consigliato è 0.25-0.75",
|
||||
"boundingBox": "Il riquadro di selezione è lo stesso delle impostazioni Larghezza e Altezza per dat Testo a Immagine o da Immagine a Immagine. Verrà elaborata solo l'area nella casella.",
|
||||
"seamCorrection": "Controlla la gestione delle giunzioni visibili che si verificano tra le immagini generate sulla tela.",
|
||||
"infillAndScaling": "Gestisce i metodi di riempimento (utilizzati su aree mascherate o cancellate dell'area di disegno) e il ridimensionamento (utile per i riquadri di selezione di piccole dimensioni)."
|
||||
}
|
||||
}
|
||||
59
frontend/dist/locales/unifiedcanvas/es.json
vendored
Normal file
59
frontend/dist/locales/unifiedcanvas/es.json
vendored
Normal file
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"layer": "Capa",
|
||||
"base": "Base",
|
||||
"mask": "Máscara",
|
||||
"maskingOptions": "Opciones de máscara",
|
||||
"enableMask": "Habilitar Máscara",
|
||||
"preserveMaskedArea": "Preservar área enmascarada",
|
||||
"clearMask": "Limpiar máscara",
|
||||
"brush": "Pincel",
|
||||
"eraser": "Borrador",
|
||||
"fillBoundingBox": "Rellenar Caja Contenedora",
|
||||
"eraseBoundingBox": "Eliminar Caja Contenedora",
|
||||
"colorPicker": "Selector de color",
|
||||
"brushOptions": "Opciones de pincel",
|
||||
"brushSize": "Tamaño",
|
||||
"move": "Mover",
|
||||
"resetView": "Restablecer vista",
|
||||
"mergeVisible": "Consolidar vista",
|
||||
"saveToGallery": "Guardar en galería",
|
||||
"copyToClipboard": "Copiar al portapapeles",
|
||||
"downloadAsImage": "Descargar como imagen",
|
||||
"undo": "Deshacer",
|
||||
"redo": "Rehacer",
|
||||
"clearCanvas": "Limpiar lienzo",
|
||||
"canvasSettings": "Ajustes de lienzo",
|
||||
"showIntermediates": "Mostrar intermedios",
|
||||
"showGrid": "Mostrar cuadrícula",
|
||||
"snapToGrid": "Ajustar a cuadrícula",
|
||||
"darkenOutsideSelection": "Oscurecer fuera de la selección",
|
||||
"autoSaveToGallery": "Guardar automáticamente en galería",
|
||||
"saveBoxRegionOnly": "Guardar solo región dentro de la caja",
|
||||
"limitStrokesToBox": "Limitar trazos a la caja",
|
||||
"showCanvasDebugInfo": "Mostrar información de depuración de lienzo",
|
||||
"clearCanvasHistory": "Limpiar historial de lienzo",
|
||||
"clearHistory": "Limpiar historial",
|
||||
"clearCanvasHistoryMessage": "Limpiar el historial de lienzo también restablece completamente el lienzo unificado. Esto incluye todo el historial de deshacer/rehacer, las imágenes en el área de preparación y la capa base del lienzo.",
|
||||
"clearCanvasHistoryConfirm": "¿Está seguro de que desea limpiar el historial del lienzo?",
|
||||
"emptyTempImageFolder": "Vaciar directorio de imágenes temporales",
|
||||
"emptyFolder": "Vaciar directorio",
|
||||
"emptyTempImagesFolderMessage": "Vaciar el directorio de imágenes temporales también restablece completamente el lienzo unificado. Esto incluye todo el historial de deshacer/rehacer, las imágenes en el área de preparación y la capa base del lienzo.",
|
||||
"emptyTempImagesFolderConfirm": "¿Está seguro de que desea vaciar el directorio temporal?",
|
||||
"activeLayer": "Capa activa",
|
||||
"canvasScale": "Escala de lienzo",
|
||||
"boundingBox": "Caja contenedora",
|
||||
"scaledBoundingBox": "Caja contenedora escalada",
|
||||
"boundingBoxPosition": "Posición de caja contenedora",
|
||||
"canvasDimensions": "Dimensiones de lienzo",
|
||||
"canvasPosition": "Posición de lienzo",
|
||||
"cursorPosition": "Posición del cursor",
|
||||
"previous": "Anterior",
|
||||
"next": "Siguiente",
|
||||
"accept": "Aceptar",
|
||||
"showHide": "Mostrar/Ocultar",
|
||||
"discardAll": "Descartar todo",
|
||||
"betaClear": "Limpiar",
|
||||
"betaDarkenOutside": "Oscurecer fuera",
|
||||
"betaLimitToBox": "Limitar a caja",
|
||||
"betaPreserveMasked": "Preservar área enmascarada"
|
||||
}
|
||||
@@ -15,6 +15,7 @@
|
||||
"langPortuguese": "Portugiesisch",
|
||||
"langFrench": "Französich",
|
||||
"langGerman": "Deutsch",
|
||||
"langSpanish": "Spanisch",
|
||||
"text2img": "Text zu Bild",
|
||||
"img2img": "Bild zu Bild",
|
||||
"unifiedCanvas": "Unified Canvas",
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
"langFrench": "French",
|
||||
"langPolish": "Polish",
|
||||
"langSimplifiedChinese": "Simplified Chinese",
|
||||
"langSpanish": "Spanish",
|
||||
"text2img": "Text To Image",
|
||||
"img2img": "Image To Image",
|
||||
"unifiedCanvas": "Unified Canvas",
|
||||
|
||||
58
frontend/public/locales/common/es.json
Normal file
58
frontend/public/locales/common/es.json
Normal file
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"hotkeysLabel": "Atajos de teclado",
|
||||
"themeLabel": "Tema",
|
||||
"languagePickerLabel": "Selector de idioma",
|
||||
"reportBugLabel": "Reportar errores",
|
||||
"githubLabel": "GitHub",
|
||||
"discordLabel": "Discord",
|
||||
"settingsLabel": "Ajustes",
|
||||
"darkTheme": "Oscuro",
|
||||
"lightTheme": "Claro",
|
||||
"greenTheme": "Verde",
|
||||
"langEnglish": "Inglés",
|
||||
"langRussian": "Ruso",
|
||||
"langItalian": "Italiano",
|
||||
"langBrPortuguese": "Portugués (Brasil)",
|
||||
"langGerman": "Alemán",
|
||||
"langPortuguese": "Portugués",
|
||||
"langFrench": "French",
|
||||
"langPolish": "Polish",
|
||||
"langSpanish": "Español",
|
||||
"text2img": "Texto a Imagen",
|
||||
"img2img": "Imagen a Imagen",
|
||||
"unifiedCanvas": "Lienzo Unificado",
|
||||
"nodes": "Nodos",
|
||||
"nodesDesc": "Un sistema de generación de imágenes basado en nodos, actualmente se encuentra en desarrollo. Mantente pendiente a nuestras actualizaciones acerca de esta fabulosa funcionalidad.",
|
||||
"postProcessing": "Post-procesamiento",
|
||||
"postProcessDesc1": "Invoke AI ofrece una gran variedad de funciones de post-procesamiento, El aumento de tamaño y Restauración de Rostros ya se encuentran disponibles en la interfaz web, puedes acceder desde el menú de Opciones Avanzadas en las pestañas de Texto a Imagen y de Imagen a Imagen. También puedes acceder a estas funciones directamente mediante el botón de acciones en el menú superior de la imagen actual o en el visualizador",
|
||||
"postProcessDesc2": "Una interfaz de usuario dedicada se lanzará pronto para facilitar flujos de trabajo de postprocesamiento más avanzado.",
|
||||
"postProcessDesc3": "La Interfaz de Línea de Comandos de Invoke AI ofrece muchas otras características, incluyendo -Embiggen-.",
|
||||
"training": "Entrenamiento",
|
||||
"trainingDesc1": "Un flujo de trabajo dedicado para el entrenamiento de sus propios -embeddings- y puntos de control utilizando Inversión Textual y Dreambooth desde la interfaz web.",
|
||||
"trainingDesc2": "InvokeAI already supports training custom embeddings using Textual Inversion using the main script.",
|
||||
"trainingDesc2": "InvokeAI ya soporta el entrenamiento de -embeddings- personalizados utilizando la Inversión Textual mediante el script principal.",
|
||||
"upload": "Subir imagen",
|
||||
"close": "Cerrar",
|
||||
"load": "Cargar",
|
||||
"statusConnected": "Conectado",
|
||||
"statusDisconnected": "Desconectado",
|
||||
"statusError": "Error",
|
||||
"statusPreparing": "Preparando",
|
||||
"statusProcessingCanceled": "Procesamiento Cancelado",
|
||||
"statusProcessingComplete": "Procesamiento Completo",
|
||||
"statusGenerating": "Generando",
|
||||
"statusGeneratingTextToImage": "Generando Texto a Imagen",
|
||||
"statusGeneratingImageToImage": "Generando Imagen a Imagen",
|
||||
"statusGeneratingInpainting": "Generando pintura interior",
|
||||
"statusGeneratingOutpainting": "Generando pintura exterior",
|
||||
"statusGenerationComplete": "Generación Completa",
|
||||
"statusIterationComplete": "Iteración Completa",
|
||||
"statusSavingImage": "Guardando Imagen",
|
||||
"statusRestoringFaces": "Restaurando Rostros",
|
||||
"statusRestoringFacesGFPGAN": "Restaurando Rostros (GFPGAN)",
|
||||
"statusRestoringFacesCodeFormer": "Restaurando Rostros (CodeFormer)",
|
||||
"statusUpscaling": "Aumentando Tamaño",
|
||||
"statusUpscalingESRGAN": "Restaurando Rostros(ESRGAN)",
|
||||
"statusLoadingModel": "Cargando Modelo",
|
||||
"statusModelChanged": "Modelo cambiado"
|
||||
}
|
||||
@@ -18,6 +18,7 @@
|
||||
"langFrench": "Francese",
|
||||
"langPolish": "Polacco",
|
||||
"langSimplifiedChinese": "Cinese semplificato",
|
||||
"langSpanish": "Spagnolo",
|
||||
"text2img": "Testo a Immagine",
|
||||
"img2img": "Immagine a Immagine",
|
||||
"unifiedCanvas": "Tela unificata",
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
"langPortuguese": "Portugalski",
|
||||
"langFrench": "Francuski",
|
||||
"langPolish": "Polski",
|
||||
"langSpanish": "Hiszpański",
|
||||
"text2img": "Tekst na obraz",
|
||||
"img2img": "Obraz na obraz",
|
||||
"unifiedCanvas": "Tryb uniwersalny",
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
"langBrPortuguese": "Português do Brasil",
|
||||
"langPortuguese": "Portuguese",
|
||||
"langFrench": "French",
|
||||
"langSpanish": "Spanish",
|
||||
"text2img": "Texto Para Imagem",
|
||||
"img2img": "Imagem Para Imagem",
|
||||
"unifiedCanvas": "Tela Unificada",
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
"langItalian": "Italian",
|
||||
"langPortuguese": "Portuguese",
|
||||
"langFrench": "French",
|
||||
"langSpanish": "Spanish",
|
||||
"text2img": "Изображение из текста (text2img)",
|
||||
"img2img": "Изображение в изображение (img2img)",
|
||||
"unifiedCanvas": "Универсальный холст",
|
||||
@@ -51,4 +52,3 @@
|
||||
"statusLoadingModel": "Загрузка модели",
|
||||
"statusModelChanged": "Модель изменена"
|
||||
}
|
||||
|
||||
|
||||
16
frontend/public/locales/gallery/es.json
Normal file
16
frontend/public/locales/gallery/es.json
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"generations": "Generaciones",
|
||||
"showGenerations": "Mostrar Generaciones",
|
||||
"uploads": "Subidas de archivos",
|
||||
"showUploads": "Mostar Subidas",
|
||||
"galleryImageSize": "Tamaño de la imagen",
|
||||
"galleryImageResetSize": "Restablecer tamaño de la imagen",
|
||||
"gallerySettings": "Ajustes de la galería",
|
||||
"maintainAspectRatio": "Mantener relación de aspecto",
|
||||
"autoSwitchNewImages": "Auto seleccionar Imágenes nuevas",
|
||||
"singleColumnLayout": "Diseño de una columna",
|
||||
"pinGallery": "Fijar galería",
|
||||
"allImagesLoaded": "Todas las imágenes cargadas",
|
||||
"loadMore": "Cargar más",
|
||||
"noImagesInGallery": "Sin imágenes en la galería"
|
||||
}
|
||||
207
frontend/public/locales/hotkeys/es.json
Normal file
207
frontend/public/locales/hotkeys/es.json
Normal file
@@ -0,0 +1,207 @@
|
||||
{
|
||||
"keyboardShortcuts": "Atajos de teclado",
|
||||
"appHotkeys": "Atajos de applicación",
|
||||
"generalHotkeys": "Atajos generales",
|
||||
"galleryHotkeys": "Atajos de galería",
|
||||
"unifiedCanvasHotkeys": "Atajos de lienzo unificado",
|
||||
"invoke": {
|
||||
"title": "Invocar",
|
||||
"desc": "Generar una imagen"
|
||||
},
|
||||
"cancel": {
|
||||
"title": "Cancelar",
|
||||
"desc": "Cancelar el proceso de generación de imagen"
|
||||
},
|
||||
"focusPrompt": {
|
||||
"title": "Mover foco a Entrada de texto",
|
||||
"desc": "Mover foco hacia el campo de texto de la Entrada"
|
||||
},
|
||||
"toggleOptions": {
|
||||
"title": "Alternar opciones",
|
||||
"desc": "Mostar y ocultar el panel de opciones"
|
||||
},
|
||||
"pinOptions": {
|
||||
"title": "Fijar opciones",
|
||||
"desc": "Fijar el panel de opciones"
|
||||
},
|
||||
"toggleViewer": {
|
||||
"title": "Alternar visor",
|
||||
"desc": "Mostar y ocultar el visor de imágenes"
|
||||
},
|
||||
"toggleGallery": {
|
||||
"title": "Alternar galería",
|
||||
"desc": "Mostar y ocultar la galería de imágenes"
|
||||
},
|
||||
"maximizeWorkSpace": {
|
||||
"title": "Maximizar espacio de trabajo",
|
||||
"desc": "Cerrar otros páneles y maximizar el espacio de trabajo"
|
||||
},
|
||||
"changeTabs": {
|
||||
"title": "Cambiar",
|
||||
"desc": "Cambiar entre áreas de trabajo"
|
||||
},
|
||||
"consoleToggle": {
|
||||
"title": "Alternar consola",
|
||||
"desc": "Mostar y ocultar la consola"
|
||||
},
|
||||
"setPrompt": {
|
||||
"title": "Establecer Entrada",
|
||||
"desc": "Usar el texto de entrada de la imagen actual"
|
||||
},
|
||||
"setSeed": {
|
||||
"title": "Establecer semilla",
|
||||
"desc": "Usar la semilla de la imagen actual"
|
||||
},
|
||||
"setParameters": {
|
||||
"title": "Establecer parámetros",
|
||||
"desc": "Usar todos los parámetros de la imagen actual"
|
||||
},
|
||||
"restoreFaces": {
|
||||
"title": "Restaurar rostros",
|
||||
"desc": "Restaurar rostros en la imagen actual"
|
||||
},
|
||||
"upscale": {
|
||||
"title": "Aumentar resolución",
|
||||
"desc": "Aumentar la resolución de la imagen actual"
|
||||
},
|
||||
"showInfo": {
|
||||
"title": "Mostrar información",
|
||||
"desc": "Mostar metadatos de la imagen actual"
|
||||
},
|
||||
"sendToImageToImage": {
|
||||
"title": "Enviar hacia Imagen a Imagen",
|
||||
"desc": "Enviar imagen actual hacia Imagen a Imagen"
|
||||
},
|
||||
"deleteImage": {
|
||||
"title": "Eliminar imagen",
|
||||
"desc": "Eliminar imagen actual"
|
||||
},
|
||||
"closePanels": {
|
||||
"title": "Cerrar páneles",
|
||||
"desc": "Cerrar los páneles abiertos"
|
||||
},
|
||||
"previousImage": {
|
||||
"title": "Imagen anterior",
|
||||
"desc": "Muetra la imagen anterior en la galería"
|
||||
},
|
||||
"nextImage": {
|
||||
"title": "Imagen siguiente",
|
||||
"desc": "Muetra la imagen siguiente en la galería"
|
||||
},
|
||||
"toggleGalleryPin": {
|
||||
"title": "Alternar fijado de galería",
|
||||
"desc": "Fijar o desfijar la galería en la interfaz"
|
||||
},
|
||||
"increaseGalleryThumbSize": {
|
||||
"title": "Aumentar imagen en galería",
|
||||
"desc": "Aumenta el tamaño de las miniaturas de la galería"
|
||||
},
|
||||
"decreaseGalleryThumbSize": {
|
||||
"title": "Reducir imagen en galería",
|
||||
"desc": "Reduce el tamaño de las miniaturas de la galería"
|
||||
},
|
||||
"selectBrush": {
|
||||
"title": "Seleccionar pincel",
|
||||
"desc": "Selecciona el pincel en el lienzo"
|
||||
},
|
||||
"selectEraser": {
|
||||
"title": "Seleccionar borrador",
|
||||
"desc": "Selecciona el borrador en el lienzo"
|
||||
},
|
||||
"decreaseBrushSize": {
|
||||
"title": "Disminuir tamaño de herramienta",
|
||||
"desc": "Disminuye el tamaño del pincel/borrador en el lienzo"
|
||||
},
|
||||
"increaseBrushSize": {
|
||||
"title": "Aumentar tamaño del pincel",
|
||||
"desc": "Aumenta el tamaño del pincel en el lienzo"
|
||||
},
|
||||
"decreaseBrushOpacity": {
|
||||
"title": "Disminuir opacidad del pincel",
|
||||
"desc": "Disminuye la opacidad del pincel en el lienzo"
|
||||
},
|
||||
"increaseBrushOpacity": {
|
||||
"title": "Aumentar opacidad del pincel",
|
||||
"desc": "Aumenta la opacidad del pincel en el lienzo"
|
||||
},
|
||||
"moveTool": {
|
||||
"title": "Herramienta de movimiento",
|
||||
"desc": "Permite navegar por el lienzo"
|
||||
},
|
||||
"fillBoundingBox": {
|
||||
"title": "Rellenar Caja contenedora",
|
||||
"desc": "Rellena la caja contenedora con el color seleccionado"
|
||||
},
|
||||
"eraseBoundingBox": {
|
||||
"title": "Borrar Caja contenedora",
|
||||
"desc": "Borra el contenido dentro de la caja contenedora"
|
||||
},
|
||||
"colorPicker": {
|
||||
"title": "Selector de color",
|
||||
"desc": "Selecciona un color del lienzo"
|
||||
},
|
||||
"toggleSnap": {
|
||||
"title": "Alternar ajuste de cuadrícula",
|
||||
"desc": "Activa o desactiva el ajuste automático a la cuadrícula"
|
||||
},
|
||||
"quickToggleMove": {
|
||||
"title": "Alternar movimiento rápido",
|
||||
"desc": "Activa momentáneamente la herramienta de movimiento"
|
||||
},
|
||||
"toggleLayer": {
|
||||
"title": "Alternar capa",
|
||||
"desc": "Alterna entre las capas de máscara y base"
|
||||
},
|
||||
"clearMask": {
|
||||
"title": "Limpiar máscara",
|
||||
"desc": "Limpia toda la máscara actual"
|
||||
},
|
||||
"hideMask": {
|
||||
"title": "Ocultar máscara",
|
||||
"desc": "Oculta o muetre la máscara actual"
|
||||
},
|
||||
"showHideBoundingBox": {
|
||||
"title": "Alternar caja contenedora",
|
||||
"desc": "Muestra u oculta la caja contenedora"
|
||||
},
|
||||
"mergeVisible": {
|
||||
"title": "Consolida capas visibles",
|
||||
"desc": "Consolida todas las capas visibles en una sola"
|
||||
},
|
||||
"saveToGallery": {
|
||||
"title": "Guardar en galería",
|
||||
"desc": "Guardar la imagen actual del lienzo en la galería"
|
||||
},
|
||||
"copyToClipboard": {
|
||||
"title": "Copiar al portapapeles",
|
||||
"desc": "Copiar el lienzo actual al portapapeles"
|
||||
},
|
||||
"downloadImage": {
|
||||
"title": "Descargar imagen",
|
||||
"desc": "Descargar la imagen actual del lienzo"
|
||||
},
|
||||
"undoStroke": {
|
||||
"title": "Deshar trazo",
|
||||
"desc": "Desahacer el último trazo del pincel"
|
||||
},
|
||||
"redoStroke": {
|
||||
"title": "Rehacer trazo",
|
||||
"desc": "Rehacer el último trazo del pincel"
|
||||
},
|
||||
"resetView": {
|
||||
"title": "Restablecer vista",
|
||||
"desc": "Restablecer la vista del lienzo"
|
||||
},
|
||||
"previousStagingImage": {
|
||||
"title": "Imagen anterior",
|
||||
"desc": "Imagen anterior en el área de preparación"
|
||||
},
|
||||
"nextStagingImage": {
|
||||
"title": "Imagen siguiente",
|
||||
"desc": "Siguiente imagen en el área de preparación"
|
||||
},
|
||||
"acceptStagingImage": {
|
||||
"title": "Aceptar imagen",
|
||||
"desc": "Aceptar la imagen actual en el área de preparación"
|
||||
}
|
||||
}
|
||||
@@ -34,6 +34,7 @@
|
||||
"checkpointFolder": "Checkpoint-Ordner",
|
||||
"clearCheckpointFolder": "Checkpoint-Ordner löschen",
|
||||
"findModels": "Models finden",
|
||||
"scanAgain": "Erneut scannen",
|
||||
"modelsFound": "Models gefunden",
|
||||
"selectFolder": "Ordner auswählen",
|
||||
"selected": "Ausgewählt",
|
||||
@@ -42,6 +43,8 @@
|
||||
"showExisting": "Vorhandene anzeigen",
|
||||
"addSelected": "Auswahl hinzufügen",
|
||||
"modelExists": "Model existiert",
|
||||
"selectAndAdd": "Unten aufgeführte Models auswählen und hinzufügen",
|
||||
"noModelsFound": "Keine Models gefunden",
|
||||
"delete": "Löschen",
|
||||
"deleteModel": "Model löschen",
|
||||
"deleteConfig": "Konfiguration löschen",
|
||||
|
||||
53
frontend/public/locales/modelmanager/es.json
Normal file
53
frontend/public/locales/modelmanager/es.json
Normal file
@@ -0,0 +1,53 @@
|
||||
{
|
||||
"modelManager": "Gestor de Modelos",
|
||||
"model": "Modelo",
|
||||
"modelAdded": "Modelo añadido",
|
||||
"modelUpdated": "Modelo actualizado",
|
||||
"modelEntryDeleted": "Endrada de Modelo eliminada",
|
||||
"cannotUseSpaces": "No se pueden usar Spaces",
|
||||
"addNew": "Añadir nuevo",
|
||||
"addNewModel": "Añadir nuevo modelo",
|
||||
"addManually": "Añadir manualmente",
|
||||
"manual": "Manual",
|
||||
"name": "Nombre",
|
||||
"nameValidationMsg": "Introduce un nombre para tu modelo",
|
||||
"description": "Descripción",
|
||||
"descriptionValidationMsg": "Introduce una descripción para tu modelo",
|
||||
"config": "Config",
|
||||
"configValidationMsg": "Ruta del archivo de configuración del modelo",
|
||||
"modelLocation": "Ubicación del Modelo",
|
||||
"modelLocationValidationMsg": "Ruta del archivo de modelo",
|
||||
"vaeLocation": "Ubicación VAE",
|
||||
"vaeLocationValidationMsg": "Ruta del archivo VAE",
|
||||
"width": "Ancho",
|
||||
"widthValidationMsg": "Ancho predeterminado de tu modelo",
|
||||
"height": "Alto",
|
||||
"heightValidationMsg": "Alto predeterminado de tu modelo",
|
||||
"addModel": "Añadir Modelo",
|
||||
"updateModel": "Actualizar Modelo",
|
||||
"availableModels": "Modelos disponibles",
|
||||
"search": "Búsqueda",
|
||||
"load": "Cargar",
|
||||
"active": "activo",
|
||||
"notLoaded": "no cargado",
|
||||
"cached": "en caché",
|
||||
"checkpointFolder": "Directorio de Checkpoint",
|
||||
"clearCheckpointFolder": "Limpiar directorio de checkpoint",
|
||||
"findModels": "Buscar modelos",
|
||||
"scanAgain": "Escanear de nuevo",
|
||||
"modelsFound": "Modelos encontrados",
|
||||
"selectFolder": "Selecciona un directorio",
|
||||
"selected": "Seleccionado",
|
||||
"selectAll": "Seleccionar todo",
|
||||
"deselectAll": "Deseleccionar todo",
|
||||
"showExisting": "Mostrar existentes",
|
||||
"addSelected": "Añadir seleccionados",
|
||||
"modelExists": "Modelo existente",
|
||||
"selectAndAdd": "Selecciona de la lista un modelo para añadir",
|
||||
"noModelsFound": "No se encontró ningún modelo",
|
||||
"delete": "Eliminar",
|
||||
"deleteModel": "Eliminar Modelo",
|
||||
"deleteConfig": "Eliminar Configuración",
|
||||
"deleteMsg1": "¿Estás seguro de querer eliminar esta entrada de modelo de InvokeAI?",
|
||||
"deleteMsg2": "El checkpoint del modelo no se eliminará de tu disco. Puedes volver a añadirlo si lo deseas."
|
||||
}
|
||||
@@ -1 +1,53 @@
|
||||
{}
|
||||
{
|
||||
"modelManager": "Менеджер моделей",
|
||||
"model": "Модель",
|
||||
"modelAdded": "Модель добавлена",
|
||||
"modelUpdated": "Модель обновлена",
|
||||
"modelEntryDeleted": "Запись о модели удалена",
|
||||
"cannotUseSpaces": "Нельзя использовать пробелы",
|
||||
"addNew": "Добавить новую",
|
||||
"addNewModel": "Добавить новую модель",
|
||||
"addManually": "Добавить вручную",
|
||||
"manual": "Ручное",
|
||||
"name": "Название",
|
||||
"nameValidationMsg": "Введите название модели",
|
||||
"description": "Описание",
|
||||
"descriptionValidationMsg": "Введите описание модели",
|
||||
"config": "Файл конфигурации",
|
||||
"configValidationMsg": "Путь до файла конфигурации",
|
||||
"modelLocation": "Расположение модели",
|
||||
"modelLocationValidationMsg": "Путь до файла с моделью",
|
||||
"vaeLocation": "Расположение VAE",
|
||||
"vaeLocationValidationMsg": "Путь до VAE",
|
||||
"width": "Ширина",
|
||||
"widthValidationMsg": "Исходная ширина изображений",
|
||||
"height": "Высота",
|
||||
"heightValidationMsg": "Исходная высота изображений",
|
||||
"addModel": "Добавить модель",
|
||||
"updateModel": "Обновить модель",
|
||||
"availableModels": "Доступные модели",
|
||||
"search": "Искать",
|
||||
"load": "Загрузить",
|
||||
"active": "активна",
|
||||
"notLoaded": "не загружена",
|
||||
"cached": "кэширована",
|
||||
"checkpointFolder": "Папка с моделями",
|
||||
"clearCheckpointFolder": "Очистить папку с моделями",
|
||||
"findModels": "Найти модели",
|
||||
"scanAgain": "Сканировать снова",
|
||||
"modelsFound": "Найденные модели",
|
||||
"selectFolder": "Выбрать папку",
|
||||
"selected": "Выбраны",
|
||||
"selectAll": "Выбрать все",
|
||||
"deselectAll": "Снять выделение",
|
||||
"showExisting": "Показывать добавленные",
|
||||
"addSelected": "Добавить выбранные",
|
||||
"modelExists": "Модель уже добавлена",
|
||||
"selectAndAdd": "Выберите и добавьте модели из списка",
|
||||
"noModelsFound": "Модели не найдены",
|
||||
"delete": "Удалить",
|
||||
"deleteModel": "Удалить модель",
|
||||
"deleteConfig": "Удалить конфигурацию",
|
||||
"deleteMsg1": "Вы точно хотите удалить модель из InvokeAI?",
|
||||
"deleteMsg2": "Это не удалит файл модели с диска. Позже вы можете добавить его снова."
|
||||
}
|
||||
|
||||
@@ -1 +1,50 @@
|
||||
{}
|
||||
{
|
||||
"modelManager": "模型管理器",
|
||||
"model": "模型",
|
||||
"modelAdded": "模型已添加",
|
||||
"modelUpdated": "模型已更新",
|
||||
"modelEntryDeleted": "模型已删除",
|
||||
"cannotUseSpaces": "不能使用空格",
|
||||
"addNew": "添加",
|
||||
"addNewModel": "添加新模型",
|
||||
"addManually": "手动添加",
|
||||
"manual": "手动",
|
||||
"name": "名称",
|
||||
"nameValidationMsg": "输入模型的名称",
|
||||
"description": "描述",
|
||||
"descriptionValidationMsg": "添加模型的描述",
|
||||
"config": "配置",
|
||||
"configValidationMsg": "模型配置文件的路径",
|
||||
"modelLocation": "模型位置",
|
||||
"modelLocationValidationMsg": "模型文件的路径",
|
||||
"vaeLocation": "VAE 位置",
|
||||
"vaeLocationValidationMsg": "VAE 文件的路径",
|
||||
"width": "宽度",
|
||||
"widthValidationMsg": "模型的默认宽度",
|
||||
"height": "高度",
|
||||
"heightValidationMsg": "模型的默认高度",
|
||||
"addModel": "添加模型",
|
||||
"updateModel": "更新模型",
|
||||
"availableModels": "可用模型",
|
||||
"search": "搜索",
|
||||
"load": "加载",
|
||||
"active": "活跃",
|
||||
"notLoaded": "未加载",
|
||||
"cached": "缓存",
|
||||
"checkpointFolder": "模型检查点文件夹",
|
||||
"clearCheckpointFolder": "清除模型检查点文件夹",
|
||||
"findModels": "寻找模型",
|
||||
"modelsFound": "找到的模型",
|
||||
"selectFolder": "选择文件夹",
|
||||
"selected": "已选择",
|
||||
"selectAll": "选择所有",
|
||||
"deselectAll": "取消选择所有",
|
||||
"showExisting": "显示已存在",
|
||||
"addSelected": "添加选择",
|
||||
"modelExists": "模型已存在",
|
||||
"delete": "删除",
|
||||
"deleteModel": "删除模型",
|
||||
"deleteConfig": "删除配置",
|
||||
"deleteMsg1": "您确定要将这个模型从 InvokeAI 删除吗?",
|
||||
"deleteMsg2": "这不会从磁盘中删除模型检查点文件。如果您愿意,可以重新添加它们。"
|
||||
}
|
||||
|
||||
62
frontend/public/locales/options/es.json
Normal file
62
frontend/public/locales/options/es.json
Normal file
@@ -0,0 +1,62 @@
|
||||
{
|
||||
"images": "Imágenes",
|
||||
"steps": "Pasos",
|
||||
"cfgScale": "Escala CFG",
|
||||
"width": "Ancho",
|
||||
"height": "Alto",
|
||||
"sampler": "Muestreo",
|
||||
"seed": "Semilla",
|
||||
"randomizeSeed": "Semilla aleatoria",
|
||||
"shuffle": "Aleatorizar",
|
||||
"noiseThreshold": "Umbral de Ruido",
|
||||
"perlinNoise": "Ruido Perlin",
|
||||
"variations": "Variaciones",
|
||||
"variationAmount": "Cantidad de Variación",
|
||||
"seedWeights": "Peso de las semillas",
|
||||
"faceRestoration": "Restauración de Rostros",
|
||||
"restoreFaces": "Restaurar rostros",
|
||||
"type": "Tipo",
|
||||
"strength": "Fuerza",
|
||||
"upscaling": "Aumento de resolución",
|
||||
"upscale": "Aumentar resolución",
|
||||
"upscaleImage": "Aumentar la resolución de la imagen",
|
||||
"scale": "Escala",
|
||||
"otherOptions": "Otras opciones",
|
||||
"seamlessTiling": "Mosaicos sin parches",
|
||||
"hiresOptim": "Optimización de Alta Resolución",
|
||||
"imageFit": "Ajuste tamaño de imagen inicial al tamaño objetivo",
|
||||
"codeformerFidelity": "Fidelidad",
|
||||
"seamSize": "Tamaño del parche",
|
||||
"seamBlur": "Desenfoque del parche",
|
||||
"seamStrength": "Fuerza del parche",
|
||||
"seamSteps": "Pasos del parche",
|
||||
"inpaintReplace": "Reemplazar impresión interior",
|
||||
"scaleBeforeProcessing": "Redimensionar antes de procesar",
|
||||
"scaledWidth": "Ancho escalado",
|
||||
"scaledHeight": "Alto escalado",
|
||||
"infillMethod": "Método de relleno",
|
||||
"tileSize": "Tamaño del mosaico",
|
||||
"boundingBoxHeader": "Caja contenedora",
|
||||
"seamCorrectionHeader": "Corrección de parches",
|
||||
"infillScalingHeader": "Remplazo y escalado",
|
||||
"img2imgStrength": "Peso de Imagen a Imagen",
|
||||
"toggleLoopback": "Alternar Retroalimentación",
|
||||
"invoke": "Invocar",
|
||||
"cancel": "Cancelar",
|
||||
"promptPlaceholder": "Ingrese la entrada aquí. [símbolos negativos], (subir peso)++, (bajar peso)--, también disponible alternado y mezclado (ver documentación)",
|
||||
"sendTo": "Enviar a",
|
||||
"sendToImg2Img": "Enviar a Imagen a Imagen",
|
||||
"sendToUnifiedCanvas": "Enviar a Lienzo Unificado",
|
||||
"copyImageToLink": "Copiar imagen a enlace",
|
||||
"downloadImage": "Descargar imagen",
|
||||
"openInViewer": "Abrir en Visor",
|
||||
"closeViewer": "Cerrar Visor",
|
||||
"usePrompt": "Usar Entrada",
|
||||
"useSeed": "Usar Semilla",
|
||||
"useAll": "Usar Todo",
|
||||
"useInitImg": "Usar Imagen Inicial",
|
||||
"info": "Información",
|
||||
"deleteImage": "Eliminar Imagen",
|
||||
"initialImage": "Imagen Inicial",
|
||||
"showOptionsPanel": "Mostrar panel de opciones"
|
||||
}
|
||||
@@ -5,7 +5,7 @@
|
||||
"width": "Ширина",
|
||||
"height": "Высота",
|
||||
"sampler": "Семплер",
|
||||
"seed": "Сид (Seed)",
|
||||
"seed": "Сид",
|
||||
"randomizeSeed": "Случайный сид",
|
||||
"shuffle": "Обновить",
|
||||
"noiseThreshold": "Порог шума",
|
||||
|
||||
13
frontend/public/locales/settings/es.json
Normal file
13
frontend/public/locales/settings/es.json
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"models": "Modelos",
|
||||
"displayInProgress": "Mostrar imágenes en progreso",
|
||||
"saveSteps": "Guardar imágenes cada n pasos",
|
||||
"confirmOnDelete": "Confirmar antes de eliminar",
|
||||
"displayHelpIcons": "Mostrar iconos de ayuda",
|
||||
"useCanvasBeta": "Usar versión beta del Lienzo",
|
||||
"enableImageDebugging": "Habilitar depuración de imágenes",
|
||||
"resetWebUI": "Restablecer interfaz web",
|
||||
"resetWebUIDesc1": "Al restablecer la interfaz web, solo se restablece la caché local del navegador de sus imágenes y la configuración guardada. No se elimina ninguna imagen de su disco duro.",
|
||||
"resetWebUIDesc2": "Si las imágenes no se muestran en la galería o algo más no funciona, intente restablecer antes de reportar un incidente en GitHub.",
|
||||
"resetComplete": "La interfaz web se ha restablecido. Actualice la página para recargarla."
|
||||
}
|
||||
@@ -4,7 +4,7 @@
|
||||
"saveSteps": "Zapisuj obrazy co X kroków",
|
||||
"confirmOnDelete": "Potwierdzaj usuwanie",
|
||||
"displayHelpIcons": "Wyświetlaj ikony pomocy",
|
||||
"useCanvasBeta": "Nowego układ trybu uniwersalnego",
|
||||
"useCanvasBeta": "Nowy układ trybu uniwersalnego",
|
||||
"enableImageDebugging": "Włącz debugowanie obrazu",
|
||||
"resetWebUI": "Zresetuj interfejs",
|
||||
"resetWebUIDesc1": "Resetowanie interfejsu wyczyści jedynie dane i ustawienia zapisane w pamięci przeglądarki. Nie usunie żadnych obrazów z dysku.",
|
||||
|
||||
32
frontend/public/locales/toast/es.json
Normal file
32
frontend/public/locales/toast/es.json
Normal file
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"tempFoldersEmptied": "Directorio temporal vaciado",
|
||||
"uploadFailed": "Error al subir archivo",
|
||||
"uploadFailedMultipleImagesDesc": "Únicamente se puede subir una imágen a la vez",
|
||||
"uploadFailedUnableToLoadDesc": "No se pudo cargar la imágen",
|
||||
"downloadImageStarted": "Descargando imágen",
|
||||
"imageCopied": "Imágen copiada",
|
||||
"imageLinkCopied": "Enlace de imágen copiado",
|
||||
"imageNotLoaded": "No se cargó la imágen",
|
||||
"imageNotLoadedDesc": "No se encontró imagen para enviar al módulo Imagen a Imagen",
|
||||
"imageSavedToGallery": "Imágen guardada en la galería",
|
||||
"canvasMerged": "Lienzo consolidado",
|
||||
"sentToImageToImage": "Enviar hacia Imagen a Imagen",
|
||||
"sentToUnifiedCanvas": "Enviar hacia Lienzo Consolidado",
|
||||
"parametersSet": "Parámetros establecidos",
|
||||
"parametersNotSet": "Parámetros no establecidos",
|
||||
"parametersNotSetDesc": "No se encontraron metadatos para esta imágen.",
|
||||
"parametersFailed": "Error cargando parámetros",
|
||||
"parametersFailedDesc": "No fue posible cargar la imagen inicial.",
|
||||
"seedSet": "Semilla establecida",
|
||||
"seedNotSet": "Semilla no establecida",
|
||||
"seedNotSetDesc": "No se encontró una semilla para esta imágen.",
|
||||
"promptSet": "Entrada establecida",
|
||||
"promptNotSet": "Entrada no establecida",
|
||||
"promptNotSetDesc": "No se encontró una entrada para esta imágen.",
|
||||
"upscalingFailed": "Error al aumentar tamaño de imagn",
|
||||
"faceRestoreFailed": "Restauración de rostro fallida",
|
||||
"metadataLoadFailed": "Error al cargar metadatos",
|
||||
"initialImageSet": "Imágen inicial establecida",
|
||||
"initialImageNotSet": "Imagen inicial no establecida",
|
||||
"initialImageNotSetDesc": "Error al establecer la imágen inicial"
|
||||
}
|
||||
15
frontend/public/locales/tooltip/de.json
Normal file
15
frontend/public/locales/tooltip/de.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"feature": {
|
||||
"prompt": "Dies ist das Prompt-Feld. Ein Prompt enthält Generierungsobjekte und stilistische Begriffe. Sie können auch Gewichtungen (Token-Bedeutung) dem Prompt hinzufügen, aber CLI-Befehle und Parameter funktionieren nicht.",
|
||||
"gallery": "Die Galerie zeigt erzeugte Bilder aus dem Ausgabeordner an, sobald sie erstellt wurden. Die Einstellungen werden in den Dateien gespeichert und können über das Kontextmenü aufgerufen werden.",
|
||||
"other": "Mit diesen Optionen werden alternative Verarbeitungsmodi für InvokeAI aktiviert. 'Nahtlose Kachelung' erzeugt sich wiederholende Muster in der Ausgabe. 'Hohe Auflösungen' werden in zwei Schritten mit img2img erzeugt: Verwenden Sie diese Einstellung, wenn Sie ein größeres und kohärenteres Bild ohne Artefakte wünschen. Es dauert länger als das normale txt2img.",
|
||||
"seed": "Der Seed-Wert beeinflusst das Ausgangsrauschen, aus dem das Bild erstellt wird. Sie können die bereits vorhandenen Seeds von früheren Bildern verwenden. 'Der Rauschschwellenwert' wird verwendet, um Artefakte bei hohen CFG-Werten abzuschwächen (versuchen Sie es im Bereich 0-10), und Perlin, um während der Erzeugung Perlin-Rauschen hinzuzufügen: Beide dienen dazu, Ihre Ergebnisse zu variieren.",
|
||||
"variations": "Versuchen Sie eine Variation mit einem Wert zwischen 0,1 und 1,0, um das Ergebnis für ein bestimmtes Seed zu ändern. Interessante Variationen des Seeds liegen zwischen 0,1 und 0,3.",
|
||||
"upscale": "Verwenden Sie ESRGAN, um das Bild unmittelbar nach der Erzeugung zu vergrößern.",
|
||||
"faceCorrection": "Gesichtskorrektur mit GFPGAN oder Codeformer: Der Algorithmus erkennt Gesichter im Bild und korrigiert alle Fehler. Ein hoher Wert verändert das Bild stärker, was zu attraktiveren Gesichtern führt. Codeformer mit einer höheren Genauigkeit bewahrt das Originalbild auf Kosten einer stärkeren Gesichtskorrektur.",
|
||||
"imageToImage": "Bild zu Bild lädt ein beliebiges Bild als Ausgangsbild, aus dem dann zusammen mit dem Prompt ein neues Bild erzeugt wird. Je höher der Wert ist, desto stärker wird das Ergebnisbild verändert. Werte von 0,0 bis 1,0 sind möglich, der empfohlene Bereich ist .25-.75",
|
||||
"boundingBox": "Der Begrenzungsrahmen ist derselbe wie die Einstellungen für Breite und Höhe bei Text zu Bild oder Bild zu Bild. Es wird nur der Bereich innerhalb des Rahmens verarbeitet.",
|
||||
"seamCorrection": "Steuert die Behandlung von sichtbaren Übergängen, die zwischen den erzeugten Bildern auf der Leinwand auftreten.",
|
||||
"infillAndScaling": "Verwalten Sie Infill-Methoden (für maskierte oder gelöschte Bereiche der Leinwand) und Skalierung (nützlich für kleine Begrenzungsrahmengrößen)."
|
||||
}
|
||||
}
|
||||
15
frontend/public/locales/tooltip/en-US.json
Normal file
15
frontend/public/locales/tooltip/en-US.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"feature": {
|
||||
"prompt": "This is the prompt field. Prompt includes generation objects and stylistic terms. You can add weight (token importance) in the prompt as well, but CLI commands and parameters will not work.",
|
||||
"gallery": "Gallery displays generations from the outputs folder as they're created. Settings are stored within files and accesed by context menu.",
|
||||
"other": "These options will enable alternative processing modes for Invoke. 'Seamless tiling' will create repeating patterns in the output. 'High resolution' is generation in two steps with img2img: use this setting when you want a larger and more coherent image without artifacts. It will take longer that usual txt2img.",
|
||||
"seed": "Seed value affects the initial noise from which the image is formed. You can use the already existing seeds from previous images. 'Noise Threshold' is used to mitigate artifacts at high CFG values (try the 0-10 range), and Perlin to add Perlin noise during generation: both serve to add variation to your outputs.",
|
||||
"variations": "Try a variation with a value between 0.1 and 1.0 to change the result for a given seed. Interesting variations of the seed are between 0.1 and 0.3.",
|
||||
"upscale": "Use ESRGAN to enlarge the image immediately after generation.",
|
||||
"faceCorrection": "Face correction with GFPGAN or Codeformer: the algorithm detects faces in the image and corrects any defects. High value will change the image more, resulting in more attractive faces. Codeformer with a higher fidelity preserves the original image at the expense of stronger face correction.",
|
||||
"imageToImage": "Image to Image loads any image as initial, which is then used to generate a new one along with the prompt. The higher the value, the more the result image will change. Values from 0.0 to 1.0 are possible, the recommended range is .25-.75",
|
||||
"boundingBox": "The bounding box is the same as the Width and Height settings for Text to Image or Image to Image. Only the area in the box will be processed.",
|
||||
"seamCorrection": "Controls the handling of visible seams that occur between generated images on the canvas.",
|
||||
"infillAndScaling": "Manage infill methods (used on masked or erased areas of the canvas) and scaling (useful for small bounding box sizes)."
|
||||
}
|
||||
}
|
||||
15
frontend/public/locales/tooltip/en.json
Normal file
15
frontend/public/locales/tooltip/en.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"feature": {
|
||||
"prompt": "This is the prompt field. Prompt includes generation objects and stylistic terms. You can add weight (token importance) in the prompt as well, but CLI commands and parameters will not work.",
|
||||
"gallery": "Gallery displays generations from the outputs folder as they're created. Settings are stored within files and accesed by context menu.",
|
||||
"other": "These options will enable alternative processing modes for Invoke. 'Seamless tiling' will create repeating patterns in the output. 'High resolution' is generation in two steps with img2img: use this setting when you want a larger and more coherent image without artifacts. It will take longer that usual txt2img.",
|
||||
"seed": "Seed value affects the initial noise from which the image is formed. You can use the already existing seeds from previous images. 'Noise Threshold' is used to mitigate artifacts at high CFG values (try the 0-10 range), and Perlin to add Perlin noise during generation: both serve to add variation to your outputs.",
|
||||
"variations": "Try a variation with a value between 0.1 and 1.0 to change the result for a given seed. Interesting variations of the seed are between 0.1 and 0.3.",
|
||||
"upscale": "Use ESRGAN to enlarge the image immediately after generation.",
|
||||
"faceCorrection": "Face correction with GFPGAN or Codeformer: the algorithm detects faces in the image and corrects any defects. High value will change the image more, resulting in more attractive faces. Codeformer with a higher fidelity preserves the original image at the expense of stronger face correction.",
|
||||
"imageToImage": "Image to Image loads any image as initial, which is then used to generate a new one along with the prompt. The higher the value, the more the result image will change. Values from 0.0 to 1.0 are possible, the recommended range is .25-.75",
|
||||
"boundingBox": "The bounding box is the same as the Width and Height settings for Text to Image or Image to Image. Only the area in the box will be processed.",
|
||||
"seamCorrection": "Controls the handling of visible seams that occur between generated images on the canvas.",
|
||||
"infillAndScaling": "Manage infill methods (used on masked or erased areas of the canvas) and scaling (useful for small bounding box sizes)."
|
||||
}
|
||||
}
|
||||
15
frontend/public/locales/tooltip/es.json
Normal file
15
frontend/public/locales/tooltip/es.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"feature": {
|
||||
"prompt": "Este campo tomará todo el texto de entrada, incluidos tanto los términos de contenido como los estilísticos. Si bien se pueden incluir pesos en la solicitud, los comandos/parámetros estándar de línea de comandos no funcionarán.",
|
||||
"gallery": "Conforme se generan nuevas invocaciones, los archivos del directorio de salida se mostrarán aquí. Las generaciones tienen opciones adicionales para configurar nuevas generaciones.",
|
||||
"other": "Estas opciones habilitarán modos de procesamiento alternativos para Invoke. El modo sin costuras funciona para generar patrones repetitivos en la salida. La optimización de alta resolución realiza un ciclo de generación de dos pasos y debe usarse en resoluciones más altas cuando desee una imagen/composición más coherente.",
|
||||
"seed": "Los valores de semilla proporcionan un conjunto inicial de ruido que guían el proceso de eliminación de ruido y se pueden aleatorizar o rellenar con una semilla de una invocación anterior. La función Umbral se puede usar para mitigar resultados indeseables a valores CFG más altos (intente entre 0-10), y Perlin se puede usar para agregar ruido Perlin al proceso de eliminación de ruido. Ambos sirven para agregar variación a sus salidas.",
|
||||
"variations": "Pruebe una variación con una cantidad entre 0 y 1 para cambiar la imagen de salida para la semilla establecida. Se encuentran variaciones interesantes en la semilla entre 0.1 y 0.3.",
|
||||
"upscale": "Usando ESRGAN, puede aumentar la resolución de salida sin requerir un ancho/alto más alto en la generación inicial.",
|
||||
"faceCorrection": "Usando GFPGAN o Codeformer, la corrección de rostros intentará identificar rostros en las salidas y corregir cualquier defecto/anormalidad. Los valores de fuerza más altos aplicarán una presión correctiva más fuerte en las salidas, lo que resultará en rostros más atractivos. Con Codeformer, una mayor fidelidad intentará preservar la imagen original, a expensas de la fuerza de corrección de rostros.",
|
||||
"imageToImage": "Imagen a Imagen permite cargar una imagen inicial, que InvokeAI usará para guiar el proceso de generación, junto con una solicitud. Un valor más bajo para esta configuración se parecerá más a la imagen original. Se aceptan valores entre 0-1, y se recomienda un rango de .25-.75.",
|
||||
"boundingBox": "La caja delimitadora es análoga a las configuraciones de Ancho y Alto para Texto a Imagen o Imagen a Imagen. Solo se procesará el área en la caja.",
|
||||
"seamCorrection": "Controla el manejo de parches visibles que pueden ocurrir cuando se pega una imagen generada de nuevo en el lienzo.",
|
||||
"infillAndScaling": "Administra los métodos de relleno (utilizados en áreas enmascaradas o borradas del lienzo) y la escala (útil para tamaños de caja delimitadora pequeños)."
|
||||
}
|
||||
}
|
||||
1
frontend/public/locales/tooltip/it.json
Normal file
1
frontend/public/locales/tooltip/it.json
Normal file
@@ -0,0 +1 @@
|
||||
{}
|
||||
15
frontend/public/locales/tooltip/pl.json
Normal file
15
frontend/public/locales/tooltip/pl.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"feature": {
|
||||
"prompt": "To pole musi zawierać cały tekst sugestii, w tym zarówno opis oczekiwanej zawartości, jak i terminy stylistyczne. Chociaż wagi mogą być zawarte w sugestiach, inne parametry znane z linii poleceń nie będą działać.",
|
||||
"gallery": "W miarę generowania nowych wywołań w tym miejscu będą wyświetlane pliki z katalogu wyjściowego. Obrazy mają dodatkowo opcje konfiguracji nowych wywołań.",
|
||||
"other": "Opcje umożliwią alternatywne tryby przetwarzania. Płynne scalanie będzie pomocne przy generowaniu powtarzających się wzorów. Optymalizacja wysokiej rozdzielczości wykonuje dwuetapowy cykl generowania i powinna być używana przy wyższych rozdzielczościach, gdy potrzebny jest bardziej spójny obraz/kompozycja.",
|
||||
"seed": "Inicjator określa początkowy zestaw szumów, który kieruje procesem odszumiania i może być losowy lub pobrany z poprzedniego wywołania. Funkcja \"Poziom szumu\" może być użyta do złagodzenia saturacji przy wyższych wartościach CFG (spróbuj między 0-10), a Perlin może być użyty w celu dodania wariacji do twoich wyników.",
|
||||
"variations": "Poziom zróżnicowania przyjmuje wartości od 0 do 1 i pozwala zmienić obraz wyjściowy dla ustawionego inicjatora. Interesujące wyniki uzyskuje się zwykle między 0,1 a 0,3.",
|
||||
"upscale": "Korzystając z ESRGAN, możesz zwiększyć rozdzielczość obrazu wyjściowego bez konieczności zwiększania szerokości/wysokości w ustawieniach początkowych.",
|
||||
"faceCorrection": "Poprawianie twarzy próbuje identyfikować twarze na obrazie wyjściowym i korygować wszelkie defekty/nieprawidłowości. W GFPGAN im większa siła, tym mocniejszy efekt. W metodzie Codeformer wyższa wartość oznacza bardziej wierne odtworzenie oryginalnej twarzy, nawet kosztem siły korekcji.",
|
||||
"imageToImage": "Tryb \"Obraz na obraz\" pozwala na załadowanie obrazu wzorca, który obok wprowadzonych sugestii zostanie użyty porzez InvokeAI do wygenerowania nowego obrazu. Niższa wartość tego ustawienia będzie bardziej przypominać oryginalny obraz. Akceptowane są wartości od 0 do 1, a zalecany jest zakres od 0,25 do 0,75.",
|
||||
"boundingBox": "Zaznaczony obszar odpowiada ustawieniom wysokości i szerokości w trybach Tekst na obraz i Obraz na obraz. Jedynie piksele znajdujące się w obszarze zaznaczenia zostaną uwzględnione podczas wywoływania nowego obrazu.",
|
||||
"seamCorrection": "Opcje wpływające na poziom widoczności szwów, które mogą wystąpić, gdy wygenerowany obraz jest ponownie wklejany na płótno.",
|
||||
"infillAndScaling": "Zarządzaj metodami wypełniania (używanymi na zamaskowanych lub wymazanych obszarach płótna) i skalowaniem (przydatne w przypadku zaznaczonego obszaru o b. małych rozmiarach)."
|
||||
}
|
||||
}
|
||||
1
frontend/public/locales/tooltip/pt_br.json
Normal file
1
frontend/public/locales/tooltip/pt_br.json
Normal file
@@ -0,0 +1 @@
|
||||
{}
|
||||
15
frontend/public/locales/tooltip/ru.json
Normal file
15
frontend/public/locales/tooltip/ru.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"feature": {
|
||||
"prompt": "Это поле для текста запроса, включая объекты генерации и стилистические термины. В запрос можно включить и коэффициенты веса (значимости токена), но консольные команды и параметры не будут работать.",
|
||||
"gallery": "Здесь отображаются генерации из папки outputs по мере их появления.",
|
||||
"other": "Эти опции включают альтернативные режимы обработки для Invoke. 'Бесшовный узор' создаст повторяющиеся узоры на выходе. 'Высокое разрешение' это генерация в два этапа с помощью img2img: используйте эту настройку, когда хотите получить цельное изображение большего размера без артефактов.",
|
||||
"seed": "Значение сида влияет на начальный шум, из которого сформируется изображение. Можно использовать уже имеющийся сид из предыдущих изображений. 'Порог шума' используется для смягчения артефактов при высоких значениях CFG (попробуйте в диапазоне 0-10), а Перлин для добавления шума Перлина в процессе генерации: оба параметра служат для большей вариативности результатов.",
|
||||
"variations": "Попробуйте вариацию со значением от 0.1 до 1.0, чтобы изменить результат для заданного сида. Интересные вариации сида находятся между 0.1 и 0.3.",
|
||||
"upscale": "Используйте ESRGAN, чтобы увеличить изображение сразу после генерации.",
|
||||
"faceCorrection": "Коррекция лиц с помощью GFPGAN или Codeformer: алгоритм определяет лица в готовом изображении и исправляет любые дефекты. Высокие значение силы меняет изображение сильнее, в результате лица будут выглядеть привлекательнее. У Codeformer более высокая точность сохранит исходное изображение в ущерб коррекции лица.",
|
||||
"imageToImage": "'Изображение в изображение' загружает любое изображение, которое затем используется для генерации вместе с запросом. Чем больше значение, тем сильнее изменится изображение в результате. Возможны значения от 0 до 1, рекомендуется диапазон .25-.75",
|
||||
"boundingBox": "'Ограничительная рамка' аналогична настройкам Ширина и Высота для 'Избражения из текста' или 'Изображения в изображение'. Будет обработана только область в рамке.",
|
||||
"seamCorrection": "Управление обработкой видимых швов, возникающих между изображениями на холсте.",
|
||||
"infillAndScaling": "Управление методами заполнения (используется для масок или стертых областей холста) и масштабирования (полезно для малых размеров ограничивающей рамки)."
|
||||
}
|
||||
}
|
||||
15
frontend/public/locales/tooltips/it.json
Normal file
15
frontend/public/locales/tooltips/it.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"feature": {
|
||||
"prompt": "Questo è il campo del prompt. Il prompt include oggetti di generazione e termini stilistici. Puoi anche aggiungere il peso (importanza del token) nel prompt, ma i comandi e i parametri dell'interfaccia a linea di comando non funzioneranno.",
|
||||
"gallery": "Galleria visualizza le generazioni dalla cartella degli output man mano che vengono create. Le impostazioni sono memorizzate all'interno di file e accessibili dal menu contestuale.",
|
||||
"other": "Queste opzioni abiliteranno modalità di elaborazione alternative per Invoke. 'Piastrella senza cuciture' creerà modelli ripetuti nell'output. 'Ottimizzzazione Alta risoluzione' è la generazione in due passaggi con 'Immagine a Immagine': usa questa impostazione quando vuoi un'immagine più grande e più coerente senza artefatti. Ci vorrà più tempo del solito 'Testo a Immagine'.",
|
||||
"seed": "Il valore del Seme influenza il rumore iniziale da cui è formata l'immagine. Puoi usare i semi già esistenti dalle immagini precedenti. 'Soglia del rumore' viene utilizzato per mitigare gli artefatti a valori CFG elevati (provare l'intervallo 0-10) e Perlin per aggiungere il rumore Perlin durante la generazione: entrambi servono per aggiungere variazioni ai risultati.",
|
||||
"variations": "Prova una variazione con un valore compreso tra 0.1 e 1.0 per modificare il risultato per un dato seme. Variazioni interessanti del seme sono comprese tra 0.1 e 0.3.",
|
||||
"upscale": "Utilizza ESRGAN per ingrandire l'immagine subito dopo la generazione.",
|
||||
"faceCorrection": "Correzione del volto con GFPGAN o Codeformer: l'algoritmo rileva i volti nell'immagine e corregge eventuali difetti. Un valore alto cambierà maggiormente l'immagine, dando luogo a volti più attraenti. Codeformer con una maggiore fedeltà preserva l'immagine originale a scapito di una correzione facciale più forte.",
|
||||
"imageToImage": "Da Immagine a Immagine carica qualsiasi immagine come iniziale, che viene quindi utilizzata per generarne una nuova in base al prompt. Più alto è il valore, più cambierà l'immagine risultante. Sono possibili valori da 0.0 a 1.0, l'intervallo consigliato è 0.25-0.75",
|
||||
"boundingBox": "Il riquadro di selezione è lo stesso delle impostazioni Larghezza e Altezza per dat Testo a Immagine o da Immagine a Immagine. Verrà elaborata solo l'area nella casella.",
|
||||
"seamCorrection": "Controlla la gestione delle giunzioni visibili che si verificano tra le immagini generate sulla tela.",
|
||||
"infillAndScaling": "Gestisce i metodi di riempimento (utilizzati su aree mascherate o cancellate dell'area di disegno) e il ridimensionamento (utile per i riquadri di selezione di piccole dimensioni)."
|
||||
}
|
||||
}
|
||||
59
frontend/public/locales/unifiedcanvas/es.json
Normal file
59
frontend/public/locales/unifiedcanvas/es.json
Normal file
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"layer": "Capa",
|
||||
"base": "Base",
|
||||
"mask": "Máscara",
|
||||
"maskingOptions": "Opciones de máscara",
|
||||
"enableMask": "Habilitar Máscara",
|
||||
"preserveMaskedArea": "Preservar área enmascarada",
|
||||
"clearMask": "Limpiar máscara",
|
||||
"brush": "Pincel",
|
||||
"eraser": "Borrador",
|
||||
"fillBoundingBox": "Rellenar Caja Contenedora",
|
||||
"eraseBoundingBox": "Eliminar Caja Contenedora",
|
||||
"colorPicker": "Selector de color",
|
||||
"brushOptions": "Opciones de pincel",
|
||||
"brushSize": "Tamaño",
|
||||
"move": "Mover",
|
||||
"resetView": "Restablecer vista",
|
||||
"mergeVisible": "Consolidar vista",
|
||||
"saveToGallery": "Guardar en galería",
|
||||
"copyToClipboard": "Copiar al portapapeles",
|
||||
"downloadAsImage": "Descargar como imagen",
|
||||
"undo": "Deshacer",
|
||||
"redo": "Rehacer",
|
||||
"clearCanvas": "Limpiar lienzo",
|
||||
"canvasSettings": "Ajustes de lienzo",
|
||||
"showIntermediates": "Mostrar intermedios",
|
||||
"showGrid": "Mostrar cuadrícula",
|
||||
"snapToGrid": "Ajustar a cuadrícula",
|
||||
"darkenOutsideSelection": "Oscurecer fuera de la selección",
|
||||
"autoSaveToGallery": "Guardar automáticamente en galería",
|
||||
"saveBoxRegionOnly": "Guardar solo región dentro de la caja",
|
||||
"limitStrokesToBox": "Limitar trazos a la caja",
|
||||
"showCanvasDebugInfo": "Mostrar información de depuración de lienzo",
|
||||
"clearCanvasHistory": "Limpiar historial de lienzo",
|
||||
"clearHistory": "Limpiar historial",
|
||||
"clearCanvasHistoryMessage": "Limpiar el historial de lienzo también restablece completamente el lienzo unificado. Esto incluye todo el historial de deshacer/rehacer, las imágenes en el área de preparación y la capa base del lienzo.",
|
||||
"clearCanvasHistoryConfirm": "¿Está seguro de que desea limpiar el historial del lienzo?",
|
||||
"emptyTempImageFolder": "Vaciar directorio de imágenes temporales",
|
||||
"emptyFolder": "Vaciar directorio",
|
||||
"emptyTempImagesFolderMessage": "Vaciar el directorio de imágenes temporales también restablece completamente el lienzo unificado. Esto incluye todo el historial de deshacer/rehacer, las imágenes en el área de preparación y la capa base del lienzo.",
|
||||
"emptyTempImagesFolderConfirm": "¿Está seguro de que desea vaciar el directorio temporal?",
|
||||
"activeLayer": "Capa activa",
|
||||
"canvasScale": "Escala de lienzo",
|
||||
"boundingBox": "Caja contenedora",
|
||||
"scaledBoundingBox": "Caja contenedora escalada",
|
||||
"boundingBoxPosition": "Posición de caja contenedora",
|
||||
"canvasDimensions": "Dimensiones de lienzo",
|
||||
"canvasPosition": "Posición de lienzo",
|
||||
"cursorPosition": "Posición del cursor",
|
||||
"previous": "Anterior",
|
||||
"next": "Siguiente",
|
||||
"accept": "Aceptar",
|
||||
"showHide": "Mostrar/Ocultar",
|
||||
"discardAll": "Descartar todo",
|
||||
"betaClear": "Limpiar",
|
||||
"betaDarkenOutside": "Oscurecer fuera",
|
||||
"betaLimitToBox": "Limitar a caja",
|
||||
"betaPreserveMasked": "Preservar área enmascarada"
|
||||
}
|
||||
@@ -1,3 +1,6 @@
|
||||
import { useMemo } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
|
||||
type FeatureHelpInfo = {
|
||||
text: string;
|
||||
href: string;
|
||||
@@ -21,60 +24,71 @@ export enum Feature {
|
||||
*
|
||||
* To-do: href & GuideImages are placeholders, and are not currently utilized, but will be updated (along with the tooltip UI) as feature and UI develop and we get a better idea on where things "forever homes" will be .
|
||||
*/
|
||||
export const FEATURES: Record<Feature, FeatureHelpInfo> = {
|
||||
[Feature.PROMPT]: {
|
||||
text: 'This field will take all prompt text, including both content and stylistic terms. While weights can be included in the prompt, standard CLI Commands/parameters will not work.',
|
||||
href: 'link/to/docs/feature3.html',
|
||||
guideImage: 'asset/path.gif',
|
||||
},
|
||||
[Feature.GALLERY]: {
|
||||
text: 'As new invocations are generated, files from the output directory will be displayed here. Generations have additional options to configure new generations.',
|
||||
href: 'link/to/docs/feature3.html',
|
||||
guideImage: 'asset/path.gif',
|
||||
},
|
||||
[Feature.OTHER]: {
|
||||
text: 'These options will enable alternative processing modes for Invoke. Seamless tiling will work to generate repeating patterns in the output. High Resolution Optimization performs a two-step generation cycle, and should be used at higher resolutions when you desire a more coherent image/composition. ',
|
||||
href: 'link/to/docs/feature3.html',
|
||||
guideImage: 'asset/path.gif',
|
||||
},
|
||||
[Feature.SEED]: {
|
||||
text: 'Seed values provide an initial set of noise which guide the denoising process, and can be randomized or populated with a seed from a previous invocation. The Threshold feature can be used to mitigate undesirable outcomes at higher CFG values (try between 0-10), and Perlin can be used to add Perlin noise into the denoising process - Both serve to add variation to your outputs. ',
|
||||
href: 'link/to/docs/feature3.html',
|
||||
guideImage: 'asset/path.gif',
|
||||
},
|
||||
[Feature.VARIATIONS]: {
|
||||
text: 'Try a variation with an amount of between 0 and 1 to change the output image for the set seed - Interesting variations on the seed are found between 0.1 and 0.3.',
|
||||
href: 'link/to/docs/feature3.html',
|
||||
guideImage: 'asset/path.gif',
|
||||
},
|
||||
[Feature.UPSCALE]: {
|
||||
text: 'Using ESRGAN you can increase the output resolution without requiring a higher width/height in the initial generation.',
|
||||
href: 'link/to/docs/feature1.html',
|
||||
guideImage: 'asset/path.gif',
|
||||
},
|
||||
[Feature.FACE_CORRECTION]: {
|
||||
text: 'Using GFPGAN or Codeformer, Face Correction will attempt to identify faces in outputs, and correct any defects/abnormalities. Higher strength values will apply a stronger corrective pressure on outputs, resulting in more appealing faces. With Codeformer, a higher fidelity will attempt to preserve the original image, at the expense of face correction strength.',
|
||||
href: 'link/to/docs/feature3.html',
|
||||
guideImage: 'asset/path.gif',
|
||||
},
|
||||
[Feature.IMAGE_TO_IMAGE]: {
|
||||
text: 'Image to Image allows the upload of an initial image, which InvokeAI will use to guide the generation process, along with a prompt. A lower value for this setting will more closely resemble the original image. Values between 0-1 are accepted, and a range of .25-.75 is recommended ',
|
||||
href: 'link/to/docs/feature3.html',
|
||||
guideImage: 'asset/path.gif',
|
||||
},
|
||||
[Feature.BOUNDING_BOX]: {
|
||||
text: 'The bounding box is analogous to the Width and Height settings for Text to Image or Image to Image. Only the area in the box will be processed.',
|
||||
href: 'link/to/docs/feature3.html',
|
||||
guideImage: 'asset/path.gif',
|
||||
},
|
||||
[Feature.SEAM_CORRECTION]: {
|
||||
text: 'Control the handling of visible seams which may occur when a generated image is pasted back onto the canvas.',
|
||||
href: 'link/to/docs/feature3.html',
|
||||
guideImage: 'asset/path.gif',
|
||||
},
|
||||
[Feature.INFILL_AND_SCALING]: {
|
||||
text: 'Manage infill methods (used on masked or erased areas of the canvas) and scaling (useful for small bounding box sizes).',
|
||||
href: 'link/to/docs/feature3.html',
|
||||
guideImage: 'asset/path.gif',
|
||||
},
|
||||
const useFeatures = (): Record<Feature, FeatureHelpInfo> => {
|
||||
const { t } = useTranslation();
|
||||
return useMemo(
|
||||
() => ({
|
||||
[Feature.PROMPT]: {
|
||||
text: t('tooltip:feature.prompt'),
|
||||
href: 'link/to/docs/feature3.html',
|
||||
guideImage: 'asset/path.gif',
|
||||
},
|
||||
[Feature.GALLERY]: {
|
||||
text: t('tooltip:feature.gallery'),
|
||||
href: 'link/to/docs/feature3.html',
|
||||
guideImage: 'asset/path.gif',
|
||||
},
|
||||
[Feature.OTHER]: {
|
||||
text: t('tooltip:feature.other'),
|
||||
href: 'link/to/docs/feature3.html',
|
||||
guideImage: 'asset/path.gif',
|
||||
},
|
||||
[Feature.SEED]: {
|
||||
text: t('tooltip:feature.seed'),
|
||||
href: 'link/to/docs/feature3.html',
|
||||
guideImage: 'asset/path.gif',
|
||||
},
|
||||
[Feature.VARIATIONS]: {
|
||||
text: t('tooltip:feature.variations'),
|
||||
href: 'link/to/docs/feature3.html',
|
||||
guideImage: 'asset/path.gif',
|
||||
},
|
||||
[Feature.UPSCALE]: {
|
||||
text: t('tooltip:feature.upscale'),
|
||||
href: 'link/to/docs/feature1.html',
|
||||
guideImage: 'asset/path.gif',
|
||||
},
|
||||
[Feature.FACE_CORRECTION]: {
|
||||
text: t('tooltip:feature.faceCorrection'),
|
||||
href: 'link/to/docs/feature3.html',
|
||||
guideImage: 'asset/path.gif',
|
||||
},
|
||||
[Feature.IMAGE_TO_IMAGE]: {
|
||||
text: t('tooltip:feature.imageToImage'),
|
||||
href: 'link/to/docs/feature3.html',
|
||||
guideImage: 'asset/path.gif',
|
||||
},
|
||||
[Feature.BOUNDING_BOX]: {
|
||||
text: t('tooltip:feature.boundingBox'),
|
||||
href: 'link/to/docs/feature3.html',
|
||||
guideImage: 'asset/path.gif',
|
||||
},
|
||||
[Feature.SEAM_CORRECTION]: {
|
||||
text: t('tooltip:feature.seamCorrection'),
|
||||
href: 'link/to/docs/feature3.html',
|
||||
guideImage: 'asset/path.gif',
|
||||
},
|
||||
[Feature.INFILL_AND_SCALING]: {
|
||||
text: t('tooltip:feature.infillAndScaling'),
|
||||
href: 'link/to/docs/feature3.html',
|
||||
guideImage: 'asset/path.gif',
|
||||
},
|
||||
}),
|
||||
[t]
|
||||
);
|
||||
};
|
||||
|
||||
export const useFeatureHelpInfo = (feature: Feature): FeatureHelpInfo => {
|
||||
const features = useFeatures();
|
||||
return features[feature];
|
||||
};
|
||||
|
||||
@@ -10,7 +10,7 @@ import { useAppSelector } from 'app/storeHooks';
|
||||
import { RootState } from 'app/store';
|
||||
import { createSelector } from '@reduxjs/toolkit';
|
||||
import { ReactElement } from 'react';
|
||||
import { Feature, FEATURES } from 'app/features';
|
||||
import { Feature, useFeatureHelpInfo } from 'app/features';
|
||||
|
||||
type GuideProps = {
|
||||
children: ReactElement;
|
||||
@@ -24,7 +24,7 @@ const systemSelector = createSelector(
|
||||
|
||||
const GuidePopover = ({ children, feature }: GuideProps) => {
|
||||
const shouldDisplayGuides = useAppSelector(systemSelector);
|
||||
const { text } = FEATURES[feature];
|
||||
const { text } = useFeatureHelpInfo(feature);
|
||||
|
||||
if (!shouldDisplayGuides) return null;
|
||||
|
||||
|
||||
@@ -142,6 +142,8 @@ const IAINumberInput = (props: Props) => {
|
||||
<NumberInput
|
||||
className="invokeai__number-input-root"
|
||||
value={valueAsString}
|
||||
min={min}
|
||||
max={max}
|
||||
keepWithinRange={true}
|
||||
clampValueOnBlur={false}
|
||||
onChange={handleOnChange}
|
||||
|
||||
@@ -80,7 +80,7 @@ export default function IAISlider(props: IAIFullSliderProps) {
|
||||
sliderMarkRightOffset = -7,
|
||||
withInput = false,
|
||||
isInteger = false,
|
||||
inputWidth = '5rem',
|
||||
inputWidth = '5.5rem',
|
||||
inputReadOnly = true,
|
||||
withReset = false,
|
||||
hideTooltip = false,
|
||||
@@ -236,6 +236,7 @@ export default function IAISlider(props: IAIFullSliderProps) {
|
||||
<NumberInputField
|
||||
className="invokeai__slider-number-input"
|
||||
width={inputWidth}
|
||||
minWidth={inputWidth}
|
||||
readOnly={inputReadOnly}
|
||||
{...sliderNumberInputFieldProps}
|
||||
/>
|
||||
|
||||
@@ -33,7 +33,7 @@ export default function Seed() {
|
||||
isInvalid={seed < 0 && shouldGenerateVariations}
|
||||
onChange={handleChangeSeed}
|
||||
value={seed}
|
||||
width="10rem"
|
||||
width="auto"
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@ export default function ShuffleSeed() {
|
||||
size={'sm'}
|
||||
isDisabled={shouldRandomizeSeed}
|
||||
onClick={handleClickRandomizeSeed}
|
||||
padding="0 1.5rem"
|
||||
>
|
||||
<p>{t('options:shuffle')}</p>
|
||||
</Button>
|
||||
|
||||
@@ -19,6 +19,7 @@ export default function LanguagePicker() {
|
||||
de: t('common:langGerman'),
|
||||
pl: t('common:langPolish'),
|
||||
zh_cn: t('common:langSimplifiedChinese'),
|
||||
es: t('common:langSpanish'),
|
||||
};
|
||||
|
||||
const renderLanguagePicker = () => {
|
||||
|
||||
@@ -61,7 +61,9 @@ const StatusIndicator = () => {
|
||||
if (statusMessage)
|
||||
if (isProcessing) {
|
||||
if (totalIterations > 1) {
|
||||
statusMessage += ` (${currentIteration}/${totalIterations})`;
|
||||
statusMessage =
|
||||
t(statusMessage as keyof typeof t) +
|
||||
` (${currentIteration}/${totalIterations})`;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
2
frontend/src/i18.d.ts
vendored
2
frontend/src/i18.d.ts
vendored
@@ -8,6 +8,7 @@ import gallery from '../public/locales/gallery/en.json';
|
||||
import toast from '../public/locales/toast/en.json';
|
||||
import hotkeys from '../public/locales/hotkeys/en.json';
|
||||
import settings from '../public/locales/settings/en.json';
|
||||
import tooltip from '../public/locales/tooltip/en.json';
|
||||
import modelmanager from '../public/locales/modelmanager/en.json';
|
||||
|
||||
declare module 'i18next' {
|
||||
@@ -24,6 +25,7 @@ declare module 'i18next' {
|
||||
toast: typeof toast;
|
||||
hotkeys: typeof hotkeys;
|
||||
settings: typeof settings;
|
||||
tooltip: typeof tooltip;
|
||||
modelmanager: typeof modelmanager;
|
||||
};
|
||||
// Never Return Null
|
||||
|
||||
@@ -12,13 +12,14 @@ i18n
|
||||
debug: false,
|
||||
ns: [
|
||||
'common',
|
||||
'options',
|
||||
'unifiedcanvas',
|
||||
'gallery',
|
||||
'toast',
|
||||
'hotkeys',
|
||||
'options',
|
||||
'settings',
|
||||
'modelmanager',
|
||||
'toast',
|
||||
'tooltip',
|
||||
'unifiedcanvas',
|
||||
],
|
||||
backend: {
|
||||
loadPath: '/locales/{{ns}}/{{lng}}.json',
|
||||
|
||||
31
installer/create_installer.sh
Normal file → Executable file
31
installer/create_installer.sh
Normal file → Executable file
@@ -3,12 +3,23 @@
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
VERSION=$(grep ^VERSION ../setup.py | awk '{ print $3 }' | sed "s/'//g" )
|
||||
VERSION="$VERSION-p5"
|
||||
PATCH=""
|
||||
VERSION="v${VERSION}${PATCH}"
|
||||
|
||||
echo "Be certain that you're in the 'installer' directory before continuing."
|
||||
read -p "Press any key to continue, or CTRL-C to exit..."
|
||||
|
||||
echo Building installer zip fles for InvokeAI v$VERSION
|
||||
git commit -a
|
||||
|
||||
if ! git tag $VERSION ; then
|
||||
echo "Existing/invalid tag"
|
||||
exit -1
|
||||
fi
|
||||
|
||||
git push origin :refs/tags/latest
|
||||
git tag -fa latest
|
||||
|
||||
echo Building installer zip fles for InvokeAI $VERSION
|
||||
|
||||
# get rid of any old ones
|
||||
rm *.zip
|
||||
@@ -23,7 +34,7 @@ cp -pr ../configs InvokeAI-Installer/templates/rootdir/
|
||||
|
||||
mkdir InvokeAI-Installer/templates/rootdir/{outputs,embeddings,models}
|
||||
|
||||
cp install.sh.in InvokeAI-Installer/install.sh
|
||||
perl -p -e "s/^INVOKEAI_VERSION=.*/INVOKEAI_VERSION=\"$VERSION\"/" install.sh.in > InvokeAI-Installer/install.sh
|
||||
chmod a+rx InvokeAI-Installer/install.sh
|
||||
|
||||
zip -r InvokeAI-installer-$VERSION-linux.zip InvokeAI-Installer
|
||||
@@ -31,7 +42,7 @@ zip -r InvokeAI-installer-$VERSION-mac.zip InvokeAI-Installer
|
||||
|
||||
# now do the windows installer
|
||||
rm InvokeAI-Installer/install.sh
|
||||
cp install.bat.in InvokeAI-Installer/install.bat
|
||||
perl -p -e "s/^set INVOKEAI_VERSION=.*/set INVOKEAI_VERSION=$VERSION/" install.bat.in > InvokeAI-Installer/install.bat
|
||||
cp WinLongPathsEnabled.reg InvokeAI-Installer/
|
||||
|
||||
# this gets rid of the "-e ." at the end of the windows requirements file
|
||||
@@ -40,8 +51,18 @@ egrep -v '^-e .' InvokeAI-Installer/environments-and-requirements/requirements-w
|
||||
cp InvokeAI-Installer/requirements.txt InvokeAI-Installer/environments-and-requirements/requirements-win-colab-cuda.txt
|
||||
zip -r InvokeAI-installer-$VERSION-windows.zip InvokeAI-Installer
|
||||
|
||||
mkdir tmp
|
||||
cp templates/update.sh.in tmp/update.sh
|
||||
cp templates/update.bat.in tmp/update.bat
|
||||
chmod +x tmp/update.sh
|
||||
chmod +x tmp/update.bat
|
||||
cd tmp
|
||||
zip InvokeAI-updater-$VERSION.zip update.sh update.bat
|
||||
cd ..
|
||||
mv tmp/InvokeAI-updater-$VERSION.zip .
|
||||
|
||||
# clean up
|
||||
rm -rf InvokeAI-Installer
|
||||
rm -rf InvokeAI-Installer tmp
|
||||
|
||||
|
||||
exit 0
|
||||
|
||||
@@ -13,9 +13,10 @@ if "%1" == "use-cache" (
|
||||
)
|
||||
|
||||
@rem Config
|
||||
@rem this should be changed to the tagged release!
|
||||
@rem set INVOKE_AI_SRC=https://github.com/invoke-ai/InvokeAI/archive/main.zip
|
||||
set INVOKE_AI_SRC=https://github.com/invoke-ai/InvokeAI/archive/refs/tags/v2.2.4.zip
|
||||
@rem The version in the next line is replaced by an up to date release number
|
||||
@rem when create_installer.sh is run. Change the release number there.
|
||||
set INVOKEAI_VERSION=latest
|
||||
set INVOKE_AI_SRC=https://github.com/invoke-ai/InvokeAI/archive/refs/tags/%INVOKEAI_VERSION%.zip
|
||||
set INSTRUCTIONS=https://invoke-ai.github.io/InvokeAI/installation/INSTALL_AUTOMATED/
|
||||
set TROUBLESHOOTING=https://invoke-ai.github.io/InvokeAI/installation/INSTALL_AUTOMATED/#troubleshooting
|
||||
set PYTHON_URL=https://www.python.org/downloads/windows/
|
||||
|
||||
@@ -4,13 +4,15 @@
|
||||
scriptdir=$(dirname "$0")
|
||||
cd "$scriptdir"
|
||||
|
||||
# This version number will be replaced by the one supplied to create_installers.sh.
|
||||
# Do not change it here - change it in create_installers.sh.
|
||||
INVOKEAI_VERSION="latest"
|
||||
|
||||
# make sure we are not already in a venv
|
||||
# (don't need to check status)
|
||||
deactivate >/dev/null 2>&1
|
||||
|
||||
# this should be changed to the tagged release!
|
||||
# INVOKE_AI_SRC=https://github.com/invoke-ai/InvokeAI/archive/main.zip
|
||||
INVOKE_AI_SRC=https://github.com/invoke-ai/InvokeAI/archive/refs/tags/v2.2.4.zip
|
||||
INVOKE_AI_SRC=https://github.com/invoke-ai/InvokeAI/archive/refs/tags/${INVOKEAI_VERSION}.zip
|
||||
INSTRUCTIONS=https://invoke-ai.github.io/InvokeAI/installation/INSTALL_AUTOMATED/
|
||||
TROUBLESHOOTING=https://invoke-ai.github.io/InvokeAI/installation/INSTALL_AUTOMATED/#troubleshooting
|
||||
MINIMUM_PYTHON_VERSION=3.9.0
|
||||
@@ -44,7 +46,7 @@ function readinput() {
|
||||
local i="$1"
|
||||
case "$i" in
|
||||
"-i")
|
||||
if read -i "default" 2>/dev/null <<< "test"; then
|
||||
if read -i "default" 2>/dev/null <<< "test"; then
|
||||
CLEAN_ARGS="$CLEAN_ARGS -i \"$2\""
|
||||
fi
|
||||
shift
|
||||
@@ -94,7 +96,7 @@ echo "Installing for $OS_NAME-$OS_ARCH"
|
||||
PYTHON=""
|
||||
for candidate in python3.10 python3.9 python3 python python3.11 ; do
|
||||
if ppath=`which $candidate`; then
|
||||
python_version=$($ppath -V | awk '{ print $2 }')
|
||||
python_version=$($ppath -V | awk '{ print $2 }')
|
||||
if [ $(version $python_version) -ge $(version "$MINIMUM_PYTHON_VERSION") ]; then
|
||||
PYTHON=$ppath
|
||||
echo Python $python_version found at $PYTHON
|
||||
@@ -117,6 +119,10 @@ do
|
||||
echo
|
||||
readinput -e -p "Select your preferred location for the 'invokeai' directory [$HOME]: " -i $HOME input
|
||||
ROOTDIR=${input:=$HOME}/invokeai
|
||||
|
||||
# This is surprisingly hard to do in plain Bash; easier in ZSH. Just running python in subshell is easiest.
|
||||
ROOTDIR=$(python -c "from pathlib import Path; print(Path('${ROOTDIR}').expanduser().resolve())")
|
||||
|
||||
read -e -p "InvokeAI will be installed into $ROOTDIR. OK? [y]: " input
|
||||
RESPONSE=${input:='y'}
|
||||
if [ "$RESPONSE" == 'y' ]; then
|
||||
@@ -126,7 +132,7 @@ do
|
||||
RESPONSE=${input:='y'}
|
||||
if [ "$RESPONSE" != 'y' ]; then
|
||||
ROOTDIR=""
|
||||
fi
|
||||
fi
|
||||
else
|
||||
mkdir -p "$ROOTDIR"
|
||||
if [ $? -ne 0 ]; then
|
||||
@@ -166,8 +172,15 @@ if [ "$OS_NAME" == "osx" ]; then
|
||||
egrep -v '^-e .' environments-and-requirements/requirements-mac-mps-cpu.txt >requirements.txt
|
||||
else
|
||||
if (lsmod | grep amdgpu) &>/dev/null ; then
|
||||
echo "Linux system with AMD GPU driver detected. Installing ROCm and CPU support"
|
||||
egrep -v '^-e .' environments-and-requirements/requirements-lin-amd.txt >requirements.txt
|
||||
readinput -e -p "Linux system with AMD GPU driver detected. Install ROCm AMD accelerated support? (Otherwise, CUDA support will be installed) [n]: " input
|
||||
RESPONSE=${input:='n'}
|
||||
if [ "$RESPONSE" != "n" ]; then
|
||||
echo "Installing ROCm (AMD) support"
|
||||
egrep -v '^-e .' environments-and-requirements/requirements-lin-amd.txt >requirements.txt
|
||||
else
|
||||
echo "Installing CUDA support"
|
||||
egrep -v '^-e .' environments-and-requirements/requirements-lin-cuda.txt >requirements.txt
|
||||
fi
|
||||
else
|
||||
echo "Linux system detected. Installing CUDA and CPU support."
|
||||
egrep -v '^-e .' environments-and-requirements/requirements-lin-cuda.txt >requirements.txt
|
||||
@@ -209,4 +222,13 @@ chmod a+rx "$ROOTDIR"/invoke.sh
|
||||
cp templates/update.sh.in "$ROOTDIR"/update.sh
|
||||
chmod a+rx "$ROOTDIR"/update.sh
|
||||
|
||||
echo "You may now run InvokeAI by entering the directory $ROOTDIR and running invoke.sh"
|
||||
echo "You may now run InvokeAI by entering the directory $ROOTDIR and running invoke.sh:"
|
||||
echo
|
||||
echo " ${ROOTDIR}/invoke.sh"
|
||||
echo
|
||||
|
||||
read -e -p "Run InvokeAI now? [y]:" input
|
||||
RESPONSE=${input:='y'}
|
||||
if [ "$RESPONSE" == 'y' ]; then
|
||||
exec ${ROOTDIR}/invoke.sh
|
||||
fi
|
||||
|
||||
@@ -11,9 +11,9 @@ cd "$scriptdir"
|
||||
export INVOKEAI_ROOT="$scriptdir"
|
||||
|
||||
# set required env var for torch on mac MPS
|
||||
if [ "$(uname -s)" == "Darwin" ]; then
|
||||
export PYTORCH_ENABLE_MPS_FALLBACK=1
|
||||
fi
|
||||
if [ "$(uname -s)" == "Darwin" ]; then
|
||||
export PYTORCH_ENABLE_MPS_FALLBACK=1
|
||||
fi
|
||||
|
||||
if [ "$0" != "bash" ]; then
|
||||
echo "Do you want to generate images using the"
|
||||
|
||||
@@ -3,48 +3,66 @@ setlocal EnableExtensions EnableDelayedExpansion
|
||||
|
||||
PUSHD "%~dp0"
|
||||
|
||||
set INVOKE_AI_SRC=https://github.com/invoke-ai/InvokeAI/archive/main.zip
|
||||
set INVOKE_AI_VERSION=latest
|
||||
set arg=%1
|
||||
if "%arg%" neq "" (
|
||||
if "%arg:~0,4%" neq "http" (
|
||||
echo Usage: update.bat ^<release URL^>.zip
|
||||
if "%arg:~0,2%" equ "/?" (
|
||||
echo Usage: update.bat ^<release name or branch^>
|
||||
echo Updates InvokeAI to use the indicated version of the code base.
|
||||
echo Find the zip file for the release you want, and pass it as the argument.
|
||||
echo For example update.sh https://github.com/invoke-ai/InvokeAI/archive/refs/tags/v2.2.4.zip
|
||||
echo.
|
||||
echo If no argument provided then will install the most recent development version, equivalent to
|
||||
echo update.bat https://github.com/invoke-ai/InvokeAI/archive/main.zip
|
||||
exit /b
|
||||
echo Find the version or branch for the release you want, and pass it as the argument.
|
||||
echo For example '.\update.bat v2.2.5' for release 2.2.5.
|
||||
echo '.\update.bat main' for the latest development version
|
||||
echo.
|
||||
echo If no argument provided then will install the most recent release, equivalent to
|
||||
echo '.\update.bat latest'
|
||||
exit /b
|
||||
) else (
|
||||
set INVOKE_AI_SRC=%arg%
|
||||
set INVOKE_AI_VERSION=%arg%
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
call .venv\Scripts\activate.bat
|
||||
set INVOKE_AI_SRC="https://github.com/invoke-ai/InvokeAI/archive/!INVOKE_AI_VERSION!.zip"
|
||||
set INVOKE_AI_DEP=https://raw.githubusercontent.com/invoke-ai/InvokeAI/!INVOKE_AI_VERSION!/environments-and-requirements/requirements-base.txt
|
||||
|
||||
call curl -I "%INVOKE_AI_DEP%" -fs >.tmp.out
|
||||
if %errorlevel% neq 0 (
|
||||
echo '!INVOKE_AI_VERSION!' is not a known branch name or tag. Please check the version and try again.
|
||||
echo "Press any key to continue"
|
||||
pause
|
||||
exit /b
|
||||
)
|
||||
del .tmp.out
|
||||
|
||||
echo This script will update InvokeAI and all its dependencies to !INVOKE_AI_SRC!.
|
||||
echo If you do not want to do this, press control-C now!
|
||||
pause
|
||||
|
||||
call curl -L "%INVOKE_AI_DEP%" > environments-and-requirements/requirements-base.txt
|
||||
|
||||
call .venv\Scripts\activate.bat
|
||||
call .venv\Scripts\python -mpip install -r requirements.txt
|
||||
if %errorlevel% neq 0 (
|
||||
echo Installation of requirements failed. See https://invoke-ai.github.io/InvokeAI/installation/INSTALL_AUTOMATED/#troubleshooting for suggestions.
|
||||
pause
|
||||
exit /b
|
||||
)
|
||||
|
||||
call .venv\Scripts\python -mpip install !INVOKE_AI_SRC!
|
||||
if %errorlevel% neq 0 (
|
||||
echo Installation of InvokeAI failed. See https://invoke-ai.github.io/InvokeAI/installation/INSTALL_AUTOMATED/#troubleshooting for suggestions.
|
||||
pause
|
||||
exit /b
|
||||
)
|
||||
|
||||
call .venv\Scripts\python .venv\Scripts\configure_invokeai.py --root=.
|
||||
@rem call .venv\Scripts\python .venv\Scripts\configure_invokeai.py --root=.
|
||||
|
||||
if %errorlevel% neq 0 (
|
||||
echo Configuration InvokeAI failed. See https://invoke-ai.github.io/InvokeAI/installation/INSTALL_AUTOMATED/#troubleshooting for suggestions.
|
||||
exit /b
|
||||
)
|
||||
@rem if %errorlevel% neq 0 (
|
||||
@rem echo Configuration InvokeAI failed. See https://invoke-ai.github.io/InvokeAI/installation/INSTALL_AUTOMATED/#troubleshooting for suggestions.
|
||||
@rem pause
|
||||
@rem exit /b
|
||||
@rem )
|
||||
|
||||
echo InvokeAI has been updated to '%INVOKE_AI_VERSION%'
|
||||
|
||||
echo "Press any key to continue"
|
||||
pause
|
||||
|
||||
@@ -2,18 +2,22 @@
|
||||
|
||||
set -eu
|
||||
|
||||
if [ $# -ge 1 ] && [ "${1:0:4}" != "http" ]; then
|
||||
echo "Usage: update.sh <release URL>.zip"
|
||||
if [ $# -ge 1 ] && [ "${1:0:2}" == "-h" ]; then
|
||||
echo "Usage: update.sh <release>"
|
||||
echo "Updates InvokeAI to use the indicated version of the code base."
|
||||
echo "Find the zip file for the release you want, and pass it as the argument."
|
||||
echo "For example update.sh https://github.com/invoke-ai/InvokeAI/archive/refs/tags/v2.2.3.zip"
|
||||
echo "Find the version or branch for the release you want, and pass it as the argument."
|
||||
echo "For example: update.sh v2.2.5 for release 2.2.5."
|
||||
echo " update.sh main for the current development version."
|
||||
echo ""
|
||||
echo "If no argument provided then will install the most recent development version, equivalent to"
|
||||
echo "update.sh https://github.com/invoke-ai/InvokeAI/archive/main.zip"
|
||||
echo "If no argument provided then will install the version tagged with 'latest', equivalent to"
|
||||
echo "update.sh latest"
|
||||
exit -1
|
||||
fi
|
||||
|
||||
INVOKE_AI_VERSION=${1:-latest}
|
||||
|
||||
INVOKE_AI_SRC=${1:-https://github.com/invoke-ai/InvokeAI/archive/main.zip}
|
||||
INVOKE_AI_SRC="https://github.com/invoke-ai/InvokeAI/archive/$INVOKE_AI_VERSION.zip"
|
||||
INVOKE_AI_DEP=https://raw.githubusercontent.com/invoke-ai/InvokeAI/$INVOKE_AI_VERSION/environments-and-requirements/requirements-base.txt
|
||||
|
||||
# ensure we're in the correct folder in case user's CWD is somewhere else
|
||||
scriptdir=$(dirname "$0")
|
||||
@@ -30,10 +34,17 @@ function _err_exit {
|
||||
fi
|
||||
}
|
||||
|
||||
echo This script will update InvokeAI and all its dependencies from $INVOKE_AI_SRC.
|
||||
if ! curl -I "$INVOKE_AI_DEP" -fs >/dev/null; then
|
||||
echo \'$INVOKE_AI_VERSION\' is not a known branch name or tag. Please check the version and try again.
|
||||
exit
|
||||
fi
|
||||
|
||||
echo This script will update InvokeAI and all its dependencies to version \'$INVOKE_AI_VERSION\'.
|
||||
echo If you do not want to do this, press control-C now!
|
||||
read -p "Press any key to continue, or CTRL-C to exit..."
|
||||
|
||||
curl -L "$INVOKE_AI_DEP" > environments-and-requirements/requirements-base.txt
|
||||
|
||||
. .venv/bin/activate
|
||||
|
||||
./.venv/bin/python -mpip install -r requirements.txt
|
||||
@@ -42,11 +53,7 @@ _err_exit $? "The pip program failed to install InvokeAI's requirements."
|
||||
./.venv/bin/python -mpip install $INVOKE_AI_SRC
|
||||
_err_exit $? "The pip program failed to install InvokeAI."
|
||||
|
||||
./.venv/bin/python .venv/bin/configure_invokeai.py --root .
|
||||
_err_exit $? "The configure script failed to run successfully."
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
echo InvokeAI updated to \'$INVOKE_AI_VERSION\'
|
||||
|
||||
# ./.venv/bin/python .venv/bin/configure_invokeai.py --root .
|
||||
# _err_exit $? "The configure script failed to run successfully."
|
||||
|
||||
@@ -20,6 +20,7 @@ from ldm.invoke.concepts_lib import Concepts
|
||||
from omegaconf import OmegaConf
|
||||
from pathlib import Path
|
||||
import pyparsing
|
||||
import ldm.invoke
|
||||
|
||||
# global used in multiple functions (fix)
|
||||
infile = None
|
||||
@@ -51,6 +52,7 @@ def main():
|
||||
print(f'** This script will now exit.')
|
||||
sys.exit(-1)
|
||||
|
||||
print(f'>> {ldm.invoke.__app_name__} {ldm.invoke.__version__}')
|
||||
print(f'>> InvokeAI runtime directory is "{Globals.root}"')
|
||||
|
||||
# loading here to avoid long delays on startup
|
||||
@@ -135,7 +137,7 @@ def main():
|
||||
try:
|
||||
main_loop(gen, opt)
|
||||
except KeyboardInterrupt:
|
||||
print("\ngoodbye!")
|
||||
print(f'\nGoodbye!\nYou can start InvokeAI again by running the "invoke.bat" (or "invoke.sh") script from {Globals.root}')
|
||||
|
||||
# TODO: main_loop() has gotten busy. Needs to be refactored.
|
||||
def main_loop(gen, opt):
|
||||
@@ -410,7 +412,8 @@ def main_loop(gen, opt):
|
||||
output_cntr = write_log(results, log_path ,('txt', 'md'), output_cntr)
|
||||
print()
|
||||
|
||||
print('goodbye!')
|
||||
|
||||
print(f'\nGoodbye!\nYou can start InvokeAI again by running the "invoke.bat" (or "invoke.sh") script from {Globals.root}')
|
||||
|
||||
# TO DO: remove repetitive code and the awkward command.replace() trope
|
||||
# Just do a simple parse of the command!
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
__app_id__= 'invoke-ai/InvokeAI'
|
||||
__app_name__= 'InvokeAI'
|
||||
__version__='2.2.4'
|
||||
__version__='2.2.5'
|
||||
|
||||
@@ -242,6 +242,9 @@ class ModelCache(object):
|
||||
# merged models from auto11 merge board are flat for some reason
|
||||
if 'state_dict' in sd:
|
||||
sd = sd['state_dict']
|
||||
|
||||
print(f' | Forcing garbage collection prior to loading new model')
|
||||
gc.collect()
|
||||
model = instantiate_from_config(omega_config.model)
|
||||
model.load_state_dict(sd, strict=False)
|
||||
|
||||
@@ -358,6 +361,8 @@ class ModelCache(object):
|
||||
Write current configuration out to the indicated file.
|
||||
'''
|
||||
yaml_str = OmegaConf.to_yaml(self.config)
|
||||
if not os.path.isabs(config_file_path):
|
||||
config_file_path = os.path.normpath(os.path.join(Globals.root,opt.conf))
|
||||
tmpfile = os.path.join(os.path.dirname(config_file_path),'new_config.tmp')
|
||||
with open(tmpfile, 'w') as outfile:
|
||||
outfile.write(self.preamble())
|
||||
|
||||
@@ -33,6 +33,8 @@ class GFPGAN():
|
||||
with warnings.catch_warnings():
|
||||
warnings.filterwarnings('ignore', category=DeprecationWarning)
|
||||
warnings.filterwarnings('ignore', category=UserWarning)
|
||||
cwd = os.getcwd()
|
||||
os.chdir(os.path.join(Globals.root,'models'))
|
||||
try:
|
||||
from gfpgan import GFPGANer
|
||||
self.gfpgan = GFPGANer(
|
||||
@@ -46,6 +48,7 @@ class GFPGAN():
|
||||
import traceback
|
||||
print('>> Error loading GFPGAN:', file=sys.stderr)
|
||||
print(traceback.format_exc(), file=sys.stderr)
|
||||
os.chdir(cwd)
|
||||
|
||||
if self.gfpgan is None:
|
||||
print(
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import sys
|
||||
import os
|
||||
if sys.platform == 'Darsin':
|
||||
os.environ["PYTORCH_ENABLE_MPS_FALLBACK"] = "1"
|
||||
|
||||
import ldm.invoke.CLI
|
||||
ldm.invoke.CLI.main()
|
||||
|
||||
|
||||
17
setup.py
17
setup.py
@@ -3,9 +3,13 @@ import re
|
||||
from setuptools import setup, find_packages
|
||||
|
||||
def list_files(directory):
|
||||
return [os.path.join(directory,x) for x in os.listdir(directory) if os.path.isfile(os.path.join(directory,x))]
|
||||
listing = list()
|
||||
for root, dirs, files in os.walk(directory,topdown=False):
|
||||
pair = (root,[os.path.join(root,f) for f in files])
|
||||
listing.append(pair)
|
||||
return listing
|
||||
|
||||
VERSION = '2.2.4'
|
||||
VERSION = '2.2.5'
|
||||
DESCRIPTION = ('An implementation of Stable Diffusion which provides various new features'
|
||||
' and options to aid the image generation process')
|
||||
LONG_DESCRIPTION = ('This version of Stable Diffusion features a slick WebGUI, an'
|
||||
@@ -13,6 +17,10 @@ LONG_DESCRIPTION = ('This version of Stable Diffusion features a slick WebGUI, a
|
||||
' functionality in a "dream bot" style interface, and multiple features'
|
||||
' and other enhancements.')
|
||||
HOMEPAGE = 'https://github.com/invoke-ai/InvokeAI'
|
||||
FRONTEND_FILES = list_files('frontend/dist')
|
||||
FRONTEND_FILES.append(('assets',['assets/caution.png']))
|
||||
print(FRONTEND_FILES)
|
||||
|
||||
REQUIREMENTS=[
|
||||
'accelerate',
|
||||
'albumentations',
|
||||
@@ -79,8 +87,5 @@ setup(
|
||||
scripts = ['scripts/invoke.py','scripts/configure_invokeai.py', 'scripts/sd-metadata.py',
|
||||
'scripts/preload_models.py', 'scripts/images2prompt.py','scripts/merge_embeddings.py'
|
||||
],
|
||||
data_files=[('frontend/dist',list_files('frontend/dist')),
|
||||
('frontend/dist/assets',list_files('frontend/dist/assets')),
|
||||
('assets',['assets/caution.png']),
|
||||
],
|
||||
data_files=FRONTEND_FILES,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user