Merge branch 'main' into bugfix/reenable-ckpt-conversion-to-ram

This commit is contained in:
blessedcoolant 2023-03-06 14:27:30 +13:00
commit e0e70c9222
327 changed files with 6631 additions and 6253 deletions

View File

@ -23,7 +23,7 @@ jobs:
node-version: '18'
- uses: actions/checkout@v3
- run: 'yarn install --frozen-lockfile'
- run: 'yarn tsc'
- run: 'yarn run madge'
- run: 'yarn run lint --max-warnings=0'
- run: 'yarn run prettier --check'
- run: 'yarn run lint:tsc'
- run: 'yarn run lint:madge'
- run: 'yarn run lint:eslint'
- run: 'yarn run lint:prettier'

View File

@ -941,7 +941,7 @@ class ModelManager(object):
"openai/clip-vit-large-patch14/models--openai--clip-vit-large-patch14"
),
]
legacy_locations.extend(list(Path(models_dir,"diffusers").glob('*')))
legacy_locations.extend(list(global_cache_dir("diffusers").glob('*')))
legacy_layout = False
for model in legacy_locations:
@ -950,9 +950,17 @@ class ModelManager(object):
return
print(
"** Old model directory layout (< v3.0) detected. Reorganizing."
"""
>> ALERT:
>> The location of your previously-installed diffusers models needs to move from
>> invokeai/models/diffusers to invokeai/models/hub due to a change introduced by
>> diffusers version 0.14. InvokeAI will now move all models from the "diffusers" directory
>> into "hub" and then remove the diffusers directory. This is a quick, safe, one-time
>> operation. However if you have customized either of these directories and need to
>> make adjustments, please press ctrl-C now to abort and relaunch InvokeAI when you are ready.
>> Otherwise press <enter> to continue."""
)
print("** This is a quick one-time operation.")
input('continue> ')
# transformer files get moved into the hub directory
if cls._is_huggingface_hub_directory_present():
@ -971,7 +979,10 @@ class ModelManager(object):
if dest.is_symlink():
print(f"** Found symlink at {dest.name}. Not migrating.")
elif dest.exists():
rmtree(source)
if source.is_dir():
rmtree(source)
else:
source.unlink()
else:
move(source, dest)

View File

@ -3,3 +3,6 @@ dist/
node_modules/
patches/
stats.html
index.html
.yarn/
*.scss

View File

@ -30,7 +30,10 @@ module.exports = {
radix: 'error',
'space-before-blocks': 'error',
'import/prefer-default-export': 'off',
'@typescript-eslint/no-unused-vars': ['warn', { varsIgnorePattern: '_+' }],
'@typescript-eslint/no-unused-vars': [
'warn',
{ varsIgnorePattern: '^_', argsIgnorePattern: '^_' },
],
'prettier/prettier': ['error', { endOfLine: 'auto' }],
},
settings: {

View File

@ -1,4 +1,4 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
cd invokeai/frontend/ && npm run lint-staged
cd invokeai/frontend/web/ && npm run lint-staged

View File

@ -3,3 +3,4 @@ dist/
node_modules/
patches/
stats.html
.yarn/

View File

@ -3,6 +3,7 @@ module.exports = {
tabWidth: 2,
semi: true,
singleQuote: true,
endOfLine: 'auto',
overrides: [
{
files: ['public/locales/*.json'],

View File

@ -1,3 +0,0 @@
'''
Initialization file for invokeai.frontend.web
'''

View File

@ -0,0 +1 @@
.ltr-image-gallery-css-transition-enter{transform:translate(150%)}.ltr-image-gallery-css-transition-enter-active{transform:translate(0);transition:all .12s ease-out}.ltr-image-gallery-css-transition-exit{transform:translate(0)}.ltr-image-gallery-css-transition-exit-active{transform:translate(150%);transition:all .12s ease-out}.rtl-image-gallery-css-transition-enter{transform:translate(-150%)}.rtl-image-gallery-css-transition-enter-active{transform:translate(0);transition:all .12s ease-out}.rtl-image-gallery-css-transition-exit{transform:translate(0)}.rtl-image-gallery-css-transition-exit-active{transform:translate(-150%);transition:all .12s ease-out}.ltr-parameters-panel-transition-enter{transform:translate(-150%)}.ltr-parameters-panel-transition-enter-active{transform:translate(0);transition:all .12s ease-out}.ltr-parameters-panel-transition-exit{transform:translate(0)}.ltr-parameters-panel-transition-exit-active{transform:translate(-150%);transition:all .12s ease-out}.rtl-parameters-panel-transition-enter{transform:translate(150%)}.rtl-parameters-panel-transition-enter-active{transform:translate(0);transition:all .12s ease-out}.rtl-parameters-panel-transition-exit{transform:translate(0)}.rtl-parameters-panel-transition-exit-active{transform:translate(150%);transition:all .12s ease-out}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -5,11 +5,18 @@
<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-0e39fbc4.js"></script>
<link rel="stylesheet" href="./assets/index-14cb2922.css">
<style>
html,
body {
padding: 0;
margin: 0;
}
</style>
<script type="module" crossorigin src="./assets/index-bcc89564.js"></script>
<link rel="stylesheet" href="./assets/index-5483945c.css">
</head>
<body>
<body dir="ltr">
<div id="root"></div>
</body>

View File

@ -10,14 +10,18 @@
"darkTheme": "Dark",
"lightTheme": "Light",
"greenTheme": "Green",
"oceanTheme": "Ocean",
"langArabic": "العربية",
"langEnglish": "English",
"langDutch": "Nederlands",
"langFrench": "Français",
"langGerman": "Deutsch",
"langHebrew": "עברית",
"langItalian": "Italiano",
"langJapanese": "日本語",
"langKorean": "한국어",
"langPolish": "Polski",
"langPortuguese": "Português",
"langBrPortuguese": "Português do Brasil",
"langRussian": "Русский",
"langSimplifiedChinese": "简体中文",
@ -63,7 +67,10 @@
"statusConvertingModel": "Converting Model",
"statusModelConverted": "Model Converted",
"statusMergingModels": "Merging Models",
"statusMergedModels": "Models Merged"
"statusMergedModels": "Models Merged",
"pinOptionsPanel": "Pin Options Panel",
"loading": "Loading",
"loadingInvokeAI": "Loading Invoke AI"
},
"gallery": {
"generations": "Generations",
@ -82,7 +89,7 @@
"noImagesInGallery": "No Images In Gallery"
},
"hotkeys": {
"keyboardShortcuts": "Keyboard Shorcuts",
"keyboardShortcuts": "Keyboard Shortcuts",
"appHotkeys": "App Hotkeys",
"generalHotkeys": "General Hotkeys",
"galleryHotkeys": "Gallery Hotkeys",
@ -387,13 +394,16 @@
"mergedModelCustomSaveLocation": "Custom Path",
"invokeAIFolder": "Invoke AI Folder",
"ignoreMismatch": "Ignore Mismatches Between Selected Models",
"modelMergeHeaderHelp1": "You can merge upto three different models to create a blend that suits your needs.",
"modelMergeHeaderHelp1": "You can merge up to three different models to create a blend that suits your needs.",
"modelMergeHeaderHelp2": "Only Diffusers are available for merging. If you want to merge a checkpoint model, please convert it to Diffusers first.",
"modelMergeAlphaHelp": "Alpha controls blend strength for the models. Lower alpha values lead to lower influence of the second model.",
"modelMergeInterpAddDifferenceHelp": "In this mode, Model 3 is first subtracted from Model 2. The resulting version is blended with Model 1 with the alpha rate set above.",
"inverseSigmoid": "Inverse Sigmoid",
"sigmoid": "Sigmoid",
"weightedSum": "Weighted Sum"
"weightedSum": "Weighted Sum",
"none": "none",
"addDifference": "Add Difference",
"pickModelType": "Pick Model Type"
},
"parameters": {
"general": "General",

View File

@ -15,7 +15,7 @@
"langSpanish": "Español",
"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",
"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",
@ -44,7 +44,26 @@
"statusUpscaling": "Aumentando Tamaño",
"statusUpscalingESRGAN": "Restaurando Rostros(ESRGAN)",
"statusLoadingModel": "Cargando Modelo",
"statusModelChanged": "Modelo cambiado"
"statusModelChanged": "Modelo cambiado",
"statusMergedModels": "Modelos combinados",
"githubLabel": "Github",
"discordLabel": "Discord",
"langEnglish": "Inglés",
"langDutch": "Holandés",
"langFrench": "Francés",
"langGerman": "Alemán",
"langItalian": "Italiano",
"langArabic": "Árabe",
"langJapanese": "Japones",
"langPolish": "Polaco",
"langBrPortuguese": "Portugués brasileño",
"langRussian": "Ruso",
"langSimplifiedChinese": "Chino simplificado",
"langUkranian": "Ucraniano",
"back": "Atrás",
"statusConvertingModel": "Convertir el modelo",
"statusModelConverted": "Modelo adaptado",
"statusMergingModels": "Fusionar modelos"
},
"gallery": {
"generations": "Generaciones",
@ -284,16 +303,16 @@
"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",
"config": "Configurar",
"configValidationMsg": "Ruta del archivo de configuración del modelo.",
"modelLocation": "Ubicación del Modelo",
"modelLocationValidationMsg": "Ruta del archivo de modelo",
"modelLocationValidationMsg": "Ruta del archivo de modelo.",
"vaeLocation": "Ubicación VAE",
"vaeLocationValidationMsg": "Ruta del archivo VAE",
"vaeLocationValidationMsg": "Ruta del archivo VAE.",
"width": "Ancho",
"widthValidationMsg": "Ancho predeterminado de tu modelo",
"widthValidationMsg": "Ancho predeterminado de tu modelo.",
"height": "Alto",
"heightValidationMsg": "Alto predeterminado de tu modelo",
"heightValidationMsg": "Alto predeterminado de tu modelo.",
"addModel": "Añadir Modelo",
"updateModel": "Actualizar Modelo",
"availableModels": "Modelos disponibles",
@ -320,7 +339,61 @@
"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."
"deleteMsg2": "El checkpoint del modelo no se eliminará de tu disco. Puedes volver a añadirlo si lo deseas.",
"safetensorModels": "SafeTensors",
"addDiffuserModel": "Añadir difusores",
"inpainting": "v1 Repintado",
"repoIDValidationMsg": "Repositorio en línea de tu modelo",
"checkpointModels": "Puntos de control",
"convertToDiffusersHelpText4": "Este proceso se realiza una sola vez. Puede tardar entre 30 y 60 segundos dependiendo de las especificaciones de tu ordenador.",
"diffusersModels": "Difusores",
"addCheckpointModel": "Agregar modelo de punto de control/Modelo Safetensor",
"vaeRepoID": "Identificador del repositorio de VAE",
"vaeRepoIDValidationMsg": "Repositorio en línea de tú VAE",
"formMessageDiffusersModelLocation": "Difusores Modelo Ubicación",
"formMessageDiffusersModelLocationDesc": "Por favor, introduzca al menos uno.",
"formMessageDiffusersVAELocation": "Ubicación VAE",
"formMessageDiffusersVAELocationDesc": "Si no se proporciona, InvokeAI buscará el archivo VAE dentro de la ubicación del modelo indicada anteriormente.",
"convert": "Convertir",
"convertToDiffusers": "Convertir en difusores",
"convertToDiffusersHelpText1": "Este modelo se convertirá al formato 🧨 Difusores.",
"convertToDiffusersHelpText2": "Este proceso sustituirá su entrada del Gestor de Modelos por la versión de Difusores del mismo modelo.",
"convertToDiffusersHelpText3": "Su archivo de puntos de control en el disco NO será borrado ni modificado de ninguna manera. Puede volver a añadir su punto de control al Gestor de Modelos si lo desea.",
"convertToDiffusersHelpText5": "Asegúrese de que dispone de suficiente espacio en disco. Los modelos suelen variar entre 4 GB y 7 GB de tamaño.",
"convertToDiffusersHelpText6": "¿Desea transformar este modelo?",
"convertToDiffusersSaveLocation": "Guardar ubicación",
"v1": "v1",
"v2": "v2",
"statusConverting": "Adaptar",
"modelConverted": "Modelo adaptado",
"sameFolder": "La misma carpeta",
"invokeRoot": "Carpeta InvokeAI",
"custom": "Personalizado",
"customSaveLocation": "Ubicación personalizada para guardar",
"merge": "Fusión",
"modelsMerged": "Modelos fusionados",
"mergeModels": "Combinar modelos",
"modelOne": "Modelo 1",
"modelTwo": "Modelo 2",
"modelThree": "Modelo 3",
"mergedModelName": "Nombre del modelo combinado",
"alpha": "Alfa",
"interpolationType": "Tipo de interpolación",
"mergedModelSaveLocation": "Guardar ubicación",
"mergedModelCustomSaveLocation": "Ruta personalizada",
"invokeAIFolder": "Invocar carpeta de la inteligencia artificial",
"modelMergeHeaderHelp2": "Sólo se pueden fusionar difusores. Si desea fusionar un modelo de punto de control, conviértalo primero en difusores.",
"modelMergeAlphaHelp": "Alfa controla la fuerza de mezcla de los modelos. Los valores alfa más bajos reducen la influencia del segundo modelo.",
"modelMergeInterpAddDifferenceHelp": "En este modo, el Modelo 3 se sustrae primero del Modelo 2. La versión resultante se mezcla con el Modelo 1 con la tasa alfa establecida anteriormente. La versión resultante se mezcla con el Modelo 1 con la tasa alfa establecida anteriormente.",
"ignoreMismatch": "Ignorar discrepancias entre modelos seleccionados",
"modelMergeHeaderHelp1": "Puede combinar hasta tres modelos diferentes para crear una mezcla que se adapte a sus necesidades.",
"inverseSigmoid": "Sigmoideo inverso",
"weightedSum": "Modelo de suma ponderada",
"sigmoid": "Función sigmoide",
"allModels": "Todos los modelos",
"repo_id": "Identificador del repositorio",
"pathToCustomConfig": "Ruta a la configuración personalizada",
"customConfig": "Configuración personalizada"
},
"parameters": {
"images": "Imágenes",
@ -380,7 +453,22 @@
"info": "Información",
"deleteImage": "Eliminar Imagen",
"initialImage": "Imagen Inicial",
"showOptionsPanel": "Mostrar panel de opciones"
"showOptionsPanel": "Mostrar panel de opciones",
"symmetry": "Simetría",
"vSymmetryStep": "Paso de simetría V",
"hSymmetryStep": "Paso de simetría H",
"cancel": {
"immediate": "Cancelar inmediatamente",
"schedule": "Cancelar tras la iteración actual",
"isScheduled": "Cancelando",
"setType": "Tipo de cancelación"
},
"copyImage": "Copiar la imagen",
"general": "General",
"negativePrompts": "Preguntas negativas",
"imageToImage": "Imagen a imagen",
"denoisingStrength": "Intensidad de la eliminación del ruido",
"hiresStrength": "Alta resistencia"
},
"settings": {
"models": "Modelos",
@ -393,7 +481,8 @@
"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."
"resetComplete": "La interfaz web se ha restablecido. Actualice la página para recargarla.",
"useSlidersForAll": "Utilice controles deslizantes para todas las opciones"
},
"toast": {
"tempFoldersEmptied": "Directorio temporal vaciado",
@ -431,12 +520,12 @@
"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.",
"other": "Estas opciones habilitarán modos de procesamiento alternativos para Invoke. 'Seamless mosaico' creará patrones repetitivos en la salida. 'Alta resolución' es la generación en dos pasos con img2img: use esta configuración cuando desee una imagen más grande y más coherente sin artefactos. tomar más tiempo de lo habitual txt2img.",
"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.",
"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)."

View File

@ -44,7 +44,26 @@
"statusUpscaling": "Redimensinando",
"statusUpscalingESRGAN": "Redimensinando (ESRGAN)",
"statusLoadingModel": "Carregando Modelo",
"statusModelChanged": "Modelo Alterado"
"statusModelChanged": "Modelo Alterado",
"githubLabel": "Github",
"discordLabel": "Discord",
"langArabic": "Árabe",
"langEnglish": "Inglês",
"langDutch": "Holandês",
"langFrench": "Francês",
"langGerman": "Alemão",
"langItalian": "Italiano",
"langJapanese": "Japonês",
"langPolish": "Polonês",
"langSimplifiedChinese": "Chinês",
"langUkranian": "Ucraniano",
"back": "Voltar",
"statusConvertingModel": "Convertendo Modelo",
"statusModelConverted": "Modelo Convertido",
"statusMergingModels": "Mesclando Modelos",
"statusMergedModels": "Modelos Mesclados",
"langRussian": "Russo",
"langSpanish": "Espanhol"
},
"gallery": {
"generations": "Gerações",
@ -237,7 +256,7 @@
"desc": "Salva a tela atual na galeria"
},
"copyToClipboard": {
"title": "Copiar Para a Área de Transferência ",
"title": "Copiar para a Área de Transferência",
"desc": "Copia a tela atual para a área de transferência"
},
"downloadImage": {
@ -284,7 +303,7 @@
"nameValidationMsg": "Insira um nome para o seu modelo",
"description": "Descrição",
"descriptionValidationMsg": "Adicione uma descrição para o seu modelo",
"config": "Config",
"config": "Configuração",
"configValidationMsg": "Caminho para o arquivo de configuração do seu modelo.",
"modelLocation": "Localização do modelo",
"modelLocationValidationMsg": "Caminho para onde seu modelo está localizado.",
@ -317,7 +336,52 @@
"deleteModel": "Excluir modelo",
"deleteConfig": "Excluir Config",
"deleteMsg1": "Tem certeza de que deseja excluir esta entrada do modelo de InvokeAI?",
"deleteMsg2": "Isso não vai excluir o arquivo de modelo checkpoint do seu disco. Você pode lê-los, se desejar."
"deleteMsg2": "Isso não vai excluir o arquivo de modelo checkpoint do seu disco. Você pode lê-los, se desejar.",
"checkpointModels": "Checkpoints",
"diffusersModels": "Diffusers",
"safetensorModels": "SafeTensors",
"addCheckpointModel": "Adicionar Modelo de Checkpoint/Safetensor",
"addDiffuserModel": "Adicionar Diffusers",
"repo_id": "Repo ID",
"vaeRepoID": "VAE Repo ID",
"vaeRepoIDValidationMsg": "Repositório Online do seu VAE",
"scanAgain": "Digitalize Novamente",
"selectAndAdd": "Selecione e Adicione Modelos Listados Abaixo",
"noModelsFound": "Nenhum Modelo Encontrado",
"formMessageDiffusersModelLocation": "Localização dos Modelos Diffusers",
"formMessageDiffusersModelLocationDesc": "Por favor entre com ao menos um.",
"formMessageDiffusersVAELocation": "Localização do VAE",
"formMessageDiffusersVAELocationDesc": "Se não provido, InvokeAI irá procurar pelo arquivo VAE dentro do local do modelo.",
"convertToDiffusers": "Converter para Diffusers",
"convertToDiffusersHelpText1": "Este modelo será convertido para o formato 🧨 Diffusers.",
"convertToDiffusersHelpText5": "Por favor, certifique-se de que você tenha espaço suficiente em disco. Os modelos geralmente variam entre 4GB e 7GB de tamanho.",
"convertToDiffusersHelpText6": "Você deseja converter este modelo?",
"convertToDiffusersSaveLocation": "Local para Salvar",
"v1": "v1",
"v2": "v2",
"inpainting": "v1 Inpainting",
"customConfig": "Configuração personalizada",
"pathToCustomConfig": "Caminho para configuração personalizada",
"convertToDiffusersHelpText3": "Seu arquivo de ponto de verificação no disco NÃO será excluído ou modificado de forma alguma. Você pode adicionar seu ponto de verificação ao Gerenciador de modelos novamente, se desejar.",
"convertToDiffusersHelpText4": "Este é um processo único. Pode levar cerca de 30 a 60s, dependendo das especificações do seu computador.",
"merge": "Mesclar",
"modelsMerged": "Modelos mesclados",
"mergeModels": "Mesclar modelos",
"modelOne": "Modelo 1",
"modelTwo": "Modelo 2",
"modelThree": "Modelo 3",
"statusConverting": "Convertendo",
"modelConverted": "Modelo Convertido",
"sameFolder": "Mesma pasta",
"invokeRoot": "Pasta do InvokeAI",
"custom": "Personalizado",
"customSaveLocation": "Local de salvamento personalizado",
"mergedModelName": "Nome do modelo mesclado",
"alpha": "Alpha",
"allModels": "Todos os Modelos",
"repoIDValidationMsg": "Repositório Online do seu Modelo",
"convert": "Converter",
"convertToDiffusersHelpText2": "Este processo irá substituir sua entrada de Gerenciador de Modelos por uma versão Diffusers do mesmo modelo."
},
"parameters": {
"images": "Imagems",
@ -442,14 +506,14 @@
"move": "Mover",
"resetView": "Resetar Visualização",
"mergeVisible": "Fundir Visível",
"saveToGallery": "Save To Gallery",
"saveToGallery": "Salvar na Galeria",
"copyToClipboard": "Copiar para a Área de Transferência",
"downloadAsImage": "Baixar Como Imagem",
"undo": "Desfazer",
"redo": "Refazer",
"clearCanvas": "Limpar Tela",
"canvasSettings": "Configurações de Tela",
"showIntermediates": "Show Intermediates",
"showIntermediates": "Mostrar Intermediários",
"showGrid": "Mostrar Grade",
"snapToGrid": "Encaixar na Grade",
"darkenOutsideSelection": "Escurecer Seleção Externa",

View File

@ -0,0 +1 @@
{}

View File

@ -5,9 +5,16 @@
<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="favicon.ico" />
<style>
html,
body {
padding: 0;
margin: 0;
}
</style>
</head>
<body>
<body dir="ltr">
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>

View File

@ -5,28 +5,44 @@
"scripts": {
"prepare": "cd ../../../ && husky install invokeai/frontend/web/.husky",
"dev": "vite dev",
"build": "tsc && vite build",
"build": "npm run lint && vite build",
"preview": "vite preview",
"madge": "madge --circular src/main.tsx",
"lint": "eslint --fix .",
"lint:madge": "madge --circular src/main.tsx",
"lint:eslint": "eslint --max-warnings=0",
"lint:prettier": "prettier --check .",
"lint:tsc": "tsc --noEmit",
"lint": "npm run lint:eslint && npm run lint:prettier && npm run lint:tsc && npm run lint:madge",
"fix": "eslint --fix . && prettier --loglevel warn --write . && tsc --noEmit",
"lint-staged": "lint-staged",
"prettier": "prettier *.{json,js,ts,html} public/locales/*.json src/**/*.{ts,tsx,scss} --write --loglevel warn .",
"fmt": "npm run prettier -- --write",
"postinstall": "patch-package"
"postinstall": "patch-package && yarn run theme",
"theme": "chakra-cli tokens src/theme/theme.ts",
"theme:watch": "chakra-cli tokens src/theme/theme.ts --watch"
},
"madge": {
"detectiveOptions": {
"ts": {
"skipTypeImports": true
},
"tsx": {
"skipTypeImports": true
}
}
},
"lint-staged": {
"**/*.{js,jsx,ts,tsx,cjs,json,html,scss}": [
"prettier --write",
"eslint --fix"
]
},
"dependencies": {
"@chakra-ui/anatomy": "^2.1.1",
"@chakra-ui/icons": "^2.0.17",
"@chakra-ui/react": "^2.5.1",
"@emotion/cache": "^11.10.5",
"@chakra-ui/theme-tools": "^2.0.16",
"@emotion/react": "^11.10.6",
"@emotion/styled": "^11.10.6",
"@radix-ui/react-context-menu": "^2.1.1",
"@radix-ui/react-slider": "^1.1.0",
"@radix-ui/react-tooltip": "^1.0.3",
"@reduxjs/toolkit": "^1.9.2",
"@types/uuid": "^9.0.0",
"@vitejs/plugin-react-swc": "^3.2.0",
"add": "^2.0.6",
"chakra-ui-contextmenu": "^1.0.5",
"dateformat": "^5.0.3",
"formik": "^2.2.9",
"framer-motion": "^9.0.4",
@ -50,19 +66,21 @@
"react-zoom-pan-pinch": "^2.6.1",
"redux-deep-persist": "^1.0.7",
"redux-persist": "^6.0.0",
"socket.io": "^4.6.0",
"socket.io-client": "^4.6.0",
"use-image": "^1.1.0",
"uuid": "^9.0.0",
"yarn": "^1.22.19"
"uuid": "^9.0.0"
},
"devDependencies": {
"@chakra-ui/cli": "^2.3.0",
"@fontsource/inter": "^4.5.15",
"@types/dateformat": "^5.0.0",
"@types/react": "^18.0.28",
"@types/react-dom": "^18.0.11",
"@types/react-transition-group": "^4.4.5",
"@types/uuid": "^9.0.0",
"@typescript-eslint/eslint-plugin": "^5.52.0",
"@typescript-eslint/parser": "^5.52.0",
"@vitejs/plugin-react-swc": "^3.2.0",
"babel-plugin-transform-imports": "^2.0.0",
"eslint": "^8.34.0",
"eslint-config-prettier": "^8.6.0",
@ -76,26 +94,10 @@
"postinstall-postinstall": "^2.1.0",
"prettier": "^2.8.4",
"rollup-plugin-visualizer": "^5.9.0",
"sass": "^1.58.3",
"terser": "^5.16.4",
"vite": "^4.1.2",
"vite-plugin-eslint": "^1.8.1",
"vite-tsconfig-paths": "^4.0.5"
},
"madge": {
"detectiveOptions": {
"ts": {
"skipTypeImports": true
},
"tsx": {
"skipTypeImports": true
}
}
},
"lint-staged": {
"**/*.{js,jsx,ts,tsx,cjs,json,html,scss}": [
"npm run prettier",
"npm run lint"
]
"vite-tsconfig-paths": "^4.0.5",
"yarn": "^1.22.19"
}
}

View File

@ -0,0 +1,14 @@
diff --git a/node_modules/@chakra-ui/cli/dist/scripts/read-theme-file.worker.js b/node_modules/@chakra-ui/cli/dist/scripts/read-theme-file.worker.js
index 937cf0d..7dcc0c0 100644
--- a/node_modules/@chakra-ui/cli/dist/scripts/read-theme-file.worker.js
+++ b/node_modules/@chakra-ui/cli/dist/scripts/read-theme-file.worker.js
@@ -50,7 +50,8 @@ async function readTheme(themeFilePath) {
project: tsConfig.configFileAbsolutePath,
compilerOptions: {
module: "CommonJS",
- esModuleInterop: true
+ esModuleInterop: true,
+ jsx: 'react'
},
transpileOnly: true,
swc: true

View File

@ -10,14 +10,18 @@
"darkTheme": "Dark",
"lightTheme": "Light",
"greenTheme": "Green",
"oceanTheme": "Ocean",
"langArabic": "العربية",
"langEnglish": "English",
"langDutch": "Nederlands",
"langFrench": "Français",
"langGerman": "Deutsch",
"langHebrew": "עברית",
"langItalian": "Italiano",
"langJapanese": "日本語",
"langKorean": "한국어",
"langPolish": "Polski",
"langPortuguese": "Português",
"langBrPortuguese": "Português do Brasil",
"langRussian": "Русский",
"langSimplifiedChinese": "简体中文",
@ -63,7 +67,10 @@
"statusConvertingModel": "Converting Model",
"statusModelConverted": "Model Converted",
"statusMergingModels": "Merging Models",
"statusMergedModels": "Models Merged"
"statusMergedModels": "Models Merged",
"pinOptionsPanel": "Pin Options Panel",
"loading": "Loading",
"loadingInvokeAI": "Loading Invoke AI"
},
"gallery": {
"generations": "Generations",
@ -82,7 +89,7 @@
"noImagesInGallery": "No Images In Gallery"
},
"hotkeys": {
"keyboardShortcuts": "Keyboard Shorcuts",
"keyboardShortcuts": "Keyboard Shortcuts",
"appHotkeys": "App Hotkeys",
"generalHotkeys": "General Hotkeys",
"galleryHotkeys": "Gallery Hotkeys",
@ -387,13 +394,16 @@
"mergedModelCustomSaveLocation": "Custom Path",
"invokeAIFolder": "Invoke AI Folder",
"ignoreMismatch": "Ignore Mismatches Between Selected Models",
"modelMergeHeaderHelp1": "You can merge upto three different models to create a blend that suits your needs.",
"modelMergeHeaderHelp1": "You can merge up to three different models to create a blend that suits your needs.",
"modelMergeHeaderHelp2": "Only Diffusers are available for merging. If you want to merge a checkpoint model, please convert it to Diffusers first.",
"modelMergeAlphaHelp": "Alpha controls blend strength for the models. Lower alpha values lead to lower influence of the second model.",
"modelMergeInterpAddDifferenceHelp": "In this mode, Model 3 is first subtracted from Model 2. The resulting version is blended with Model 1 with the alpha rate set above.",
"inverseSigmoid": "Inverse Sigmoid",
"sigmoid": "Sigmoid",
"weightedSum": "Weighted Sum"
"weightedSum": "Weighted Sum",
"none": "none",
"addDifference": "Add Difference",
"pickModelType": "Pick Model Type"
},
"parameters": {
"general": "General",

View File

@ -0,0 +1,593 @@
{
"modelManager": {
"cannotUseSpaces": "לא ניתן להשתמש ברווחים",
"addNew": "הוסף חדש",
"vaeLocationValidationMsg": "נתיב למקום שבו ממוקם ה- VAE שלך.",
"height": "גובה",
"load": "טען",
"search": "חיפוש",
"heightValidationMsg": "גובה ברירת המחדל של המודל שלך.",
"addNewModel": "הוסף מודל חדש",
"allModels": "כל המודלים",
"checkpointModels": "נקודות ביקורת",
"diffusersModels": "מפזרים",
"safetensorModels": "טנסורים בטוחים",
"modelAdded": "מודל התווסף",
"modelUpdated": "מודל עודכן",
"modelEntryDeleted": "רשומת המודל נמחקה",
"addCheckpointModel": "הוסף נקודת ביקורת / מודל טנסור בטוח",
"addDiffuserModel": "הוסף מפזרים",
"addManually": "הוספה ידנית",
"manual": "ידני",
"name": "שם",
"description": "תיאור",
"descriptionValidationMsg": "הוסף תיאור למודל שלך",
"config": "תצורה",
"configValidationMsg": "נתיב לקובץ התצורה של המודל שלך.",
"modelLocation": "מיקום המודל",
"modelLocationValidationMsg": "נתיב למקום שבו המודל שלך ממוקם באופן מקומי.",
"repo_id": "מזהה מאגר",
"repoIDValidationMsg": "מאגר מקוון של המודל שלך",
"vaeLocation": "מיקום VAE",
"vaeRepoIDValidationMsg": "המאגר המקוון של VAE שלך",
"width": "רוחב",
"widthValidationMsg": "רוחב ברירת המחדל של המודל שלך.",
"addModel": "הוסף מודל",
"updateModel": "עדכן מודל",
"active": "פעיל",
"modelsFound": "מודלים נמצאו",
"cached": "נשמר במטמון",
"checkpointFolder": "תיקיית נקודות ביקורת",
"findModels": "מצא מודלים",
"scanAgain": "סרוק מחדש",
"selectFolder": "בחירת תיקייה",
"selected": "נבחר",
"selectAll": "בחר הכל",
"deselectAll": "ביטול בחירת הכל",
"showExisting": "הצג קיים",
"addSelected": "הוסף פריטים שנבחרו",
"modelExists": "המודל קיים",
"selectAndAdd": "בחר והוסך מודלים המפורטים להלן",
"deleteModel": "מחיקת מודל",
"deleteConfig": "מחיקת תצורה",
"formMessageDiffusersModelLocation": "מיקום מפזרי המודל",
"formMessageDiffusersModelLocationDesc": "נא להזין לפחות אחד.",
"convertToDiffusersHelpText5": "אנא ודא/י שיש לך מספיק מקום בדיסק. גדלי מודלים בדרך כלל הינם בין 4GB-7GB.",
"convertToDiffusersHelpText1": "מודל זה יומר לפורמט 🧨 המפזרים.",
"convertToDiffusersHelpText2": "תהליך זה יחליף את הרשומה של מנהל המודלים שלך בגרסת המפזרים של אותו המודל.",
"convertToDiffusersHelpText6": "האם ברצונך להמיר מודל זה?",
"convertToDiffusersSaveLocation": "שמירת מיקום",
"inpainting": "v1 צביעת תוך",
"statusConverting": "ממיר",
"modelConverted": "מודל הומר",
"sameFolder": "אותה תיקיה",
"custom": "התאמה אישית",
"merge": "מזג",
"modelsMerged": "מודלים מוזגו",
"mergeModels": "מזג מודלים",
"modelOne": "מודל 1",
"customSaveLocation": "מיקום שמירה מותאם אישית",
"alpha": "אלפא",
"mergedModelSaveLocation": "שמירת מיקום",
"mergedModelCustomSaveLocation": "נתיב מותאם אישית",
"ignoreMismatch": "התעלמות מאי-התאמות בין מודלים שנבחרו",
"modelMergeHeaderHelp1": "ניתן למזג עד שלושה מודלים שונים כדי ליצור שילוב שמתאים לצרכים שלכם.",
"modelMergeAlphaHelp": "אלפא שולט בחוזק מיזוג עבור המודלים. ערכי אלפא נמוכים יותר מובילים להשפעה נמוכה יותר של המודל השני.",
"nameValidationMsg": "הכנס שם למודל שלך",
"vaeRepoID": "מזהה מאגר ה VAE",
"modelManager": "מנהל המודלים",
"model": "מודל",
"availableModels": "מודלים זמינים",
"notLoaded": "לא נטען",
"clearCheckpointFolder": "נקה את תיקיית נקודות הביקורת",
"noModelsFound": "לא נמצאו מודלים",
"delete": "מחיקה",
"deleteMsg1": "האם אתה בטוח שברצונך למחוק רשומת מודל זו מ- InvokeAI?",
"deleteMsg2": "פעולה זו לא תמחק את קובץ נקודת הביקורת מהדיסק שלך. ניתן לקרוא אותם מחדש במידת הצורך.",
"formMessageDiffusersVAELocation": "מיקום VAE",
"formMessageDiffusersVAELocationDesc": "במידה ולא מסופק, InvokeAI תחפש את קובץ ה-VAE במיקום המודל המופיע לעיל.",
"convertToDiffusers": "המרה למפזרים",
"convert": "המרה",
"modelTwo": "מודל 2",
"modelThree": "מודל 3",
"mergedModelName": "שם מודל ממוזג",
"v1": "v1",
"v2": "v2",
"invokeRoot": "תיקיית InvokeAI",
"customConfig": "תצורה מותאמת אישית",
"pathToCustomConfig": "נתיב לתצורה מותאמת אישית",
"interpolationType": "סוג אינטרפולציה",
"invokeAIFolder": "תיקיית InvokeAI",
"sigmoid": "סיגמואיד",
"weightedSum": "סכום משוקלל",
"modelMergeHeaderHelp2": "רק מפזרים זמינים למיזוג. אם ברצונך למזג מודל של נקודת ביקורת, המר אותו תחילה למפזרים.",
"inverseSigmoid": "הפוך סיגמואיד",
"convertToDiffusersHelpText3": "קובץ נקודת הביקורת שלך בדיסק לא יימחק או ישונה בכל מקרה. אתה יכול להוסיף את נקודת הביקורת שלך למנהל המודלים שוב אם תרצה בכך.",
"convertToDiffusersHelpText4": "זהו תהליך חד פעמי בלבד. התהליך עשוי לקחת בסביבות 30-60 שניות, תלוי במפרט המחשב שלך.",
"modelMergeInterpAddDifferenceHelp": "במצב זה, מודל 3 מופחת תחילה ממודל 2. הגרסה המתקבלת משולבת עם מודל 1 עם קצב האלפא שנקבע לעיל."
},
"common": {
"nodesDesc": "מערכת מבוססת צמתים עבור יצירת תמונות עדיין תחת פיתוח. השארו קשובים לעדכונים עבור הפיצ׳ר המדהים הזה.",
"themeLabel": "ערכת נושא",
"languagePickerLabel": "בחירת שפה",
"githubLabel": "גיטהאב",
"discordLabel": "דיסקורד",
"settingsLabel": "הגדרות",
"darkTheme": "חשוך",
"lightTheme": "מואר",
"langEnglish": "אנגלית",
"langDutch": "הולנדית",
"langArabic": "ערבית",
"langFrench": "צרפתית",
"langGerman": "גרמנית",
"langJapanese": "יפנית",
"langBrPortuguese": "פורטוגזית",
"langRussian": "רוסית",
"langSimplifiedChinese": "סינית",
"langUkranian": "אוקראינית",
"langSpanish": "ספרדית",
"text2img": "טקסט לתמונה",
"img2img": "תמונה לתמונה",
"unifiedCanvas": "קנבס מאוחד",
"nodes": "צמתים",
"postProcessing": "לאחר עיבוד",
"postProcessDesc2": "תצוגה ייעודית תשוחרר בקרוב על מנת לתמוך בתהליכים ועיבודים מורכבים.",
"postProcessDesc3": "ממשק שורת הפקודה של Invoke AI מציע תכונות שונות אחרות כולל Embiggen.",
"close": "סגירה",
"statusConnected": "מחובר",
"statusDisconnected": "מנותק",
"statusError": "שגיאה",
"statusPreparing": "בהכנה",
"statusProcessingCanceled": "עיבוד בוטל",
"statusProcessingComplete": "עיבוד הסתיים",
"statusGenerating": "מייצר",
"statusGeneratingTextToImage": "מייצר טקסט לתמונה",
"statusGeneratingImageToImage": "מייצר תמונה לתמונה",
"statusGeneratingInpainting": "מייצר ציור לתוך",
"statusGeneratingOutpainting": "מייצר ציור החוצה",
"statusIterationComplete": "איטרציה הסתיימה",
"statusRestoringFaces": "משחזר פרצופים",
"statusRestoringFacesCodeFormer": "משחזר פרצופים (CodeFormer)",
"statusUpscaling": "העלאת קנה מידה",
"statusUpscalingESRGAN": "העלאת קנה מידה (ESRGAN)",
"statusModelChanged": "מודל השתנה",
"statusConvertingModel": "ממיר מודל",
"statusModelConverted": "מודל הומר",
"statusMergingModels": "מיזוג מודלים",
"statusMergedModels": "מודלים מוזגו",
"hotkeysLabel": "מקשים חמים",
"reportBugLabel": "דווח באג",
"greenTheme": "ירוק",
"langItalian": "איטלקית",
"upload": "העלאה",
"langPolish": "פולנית",
"training": "אימון",
"load": "טעינה",
"back": "אחורה",
"statusSavingImage": "שומר תמונה",
"statusGenerationComplete": "ייצור הסתיים",
"statusRestoringFacesGFPGAN": "משחזר פרצופים (GFPGAN)",
"statusLoadingModel": "טוען מודל",
"trainingDesc2": "InvokeAI כבר תומך באימון הטמעות מותאמות אישית באמצעות היפוך טקסט באמצעות הסקריפט הראשי.",
"postProcessDesc1": "InvokeAI מציעה מגוון רחב של תכונות עיבוד שלאחר. העלאת קנה מידה של תמונה ושחזור פנים כבר זמינים בממשק המשתמש. ניתן לגשת אליהם מתפריט 'אפשרויות מתקדמות' בכרטיסיות 'טקסט לתמונה' ו'תמונה לתמונה'. ניתן גם לעבד תמונות ישירות, באמצעות לחצני הפעולה של התמונה מעל תצוגת התמונה הנוכחית או בתוך המציג.",
"trainingDesc1": "תהליך עבודה ייעודי לאימון ההטמעות ונקודות הביקורת שלך באמצעות היפוך טקסט ו-Dreambooth מממשק המשתמש."
},
"hotkeys": {
"toggleGallery": {
"desc": "פתח וסגור את מגירת הגלריה",
"title": "הצג את הגלריה"
},
"keyboardShortcuts": "קיצורי מקלדת",
"appHotkeys": "קיצורי אפליקציה",
"generalHotkeys": "קיצורי דרך כלליים",
"galleryHotkeys": "קיצורי דרך של הגלריה",
"unifiedCanvasHotkeys": "קיצורי דרך לקנבס המאוחד",
"invoke": {
"title": "הפעל",
"desc": "צור תמונה"
},
"focusPrompt": {
"title": "התמקדות על הבקשה",
"desc": "התמקדות על איזור הקלדת הבקשה"
},
"toggleOptions": {
"desc": "פתח וסגור את פאנל ההגדרות",
"title": "הצג הגדרות"
},
"pinOptions": {
"title": "הצמד הגדרות",
"desc": "הצמד את פאנל ההגדרות"
},
"toggleViewer": {
"title": "הצג את חלון ההצגה",
"desc": "פתח וסגור את מציג התמונות"
},
"changeTabs": {
"title": "החלף לשוניות",
"desc": "החלף לאיזור עבודה אחר"
},
"consoleToggle": {
"desc": "פתח וסגור את הקונסול",
"title": "הצג קונסול"
},
"setPrompt": {
"title": "הגדרת בקשה",
"desc": "שימוש בבקשה של התמונה הנוכחית"
},
"restoreFaces": {
"desc": "שחזור התמונה הנוכחית",
"title": "שחזור פרצופים"
},
"upscale": {
"title": "הגדלת קנה מידה",
"desc": "הגדל את התמונה הנוכחית"
},
"showInfo": {
"title": "הצג מידע",
"desc": "הצגת פרטי מטא-נתונים של התמונה הנוכחית"
},
"sendToImageToImage": {
"title": "שלח לתמונה לתמונה",
"desc": "שלח תמונה נוכחית לתמונה לתמונה"
},
"deleteImage": {
"title": "מחק תמונה",
"desc": "מחק את התמונה הנוכחית"
},
"closePanels": {
"title": "סגור לוחות",
"desc": "סוגר לוחות פתוחים"
},
"previousImage": {
"title": "תמונה קודמת",
"desc": "הצג את התמונה הקודמת בגלריה"
},
"toggleGalleryPin": {
"title": "הצג את מצמיד הגלריה",
"desc": "הצמדה וביטול הצמדה של הגלריה לממשק המשתמש"
},
"decreaseGalleryThumbSize": {
"title": "הקטנת גודל תמונת גלריה",
"desc": "מקטין את גודל התמונות הממוזערות של הגלריה"
},
"selectBrush": {
"desc": "בוחר את מברשת הקנבס",
"title": "בחר מברשת"
},
"selectEraser": {
"title": "בחר מחק",
"desc": "בוחר את מחק הקנבס"
},
"decreaseBrushSize": {
"title": "הקטנת גודל המברשת",
"desc": "מקטין את גודל מברשת הקנבס/מחק"
},
"increaseBrushSize": {
"desc": "מגדיל את גודל מברשת הקנבס/מחק",
"title": "הגדלת גודל המברשת"
},
"decreaseBrushOpacity": {
"title": "הפחת את אטימות המברשת",
"desc": "מקטין את האטימות של מברשת הקנבס"
},
"increaseBrushOpacity": {
"title": "הגדל את אטימות המברשת",
"desc": "מגביר את האטימות של מברשת הקנבס"
},
"moveTool": {
"title": "כלי הזזה",
"desc": "מאפשר ניווט על קנבס"
},
"fillBoundingBox": {
"desc": "ממלא את התיבה התוחמת בצבע מברשת",
"title": "מילוי תיבה תוחמת"
},
"eraseBoundingBox": {
"desc": "מוחק את אזור התיבה התוחמת",
"title": "מחק תיבה תוחמת"
},
"colorPicker": {
"title": "בחר בבורר צבעים",
"desc": "בוחר את בורר צבעי הקנבס"
},
"toggleSnap": {
"title": "הפעל הצמדה",
"desc": "מפעיל הצמדה לרשת"
},
"quickToggleMove": {
"title": "הפעלה מהירה להזזה",
"desc": "מפעיל זמנית את מצב ההזזה"
},
"toggleLayer": {
"title": "הפעל שכבה",
"desc": "הפעל בחירת שכבת בסיס/מסיכה"
},
"clearMask": {
"title": "נקה מסיכה",
"desc": "נקה את כל המסכה"
},
"hideMask": {
"desc": "הסתרה והצגה של מסיכה",
"title": "הסתר מסיכה"
},
"showHideBoundingBox": {
"title": "הצגה/הסתרה של תיבה תוחמת",
"desc": "הפעל תצוגה של התיבה התוחמת"
},
"mergeVisible": {
"title": "מיזוג תוכן גלוי",
"desc": "מיזוג כל השכבות הגלויות של הקנבס"
},
"saveToGallery": {
"title": "שמור לגלריה",
"desc": "שמור את הקנבס הנוכחי בגלריה"
},
"copyToClipboard": {
"title": "העתק ללוח ההדבקה",
"desc": "העתק את הקנבס הנוכחי ללוח ההדבקה"
},
"downloadImage": {
"title": "הורד תמונה",
"desc": "הורד את הקנבס הנוכחי"
},
"undoStroke": {
"title": "בטל משיכה",
"desc": "בטל משיכת מברשת"
},
"redoStroke": {
"title": "בצע שוב משיכה",
"desc": "ביצוע מחדש של משיכת מברשת"
},
"resetView": {
"title": "איפוס תצוגה",
"desc": "אפס תצוגת קנבס"
},
"previousStagingImage": {
"desc": "תמונת אזור ההערכות הקודמת",
"title": "תמונת הערכות קודמת"
},
"nextStagingImage": {
"title": "תמנות הערכות הבאה",
"desc": "תמונת אזור ההערכות הבאה"
},
"acceptStagingImage": {
"desc": "אשר את תמונת איזור ההערכות הנוכחית",
"title": "אשר תמונת הערכות"
},
"cancel": {
"desc": "ביטול יצירת תמונה",
"title": "ביטול"
},
"maximizeWorkSpace": {
"title": "מקסם את איזור העבודה",
"desc": "סגור פאנלים ומקסם את איזור העבודה"
},
"setSeed": {
"title": "הגדר זרע",
"desc": "השתמש בזרע התמונה הנוכחית"
},
"setParameters": {
"title": "הגדרת פרמטרים",
"desc": "שימוש בכל הפרמטרים של התמונה הנוכחית"
},
"increaseGalleryThumbSize": {
"title": "הגדל את גודל תמונת הגלריה",
"desc": "מגדיל את התמונות הממוזערות של הגלריה"
},
"nextImage": {
"title": "תמונה הבאה",
"desc": "הצג את התמונה הבאה בגלריה"
}
},
"gallery": {
"uploads": "העלאות",
"galleryImageSize": "גודל תמונה",
"gallerySettings": "הגדרות גלריה",
"maintainAspectRatio": "שמור על יחס רוחב-גובה",
"autoSwitchNewImages": "החלף אוטומטית לתמונות חדשות",
"singleColumnLayout": "תצוגת עמודה אחת",
"pinGallery": "הצמד גלריה",
"allImagesLoaded": "כל התמונות נטענו",
"loadMore": "טען עוד",
"noImagesInGallery": "אין תמונות בגלריה",
"galleryImageResetSize": "איפוס גודל",
"generations": "דורות",
"showGenerations": "הצג דורות",
"showUploads": "הצג העלאות"
},
"parameters": {
"images": "תמונות",
"steps": "צעדים",
"cfgScale": "סולם CFG",
"width": "רוחב",
"height": "גובה",
"sampler": "דוגם",
"seed": "זרע",
"imageToImage": "תמונה לתמונה",
"randomizeSeed": "זרע אקראי",
"variationAmount": "כמות וריאציה",
"seedWeights": "משקלי זרע",
"faceRestoration": "שחזור פנים",
"restoreFaces": "שחזר פנים",
"type": "סוג",
"strength": "חוזק",
"upscale": "הגדלת קנה מידה",
"upscaleImage": "הגדלת קנה מידת התמונה",
"denoisingStrength": "חוזק מנטרל הרעש",
"otherOptions": "אפשרויות אחרות",
"hiresOptim": "אופטימיזצית רזולוציה גבוהה",
"hiresStrength": "חוזק רזולוציה גבוהה",
"codeformerFidelity": "דבקות",
"seamSize": "גודל תפר",
"seamBlur": "טשטוש תפר",
"seamStrength": "חוזק תפר",
"seamSteps": "שלבי תפר",
"scaleBeforeProcessing": "שנה קנה מידה לפני עיבוד",
"scaledWidth": "קנה מידה לאחר שינוי W",
"scaledHeight": "קנה מידה לאחר שינוי H",
"infillMethod": "שיטת מילוי",
"tileSize": "גודל אריח",
"boundingBoxHeader": "תיבה תוחמת",
"seamCorrectionHeader": "תיקון תפר",
"infillScalingHeader": "מילוי וקנה מידה",
"toggleLoopback": "הפעל לולאה חוזרת",
"symmetry": "סימטריה",
"vSymmetryStep": "צעד סימטריה V",
"hSymmetryStep": "צעד סימטריה H",
"invoke": "הפעלה",
"cancel": {
"schedule": "ביטול לאחר האיטרציה הנוכחית",
"isScheduled": "מבטל",
"immediate": "ביטול מיידי",
"setType": "הגדר סוג ביטול"
},
"negativePrompts": "בקשות שליליות",
"sendTo": "שליחה אל",
"copyImage": "העתקת תמונה",
"downloadImage": "הורדת תמונה",
"sendToImg2Img": "שליחה לתמונה לתמונה",
"sendToUnifiedCanvas": "שליחה אל קנבס מאוחד",
"openInViewer": "פתח במציג",
"closeViewer": "סגור מציג",
"usePrompt": "שימוש בבקשה",
"useSeed": "שימוש בזרע",
"useAll": "שימוש בהכל",
"useInitImg": "שימוש בתמונה ראשונית",
"info": "פרטים",
"showOptionsPanel": "הצג חלונית אפשרויות",
"shuffle": "ערבוב",
"noiseThreshold": "סף רעש",
"perlinNoise": "רעש פרלין",
"variations": "וריאציות",
"imageFit": "התאמת תמונה ראשונית לגודל הפלט",
"general": "כללי",
"upscaling": "מגדיל את קנה מידה",
"scale": "סולם",
"seamlessTiling": "ריצוף חלק",
"img2imgStrength": "חוזק תמונה לתמונה",
"initialImage": "תמונה ראשונית",
"copyImageToLink": "העתקת תמונה לקישור",
"deleteImage": "מחיקת תמונה",
"promptPlaceholder": "הקלד בקשה כאן. [אסימונים שליליים], (העלאת משקל)++ , (הורדת משקל)--, החלפה ומיזוג זמינים (ראה מסמכים)"
},
"settings": {
"models": "מודלים",
"displayInProgress": "הצגת תמונות בתהליך",
"confirmOnDelete": "אישור בעת המחיקה",
"useCanvasBeta": "שימוש בגרסת ביתא של תצוגת הקנבס",
"useSlidersForAll": "שימוש במחוונים לכל האפשרויות",
"resetWebUI": "איפוס ממשק משתמש",
"resetWebUIDesc1": "איפוס ממשק המשתמש האינטרנטי מאפס רק את המטמון המקומי של הדפדפן של התמונות וההגדרות שנשמרו. זה לא מוחק תמונות מהדיסק.",
"resetComplete": "ממשק המשתמש אופס. יש לבצע רענון דף בכדי לטעון אותו מחדש.",
"enableImageDebugging": "הפעלת איתור באגים בתמונה",
"displayHelpIcons": "הצג סמלי עזרה",
"saveSteps": "שמירת תמונות כל n צעדים",
"resetWebUIDesc2": "אם תמונות לא מופיעות בגלריה או שמשהו אחר לא עובד, נא לנסות איפוס /או אתחול לפני שליחת תקלה ב-GitHub."
},
"toast": {
"uploadFailed": "העלאה נכשלה",
"uploadFailedMultipleImagesDesc": "תמונות מרובות הודבקו, ניתן להעלות תמונה אחת בלבד בכל פעם",
"imageCopied": "התמונה הועתקה",
"imageLinkCopied": "קישור תמונה הועתק",
"imageNotLoadedDesc": "לא נמצאה תמונה לשליחה למודול תמונה לתמונה",
"imageSavedToGallery": "התמונה נשמרה בגלריה",
"canvasMerged": "קנבס מוזג",
"sentToImageToImage": "נשלח לתמונה לתמונה",
"sentToUnifiedCanvas": "נשלח אל קנבס מאוחד",
"parametersSet": "הגדרת פרמטרים",
"parametersNotSet": "פרמטרים לא הוגדרו",
"parametersNotSetDesc": "לא נמצאו מטא-נתונים עבור תמונה זו.",
"parametersFailedDesc": "לא ניתן לטעון תמונת התחלה.",
"seedSet": "זרע הוגדר",
"seedNotSetDesc": "לא ניתן היה למצוא זרע לתמונה זו.",
"promptNotSetDesc": "לא היתה אפשרות למצוא בקשה עבור תמונה זו.",
"metadataLoadFailed": "טעינת מטא-נתונים נכשלה",
"initialImageSet": "סט תמונה ראשוני",
"initialImageNotSet": "התמונה הראשונית לא הוגדרה",
"initialImageNotSetDesc": "לא ניתן היה לטעון את התמונה הראשונית",
"uploadFailedUnableToLoadDesc": "לא ניתן לטעון את הקובץ",
"tempFoldersEmptied": "התיקייה הזמנית רוקנה",
"downloadImageStarted": "הורדת התמונה החלה",
"imageNotLoaded": "לא נטענה תמונה",
"parametersFailed": "בעיה בטעינת פרמטרים",
"promptNotSet": "בקשה לא הוגדרה",
"upscalingFailed": "העלאת קנה המידה נכשלה",
"faceRestoreFailed": "שחזור הפנים נכשל",
"seedNotSet": "זרע לא הוגדר",
"promptSet": "בקשה הוגדרה"
},
"tooltip": {
"feature": {
"gallery": "הגלריה מציגה יצירות מתיקיית הפלטים בעת יצירתם. ההגדרות מאוחסנות בתוך קבצים ונגישות באמצעות תפריט הקשר.",
"upscale": "השתמש ב-ESRGAN כדי להגדיל את התמונה מיד לאחר היצירה.",
"imageToImage": "תמונה לתמונה טוענת כל תמונה כראשונית, המשמשת לאחר מכן ליצירת תמונה חדשה יחד עם הבקשה. ככל שהערך גבוה יותר, כך תמונת התוצאה תשתנה יותר. ערכים מ- 0.0 עד 1.0 אפשריים, הטווח המומלץ הוא .25-.75",
"seamCorrection": "שליטה בטיפול בתפרים גלויים המתרחשים בין תמונות שנוצרו על בד הציור.",
"prompt": "זהו שדה הבקשה. הבקשה כוללת אובייקטי יצירה ומונחים סגנוניים. באפשרותך להוסיף משקל (חשיבות אסימון) גם בשורת הפקודה, אך פקודות ופרמטרים של CLI לא יפעלו.",
"variations": "נסה וריאציה עם ערך בין 0.1 ל- 1.0 כדי לשנות את התוצאה עבור זרע נתון. וריאציות מעניינות של הזרע הן בין 0.1 ל -0.3.",
"other": "אפשרויות אלה יאפשרו מצבי עיבוד חלופיים עבור ההרצה. 'ריצוף חלק' ייצור תבניות חוזרות בפלט. 'רזולוציה גבוהה' נוצר בשני שלבים עם img2img: השתמש בהגדרה זו כאשר אתה רוצה תמונה גדולה וקוהרנטית יותר ללא חפצים. פעולה זאת תקח יותר זמן מפעולת טקסט לתמונה רגילה.",
"faceCorrection": "תיקון פנים עם GFPGAN או Codeformer: האלגוריתם מזהה פרצופים בתמונה ומתקן כל פגם. ערך גבוה ישנה את התמונה יותר, וכתוצאה מכך הפרצופים יהיו אטרקטיביים יותר. Codeformer עם נאמנות גבוהה יותר משמר את התמונה המקורית על חשבון תיקון פנים חזק יותר.",
"seed": "ערך הזרע משפיע על הרעש הראשוני שממנו נוצרת התמונה. אתה יכול להשתמש בזרעים שכבר קיימים מתמונות קודמות. 'סף רעש' משמש להפחתת חפצים בערכי CFG גבוהים (נסה את טווח 0-10), ופרלין כדי להוסיף רעשי פרלין במהלך היצירה: שניהם משמשים להוספת וריאציה לתפוקות שלך.",
"infillAndScaling": "נהל שיטות מילוי (המשמשות באזורים עם מסיכה או אזורים שנמחקו בבד הציור) ושינוי קנה מידה (שימושי לגדלים קטנים של תיבות תוחמות).",
"boundingBox": "התיבה התוחמת זהה להגדרות 'רוחב' ו'גובה' עבור 'טקסט לתמונה' או 'תמונה לתמונה'. רק האזור בתיבה יעובד."
}
},
"unifiedCanvas": {
"layer": "שכבה",
"base": "בסיס",
"maskingOptions": "אפשרויות מסכות",
"enableMask": "הפעלת מסיכה",
"colorPicker": "בוחר הצבעים",
"preserveMaskedArea": "שימור איזור ממוסך",
"clearMask": "ניקוי מסיכה",
"brush": "מברשת",
"eraser": "מחק",
"fillBoundingBox": "מילוי תיבה תוחמת",
"eraseBoundingBox": "מחק תיבה תוחמת",
"copyToClipboard": "העתק ללוח ההדבקה",
"downloadAsImage": "הורדה כתמונה",
"undo": "ביטול",
"redo": "ביצוע מחדש",
"clearCanvas": "ניקוי קנבס",
"showGrid": "הצגת רשת",
"snapToGrid": "הצמדה לרשת",
"darkenOutsideSelection": "הכהיית בחירה חיצונית",
"saveBoxRegionOnly": "שמירת איזור תיבה בלבד",
"limitStrokesToBox": "הגבלת משיכות לקופסא",
"showCanvasDebugInfo": "הצגת מידע איתור באגים בקנבס",
"clearCanvasHistory": "ניקוי הסטוריית קנבס",
"clearHistory": "ניקוי היסטוריה",
"clearCanvasHistoryConfirm": "האם את/ה בטוח/ה שברצונך לנקות את היסטוריית הקנבס?",
"emptyFolder": "ריקון תיקייה",
"emptyTempImagesFolderConfirm": "האם את/ה בטוח/ה שברצונך לרוקן את התיקיה הזמנית?",
"activeLayer": "שכבה פעילה",
"canvasScale": "קנה מידה של קנבס",
"betaLimitToBox": "הגבל לקופסא",
"betaDarkenOutside": "הכההת הבחוץ",
"canvasDimensions": "מידות קנבס",
"previous": "הקודם",
"next": "הבא",
"accept": "אישור",
"showHide": "הצג/הסתר",
"discardAll": "בטל הכל",
"betaClear": "איפוס",
"boundingBox": "תיבה תוחמת",
"scaledBoundingBox": "תיבה תוחמת לאחר שינוי קנה מידה",
"betaPreserveMasked": "שמר מסיכה",
"brushOptions": "אפשרויות מברשת",
"brushSize": "גודל",
"mergeVisible": "מיזוג תוכן גלוי",
"move": "הזזה",
"resetView": "איפוס תצוגה",
"saveToGallery": "שמור לגלריה",
"canvasSettings": "הגדרות קנבס",
"showIntermediates": "הצגת מתווכים",
"autoSaveToGallery": "שמירה אוטומטית בגלריה",
"emptyTempImageFolder": "ריקון תיקיית תמונות זמניות",
"clearCanvasHistoryMessage": "ניקוי היסטוריית הקנבס משאיר את הקנבס הנוכחי ללא שינוי, אך מנקה באופן בלתי הפיך את היסטוריית הביטול והביצוע מחדש.",
"emptyTempImagesFolderMessage": "ריקון תיקיית התמונה הזמנית גם מאפס באופן מלא את הקנבס המאוחד. זה כולל את כל היסטוריית הביטול/ביצוע מחדש, תמונות באזור ההערכות ושכבת הבסיס של בד הציור.",
"boundingBoxPosition": "מיקום תיבה תוחמת",
"canvasPosition": "מיקום קנבס",
"cursorPosition": "מיקום הסמן",
"mask": "מסכה"
}
}

View File

@ -0,0 +1,81 @@
{
"common": {
"themeLabel": "테마 설정",
"languagePickerLabel": "언어 설정",
"reportBugLabel": "버그 리포트",
"githubLabel": "Github",
"settingsLabel": "설정",
"darkTheme": "다크 모드",
"lightTheme": "라이트 모드",
"greenTheme": "그린 모드",
"langArabic": "العربية",
"langEnglish": "English",
"langDutch": "Nederlands",
"text2img": "텍스트->이미지",
"unifiedCanvas": "통합 캔버스",
"langFrench": "Français",
"langGerman": "Deutsch",
"langItalian": "Italiano",
"langJapanese": "日本語",
"langBrPortuguese": "Português do Brasil",
"langRussian": "Русский",
"langSpanish": "Español",
"nodes": "노드",
"nodesDesc": "이미지 생성을 위한 노드 기반 시스템은 현재 개발 중입니다. 이 놀라운 기능에 대한 업데이트를 계속 지켜봐 주세요.",
"postProcessing": "후처리",
"postProcessDesc2": "보다 진보된 후처리 작업을 위한 전용 UI가 곧 출시될 예정입니다.",
"postProcessDesc3": "Invoke AI CLI는 Embiggen을 비롯한 다양한 기능을 제공합니다.",
"training": "학습",
"trainingDesc1": "Textual Inversion과 Dreambooth를 이용해 Web UI에서 나만의 embedding 및 checkpoint를 교육하기 위한 전용 워크플로우입니다.",
"trainingDesc2": "InvokeAI는 이미 메인 스크립트를 사용한 Textual Inversion를 이용한 Custom embedding 학습을 지원하고 있습니다.",
"upload": "업로드",
"close": "닫기",
"load": "로드",
"back": "뒤로 가기",
"statusConnected": "연결됨",
"statusDisconnected": "연결 끊김",
"statusError": "에러",
"statusPreparing": "준비 중",
"langSimplifiedChinese": "简体中文",
"statusGenerating": "생성 중",
"statusGeneratingTextToImage": "텍스트->이미지 생성",
"statusGeneratingInpainting": "인페인팅 생성",
"statusGeneratingOutpainting": "아웃페인팅 생성",
"statusGenerationComplete": "생성 완료",
"statusRestoringFaces": "얼굴 복원",
"statusRestoringFacesGFPGAN": "얼굴 복원 (GFPGAN)",
"statusRestoringFacesCodeFormer": "얼굴 복원 (CodeFormer)",
"statusUpscaling": "업스케일링",
"statusUpscalingESRGAN": "업스케일링 (ESRGAN)",
"statusLoadingModel": "모델 로딩중",
"statusModelChanged": "모델 변경됨",
"statusConvertingModel": "모델 컨버팅",
"statusModelConverted": "모델 컨버팅됨",
"statusMergedModels": "모델 병합됨",
"statusMergingModels": "모델 병합중",
"hotkeysLabel": "단축키 설정",
"img2img": "이미지->이미지",
"discordLabel": "Discord",
"langPolish": "Polski",
"postProcessDesc1": "Invoke AI는 다양한 후처리 기능을 제공합니다. 이미지 업스케일링 및 얼굴 복원은 이미 Web UI에서 사용할 수 있습니다. 텍스트->이미지 또는 이미지->이미지 탭의 고급 옵션 메뉴에서 사용할 수 있습니다. 또한 현재 이미지 표시 위, 또는 뷰어에서 액션 버튼을 사용하여 이미지를 직접 처리할 수도 있습니다.",
"langUkranian": "Украї́нська",
"statusProcessingCanceled": "처리 취소됨",
"statusGeneratingImageToImage": "이미지->이미지 생성",
"statusProcessingComplete": "처리 완료",
"statusIterationComplete": "반복(Iteration) 완료",
"statusSavingImage": "이미지 저장"
},
"gallery": {
"showGenerations": "생성된 이미지 보기",
"generations": "생성된 이미지",
"uploads": "업로드된 이미지",
"showUploads": "업로드된 이미지 보기",
"galleryImageSize": "이미지 크기",
"galleryImageResetSize": "사이즈 리셋",
"gallerySettings": "갤러리 설정",
"maintainAspectRatio": "종횡비 유지"
},
"unifiedCanvas": {
"betaPreserveMasked": "마스크 레이어 유지"
}
}

View File

@ -43,7 +43,27 @@
"statusUpscaling": "Opschaling",
"statusUpscalingESRGAN": "Opschaling (ESRGAN)",
"statusLoadingModel": "Laden van model",
"statusModelChanged": "Model gewijzigd"
"statusModelChanged": "Model gewijzigd",
"githubLabel": "Github",
"discordLabel": "Discord",
"langArabic": "Arabisch",
"langEnglish": "Engels",
"langFrench": "Frans",
"langGerman": "Duits",
"langItalian": "Italiaans",
"langJapanese": "Japans",
"langPolish": "Pools",
"langBrPortuguese": "Portugees (Brazilië)",
"langRussian": "Russisch",
"langSimplifiedChinese": "Chinees (vereenvoudigd)",
"langUkranian": "Oekraïens",
"langSpanish": "Spaans",
"training": "Training",
"back": "Terug",
"statusConvertingModel": "Omzetten van model",
"statusModelConverted": "Model omgezet",
"statusMergingModels": "Samenvoegen van modellen",
"statusMergedModels": "Modellen samengevoegd"
},
"gallery": {
"generations": "Gegenereerde afbeeldingen",
@ -282,7 +302,7 @@
"name": "Naam",
"nameValidationMsg": "Geef een naam voor je model",
"description": "Beschrijving",
"descriptionValidationMsg": "Voeg een beschrijving toe voor je model.",
"descriptionValidationMsg": "Voeg een beschrijving toe voor je model",
"config": "Configuratie",
"configValidationMsg": "Pad naar het configuratiebestand van je model.",
"modelLocation": "Locatie model",
@ -319,7 +339,61 @@
"deleteModel": "Verwijder model",
"deleteConfig": "Verwijder configuratie",
"deleteMsg1": "Weet je zeker dat je deze modelregel wilt verwijderen uit InvokeAI?",
"deleteMsg2": "Hiermee wordt het checkpointbestand niet van je schijf verwijderd. Je kunt deze opnieuw toevoegen als je dat wilt."
"deleteMsg2": "Hiermee wordt het checkpointbestand niet van je schijf verwijderd. Je kunt deze opnieuw toevoegen als je dat wilt.",
"formMessageDiffusersVAELocationDesc": "Indien niet opgegeven, dan zal InvokeAI kijken naar het VAE-bestand in de hierboven gegeven modellocatie.",
"repoIDValidationMsg": "Online repository van je model",
"formMessageDiffusersModelLocation": "Locatie Diffusers-model",
"convertToDiffusersHelpText3": "Je Checkpoint-bestand op schijf zal NIET worden verwijderd of gewijzigd. Je kunt je Checkpoint opnieuw toevoegen aan Modelonderhoud als je dat wilt.",
"convertToDiffusersHelpText6": "Wil je dit model omzetten?",
"allModels": "Alle modellen",
"checkpointModels": "Checkpoints",
"safetensorModels": "SafeTensors",
"addCheckpointModel": "Voeg Checkpoint-/SafeTensor-model toe",
"addDiffuserModel": "Voeg Diffusers-model toe",
"diffusersModels": "Diffusers",
"repo_id": "Repo-id",
"vaeRepoID": "Repo-id VAE",
"vaeRepoIDValidationMsg": "Online repository van je VAE",
"formMessageDiffusersModelLocationDesc": "Voer er minimaal een in.",
"formMessageDiffusersVAELocation": "Locatie VAE",
"convert": "Omzetten",
"convertToDiffusers": "Omzetten naar Diffusers",
"convertToDiffusersHelpText1": "Dit model wordt omgezet naar de🧨 Diffusers-indeling.",
"convertToDiffusersHelpText2": "Dit proces vervangt het onderdeel in Modelonderhoud met de Diffusers-versie van hetzelfde model.",
"convertToDiffusersHelpText4": "Dit is een eenmalig proces. Dit neemt ongeveer 30 tot 60 sec. in beslag, afhankelijk van de specificaties van je computer.",
"convertToDiffusersHelpText5": "Zorg ervoor dat je genoeg schijfruimte hebt. Modellen nemen gewoonlijk ongeveer 4 - 7 GB ruimte in beslag.",
"convertToDiffusersSaveLocation": "Bewaarlocatie",
"v1": "v1",
"v2": "v2",
"inpainting": "v1-inpainting",
"customConfig": "Eigen configuratie",
"pathToCustomConfig": "Pad naar eigen configuratie",
"statusConverting": "Omzetten",
"modelConverted": "Model omgezet",
"sameFolder": "Dezelfde map",
"invokeRoot": "InvokeAI-map",
"custom": "Eigen",
"customSaveLocation": "Eigen bewaarlocatie",
"merge": "Samenvoegen",
"modelsMerged": "Modellen samengevoegd",
"mergeModels": "Voeg modellen samen",
"modelOne": "Model 1",
"modelTwo": "Model 2",
"modelThree": "Model 3",
"mergedModelName": "Samengevoegde modelnaam",
"alpha": "Alfa",
"interpolationType": "Soort interpolatie",
"mergedModelSaveLocation": "Bewaarlocatie",
"mergedModelCustomSaveLocation": "Eigen pad",
"invokeAIFolder": "InvokeAI-map",
"ignoreMismatch": "Negeer discrepanties tussen gekozen modellen",
"modelMergeHeaderHelp1": "Je kunt tot drie verschillende modellen samenvoegen om een mengvorm te maken die aan je behoeften voldoet.",
"modelMergeHeaderHelp2": "Alleen Diffusers kunnen worden samengevoegd. Als je een Checkpointmodel wilt samenvoegen, zet deze eerst om naar Diffusers.",
"modelMergeAlphaHelp": "Alfa stuurt de mengsterkte aan voor de modellen. Lagere alfawaarden leiden tot een kleinere invloed op het tweede model.",
"modelMergeInterpAddDifferenceHelp": "In deze stand wordt model 3 eerst van model 2 afgehaald. Wat daar uitkomt wordt gemengd met model 1, gebruikmakend van de hierboven ingestelde alfawaarde.",
"inverseSigmoid": "Keer Sigmoid om",
"sigmoid": "Sigmoid",
"weightedSum": "Gewogen som"
},
"parameters": {
"images": "Afbeeldingen",
@ -379,7 +453,22 @@
"info": "Info",
"deleteImage": "Verwijder afbeelding",
"initialImage": "Initiële afbeelding",
"showOptionsPanel": "Toon deelscherm Opties"
"showOptionsPanel": "Toon deelscherm Opties",
"symmetry": "Symmetrie",
"hSymmetryStep": "Stap horiz. symmetrie",
"vSymmetryStep": "Stap vert. symmetrie",
"cancel": {
"immediate": "Annuleer direct",
"isScheduled": "Annuleren",
"setType": "Stel annuleervorm in",
"schedule": "Annuleer na huidige iteratie"
},
"negativePrompts": "Negatieve invoer",
"general": "Algemeen",
"copyImage": "Kopieer afbeelding",
"imageToImage": "Afbeelding naar afbeelding",
"denoisingStrength": "Sterkte ontruisen",
"hiresStrength": "Sterkte hogere resolutie"
},
"settings": {
"models": "Modellen",
@ -392,7 +481,8 @@
"resetWebUI": "Herstel web-UI",
"resetWebUIDesc1": "Herstel web-UI herstelt alleen de lokale afbeeldingscache en de onthouden instellingen van je browser. Het verwijdert geen afbeeldingen van schijf.",
"resetWebUIDesc2": "Als afbeeldingen niet getoond worden in de galerij of iets anders werkt niet, probeer dan eerst deze herstelfunctie voordat je een fout aanmeldt op GitHub.",
"resetComplete": "Webgebruikersinterface is hersteld. Vernieuw de pasgina om opnieuw te laden."
"resetComplete": "Webgebruikersinterface is hersteld. Vernieuw de pasgina om opnieuw te laden.",
"useSlidersForAll": "Gebruik schuifbalken voor alle opties"
},
"toast": {
"tempFoldersEmptied": "Tijdelijke map geleegd",

View File

@ -0,0 +1,68 @@
{
"common": {
"greenTheme": "Verde",
"langArabic": "العربية",
"themeLabel": "Tema",
"reportBugLabel": "Reportar Bug",
"settingsLabel": "Configurações",
"lightTheme": "Claro",
"langBrPortuguese": "Português do Brasil",
"languagePickerLabel": "Seletor de Idioma",
"langDutch": "Nederlands",
"langEnglish": "English",
"hotkeysLabel": "Hotkeys",
"langPolish": "Polski",
"langFrench": "Français",
"langGerman": "Deutsch",
"langItalian": "Italiano",
"langJapanese": "日本語",
"langSimplifiedChinese": "简体中文",
"langSpanish": "Espanhol",
"langRussian": "Русский",
"langUkranian": "Украї́нська",
"text2img": "Texto para Imagem",
"img2img": "Imagem para Imagem",
"unifiedCanvas": "Tela Unificada",
"nodes": "Nós",
"nodesDesc": "Um sistema baseado em nós para a geração de imagens está em desenvolvimento atualmente. Fique atento para atualizações sobre este recurso incrível.",
"postProcessDesc3": "A Interface de Linha de Comando do Invoke AI oferece vários outros recursos, incluindo o Embiggen.",
"postProcessing": "Pós Processamento",
"postProcessDesc1": "O Invoke AI oferece uma ampla variedade de recursos de pós-processamento. O aumento de resolução de imagem e a restauração de rosto já estão disponíveis na interface do usuário da Web. Você pode acessá-los no menu Opções Avançadas das guias Texto para Imagem e Imagem para Imagem. Você também pode processar imagens diretamente, usando os botões de ação de imagem acima da exibição da imagem atual ou no visualizador.",
"postProcessDesc2": "Em breve, uma interface do usuário dedicada será lançada para facilitar fluxos de trabalho de pós-processamento mais avançados.",
"trainingDesc1": "Um fluxo de trabalho dedicado para treinar seus próprios embeddings e checkpoints usando Textual Inversion e Dreambooth da interface da web.",
"trainingDesc2": "O InvokeAI já oferece suporte ao treinamento de embeddings personalizados usando a Inversão Textual por meio do script principal.",
"upload": "Upload",
"statusError": "Erro",
"statusGeneratingTextToImage": "Gerando Texto para Imagem",
"close": "Fechar",
"load": "Abrir",
"back": "Voltar",
"statusConnected": "Conectado",
"statusDisconnected": "Desconectado",
"statusPreparing": "Preparando",
"statusGenerating": "Gerando",
"statusProcessingCanceled": "Processamento Cancelado",
"statusProcessingComplete": "Processamento Completo",
"statusGeneratingImageToImage": "Gerando Imagem para Imagem",
"statusGeneratingInpainting": "Geração de Preenchimento de Lacunas",
"statusIterationComplete": "Iteração Completa",
"statusSavingImage": "Salvando Imagem",
"statusRestoringFacesGFPGAN": "Restaurando Faces (GFPGAN)",
"statusRestoringFaces": "Restaurando Faces",
"statusRestoringFacesCodeFormer": "Restaurando Faces (CodeFormer)",
"statusUpscaling": "Ampliando",
"statusUpscalingESRGAN": "Ampliando (ESRGAN)",
"statusConvertingModel": "Convertendo Modelo",
"statusModelConverted": "Modelo Convertido",
"statusLoadingModel": "Carregando Modelo",
"statusModelChanged": "Modelo Alterado",
"githubLabel": "Github",
"discordLabel": "Discord",
"darkTheme": "Escuro",
"training": "Treinando",
"statusGeneratingOutpainting": "Geração de Ampliação",
"statusGenerationComplete": "Geração Completa",
"statusMergingModels": "Mesclando Modelos",
"statusMergedModels": "Modelos Mesclados"
}
}

View File

@ -0,0 +1 @@
{}

View File

@ -1,20 +1,37 @@
import { Flex, Spinner } from '@chakra-ui/react';
import { Flex, Spinner, Text } from '@chakra-ui/react';
import { useTranslation } from 'react-i18next';
interface LoaderProps {
showText?: boolean;
text?: string;
}
// This component loads before the theme so we cannot use theme tokens here
const Loading = (props: LoaderProps) => {
const { t } = useTranslation();
const { showText = false, text = t('common.loadingInvokeAI') } = props;
const Loading = () => {
return (
<Flex
width="100vw"
height="100vh"
alignItems="center"
justifyContent="center"
bg="#121212"
flexDirection="column"
rowGap={4}
>
<Spinner
thickness="2px"
speed="1s"
emptyColor="gray.200"
color="gray.400"
size="xl"
/>
<Spinner color="grey" w="5rem" h="5rem" />
{showText && (
<Text
color="grey"
fontWeight="semibold"
fontFamily="'Inter', sans-serif"
>
{text}
</Text>
)}
</Flex>
);
};

View File

@ -1,21 +0,0 @@
@use '../styles/Mixins/' as *;
svg {
fill: var(--svg-color);
}
.App {
display: grid;
width: 100vw;
height: 100vh;
background-color: var(--background-color);
}
.app-content {
display: grid;
row-gap: 1rem;
padding: $app-padding;
grid-auto-rows: min-content auto;
width: $app-width;
height: $app-height;
}

View File

@ -9,6 +9,8 @@ import useToastWatcher from 'features/system/hooks/useToastWatcher';
import FloatingGalleryButton from 'features/ui/components/FloatingGalleryButton';
import FloatingParametersPanelButtons from 'features/ui/components/FloatingParametersPanelButtons';
import { Box, Grid } from '@chakra-ui/react';
import { APP_HEIGHT, APP_PADDING, APP_WIDTH } from 'theme/util/constants';
keepGUIAlive();
@ -16,20 +18,26 @@ const App = () => {
useToastWatcher();
return (
<div className="App">
<Grid w="100vw" h="100vh">
<ImageUploader>
<ProgressBar />
<div className="app-content">
<Grid
gap={4}
p={APP_PADDING}
gridAutoRows="min-content auto"
w={APP_WIDTH}
h={APP_HEIGHT}
>
<SiteHeader />
<InvokeTabs />
</div>
<div className="app-console">
</Grid>
<Box>
<Console />
</div>
</Box>
</ImageUploader>
<FloatingParametersPanelButtons />
<FloatingGalleryButton />
</div>
</Grid>
);
};

View File

@ -0,0 +1,46 @@
import { ChakraProvider, extendTheme } from '@chakra-ui/react';
import { ReactNode, useEffect } from 'react';
import { useTranslation } from 'react-i18next';
import { theme as invokeAITheme } from 'theme/theme';
import { RootState } from './store';
import { useAppSelector } from './storeHooks';
import { greenTeaThemeColors } from 'theme/colors/greenTea';
import { invokeAIThemeColors } from 'theme/colors/invokeAI';
import { lightThemeColors } from 'theme/colors/lightTheme';
import { oceanBlueColors } from 'theme/colors/oceanBlue';
type ThemeLocaleProviderProps = {
children: ReactNode;
};
const THEMES = {
dark: invokeAIThemeColors,
light: lightThemeColors,
green: greenTeaThemeColors,
ocean: oceanBlueColors,
};
function ThemeLocaleProvider({ children }: ThemeLocaleProviderProps) {
const { i18n } = useTranslation();
const currentTheme = useAppSelector(
(state: RootState) => state.ui.currentTheme
);
const direction = i18n.dir();
const theme = extendTheme({
...invokeAITheme,
colors: THEMES[currentTheme as keyof typeof THEMES],
direction,
});
useEffect(() => {
document.body.dir = direction;
}, [direction]);
return <ChakraProvider theme={theme}>{children}</ChakraProvider>;
}
export default ThemeLocaleProvider;

View File

@ -392,7 +392,7 @@ const makeSocketIOListeners = (
addLogEntry({
timestamp: dateFormat(new Date(), 'isoDateTime'),
message: `${i18n.t(
'modelmanager:modelAdded'
'modelManager.modelAdded'
)}: ${deleted_model_name}`,
level: 'info',
})
@ -400,7 +400,7 @@ const makeSocketIOListeners = (
dispatch(
addToast({
title: `${i18n.t(
'modelmanager:modelEntryDeleted'
'modelManager.modelEntryDeleted'
)}: ${deleted_model_name}`,
status: 'success',
duration: 2500,
@ -424,7 +424,7 @@ const makeSocketIOListeners = (
dispatch(
addToast({
title: `${i18n.t(
'modelmanager:modelConverted'
'modelManager.modelConverted'
)}: ${converted_model_name}`,
status: 'success',
duration: 2500,

Some files were not shown because too many files have changed in this diff Show More