From 1b4d04737ac513cbd55958bb60a4f85166f3484b Mon Sep 17 00:00:00 2001
From: Bruno Seoane
Date: Sat, 22 Oct 2022 20:13:16 -0300
Subject: Remove unused imports
---
modules/api/api.py | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/modules/api/api.py b/modules/api/api.py
index 5b0c934e..a5136b4b 100644
--- a/modules/api/api.py
+++ b/modules/api/api.py
@@ -1,11 +1,9 @@
from modules.api.processing import StableDiffusionProcessingAPI
from modules.processing import StableDiffusionProcessingTxt2Img, process_images
from modules.sd_samplers import all_samplers
-from modules.extras import run_pnginfo
import modules.shared as shared
import uvicorn
-from fastapi import Body, APIRouter, HTTPException
-from fastapi.responses import JSONResponse
+from fastapi import APIRouter, HTTPException
from pydantic import BaseModel, Field, Json
import json
import io
@@ -18,7 +16,6 @@ class TextToImageResponse(BaseModel):
parameters: Json
info: Json
-
class Api:
def __init__(self, app, queue_lock):
self.router = APIRouter()
--
cgit v1.2.1
From b02926df1393df311db734af149fb9faf4389cbe Mon Sep 17 00:00:00 2001
From: Bruno Seoane
Date: Sat, 22 Oct 2022 20:24:04 -0300
Subject: Moved moodels to their own file and extracted base64 conversion to
its own function
---
modules/api/api.py | 17 ++++++-----------
modules/api/models.py | 8 ++++++++
2 files changed, 14 insertions(+), 11 deletions(-)
create mode 100644 modules/api/models.py
diff --git a/modules/api/api.py b/modules/api/api.py
index a5136b4b..c17d7580 100644
--- a/modules/api/api.py
+++ b/modules/api/api.py
@@ -4,17 +4,17 @@ from modules.sd_samplers import all_samplers
import modules.shared as shared
import uvicorn
from fastapi import APIRouter, HTTPException
-from pydantic import BaseModel, Field, Json
import json
import io
import base64
+from modules.api.models import *
sampler_to_index = lambda name: next(filter(lambda row: name.lower() == row[1].name.lower(), enumerate(all_samplers)), None)
-class TextToImageResponse(BaseModel):
- images: list[str] = Field(default=None, title="Image", description="The generated image in base64 format.")
- parameters: Json
- info: Json
+def img_to_base64(img):
+ buffer = io.BytesIO()
+ img.save(buffer, format="png")
+ return base64.b64encode(buffer.getvalue())
class Api:
def __init__(self, app, queue_lock):
@@ -41,15 +41,10 @@ class Api:
with self.queue_lock:
processed = process_images(p)
- b64images = []
- for i in processed.images:
- buffer = io.BytesIO()
- i.save(buffer, format="png")
- b64images.append(base64.b64encode(buffer.getvalue()))
+ b64images = list(map(img_to_base64, processed.images))
return TextToImageResponse(images=b64images, parameters=json.dumps(vars(txt2imgreq)), info=json.dumps(processed.info))
-
def img2imgapi(self):
raise NotImplementedError
diff --git a/modules/api/models.py b/modules/api/models.py
new file mode 100644
index 00000000..a7d247d8
--- /dev/null
+++ b/modules/api/models.py
@@ -0,0 +1,8 @@
+from pydantic import BaseModel, Field, Json
+
+class TextToImageResponse(BaseModel):
+ images: list[str] = Field(default=None, title="Image", description="The generated image in base64 format.")
+ parameters: Json
+ info: Json
+
+
\ No newline at end of file
--
cgit v1.2.1
From 28e26c2bef217ae82eb9e980cceb3f67ef22e109 Mon Sep 17 00:00:00 2001
From: Bruno Seoane
Date: Sat, 22 Oct 2022 23:13:32 -0300
Subject: Add "extra" single image operation
- Separate extra modes into 3 endpoints so the user ddoesn't ahve to
handle so many unused parameters.
- Add response model for codumentation
---
modules/api/api.py | 43 ++++++++++++++++++++++++++++++++++++++-----
modules/api/models.py | 26 +++++++++++++++++++++++++-
2 files changed, 63 insertions(+), 6 deletions(-)
diff --git a/modules/api/api.py b/modules/api/api.py
index c17d7580..3b804373 100644
--- a/modules/api/api.py
+++ b/modules/api/api.py
@@ -8,20 +8,42 @@ import json
import io
import base64
from modules.api.models import *
+from PIL import Image
+from modules.extras import run_extras
+
+def upscaler_to_index(name: str):
+ try:
+ return [x.name.lower() for x in shared.sd_upscalers].index(name.lower())
+ except:
+ raise HTTPException(status_code=400, detail="Upscaler not found")
sampler_to_index = lambda name: next(filter(lambda row: name.lower() == row[1].name.lower(), enumerate(all_samplers)), None)
-def img_to_base64(img):
+def img_to_base64(img: str):
buffer = io.BytesIO()
img.save(buffer, format="png")
return base64.b64encode(buffer.getvalue())
+def base64_to_bytes(base64Img: str):
+ if "," in base64Img:
+ base64Img = base64Img.split(",")[1]
+ return io.BytesIO(base64.b64decode(base64Img))
+
+def base64_to_images(base64Imgs: list[str]):
+ imgs = []
+ for img in base64Imgs:
+ img = Image.open(base64_to_bytes(img))
+ imgs.append(img)
+ return imgs
+
+
class Api:
def __init__(self, app, queue_lock):
self.router = APIRouter()
self.app = app
self.queue_lock = queue_lock
- self.app.add_api_route("/sdapi/v1/txt2img", self.text2imgapi, methods=["POST"])
+ self.app.add_api_route("/sdapi/v1/txt2img", self.text2imgapi, methods=["POST"], response_model=TextToImageResponse)
+ self.app.add_api_route("/sdapi/v1/extra-single-image", self.extras_single_image_api, methods=["POST"], response_model=ExtrasSingleImageResponse)
def text2imgapi(self, txt2imgreq: StableDiffusionProcessingAPI ):
sampler_index = sampler_to_index(txt2imgreq.sampler_index)
@@ -45,12 +67,23 @@ class Api:
return TextToImageResponse(images=b64images, parameters=json.dumps(vars(txt2imgreq)), info=json.dumps(processed.info))
-
def img2imgapi(self):
raise NotImplementedError
- def extrasapi(self):
- raise NotImplementedError
+ def extras_single_image_api(self, req: ExtrasSingleImageRequest):
+ upscaler1Index = upscaler_to_index(req.upscaler_1)
+ upscaler2Index = upscaler_to_index(req.upscaler_2)
+
+ reqDict = vars(req)
+ reqDict.pop('upscaler_1')
+ reqDict.pop('upscaler_2')
+
+ reqDict['image'] = base64_to_images([reqDict['image']])[0]
+
+ with self.queue_lock:
+ result = run_extras(**reqDict, extras_upscaler_1=upscaler1Index, extras_upscaler_2=upscaler2Index, extras_mode=0, image_folder="", input_dir="", output_dir="")
+
+ return ExtrasSingleImageResponse(image="data:image/png;base64,"+img_to_base64(result[0]), html_info_x=result[1], html_info=result[2])
def pnginfoapi(self):
raise NotImplementedError
diff --git a/modules/api/models.py b/modules/api/models.py
index a7d247d8..dcf1ab54 100644
--- a/modules/api/models.py
+++ b/modules/api/models.py
@@ -1,8 +1,32 @@
from pydantic import BaseModel, Field, Json
+from typing_extensions import Literal
+from modules.shared import sd_upscalers
class TextToImageResponse(BaseModel):
images: list[str] = Field(default=None, title="Image", description="The generated image in base64 format.")
parameters: Json
info: Json
-
\ No newline at end of file
+class ExtrasBaseRequest(BaseModel):
+ resize_mode: Literal[0, 1] = Field(default=0, title="Resize Mode", description="Sets the resize mode: 0 to upscale by upscaling_resize amount, 1 to upscale up to upscaling_resize_h x upscaling_resize_w.")
+ show_extras_results: bool = Field(default=True, title="Show results", description="Should the backend return the generated image?")
+ gfpgan_visibility: float = Field(default=0, title="GFPGAN Visibility", ge=0, le=1, allow_inf_nan=False, description="Sets the visibility of GFPGAN, values should be between 0 and 1.")
+ codeformer_visibility: float = Field(default=0, title="CodeFormer Visibility", ge=0, le=1, allow_inf_nan=False, description="Sets the visibility of CodeFormer, values should be between 0 and 1.")
+ codeformer_weight: float = Field(default=0, title="CodeFormer Weight", ge=0, le=1, allow_inf_nan=False, description="Sets the weight of CodeFormer, values should be between 0 and 1.")
+ upscaling_resize: float = Field(default=2, title="Upscaling Factor", ge=1, le=4, description="By how much to upscale the image, only used when resize_mode=0.")
+ upscaling_resize_w: int = Field(default=512, title="Target Width", ge=1, description="Target width for the upscaler to hit. Only used when resize_mode=1.")
+ upscaling_resize_h: int = Field(default=512, title="Target Height", ge=1, description="Target height for the upscaler to hit. Only used when resize_mode=1.")
+ upscaling_crop: bool = Field(default=True, title="Crop to fit", description="Should the upscaler crop the image to fit in the choosen size?")
+ upscaler_1: str = Field(default="None", title="Main upscaler", description=f"The name of the main upscaler to use, it has to be one of this list: {' , '.join([x.name for x in sd_upscalers])}")
+ upscaler_2: str = Field(default="None", title="Secondary upscaler", description=f"The name of the secondary upscaler to use, it has to be one of this list: {' , '.join([x.name for x in sd_upscalers])}")
+ extras_upscaler_2_visibility: float = Field(default=0, title="Secondary upscaler visibility", ge=0, le=1, allow_inf_nan=False, description="Sets the visibility of secondary upscaler, values should be between 0 and 1.")
+
+class ExtraBaseResponse(BaseModel):
+ html_info_x: str
+ html_info: str
+
+class ExtrasSingleImageRequest(ExtrasBaseRequest):
+ image: str = Field(default="", title="Image", description="Image to work on, must be a Base64 string containing the image's data.")
+
+class ExtrasSingleImageResponse(ExtraBaseResponse):
+ image: str = Field(default=None, title="Image", description="The generated image in base64 format.")
\ No newline at end of file
--
cgit v1.2.1
From 0523704dade0508bf3ae0c8cb799b1ae332d449b Mon Sep 17 00:00:00 2001
From: Bruno Seoane
Date: Sun, 23 Oct 2022 12:27:50 -0300
Subject: Update run_extras to use the temp filename
In batch mode run_extras tries to preserve the original file name of the
images. The problem is that this makes no sense since the user only gets
a list of images in the UI, trying to manually save them shows that this
images have random temp names. Also, trying to keep "orig_name" in the
API is a hassle that adds complexity to the consuming UI since the
client has to use (or emulate) an input (type=file) element in a form.
Using the normal file name not only doesn't change the output and
functionality in the original UI but also helps keep the API simple.
---
modules/extras.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/extras.py b/modules/extras.py
index 22c5a1c1..29ac312e 100644
--- a/modules/extras.py
+++ b/modules/extras.py
@@ -33,7 +33,7 @@ def run_extras(extras_mode, resize_mode, image, image_folder, input_dir, output_
for img in image_folder:
image = Image.open(img)
imageArr.append(image)
- imageNameArr.append(os.path.splitext(img.orig_name)[0])
+ imageNameArr.append(os.path.splitext(img.name)[0])
elif extras_mode == 2:
assert not shared.cmd_opts.hide_ui_dir_config, '--hide-ui-dir-config option must be disabled'
--
cgit v1.2.1
From 4ff852ffb50859f2eae75375cab94dd790a46886 Mon Sep 17 00:00:00 2001
From: Bruno Seoane
Date: Sun, 23 Oct 2022 13:07:59 -0300
Subject: Add batch processing "extras" endpoint
---
modules/api/api.py | 25 +++++++++++++++++++++++--
modules/api/models.py | 15 ++++++++++++++-
2 files changed, 37 insertions(+), 3 deletions(-)
diff --git a/modules/api/api.py b/modules/api/api.py
index 3b804373..528134a8 100644
--- a/modules/api/api.py
+++ b/modules/api/api.py
@@ -10,6 +10,7 @@ import base64
from modules.api.models import *
from PIL import Image
from modules.extras import run_extras
+from gradio import processing_utils
def upscaler_to_index(name: str):
try:
@@ -44,6 +45,7 @@ class Api:
self.queue_lock = queue_lock
self.app.add_api_route("/sdapi/v1/txt2img", self.text2imgapi, methods=["POST"], response_model=TextToImageResponse)
self.app.add_api_route("/sdapi/v1/extra-single-image", self.extras_single_image_api, methods=["POST"], response_model=ExtrasSingleImageResponse)
+ self.app.add_api_route("/sdapi/v1/extra-batch-image", self.extras_batch_images_api, methods=["POST"], response_model=ExtrasBatchImagesResponse)
def text2imgapi(self, txt2imgreq: StableDiffusionProcessingAPI ):
sampler_index = sampler_to_index(txt2imgreq.sampler_index)
@@ -78,12 +80,31 @@ class Api:
reqDict.pop('upscaler_1')
reqDict.pop('upscaler_2')
- reqDict['image'] = base64_to_images([reqDict['image']])[0]
+ reqDict['image'] = processing_utils.decode_base64_to_file(reqDict['image'])
with self.queue_lock:
result = run_extras(**reqDict, extras_upscaler_1=upscaler1Index, extras_upscaler_2=upscaler2Index, extras_mode=0, image_folder="", input_dir="", output_dir="")
- return ExtrasSingleImageResponse(image="data:image/png;base64,"+img_to_base64(result[0]), html_info_x=result[1], html_info=result[2])
+ return ExtrasSingleImageResponse(image=processing_utils.encode_pil_to_base64(result[0]), html_info_x=result[1], html_info=result[2])
+
+ def extras_batch_images_api(self, req: ExtrasBatchImagesRequest):
+ upscaler1Index = upscaler_to_index(req.upscaler_1)
+ upscaler2Index = upscaler_to_index(req.upscaler_2)
+
+ reqDict = vars(req)
+ reqDict.pop('upscaler_1')
+ reqDict.pop('upscaler_2')
+
+ reqDict['image_folder'] = list(map(processing_utils.decode_base64_to_file, reqDict['imageList']))
+ reqDict.pop('imageList')
+
+ with self.queue_lock:
+ result = run_extras(**reqDict, extras_upscaler_1=upscaler1Index, extras_upscaler_2=upscaler2Index, extras_mode=1, image="", input_dir="", output_dir="")
+
+ return ExtrasBatchImagesResponse(images=list(map(processing_utils.encode_pil_to_base64, result[0])), html_info_x=result[1], html_info=result[2])
+
+ def extras_folder_processing_api(self):
+ raise NotImplementedError
def pnginfoapi(self):
raise NotImplementedError
diff --git a/modules/api/models.py b/modules/api/models.py
index dcf1ab54..bbd0ef53 100644
--- a/modules/api/models.py
+++ b/modules/api/models.py
@@ -29,4 +29,17 @@ class ExtrasSingleImageRequest(ExtrasBaseRequest):
image: str = Field(default="", title="Image", description="Image to work on, must be a Base64 string containing the image's data.")
class ExtrasSingleImageResponse(ExtraBaseResponse):
- image: str = Field(default=None, title="Image", description="The generated image in base64 format.")
\ No newline at end of file
+ image: str = Field(default=None, title="Image", description="The generated image in base64 format.")
+
+class SerializableImage(BaseModel):
+ path: str = Field(title="Path", description="The image's path ()")
+
+class ImageItem(BaseModel):
+ data: str = Field(title="image data")
+ name: str = Field(title="filename")
+
+class ExtrasBatchImagesRequest(ExtrasBaseRequest):
+ imageList: list[str] = Field(title="Images", description="List of images to work on. Must be Base64 strings")
+
+class ExtrasBatchImagesResponse(ExtraBaseResponse):
+ images: list[str] = Field(title="Images", description="The generated images in base64 format.")
\ No newline at end of file
--
cgit v1.2.1
From e0ca4dfbc10e0af8dfc4185e5e758f33fd2f0d81 Mon Sep 17 00:00:00 2001
From: Bruno Seoane
Date: Sun, 23 Oct 2022 15:13:37 -0300
Subject: Update endpoints to use gradio's own utils functions
---
modules/api/api.py | 75 +++++++++++++++++++++++++--------------------------
modules/api/models.py | 4 +--
2 files changed, 38 insertions(+), 41 deletions(-)
diff --git a/modules/api/api.py b/modules/api/api.py
index 3f490ce2..3acb1f36 100644
--- a/modules/api/api.py
+++ b/modules/api/api.py
@@ -20,27 +20,27 @@ def upscaler_to_index(name: str):
sampler_to_index = lambda name: next(filter(lambda row: name.lower() == row[1].name.lower(), enumerate(all_samplers)), None)
-def img_to_base64(img: str):
- buffer = io.BytesIO()
- img.save(buffer, format="png")
- return base64.b64encode(buffer.getvalue())
-
-def base64_to_bytes(base64Img: str):
- if "," in base64Img:
- base64Img = base64Img.split(",")[1]
- return io.BytesIO(base64.b64decode(base64Img))
-
-def base64_to_images(base64Imgs: list[str]):
- imgs = []
- for img in base64Imgs:
- img = Image.open(base64_to_bytes(img))
- imgs.append(img)
- return imgs
+# def img_to_base64(img: str):
+# buffer = io.BytesIO()
+# img.save(buffer, format="png")
+# return base64.b64encode(buffer.getvalue())
+
+# def base64_to_bytes(base64Img: str):
+# if "," in base64Img:
+# base64Img = base64Img.split(",")[1]
+# return io.BytesIO(base64.b64decode(base64Img))
+
+# def base64_to_images(base64Imgs: list[str]):
+# imgs = []
+# for img in base64Imgs:
+# img = Image.open(base64_to_bytes(img))
+# imgs.append(img)
+# return imgs
class ImageToImageResponse(BaseModel):
images: list[str] = Field(default=None, title="Image", description="The generated image in base64 format.")
- parameters: Json
- info: Json
+ parameters: dict
+ info: str
class Api:
@@ -49,17 +49,17 @@ class Api:
self.app = app
self.queue_lock = queue_lock
self.app.add_api_route("/sdapi/v1/txt2img", self.text2imgapi, methods=["POST"], response_model=TextToImageResponse)
- self.app.add_api_route("/sdapi/v1/img2img", self.img2imgapi, methods=["POST"])
+ self.app.add_api_route("/sdapi/v1/img2img", self.img2imgapi, methods=["POST"], response_model=ImageToImageResponse)
self.app.add_api_route("/sdapi/v1/extra-single-image", self.extras_single_image_api, methods=["POST"], response_model=ExtrasSingleImageResponse)
self.app.add_api_route("/sdapi/v1/extra-batch-image", self.extras_batch_images_api, methods=["POST"], response_model=ExtrasBatchImagesResponse)
- def __base64_to_image(self, base64_string):
- # if has a comma, deal with prefix
- if "," in base64_string:
- base64_string = base64_string.split(",")[1]
- imgdata = base64.b64decode(base64_string)
- # convert base64 to PIL image
- return Image.open(io.BytesIO(imgdata))
+ # def __base64_to_image(self, base64_string):
+ # # if has a comma, deal with prefix
+ # if "," in base64_string:
+ # base64_string = base64_string.split(",")[1]
+ # imgdata = base64.b64decode(base64_string)
+ # # convert base64 to PIL image
+ # return Image.open(io.BytesIO(imgdata))
def text2imgapi(self, txt2imgreq: StableDiffusionTxt2ImgProcessingAPI):
sampler_index = sampler_to_index(txt2imgreq.sampler_index)
@@ -79,11 +79,9 @@ class Api:
with self.queue_lock:
processed = process_images(p)
- b64images = list(map(img_to_base64, processed.images))
-
- return TextToImageResponse(images=b64images, parameters=json.dumps(vars(txt2imgreq)), info=json.dumps(processed.info))
-
+ b64images = list(map(processing_utils.encode_pil_to_base64, processed.images))
+ return TextToImageResponse(images=b64images, parameters=json.dumps(vars(txt2imgreq)), info=processed.info)
def img2imgapi(self, img2imgreq: StableDiffusionImg2ImgProcessingAPI):
sampler_index = sampler_to_index(img2imgreq.sampler_index)
@@ -98,7 +96,7 @@ class Api:
mask = img2imgreq.mask
if mask:
- mask = self.__base64_to_image(mask)
+ mask = processing_utils.decode_base64_to_image(mask)
populate = img2imgreq.copy(update={ # Override __init__ params
@@ -113,7 +111,7 @@ class Api:
imgs = []
for img in init_images:
- img = self.__base64_to_image(img)
+ img = processing_utils.decode_base64_to_image(img)
imgs = [img] * p.batch_size
p.init_images = imgs
@@ -121,13 +119,12 @@ class Api:
with self.queue_lock:
processed = process_images(p)
- b64images = []
- for i in processed.images:
- buffer = io.BytesIO()
- i.save(buffer, format="png")
- b64images.append(base64.b64encode(buffer.getvalue()))
-
- return ImageToImageResponse(images=b64images, parameters=json.dumps(vars(img2imgreq)), info=json.dumps(processed.info))
+ b64images = list(map(processing_utils.encode_pil_to_base64, processed.images))
+ # for i in processed.images:
+ # buffer = io.BytesIO()
+ # i.save(buffer, format="png")
+ # b64images.append(base64.b64encode(buffer.getvalue()))
+ return ImageToImageResponse(images=b64images, parameters=vars(img2imgreq), info=processed.info)
def extras_single_image_api(self, req: ExtrasSingleImageRequest):
upscaler1Index = upscaler_to_index(req.upscaler_1)
diff --git a/modules/api/models.py b/modules/api/models.py
index bbd0ef53..209f8af5 100644
--- a/modules/api/models.py
+++ b/modules/api/models.py
@@ -4,8 +4,8 @@ from modules.shared import sd_upscalers
class TextToImageResponse(BaseModel):
images: list[str] = Field(default=None, title="Image", description="The generated image in base64 format.")
- parameters: Json
- info: Json
+ parameters: str
+ info: str
class ExtrasBaseRequest(BaseModel):
resize_mode: Literal[0, 1] = Field(default=0, title="Resize Mode", description="Sets the resize mode: 0 to upscale by upscaling_resize amount, 1 to upscale up to upscaling_resize_h x upscaling_resize_w.")
--
cgit v1.2.1
From 866b36d705a338d299aba385788729d60f7d48c8 Mon Sep 17 00:00:00 2001
From: Bruno Seoane
Date: Sun, 23 Oct 2022 15:35:49 -0300
Subject: Move processing's models into models.py
It didn't make sense to have two differente files for the same and
"models" is a more descriptive name.
---
modules/api/api.py | 57 ++++-------------------
modules/api/models.py | 112 +++++++++++++++++++++++++++++++++++++++++++++-
modules/api/processing.py | 106 -------------------------------------------
3 files changed, 119 insertions(+), 156 deletions(-)
delete mode 100644 modules/api/processing.py
diff --git a/modules/api/api.py b/modules/api/api.py
index 3acb1f36..20e85e82 100644
--- a/modules/api/api.py
+++ b/modules/api/api.py
@@ -1,16 +1,11 @@
-from modules.api.processing import StableDiffusionTxt2ImgProcessingAPI, StableDiffusionImg2ImgProcessingAPI
-from modules.processing import StableDiffusionProcessingTxt2Img, StableDiffusionProcessingImg2Img, process_images
-from modules.sd_samplers import all_samplers
-import modules.shared as shared
import uvicorn
+from gradio import processing_utils
from fastapi import APIRouter, HTTPException
-import json
-import io
-import base64
+import modules.shared as shared
from modules.api.models import *
-from PIL import Image
+from modules.processing import StableDiffusionProcessingTxt2Img, StableDiffusionProcessingImg2Img, process_images
+from modules.sd_samplers import all_samplers
from modules.extras import run_extras
-from gradio import processing_utils
def upscaler_to_index(name: str):
try:
@@ -20,29 +15,6 @@ def upscaler_to_index(name: str):
sampler_to_index = lambda name: next(filter(lambda row: name.lower() == row[1].name.lower(), enumerate(all_samplers)), None)
-# def img_to_base64(img: str):
-# buffer = io.BytesIO()
-# img.save(buffer, format="png")
-# return base64.b64encode(buffer.getvalue())
-
-# def base64_to_bytes(base64Img: str):
-# if "," in base64Img:
-# base64Img = base64Img.split(",")[1]
-# return io.BytesIO(base64.b64decode(base64Img))
-
-# def base64_to_images(base64Imgs: list[str]):
-# imgs = []
-# for img in base64Imgs:
-# img = Image.open(base64_to_bytes(img))
-# imgs.append(img)
-# return imgs
-
-class ImageToImageResponse(BaseModel):
- images: list[str] = Field(default=None, title="Image", description="The generated image in base64 format.")
- parameters: dict
- info: str
-
-
class Api:
def __init__(self, app, queue_lock):
self.router = APIRouter()
@@ -51,15 +23,7 @@ class Api:
self.app.add_api_route("/sdapi/v1/txt2img", self.text2imgapi, methods=["POST"], response_model=TextToImageResponse)
self.app.add_api_route("/sdapi/v1/img2img", self.img2imgapi, methods=["POST"], response_model=ImageToImageResponse)
self.app.add_api_route("/sdapi/v1/extra-single-image", self.extras_single_image_api, methods=["POST"], response_model=ExtrasSingleImageResponse)
- self.app.add_api_route("/sdapi/v1/extra-batch-image", self.extras_batch_images_api, methods=["POST"], response_model=ExtrasBatchImagesResponse)
-
- # def __base64_to_image(self, base64_string):
- # # if has a comma, deal with prefix
- # if "," in base64_string:
- # base64_string = base64_string.split(",")[1]
- # imgdata = base64.b64decode(base64_string)
- # # convert base64 to PIL image
- # return Image.open(io.BytesIO(imgdata))
+ self.app.add_api_route("/sdapi/v1/extra-batch-images", self.extras_batch_images_api, methods=["POST"], response_model=ExtrasBatchImagesResponse)
def text2imgapi(self, txt2imgreq: StableDiffusionTxt2ImgProcessingAPI):
sampler_index = sampler_to_index(txt2imgreq.sampler_index)
@@ -81,7 +45,7 @@ class Api:
b64images = list(map(processing_utils.encode_pil_to_base64, processed.images))
- return TextToImageResponse(images=b64images, parameters=json.dumps(vars(txt2imgreq)), info=processed.info)
+ return TextToImageResponse(images=b64images, parameters=vars(txt2imgreq), info=processed.info)
def img2imgapi(self, img2imgreq: StableDiffusionImg2ImgProcessingAPI):
sampler_index = sampler_to_index(img2imgreq.sampler_index)
@@ -120,10 +84,7 @@ class Api:
processed = process_images(p)
b64images = list(map(processing_utils.encode_pil_to_base64, processed.images))
- # for i in processed.images:
- # buffer = io.BytesIO()
- # i.save(buffer, format="png")
- # b64images.append(base64.b64encode(buffer.getvalue()))
+
return ImageToImageResponse(images=b64images, parameters=vars(img2imgreq), info=processed.info)
def extras_single_image_api(self, req: ExtrasSingleImageRequest):
@@ -134,12 +95,12 @@ class Api:
reqDict.pop('upscaler_1')
reqDict.pop('upscaler_2')
- reqDict['image'] = processing_utils.decode_base64_to_file(reqDict['image'])
+ reqDict['image'] = processing_utils.decode_base64_to_image(reqDict['image'])
with self.queue_lock:
result = run_extras(**reqDict, extras_upscaler_1=upscaler1Index, extras_upscaler_2=upscaler2Index, extras_mode=0, image_folder="", input_dir="", output_dir="")
- return ExtrasSingleImageResponse(image=processing_utils.encode_pil_to_base64(result[0]), html_info_x=result[1], html_info=result[2])
+ return ExtrasSingleImageResponse(image=processing_utils.encode_pil_to_base64(result[0][0]), html_info_x=result[1], html_info=result[2])
def extras_batch_images_api(self, req: ExtrasBatchImagesRequest):
upscaler1Index = upscaler_to_index(req.upscaler_1)
diff --git a/modules/api/models.py b/modules/api/models.py
index 209f8af5..362e6277 100644
--- a/modules/api/models.py
+++ b/modules/api/models.py
@@ -1,10 +1,118 @@
-from pydantic import BaseModel, Field, Json
+import inspect
+from pydantic import BaseModel, Field, Json, create_model
+from typing import Any, Optional
from typing_extensions import Literal
+from inflection import underscore
+from modules.processing import StableDiffusionProcessingTxt2Img, StableDiffusionProcessingImg2Img
from modules.shared import sd_upscalers
+API_NOT_ALLOWED = [
+ "self",
+ "kwargs",
+ "sd_model",
+ "outpath_samples",
+ "outpath_grids",
+ "sampler_index",
+ "do_not_save_samples",
+ "do_not_save_grid",
+ "extra_generation_params",
+ "overlay_images",
+ "do_not_reload_embeddings",
+ "seed_enable_extras",
+ "prompt_for_display",
+ "sampler_noise_scheduler_override",
+ "ddim_discretize"
+]
+
+class ModelDef(BaseModel):
+ """Assistance Class for Pydantic Dynamic Model Generation"""
+
+ field: str
+ field_alias: str
+ field_type: Any
+ field_value: Any
+
+
+class PydanticModelGenerator:
+ """
+ Takes in created classes and stubs them out in a way FastAPI/Pydantic is happy about:
+ source_data is a snapshot of the default values produced by the class
+ params are the names of the actual keys required by __init__
+ """
+
+ def __init__(
+ self,
+ model_name: str = None,
+ class_instance = None,
+ additional_fields = None,
+ ):
+ def field_type_generator(k, v):
+ # field_type = str if not overrides.get(k) else overrides[k]["type"]
+ # print(k, v.annotation, v.default)
+ field_type = v.annotation
+
+ return Optional[field_type]
+
+ def merge_class_params(class_):
+ all_classes = list(filter(lambda x: x is not object, inspect.getmro(class_)))
+ parameters = {}
+ for classes in all_classes:
+ parameters = {**parameters, **inspect.signature(classes.__init__).parameters}
+ return parameters
+
+
+ self._model_name = model_name
+ self._class_data = merge_class_params(class_instance)
+ self._model_def = [
+ ModelDef(
+ field=underscore(k),
+ field_alias=k,
+ field_type=field_type_generator(k, v),
+ field_value=v.default
+ )
+ for (k,v) in self._class_data.items() if k not in API_NOT_ALLOWED
+ ]
+
+ for fields in additional_fields:
+ self._model_def.append(ModelDef(
+ field=underscore(fields["key"]),
+ field_alias=fields["key"],
+ field_type=fields["type"],
+ field_value=fields["default"]))
+
+ def generate_model(self):
+ """
+ Creates a pydantic BaseModel
+ from the json and overrides provided at initialization
+ """
+ fields = {
+ d.field: (d.field_type, Field(default=d.field_value, alias=d.field_alias)) for d in self._model_def
+ }
+ DynamicModel = create_model(self._model_name, **fields)
+ DynamicModel.__config__.allow_population_by_field_name = True
+ DynamicModel.__config__.allow_mutation = True
+ return DynamicModel
+
+StableDiffusionTxt2ImgProcessingAPI = PydanticModelGenerator(
+ "StableDiffusionProcessingTxt2Img",
+ StableDiffusionProcessingTxt2Img,
+ [{"key": "sampler_index", "type": str, "default": "Euler"}]
+).generate_model()
+
+StableDiffusionImg2ImgProcessingAPI = PydanticModelGenerator(
+ "StableDiffusionProcessingImg2Img",
+ StableDiffusionProcessingImg2Img,
+ [{"key": "sampler_index", "type": str, "default": "Euler"}, {"key": "init_images", "type": list, "default": None}, {"key": "denoising_strength", "type": float, "default": 0.75}, {"key": "mask", "type": str, "default": None}]
+).generate_model()
+
class TextToImageResponse(BaseModel):
images: list[str] = Field(default=None, title="Image", description="The generated image in base64 format.")
- parameters: str
+ parameters: dict
+ info: str
+
+class ImageToImageResponse(BaseModel):
+ images: list[str] = Field(default=None, title="Image", description="The generated image in base64 format.")
+ parameters: dict
info: str
class ExtrasBaseRequest(BaseModel):
diff --git a/modules/api/processing.py b/modules/api/processing.py
deleted file mode 100644
index f551fa35..00000000
--- a/modules/api/processing.py
+++ /dev/null
@@ -1,106 +0,0 @@
-from array import array
-from inflection import underscore
-from typing import Any, Dict, Optional
-from pydantic import BaseModel, Field, create_model
-from modules.processing import StableDiffusionProcessingTxt2Img, StableDiffusionProcessingImg2Img
-import inspect
-
-
-API_NOT_ALLOWED = [
- "self",
- "kwargs",
- "sd_model",
- "outpath_samples",
- "outpath_grids",
- "sampler_index",
- "do_not_save_samples",
- "do_not_save_grid",
- "extra_generation_params",
- "overlay_images",
- "do_not_reload_embeddings",
- "seed_enable_extras",
- "prompt_for_display",
- "sampler_noise_scheduler_override",
- "ddim_discretize"
-]
-
-class ModelDef(BaseModel):
- """Assistance Class for Pydantic Dynamic Model Generation"""
-
- field: str
- field_alias: str
- field_type: Any
- field_value: Any
-
-
-class PydanticModelGenerator:
- """
- Takes in created classes and stubs them out in a way FastAPI/Pydantic is happy about:
- source_data is a snapshot of the default values produced by the class
- params are the names of the actual keys required by __init__
- """
-
- def __init__(
- self,
- model_name: str = None,
- class_instance = None,
- additional_fields = None,
- ):
- def field_type_generator(k, v):
- # field_type = str if not overrides.get(k) else overrides[k]["type"]
- # print(k, v.annotation, v.default)
- field_type = v.annotation
-
- return Optional[field_type]
-
- def merge_class_params(class_):
- all_classes = list(filter(lambda x: x is not object, inspect.getmro(class_)))
- parameters = {}
- for classes in all_classes:
- parameters = {**parameters, **inspect.signature(classes.__init__).parameters}
- return parameters
-
-
- self._model_name = model_name
- self._class_data = merge_class_params(class_instance)
- self._model_def = [
- ModelDef(
- field=underscore(k),
- field_alias=k,
- field_type=field_type_generator(k, v),
- field_value=v.default
- )
- for (k,v) in self._class_data.items() if k not in API_NOT_ALLOWED
- ]
-
- for fields in additional_fields:
- self._model_def.append(ModelDef(
- field=underscore(fields["key"]),
- field_alias=fields["key"],
- field_type=fields["type"],
- field_value=fields["default"]))
-
- def generate_model(self):
- """
- Creates a pydantic BaseModel
- from the json and overrides provided at initialization
- """
- fields = {
- d.field: (d.field_type, Field(default=d.field_value, alias=d.field_alias)) for d in self._model_def
- }
- DynamicModel = create_model(self._model_name, **fields)
- DynamicModel.__config__.allow_population_by_field_name = True
- DynamicModel.__config__.allow_mutation = True
- return DynamicModel
-
-StableDiffusionTxt2ImgProcessingAPI = PydanticModelGenerator(
- "StableDiffusionProcessingTxt2Img",
- StableDiffusionProcessingTxt2Img,
- [{"key": "sampler_index", "type": str, "default": "Euler"}]
-).generate_model()
-
-StableDiffusionImg2ImgProcessingAPI = PydanticModelGenerator(
- "StableDiffusionProcessingImg2Img",
- StableDiffusionProcessingImg2Img,
- [{"key": "sampler_index", "type": str, "default": "Euler"}, {"key": "init_images", "type": list, "default": None}, {"key": "denoising_strength", "type": float, "default": 0.75}, {"key": "mask", "type": str, "default": None}]
-).generate_model()
\ No newline at end of file
--
cgit v1.2.1
From 1e625624ba6ab3dfc167f0a5226780bb9b50fb58 Mon Sep 17 00:00:00 2001
From: Bruno Seoane
Date: Sun, 23 Oct 2022 16:01:16 -0300
Subject: Add folder processing endpoint
Also minor refactor
---
modules/api/api.py | 56 +++++++++++++++++++++++++++------------------------
modules/api/models.py | 6 +++++-
2 files changed, 35 insertions(+), 27 deletions(-)
diff --git a/modules/api/api.py b/modules/api/api.py
index 20e85e82..7b4fbe29 100644
--- a/modules/api/api.py
+++ b/modules/api/api.py
@@ -1,5 +1,5 @@
import uvicorn
-from gradio import processing_utils
+from gradio.processing_utils import encode_pil_to_base64, decode_base64_to_file, decode_base64_to_image
from fastapi import APIRouter, HTTPException
import modules.shared as shared
from modules.api.models import *
@@ -11,10 +11,18 @@ def upscaler_to_index(name: str):
try:
return [x.name.lower() for x in shared.sd_upscalers].index(name.lower())
except:
- raise HTTPException(status_code=400, detail="Upscaler not found")
+ raise HTTPException(status_code=400, detail=f"Invalid upscaler, needs to be on of these: {' , '.join([x.name for x in sd_upscalers])}")
sampler_to_index = lambda name: next(filter(lambda row: name.lower() == row[1].name.lower(), enumerate(all_samplers)), None)
+def setUpscalers(req: dict):
+ reqDict = vars(req)
+ reqDict['extras_upscaler_1'] = upscaler_to_index(req.upscaler_1)
+ reqDict['extras_upscaler_2'] = upscaler_to_index(req.upscaler_2)
+ reqDict.pop('upscaler_1')
+ reqDict.pop('upscaler_2')
+ return reqDict
+
class Api:
def __init__(self, app, queue_lock):
self.router = APIRouter()
@@ -24,6 +32,7 @@ class Api:
self.app.add_api_route("/sdapi/v1/img2img", self.img2imgapi, methods=["POST"], response_model=ImageToImageResponse)
self.app.add_api_route("/sdapi/v1/extra-single-image", self.extras_single_image_api, methods=["POST"], response_model=ExtrasSingleImageResponse)
self.app.add_api_route("/sdapi/v1/extra-batch-images", self.extras_batch_images_api, methods=["POST"], response_model=ExtrasBatchImagesResponse)
+ self.app.add_api_route("/sdapi/v1/extra-folder-images", self.extras_folder_processing_api, methods=["POST"], response_model=ExtrasBatchImagesResponse)
def text2imgapi(self, txt2imgreq: StableDiffusionTxt2ImgProcessingAPI):
sampler_index = sampler_to_index(txt2imgreq.sampler_index)
@@ -43,7 +52,7 @@ class Api:
with self.queue_lock:
processed = process_images(p)
- b64images = list(map(processing_utils.encode_pil_to_base64, processed.images))
+ b64images = list(map(encode_pil_to_base64, processed.images))
return TextToImageResponse(images=b64images, parameters=vars(txt2imgreq), info=processed.info)
@@ -60,7 +69,7 @@ class Api:
mask = img2imgreq.mask
if mask:
- mask = processing_utils.decode_base64_to_image(mask)
+ mask = decode_base64_to_image(mask)
populate = img2imgreq.copy(update={ # Override __init__ params
@@ -75,7 +84,7 @@ class Api:
imgs = []
for img in init_images:
- img = processing_utils.decode_base64_to_image(img)
+ img = decode_base64_to_image(img)
imgs = [img] * p.batch_size
p.init_images = imgs
@@ -83,43 +92,38 @@ class Api:
with self.queue_lock:
processed = process_images(p)
- b64images = list(map(processing_utils.encode_pil_to_base64, processed.images))
+ b64images = list(map(encode_pil_to_base64, processed.images))
return ImageToImageResponse(images=b64images, parameters=vars(img2imgreq), info=processed.info)
def extras_single_image_api(self, req: ExtrasSingleImageRequest):
- upscaler1Index = upscaler_to_index(req.upscaler_1)
- upscaler2Index = upscaler_to_index(req.upscaler_2)
-
- reqDict = vars(req)
- reqDict.pop('upscaler_1')
- reqDict.pop('upscaler_2')
+ reqDict = setUpscalers(req)
- reqDict['image'] = processing_utils.decode_base64_to_image(reqDict['image'])
+ reqDict['image'] = decode_base64_to_image(reqDict['image'])
with self.queue_lock:
- result = run_extras(**reqDict, extras_upscaler_1=upscaler1Index, extras_upscaler_2=upscaler2Index, extras_mode=0, image_folder="", input_dir="", output_dir="")
+ result = run_extras(extras_mode=0, image_folder="", input_dir="", output_dir="", **reqDict)
- return ExtrasSingleImageResponse(image=processing_utils.encode_pil_to_base64(result[0][0]), html_info_x=result[1], html_info=result[2])
+ return ExtrasSingleImageResponse(image=encode_pil_to_base64(result[0][0]), html_info_x=result[1], html_info=result[2])
def extras_batch_images_api(self, req: ExtrasBatchImagesRequest):
- upscaler1Index = upscaler_to_index(req.upscaler_1)
- upscaler2Index = upscaler_to_index(req.upscaler_2)
+ reqDict = setUpscalers(req)
- reqDict = vars(req)
- reqDict.pop('upscaler_1')
- reqDict.pop('upscaler_2')
-
- reqDict['image_folder'] = list(map(processing_utils.decode_base64_to_file, reqDict['imageList']))
+ reqDict['image_folder'] = list(map(decode_base64_to_file, reqDict['imageList']))
reqDict.pop('imageList')
with self.queue_lock:
- result = run_extras(**reqDict, extras_upscaler_1=upscaler1Index, extras_upscaler_2=upscaler2Index, extras_mode=1, image="", input_dir="", output_dir="")
+ result = run_extras(extras_mode=1, image="", input_dir="", output_dir="", **reqDict)
- return ExtrasBatchImagesResponse(images=list(map(processing_utils.encode_pil_to_base64, result[0])), html_info_x=result[1], html_info=result[2])
+ return ExtrasBatchImagesResponse(images=list(map(encode_pil_to_base64, result[0])), html_info_x=result[1], html_info=result[2])
- def extras_folder_processing_api(self):
- raise NotImplementedError
+ def extras_folder_processing_api(self, req:ExtrasFoldersRequest):
+ reqDict = setUpscalers(req)
+
+ with self.queue_lock:
+ result = run_extras(extras_mode=2, image=None, image_folder=None, **reqDict)
+
+ return ExtrasBatchImagesResponse(images=list(map(encode_pil_to_base64, result[0])), html_info_x=result[1], html_info=result[2])
def pnginfoapi(self):
raise NotImplementedError
diff --git a/modules/api/models.py b/modules/api/models.py
index 362e6277..6f096807 100644
--- a/modules/api/models.py
+++ b/modules/api/models.py
@@ -150,4 +150,8 @@ class ExtrasBatchImagesRequest(ExtrasBaseRequest):
imageList: list[str] = Field(title="Images", description="List of images to work on. Must be Base64 strings")
class ExtrasBatchImagesResponse(ExtraBaseResponse):
- images: list[str] = Field(title="Images", description="The generated images in base64 format.")
\ No newline at end of file
+ images: list[str] = Field(title="Images", description="The generated images in base64 format.")
+
+class ExtrasFoldersRequest(ExtrasBaseRequest):
+ input_dir: str = Field(title="Input directory", description="Directory path from where to take the images")
+ output_dir: str = Field(title="Output directory", description="Directory path to put the processsed images into")
--
cgit v1.2.1
From 90f02c75220d187e075203a4e3b450bfba392c4d Mon Sep 17 00:00:00 2001
From: Bruno Seoane
Date: Sun, 23 Oct 2022 16:03:30 -0300
Subject: Remove unused field and class
---
modules/api/api.py | 6 +++---
modules/api/models.py | 6 +-----
2 files changed, 4 insertions(+), 8 deletions(-)
diff --git a/modules/api/api.py b/modules/api/api.py
index 7b4fbe29..799e3701 100644
--- a/modules/api/api.py
+++ b/modules/api/api.py
@@ -104,7 +104,7 @@ class Api:
with self.queue_lock:
result = run_extras(extras_mode=0, image_folder="", input_dir="", output_dir="", **reqDict)
- return ExtrasSingleImageResponse(image=encode_pil_to_base64(result[0][0]), html_info_x=result[1], html_info=result[2])
+ return ExtrasSingleImageResponse(image=encode_pil_to_base64(result[0][0]), html_info=result[1])
def extras_batch_images_api(self, req: ExtrasBatchImagesRequest):
reqDict = setUpscalers(req)
@@ -115,7 +115,7 @@ class Api:
with self.queue_lock:
result = run_extras(extras_mode=1, image="", input_dir="", output_dir="", **reqDict)
- return ExtrasBatchImagesResponse(images=list(map(encode_pil_to_base64, result[0])), html_info_x=result[1], html_info=result[2])
+ return ExtrasBatchImagesResponse(images=list(map(encode_pil_to_base64, result[0])), html_info=result[1])
def extras_folder_processing_api(self, req:ExtrasFoldersRequest):
reqDict = setUpscalers(req)
@@ -123,7 +123,7 @@ class Api:
with self.queue_lock:
result = run_extras(extras_mode=2, image=None, image_folder=None, **reqDict)
- return ExtrasBatchImagesResponse(images=list(map(encode_pil_to_base64, result[0])), html_info_x=result[1], html_info=result[2])
+ return ExtrasBatchImagesResponse(images=list(map(encode_pil_to_base64, result[0])), html_info=result[1])
def pnginfoapi(self):
raise NotImplementedError
diff --git a/modules/api/models.py b/modules/api/models.py
index 6f096807..e461d397 100644
--- a/modules/api/models.py
+++ b/modules/api/models.py
@@ -130,8 +130,7 @@ class ExtrasBaseRequest(BaseModel):
extras_upscaler_2_visibility: float = Field(default=0, title="Secondary upscaler visibility", ge=0, le=1, allow_inf_nan=False, description="Sets the visibility of secondary upscaler, values should be between 0 and 1.")
class ExtraBaseResponse(BaseModel):
- html_info_x: str
- html_info: str
+ html_info: str = Field(title="HTML info", description="A series of HTML tags containing the process info.")
class ExtrasSingleImageRequest(ExtrasBaseRequest):
image: str = Field(default="", title="Image", description="Image to work on, must be a Base64 string containing the image's data.")
@@ -139,9 +138,6 @@ class ExtrasSingleImageRequest(ExtrasBaseRequest):
class ExtrasSingleImageResponse(ExtraBaseResponse):
image: str = Field(default=None, title="Image", description="The generated image in base64 format.")
-class SerializableImage(BaseModel):
- path: str = Field(title="Path", description="The image's path ()")
-
class ImageItem(BaseModel):
data: str = Field(title="image data")
name: str = Field(title="filename")
--
cgit v1.2.1
From 994aaadf0861366b9e6f219e1a3c25a233fbb63c Mon Sep 17 00:00:00 2001
From: yfszzx
Date: Mon, 24 Oct 2022 16:44:36 +0800
Subject: a strange bug
---
extensions/stable-diffusion-webui-inspiration | 2 +-
modules/ui.py | 4 ++++
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/extensions/stable-diffusion-webui-inspiration b/extensions/stable-diffusion-webui-inspiration
index a0b96664..c50c03ac 160000
--- a/extensions/stable-diffusion-webui-inspiration
+++ b/extensions/stable-diffusion-webui-inspiration
@@ -1 +1 @@
-Subproject commit a0b96664d2524b87916ae463fbb65411b13a569b
+Subproject commit c50c03ac8fd2f6317d17d0c8c7c1ce26e6fe5cd7
diff --git a/modules/ui.py b/modules/ui.py
index a73b9ff0..8c6dc026 100644
--- a/modules/ui.py
+++ b/modules/ui.py
@@ -55,6 +55,7 @@ mimetypes.init()
mimetypes.add_type('application/javascript', '.js')
txt2img_paste_fields = []
img2img_paste_fields = []
+init_img_components = {}
if not cmd_opts.share and not cmd_opts.listen:
@@ -1174,6 +1175,9 @@ def create_ui(wrap_gradio_gpu_call):
outputs=[init_img_with_mask],
)
+ global init_img_components
+ init_img_components = {"img2img":init_img, "inpaint":init_img_with_mask, "extras":extras_image}
+
with gr.Blocks(analytics_enabled=False) as pnginfo_interface:
with gr.Row().style(equal_height=False):
with gr.Column(variant='panel'):
--
cgit v1.2.1
From 595dca85af9e26b5d76cd64659a5bdd9da4f2b89 Mon Sep 17 00:00:00 2001
From: Bruno Seoane
Date: Mon, 24 Oct 2022 08:32:18 -0300
Subject: Reverse run_extras change
Update serialization on the batch images endpoint
---
modules/api/api.py | 7 ++++++-
modules/api/models.py | 8 ++++----
modules/extras.py | 2 +-
3 files changed, 11 insertions(+), 6 deletions(-)
diff --git a/modules/api/api.py b/modules/api/api.py
index 799e3701..67b783de 100644
--- a/modules/api/api.py
+++ b/modules/api/api.py
@@ -109,7 +109,12 @@ class Api:
def extras_batch_images_api(self, req: ExtrasBatchImagesRequest):
reqDict = setUpscalers(req)
- reqDict['image_folder'] = list(map(decode_base64_to_file, reqDict['imageList']))
+ def prepareFiles(file):
+ file = decode_base64_to_file(file.data, file_path=file.name)
+ file.orig_name = file.name
+ return file
+
+ reqDict['image_folder'] = list(map(prepareFiles, reqDict['imageList']))
reqDict.pop('imageList')
with self.queue_lock:
diff --git a/modules/api/models.py b/modules/api/models.py
index e461d397..fca2f991 100644
--- a/modules/api/models.py
+++ b/modules/api/models.py
@@ -138,12 +138,12 @@ class ExtrasSingleImageRequest(ExtrasBaseRequest):
class ExtrasSingleImageResponse(ExtraBaseResponse):
image: str = Field(default=None, title="Image", description="The generated image in base64 format.")
-class ImageItem(BaseModel):
- data: str = Field(title="image data")
- name: str = Field(title="filename")
+class FileData(BaseModel):
+ data: str = Field(title="File data", description="Base64 representation of the file")
+ name: str = Field(title="File name")
class ExtrasBatchImagesRequest(ExtrasBaseRequest):
- imageList: list[str] = Field(title="Images", description="List of images to work on. Must be Base64 strings")
+ imageList: list[FileData] = Field(title="Images", description="List of images to work on. Must be Base64 strings")
class ExtrasBatchImagesResponse(ExtraBaseResponse):
images: list[str] = Field(title="Images", description="The generated images in base64 format.")
diff --git a/modules/extras.py b/modules/extras.py
index 29ac312e..22c5a1c1 100644
--- a/modules/extras.py
+++ b/modules/extras.py
@@ -33,7 +33,7 @@ def run_extras(extras_mode, resize_mode, image, image_folder, input_dir, output_
for img in image_folder:
image = Image.open(img)
imageArr.append(image)
- imageNameArr.append(os.path.splitext(img.name)[0])
+ imageNameArr.append(os.path.splitext(img.orig_name)[0])
elif extras_mode == 2:
assert not shared.cmd_opts.hide_ui_dir_config, '--hide-ui-dir-config option must be disabled'
--
cgit v1.2.1
From ff305acd51cc71c5eea8aee0f537a26a6d1ba2a1 Mon Sep 17 00:00:00 2001
From: yfszzx
Date: Tue, 25 Oct 2022 15:33:43 +0800
Subject: some rights for extensions
---
extensions/stable-diffusion-webui-inspiration | 2 +-
modules/shared.py | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/extensions/stable-diffusion-webui-inspiration b/extensions/stable-diffusion-webui-inspiration
index c50c03ac..c4b9f5c2 160000
--- a/extensions/stable-diffusion-webui-inspiration
+++ b/extensions/stable-diffusion-webui-inspiration
@@ -1 +1 @@
-Subproject commit c50c03ac8fd2f6317d17d0c8c7c1ce26e6fe5cd7
+Subproject commit c4b9f5c233c8619ee140b763e706edc26cae0f1d
diff --git a/modules/shared.py b/modules/shared.py
index 76cbb1bd..7b1fadf2 100644
--- a/modules/shared.py
+++ b/modules/shared.py
@@ -82,6 +82,7 @@ parser.add_argument("--api", action='store_true', help="use api=True to launch t
parser.add_argument("--nowebui", action='store_true', help="use api=True to launch the api instead of the webui")
parser.add_argument("--ui-debug-mode", action='store_true', help="Don't load model to quickly launch UI")
parser.add_argument("--device-id", type=str, help="Select the default CUDA device to use (export CUDA_VISIBLE_DEVICES=0,1,etc might be needed before)", default=None)
+parser.add_argument("--administrator", type=str, help="Administrator rights", default=None)
cmd_opts = parser.parse_args()
restricted_opts = [
--
cgit v1.2.1
From 9ba439b53313ef78984dd8e39f25b34501188ee2 Mon Sep 17 00:00:00 2001
From: yfszzx
Date: Tue, 25 Oct 2022 18:48:07 +0800
Subject: need some rights for extensions
---
modules/shared.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/shared.py b/modules/shared.py
index 7b1fadf2..b5975707 100644
--- a/modules/shared.py
+++ b/modules/shared.py
@@ -82,7 +82,7 @@ parser.add_argument("--api", action='store_true', help="use api=True to launch t
parser.add_argument("--nowebui", action='store_true', help="use api=True to launch the api instead of the webui")
parser.add_argument("--ui-debug-mode", action='store_true', help="Don't load model to quickly launch UI")
parser.add_argument("--device-id", type=str, help="Select the default CUDA device to use (export CUDA_VISIBLE_DEVICES=0,1,etc might be needed before)", default=None)
-parser.add_argument("--administrator", type=str, help="Administrator rights", default=None)
+parser.add_argument("--administrator", action='store_true', help="Administrator rights", default=False)
cmd_opts = parser.parse_args()
restricted_opts = [
--
cgit v1.2.1
From f9549d1cbb3f1d7d1f0fb70375a06e31f9c5dd9d Mon Sep 17 00:00:00 2001
From: random_thoughtss
Date: Tue, 25 Oct 2022 11:14:12 -0700
Subject: Added option to use unmasked conditioning image.
---
modules/processing.py | 6 +++++-
modules/shared.py | 1 +
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/modules/processing.py b/modules/processing.py
index c61bbfbd..96f56b0d 100644
--- a/modules/processing.py
+++ b/modules/processing.py
@@ -768,7 +768,11 @@ class StableDiffusionProcessingImg2Img(StableDiffusionProcessing):
# Create another latent image, this time with a masked version of the original input.
conditioning_mask = conditioning_mask.to(image.device)
- conditioning_image = image * (1.0 - conditioning_mask)
+
+ conditioning_image = image
+ if shared.opts.inpainting_mask_image:
+ conditioning_image = conditioning_image * (1.0 - conditioning_mask)
+
conditioning_image = self.sd_model.get_first_stage_encoding(self.sd_model.encode_first_stage(conditioning_image))
# Create the concatenated conditioning tensor to be fed to `c_concat`
diff --git a/modules/shared.py b/modules/shared.py
index 308fccce..1d0ff1a1 100644
--- a/modules/shared.py
+++ b/modules/shared.py
@@ -320,6 +320,7 @@ options_templates.update(options_section(('sampler-params', "Sampler parameters"
's_tmin': OptionInfo(0.0, "sigma tmin", gr.Slider, {"minimum": 0.0, "maximum": 1.0, "step": 0.01}),
's_noise': OptionInfo(1.0, "sigma noise", gr.Slider, {"minimum": 0.0, "maximum": 1.0, "step": 0.01}),
'eta_noise_seed_delta': OptionInfo(0, "Eta noise seed delta", gr.Number, {"precision": 0}),
+ "inpainting_mask_image": OptionInfo(True, "Mask original image for conditioning used by inpainting model."),
}))
--
cgit v1.2.1
From 605d27687f433c0fefb9025aace7dc94f0ebd454 Mon Sep 17 00:00:00 2001
From: random_thoughtss
Date: Tue, 25 Oct 2022 12:20:54 -0700
Subject: Added conditioning image masking to xy_grid. Use `True` and `False`
to select values.
---
modules/processing.py | 2 +-
scripts/xy_grid.py | 3 +++
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/modules/processing.py b/modules/processing.py
index 96f56b0d..23ee5e02 100644
--- a/modules/processing.py
+++ b/modules/processing.py
@@ -770,7 +770,7 @@ class StableDiffusionProcessingImg2Img(StableDiffusionProcessing):
conditioning_mask = conditioning_mask.to(image.device)
conditioning_image = image
- if shared.opts.inpainting_mask_image:
+ if getattr(self, "inpainting_mask_image", shared.opts.inpainting_mask_image):
conditioning_image = conditioning_image * (1.0 - conditioning_mask)
conditioning_image = self.sd_model.get_first_stage_encoding(self.sd_model.encode_first_stage(conditioning_image))
diff --git a/scripts/xy_grid.py b/scripts/xy_grid.py
index eff0c942..0843adcc 100644
--- a/scripts/xy_grid.py
+++ b/scripts/xy_grid.py
@@ -153,6 +153,8 @@ def str_permutations(x):
"""dummy function for specifying it in AxisOption's type when you want to get a list of permutations"""
return x
+def str_to_bool(x):
+ return "true" in x.lower().strip()
AxisOption = namedtuple("AxisOption", ["label", "type", "apply", "format_value", "confirm"])
AxisOptionImg2Img = namedtuple("AxisOptionImg2Img", ["label", "type", "apply", "format_value", "confirm"])
@@ -178,6 +180,7 @@ axis_options = [
AxisOption("Eta", float, apply_field("eta"), format_value_add_label, None),
AxisOption("Clip skip", int, apply_clip_skip, format_value_add_label, None),
AxisOption("Denoising", float, apply_field("denoising_strength"), format_value_add_label, None),
+ AxisOption("Mask Conditioning Image", str_to_bool, apply_field("inpainting_mask_image"), format_value_add_label, None),
]
--
cgit v1.2.1
From 8b4f32779f28010fc8077e8fcfb85a3205b36bc2 Mon Sep 17 00:00:00 2001
From: random_thoughtss
Date: Tue, 25 Oct 2022 13:15:08 -0700
Subject: Switch to a continous blend for cond. image.
---
modules/processing.py | 9 ++++++---
modules/shared.py | 2 +-
scripts/xy_grid.py | 5 +----
3 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/modules/processing.py b/modules/processing.py
index 23ee5e02..02292bdc 100644
--- a/modules/processing.py
+++ b/modules/processing.py
@@ -769,9 +769,12 @@ class StableDiffusionProcessingImg2Img(StableDiffusionProcessing):
# Create another latent image, this time with a masked version of the original input.
conditioning_mask = conditioning_mask.to(image.device)
- conditioning_image = image
- if getattr(self, "inpainting_mask_image", shared.opts.inpainting_mask_image):
- conditioning_image = conditioning_image * (1.0 - conditioning_mask)
+ # Smoothly interpolate between the masked and unmasked latent conditioning image.
+ conditioning_image = torch.lerp(
+ image,
+ image * (1.0 - conditioning_mask),
+ getattr(self, "inpainting_mask_weight", shared.opts.inpainting_mask_weight)
+ )
conditioning_image = self.sd_model.get_first_stage_encoding(self.sd_model.encode_first_stage(conditioning_image))
diff --git a/modules/shared.py b/modules/shared.py
index 1d0ff1a1..e0ffb824 100644
--- a/modules/shared.py
+++ b/modules/shared.py
@@ -320,7 +320,7 @@ options_templates.update(options_section(('sampler-params', "Sampler parameters"
's_tmin': OptionInfo(0.0, "sigma tmin", gr.Slider, {"minimum": 0.0, "maximum": 1.0, "step": 0.01}),
's_noise': OptionInfo(1.0, "sigma noise", gr.Slider, {"minimum": 0.0, "maximum": 1.0, "step": 0.01}),
'eta_noise_seed_delta': OptionInfo(0, "Eta noise seed delta", gr.Number, {"precision": 0}),
- "inpainting_mask_image": OptionInfo(True, "Mask original image for conditioning used by inpainting model."),
+ "inpainting_mask_weight": OptionInfo(1.0, "Blend betweeen an unmasked and masked conditioning image for inpainting models.", gr.Slider, {"minimum": 0.0, "maximum": 1.0, "step": 0.01}),
}))
diff --git a/scripts/xy_grid.py b/scripts/xy_grid.py
index 0843adcc..f5255786 100644
--- a/scripts/xy_grid.py
+++ b/scripts/xy_grid.py
@@ -153,9 +153,6 @@ def str_permutations(x):
"""dummy function for specifying it in AxisOption's type when you want to get a list of permutations"""
return x
-def str_to_bool(x):
- return "true" in x.lower().strip()
-
AxisOption = namedtuple("AxisOption", ["label", "type", "apply", "format_value", "confirm"])
AxisOptionImg2Img = namedtuple("AxisOptionImg2Img", ["label", "type", "apply", "format_value", "confirm"])
@@ -180,7 +177,7 @@ axis_options = [
AxisOption("Eta", float, apply_field("eta"), format_value_add_label, None),
AxisOption("Clip skip", int, apply_clip_skip, format_value_add_label, None),
AxisOption("Denoising", float, apply_field("denoising_strength"), format_value_add_label, None),
- AxisOption("Mask Conditioning Image", str_to_bool, apply_field("inpainting_mask_image"), format_value_add_label, None),
+ AxisOption("Cond. Image Mask Weight", float, apply_field("inpainting_mask_weight"), format_value_add_label, None),
]
--
cgit v1.2.1
From 53b48d93fb9acd66ad631129afd837049449a76b Mon Sep 17 00:00:00 2001
From: xmodar
Date: Wed, 26 Oct 2022 02:12:53 +0300
Subject: Add complete retranslation for the Arabic localization
Used the following resources:
- https://www.almaany.com/
- https://translate.google.com/
- https://techtionary.thinktech.sa/
- https://sdaia.gov.sa/files/Dictionary.pdf
The translations are ordered by the way they appear in the UI.
This version abandons literal translation and adds explainations where possible.
---
localizations/ar_AR.json | 808 +++++++++++++++++++++++------------------------
1 file changed, 387 insertions(+), 421 deletions(-)
diff --git a/localizations/ar_AR.json b/localizations/ar_AR.json
index 1195a8e9..21c24e62 100644
--- a/localizations/ar_AR.json
+++ b/localizations/ar_AR.json
@@ -1,456 +1,422 @@
{
"rtl": true,
- "⤡": "⤡",
- "⊞": "⊞",
- "×": "×",
- "❮": "❮",
- "❯": "❯",
- "Loading...": "جار التحميل...",
- "view": "معاينة",
- "api": "api",
- "•": "•",
- "built with gradio": "مبني باستخدام Gradio",
- "Stable Diffusion checkpoint": "نماذج الانتشار المستقر",
- "txt2img": "نص لصورة",
- "img2img": "صورة لصورة",
- "Extras": "الإضافات",
- "PNG Info": "معلومات PNG",
- "Checkpoint Merger": "دمج النماذج",
- "Train": "التدريب",
- "Create aesthetic embedding": "Create aesthetic embedding",
- "Image Browser": "مستعرض الصور",
- "Settings": "الإعدادات",
- "Prompt": "الموجه",
- "Negative prompt": "الموجه السلبي",
- "Run": "تشغيل",
- "Skip": "تخطي",
- "Interrupt": "إيقاف",
- "Generate": "إنشاء",
- "Style 1": "نمط 1",
- "Style 2": "نمط 2",
- "Label": "الوسم",
- "File": "ملف",
- "Drop File Here": "اسحب الملف هنا",
- "-": "-",
- "or": "أو",
- "Click to Upload": "انقر للتحميل",
- "Image": "صورة",
- "Check progress": "تحقق من التقدم",
- "Check progress (first)": "تحقق من التقدم (الأول)",
- "Sampling Steps": "خطوات أخذ العينة",
- "Sampling method": "نظام أخذ العينات",
- "Euler a": "Euler a",
- "Euler": "Euler",
- "LMS": "LMS",
- "Heun": "Heun",
- "DPM2": "DPM2",
- "DPM2 a": "DPM2 a",
- "DPM fast": "DPM fast",
- "DPM adaptive": "DPM adaptive",
- "LMS Karras": "LMS Karras",
- "DPM2 Karras": "DPM2 Karras",
- "DPM2 a Karras": "DPM2 a Karras",
- "DDIM": "DDIM",
- "PLMS": "PLMS",
+ "Loading...": "لحظة...",
+ "view": "اعرض ",
+ "api": "واجهة البرمجة",
+ "built with gradio": "مبني باستخدام gradio",
+ "Stable Diffusion checkpoint": "ملف أوزان Stable Diffusion",
+ "txt2img": "نص إلى صورة",
+ "Prompt": "الطلب",
+ "Prompt (press Ctrl+Enter or Alt+Enter to generate)": "الطلب (لبدء الإنتاج Ctrl+Enter أو Alt+Enter اضغط)",
+ "Negative prompt": "عكس الطلب",
+ "Negative prompt (press Ctrl+Enter or Alt+Enter to generate)": "عكس الطلب (لبدء الإنتاج Ctrl+Enter أو Alt+Enter اضغط)",
+ "Add a random artist to the prompt.": "أضف فنان عشوائي للطلب",
+ "Read generation parameters from prompt or last generation if prompt is empty into user interface.": "اقرأ عوامل الإنتاج من الطلب أو من الإنتاج السابق إذا كان الطلب فارغا",
+ "Save style": "احتفظ بالطلب وعكسه كإضافة",
+ "Apply selected styles to current prompt": "ألحق الإضافات المحددة إلى الطلب وعكسه",
+ "Generate": "أنتج",
+ "Skip": "تخطى",
+ "Stop processing current image and continue processing.": "تجاهل إنتاج هذة الحزمة وانتقل إلى الحزمة التالية",
+ "Interrupt": "توقف",
+ "Stop processing images and return any results accumulated so far.": "توقف عن الإنتاج واعرض ما تم إلى الآن",
+ "Style 1": "الإضافة 1",
+ "Style to apply; styles have components for both positive and negative prompts and apply to both": "الإضافات (styles) عبارة عن كلمات تتكرر كثيرا يتم إلحاقها بالطلب وعكسه عند الرغبة",
+ "Style 2": "الإضافة 2",
+ "Do not do anything special": "لا يغير شيئا",
+ "Sampling Steps": "عدد الخطوات",
+ "Sampling method": "أسلوب الخطو",
+ "Which algorithm to use to produce the image": "Sampler: اسم نظام تحديد طريقة تغيير المسافات بين الخطوات",
+ "Euler Ancestral - very creative, each can get a completely different picture depending on step count, setting steps to higher than 30-40 does not help": "Euler Ancestral: طريقة مبدعة يمكن أن تنتج صور مختلفة على حسب عدد الخطوات، لا تتغير بعد 30-40 خطوة",
+ "Denoising Diffusion Implicit Models - best at inpainting": "Denoising Diffusion Implicit Models: الأفضل في التحبير",
"Width": "العرض",
- "Height": "الارتفاع",
- "Restore faces": "ترميم الوجوه",
- "Tiling": "تبليط",
- "Highres. fix": "إصلاح الصور عالية الدقة",
- "Firstpass width": "عرض المرور الأول",
- "Firstpass height": "ارتفاع المرور الأول",
- "Denoising strength": "قوة تقليل الضوضاء",
- "Batch count": "عدد الدُفعات",
- "Batch size": "حجم الدفعة",
- "CFG Scale": "مقياس التقارب من الموجه (CFG)",
+ "Height": "الإرتفاع",
+ "Restore faces": "تحسين الوجوه",
+ "Tiling": "ترصيف",
+ "Produce an image that can be tiled.": "أنتج صور يمكن ترصيفها بجانب بعضها كالبلاط",
+ "Highres. fix": "أقل دقة",
+ "Use a two step process to partially create an image at smaller resolution, upscale, and then improve details in it without changing composition": "أنتج صورة بدقة منخفضة ثم قم برفع الدقة فيما بعد لتسريع الإنتاج عندما تكون الدقة المطلوبة كبيرة",
+ "Firstpass width": "العرض الأولي",
+ "Firstpass height": "الإرتفاع الأولي",
+ "Denoising strength": "قسط المشوار",
+ "Determines how little respect the algorithm should have for image's content. At 0, nothing will change, and at 1 you'll get an unrelated image. With values below 1.0, processing will take less steps than the Sampling Steps slider specifies.": "Denoising strength: حدد مقدار جزء المشوار المراد قطعه (1: كامل المشوار ينتج صورة مختلفة تماما، 0: ثابت لا يغير الصورة)",
+ "Batch count": "عدد الحزم",
+ "How many batches of images to create": "يتم إنتاج الصور على دفعات، كل دفعة فيها حزمة من الصور",
+ "Batch size": "حجم الحزمة",
+ "How many image to create in a single batch": "Batch size: إنتاج حزمة صور أسرع من إنتاجهم فرادى، حدد عدد الصور في كل حزمة",
+ "CFG Scale": "التركيز",
+ "Classifier Free Guidance Scale - how strongly the image should conform to prompt - lower values produce more creative results": "CFG scale: يحدد مقدار التركيز على تلبية الطلب وتجنب عكسه، كلما زاد قل الإبداع",
"Seed": "البذرة",
- "Extra": "إضافي",
- "Variation seed": "تباين البذرة",
- "Variation strength": "قوة التباين",
- "Resize seed from width": "تغيير حجم البذرة من العرض",
- "Resize seed from height": "تغيير حجم البذرة من الارتفاع",
- "Open for Clip Aesthetic!": "Open for Clip Aesthetic!",
- "▼": "▼",
- "Aesthetic weight": "Aesthetic weight",
- "Aesthetic steps": "Aesthetic steps",
- "Aesthetic learning rate": "Aesthetic learning rate",
- "Slerp interpolation": "Slerp interpolation",
- "Aesthetic imgs embedding": "Aesthetic imgs embedding",
- "None": "لايوجد",
- "Aesthetic text for imgs": "Aesthetic text for imgs",
- "Slerp angle": "Slerp angle",
- "Is negative text": "Is negative text",
- "Script": "سكريبت",
- "Prompt matrix": "مصفوفة الموجهات",
- "Prompts from file or textbox": "موجهات من ملف أو مربع النص",
- "X/Y plot": "الرسم البياني X/Y",
- "Put variable parts at start of prompt": "ضع الأجزاء المتغيرة في بداية الموجه",
- "Show Textbox": "إظهار مربع النص",
- "File with inputs": "ملف يحتوي المدخلات",
- "Prompts": "الموجهات",
- "X type": "نوع X",
- "Nothing": "لا شئ",
- "Var. seed": "تغير البذرة",
- "Var. strength": "قوة التغيير",
- "Steps": "الخطوات",
- "Prompt S/R": "موجه S / R",
- "Prompt order": "ترتيب الموجهات",
- "Sampler": "نظام أخذ العينات",
- "Checkpoint name": "اسم النموذج",
+ "A value that determines the output of random number generator - if you create an image with same parameters and seed as another image, you'll get the same result": "Seed: رقم طبيعي عشوائي يسمح بإعادة إنتاج نفس الصورة إذا توافقت قيم العوامل الأخرى",
+ "Set seed to -1, which will cause a new random number to be used every time": "استخدم بذرة جديدة في كل مرة (نرمز لهذا الخيار بجعل قيمة البذرة 1-)",
+ "Reuse seed from last generation, mostly useful if it was randomed": "أعد استخدام البذرة من الإنتاج السابق",
+ "Extra": "مزج",
+ "Variation seed": "بذرة الممزوج",
+ "Seed of a different picture to be mixed into the generation.": "Variation seed: بذرة صورة أخرى ليتم مزجها مع الصورة الحالية",
+ "Variation strength": "أثر الممزوج",
+ "How strong of a variation to produce. At 0, there will be no effect. At 1, you will get the complete picture with variation seed (except for ancestral samplers, where you will just get something).": "Variation seed strength: مقدار أثر الصورة المدمجة على النتيجة النهائية (0: لا أثر، 1: أثر كامل ما عدا عند استخدام أسلوب خطو سلفي Ancestral)",
+ "Resize seed from width": "عرض الممزوج",
+ "Resize seed from height": "إرتفاع الممزوج",
+ "Make an attempt to produce a picture similar to what would have been produced with same seed at specified resolution": "Seed resize from: حدد دقة صورة الممزوج (0: نفس دقة الإنتاج)",
+ "Open for Clip Aesthetic!": "تضمين تجميلي",
+ "Aesthetic weight": "أثر التضمين",
+ "Aesthetic steps": "عدد الخطوات",
+ "Aesthetic learning rate": "معدل التعلم",
+ "Slerp interpolation": "امزج بطريقة كروية",
+ "Aesthetic imgs embedding": "التضمين",
+ "None": "بدون",
+ "Aesthetic text for imgs": "الطلب (اختياري)",
+ "This text is used to rotate the feature space of the imgs embs": "لإعادة توجيه التضمين التجميلي",
+ "Slerp angle": "أثر الطلب",
+ "Is negative text": "الطلب عكسي",
+ "Script": "أداة",
+ "Prompt matrix": "مصفوفة طلبات",
+ "Put variable parts at start of prompt": "الجزء المتغير في بداية الطلب",
+ "Prompts from file or textbox": "قائمة طلبات",
+ "Show Textbox": "أظهر مربع النص",
+ "File with inputs": "ملف نصي للطلبات",
+ "Drop File Here": "اسقط ملف هنا",
+ "-": "-",
+ "or": "أو",
+ "Click to Upload": "انقر للرفع",
+ "Prompts": "قائمة الطلبات",
+ "X/Y plot": "مصفوفة عوامل",
+ "X type": "العامل الأول",
+ "Nothing": "لا شيء",
+ "Var. seed": "بذرة الممزوج",
+ "Var. strength": "أثر الممزوج",
+ "Steps": "عدد الخطوات",
+ "Prompt S/R": "كلمات بديلة",
+ "Prompt order": "ترتيب الكلمات",
+ "Sampler": "أسلوب الخطو",
+ "Checkpoint name": "ملف الأوزان",
"Hypernetwork": "الشبكة الفائقة",
"Hypernet str.": "قوة الشبكة الفائقة",
- "Sigma Churn": "دفع سيجما",
- "Sigma min": "أصغر سيجما",
- "Sigma max": "أكبر سيجما",
- "Sigma noise": "ضجة سيجما",
- "Eta": "الوقت المتوقع",
- "Clip skip": "تخطي Clip",
- "Denoising": "تقليل الضوضاء",
- "X values": "قيم X",
- "Y type": "نوع Y",
- "Y values": "قيم Y",
- "Draw legend": "ارسم مفتاح التوضيح",
- "Include Separate Images": "قم بتضمين الصور منفصلة",
- "Keep -1 for seeds": "احتفظ بـقيمة -1 للبذور",
- "Drop Image Here": "إسقاط الصورة هنا",
- "Save": "حفظ",
- "Send to img2img": "أرسل إلى صورة لصورة",
- "Send to inpaint": "أرسل إلى إعادة الرسم الجزئي",
- "Send to extras": "أرسل إلى الإضافات",
- "Make Zip when Save?": "إنشاء ملف مضغوط عند الحفظ؟",
- "Textbox": "مربع النص",
- "Interrogate\nCLIP": "استجواب\n CLIP",
- "Inpaint": "إعادة الرسم الجزئي",
- "Batch img2img": "دفعات صورة لصورة",
- "Image for img2img": "صورة (صورة لصورة)",
- "Image for inpainting with mask": "صورة (إعادة الرسم الجزئي)",
- "Mask": "القناع",
- "Mask blur": "ضبابية القناع",
- "Mask mode": "أسلوب القناع",
- "Draw mask": "رسم القناع",
- "Upload mask": "تحميل القناع",
- "Masking mode": "أسلوب التقنيع",
- "Inpaint masked": "إعادة الرسم الجزئي (المنطقة المقنعة)",
- "Inpaint not masked": "إعادة الرسم الجزئي (المنطقة الغير مقنعة)",
- "Masked content": "المحتوى المقنع",
- "fill": "الملأ",
- "original": "الأصلي",
- "latent noise": "الضوضاء الكامنة",
- "latent nothing": "لا شيء كامن",
- "Inpaint at full resolution": "إعادة الرسم الجزئي بدقة كاملة",
- "Inpaint at full resolution padding, pixels": "إعادة الرسم الجزئي بدقة كاملة, الحشو, بيكسل",
- "Process images in a directory on the same machine where the server is running.": "معالجة الصور في المجلد على نفس الجهاز حيث يتم تشغيل الخادم.",
- "Use an empty output directory to save pictures normally instead of writing to the output directory.": "استخدم مجلد إخراج فارغ لحفظ الصور بشكل طبيعي بدلاً من الكتابة إلى مجلد المخرجات.",
- "Input directory": "مجلد المدخلات",
- "Output directory": "مجلد المخرجات",
- "Resize mode": "وضعية تغيير الحجم",
- "Just resize": "تغييير الحجم فقط",
- "Crop and resize": "اقتصاص وتغيير الحجم",
- "Resize and fill": "تغيير الحجم والتعبئة",
- "img2img alternative test": "صورة لصورة البديلة",
- "Loopback": "الحلقة الراجعة",
- "Outpainting mk2": "الرسم الخارجي نسخة 2",
- "Poor man's outpainting": "الرسم الخارجي للفقراء",
- "SD upscale": "ترقية الانتشار المستقر",
- "should be 2 or lower.": "should be 2 or lower.",
- "Override `Sampling method` to Euler?(this method is built for it)": "Override `Sampling method` to Euler?(this method is built for it)",
- "Override `prompt` to the same value as `original prompt`?(and `negative prompt`)": "Override `prompt` to the same value as `original prompt`?(and `negative prompt`)",
- "Original prompt": "Original prompt",
- "Original negative prompt": "Original negative prompt",
- "Override `Sampling Steps` to the same value as `Decode steps`?": "Override `Sampling Steps` to the same value as `Decode steps`?",
- "Decode steps": "Decode steps",
- "Override `Denoising strength` to 1?": "Override `Denoising strength` to 1?",
- "Decode CFG scale": "Decode CFG scale",
- "Randomness": "Randomness",
- "Sigma adjustment for finding noise for image": "Sigma adjustment for finding noise for image",
- "Loops": "Loops",
- "Denoising strength change factor": "معامل قوة تقليل الضوضاء",
- "Recommended settings: Sampling Steps: 80-100, Sampler: Euler a, Denoising strength: 0.8": "الإعدادات الموصى بها: خطوات أخذ العينات: 80-100 ، طريقة أخذ العينات: Euler a ، تقليل الضوضاء: 0.8",
- "Pixels to expand": "عدد البكسل للتوسيع",
- "Outpainting direction": "إتجاه الرسم الخارجي",
+ "Sigma Churn": "العشوائية (Schurn)",
+ "Sigma min": "أدنى تشويش (Stmin)",
+ "Sigma max": "أقصى تشويش (Stmax)",
+ "Sigma noise": "التشويش (Snoise)",
+ "Eta": "العامل Eta η",
+ "Clip skip": "تخطي آخر طبقات CLIP",
+ "Denoising": "قسط المشوار",
+ "X values": "قيم العامل الأول",
+ "Separate values for X axis using commas.": "افصل القيم بفواصل (,) من اليسار إلى اليمين",
+ "Y type": "العامل الثاني",
+ "Y values": "قيم العامل الثاني",
+ "Separate values for Y axis using commas.": "افصل القيم بفواصل (,) من الأعلى إلى الأسفل",
+ "Draw legend": "أضف الهامش",
+ "Include Separate Images": "أضف الصور منفصلة",
+ "Keep -1 for seeds": "استخدم بذور عشوائية",
+ "Save": "احفظ",
+ "Write image to a directory (default - log/images) and generation parameters into csv file.": "احفظ الصور مع ملف العوامل بصيغة CSV",
+ "Send to img2img": "أرسل لصورة إلى صورة",
+ "Send to inpaint": "أرسل للتحبير",
+ "Send to extras": "أرسل للمعالجة",
+ "Open images output directory": "افتح مجلد الصور المخرجة",
+ "Make Zip when Save?": "ضع النتائج في ملف مضغوط عند الحفظ",
+ "img2img": "صورة إلى صورة",
+ "Interrogate\nCLIP": "استجواب\nCLIP",
+ "Drop Image Here": "اسقط صورة هنا",
+ "Just resize": "تغيير الحجم فقط",
+ "Resize image to target resolution. Unless height and width match, you will get incorrect aspect ratio.": "غير حجم الصورة بدون مراعات اتزان الأبعاد",
+ "Crop and resize": "تغيير الحجم وقص الأطراف",
+ "Resize the image so that entirety of target resolution is filled with the image. Crop parts that stick out.": "غير حجم الصورة واقتص الأطراف الزائدة",
+ "Resize and fill": "تغيير الحجم وتبطين الأطراف",
+ "Resize the image so that entirety of image is inside target resolution. Fill empty space with image's colors.": "غير حجم الصورة واملأ الأطراف الزائدة بألوان من الصورة",
+ "img2img alternative test": "استجواب الصورة (تجريبي)",
+ "should be 2 or lower.": "يفترض أن يكون 2 أو أقل",
+ "Override `Sampling method` to Euler?(this method is built for it)": "استخدم أسلوب خطو Euler (مستحسن)",
+ "Override `prompt` to the same value as `original prompt`?(and `negative prompt`)": "استبدل الطلب وعكسه في الأعلى بالطلب الأصلي وعكسه التاليين",
+ "Original prompt": "الطلب الأصلي",
+ "Original negative prompt": "عكس الطلب الأصلي",
+ "Override `Sampling Steps` to the same value as `Decode steps`?": "استدبل عدد الخطوات بعدد الخطوات الأصلية",
+ "Decode steps": "عدد الخطوات الأصلية",
+ "Override `Denoising strength` to 1?": "اجعل قسط المشوار 1",
+ "Decode CFG scale": "التركيز",
+ "Randomness": "العشوائية",
+ "Sigma adjustment for finding noise for image": "لا تسمح بتثبيت قيمة التباين",
+ "Loopback": "اجترار وتكرار",
+ "Loops": "عدد المرات",
+ "How many times to repeat processing an image and using it as input for the next iteration": "كم مرة يتم أخذ مخرجات الإنتاج كمدخلات وإعادة الإنتاج مرة أخرى",
+ "Denoising strength change factor": "معدل تغيير قسط المشوار",
+ "In loopback mode, on each loop the denoising strength is multiplied by this value. <1 means decreasing variety so your sequence will converge on a fixed picture. >1 means increasing variety so your sequence will become more and more chaotic.": "يتم ضرب قسط المشوار بهذا الرقم في كل مرة، إذا استخدمت رقم أصغر من 1 يمكن الرسو على نتيجة، وإذا استخدمت رقم أكبر من 1 تصبح النتيجة عشوائية",
+ "Outpainting mk2": "توسيع الصورة (mk2)",
+ "Recommended settings: Sampling Steps: 80-100, Sampler: Euler a, Denoising strength: 0.8": "يفضل استخدام: 80-100 خطوة، أسلوب Euler a، قسط المشوار 0.8",
+ "Pixels to expand": "عدد البيكسلات",
+ "Mask blur": "تنعيم القناع",
+ "How much to blur the mask before processing, in pixels.": "مقدرا تنعيم القناع قبل استخدامه (يقاس بالبيكسل)",
+ "Outpainting direction": "اتجاه توسيع الصورة",
"left": "يسار",
"right": "يمين",
"up": "فوق",
"down": "تحت",
- "Fall-off exponent (lower=higher detail)": "أس التناقص (الأدنى = تفاصيل أعلى)",
- "Color variation": "اختلاف اللون",
- "Will upscale the image to twice the dimensions; use width and height sliders to set tile size": "سيقوم بترقية الصورة إلى ضعف الأبعاد ؛ استخدم شريط تمرير العرض والارتفاع لضبط حجم التبليط",
- "Tile overlap": "تداخل التبليط",
- "Upscaler": "المرقي",
- "Lanczos": "Lanczos",
+ "Fall-off exponent (lower=higher detail)": "قوة السقوط (كلما قلت زادت التفاصيل)",
+ "Color variation": "تنوع الألوان",
+ "Poor man's outpainting": "توسيع الصورة (بدائي)",
+ "Masked content": "محتويات القناع",
+ "What to put inside the masked area before processing it with Stable Diffusion.": "ما يوضع مكان الفراغ في الصورة الذي نريد إنتاج محتوياته",
+ "fill": "ألوان",
+ "fill it with colors of the image": "املأ باستخدام ألوان مأخوذة من باقي الصورة",
+ "original": "بدون تغيير",
+ "keep whatever was there originally": "أبق محتويات ما تحت القناع كما هي",
+ "latent noise": "تشويش كامن",
+ "fill it with latent space noise": "املأه باستخدام تشويش من الفضاء الكامن",
+ "latent nothing": "تصفير كامن",
+ "fill it with latent space zeroes": "استبدل مكان القناع في الفضاء الكامن بأصفار",
+ "SD upscale": "مضاعفة الدقة",
+ "Will upscale the image to twice the dimensions; use width and height sliders to set tile size": "سيتم تكبير حجم الصورة إلى الضعف، استخدم الطول والإرتفاع في الأعلى لتحديد حجم نافذة المكبر",
+ "Tile overlap": "تداخل النافذة",
+ "For SD upscale, how much overlap in pixels should there be between tiles. Tiles overlap so that when they are merged back into one picture, there is no clearly visible seam.": "المكبر ينظر إلى أجزاء الصورة من خلال نافذة لتكبير المحتوى ثم ينتقل إلى الجزء المجاور، يفضل أن يكون هناك تداخل بين كل رقعة لكي لا يكون هناك اختلاف واضح بينهم",
+ "Upscaler": "طريقة التكبير",
+ "Inpaint": "تحبير",
+ "Draw mask": "ارسم القناع",
+ "Upload mask": "ارفع القناع",
+ "Inpaint masked": "تحبير ما بداخل القناع",
+ "Inpaint not masked": "تحبير ما حول القناع",
+ "Inpaint at full resolution": "تحبير بالدقة الكاملة",
+ "Upscale masked region to target resolution, do inpainting, downscale back and paste into original image": "كبر ما يراد تحبيره ثم صغر النتيجة وألصقها في مكانها",
+ "Inpaint at full resolution padding, pixels": "عدد بيكسلات التبطين",
+ "Batch img2img": "صور إلى صور",
+ "Process images in a directory on the same machine where the server is running.": "حدد مسار مجلد صور موجود في جهاز الخادم",
+ "Use an empty output directory to save pictures normally instead of writing to the output directory.": "يمكنك أيضا تحديد مجلد حفظ النتائج (غير الإفتراضي)",
+ "Input directory": "مجلد المدخلات",
+ "Output directory": "مجلد المخرجات",
+ "Extras": "معالجة",
"Single Image": "صورة واحدة",
- "Batch Process": "معالجة الدفعات",
- "Batch from Directory": "دفعة من المجلد",
- "Source": "مصدر",
- "Show result images": "إظهار نتائج الصور ",
- "Scale by": "رفع الحجم بمقدار",
- "Scale to": "رفع الحجم إلى",
+ "Source": "المصدر",
+ "Scale by": "مضاعفة الدقة",
"Resize": "تغيير الحجم",
- "Crop to fit": "اقتصاص للتوافق",
- "Upscaler 2 visibility": "إظهار المرقي 2",
- "GFPGAN visibility": "إظهار GFPGAN",
- "CodeFormer visibility": "إظهار CodeFormer",
- "CodeFormer weight (0 = maximum effect, 1 = minimum effect)": "وزن CodeFormer (0 = أقصى تأثير ، 1 = تأثير أدنى)",
+ "Upscaler 1": "المكبر الأول",
+ "Upscaler 2": "المكبر الثاني",
+ "Upscaler 2 visibility": "أثر المكبر الثاني",
+ "GFPGAN visibility": "أثر GFPGAN (محسن وجوه)",
+ "CodeFormer visibility": "أثر CodeFormer (محسن وجوه)",
+ "CodeFormer weight (0 = maximum effect, 1 = minimum effect)": "وزن CodeFormer (يزيد التفاصيل على حساب الجودة)",
+ "Scale to": "دقة محددة",
+ "Crop to fit": "قص الأطراف الزائدة إذا لم تتناسب الأبعاد",
+ "Batch Process": "حزمة صور",
+ "Batch from Directory": "حزمة من مجلد",
+ "A directory on the same machine where the server is running.": "مسار مجلد صور موجود في جهاز الخادم",
+ "Leave blank to save images to the default path.": "اتركه فارغا لاستخدام المسار الإفتراضي",
+ "Show result images": "اعرض الصور الناتجة",
"Open output directory": "افتح مجلد المخرجات",
- "Send to txt2img": "أرسل إلى كتابة لصورة",
- "A merger of the two checkpoints will be generated in your": "سيتم إنشاء نموذجمدمج من النموذجين في",
- "checkpoint": "النموذج",
- "directory.": "المجلد.",
- "Primary model (A)": "النموذج الأساسي (أ)",
- "Secondary model (B)": "النموذج الثانوي (ب)",
- "Tertiary model (C)": "النموذج الثالث (ج)",
- "Custom Name (Optional)": "اسم مخصص (اختياري)",
- "Multiplier (M) - set to 0 to get model A": "المضاعف (M) - اضبط على 0 للحصول على النموذج أ",
- "Interpolation Method": "طريقة الاستنباط",
- "Weighted sum": "المجموع الموزون",
- "Add difference": "أضافة الاختلاف",
- "Save as float16": "حفظ float16",
- "See": "شاهد",
- "wiki": "ويكي",
- "for detailed explanation.": "للحصول على شرح مفصل.",
- "Create embedding": "إنشاء التضمين",
- "Create hypernetwork": "إنشاء شبكة فائقة",
- "Preprocess images": "تجهيز الصور",
+ "PNG Info": "عوامل الصورة",
+ "Send to txt2img": "أرسل لنص إلى صورة",
+ "Checkpoint Merger": "مزج الأوزان",
+ "A merger of the two checkpoints will be generated in your": "سيتم مزج الأوزان التالية وحفظ الأوزان المدجمة مع ",
+ "checkpoint": "الأوزان",
+ "directory.": " مجلد.",
+ "Primary model (A)": "الأوزان الأولى (A)",
+ "Secondary model (B)": "الأوزان الثانية (B)",
+ "Tertiary model (C)": "الأوزان الثالثة (C)",
+ "Custom Name (Optional)": "الاسم الجديد (اختياري)",
+ "Multiplier (M) - set to 0 to get model A": "العامل M: مسافة الإبتعاد عن الأوزان الأولى A",
+ "Interpolation Method": "طريقة المزج",
+ "Weighted sum": "خطية",
+ "Result = A * (1 - M) + B * M": "النتيجة = A * (1 - M) + B * M",
+ "Add difference": "جمع الفرق",
+ "Result = A + (B - C) * M": "النتيجة = A + (B - C) * M",
+ "Save as float16": "احفظ بدقة float16",
+ "Run": "تشغيل",
+ "Train": "تدريب",
+ "See": "اقرأ",
+ "wiki": "الـwiki ",
+ "for detailed explanation.": "لمعرفة المزيد",
+ "Create embedding": "إنشاء تضمين",
"Name": "الاسم",
- "Initialization text": "نص التهيئة",
- "Number of vectors per token": "عدد المتجهات لكل رمز",
- "Overwrite Old Embedding": "الكتابة فوق التضمين القديم",
- "Modules": "الوحدات",
- "Enter hypernetwork layer structure": "أدخل بنية طبقة الشبكة الفائقة",
- "Select activation function of hypernetwork": "حدد وظيفة تنشيط الشبكة الفائقة",
- "linear": "خطي (Linear)",
- "relu": "الوحدة الخطية المعدلة (Relu)",
- "leakyrelu": "الوحدة الخطية المعدلة المسربة (Leakyrelu)",
- "elu": "الوحدة الأسية الخطية (Elu)",
- "swish": "Swish",
- "Add layer normalization": "أضف طبقة التسوية",
- "Use dropout": "استخدم الهبوط",
- "Overwrite Old Hypernetwork": "الكتابة فوق الشبكة الفائقة القديمة",
- "Source directory": "مجلد المصدر",
- "Destination directory": "مجلد النتائج",
- "Existing Caption txt Action": "الإجراء النصي للتعليق المتوفر",
+ "Initialization text": "النص المبدأي",
+ "Number of vectors per token": "عدد المتجهات لكل وحدة لغوية",
+ "Overwrite Old Embedding": "استبدل التضمين القديم",
+ "Create hypernetwork": "إنشاء شبكة فائقة",
+ "Modules": "الأجزاء",
+ "Enter hypernetwork layer structure": "ترتيب مضاعفات عرض الطبقات",
+ "1st and last digit must be 1. ex:'1, 2, 1'": "المضاعفين الأول والأخير يجب أن يكونا 1، مثال: 1, 2, 1",
+ "Select activation function of hypernetwork": "دالة التنشيط",
+ "linear": "خطية (بدون)",
+ "relu": "ريلو (ReLU)",
+ "leakyrelu": "ريلو المتسربة (LeakyReLU)",
+ "elu": "إيلو (ELU)",
+ "swish": "سويش (Swish)",
+ "Add layer normalization": "أضف تسوية الطبقات (LayerNorm)",
+ "Use dropout": "استخدم الإسقاط (Dropout)",
+ "Overwrite Old Hypernetwork": "استبدل الشبكة الفائقة القديمة",
+ "Preprocess images": "معالجة مسبقة للصور",
+ "Source directory": "مجلد المخرجات",
+ "Destination directory": "مجلد المخرجات",
+ "Existing Caption txt Action": "اذا كانت الصورة لديها توصيف (طلب)",
"ignore": "تجاهل",
- "copy": "نسخ",
- "prepend": "أضف قبل",
+ "copy": "انسخ",
+ "prepend": "أسبق",
"append": "ألحق",
- "Create flipped copies": "قم بإنشاء نسخ مقلوبة",
- "Split oversized images": "تقسيم الصور كبيرة الحجم",
- "Use BLIP for caption": "استخدم BLIP للتعليق",
- "Use deepbooru for caption": "استخدم deepbooru للتعليق",
- "Split image threshold": "حد تقسيم الصورة",
- "Split image overlap ratio": "نسبة تداخل الصورة المنقسمة",
- "Preprocess": "تجهيز الصور",
- "Train an embedding or Hypernetwork; you must specify a directory with a set of 1:1 ratio images": "تدريب التضمين أو الشبكة الفائقة ؛ يجب تحديد مجلد بمجموعة من الصور بنسبة أبعاد 1: 1",
- "[wiki]": "[ويكي]",
+ "Create flipped copies": "انشئ نسخ معكوسة للصور",
+ "Split oversized images": "قسّم الصور الكبيرة",
+ "Split image threshold": "حد تقسيم الصور الكبيرة",
+ "Split image overlap ratio": "نسبة تداخل اقسام الصور الكبيرة",
+ "Use BLIP for caption": "استخدم BLIP لتوصيف الصور",
+ "Use deepbooru for caption": "استخدم deepbooru لتوصيف الصور",
+ "Preprocess": "معالجة مسبقة",
+ "Train an embedding or Hypernetwork; you must specify a directory with a set of 1:1 ratio images": "درب التضمين أو الشبكة الفائقة: يجب تحديد مجلد يحتوي صور مربعة فقط ",
+ "[wiki]": "[wiki]",
"Embedding": "التضمين",
"Embedding Learning rate": "معدل تعلم التضمين",
"Hypernetwork Learning rate": "معدل تعلم الشبكة الفائقة",
"Dataset directory": "مجلد مجموعة البيانات",
+ "Path to directory with input images": "مسار مجلد الصور المدخلة",
"Log directory": "مجلد السجل",
- "Prompt template file": "ملف قالب الموجهات",
- "Max steps": "الخطوات القصوى",
- "Save an image to log directory every N steps, 0 to disable": "حفظ صورة في مجلد السجل كل N خطوات ، 0 للتعطيل",
- "Save a copy of embedding to log directory every N steps, 0 to disable": "حفظ نسخة من التضمين في مجلد السجل كل N خطوات ، 0 للتعطيل",
- "Save images with embedding in PNG chunks": "حفظ التضمين مع الصور في أجزاء PNG",
- "Read parameters (prompt, etc...) from txt2img tab when making previews": "قراءة المتغيرات (الموجه ، إلخ ...) من علامة تبويب نص لصورة عند إجراء المعاينات",
- "Train Hypernetwork": "تدريب الشبكة الفائقة",
- "Train Embedding": "تدريب التضمين",
- "Create an aesthetic embedding out of any number of images": "Create an aesthetic embedding out of any number of images",
- "Create images embedding": "Create images embedding",
- "extras": "إضافات",
- "favorites": "المفضلة",
- "custom fold": "custom fold",
- "Load": "تحميل",
+ "Path to directory where to write outputs": "مسار مجلد الصور المخرجة",
+ "Prompt template file": "ملف صيغ الطلبات",
+ "Max steps": "أقصى عدد خطوات التدريب",
+ "Save an image to log directory every N steps, 0 to disable": "احفظ صورة في السجل بعد كل كم خطوة تدريب (لا تحفظ إذا كان 0)",
+ "Save a copy of embedding to log directory every N steps, 0 to disable": "احفظ التضمين في السجل بعد كل كم خطوة تدريب (لا تحفظ إذا كان 0)",
+ "Save images with embedding in PNG chunks": "احفظ التضمين بداخل ملف الصورة كعامل يمكن استخراجه من عوامل الصورة (صيغة PNG)",
+ "Read parameters (prompt, etc...) from txt2img tab when making previews": "استخدم قيم العوامل الموجودة في تبويب نص إلى صورة لعرض نتائجهم أثناء التدريب",
+ "Train Hypernetwork": "درّب الشبكة الفائقة",
+ "Train Embedding": "درّب التضمين",
+ "Create aesthetic embedding": "تضمين تجميلي",
+ "Create an aesthetic embedding out of any number of images": "انشئ تضمين تجميلي يعبر عن مجموعة من الصور",
+ "Create images embedding": "انشئ التضمين التجميلي",
+ "Image Browser": "معرض الصور",
+ "Load": "حمّل",
"Images directory": "مجلد الصور",
- "Prev batch": "الدفعة السابقة",
- "Next batch": "الدفعة التالية",
"First Page": "الصفحة الأولى",
"Prev Page": "الصفحة السابقة",
- "Page Index": "فهرس الصفحات",
+ "Page Index": "رقم الصفحة",
"Next Page": "الصفحة التالية",
- "End Page": "صفحة النهاية",
- "number of images to delete consecutively next": "عدد الصور المطلوب حذفها على التوالي بعد ذلك",
- "Delete": "حذف",
- "Generate Info": "معلومات الإنشاء",
+ "End Page": "الصفحة الأخيرة",
+ "number of images to delete consecutively next": "عدد الصور المتتالية للحذف",
+ "Delete": "احذف",
+ "Generate Info": "معلومات عامة",
"File Name": "اسم الملف",
- "Collect": "جمع",
- "Refresh page": "إعادة تحميل الصفحة",
- "Date to": "التاريخ إلى",
- "Number": "الرقم",
- "set_index": "وضع الفهرس",
- "Checkbox": "صندوق اختيار",
- "Apply settings": "تطبيق الإعدادات",
- "Saving images/grids": "حفظ الصور / الإطار الشبكي",
- "Always save all generated images": "احفظ دائمًا جميع الصور التي تم إنشائها",
- "File format for images": "تنسيق ملفات الصور",
- "Images filename pattern": "نمط اسم ملفات الصور",
- "Add number to filename when saving": "Add number to filename when saving",
- "Always save all generated image grids": "احفظ دائمًا جميع الإطارات الشبكية للصور التي تم إنشاؤها",
- "File format for grids": "تنسيق ملفات الإطارات الشبكية",
- "Add extended info (seed, prompt) to filename when saving grid": "أضف معلومات إضافية (البذرة ، الموجه) إلى اسم الملف عند حفظ الإطار الشبكي",
- "Do not save grids consisting of one picture": "لا تحفظ الإطارات الشبكية التي تتكون من صورة واحدة",
- "Prevent empty spots in grid (when set to autodetect)": "منع المناطق الفارغة في الإطار الشبكي (عند الضبط على الاكتشاف التلقائي)",
- "Grid row count; use -1 for autodetect and 0 for it to be same as batch size": "عدد صفوف الإطار الشبكي استخدم -1 للاكتشاف التلقائي و 0 ليكون نفس حجم الدُفعة",
- "Save text information about generation parameters as chunks to png files": "احفظ معلومات نصية حول متغيرات الإنشاء كمقاطع في ملفات png",
- "Create a text file next to every image with generation parameters.": "قم بإنشاء ملف نصي بجوار كل صورة باستخدام متغيرات الإنشاء.",
- "Save a copy of image before doing face restoration.": "احفظ نسخة من الصورة قبل القيام بترميم الوجوه.",
- "Quality for saved jpeg images": "جودة الصور المحفوظة بتنسيق jpeg",
- "If PNG image is larger than 4MB or any dimension is larger than 4000, downscale and save copy as JPG": "إذا كانت صورة PNG أكبر من 4 ميجابايت أو كان أي بُعد أكبر من 4000 ، قم بتقليل حجم الصورة وحفظها بتنسيق JPG",
- "Use original name for output filename during batch process in extras tab": "استخدم الاسم الأصلي لاسم ملف الإخراج أثناء عملية الدُفعات في علامة تبويب الإضافات",
- "When using 'Save' button, only save a single selected image": "عند استخدام زر 'حفظ' ، احفظ فقط صورة واحدة محددة",
- "Do not add watermark to images": "لا تقم بإضافة العلامة المائية للصور",
- "Paths for saving": "مسارات الحفظ",
- "Output directory for images; if empty, defaults to three directories below": "مجلد المخرجات للصور ؛ إذا كان فارغا ، يتم تعيينه افتراضيًا إلى المجلدات الثلاثة أدناه",
- "Output directory for txt2img images": "مجلد المخرجات لصور نص لصورة",
- "Output directory for img2img images": "مجلد المخرجات لصور صورة لصورة",
- "Output directory for images from extras tab": "مجلد المخرجات لصور علامة تبويب الإضافات",
- "Output directory for grids; if empty, defaults to two directories below": "مجلد المخرجات للإطارات الشبكية ؛ إذا كان فارغا ، يتم تعيينه افتراضيًا إلى المجلدين أدناه",
- "Output directory for txt2img grids": "مجلد المخرجات للإطارات الشبكية نص لصورة",
- "Output directory for img2img grids": "مجلد المخرجات للإطارات الشبكية صورة لصورة",
- "Directory for saving images using the Save button": "مجلد لحفظ الصور باستخدام زر حفظ",
- "Saving to a directory": "يتم الحفظ إلى المجلد..",
- "Save images to a subdirectory": "حفظ الصور في مجلد فرعي",
- "Save grids to a subdirectory": "حفظ الإطارات الشبكية في مجلد فرعي",
+ "Collect": "اجمع",
+ "extras": "معالجة",
+ "favorites": "المفضلة",
+ "custom fold": "مجلد آخر",
+ "Input images directory": "مجلد الصور المدخلة",
+ "Settings": "إعدادات",
+ "Apply settings": "طبق الإعدادت",
+ "Saving images/grids": "حفظ الصور وجداولها",
+ "Always save all generated images": "احفظ كل الصور المنتجة",
+ "File format for images": "صيغة ملفات الصور",
+ "Images filename pattern": "نمط تسمية الصور",
+ "Use following tags to define how filenames for images are chosen: [steps], [cfg], [prompt], [prompt_no_styles], [prompt_spaces], [width], [height], [styles], [sampler], [seed], [model_hash], [prompt_words], [date], [datetime], [datetime], [datetime
"""
- checkpoint = sd_models.select_checkpoint()
-
- embedding.sd_checkpoint = checkpoint.hash
- embedding.sd_checkpoint_name = checkpoint.model_name
- embedding.cached_checksum = None
- # Before saving for the last time, change name back to base name (as opposed to the save_embedding_every step-suffixed naming convention).
- embedding.name = embedding_name
- filename = os.path.join(shared.cmd_opts.embeddings_dir, f'{embedding.name}.pt')
- embedding.save(filename)
+ filename = os.path.join(shared.cmd_opts.embeddings_dir, f'{embedding_name}.pt')
+ save_embedding(embedding, checkpoint, embedding_name, filename, remove_cached_checksum=True)
return embedding, filename
+
+def save_embedding(embedding, checkpoint, embedding_name, filename, remove_cached_checksum=True):
+ old_embedding_name = embedding.name
+ old_sd_checkpoint = embedding.sd_checkpoint if hasattr(embedding, "sd_checkpoint") else None
+ old_sd_checkpoint_name = embedding.sd_checkpoint_name if hasattr(embedding, "sd_checkpoint_name") else None
+ old_cached_checksum = embedding.cached_checksum if hasattr(embedding, "cached_checksum") else None
+ try:
+ embedding.sd_checkpoint = checkpoint.hash
+ embedding.sd_checkpoint_name = checkpoint.model_name
+ if remove_cached_checksum:
+ embedding.cached_checksum = None
+ embedding.name = embedding_name
+ embedding.save(filename)
+ except:
+ embedding.sd_checkpoint = old_sd_checkpoint
+ embedding.sd_checkpoint_name = old_sd_checkpoint_name
+ embedding.name = old_embedding_name
+ embedding.cached_checksum = old_cached_checksum
+ raise
--
cgit v1.2.1
From 3d58510f214c645ce5cdb261aa47df6573b239e9 Mon Sep 17 00:00:00 2001
From: Muhammad Rizqi Nur
Date: Sun, 30 Oct 2022 00:54:59 +0700
Subject: Fix dataset still being loaded even when training will be skipped
---
modules/hypernetworks/hypernetwork.py | 2 +-
modules/textual_inversion/textual_inversion.py | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/hypernetworks/hypernetwork.py b/modules/hypernetworks/hypernetwork.py
index 86daf825..07acadc9 100644
--- a/modules/hypernetworks/hypernetwork.py
+++ b/modules/hypernetworks/hypernetwork.py
@@ -364,7 +364,7 @@ def train_hypernetwork(hypernetwork_name, learn_rate, batch_size, data_root, log
checkpoint = sd_models.select_checkpoint()
ititial_step = hypernetwork.step or 0
- if ititial_step > steps:
+ if ititial_step >= steps:
shared.state.textinfo = f"Model has already been trained beyond specified max steps"
return hypernetwork, filename
diff --git a/modules/textual_inversion/textual_inversion.py b/modules/textual_inversion/textual_inversion.py
index ee9917ce..e0babb46 100644
--- a/modules/textual_inversion/textual_inversion.py
+++ b/modules/textual_inversion/textual_inversion.py
@@ -262,7 +262,7 @@ def train_embedding(embedding_name, learn_rate, batch_size, data_root, log_direc
checkpoint = sd_models.select_checkpoint()
ititial_step = embedding.step or 0
- if ititial_step > steps:
+ if ititial_step >= steps:
shared.state.textinfo = f"Model has already been trained beyond specified max steps"
return embedding, filename
--
cgit v1.2.1
From 2f3d8172c3fe80ea64ebe5c797835ca15c2e595f Mon Sep 17 00:00:00 2001
From: Vladimir Repin <32306715+mezotaken@users.noreply.github.com>
Date: Sat, 29 Oct 2022 21:43:32 +0300
Subject: img2img test template and setUp added
---
test/extras_test.py | 0
test/img2img_test.py | 59 ++++++++++++++++++++++
test/test_files/img2img_basic.png | Bin 0 -> 9932 bytes
test/test_files/mask_basic.png | Bin 0 -> 362 bytes
test/txt2img_test.py | 102 ++++++++++++++++++--------------------
5 files changed, 106 insertions(+), 55 deletions(-)
create mode 100644 test/extras_test.py
create mode 100644 test/img2img_test.py
create mode 100644 test/test_files/img2img_basic.png
create mode 100644 test/test_files/mask_basic.png
diff --git a/test/extras_test.py b/test/extras_test.py
new file mode 100644
index 00000000..e69de29b
diff --git a/test/img2img_test.py b/test/img2img_test.py
new file mode 100644
index 00000000..d8ed309d
--- /dev/null
+++ b/test/img2img_test.py
@@ -0,0 +1,59 @@
+import unittest
+import requests
+from gradio.processing_utils import encode_pil_to_base64
+from PIL import Image
+
+class Img2ImgWorking(unittest.TestCase):
+ def setUp(self):
+ self.url_img2img = "http://localhost:7860/sdapi/v1/img2img"
+ self.simple_img2img = {
+ "init_images": [
+ encode_pil_to_base64(Image.open(r"test/test_files/img2img_basic.png"))
+ ],
+ "resize_mode": 0,
+ "denoising_strength": 0.75,
+ "mask": None,
+ "mask_blur": 4,
+ "inpainting_fill": 0,
+ "inpaint_full_res": False,
+ "inpaint_full_res_padding": 0,
+ "inpainting_mask_invert": 0,
+ "prompt": "example prompt",
+ "styles": [
+ ""
+ ],
+ "seed": -1,
+ "subseed": -1,
+ "subseed_strength": 0,
+ "seed_resize_from_h": -1,
+ "seed_resize_from_w": -1,
+ "batch_size": 1,
+ "n_iter": 1,
+ "steps": 3,
+ "cfg_scale": 7,
+ "width": 64,
+ "height": 64,
+ "restore_faces": False,
+ "tiling": False,
+ "negative_prompt": "",
+ "eta": 0,
+ "s_churn": 0,
+ "s_tmax": 0,
+ "s_tmin": 0,
+ "s_noise": 1,
+ "override_settings": {},
+ "sampler_index": "Euler a",
+ "include_init_images": False
+ }
+ def test_img2img_simple_performed(self):
+ self.assertEqual(requests.post(self.url_img2img, json=self.simple_img2img).status_code, 200)
+
+ def test_inpainting_masked_performed(self):
+ self.simple_img2img["mask"] = encode_pil_to_base64(Image.open(r"test/test_files/mask_basic.png"))
+ self.assertEqual(requests.post(self.url_img2img, json=self.simple_img2img).status_code, 200)
+
+class TestImg2ImgCorrectness(unittest.TestCase):
+ pass
+
+if __name__ == "__main__":
+ unittest.main()
\ No newline at end of file
diff --git a/test/test_files/img2img_basic.png b/test/test_files/img2img_basic.png
new file mode 100644
index 00000000..49a42048
Binary files /dev/null and b/test/test_files/img2img_basic.png differ
diff --git a/test/test_files/mask_basic.png b/test/test_files/mask_basic.png
new file mode 100644
index 00000000..0c2e9a68
Binary files /dev/null and b/test/test_files/mask_basic.png differ
diff --git a/test/txt2img_test.py b/test/txt2img_test.py
index 9484fd99..ad27686a 100644
--- a/test/txt2img_test.py
+++ b/test/txt2img_test.py
@@ -1,77 +1,69 @@
import unittest
import requests
-import time
-
-url_txt2img = "http://localhost:7860/sdapi/v1/txt2img"
-simple_txt2img = {
- "enable_hr": False,
- "denoising_strength": 0,
- "firstphase_width": 0,
- "firstphase_height": 0,
- "prompt": "example prompt",
- "styles": [
- ""
- ],
- "seed": -1,
- "subseed": -1,
- "subseed_strength": 0,
- "seed_resize_from_h": -1,
- "seed_resize_from_w": -1,
- "batch_size": 1,
- "n_iter": 1,
- "steps": 5,
- "cfg_scale": 7,
- "width": 64,
- "height": 64,
- "restore_faces": False,
- "tiling": False,
- "negative_prompt": "",
- "eta": 0,
- "s_churn": 0,
- "s_tmax": 0,
- "s_tmin": 0,
- "s_noise": 1,
- "sampler_index": "Euler a"
-}
class TestTxt2ImgWorking(unittest.TestCase):
+ def setUp(self):
+ self.url_txt2img = "http://localhost:7860/sdapi/v1/txt2img"
+ self.simple_txt2img = {
+ "enable_hr": False,
+ "denoising_strength": 0,
+ "firstphase_width": 0,
+ "firstphase_height": 0,
+ "prompt": "example prompt",
+ "styles": [
+ ""
+ ],
+ "seed": -1,
+ "subseed": -1,
+ "subseed_strength": 0,
+ "seed_resize_from_h": -1,
+ "seed_resize_from_w": -1,
+ "batch_size": 1,
+ "n_iter": 1,
+ "steps": 3,
+ "cfg_scale": 7,
+ "width": 64,
+ "height": 64,
+ "restore_faces": False,
+ "tiling": False,
+ "negative_prompt": "",
+ "eta": 0,
+ "s_churn": 0,
+ "s_tmax": 0,
+ "s_tmin": 0,
+ "s_noise": 1,
+ "sampler_index": "Euler a"
+ }
def test_txt2img_simple_performed(self):
- self.assertEqual(requests.post(url_txt2img, json=simple_txt2img).status_code, 200)
+ self.assertEqual(requests.post(self.url_txt2img, json=self.simple_txt2img).status_code, 200)
def test_txt2img_with_negative_prompt_performed(self):
- params = simple_txt2img.copy()
- params["negative_prompt"] = "example negative prompt"
- self.assertEqual(requests.post(url_txt2img, json=params).status_code, 200)
+ self.simple_txt2img["negative_prompt"] = "example negative prompt"
+ self.assertEqual(requests.post(self.url_txt2img, json=self.simple_txt2img).status_code, 200)
def test_txt2img_not_square_image_performed(self):
- params = simple_txt2img.copy()
- params["height"] = 128
- self.assertEqual(requests.post(url_txt2img, json=params).status_code, 200)
+ self.simple_txt2img["height"] = 128
+ self.assertEqual(requests.post(self.url_txt2img, json=self.simple_txt2img).status_code, 200)
def test_txt2img_with_hrfix_performed(self):
- params = simple_txt2img.copy()
- params["enable_hr"] = True
- self.assertEqual(requests.post(url_txt2img, json=params).status_code, 200)
+ self.simple_txt2img["enable_hr"] = True
+ self.assertEqual(requests.post(self.url_txt2img, json=self.simple_txt2img).status_code, 200)
def test_txt2img_with_restore_faces_performed(self):
- params = simple_txt2img.copy()
- params["restore_faces"] = True
- self.assertEqual(requests.post(url_txt2img, json=params).status_code, 200)
+ self.simple_txt2img["restore_faces"] = True
+ self.assertEqual(requests.post(self.url_txt2img, json=self.simple_txt2img).status_code, 200)
def test_txt2img_with_tiling_faces_performed(self):
- params = simple_txt2img.copy()
- params["tiling"] = True
- self.assertEqual(requests.post(url_txt2img, json=params).status_code, 200)
+ self.simple_txt2img["tiling"] = True
+ self.assertEqual(requests.post(self.url_txt2img, json=self.simple_txt2img).status_code, 200)
def test_txt2img_with_vanilla_sampler_performed(self):
- params = simple_txt2img.copy()
- params["sampler_index"] = "PLMS"
- self.assertEqual(requests.post(url_txt2img, json=params).status_code, 200)
+ self.simple_txt2img["sampler_index"] = "PLMS"
+ self.assertEqual(requests.post(self.url_txt2img, json=self.simple_txt2img).status_code, 200)
def test_txt2img_multiple_batches_performed(self):
- params = simple_txt2img.copy()
- params["n_iter"] = 2
- self.assertEqual(requests.post(url_txt2img, json=params).status_code, 200)
+ self.simple_txt2img["n_iter"] = 2
+ self.assertEqual(requests.post(self.url_txt2img, json=self.simple_txt2img).status_code, 200)
class TestTxt2ImgCorrectness(unittest.TestCase):
pass
--
cgit v1.2.1
From ffc5b700c417924a77797fc5e02c219f10d801be Mon Sep 17 00:00:00 2001
From: Vladimir Repin <32306715+mezotaken@users.noreply.github.com>
Date: Sat, 29 Oct 2022 21:50:06 +0300
Subject: extras test template added
---
test/extras_test.py | 29 +++++++++++++++++++++++++++++
test/img2img_test.py | 4 ++--
2 files changed, 31 insertions(+), 2 deletions(-)
diff --git a/test/extras_test.py b/test/extras_test.py
index e69de29b..2e1764d9 100644
--- a/test/extras_test.py
+++ b/test/extras_test.py
@@ -0,0 +1,29 @@
+import unittest
+import requests
+from gradio.processing_utils import encode_pil_to_base64
+from PIL import Image
+
+class TestExtrasWorking(unittest.TestCase):
+ def setUp(self):
+ self.url_img2img = "http://localhost:7860/sdapi/v1/extra-single-image"
+ self.simple_extras = {
+ "resize_mode": 0,
+ "show_extras_results": True,
+ "gfpgan_visibility": 0,
+ "codeformer_visibility": 0,
+ "codeformer_weight": 0,
+ "upscaling_resize": 2,
+ "upscaling_resize_w": 512,
+ "upscaling_resize_h": 512,
+ "upscaling_crop": True,
+ "upscaler_1": "None",
+ "upscaler_2": "None",
+ "extras_upscaler_2_visibility": 0,
+ "image": ""
+ }
+
+class TestExtrasCorrectness(unittest.TestCase):
+ pass
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/test/img2img_test.py b/test/img2img_test.py
index d8ed309d..61e3e285 100644
--- a/test/img2img_test.py
+++ b/test/img2img_test.py
@@ -3,7 +3,7 @@ import requests
from gradio.processing_utils import encode_pil_to_base64
from PIL import Image
-class Img2ImgWorking(unittest.TestCase):
+class TestImg2ImgWorking(unittest.TestCase):
def setUp(self):
self.url_img2img = "http://localhost:7860/sdapi/v1/img2img"
self.simple_img2img = {
@@ -56,4 +56,4 @@ class TestImg2ImgCorrectness(unittest.TestCase):
pass
if __name__ == "__main__":
- unittest.main()
\ No newline at end of file
+ unittest.main()
--
cgit v1.2.1
From 4609b83cd496013a05e77c42af031d89f07785a9 Mon Sep 17 00:00:00 2001
From: Bruno Seoane
Date: Sat, 29 Oct 2022 16:09:19 -0300
Subject: Add PNG Info endpoint
---
modules/api/api.py | 12 +++++++++---
modules/api/models.py | 9 ++++++++-
2 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/modules/api/api.py b/modules/api/api.py
index 49c213ea..8fcd068d 100644
--- a/modules/api/api.py
+++ b/modules/api/api.py
@@ -5,7 +5,7 @@ import modules.shared as shared
from modules.api.models import *
from modules.processing import StableDiffusionProcessingTxt2Img, StableDiffusionProcessingImg2Img, process_images
from modules.sd_samplers import all_samplers
-from modules.extras import run_extras
+from modules.extras import run_extras, run_pnginfo
def upscaler_to_index(name: str):
try:
@@ -32,6 +32,7 @@ class Api:
self.app.add_api_route("/sdapi/v1/img2img", self.img2imgapi, methods=["POST"], response_model=ImageToImageResponse)
self.app.add_api_route("/sdapi/v1/extra-single-image", self.extras_single_image_api, methods=["POST"], response_model=ExtrasSingleImageResponse)
self.app.add_api_route("/sdapi/v1/extra-batch-images", self.extras_batch_images_api, methods=["POST"], response_model=ExtrasBatchImagesResponse)
+ self.app.add_api_route("/sdapi/v1/png-info", self.pnginfoapi, methods=["POST"], response_model=PNGInfoResponse)
def text2imgapi(self, txt2imgreq: StableDiffusionTxt2ImgProcessingAPI):
sampler_index = sampler_to_index(txt2imgreq.sampler_index)
@@ -125,8 +126,13 @@ class Api:
return ExtrasBatchImagesResponse(images=list(map(encode_pil_to_base64, result[0])), html_info=result[1])
- def pnginfoapi(self):
- raise NotImplementedError
+ def pnginfoapi(self, req:PNGInfoRequest):
+ if(not req.image.strip()):
+ return PNGInfoResponse(info="")
+
+ result = run_pnginfo(decode_base64_to_image(req.image.strip()))
+
+ return PNGInfoResponse(info=result[1])
def launch(self, server_name, port):
self.app.include_router(self.router)
diff --git a/modules/api/models.py b/modules/api/models.py
index dd122321..58e8e58b 100644
--- a/modules/api/models.py
+++ b/modules/api/models.py
@@ -1,4 +1,5 @@
import inspect
+from click import prompt
from pydantic import BaseModel, Field, create_model
from typing import Any, Optional
from typing_extensions import Literal
@@ -148,4 +149,10 @@ class ExtrasBatchImagesRequest(ExtrasBaseRequest):
imageList: list[FileData] = Field(title="Images", description="List of images to work on. Must be Base64 strings")
class ExtrasBatchImagesResponse(ExtraBaseResponse):
- images: list[str] = Field(title="Images", description="The generated images in base64 format.")
\ No newline at end of file
+ images: list[str] = Field(title="Images", description="The generated images in base64 format.")
+
+class PNGInfoRequest(BaseModel):
+ image: str = Field(title="Image", description="The base64 encoded PNG image")
+
+class PNGInfoResponse(BaseModel):
+ info: str = Field(title="Image info", description="A string with all the info the image had")
\ No newline at end of file
--
cgit v1.2.1
From 83a1f44ae26cb89492064bb8be0321b14a75efe4 Mon Sep 17 00:00:00 2001
From: Bruno Seoane
Date: Sat, 29 Oct 2022 16:10:00 -0300
Subject: Fix space
---
modules/api/api.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/api/api.py b/modules/api/api.py
index 8fcd068d..d0f488ca 100644
--- a/modules/api/api.py
+++ b/modules/api/api.py
@@ -126,7 +126,7 @@ class Api:
return ExtrasBatchImagesResponse(images=list(map(encode_pil_to_base64, result[0])), html_info=result[1])
- def pnginfoapi(self, req:PNGInfoRequest):
+ def pnginfoapi(self, req: PNGInfoRequest):
if(not req.image.strip()):
return PNGInfoResponse(info="")
--
cgit v1.2.1
From 9bb6b6509aff8c1e6546d5a798ef9e9922758dc4 Mon Sep 17 00:00:00 2001
From: AUTOMATIC <16777216c@gmail.com>
Date: Sat, 29 Oct 2022 22:20:02 +0300
Subject: add postprocess call for scripts
---
modules/processing.py | 12 +++++++++---
modules/scripts.py | 24 +++++++++++++++++++++---
2 files changed, 30 insertions(+), 6 deletions(-)
diff --git a/modules/processing.py b/modules/processing.py
index 548eec29..50343846 100644
--- a/modules/processing.py
+++ b/modules/processing.py
@@ -478,7 +478,7 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed:
model_hijack.embedding_db.load_textual_inversion_embeddings()
if p.scripts is not None:
- p.scripts.run_alwayson_scripts(p)
+ p.scripts.process(p)
infotexts = []
output_images = []
@@ -501,7 +501,7 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed:
seeds = p.all_seeds[n * p.batch_size:(n + 1) * p.batch_size]
subseeds = p.all_subseeds[n * p.batch_size:(n + 1) * p.batch_size]
- if (len(prompts) == 0):
+ if len(prompts) == 0:
break
with devices.autocast():
@@ -590,7 +590,13 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed:
images.save_image(grid, p.outpath_grids, "grid", p.all_seeds[0], p.all_prompts[0], opts.grid_format, info=infotext(), short_filename=not opts.grid_extended_filename, p=p, grid=True)
devices.torch_gc()
- return Processed(p, output_images, p.all_seeds[0], infotext() + "".join(["\n\n" + x for x in comments]), subseed=p.all_subseeds[0], all_prompts=p.all_prompts, all_seeds=p.all_seeds, all_subseeds=p.all_subseeds, index_of_first_image=index_of_first_image, infotexts=infotexts)
+
+ res = Processed(p, output_images, p.all_seeds[0], infotext() + "".join(["\n\n" + x for x in comments]), subseed=p.all_subseeds[0], all_prompts=p.all_prompts, all_seeds=p.all_seeds, all_subseeds=p.all_subseeds, index_of_first_image=index_of_first_image, infotexts=infotexts)
+
+ if p.scripts is not None:
+ p.scripts.postprocess(p, res)
+
+ return res
class StableDiffusionProcessingTxt2Img(StableDiffusionProcessing):
diff --git a/modules/scripts.py b/modules/scripts.py
index a7f36012..96e44bfd 100644
--- a/modules/scripts.py
+++ b/modules/scripts.py
@@ -64,7 +64,16 @@ class Script:
def process(self, p, *args):
"""
This function is called before processing begins for AlwaysVisible scripts.
- scripts. You can modify the processing object (p) here, inject hooks, etc.
+ You can modify the processing object (p) here, inject hooks, etc.
+ args contains all values returned by components from ui()
+ """
+
+ pass
+
+ def postprocess(self, p, processed, *args):
+ """
+ This function is called after processing ends for AlwaysVisible scripts.
+ args contains all values returned by components from ui()
"""
pass
@@ -289,13 +298,22 @@ class ScriptRunner:
return processed
- def run_alwayson_scripts(self, p):
+ def process(self, p):
for script in self.alwayson_scripts:
try:
script_args = p.script_args[script.args_from:script.args_to]
script.process(p, *script_args)
except Exception:
- print(f"Error running alwayson script: {script.filename}", file=sys.stderr)
+ print(f"Error running process: {script.filename}", file=sys.stderr)
+ print(traceback.format_exc(), file=sys.stderr)
+
+ def postprocess(self, p, processed):
+ for script in self.alwayson_scripts:
+ try:
+ script_args = p.script_args[script.args_from:script.args_to]
+ script.postprocess(p, processed, *script_args)
+ except Exception:
+ print(f"Error running postprocess: {script.filename}", file=sys.stderr)
print(traceback.format_exc(), file=sys.stderr)
def reload_sources(self, cache):
--
cgit v1.2.1
From 4cb5983c308cb8a4940b00babc2cf6fc9261692f Mon Sep 17 00:00:00 2001
From: AUTOMATIC <16777216c@gmail.com>
Date: Sat, 29 Oct 2022 22:38:50 +0300
Subject: rename french translation to be in line with others
---
localizations/fr-FR.json | 415 -----------------------------------------------
localizations/fr_FR.json | 415 +++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 415 insertions(+), 415 deletions(-)
delete mode 100644 localizations/fr-FR.json
create mode 100644 localizations/fr_FR.json
diff --git a/localizations/fr-FR.json b/localizations/fr-FR.json
deleted file mode 100644
index b33d0838..00000000
--- a/localizations/fr-FR.json
+++ /dev/null
@@ -1,415 +0,0 @@
-{
- "⤡": "⤡",
- "⊞": "⊞",
- "×": "×",
- "❮": "❮",
- "❯": "❯",
- "Loading...": "Chargement...",
- "view": "vue",
- "api": "api",
- "•": "•",
- "built with gradio": "Construit avec Gradio",
- "Stable Diffusion checkpoint": "checkpoint Stable Diffusion",
- "txt2img": "txt2img",
- "img2img": "img2img",
- "Extras": "Extras",
- "PNG Info": "Infos PNG",
- "History": "Historique",
- "Checkpoint Merger": "Fusion de checkpoints",
- "Train": "Entrainer",
- "Settings": "Paramètres",
- "Prompt": "Requête",
- "Negative prompt": "Requête négative",
- "Run": "Lancer",
- "Skip": "Passer",
- "Interrupt": "Interrrompre",
- "Generate": "Générer",
- "Style 1": "Style 1",
- "Style 2": "Style 2",
- "Label": "Etiquette",
- "File": "Fichier",
- "Drop File Here": "Déposer votre fichier ici",
- "-": "-",
- "or": "ou",
- "Click to Upload": "Cliquer pour uploader",
- "Image": "Image",
- "Check progress": "Voir l'avancement",
- "Check progress (first)": "Voir l'avancement (1er)",
- "Sampling Steps": "Étapes d'échantillonnage",
- "Sampling method": "Méthode d'échantillonnage",
- "Euler a": "Euler a",
- "Euler": "Euler",
- "LMS": "LMS",
- "Heun": "Heun",
- "DPM2": "DPM2",
- "DPM2 a": "DPM2 a",
- "DPM fast": "DPM fast",
- "DPM adaptive": "DPM adaptive",
- "LMS Karras": "LMS Karras",
- "DPM2 Karras": "DPM2 Karras",
- "DPM2 a Karras": "DPM2 a Karras",
- "DDIM": "DDIM",
- "PLMS": "PLMS",
- "Width": "Largeur",
- "Height": "Hauteur",
- "Restore faces": "Restaurer les visages",
- "Tiling": "Mode Tuile",
- "Highres. fix": "Correction haute résolution",
- "Firstpass width": "Largeur première passe",
- "Firstpass height": "Hauteur seconde passe",
- "Denoising strength": "Puissance de réduction du bruit",
- "Batch count": "Nombre de lots",
- "Batch size": "Taille de lots",
- "CFG Scale": "Echelle CFG",
- "Seed": "Valeur aléatoire",
- "Extra": "Extra",
- "Variation seed": "Variation de la valeur aléatoire",
- "Variation strength": "Puissance de variation",
- "Resize seed from width": "Largeur de redimensionnement de la valeur aléatoire",
- "Resize seed from height": "Hauteur de redimensionnement de la valeur aléatoire",
- "Script": "Script",
- "None": "Aucun",
- "Prompt matrix": "Matrice de requète",
- "Prompts from file or textbox": "Requètes depuis un fichier ou une boite de dialogue",
- "X/Y plot": "graphe X/Y",
- "Put variable parts at start of prompt": "Mettre les mots clés variable au début de la requête",
- "Show Textbox": "Afficher le champs texte",
- "File with inputs": "Fichier d'entrée",
- "Prompts": "Requêtes",
- "X type": "Paramètre axe X",
- "Nothing": "Rien",
- "Var. seed": "Valeur aléatoire variable",
- "Var. strength": "Puissance variable",
- "Steps": "Étapes",
- "Prompt S/R": "Cherche et remplace dans la requête",
- "Prompt order": "Ordre de la requête",
- "Sampler": "Echantilloneur",
- "Checkpoint name": "Nom du checkpoint",
- "Hypernetwork": "Hypernetwork",
- "Hypernet str.": "Force de l'Hypernetwork",
- "Sigma Churn": "Sigma Churn",
- "Sigma min": "Sigma min.",
- "Sigma max": "Sigma max.",
- "Sigma noise": "Bruit Sigma",
- "Eta": "Temps estimé",
- "Clip skip": "Passer Clip",
- "Denoising": "Réduction du bruit",
- "X values": "Valeurs X",
- "Y type": "Paramètre axe Y",
- "Y values": "Valeurs Y",
- "Draw legend": "Afficher la légende",
- "Include Separate Images": "Inclure les images séparées",
- "Keep -1 for seeds": "Conserver -1 pour la valeur aléatoire",
- "Drop Image Here": "Déposer l'image ici",
- "Save": "Enregistrer",
- "Send to img2img": "Envoyer vers img2img",
- "Send to inpaint": "Envoyer vers inpaint",
- "Send to extras": "Envoyer vers extras",
- "Make Zip when Save?": "Créer un zip lors de l'enregistrement?",
- "Textbox": "Champ texte",
- "Interrogate\nCLIP": "Interroger\nCLIP",
- "Interrogate\nDeepBooru": "Interroger\nDeepBooru",
- "Inpaint": "Inpaint",
- "Batch img2img": "Lot img2img",
- "Image for img2img": "Image pour img2img",
- "Image for inpainting with mask": "Image pour inpainting avec masque",
- "Mask": "Masque",
- "Mask blur": "Flou masque",
- "Mask mode": "Mode masque",
- "Draw mask": "Dessiner masque",
- "Upload mask": "Uploader masque",
- "Masking mode": "Mode de masquage",
- "Inpaint masked": "Inpaint masqué",
- "Inpaint not masked": "Inpaint non masqué",
- "Masked content": "Contenu masqué",
- "fill": "remplir",
- "original": "original",
- "latent noise": "bruit latent",
- "latent nothing": "latent vide",
- "Inpaint at full resolution": "Inpaint en pleine résolution",
- "Inpaint at full resolution padding, pixels": "Padding de l'inpaint en pleine résolution, en pixels",
- "Process images in a directory on the same machine where the server is running.": "Traite les images dans un dossier sur la même machine où le serveur tourne",
- "Use an empty output directory to save pictures normally instead of writing to the output directory.": "Utiliser un dossier de sortie vide pour enregistrer les images normalement plutôt que d'écrire dans le dossier de sortie",
- "Input directory": "Dossier d'entrée",
- "Output directory": "Dossier de sortie",
- "Resize mode": "Mode redimensionnement",
- "Just resize": "Redimensionner uniquement",
- "Crop and resize": "Recadrer et redimensionner",
- "Resize and fill": "Redimensionner et remplir",
- "img2img alternative test": "Test alternatif img2img",
- "Loopback": "Bouclage",
- "Outpainting mk2": "Outpainting v2",
- "Poor man's outpainting": "Outpainting du pauvre",
- "SD upscale": "Agrandissement SD",
- "should be 2 or lower.": "doit être inférieur ou égal à 2",
- "Override `Sampling method` to Euler?(this method is built for it)": "Forcer `Méthode d'échantillonnage` à Euler ? (cette méthode est dédiée à cela)",
- "Override `prompt` to the same value as `original prompt`?(and `negative prompt`)": "Forcer la `requête` au contenu de la `requête d'origine` ? (de même pour la `requête négative`)",
- "Original prompt": "Requête d'origine",
- "Original negative prompt": "Requête négative d'origine",
- "Override `Sampling Steps` to the same value as `Decode steps`?": "Forcer le valeur d'`Étapes d'échantillonnage` à la même valeur qu'`Étapes de décodage` ?",
- "Decode steps": "Étapes de décodage",
- "Override `Denoising strength` to 1?": "Forcer `Puissance de réduction du bruit` à 1 ?",
- "Decode CFG scale": "Echelle CFG de décodage",
- "Randomness": "Aléatoire",
- "Sigma adjustment for finding noise for image": "Ajustement Sigma lors de la recherche du bruit dans l'image",
- "Loops": "Boucles",
- "Denoising strength change factor": "Facteur de changement de la puissance de réduction du bruit",
- "Recommended settings: Sampling Steps: 80-100, Sampler: Euler a, Denoising strength: 0.8": "Paramètres recommandés : Étapes d'échantillonnage : 80-100, Echantillonneur : Euler a, Puissance de réduction du bruit : 0.8",
- "Pixels to expand": "Pixels à étendre",
- "Outpainting direction": "Direction de l'outpainting",
- "left": "gauche",
- "right": "droite",
- "up": "haut",
- "down": "bas",
- "Fall-off exponent (lower=higher detail)": "Exposant de diminution (plus petit = plus de détails)",
- "Color variation": "Variation de couleur",
- "Will upscale the image to twice the dimensions; use width and height sliders to set tile size": "Agrandira l'image à deux fois sa taille; utilisez les glissières largeur et hauteur afin de choisir la taille de tuile",
- "Tile overlap": "Chevauchement de tuile",
- "Upscaler": "Agrandisseur",
- "Lanczos": "Lanczos",
- "LDSR": "LDSR",
- "BSRGAN 4x": "BSRGAN 4x",
- "ESRGAN_4x": "ESRGAN_4x",
- "R-ESRGAN 4x+ Anime6B": "R-ESRGAN 4x+ Anime6B",
- "ScuNET GAN": "ScuNET GAN",
- "ScuNET PSNR": "ScuNET PSNR",
- "SwinIR 4x": "SwinIR 4x",
- "Single Image": "Image unique",
- "Batch Process": "Traitement par lot",
- "Batch from Directory": "Lot depuis un dossier",
- "Source": "Source",
- "Show result images": "Montrez les images résultantes",
- "Scale by": "Mise à l'échelle de",
- "Scale to": "Mise à l'échelle à",
- "Resize": "Redimensionner",
- "Crop to fit": "Recadrer à la taille",
- "Upscaler 2": "Agrandisseur 2",
- "Upscaler 2 visibility": "Visibilité de l'agrandisseur 2",
- "GFPGAN visibility": "Visibilité GFPGAN",
- "CodeFormer visibility": "Visibilité CodeFormer",
- "CodeFormer weight (0 = maximum effect, 1 = minimum effect)": "Poids CodeFormer (0 = effet maximum, 1 = effet minimum)",
- "Open output directory": "Ouvrir le dossier de sortie",
- "Send to txt2img": "Envoyer vers txt2img",
- "txt2img history": "historique txt2img",
- "img2img history": "historique img2img",
- "extras history": "historique extras",
- "Renew Page": "Rafraichr la page",
- "First Page": "Première page",
- "Prev Page": "Page précendente",
- "Page Index": "Index des pages",
- "Next Page": "Page suivante",
- "End Page": "Page de fin",
- "number of images to delete consecutively next": "nombre d'image à supprimer consécutivement ensuite",
- "Delete": "Supprimer",
- "Generate Info": "Générer les informations",
- "File Name": "Nom de fichier",
- "set_index": "set_index",
- "A merger of the two checkpoints will be generated in your": "Une fusion des deux checkpoints sera générée dans votre",
- "checkpoint": "checkpoint",
- "directory.": "dossier",
- "Primary model (A)": "Modèle primaire (A)",
- "Secondary model (B)": "Modèle secondaire (B)",
- "Tertiary model (C)": "Modèle tertiaire (C)",
- "Custom Name (Optional)": "Nom personnalisé (Optionel)",
- "Multiplier (M) - set to 0 to get model A": "Multiplieur (M) - utiliser 0 pour le modèle A",
- "Interpolation Method": "Méthode d'interpolation",
- "Weighted sum": "Somme pondérée",
- "Add difference": "Ajouter différence",
- "Save as float16": "Enregistrer en tant que float16",
- "See": "Voir",
- "wiki": "wiki",
- "for detailed explanation.": "pour une explication détaillée.",
- "Create embedding": "Créer un embedding",
- "Create hypernetwork": "Créer un hypernetwork",
- "Preprocess images": "Pré-traite les images",
- "Name": "Nom",
- "Initialization text": "Texte d'initialisation",
- "Number of vectors per token": "Nombre de vecteurs par jeton",
- "Modules": "Modules",
- "Source directory": "Dossier source",
- "Destination directory": "Dossier destination",
- "Create flipped copies": "Créer des copies en mirroir",
- "Split oversized images into two": "Couper les images trop grandes en deux",
- "Use BLIP for caption": "Utiliser BLIP pour les descriptions",
- "Use deepbooru for caption": "Utiliser deepbooru pour les descriptions",
- "Preprocess": "Pré-traite",
- "Train an embedding; must specify a directory with a set of 1:1 ratio images": "Entrainer un embedding ; spécifiez un dossier contenant un ensemble d'images avec un ratio de 1:1",
- "Embedding": "Embedding",
- "Learning rate": "Vitesse d'apprentissage",
- "Dataset directory": "Dossier des images d'entrée",
- "Log directory": "Dossier de journalisation",
- "Prompt template file": "Fichier modèle de requêtes",
- "Max steps": "Étapes max.",
- "Save an image to log directory every N steps, 0 to disable": "Enregistrer une image dans le dossier de journalisation toutes les N étapes, 0 pour désactiver",
- "Save a copy of embedding to log directory every N steps, 0 to disable": "Enregistrer une copie de l'embedding dans le dossier de journalisation toutes les N étapes, 0 pour désactiver",
- "Save images with embedding in PNG chunks": "Sauvegarder les images incluant l'embedding dans leur blocs PNG",
- "Read parameters (prompt, etc...) from txt2img tab when making previews": "Lire les paramètres (requête, etc.) depuis l'onglet txt2img lors de la génération des previews",
- "Train Hypernetwork": "Entrainer un Hypernetwork",
- "Train Embedding": "Entrainer un Embedding",
- "Apply settings": "Appliquer les paramètres",
- "Saving images/grids": "Enregistrer les images/grilles",
- "Always save all generated images": "Toujours enregistrer toutes les images",
- "File format for images": "Format de fichier pour les images",
- "Images filename pattern": "Motif pour le nom de fichier des images",
- "Always save all generated image grids": "Toujours enregistrer toutes les grilles d'images générées",
- "File format for grids": "Format de fichier pour les grilles",
- "Add extended info (seed, prompt) to filename when saving grid": "Ajouter les informations étendues (valeur aléatoire, requête) aux noms de fichiers lors de l'enregistrement d'une grille",
- "Do not save grids consisting of one picture": "Ne pas enregistrer les grilles contenant une seule image",
- "Prevent empty spots in grid (when set to autodetect)": "Eviter les vides dans la grille (quand autodétection est choisie)",
- "Grid row count; use -1 for autodetect and 0 for it to be same as batch size": "Nombre de colonnes de la grille; utilisez -1 pour autodétection et 0 pour qu'il soit égal à la taille du lot",
- "Save text information about generation parameters as chunks to png files": "Enregistrer l'information du text des paramètres de génération en tant que blocs dans les fichiers PNG",
- "Create a text file next to every image with generation parameters.": "Créer un fichier texte contenant les paramètres de génération à côté de chaque image",
- "Save a copy of image before doing face restoration.": "Enregistrer une copie de l'image avant de lancer la restauration de visage",
- "Quality for saved jpeg images": "Qualité pour les images jpeg enregistrées",
- "If PNG image is larger than 4MB or any dimension is larger than 4000, downscale and save copy as JPG": "Si l'image PNG est plus grande que 4MB or l'une des ses dimensions supérieure à 4000, réduire sa taille et enregistrer une copie en JPG",
- "Use original name for output filename during batch process in extras tab": "Utiliser un nom de fichier original pour les fichiers de sortie durant le traitement par lot dans l'onglet Extras",
- "When using 'Save' button, only save a single selected image": "A l'utilisation du bouton `Enregistrer`, n'enregistrer que l'image séléctionnée",
- "Do not add watermark to images": "Ne pas ajouter de filigrane aux images",
- "Paths for saving": "Chemins pour l'enregistrement",
- "Output directory for images; if empty, defaults to three directories below": "Dossier de sortie pour les images; si non spécifié, le chemin par défaut sera trois niveau en dessous",
- "Output directory for txt2img images": "Dossier de sortie pour les images txt2img",
- "Output directory for img2img images": "Dossier de sortie pour les images img2img",
- "Output directory for images from extras tab": "Dossier de sortie pour les images de l'onglet Extras",
- "Output directory for grids; if empty, defaults to two directories below": "Dossier de sortie pour les grilles; si non spécifié, le chemin par défaut sera deux niveau en dessous",
- "Output directory for txt2img grids": "Dossier de sortie pour les grilles txt2img",
- "Output directory for img2img grids": "Dossier de sortie pour les grilles img2img",
- "Directory for saving images using the Save button": "Dossier de sauvegarde des images pour le bouton `Enregistrer`",
- "Saving to a directory": "Enregistrer dans un dossier",
- "Save images to a subdirectory": "Enregistrer les images dans un sous dossier",
- "Save grids to a subdirectory": "Enregistrer les grilles dans un sous dossier",
- "When using \"Save\" button, save images to a subdirectory": "Lors de l'utilisation du bouton \"Enregistrer\", sauvegarder les images dans un sous dossier",
- "Directory name pattern": "Motif pour le nom des dossiers",
- "Max prompt words for [prompt_words] pattern": "Maximum de mot pour le motif [prompt_words]",
- "Upscaling": "Agrandissement",
- "Tile size for ESRGAN upscalers. 0 = no tiling.": "Taille des tuile for les agrandisseurs ESRGAN. 0 = mode tuile désactivé.",
- "Tile overlap, in pixels for ESRGAN upscalers. Low values = visible seam.": "Chevauchement des tuiles, en pixel pour l'agrandisseur ESRGAN. Valeur faible = couture visible",
- "Tile size for all SwinIR.": "Taille de la tuile pour tous les agrandisseur SwinIR.",
- "Tile overlap, in pixels for SwinIR. Low values = visible seam.": "Chevauchement de tuile, en pixels pour SwinIR. Valeur faible = couture visible",
- "LDSR processing steps. Lower = faster": "Echantillon du traitement LDSR. Valeur faible = plus rapide",
- "Upscaler for img2img": "Agrandisseur pour img2img",
- "Upscale latent space image when doing hires. fix": "Agrandir l'image de l'espace latent lors de la correction haute résolution",
- "Face restoration": "Restauration de visage",
- "CodeFormer weight parameter; 0 = maximum effect; 1 = minimum effect": "Paramètre de poids pour CodeFormer; 0 = effet maximum ; 1 = effet minimum",
- "Move face restoration model from VRAM into RAM after processing": "Déplacer le modèle de restauration de visage de la VRAM vers la RAM après traitement",
- "System": "Système",
- "VRAM usage polls per second during generation. Set to 0 to disable.": "Fréquence d'interrogation par seconde pendant la génération. Mettez la valeur à 0 pour désactiver.",
- "Always print all generation info to standard output": "Toujours afficher toutes les informations de génération dans la sortie standard",
- "Add a second progress bar to the console that shows progress for an entire job.": "Ajouter un seconde barre de progression dans la console montrant l'avancement pour un tâche complète.",
- "Training": "Entrainement",
- "Unload VAE and CLIP from VRAM when training": "Décharger VAE et CLIP de la VRAM pendant l'entrainement",
- "Filename word regex": "Regex de mot",
- "Filename join string": "Chaine de caractère pour lier les noms de fichier",
- "Number of repeats for a single input image per epoch; used only for displaying epoch number": "Nombre de répétition pour une image unique par époque; utilisé seulement pour afficher le nombre d'époques",
- "Save an csv containing the loss to log directory every N steps, 0 to disable": "Enregistrer un csv contenant la perte dans le dossier de journalisation toutes les N étapes, 0 pour désactiver",
- "Stable Diffusion": "Stable Diffusion",
- "Checkpoints to cache in RAM": "Checkpoint à mettre en cache dans la RAM",
- "Hypernetwork strength": "Force de l'Hypernetwork",
- "Apply color correction to img2img results to match original colors.": "Appliquer une correction de couleur aux résultats img2img afin de conserver les couleurs d'origine",
- "Save a copy of image before applying color correction to img2img results": "Enregistrer une copie de l'image avant d'appliquer les résultats de la correction de couleur img2img",
- "With img2img, do exactly the amount of steps the slider specifies (normally you'd do less with less denoising).": "Avec img2img, executer exactement le nombre d'étapes spécifiées par la glissière (normalement moins d'étapes sont executées quand la réduction du bruit est plus faible).",
- "Enable quantization in K samplers for sharper and cleaner results. This may change existing seeds. Requires restart to apply.": "Activer la quantisation des échantillionneurs K pour des résultats plus nets et plus propres. Cela peut modifier les valeurs aléatoires existantes. Requiert un redémarrage pour être actif.",
- "Emphasis: use (text) to make model pay more attention to text and [text] to make it pay less attention": "Emphase : utilisez (texte) afin de forcer le modèle à porter plus d'attention au texte et [texte] afin qu'il y porte moins attention",
- "Use old emphasis implementation. Can be useful to reproduce old seeds.": "Utilisez l'ancienne méthode d'emphase. Peut être utile afin de reproduire d'anciennes valeurs aléatoires.",
- "Make K-diffusion samplers produce same images in a batch as when making a single image": "Demander aux échantillionneurs K-diffusion de produire les mêmes dans un lot que lors de la génération d'une image unique",
- "Increase coherency by padding from the last comma within n tokens when using more than 75 tokens": "Améliorer la cohérence en remplissant (padding) à partir de la dernière virgule dans les X jetons quand on en utilise plus de 75",
- "Filter NSFW content": "Filtrer le contenu +18 (NSFW)",
- "Stop At last layers of CLIP model": "S'arrêter aux derniers niveaux du modèle CLIP",
- "Interrogate Options": "Options d'intérrogation",
- "Interrogate: keep models in VRAM": "Interroger : conserver les modèles en VRAM",
- "Interrogate: use artists from artists.csv": "Interroger : utiliser les artistes dans artists.csv",
- "Interrogate: include ranks of model tags matches in results (Has no effect on caption-based interrogators).": "Interroger : inclure la correspondance du classement des labels de modèle dans les résultats (N'a pas d'effet sur les interrogateurs basés sur des descriptions) ",
- "Interrogate: num_beams for BLIP": "Interroger : num_beams pour BLIP",
- "Interrogate: minimum description length (excluding artists, etc..)": "Interroger : longueur minimale de la description (excluant les artistes, etc.)",
- "Interrogate: maximum description length": "Interroger : longueur maximale de la description",
- "CLIP: maximum number of lines in text file (0 = No limit)": "CLIP : nombre maximum de lignes dans le fichier texte (0 = pas de limite)",
- "Interrogate: deepbooru score threshold": "Interroger : seuil du score deepbooru",
- "Interrogate: deepbooru sort alphabetically": "Interroger : classement alphabétique deepbooru",
- "use spaces for tags in deepbooru": "Utiliser des espaces pour les étiquettes dans deepbooru",
- "escape (\\) brackets in deepbooru (so they are used as literal brackets and not for emphasis)": "échapper (\\) les crochets dans deepbooru (afin qu'ils puissent être utilisés littéralement et non pour mettre en emphase)",
- "User interface": "Interface utilisateur",
- "Show progressbar": "Afficher la barre de progression",
- "Show image creation progress every N sampling steps. Set 0 to disable.": "Afficher l'état d'avancement de la création d'image toutes les X étapes d'échantillionnage. Utiliser 0 pour désactiver.",
- "Show grid in results for web": "Afficher la grille dans les résultats web",
- "Do not show any images in results for web": "N'afficher aucune image dans les résultats web'",
- "Add model hash to generation information": "Ajouter le hash du modèle dans l'information de génération",
- "Add model name to generation information": "Ajouter le nom du modèle dans l'information de génération",
- "Font for image grids that have text": "Police pour les grilles d'images contenant du texte",
- "Enable full page image viewer": "Activer l'affichage des images en plein écran",
- "Show images zoomed in by default in full page image viewer": "Afficher les images zoomées par défaut lors de l'affichage en plein écran",
- "Show generation progress in window title.": "Afficher l'avancement de la génération dans le titre de la fenêtre.",
- "Quicksettings list": "Liste de réglages rapides",
- "Localization (requires restart)": "Localisation (requiert un redémarrage)",
- "Sampler parameters": "Paramètres de l'échantillionneur",
- "Hide samplers in user interface (requires restart)": "Cacher les échantillonneurs dans l'interface utilisateur (requiert un redémarrage)",
- "eta (noise multiplier) for DDIM": "eta (multiplicateur de bruit) pour DDIM",
- "eta (noise multiplier) for ancestral samplers": "eta (multiplicateur de bruit) poru les échantillionneurs de type 'ancestral'",
- "img2img DDIM discretize": "Discrétisation DDIM pour img2img",
- "uniform": "uniforme",
- "quad": "quad",
- "sigma churn": "sigma churn",
- "sigma tmin": "sigma tmin",
- "sigma noise": "sigma noise",
- "Eta noise seed delta": "Eta noise seed delta",
- "Request browser notifications": "Demander les notifications au navigateur",
- "Download localization template": "Télécharger le modèle de localisation",
- "Reload custom script bodies (No ui updates, No restart)": "Recharger le contenu des scripts personnalisés (Pas de mise à jour de l'interface, Pas de redémarrage)",
- "Restart Gradio and Refresh components (Custom Scripts, ui.py, js and css only)": "Redémarrer Gradio et rafraichir les composants (Scripts personnalisés, ui.py, js et css uniquement)",
- "Prompt (press Ctrl+Enter or Alt+Enter to generate)": "Requête (Ctrl + Entrée ou Alt + Entrée pour générer)",
- "Negative prompt (press Ctrl+Enter or Alt+Enter to generate)": "Requête négative (Ctrl + Entrée ou Alt + Entrée pour générer)",
- "Add a random artist to the prompt.": "Ajouter un artiste aléatoire à la requête",
- "Read generation parameters from prompt or last generation if prompt is empty into user interface.": "Lire les paramètres de génération depuis la requête, ou depuis la dernière génération si la requête est vide dans l'interface utilisateur.",
- "Save style": "Sauvegarder le style",
- "Apply selected styles to current prompt": "Appliquer les styles séléctionnés à la requête actuelle",
- "Stop processing current image and continue processing.": "Arrêter le traitement de l'image actuelle et continuer le traitement.",
- "Stop processing images and return any results accumulated so far.": "Arrêter le traitement des images et retourne les résultats accumulés depuis le début.",
- "Style to apply; styles have components for both positive and negative prompts and apply to both": "Style à appliquer ; les styles sont composés de requêtes positives et négatives et s'appliquent au deux",
- "Do not do anything special": "Ne rien faire de particulier",
- "Which algorithm to use to produce the image": "Quel algorithme utiliser pour produire l'image",
- "Euler Ancestral - very creative, each can get a completely different picture depending on step count, setting steps to higher than 30-40 does not help": "Euler Ancestral - très créatif, peut générer des images complètement différentes en fonction du nombre d'étapes, utiliser plus de 30 à 40 étapes n'améliore pas le résultat",
- "Denoising Diffusion Implicit Models - best at inpainting": "Modèles implicite de réduction du bruit à diffusion - utile pour l'inpainting",
- "Produce an image that can be tiled.": "Produit une image qui peut être bouclée (tuile).",
- "Use a two step process to partially create an image at smaller resolution, upscale, and then improve details in it without changing composition": "Utilise un processus en deux étapes afin de créer partiellement une image dans une résolution plus faible, l'agrandir et améliorer ses détails sans modifier la composition",
- "Determines how little respect the algorithm should have for image's content. At 0, nothing will change, and at 1 you'll get an unrelated image. With values below 1.0, processing will take less steps than the Sampling Steps slider specifies.": "Détermine à quel point l'algorithme doit respecter le contenu de l'image. A 0 rien ne changera, à 1 l'image sera entièrement différente. Avec des valeurs inférieures à 1.0 le traitement utilisera moins d'étapes que ce que la glissière Étapes d'échantillionnage spécifie. ",
- "How many batches of images to create": "Combien de lots d'images créer",
- "How many image to create in a single batch": "Combien d'images créer par lot",
- "Classifier Free Guidance Scale - how strongly the image should conform to prompt - lower values produce more creative results": "Classifier Free Guidance Scale - spécifie à quel point l'image doit se conformer à la requête - des valeurs plus faibles produisent des résultats plus créatifs",
- "A value that determines the output of random number generator - if you create an image with same parameters and seed as another image, you'll get the same result": "Une valeur qui détermine la sortie du générateur de nombres aléatoires - si vous créez une image avec les mêmes paramètres et valeur aléatoire qu'une autre, le résultat sera identique",
- "Set seed to -1, which will cause a new random number to be used every time": "Passer la valeur aléatoire à -1, cela causera qu'un nombre aléatoire différent sera utilisé à chaque fois",
- "Reuse seed from last generation, mostly useful if it was randomed": "Réutiliser la valeur aléatoire de la dernière génération, généralement utile uniquement si elle était randomisée",
- "Seed of a different picture to be mixed into the generation.": "Valeur aléatoire d'une image différente à mélanger dans la génération",
- "How strong of a variation to produce. At 0, there will be no effect. At 1, you will get the complete picture with variation seed (except for ancestral samplers, where you will just get something).": "Force de la variation à produire. A 0 il n'y aura pas d'effet. A 1 l'image sera composée uniquement de la valeur aléatoire variable spécifiée (à l'exception des échantillionneurs `ancestral`)",
- "Make an attempt to produce a picture similar to what would have been produced with same seed at specified resolution": "Essayer de produire une image similaire à ce qu'elle aurait été avec la même valeur aléatoire, mais dans la résolution spécifiée",
- "Separate values for X axis using commas.": "Séparer les valeurs pour l'axe X par des virgules",
- "Separate values for Y axis using commas.": "Séparer les valeurs pour l'axe Y par des virgules",
- "Write image to a directory (default - log/images) and generation parameters into csv file.": "Ecrire l'image dans un dossier (par défaut - log/images) et les paramètres de génération dans un fichier csv.",
- "Open images output directory": "Ouvrir le dossier de sortie des images",
- "How much to blur the mask before processing, in pixels.": "Quantité de flou à appliquer au masque avant traitement, en pixels",
- "What to put inside the masked area before processing it with Stable Diffusion.": "Avec quoi remplir la zone masquée avant traitement par Stable Diffusion.",
- "fill it with colors of the image": "remplir avec les couleurs de l'image",
- "keep whatever was there originally": "conserver ce qui était présent à l'origine",
- "fill it with latent space noise": "remplir avec le bruit de l'espace latent",
- "fill it with latent space zeroes": "remplir avec des zéros dans l'espace latent",
- "Upscale masked region to target resolution, do inpainting, downscale back and paste into original image": "Agrandir la région masquées à la résolution cible, exécuter l'inpainting, réduire à nouveau puis coller dans l'image originale",
- "Resize image to target resolution. Unless height and width match, you will get incorrect aspect ratio.": "Redimensionner l'image dans la résolution cible. A moins que la hauteur et la largeur coincident le ratio de l'image sera incorrect.",
- "Resize the image so that entirety of target resolution is filled with the image. Crop parts that stick out.": "Redimensionner l'image afin que l'entièreté de la résolution cible soit remplie par l'image. Recadrer les parties qui dépassent.",
- "Resize the image so that entirety of image is inside target resolution. Fill empty space with image's colors.": "Redimensionner l'image afin que l'entièreté de l'image soit contenue dans la résolution cible. Remplir l'espace vide avec les couleurs de l'image.",
- "How many times to repeat processing an image and using it as input for the next iteration": "Combien de fois répéter le traitement d'une image et l'utiliser comme entrée pour la prochaine itération",
- "In loopback mode, on each loop the denoising strength is multiplied by this value. <1 means decreasing variety so your sequence will converge on a fixed picture. >1 means increasing variety so your sequence will become more and more chaotic.": "En mode bouclage (Loopback), à chaque tour de la boucle la force du réducteur de bruit est multipliée par cette valeur. <1 signifie réduire la variation donc votre séquence convergera vers une image fixe. >1 signifie augmenter la variation donc votre séquence deviendra de plus en plus chaotique. ",
- "For SD upscale, how much overlap in pixels should there be between tiles. Tiles overlap so that when they are merged back into one picture, there is no clearly visible seam.": "Pour l'agrandissement SD, de combien les tuiles doivent se chevaucher, en pixels. Les tuiles se chevauchent de manière à ce qu'il n'y ait pas de couture visible une fois fusionnées en une image. ",
- "A directory on the same machine where the server is running.": "Un dossier sur la même machine où le serveur tourne.",
- "Leave blank to save images to the default path.": "Laisser vide pour sauvegarder les images dans le chemin par défaut.",
- "Result = A * (1 - M) + B * M": "Résultat = A * (1 - M) + B * M",
- "Result = A + (B - C) * M": "Résultat = A + (B - C) * M",
- "Path to directory with input images": "Chemin vers le dossier contenant les images d'entrée",
- "Path to directory where to write outputs": "Chemin vers le dossier où écrire les sorties",
- "Use following tags to define how filenames for images are chosen: [steps], [cfg], [prompt], [prompt_no_styles], [prompt_spaces], [width], [height], [styles], [sampler], [seed], [model_hash], [prompt_words], [date], [datetime], [job_timestamp]; leave empty for default.": "Utiliser les étiquettes suivantes pour définir le nom des images : [steps], [cfg], [prompt], [prompt_no_styles], [prompt_spaces], [width], [height], [styles], [sampler], [seed], [model_hash], [prompt_words], [date], [datetime], [job_timestamp] ; laisser vide pour le nom par défaut.",
- "If this option is enabled, watermark will not be added to created images. Warning: if you do not add watermark, you may be behaving in an unethical manner.": "Si cette option est activée le filigrane ne sera pas ajouté au images crées. Attention : si vous n'ajoutez pas de filigrane vous pourriez vous comporter de manière non éthique.",
- "Use following tags to define how subdirectories for images and grids are chosen: [steps], [cfg], [prompt], [prompt_no_styles], [prompt_spaces], [width], [height], [styles], [sampler], [seed], [model_hash], [prompt_words], [date], [datetime], [job_timestamp]; leave empty for default.": "Utiliser les étiquettes suivantes pour définir le nom des sous dossiers pour les images et les grilles : [steps], [cfg], [prompt], [prompt_no_styles], [prompt_spaces], [width], [height], [styles], [sampler], [seed], [model_hash], [prompt_words], [date], [datetime], [job_timestamp] ; laisser vide pour le nom par défaut.",
- "Restore low quality faces using GFPGAN neural network": "Restaurer les visages de basse qualité en utilisant le réseau neuronal GFPGAN",
- "This regular expression will be used extract words from filename, and they will be joined using the option below into label text used for training. Leave empty to keep filename text as it is.": "Cette expression régulière sera utilisée pour extraire les mots depuis le nom de fichier ; ils seront joints en utilisant l'option ci dessous en une étiquette utilisée pour l'entrainement. Laisser vide pour conserver le texte du nom de fichier tel quel.",
- "This string will be used to join split words into a single line if the option above is enabled.": "Cette chaine de caractères sera utilisée pour joindre les mots séparés en une ligne unique si l'option ci dessus est activée.",
- "List of setting names, separated by commas, for settings that should go to the quick access bar at the top, rather than the usual setting tab. See modules/shared.py for setting names. Requires restarting to apply.": "Liste des noms de paramètres, séparés par des virgules, pour les paramètres de la barre d'accès rapide en haut de page, plutôt que dans la page habituelle des paramètres. Voir modules/shared.py pour définir les noms. Requiert un redémarrage pour s'appliquer.",
- "If this values is non-zero, it will be added to seed and used to initialize RNG for noises when using samplers with Eta. You can use this to produce even more variation of images, or you can use this to match images of other software if you know what you are doing.": "Si cette valeur est différente de zéro elle sera ajoutée à la valeur aléatoire et utilisée pour initialiser le générateur de nombres aléatoires du bruit lors de l'utilisation des échantillonneurs supportants Eta. Vous pouvez l'utiliser pour produire encore plus de variation dans les images, ou vous pouvez utiliser ceci pour faire correspondre les images avec d'autres logiciels si vous savez ce que vous faites.",
- "Enable Autocomplete": "Activer l'autocomplétion",
- "/0.0": "/0.0"
-}
\ No newline at end of file
diff --git a/localizations/fr_FR.json b/localizations/fr_FR.json
new file mode 100644
index 00000000..b33d0838
--- /dev/null
+++ b/localizations/fr_FR.json
@@ -0,0 +1,415 @@
+{
+ "⤡": "⤡",
+ "⊞": "⊞",
+ "×": "×",
+ "❮": "❮",
+ "❯": "❯",
+ "Loading...": "Chargement...",
+ "view": "vue",
+ "api": "api",
+ "•": "•",
+ "built with gradio": "Construit avec Gradio",
+ "Stable Diffusion checkpoint": "checkpoint Stable Diffusion",
+ "txt2img": "txt2img",
+ "img2img": "img2img",
+ "Extras": "Extras",
+ "PNG Info": "Infos PNG",
+ "History": "Historique",
+ "Checkpoint Merger": "Fusion de checkpoints",
+ "Train": "Entrainer",
+ "Settings": "Paramètres",
+ "Prompt": "Requête",
+ "Negative prompt": "Requête négative",
+ "Run": "Lancer",
+ "Skip": "Passer",
+ "Interrupt": "Interrrompre",
+ "Generate": "Générer",
+ "Style 1": "Style 1",
+ "Style 2": "Style 2",
+ "Label": "Etiquette",
+ "File": "Fichier",
+ "Drop File Here": "Déposer votre fichier ici",
+ "-": "-",
+ "or": "ou",
+ "Click to Upload": "Cliquer pour uploader",
+ "Image": "Image",
+ "Check progress": "Voir l'avancement",
+ "Check progress (first)": "Voir l'avancement (1er)",
+ "Sampling Steps": "Étapes d'échantillonnage",
+ "Sampling method": "Méthode d'échantillonnage",
+ "Euler a": "Euler a",
+ "Euler": "Euler",
+ "LMS": "LMS",
+ "Heun": "Heun",
+ "DPM2": "DPM2",
+ "DPM2 a": "DPM2 a",
+ "DPM fast": "DPM fast",
+ "DPM adaptive": "DPM adaptive",
+ "LMS Karras": "LMS Karras",
+ "DPM2 Karras": "DPM2 Karras",
+ "DPM2 a Karras": "DPM2 a Karras",
+ "DDIM": "DDIM",
+ "PLMS": "PLMS",
+ "Width": "Largeur",
+ "Height": "Hauteur",
+ "Restore faces": "Restaurer les visages",
+ "Tiling": "Mode Tuile",
+ "Highres. fix": "Correction haute résolution",
+ "Firstpass width": "Largeur première passe",
+ "Firstpass height": "Hauteur seconde passe",
+ "Denoising strength": "Puissance de réduction du bruit",
+ "Batch count": "Nombre de lots",
+ "Batch size": "Taille de lots",
+ "CFG Scale": "Echelle CFG",
+ "Seed": "Valeur aléatoire",
+ "Extra": "Extra",
+ "Variation seed": "Variation de la valeur aléatoire",
+ "Variation strength": "Puissance de variation",
+ "Resize seed from width": "Largeur de redimensionnement de la valeur aléatoire",
+ "Resize seed from height": "Hauteur de redimensionnement de la valeur aléatoire",
+ "Script": "Script",
+ "None": "Aucun",
+ "Prompt matrix": "Matrice de requète",
+ "Prompts from file or textbox": "Requètes depuis un fichier ou une boite de dialogue",
+ "X/Y plot": "graphe X/Y",
+ "Put variable parts at start of prompt": "Mettre les mots clés variable au début de la requête",
+ "Show Textbox": "Afficher le champs texte",
+ "File with inputs": "Fichier d'entrée",
+ "Prompts": "Requêtes",
+ "X type": "Paramètre axe X",
+ "Nothing": "Rien",
+ "Var. seed": "Valeur aléatoire variable",
+ "Var. strength": "Puissance variable",
+ "Steps": "Étapes",
+ "Prompt S/R": "Cherche et remplace dans la requête",
+ "Prompt order": "Ordre de la requête",
+ "Sampler": "Echantilloneur",
+ "Checkpoint name": "Nom du checkpoint",
+ "Hypernetwork": "Hypernetwork",
+ "Hypernet str.": "Force de l'Hypernetwork",
+ "Sigma Churn": "Sigma Churn",
+ "Sigma min": "Sigma min.",
+ "Sigma max": "Sigma max.",
+ "Sigma noise": "Bruit Sigma",
+ "Eta": "Temps estimé",
+ "Clip skip": "Passer Clip",
+ "Denoising": "Réduction du bruit",
+ "X values": "Valeurs X",
+ "Y type": "Paramètre axe Y",
+ "Y values": "Valeurs Y",
+ "Draw legend": "Afficher la légende",
+ "Include Separate Images": "Inclure les images séparées",
+ "Keep -1 for seeds": "Conserver -1 pour la valeur aléatoire",
+ "Drop Image Here": "Déposer l'image ici",
+ "Save": "Enregistrer",
+ "Send to img2img": "Envoyer vers img2img",
+ "Send to inpaint": "Envoyer vers inpaint",
+ "Send to extras": "Envoyer vers extras",
+ "Make Zip when Save?": "Créer un zip lors de l'enregistrement?",
+ "Textbox": "Champ texte",
+ "Interrogate\nCLIP": "Interroger\nCLIP",
+ "Interrogate\nDeepBooru": "Interroger\nDeepBooru",
+ "Inpaint": "Inpaint",
+ "Batch img2img": "Lot img2img",
+ "Image for img2img": "Image pour img2img",
+ "Image for inpainting with mask": "Image pour inpainting avec masque",
+ "Mask": "Masque",
+ "Mask blur": "Flou masque",
+ "Mask mode": "Mode masque",
+ "Draw mask": "Dessiner masque",
+ "Upload mask": "Uploader masque",
+ "Masking mode": "Mode de masquage",
+ "Inpaint masked": "Inpaint masqué",
+ "Inpaint not masked": "Inpaint non masqué",
+ "Masked content": "Contenu masqué",
+ "fill": "remplir",
+ "original": "original",
+ "latent noise": "bruit latent",
+ "latent nothing": "latent vide",
+ "Inpaint at full resolution": "Inpaint en pleine résolution",
+ "Inpaint at full resolution padding, pixels": "Padding de l'inpaint en pleine résolution, en pixels",
+ "Process images in a directory on the same machine where the server is running.": "Traite les images dans un dossier sur la même machine où le serveur tourne",
+ "Use an empty output directory to save pictures normally instead of writing to the output directory.": "Utiliser un dossier de sortie vide pour enregistrer les images normalement plutôt que d'écrire dans le dossier de sortie",
+ "Input directory": "Dossier d'entrée",
+ "Output directory": "Dossier de sortie",
+ "Resize mode": "Mode redimensionnement",
+ "Just resize": "Redimensionner uniquement",
+ "Crop and resize": "Recadrer et redimensionner",
+ "Resize and fill": "Redimensionner et remplir",
+ "img2img alternative test": "Test alternatif img2img",
+ "Loopback": "Bouclage",
+ "Outpainting mk2": "Outpainting v2",
+ "Poor man's outpainting": "Outpainting du pauvre",
+ "SD upscale": "Agrandissement SD",
+ "should be 2 or lower.": "doit être inférieur ou égal à 2",
+ "Override `Sampling method` to Euler?(this method is built for it)": "Forcer `Méthode d'échantillonnage` à Euler ? (cette méthode est dédiée à cela)",
+ "Override `prompt` to the same value as `original prompt`?(and `negative prompt`)": "Forcer la `requête` au contenu de la `requête d'origine` ? (de même pour la `requête négative`)",
+ "Original prompt": "Requête d'origine",
+ "Original negative prompt": "Requête négative d'origine",
+ "Override `Sampling Steps` to the same value as `Decode steps`?": "Forcer le valeur d'`Étapes d'échantillonnage` à la même valeur qu'`Étapes de décodage` ?",
+ "Decode steps": "Étapes de décodage",
+ "Override `Denoising strength` to 1?": "Forcer `Puissance de réduction du bruit` à 1 ?",
+ "Decode CFG scale": "Echelle CFG de décodage",
+ "Randomness": "Aléatoire",
+ "Sigma adjustment for finding noise for image": "Ajustement Sigma lors de la recherche du bruit dans l'image",
+ "Loops": "Boucles",
+ "Denoising strength change factor": "Facteur de changement de la puissance de réduction du bruit",
+ "Recommended settings: Sampling Steps: 80-100, Sampler: Euler a, Denoising strength: 0.8": "Paramètres recommandés : Étapes d'échantillonnage : 80-100, Echantillonneur : Euler a, Puissance de réduction du bruit : 0.8",
+ "Pixels to expand": "Pixels à étendre",
+ "Outpainting direction": "Direction de l'outpainting",
+ "left": "gauche",
+ "right": "droite",
+ "up": "haut",
+ "down": "bas",
+ "Fall-off exponent (lower=higher detail)": "Exposant de diminution (plus petit = plus de détails)",
+ "Color variation": "Variation de couleur",
+ "Will upscale the image to twice the dimensions; use width and height sliders to set tile size": "Agrandira l'image à deux fois sa taille; utilisez les glissières largeur et hauteur afin de choisir la taille de tuile",
+ "Tile overlap": "Chevauchement de tuile",
+ "Upscaler": "Agrandisseur",
+ "Lanczos": "Lanczos",
+ "LDSR": "LDSR",
+ "BSRGAN 4x": "BSRGAN 4x",
+ "ESRGAN_4x": "ESRGAN_4x",
+ "R-ESRGAN 4x+ Anime6B": "R-ESRGAN 4x+ Anime6B",
+ "ScuNET GAN": "ScuNET GAN",
+ "ScuNET PSNR": "ScuNET PSNR",
+ "SwinIR 4x": "SwinIR 4x",
+ "Single Image": "Image unique",
+ "Batch Process": "Traitement par lot",
+ "Batch from Directory": "Lot depuis un dossier",
+ "Source": "Source",
+ "Show result images": "Montrez les images résultantes",
+ "Scale by": "Mise à l'échelle de",
+ "Scale to": "Mise à l'échelle à",
+ "Resize": "Redimensionner",
+ "Crop to fit": "Recadrer à la taille",
+ "Upscaler 2": "Agrandisseur 2",
+ "Upscaler 2 visibility": "Visibilité de l'agrandisseur 2",
+ "GFPGAN visibility": "Visibilité GFPGAN",
+ "CodeFormer visibility": "Visibilité CodeFormer",
+ "CodeFormer weight (0 = maximum effect, 1 = minimum effect)": "Poids CodeFormer (0 = effet maximum, 1 = effet minimum)",
+ "Open output directory": "Ouvrir le dossier de sortie",
+ "Send to txt2img": "Envoyer vers txt2img",
+ "txt2img history": "historique txt2img",
+ "img2img history": "historique img2img",
+ "extras history": "historique extras",
+ "Renew Page": "Rafraichr la page",
+ "First Page": "Première page",
+ "Prev Page": "Page précendente",
+ "Page Index": "Index des pages",
+ "Next Page": "Page suivante",
+ "End Page": "Page de fin",
+ "number of images to delete consecutively next": "nombre d'image à supprimer consécutivement ensuite",
+ "Delete": "Supprimer",
+ "Generate Info": "Générer les informations",
+ "File Name": "Nom de fichier",
+ "set_index": "set_index",
+ "A merger of the two checkpoints will be generated in your": "Une fusion des deux checkpoints sera générée dans votre",
+ "checkpoint": "checkpoint",
+ "directory.": "dossier",
+ "Primary model (A)": "Modèle primaire (A)",
+ "Secondary model (B)": "Modèle secondaire (B)",
+ "Tertiary model (C)": "Modèle tertiaire (C)",
+ "Custom Name (Optional)": "Nom personnalisé (Optionel)",
+ "Multiplier (M) - set to 0 to get model A": "Multiplieur (M) - utiliser 0 pour le modèle A",
+ "Interpolation Method": "Méthode d'interpolation",
+ "Weighted sum": "Somme pondérée",
+ "Add difference": "Ajouter différence",
+ "Save as float16": "Enregistrer en tant que float16",
+ "See": "Voir",
+ "wiki": "wiki",
+ "for detailed explanation.": "pour une explication détaillée.",
+ "Create embedding": "Créer un embedding",
+ "Create hypernetwork": "Créer un hypernetwork",
+ "Preprocess images": "Pré-traite les images",
+ "Name": "Nom",
+ "Initialization text": "Texte d'initialisation",
+ "Number of vectors per token": "Nombre de vecteurs par jeton",
+ "Modules": "Modules",
+ "Source directory": "Dossier source",
+ "Destination directory": "Dossier destination",
+ "Create flipped copies": "Créer des copies en mirroir",
+ "Split oversized images into two": "Couper les images trop grandes en deux",
+ "Use BLIP for caption": "Utiliser BLIP pour les descriptions",
+ "Use deepbooru for caption": "Utiliser deepbooru pour les descriptions",
+ "Preprocess": "Pré-traite",
+ "Train an embedding; must specify a directory with a set of 1:1 ratio images": "Entrainer un embedding ; spécifiez un dossier contenant un ensemble d'images avec un ratio de 1:1",
+ "Embedding": "Embedding",
+ "Learning rate": "Vitesse d'apprentissage",
+ "Dataset directory": "Dossier des images d'entrée",
+ "Log directory": "Dossier de journalisation",
+ "Prompt template file": "Fichier modèle de requêtes",
+ "Max steps": "Étapes max.",
+ "Save an image to log directory every N steps, 0 to disable": "Enregistrer une image dans le dossier de journalisation toutes les N étapes, 0 pour désactiver",
+ "Save a copy of embedding to log directory every N steps, 0 to disable": "Enregistrer une copie de l'embedding dans le dossier de journalisation toutes les N étapes, 0 pour désactiver",
+ "Save images with embedding in PNG chunks": "Sauvegarder les images incluant l'embedding dans leur blocs PNG",
+ "Read parameters (prompt, etc...) from txt2img tab when making previews": "Lire les paramètres (requête, etc.) depuis l'onglet txt2img lors de la génération des previews",
+ "Train Hypernetwork": "Entrainer un Hypernetwork",
+ "Train Embedding": "Entrainer un Embedding",
+ "Apply settings": "Appliquer les paramètres",
+ "Saving images/grids": "Enregistrer les images/grilles",
+ "Always save all generated images": "Toujours enregistrer toutes les images",
+ "File format for images": "Format de fichier pour les images",
+ "Images filename pattern": "Motif pour le nom de fichier des images",
+ "Always save all generated image grids": "Toujours enregistrer toutes les grilles d'images générées",
+ "File format for grids": "Format de fichier pour les grilles",
+ "Add extended info (seed, prompt) to filename when saving grid": "Ajouter les informations étendues (valeur aléatoire, requête) aux noms de fichiers lors de l'enregistrement d'une grille",
+ "Do not save grids consisting of one picture": "Ne pas enregistrer les grilles contenant une seule image",
+ "Prevent empty spots in grid (when set to autodetect)": "Eviter les vides dans la grille (quand autodétection est choisie)",
+ "Grid row count; use -1 for autodetect and 0 for it to be same as batch size": "Nombre de colonnes de la grille; utilisez -1 pour autodétection et 0 pour qu'il soit égal à la taille du lot",
+ "Save text information about generation parameters as chunks to png files": "Enregistrer l'information du text des paramètres de génération en tant que blocs dans les fichiers PNG",
+ "Create a text file next to every image with generation parameters.": "Créer un fichier texte contenant les paramètres de génération à côté de chaque image",
+ "Save a copy of image before doing face restoration.": "Enregistrer une copie de l'image avant de lancer la restauration de visage",
+ "Quality for saved jpeg images": "Qualité pour les images jpeg enregistrées",
+ "If PNG image is larger than 4MB or any dimension is larger than 4000, downscale and save copy as JPG": "Si l'image PNG est plus grande que 4MB or l'une des ses dimensions supérieure à 4000, réduire sa taille et enregistrer une copie en JPG",
+ "Use original name for output filename during batch process in extras tab": "Utiliser un nom de fichier original pour les fichiers de sortie durant le traitement par lot dans l'onglet Extras",
+ "When using 'Save' button, only save a single selected image": "A l'utilisation du bouton `Enregistrer`, n'enregistrer que l'image séléctionnée",
+ "Do not add watermark to images": "Ne pas ajouter de filigrane aux images",
+ "Paths for saving": "Chemins pour l'enregistrement",
+ "Output directory for images; if empty, defaults to three directories below": "Dossier de sortie pour les images; si non spécifié, le chemin par défaut sera trois niveau en dessous",
+ "Output directory for txt2img images": "Dossier de sortie pour les images txt2img",
+ "Output directory for img2img images": "Dossier de sortie pour les images img2img",
+ "Output directory for images from extras tab": "Dossier de sortie pour les images de l'onglet Extras",
+ "Output directory for grids; if empty, defaults to two directories below": "Dossier de sortie pour les grilles; si non spécifié, le chemin par défaut sera deux niveau en dessous",
+ "Output directory for txt2img grids": "Dossier de sortie pour les grilles txt2img",
+ "Output directory for img2img grids": "Dossier de sortie pour les grilles img2img",
+ "Directory for saving images using the Save button": "Dossier de sauvegarde des images pour le bouton `Enregistrer`",
+ "Saving to a directory": "Enregistrer dans un dossier",
+ "Save images to a subdirectory": "Enregistrer les images dans un sous dossier",
+ "Save grids to a subdirectory": "Enregistrer les grilles dans un sous dossier",
+ "When using \"Save\" button, save images to a subdirectory": "Lors de l'utilisation du bouton \"Enregistrer\", sauvegarder les images dans un sous dossier",
+ "Directory name pattern": "Motif pour le nom des dossiers",
+ "Max prompt words for [prompt_words] pattern": "Maximum de mot pour le motif [prompt_words]",
+ "Upscaling": "Agrandissement",
+ "Tile size for ESRGAN upscalers. 0 = no tiling.": "Taille des tuile for les agrandisseurs ESRGAN. 0 = mode tuile désactivé.",
+ "Tile overlap, in pixels for ESRGAN upscalers. Low values = visible seam.": "Chevauchement des tuiles, en pixel pour l'agrandisseur ESRGAN. Valeur faible = couture visible",
+ "Tile size for all SwinIR.": "Taille de la tuile pour tous les agrandisseur SwinIR.",
+ "Tile overlap, in pixels for SwinIR. Low values = visible seam.": "Chevauchement de tuile, en pixels pour SwinIR. Valeur faible = couture visible",
+ "LDSR processing steps. Lower = faster": "Echantillon du traitement LDSR. Valeur faible = plus rapide",
+ "Upscaler for img2img": "Agrandisseur pour img2img",
+ "Upscale latent space image when doing hires. fix": "Agrandir l'image de l'espace latent lors de la correction haute résolution",
+ "Face restoration": "Restauration de visage",
+ "CodeFormer weight parameter; 0 = maximum effect; 1 = minimum effect": "Paramètre de poids pour CodeFormer; 0 = effet maximum ; 1 = effet minimum",
+ "Move face restoration model from VRAM into RAM after processing": "Déplacer le modèle de restauration de visage de la VRAM vers la RAM après traitement",
+ "System": "Système",
+ "VRAM usage polls per second during generation. Set to 0 to disable.": "Fréquence d'interrogation par seconde pendant la génération. Mettez la valeur à 0 pour désactiver.",
+ "Always print all generation info to standard output": "Toujours afficher toutes les informations de génération dans la sortie standard",
+ "Add a second progress bar to the console that shows progress for an entire job.": "Ajouter un seconde barre de progression dans la console montrant l'avancement pour un tâche complète.",
+ "Training": "Entrainement",
+ "Unload VAE and CLIP from VRAM when training": "Décharger VAE et CLIP de la VRAM pendant l'entrainement",
+ "Filename word regex": "Regex de mot",
+ "Filename join string": "Chaine de caractère pour lier les noms de fichier",
+ "Number of repeats for a single input image per epoch; used only for displaying epoch number": "Nombre de répétition pour une image unique par époque; utilisé seulement pour afficher le nombre d'époques",
+ "Save an csv containing the loss to log directory every N steps, 0 to disable": "Enregistrer un csv contenant la perte dans le dossier de journalisation toutes les N étapes, 0 pour désactiver",
+ "Stable Diffusion": "Stable Diffusion",
+ "Checkpoints to cache in RAM": "Checkpoint à mettre en cache dans la RAM",
+ "Hypernetwork strength": "Force de l'Hypernetwork",
+ "Apply color correction to img2img results to match original colors.": "Appliquer une correction de couleur aux résultats img2img afin de conserver les couleurs d'origine",
+ "Save a copy of image before applying color correction to img2img results": "Enregistrer une copie de l'image avant d'appliquer les résultats de la correction de couleur img2img",
+ "With img2img, do exactly the amount of steps the slider specifies (normally you'd do less with less denoising).": "Avec img2img, executer exactement le nombre d'étapes spécifiées par la glissière (normalement moins d'étapes sont executées quand la réduction du bruit est plus faible).",
+ "Enable quantization in K samplers for sharper and cleaner results. This may change existing seeds. Requires restart to apply.": "Activer la quantisation des échantillionneurs K pour des résultats plus nets et plus propres. Cela peut modifier les valeurs aléatoires existantes. Requiert un redémarrage pour être actif.",
+ "Emphasis: use (text) to make model pay more attention to text and [text] to make it pay less attention": "Emphase : utilisez (texte) afin de forcer le modèle à porter plus d'attention au texte et [texte] afin qu'il y porte moins attention",
+ "Use old emphasis implementation. Can be useful to reproduce old seeds.": "Utilisez l'ancienne méthode d'emphase. Peut être utile afin de reproduire d'anciennes valeurs aléatoires.",
+ "Make K-diffusion samplers produce same images in a batch as when making a single image": "Demander aux échantillionneurs K-diffusion de produire les mêmes dans un lot que lors de la génération d'une image unique",
+ "Increase coherency by padding from the last comma within n tokens when using more than 75 tokens": "Améliorer la cohérence en remplissant (padding) à partir de la dernière virgule dans les X jetons quand on en utilise plus de 75",
+ "Filter NSFW content": "Filtrer le contenu +18 (NSFW)",
+ "Stop At last layers of CLIP model": "S'arrêter aux derniers niveaux du modèle CLIP",
+ "Interrogate Options": "Options d'intérrogation",
+ "Interrogate: keep models in VRAM": "Interroger : conserver les modèles en VRAM",
+ "Interrogate: use artists from artists.csv": "Interroger : utiliser les artistes dans artists.csv",
+ "Interrogate: include ranks of model tags matches in results (Has no effect on caption-based interrogators).": "Interroger : inclure la correspondance du classement des labels de modèle dans les résultats (N'a pas d'effet sur les interrogateurs basés sur des descriptions) ",
+ "Interrogate: num_beams for BLIP": "Interroger : num_beams pour BLIP",
+ "Interrogate: minimum description length (excluding artists, etc..)": "Interroger : longueur minimale de la description (excluant les artistes, etc.)",
+ "Interrogate: maximum description length": "Interroger : longueur maximale de la description",
+ "CLIP: maximum number of lines in text file (0 = No limit)": "CLIP : nombre maximum de lignes dans le fichier texte (0 = pas de limite)",
+ "Interrogate: deepbooru score threshold": "Interroger : seuil du score deepbooru",
+ "Interrogate: deepbooru sort alphabetically": "Interroger : classement alphabétique deepbooru",
+ "use spaces for tags in deepbooru": "Utiliser des espaces pour les étiquettes dans deepbooru",
+ "escape (\\) brackets in deepbooru (so they are used as literal brackets and not for emphasis)": "échapper (\\) les crochets dans deepbooru (afin qu'ils puissent être utilisés littéralement et non pour mettre en emphase)",
+ "User interface": "Interface utilisateur",
+ "Show progressbar": "Afficher la barre de progression",
+ "Show image creation progress every N sampling steps. Set 0 to disable.": "Afficher l'état d'avancement de la création d'image toutes les X étapes d'échantillionnage. Utiliser 0 pour désactiver.",
+ "Show grid in results for web": "Afficher la grille dans les résultats web",
+ "Do not show any images in results for web": "N'afficher aucune image dans les résultats web'",
+ "Add model hash to generation information": "Ajouter le hash du modèle dans l'information de génération",
+ "Add model name to generation information": "Ajouter le nom du modèle dans l'information de génération",
+ "Font for image grids that have text": "Police pour les grilles d'images contenant du texte",
+ "Enable full page image viewer": "Activer l'affichage des images en plein écran",
+ "Show images zoomed in by default in full page image viewer": "Afficher les images zoomées par défaut lors de l'affichage en plein écran",
+ "Show generation progress in window title.": "Afficher l'avancement de la génération dans le titre de la fenêtre.",
+ "Quicksettings list": "Liste de réglages rapides",
+ "Localization (requires restart)": "Localisation (requiert un redémarrage)",
+ "Sampler parameters": "Paramètres de l'échantillionneur",
+ "Hide samplers in user interface (requires restart)": "Cacher les échantillonneurs dans l'interface utilisateur (requiert un redémarrage)",
+ "eta (noise multiplier) for DDIM": "eta (multiplicateur de bruit) pour DDIM",
+ "eta (noise multiplier) for ancestral samplers": "eta (multiplicateur de bruit) poru les échantillionneurs de type 'ancestral'",
+ "img2img DDIM discretize": "Discrétisation DDIM pour img2img",
+ "uniform": "uniforme",
+ "quad": "quad",
+ "sigma churn": "sigma churn",
+ "sigma tmin": "sigma tmin",
+ "sigma noise": "sigma noise",
+ "Eta noise seed delta": "Eta noise seed delta",
+ "Request browser notifications": "Demander les notifications au navigateur",
+ "Download localization template": "Télécharger le modèle de localisation",
+ "Reload custom script bodies (No ui updates, No restart)": "Recharger le contenu des scripts personnalisés (Pas de mise à jour de l'interface, Pas de redémarrage)",
+ "Restart Gradio and Refresh components (Custom Scripts, ui.py, js and css only)": "Redémarrer Gradio et rafraichir les composants (Scripts personnalisés, ui.py, js et css uniquement)",
+ "Prompt (press Ctrl+Enter or Alt+Enter to generate)": "Requête (Ctrl + Entrée ou Alt + Entrée pour générer)",
+ "Negative prompt (press Ctrl+Enter or Alt+Enter to generate)": "Requête négative (Ctrl + Entrée ou Alt + Entrée pour générer)",
+ "Add a random artist to the prompt.": "Ajouter un artiste aléatoire à la requête",
+ "Read generation parameters from prompt or last generation if prompt is empty into user interface.": "Lire les paramètres de génération depuis la requête, ou depuis la dernière génération si la requête est vide dans l'interface utilisateur.",
+ "Save style": "Sauvegarder le style",
+ "Apply selected styles to current prompt": "Appliquer les styles séléctionnés à la requête actuelle",
+ "Stop processing current image and continue processing.": "Arrêter le traitement de l'image actuelle et continuer le traitement.",
+ "Stop processing images and return any results accumulated so far.": "Arrêter le traitement des images et retourne les résultats accumulés depuis le début.",
+ "Style to apply; styles have components for both positive and negative prompts and apply to both": "Style à appliquer ; les styles sont composés de requêtes positives et négatives et s'appliquent au deux",
+ "Do not do anything special": "Ne rien faire de particulier",
+ "Which algorithm to use to produce the image": "Quel algorithme utiliser pour produire l'image",
+ "Euler Ancestral - very creative, each can get a completely different picture depending on step count, setting steps to higher than 30-40 does not help": "Euler Ancestral - très créatif, peut générer des images complètement différentes en fonction du nombre d'étapes, utiliser plus de 30 à 40 étapes n'améliore pas le résultat",
+ "Denoising Diffusion Implicit Models - best at inpainting": "Modèles implicite de réduction du bruit à diffusion - utile pour l'inpainting",
+ "Produce an image that can be tiled.": "Produit une image qui peut être bouclée (tuile).",
+ "Use a two step process to partially create an image at smaller resolution, upscale, and then improve details in it without changing composition": "Utilise un processus en deux étapes afin de créer partiellement une image dans une résolution plus faible, l'agrandir et améliorer ses détails sans modifier la composition",
+ "Determines how little respect the algorithm should have for image's content. At 0, nothing will change, and at 1 you'll get an unrelated image. With values below 1.0, processing will take less steps than the Sampling Steps slider specifies.": "Détermine à quel point l'algorithme doit respecter le contenu de l'image. A 0 rien ne changera, à 1 l'image sera entièrement différente. Avec des valeurs inférieures à 1.0 le traitement utilisera moins d'étapes que ce que la glissière Étapes d'échantillionnage spécifie. ",
+ "How many batches of images to create": "Combien de lots d'images créer",
+ "How many image to create in a single batch": "Combien d'images créer par lot",
+ "Classifier Free Guidance Scale - how strongly the image should conform to prompt - lower values produce more creative results": "Classifier Free Guidance Scale - spécifie à quel point l'image doit se conformer à la requête - des valeurs plus faibles produisent des résultats plus créatifs",
+ "A value that determines the output of random number generator - if you create an image with same parameters and seed as another image, you'll get the same result": "Une valeur qui détermine la sortie du générateur de nombres aléatoires - si vous créez une image avec les mêmes paramètres et valeur aléatoire qu'une autre, le résultat sera identique",
+ "Set seed to -1, which will cause a new random number to be used every time": "Passer la valeur aléatoire à -1, cela causera qu'un nombre aléatoire différent sera utilisé à chaque fois",
+ "Reuse seed from last generation, mostly useful if it was randomed": "Réutiliser la valeur aléatoire de la dernière génération, généralement utile uniquement si elle était randomisée",
+ "Seed of a different picture to be mixed into the generation.": "Valeur aléatoire d'une image différente à mélanger dans la génération",
+ "How strong of a variation to produce. At 0, there will be no effect. At 1, you will get the complete picture with variation seed (except for ancestral samplers, where you will just get something).": "Force de la variation à produire. A 0 il n'y aura pas d'effet. A 1 l'image sera composée uniquement de la valeur aléatoire variable spécifiée (à l'exception des échantillionneurs `ancestral`)",
+ "Make an attempt to produce a picture similar to what would have been produced with same seed at specified resolution": "Essayer de produire une image similaire à ce qu'elle aurait été avec la même valeur aléatoire, mais dans la résolution spécifiée",
+ "Separate values for X axis using commas.": "Séparer les valeurs pour l'axe X par des virgules",
+ "Separate values for Y axis using commas.": "Séparer les valeurs pour l'axe Y par des virgules",
+ "Write image to a directory (default - log/images) and generation parameters into csv file.": "Ecrire l'image dans un dossier (par défaut - log/images) et les paramètres de génération dans un fichier csv.",
+ "Open images output directory": "Ouvrir le dossier de sortie des images",
+ "How much to blur the mask before processing, in pixels.": "Quantité de flou à appliquer au masque avant traitement, en pixels",
+ "What to put inside the masked area before processing it with Stable Diffusion.": "Avec quoi remplir la zone masquée avant traitement par Stable Diffusion.",
+ "fill it with colors of the image": "remplir avec les couleurs de l'image",
+ "keep whatever was there originally": "conserver ce qui était présent à l'origine",
+ "fill it with latent space noise": "remplir avec le bruit de l'espace latent",
+ "fill it with latent space zeroes": "remplir avec des zéros dans l'espace latent",
+ "Upscale masked region to target resolution, do inpainting, downscale back and paste into original image": "Agrandir la région masquées à la résolution cible, exécuter l'inpainting, réduire à nouveau puis coller dans l'image originale",
+ "Resize image to target resolution. Unless height and width match, you will get incorrect aspect ratio.": "Redimensionner l'image dans la résolution cible. A moins que la hauteur et la largeur coincident le ratio de l'image sera incorrect.",
+ "Resize the image so that entirety of target resolution is filled with the image. Crop parts that stick out.": "Redimensionner l'image afin que l'entièreté de la résolution cible soit remplie par l'image. Recadrer les parties qui dépassent.",
+ "Resize the image so that entirety of image is inside target resolution. Fill empty space with image's colors.": "Redimensionner l'image afin que l'entièreté de l'image soit contenue dans la résolution cible. Remplir l'espace vide avec les couleurs de l'image.",
+ "How many times to repeat processing an image and using it as input for the next iteration": "Combien de fois répéter le traitement d'une image et l'utiliser comme entrée pour la prochaine itération",
+ "In loopback mode, on each loop the denoising strength is multiplied by this value. <1 means decreasing variety so your sequence will converge on a fixed picture. >1 means increasing variety so your sequence will become more and more chaotic.": "En mode bouclage (Loopback), à chaque tour de la boucle la force du réducteur de bruit est multipliée par cette valeur. <1 signifie réduire la variation donc votre séquence convergera vers une image fixe. >1 signifie augmenter la variation donc votre séquence deviendra de plus en plus chaotique. ",
+ "For SD upscale, how much overlap in pixels should there be between tiles. Tiles overlap so that when they are merged back into one picture, there is no clearly visible seam.": "Pour l'agrandissement SD, de combien les tuiles doivent se chevaucher, en pixels. Les tuiles se chevauchent de manière à ce qu'il n'y ait pas de couture visible une fois fusionnées en une image. ",
+ "A directory on the same machine where the server is running.": "Un dossier sur la même machine où le serveur tourne.",
+ "Leave blank to save images to the default path.": "Laisser vide pour sauvegarder les images dans le chemin par défaut.",
+ "Result = A * (1 - M) + B * M": "Résultat = A * (1 - M) + B * M",
+ "Result = A + (B - C) * M": "Résultat = A + (B - C) * M",
+ "Path to directory with input images": "Chemin vers le dossier contenant les images d'entrée",
+ "Path to directory where to write outputs": "Chemin vers le dossier où écrire les sorties",
+ "Use following tags to define how filenames for images are chosen: [steps], [cfg], [prompt], [prompt_no_styles], [prompt_spaces], [width], [height], [styles], [sampler], [seed], [model_hash], [prompt_words], [date], [datetime], [job_timestamp]; leave empty for default.": "Utiliser les étiquettes suivantes pour définir le nom des images : [steps], [cfg], [prompt], [prompt_no_styles], [prompt_spaces], [width], [height], [styles], [sampler], [seed], [model_hash], [prompt_words], [date], [datetime], [job_timestamp] ; laisser vide pour le nom par défaut.",
+ "If this option is enabled, watermark will not be added to created images. Warning: if you do not add watermark, you may be behaving in an unethical manner.": "Si cette option est activée le filigrane ne sera pas ajouté au images crées. Attention : si vous n'ajoutez pas de filigrane vous pourriez vous comporter de manière non éthique.",
+ "Use following tags to define how subdirectories for images and grids are chosen: [steps], [cfg], [prompt], [prompt_no_styles], [prompt_spaces], [width], [height], [styles], [sampler], [seed], [model_hash], [prompt_words], [date], [datetime], [job_timestamp]; leave empty for default.": "Utiliser les étiquettes suivantes pour définir le nom des sous dossiers pour les images et les grilles : [steps], [cfg], [prompt], [prompt_no_styles], [prompt_spaces], [width], [height], [styles], [sampler], [seed], [model_hash], [prompt_words], [date], [datetime], [job_timestamp] ; laisser vide pour le nom par défaut.",
+ "Restore low quality faces using GFPGAN neural network": "Restaurer les visages de basse qualité en utilisant le réseau neuronal GFPGAN",
+ "This regular expression will be used extract words from filename, and they will be joined using the option below into label text used for training. Leave empty to keep filename text as it is.": "Cette expression régulière sera utilisée pour extraire les mots depuis le nom de fichier ; ils seront joints en utilisant l'option ci dessous en une étiquette utilisée pour l'entrainement. Laisser vide pour conserver le texte du nom de fichier tel quel.",
+ "This string will be used to join split words into a single line if the option above is enabled.": "Cette chaine de caractères sera utilisée pour joindre les mots séparés en une ligne unique si l'option ci dessus est activée.",
+ "List of setting names, separated by commas, for settings that should go to the quick access bar at the top, rather than the usual setting tab. See modules/shared.py for setting names. Requires restarting to apply.": "Liste des noms de paramètres, séparés par des virgules, pour les paramètres de la barre d'accès rapide en haut de page, plutôt que dans la page habituelle des paramètres. Voir modules/shared.py pour définir les noms. Requiert un redémarrage pour s'appliquer.",
+ "If this values is non-zero, it will be added to seed and used to initialize RNG for noises when using samplers with Eta. You can use this to produce even more variation of images, or you can use this to match images of other software if you know what you are doing.": "Si cette valeur est différente de zéro elle sera ajoutée à la valeur aléatoire et utilisée pour initialiser le générateur de nombres aléatoires du bruit lors de l'utilisation des échantillonneurs supportants Eta. Vous pouvez l'utiliser pour produire encore plus de variation dans les images, ou vous pouvez utiliser ceci pour faire correspondre les images avec d'autres logiciels si vous savez ce que vous faites.",
+ "Enable Autocomplete": "Activer l'autocomplétion",
+ "/0.0": "/0.0"
+}
\ No newline at end of file
--
cgit v1.2.1
From d699720254365069866eafcdc519743664075a6d Mon Sep 17 00:00:00 2001
From: AUTOMATIC <16777216c@gmail.com>
Date: Sat, 29 Oct 2022 22:39:10 +0300
Subject: add translators to codeowners with their respective translation files
---
CODEOWNERS | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/CODEOWNERS b/CODEOWNERS
index 12e87aae..a48d8012 100644
--- a/CODEOWNERS
+++ b/CODEOWNERS
@@ -1,3 +1,13 @@
* @AUTOMATIC1111
-
-/localizations/ko_KR.json @36DB
\ No newline at end of file
+/localizations/ar_AR.json @xmodar @blackneoo
+/localizations/de_DE.json @LunixWasTaken
+/localizations/es_ES.json @innovaciones
+/localizations/fr_FR.json @tumbly
+/localizations/it_IT.json @EugenioBuffo
+/localizations/ja_JP.json @yuuki76
+/localizations/ko_KR.json @36DB
+/localizations/pt_BR.json @M-art-ucci
+/localizations/ru_RU.json @kabachuha
+/localizations/tr_TR.json @camenduru
+/localizations/zh_CN.json @dtlnor @bgluminous
+/localizations/zh_TW.json @benlisquare
--
cgit v1.2.1
From f62db4d5c753bc32d2ae166606ce41f4c5fa5c43 Mon Sep 17 00:00:00 2001
From: evshiron
Date: Sun, 30 Oct 2022 03:55:43 +0800
Subject: fix progress response model
---
modules/api/api.py | 30 ------------------------------
modules/api/models.py | 8 ++++----
2 files changed, 4 insertions(+), 34 deletions(-)
diff --git a/modules/api/api.py b/modules/api/api.py
index e93cddcb..7e8522a2 100644
--- a/modules/api/api.py
+++ b/modules/api/api.py
@@ -1,33 +1,3 @@
-# import time
-
-# from modules.api.models import StableDiffusionTxt2ImgProcessingAPI, StableDiffusionImg2ImgProcessingAPI
-# from modules.processing import StableDiffusionProcessingTxt2Img, StableDiffusionProcessingImg2Img, process_images
-# from modules.sd_samplers import all_samplers
-# from modules.extras import run_pnginfo
-# import modules.shared as shared
-# from modules import devices
-# import uvicorn
-# from fastapi import Body, APIRouter, HTTPException
-# from fastapi.responses import JSONResponse
-# from pydantic import BaseModel, Field, Json
-# from typing import List
-# import json
-# import io
-# import base64
-# from PIL import Image
-
-# sampler_to_index = lambda name: next(filter(lambda row: name.lower() == row[1].name.lower(), enumerate(all_samplers)), None)
-
-# class TextToImageResponse(BaseModel):
-# images: List[str] = Field(default=None, title="Image", description="The generated image in base64 format.")
-# parameters: Json
-# info: Json
-
-# class ImageToImageResponse(BaseModel):
-# images: List[str] = Field(default=None, title="Image", description="The generated image in base64 format.")
-# parameters: Json
-# info: Json
-
import time
import uvicorn
from gradio.processing_utils import encode_pil_to_base64, decode_base64_to_file, decode_base64_to_image
diff --git a/modules/api/models.py b/modules/api/models.py
index 8d4abc39..e1762fb9 100644
--- a/modules/api/models.py
+++ b/modules/api/models.py
@@ -1,6 +1,6 @@
import inspect
from click import prompt
-from pydantic import BaseModel, Field, create_model
+from pydantic import BaseModel, Field, Json, create_model
from typing import Any, Optional
from typing_extensions import Literal
from inflection import underscore
@@ -158,6 +158,6 @@ class PNGInfoResponse(BaseModel):
info: str = Field(title="Image info", description="A string with all the info the image had")
class ProgressResponse(BaseModel):
- progress: float
- eta_relative: float
- state: dict
+ progress: float = Field(title="Progress", description="The progress with a range of 0 to 1")
+ eta_relative: float = Field(title="ETA in secs")
+ state: Json
--
cgit v1.2.1
From e9c6c2a51f972fd7cd88ea740ade4ac3d8108b67 Mon Sep 17 00:00:00 2001
From: evshiron
Date: Sun, 30 Oct 2022 04:02:56 +0800
Subject: add description for state field
---
modules/api/models.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/api/models.py b/modules/api/models.py
index e1762fb9..709ab5a6 100644
--- a/modules/api/models.py
+++ b/modules/api/models.py
@@ -160,4 +160,4 @@ class PNGInfoResponse(BaseModel):
class ProgressResponse(BaseModel):
progress: float = Field(title="Progress", description="The progress with a range of 0 to 1")
eta_relative: float = Field(title="ETA in secs")
- state: Json
+ state: Json = Field(title="State", description="The current state snapshot")
--
cgit v1.2.1
From 88f46a5bec610cf03641f18becbe3deda541e982 Mon Sep 17 00:00:00 2001
From: evshiron
Date: Sun, 30 Oct 2022 05:04:29 +0800
Subject: update progress response model
---
modules/api/api.py | 6 +++---
modules/api/models.py | 4 ++--
modules/shared.py | 4 ++--
3 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/modules/api/api.py b/modules/api/api.py
index 7e8522a2..5912d289 100644
--- a/modules/api/api.py
+++ b/modules/api/api.py
@@ -61,7 +61,7 @@ class Api:
self.app.add_api_route("/sdapi/v1/extra-single-image", self.extras_single_image_api, methods=["POST"], response_model=ExtrasSingleImageResponse)
self.app.add_api_route("/sdapi/v1/extra-batch-images", self.extras_batch_images_api, methods=["POST"], response_model=ExtrasBatchImagesResponse)
self.app.add_api_route("/sdapi/v1/png-info", self.pnginfoapi, methods=["POST"], response_model=PNGInfoResponse)
- self.app.add_api_route("/sdapi/v1/progress", self.progressapi, methods=["GET"])
+ self.app.add_api_route("/sdapi/v1/progress", self.progressapi, methods=["GET"], response_model=ProgressResponse)
def text2imgapi(self, txt2imgreq: StableDiffusionTxt2ImgProcessingAPI):
sampler_index = sampler_to_index(txt2imgreq.sampler_index)
@@ -171,7 +171,7 @@ class Api:
# copy from check_progress_call of ui.py
if shared.state.job_count == 0:
- return ProgressResponse(progress=0, eta_relative=0, state=shared.state.js())
+ return ProgressResponse(progress=0, eta_relative=0, state=shared.state.dict())
# avoid dividing zero
progress = 0.01
@@ -187,7 +187,7 @@ class Api:
progress = min(progress, 1)
- return ProgressResponse(progress=progress, eta_relative=eta_relative, state=shared.state.js())
+ return ProgressResponse(progress=progress, eta_relative=eta_relative, state=shared.state.dict())
def launch(self, server_name, port):
self.app.include_router(self.router)
diff --git a/modules/api/models.py b/modules/api/models.py
index 709ab5a6..0ab85ec5 100644
--- a/modules/api/models.py
+++ b/modules/api/models.py
@@ -1,6 +1,6 @@
import inspect
from click import prompt
-from pydantic import BaseModel, Field, Json, create_model
+from pydantic import BaseModel, Field, create_model
from typing import Any, Optional
from typing_extensions import Literal
from inflection import underscore
@@ -160,4 +160,4 @@ class PNGInfoResponse(BaseModel):
class ProgressResponse(BaseModel):
progress: float = Field(title="Progress", description="The progress with a range of 0 to 1")
eta_relative: float = Field(title="ETA in secs")
- state: Json = Field(title="State", description="The current state snapshot")
+ state: dict = Field(title="State", description="The current state snapshot")
diff --git a/modules/shared.py b/modules/shared.py
index 0f4c035d..f7b0990c 100644
--- a/modules/shared.py
+++ b/modules/shared.py
@@ -147,7 +147,7 @@ class State:
def get_job_timestamp(self):
return datetime.datetime.now().strftime("%Y%m%d%H%M%S") # shouldn't this return job_timestamp?
- def js(self):
+ def dict(self):
obj = {
"skipped": self.skipped,
"interrupted": self.skipped,
@@ -158,7 +158,7 @@ class State:
"sampling_steps": self.sampling_steps,
}
- return json.dumps(obj)
+ return obj
state = State()
--
cgit v1.2.1
From 9f104b53c425e248595e5b6481336d2a339e015e Mon Sep 17 00:00:00 2001
From: evshiron
Date: Sun, 30 Oct 2022 05:19:17 +0800
Subject: preview current image when opts.show_progress_every_n_steps is
enabled
---
modules/api/api.py | 8 ++++++--
modules/api/models.py | 1 +
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/modules/api/api.py b/modules/api/api.py
index 5912d289..e960bb7b 100644
--- a/modules/api/api.py
+++ b/modules/api/api.py
@@ -1,7 +1,7 @@
import time
import uvicorn
from gradio.processing_utils import encode_pil_to_base64, decode_base64_to_file, decode_base64_to_image
-from fastapi import APIRouter, HTTPException
+from fastapi import APIRouter, Depends, HTTPException
import modules.shared as shared
from modules import devices
from modules.api.models import *
@@ -187,7 +187,11 @@ class Api:
progress = min(progress, 1)
- return ProgressResponse(progress=progress, eta_relative=eta_relative, state=shared.state.dict())
+ current_image = None
+ if shared.state.current_image:
+ current_image = encode_pil_to_base64(shared.state.current_image)
+
+ return ProgressResponse(progress=progress, eta_relative=eta_relative, state=shared.state.dict(), current_image=current_image)
def launch(self, server_name, port):
self.app.include_router(self.router)
diff --git a/modules/api/models.py b/modules/api/models.py
index 0ab85ec5..c8bc719a 100644
--- a/modules/api/models.py
+++ b/modules/api/models.py
@@ -161,3 +161,4 @@ class ProgressResponse(BaseModel):
progress: float = Field(title="Progress", description="The progress with a range of 0 to 1")
eta_relative: float = Field(title="ETA in secs")
state: dict = Field(title="State", description="The current state snapshot")
+ current_image: str = Field(default=None, title="Current image", description="The current image in base64 format. opts.show_progress_every_n_steps is required for this to work.")
--
cgit v1.2.1
From 22a54b058211d7b067dce92a3c1dad8d5849da70 Mon Sep 17 00:00:00 2001
From: Strothis
Date: Sat, 29 Oct 2022 23:43:30 +0200
Subject: Fix German Localization
---
localizations/de_DE.json | 525 +++++++++++++++++++++++++----------------------
1 file changed, 282 insertions(+), 243 deletions(-)
diff --git a/localizations/de_DE.json b/localizations/de_DE.json
index b52fa681..56d54b54 100644
--- a/localizations/de_DE.json
+++ b/localizations/de_DE.json
@@ -1,42 +1,41 @@
-
{
"⤡": "⤡",
"⊞": "⊞",
"×": "×",
"❮": "❮",
"❯": "❯",
+ "view": "API ",
+ "api": "anzeigen",
+ "•": " • ",
+ "built with gradio": "Mit Gradio erstellt",
"Loading...": "Lädt...",
- "view": "zeigen",
- "api": "api",
- "•": "•",
- "built with gradio": "Erstellt mit Gradio",
- "Stable Diffusion checkpoint": "Stable Diffusion checkpoint",
+ "Stable Diffusion checkpoint": "Stable Diffusion Checkpoint",
"txt2img": "txt2img",
"img2img": "img2img",
"Extras": "Extras",
"PNG Info": "PNG Info",
- "Checkpoint Merger": "Checkpoint Merger",
+ "Checkpoint Merger": "Checkpoint Fusion",
"Train": "Trainieren",
"Settings": "Einstellungen",
"Prompt": "Prompt",
- "Negative prompt": "Negativer Prompt",
+ "Negative prompt": "Negative Prompt",
"Run": "Ausführen",
"Skip": "Überspringen",
"Interrupt": "Abbrechen",
"Generate": "Generieren",
- "Style 1": "Style 1",
- "Style 2": "Style 2",
+ "Style 1": "Stil 1",
+ "Style 2": "Stil 2",
"Label": "Bezeichnung",
"File": "Datei",
"Drop File Here": "Datei hier ablegen",
"-": "-",
- "o": "o",
- "Click to Upload": "Klicken zum Hochladen",
+ "o": "oder",
+ "Click to Upload": "Hochladen",
"Image": "Bild",
"Check progress": "Fortschitt prüfen",
"Check progress (first)": "Fortschritt prüfen (Initial)",
- "Sampling Steps": "Sampling Steps",
- "Sampling method": "Sampling method",
+ "Sampling Steps": "Samplingschritte",
+ "Sampling method": "Samplingmethode",
"Euler a": "Euler a",
"Euler": "Euler",
"LMS": "LMS",
@@ -54,37 +53,37 @@
"Height": "Höhe",
"Restore faces": "Gesichter wiederherstellen",
"Tiling": "Kacheln",
- "Highres. fix": "Highres. fix",
- "Firstpass width": "Breite erstdurchlauf",
- "Firstpass height": "Höhe erstdurchlauf",
- "Denoising strength": "Denoising stärke",
- "Batch count": "Batch anzahl",
- "Batch size": "Batch größe",
- "CFG Scale": "CFG Scale",
+ "Highres. fix": "Highres. Fix",
+ "Firstpass width": "Breite Erstdurchlauf",
+ "Firstpass height": "Höhe Erstdurchlauf",
+ "Denoising strength": "Denoisingstärke",
+ "Batch count": "Batchanzahl",
+ "Batch size": "Batchgröße",
+ "CFG Scale": "CFG-Skala",
"Seed": "Seed",
"Extra": "Extra",
- "Variation seed": "Variation seed",
- "Variation strength": "Variation strength",
- "Resize seed from width": "Seed von der Breite her ändern",
- "Resize seed from height": " Seed von der Breite her ändern",
- "Script": "Script",
+ "Variation seed": "Variationsseed",
+ "Variation strength": "Variationsstärke",
+ "Resize seed from width": "Seed von Breite ändern",
+ "Resize seed from height": "Seed von Höhe ändern",
+ "Script": "Skript",
"None": "Nichts",
- "Prompt matrix": "Prompt matrix",
- "Prompts from file or textbox": "Prompts von Datei oder Textbox",
- "X/Y plot": "X/Y graph",
+ "Prompt matrix": "Promptmatrix",
+ "Prompts from file or textbox": "Prompts aus Datei oder Textfeld",
+ "X/Y plot": "X/Y Graf",
"Put variable parts at start of prompt": "Variable teile am start des Prompt setzen",
- "Show Textbox": "Textbox Anzeigen",
- "File with inputs": "Datei mit Inputwerten",
- "Prompts": "Prompts",
- "X type": "X typ",
+ "Iterate seed every line": "Iterate seed every line",
+ "List of prompt inputs": "List of prompt inputs",
+ "Upload prompt inputs": "Upload prompt inputs",
+ "X type": "X-Typ",
"Nothing": "Nichts",
"Var. seed": "Var. seed",
"Var. strength": "Var. strength",
- "Steps": "Steps",
- "Prompt S/R": "Prompt S/R",
- "Prompt order": "Prompt order",
+ "Steps": "Schritte",
+ "Prompt S/R": "Prompt Suchen/Ersetzen",
+ "Prompt order": "Promptreihenfolge",
"Sampler": "Sampler",
- "Checkpoint name": "Checkpoint name",
+ "Checkpoint name": "Checkpointname",
"Hypernetwork": "Hypernetwork",
"Hypernet str.": "Hypernet str.",
"Sigma Churn": "Sigma Churn",
@@ -94,76 +93,78 @@
"Eta": "Eta",
"Clip skip": "Clip skip",
"Denoising": "Denoising",
- "X values": "X values",
- "Y type": "Y type",
- "Y values": "Y values",
+ "Cond. Image Mask Weight": "Cond. Image Mask Weight",
+ "X values": "X-Werte",
+ "Y type": "Y-Typ",
+ "Y values": "Y-Werte",
"Draw legend": "Legende zeichnen",
"Include Separate Images": "Seperate Bilder hinzufügen",
"Keep -1 for seeds": "-1 als Seed behalten",
- "Drop Image Here": "Bild hier ablegen",
"Save": "Speichern",
- "Send to img2img": "Senden an img2img",
- "Send to inpaint": "Senden an inpaint",
- "Send to extras": "Senden an extras",
- "Make Zip when Save?": "Zip beim speichern erstellen?",
- "Textbox": "Textbox",
- "Interrogate\nCLIP": "CLIP\nAbfragen",
+ "Send to img2img": "An img2img senden",
+ "Send to inpaint": "An Inpaint senden",
+ "Send to extras": "An Extras senden",
+ "Make Zip when Save?": "Zip beim Speichern erstellen?",
+ "Textbox": "Textfeld",
+ "Interrogate\nCLIP": "Interrogate\nCLIP",
+ "Interrogate\nDeepBooru": "Interrogate\nDeepBooru",
"Inpaint": "Inpaint",
"Batch img2img": "Batch img2img",
"Image for img2img": "Bild für img2img",
- "Image for inpainting with mask": "Bild für inpainting mit maske",
+ "Drop Image Here": "Bild hier ablegen",
+ "Image for inpainting with mask": "Bild für inpainting mit Maske",
"Mask": "Maske",
- "Mask blur": "Masken Unschärfe",
- "Mask mode": "Masken modus",
+ "Mask blur": "Maskenunschärfe",
+ "Mask mode": "Maskenmodus",
"Draw mask": "Maske zeichnen",
- "Upload mask": "Maske Hochladen",
- "Masking mode": "Modus zum Maskieren",
- "Inpaint masked": "Inpaint maskiertes",
- "Inpaint not masked": "Inpaint nicht maskiertes",
+ "Upload mask": "Maske hochladen",
+ "Masking mode": "Maskierungsmodus",
+ "Inpaint masked": "Maskiertes inpainten",
+ "Inpaint not masked": "Nicht maskiertes inpainten",
"Masked content": "Maskierter Inhalt",
"fill": "ausfüllen",
"original": "original",
"latent noise": "latent noise",
"latent nothing": "latent nothing",
"Inpaint at full resolution": "Inpaint mit voller Auflösung",
- "Inpaint at full resolution padding, pixels": "Inpaint mit voller Auflösung Abstand, Pixels",
+ "Inpaint at full resolution padding, pixels": "Inpaint bei voller Auflösung Abstand, Pixel",
"Process images in a directory on the same machine where the server is running.": "Bilder in einem Verzeichnis auf demselben Rechner verarbeiten, auf dem der Server läuft.",
"Use an empty output directory to save pictures normally instead of writing to the output directory.": "Ein leeres Ausgabeverzeichnis verwenden, um Bilder normal zu speichern, anstatt in das Ausgabeverzeichnis zu schreiben.",
- "Input directory": "Input Verzeichnis",
- "Output directory": "Output verzeichnis",
- "Resize mode": "Größe anpassen - Modus",
- "Just resize": "Nur größe anpassen",
- "Crop and resize": "Zuschneiden und größe anpassen",
+ "Input directory": "Eingabeverzeichnis",
+ "Output directory": "Ausgabeverzeichnis",
+ "Resize mode": "Größenänderungsmodus",
+ "Just resize": "Nur Größe anpassen",
+ "Crop and resize": "Zuschneiden und Größe anpassen",
"Resize and fill": "Größe anpassen und ausfüllen",
- "img2img alternative test": "img2img alternative test",
+ "img2img alternative test": "img2img alternativer Test",
"Loopback": "Loopback",
"Outpainting mk2": "Outpainting mk2",
"Poor man's outpainting": "Poor man's outpainting",
- "SD upscale": "SD upscale",
- "should be 2 or lower.": "sollte 2 oder niedriger sein.",
- "Override `Sampling method` to Euler?(this method is built for it)": "`Sampling method` a Euler überschreiben? (diese methode is dafür ausgelegt)",
- "Override `prompt` to the same value as `original prompt`?(and `negative prompt`)": "`prompt` zum gleichen wert wie `Originaler prompt` überschreiben? (und `Negativer prompt`)",
- "Original prompt": "Originaler Prompt",
- "Original negative prompt": "Originaler negativer prompt",
- "Override `Sampling Steps` to the same value as `Decode steps`?": "`Sampling Steps` zum gleichen wert wie `Decode steps` überschreiben?",
- "Decode steps": "Decode steps",
- "Override `Denoising strength` to 1?": "`Denoising strength` zu 1 überschreiben?",
- "Decode CFG scale": "Decode CFG scale",
+ "SD upscale": "SD-Upscale",
+ "should be 2 or lower.": "Sollte 2 oder niedriger sein.",
+ "Override `Sampling method` to Euler?(this method is built for it)": "`Samplingmethode` auf Euler setzen? (Diese Methode is dafür ausgelegt)",
+ "Override `prompt` to the same value as `original prompt`?(and `negative prompt`)": "`Prompt` auf denselben Wert wie `Originale Prompt` (und `Negative Prompt`) setzen?",
+ "Original prompt": "Originale Prompt",
+ "Original negative prompt": "Originale negative Prompt",
+ "Override `Sampling Steps` to the same value as `Decode steps`?": "`Samplingschritte` auf denselben Wert wie `Dekodierschritte` setzen?",
+ "Decode steps": "Dekodierschritte",
+ "Override `Denoising strength` to 1?": "`Denoisingstärke auf 1 setzen?",
+ "Decode CFG scale": "CFG-Skala dekodieren",
"Randomness": "Zufälligkeit",
- "Sigma adjustment for finding noise for image": "Sigma anpassungen um noise für Bilder zu finden.",
- "Loops": "Loops",
+ "Sigma adjustment for finding noise for image": "Sigma-Anpassung für die Suche nach Noise des Bildes",
+ "Loops": "Schleifen",
"Denoising strength change factor": "Denoising strength change factor",
- "Recommended settings: Sampling Steps: 80-100, Sampler: Euler a, Denoising strength: 0.8": "Empfohlene Einstellungen: Sampling Schritte: 80-100, Sampler Methode: Euler a, Denoising stärke: 0.8",
- "Pixels to expand": "Anz. Pixel zum erweitern",
+ "Recommended settings: Sampling Steps: 80-100, Sampler: Euler a, Denoising strength: 0.8": "Empfohlene Einstellungen: Samplingschritte: 80-100, Samplermethode: Euler a, Denoisingstärke: 0.8",
+ "Pixels to expand": "Pixel zum Erweitern",
"Outpainting direction": "Outpainting Richtung",
"left": "Links",
"right": "Rechts",
"up": "Hoch",
"down": "Runter",
- "Fall-off exponent (lower=higher detail)": "Fall-off exponent (weniger=mehr details)",
- "Color variation": "Farb variationen",
- "Will upscale the image to twice the dimensions; use width and height sliders to set tile size": "Skaliert das Bild auf die doppelte Größe; Benutz die Schieberegler für Breite und Höhe, um die Kachelgröße einzustellen",
- "Tile overlap": "Kacheln überlappungen",
+ "Fall-off exponent (lower=higher detail)": "Abfallexponent (niedriger=mehr Details)",
+ "Color variation": "Farbabweichung",
+ "Will upscale the image to twice the dimensions; use width and height sliders to set tile size": "Skaliert das Bild auf die doppelte Größe; Benutze die Schieberegler für Breite und Höhe, um die Kachelgröße einzustellen",
+ "Tile overlap": "Kachelüberlappung",
"Upscaler": "Upscaler",
"Lanczos": "Lanczos",
"LDSR": "LDSR",
@@ -171,249 +172,287 @@
"ScuNET GAN": "ScuNET GAN",
"ScuNET PSNR": "ScuNET PSNR",
"ESRGAN_4x": "ESRGAN_4x",
- "Single Image": "Ein Bild",
- "Batch Process": "Massenverarbeitung",
- "Batch from Directory": "Massenverarbeitung vom Verzeichnis",
+ "Single Image": "Einzelnes Bild",
+ "Batch Process": "Batchverarbeitung",
+ "Batch from Directory": "Batchverarbeitung aus Verzeichnis",
"Source": "Quelle",
"Show result images": "Bildergebnisse zeigen",
- "Scale by": "Skalieren von",
+ "Scale by": "Skalieren um",
"Scale to": "Skalieren zu",
"Resize": "Größe anpassen",
"Crop to fit": "Zuschneiden damit es passt",
- "Upscaler 2 visibility": "Upscaler 2 sichtbarkeit",
- "GFPGAN visibility": "GFPGAN sichtbarkeit",
- "CodeFormer visibility": "CodeFormer sichtbarkeit",
- "CodeFormer weight (0 = maximum effect, 1 = minimum effect)": "CodeFormer gewicht (0 = maximaler effekt, 1 = minimalster effekt)",
- "Open output directory": "Zielverzeichnis öffnen",
- "Send to txt2img": "Senden an txt2img",
+ "Upscaler 2 visibility": "Upscaler 2 Sichtbarkeit",
+ "GFPGAN visibility": "GFPGAN Sichtbarkeit",
+ "CodeFormer visibility": "CodeFormer Sichtbarkeit",
+ "CodeFormer weight (0 = maximum effect, 1 = minimum effect)": "CodeFormer Gewichtung (0 = maximale Wirkung, 1 = minimale Wirkung)",
+ "Upscale Before Restoring Faces": "Upscale Before Restoring Faces",
+ "Send to txt2img": "An txt2img senden",
"A merger of the two checkpoints will be generated in your": "Die zusammgeführten Checkpoints werden gespeichert unter",
- "checkpoint": "checkpoint",
+ "checkpoint": "Checkpoint",
"directory.": "Verzeichnis.",
"Primary model (A)": "Primäres Modell (A)",
"Secondary model (B)": "Sekundäres Modell (B)",
"Tertiary model (C)": "Tertiäres Modell (C)",
"Custom Name (Optional)": "Eigener Name (Optional)",
- "Multiplier (M) - set to 0 to get model A": "Multiplier (M) - auf 0 setzen um Modell A zu bekommen",
+ "Multiplier (M) - set to 0 to get model A": "Multiplikator (M) - auf 0 setzen, um Modell A zu erhalten",
"Interpolation Method": "Interpolationsmethode",
"Weighted sum": "Weighted sum",
"Add difference": "Add difference",
"Save as float16": "Speichern als float16",
"See": "Siehe ",
- "wiki": "wiki ",
- "for detailed explanation.": "für eine detailierte erklärung.",
+ "wiki": "Wiki ",
+ "for detailed explanation.": "für eine ausführliche Erklärung.",
"Create embedding": "Embedding erstellen",
"Create hypernetwork": "Hypernetwork erstellen",
"Preprocess images": "Bilder vorbereiten",
"Name": "Name",
"Initialization text": "Initialisierungstext",
- "Number of vectors per token": "Anzahl der vektoren pro token",
+ "Number of vectors per token": "Anzahl der Vektoren pro Token",
"Overwrite Old Embedding": "Alte Embeddings überschreiben",
"Modules": "Module",
- "Enter hypernetwork layer structure": "Hypernetwork-Schichtstruktur angeben",
+ "Enter hypernetwork layer structure": "Hypernetwork-Ebenenstruktur angeben",
"Select activation function of hypernetwork": "Aktivierungsfunktion des Hypernetwork auswählen",
"linear": "linear",
"relu": "relu",
"leakyrelu": "leakyrelu",
"elu": "elu",
"swish": "swish",
- "Add layer normalization": "Schicht normalisierung hinzufügen",
+ "tanh": "tanh",
+ "sigmoid": "sigmoid",
+ "celu": "celu",
+ "gelu": "gelu",
+ "glu": "glu",
+ "hardshrink": "hardshrink",
+ "hardsigmoid": "hardsigmoid",
+ "hardtanh": "hardtanh",
+ "logsigmoid": "logsigmoid",
+ "logsoftmax": "logsoftmax",
+ "mish": "mish",
+ "prelu": "prelu",
+ "rrelu": "rrelu",
+ "relu6": "relu6",
+ "selu": "selu",
+ "silu": "silu",
+ "softmax": "softmax",
+ "softmax2d": "softmax2d",
+ "softmin": "softmin",
+ "softplus": "softplus",
+ "softshrink": "softshrink",
+ "softsign": "softsign",
+ "tanhshrink": "tanhshrink",
+ "threshold": "threshold",
+ "Select Layer weights initialization. relu-like - Kaiming, sigmoid-like - Xavier is recommended": "Auswahl der Initialisierung der Ebenengewichte. Empfohlen wird relu-like - Kaiming, sigmoid-like - Xavier",
+ "Normal": "Normal",
+ "KaimingUniform": "KaimingUniform",
+ "KaimingNormal": "KaimingNormal",
+ "XavierUniform": "XavierUniform",
+ "XavierNormal": "XavierNormal",
+ "Add layer normalization": "Ebenennormalisierung hinzufügen",
"Use dropout": "Dropout benutzen",
"Overwrite Old Hypernetwork": "Altes Hypernetwork überschreiben",
"Source directory": "Quellenverzeichnis",
"Destination directory": "Zielverzeichnis",
- "Existing Caption txt Action": "Vorhandene Beschriftung der txt Aktion",
+ "Existing Caption txt Action": "Vorhandene Beschriftung der txt",
"ignore": "ignorieren",
"copy": "kopieren",
- "prepend": "vorangestellt",
+ "prepend": "voranstellen",
"append": "anhängen",
"Create flipped copies": "Gespiegelte Bilder erstellen",
"Split oversized images": "Übergroße Bilder aufteilen",
- "Use BLIP for caption": "BLIP für Überschrift nutzen",
- "Use deepbooru for caption": "Deepbooru für Überschrift nutzen",
- "Split image threshold": "Bilder aufteilen Grenzwert",
- "Split image overlap ratio": "Überschneidungsverhältnis beim Bilder aufteilen",
+ "Auto focal point crop": "Automatisch auf Fokuspunkt zuschneiden",
+ "Use BLIP for caption": "BLIP für Beschriftung nutzen",
+ "Use deepbooru for caption": "Deepbooru für Beschriftung nutzen",
+ "Split image threshold": "Schwellenwert für die Aufteilung von Bildern",
+ "Split image overlap ratio": "Überschneidungsverhältnis der Teilbilder",
+ "Focal point face weight": "Fokuspunkt Gesicht Gewicht",
+ "Focal point entropy weight": "Fokuspunkt Entropie Gewicht",
+ "Focal point edges weight": "Fokuspunkt Kanten Gewicht",
+ "Create debug image": "Testbild erstellen",
"Preprocess": "Vorbereiten",
- "Train an embedding or Hypernetwork; you must specify a directory with a set of 1:1 ratio images": "Trainieren eines Embeddings oder ein Hypernetwork; Sie müssen ein Verzeichnis mit einem Satz von Bildern im Verhältnis 1:1 angeben",
- "[wiki]": "[wiki]",
+ "Train an embedding or Hypernetwork; you must specify a directory with a set of 1:1 ratio images": "Trainieren eines Embeddings oder eines Hypernetworks; Sie müssen ein Verzeichnis mit einem Satz von Bildern im Verhältnis 1:1 angeben",
+ "[wiki]": "[Wiki]",
"Embedding": "Embedding",
- "Embedding Learning rate": "Embedding Learning rate",
- "Hypernetwork Learning rate": "Hypernetwork Learning rate",
- "Dataset directory": "Dataset verzeichnis",
- "Log directory": "Log verzeichnis",
- "Prompt template file": "Vorlage Datei für Prompt",
- "Max steps": "Max steps",
- "Save an image to log directory every N steps, 0 to disable": "Alle N steps, ein Bild im Log Verzeichnis speichern, 0 zum deaktivieren",
- "Save a copy of embedding to log directory every N steps, 0 to disable": "Alle N steps, eine Kopie des Embedding im Log Verzeichnis speichern, 0 zum deaktivieren",
- "Save images with embedding in PNG chunks": "Das Bild mit embedding in PNG Fragmente speichern",
- "Read parameters (prompt, etc...) from txt2img tab when making previews": "Bei vorschau die Parameter (prompt, etc...) vom txt2img tab lesen",
+ "Embedding Learning rate": "Embedding Lernrate",
+ "Hypernetwork Learning rate": "Hypernetwork Lernrate",
+ "Dataset directory": "Datensatzverzeichnis",
+ "Log directory": "Protokollverzeichnis",
+ "Prompt template file": "Prompt-Vorlagendatei",
+ "Max steps": "Max Schritte",
+ "Save an image to log directory every N steps, 0 to disable": "Speichere alle N Schritte ein Bild im Protokollverzeichnis, 0 zum Deaktivieren",
+ "Save a copy of embedding to log directory every N steps, 0 to disable": "Speichere alle N Schritte eine Embeddingkopie im Protokollverzeichnis, 0 zum Deaktivieren",
+ "Save images with embedding in PNG chunks": "Speichere Bilder mit Embeddings in PNG Chunks",
+ "Read parameters (prompt, etc...) from txt2img tab when making previews": "Lese Parameter (Prompt, etc...) aus dem txt2img-Tab beim Erstellen von Vorschaubildern.",
"Train Hypernetwork": "Hypernetwork Trainieren",
"Train Embedding": "Embedding Trainieren",
- "Apply settings": "Einstellungen anwenden",
+ "Apply settings": "Eintellungen anwenden",
"Saving images/grids": "Bilder/Raster speichern",
- "Always save all generated images": "Grundsätzlich alle generieren Bilder speichern",
+ "Always save all generated images": "Immer alle generierten Bilder speichern",
"File format for images": "Dateiformat für Bilder",
- "Images filename pattern": "Dateinamen vorlage für Bilder",
- "Add number to filename when saving": "Beim speichern, dem Dateinamen die Nummer anhängen",
- "Always save all generated image grids": "Grundsätzlich alle generieren Raster speichern",
+ "Images filename pattern": "Dateinamensmuster für Bilder",
+ "Add number to filename when saving": "Beim speichern, dem Dateinamen Nummer anhängen",
+ "Always save all generated image grids": "Immer alle generierten Bildraster speichern",
"File format for grids": "Dateiformat für Raster",
- "Add extended info (seed, prompt) to filename when saving grid": "Speichern von Raster, erweiterte infos (seed, prompt) dem Dateinamen anhängen",
- "Do not save grids consisting of one picture": "Raster, die nur aus einem Bild bestehen, nicht speichern",
- "Prevent empty spots in grid (when set to autodetect)": "Lücken im Raster verhindern (falls aus autodetect gesetzt)",
- "Grid row count; use -1 for autodetect and 0 for it to be same as batch size": "Raster reihen anzahl; -1 für Autodetect und 0 für die anzahl wie batch size",
- "Save text information about generation parameters as chunks to png files": "Information zu Generierungsparameter als Fragmente in PNG dateien speichern",
- "Create a text file next to every image with generation parameters.": "Textdatei mit Generierungsparameter seperat zu Bilddatei speichern",
- "Save a copy of image before doing face restoration.": "Kope des Bildes vor und nach Gesichtswiederhestellung speichern",
- "Quality for saved jpeg images": "Qualität der als JPEG gespeicherten Bilder",
- "If PNG image is larger than 4MB or any dimension is larger than 4000, downscale and save copy as JPG": "Wenn PNG Bild größer als 4MB oder Dimensionen Größer als 4000, herunterskalieren und als JPG speichern.",
- "Use original name for output filename during batch process in extras tab": "Originaler name als Output Dateinamen benutzen während Massenverarbeitung in Extras tab.",
- "When using 'Save' button, only save a single selected image": "Beim benutzen von 'Speichern', nur das gewählte Bild speichern.",
+ "Add extended info (seed, prompt) to filename when saving grid": "Beim Speichern von Rastern zusätzliche Information (Seed, Prompt) hinzufügen",
+ "Do not save grids consisting of one picture": "Keine Raster speichern, die nur aus einem Bild bestehen",
+ "Prevent empty spots in grid (when set to autodetect)": "Lücken im Raster verhindern (falls auf Auto-Erkennung gesetzt)",
+ "Grid row count; use -1 for autodetect and 0 for it to be same as batch size": "Rasterreihenanzahl; -1 für Auto-Erkennung und 0 für die gleiche wie die Batchanzahl",
+ "Save text information about generation parameters as chunks to png files": "Generationsparameter als Chunks in PNG-Dateien speichern",
+ "Create a text file next to every image with generation parameters.": "Erstelle zu jedem Bild eine Textdatei, die die Generationsparameter enthält",
+ "Save a copy of image before doing face restoration.": "Vor der Gesichtswiederhestellung eine Kopie des Bildes speichern",
+ "Quality for saved jpeg images": "Qualität der JPEG-Bilder",
+ "If PNG image is larger than 4MB or any dimension is larger than 4000, downscale and save copy as JPG": "Wenn ein PNG-Bild größer als 4MB oder die Dimensionen größer als 4000 ist, herunterskalieren und als JPG speichern.",
+ "Use original name for output filename during batch process in extras tab": "Orginale Dateinamen als Ausgabenamen bei der Batchverarbeitung im Extras-Tab verwenden",
+ "When using 'Save' button, only save a single selected image": "Bei der Benutzung des 'Speichern'-Knopfes, nur das ausgewählte Bild speichern",
"Do not add watermark to images": "Den Bildern kein Wasserzeichen hinzufügen",
- "Paths for saving": "Pfade zum speichern",
- "Output directory for images; if empty, defaults to three directories below": "Ausgabeverzeichnis für Bilder: wenn leer fällt zurück auf drei Verzeichnisse unterhalb",
- "Output directory for txt2img images": "Ausgabeverzeichnis für txt2img",
- "Output directory for img2img images": "Ausgabeverzeichnis für img2img",
- "Output directory for images from extras tab": "Ausgabeverzeichnis für extras",
- "Output directory for grids; if empty, defaults to two directories below": "Ausgabeverzeichnis für Raster; wenn leer fällt zurück auf zwei Verzeichnisse unterhalb.",
- "Output directory for txt2img grids": "Ausgabeverzeichnis für txt2img Raster",
+ "Paths for saving": "Pfade zum Speichern",
+ "Output directory for images; if empty, defaults to three directories below": "Ausgabeverzeichnis für Bilder; Falls leer, werden die Pfade unterhalb verwendet",
+ "Output directory for txt2img images": "Ausgabeverzeichnis für txt2img Bilder",
+ "Output directory for img2img images": "Ausgabeverzeichnis für img2img Bilder",
+ "Output directory for images from extras tab": "Ausgabeverzeichnis für Extras-Tab Bilder",
+ "Output directory for grids; if empty, defaults to two directories below": "Ausgabeverzeichnis für Raster; Falls leer, werden die Pfade unterhalb verwendet",
+ "Output directory for txt2img grids": "Ausgabeverzeichnis für txt2img Raster",
"Output directory for img2img grids": "Ausgabeverzeichnis für img2img Raster",
- "Directory for saving images using the Save button": "Ausgabeverzeichnis Bilder für 'Speichern' Button",
+ "Directory for saving images using the Save button": "Ausgabeverzeichnis für Bilder, die mit dem 'Speichern'-Knopf gespeichert wurden",
"Saving to a directory": "Speichern in ein Verzeichnis",
"Save images to a subdirectory": "Bilder in ein Unterverzeichnis speichern",
"Save grids to a subdirectory": "Raster in ein Unterverzeichnis speichern",
- "When using \"Save\" button, save images to a subdirectory": "Beim benutzen von 'Save' Button, Bilder in Unterverzeichnis speichern",
- "Directory name pattern": "Verzeichnisname pattern",
- "Max prompt words for [prompt_words] pattern": "Maximale anzahl der Wörter für [prompt_words] pattern",
- "Upscaling": "Hochskalieren",
- "Tile size for ESRGAN upscalers. 0 = no tiling.": "Kachelgröße für ESRGAN upscalers. 0 = keine Kacheln.",
- "Tile overlap, in pixels for ESRGAN upscalers. Low values = visible seam.": "Kacheln überlappungen, größe in pixel für ESRGAN upscalers. Niedrige Zahl = Sichtbare übergänge.",
+ "When using \"Save\" button, save images to a subdirectory": "Bilder bei der Benutzung des 'Speichern'-Knopfes in ein Unterverzeichnis speichern",
+ "Directory name pattern": "Muster für Verzeichnisnamen",
+ "Max prompt words for [prompt_words] pattern": "Maximale Wortanzahl für [prompt_words] Muster",
+ "Upscaling": "Upscaling",
+ "Tile size for ESRGAN upscalers. 0 = no tiling.": "Kachelgröße für ESRGAN-Upscaler. 0 = keine Kacheln.",
+ "Tile overlap, in pixels for ESRGAN upscalers. Low values = visible seam.": "Kachelüberlappung in Pixeln für ESRGAN-Upscaler. Niedrige Werte = sichtbare Naht.",
"Tile size for all SwinIR.": "Kachelgröße für alle SwinIR.",
- "Tile overlap, in pixels for SwinIR. Low values = visible seam.": "Kacheln überlappungen, größe in pixel für SwinIR. Niedrige Zahl = Sichtbare übergänge.",
- "LDSR processing steps. Lower = faster": "LDSR verarbeitungsschritte. niedriger = schneller",
+ "Tile overlap, in pixels for SwinIR. Low values = visible seam.": "Kachelüberlappung in Pixeln für SwinIR. Niedrige Werte = sichtbare Naht.",
+ "LDSR processing steps. Lower = faster": "LDSR-Verarbeitungsschritte. Niedriger = schneller",
"Upscaler for img2img": "Upscaler für img2img",
- "Upscale latent space image when doing hires. fix": "Upscale latent space beim ausführen von hires. fix",
+ "Upscale latent space image when doing hires. fix": "Bild des Latent Space upscalen, wenn Highres. Fix benutzt wird",
"Face restoration": "Gesichtswiederhestellung",
- "CodeFormer weight parameter; 0 = maximum effect; 1 = minimum effect": "CodeFormer gewicht parameter; 0 = maximaler effekt; 1 = minimalster effekt",
- "Move face restoration model from VRAM into RAM after processing": "Gesichtswiederhestellungs-Modell nach Verarbeitung vom VRAM ins RAM verschieben",
+ "CodeFormer weight parameter; 0 = maximum effect; 1 = minimum effect": "CodeFormer Gewichtung (0 = maximale Wirkung, 1 = minimale Wirkung)",
+ "Move face restoration model from VRAM into RAM after processing": "Verschiebe Gesichtswiederhestellung-Modell nach der Verarbeitung vom VRAM in den RAM",
"System": "System",
- "VRAM usage polls per second during generation. Set to 0 to disable.": "Abfragen pro Sekunde zur VRAM auslastung. 0 = deaktiviert",
- "Always print all generation info to standard output": "Grundsätzlich alle Generierungsparameter im standard output ausgeben",
- "Add a second progress bar to the console that shows progress for an entire job.": "Zweite Fortschrittsleiste in der Konsole hinzufügen, die den Fortschitt für den ganzen Job anzeigt.",
+ "VRAM usage polls per second during generation. Set to 0 to disable.": "VRAM-Nutzungsabfragen pro Sekunde während der Generierung. Zum Deaktivieren auf 0 setzen.",
+ "Always print all generation info to standard output": "Immer alle Generationsinformationen in der Standardausgabe ausgeben",
+ "Add a second progress bar to the console that shows progress for an entire job.": "Der Konsole einen zweiten Fortschrittsbalken hinzufügen, der den Fortschritt eines gesamten Auftrags anzeigt.",
"Training": "Training",
- "Move VAE and CLIP to RAM when training hypernetwork. Saves VRAM.": "VAE und CLIP während Hypernetwork-Training in RAM verschieben. Spart VRAM.",
+ "Move VAE and CLIP to RAM when training hypernetwork. Saves VRAM.": "VAE und CLIP während des Hypernetwork-Trainings in den RAM verschieben. Spart VRAM.",
"Filename word regex": "Filename word regex",
"Filename join string": "Filename join string",
- "Number of repeats for a single input image per epoch; used only for displaying epoch number": "Anzahl der wiederholungen für ein einziges Input-Bild pro epoche; nur dazu genutzt um epochen nummer anzuzeigen",
- "Save an csv containing the loss to log directory every N steps, 0 to disable": "CSV die den 'loss' alle N steps beinhaltet. 0 = deaktiviert",
+ "Number of repeats for a single input image per epoch; used only for displaying epoch number": "Anzahl der Wiederholungen für ein einzelnes Eingabebild pro Epoche; wird nur für die Anzeige der Epochennummer verwendet",
+ "Save an csv containing the loss to log directory every N steps, 0 to disable": "Speichere eine csv-Datei, die den Verlust enthält, im Protokollverzeichnis alle N Schritte, 0 zum Deaktivieren",
"Stable Diffusion": "Stable Diffusion",
- "Checkpoints to cache in RAM": "Anz. Checkpoints im RAM zu Cachen",
- "Hypernetwork strength": "Hypernetwork stärke",
- "Apply color correction to img2img results to match original colors.": "Farbkorrigierungen auf img2img anwenden um den Original zu gleichen.",
- "Save a copy of image before applying color correction to img2img results": "Eine Kopie vom Bild vor der anwendung der img2img Farbkorrigierungen speichern.",
- "With img2img, do exactly the amount of steps the slider specifies (normally you'd do less with less denoising).": "Mit img2img, führe die exakte anzahl an steps aus, die im Slider angegeben sind. (Im Normalfall würdest du mit Denoising weniger nehmen)",
- "Enable quantization in K samplers for sharper and cleaner results. This may change existing seeds. Requires restart to apply.": "ermöglicht die Quantisierung in K-Samplern für schärfere und sauberere Ergebnisse. Dadurch können sich existierende Seeds verändern. Für die Anwendung ist ein Neustart erforderlich.",
- "Emphasis: use (text) to make model pay more attention to text and [text] to make it pay less attention": "Hervorhebung: Ermöglicht (text) damit das Modell dem Text (mehr) oder [weniger] gewichtung gibt.",
- "Use old emphasis implementation. Can be useful to reproduce old seeds.": "Verwendet die alte Implementierung von Hervorhebungen. Kann für das benutzen von älteren Seeds nützlich sein.",
- "Make K-diffusion samplers produce same images in a batch as when making a single image": "Sorgt dafür, dass K-Diffusions-Sampler in einem Batch die gleichen Bilder erzeugen wie bei der Erstellung eines einzelnen Bildes.",
- "Increase coherency by padding from the last comma within n tokens when using more than 75 tokens": "Erhöhung der Kohärenz durch Auffüllen ab dem letzten Komma innerhalb von N Token, wenn mehr als 75 Token verwendet werden",
- "Filter NSFW content": "Filter NSFW inhalte",
- "Stop At last layers of CLIP model": "Stop bei den letzten Schichten des CLIP-Modells",
- "Interrogate Options": "Optionen abfragen",
- "Interrogate: keep models in VRAM": "Abfragen: Modelle im VRAM behalten",
- "Interrogate: use artists from artists.csv": "Abfragen: Künstler aus artists.csv verwenden",
- "Interrogate: include ranks of model tags matches in results (Has no effect on caption-based interrogators).": "Abfragen: Rangfolge der Modell-Tags in den Ergebnissen berücksichtigen (hat keine Auswirkung auf beschriftungsbasierte Abfragesysteme).",
- "Interrogate: num_beams for BLIP": "Abfragen: num_beams für BLIP",
- "Interrogate: minimum description length (excluding artists, etc..)": "Abfrage: Mindestlänge der Beschreibung (ohne Künstler usw.)",
- "Interrogate: maximum description length": "Abfragen: maximale Länge der Beschreibung",
- "CLIP: maximum number of lines in text file (0 = No limit)": "CLIP: maximale Anzahl von Zeilen in der Textdatei (0 = keine Begrenzung)",
- "Interrogate: deepbooru score threshold": "Abfrage: deepbooru schwelle",
- "Interrogate: deepbooru sort alphabetically": "Abfrage: deepbooru alphabetisch sortieren",
- "use spaces for tags in deepbooru": "Leerzeichen für Tags in deepbooru verwenden",
- "escape (\\) brackets in deepbooru (so they are used as literal brackets and not for emphasis)": "Escape-Klammern (\\) in deepbooru (damit sie als wörtliche Klammern und nicht zur Hervorhebung verwendet werden)",
- "User interface": "Benutzerinterface",
- "Show progressbar": "Fortschrittsleiste Anzeigen",
- "Show image creation progress every N sampling steps. Set 0 to disable.": "Zeigt den Fortschritt der Bilderstellung alle N Schritte an. 0 setzen, um zu deaktivieren.",
- "Show previews of all images generated in a batch as a grid": "Vorschaubilder aller in einem Batch erzeugten Bilder als Raster anzeigen",
- "Show grid in results for web": "Raster in den Ergebnissen für Web anzeigen",
- "Do not show any images in results for web": "Keine Bilder in den Ergebnissen für das Web anzeigen",
- "Add model hash to generation information": "Modell-Hash zu Generierungsinformationen hinzufügen",
- "Add model name to generation information": "Modell-Name zu Generierungsinformationen hinzufügen",
- "When reading generation parameters from text into UI (from PNG info or pasted text), do not change the selected model/checkpoint.": "Beim Einlesen von Generierungsparametern aus Text in die Benutzeroberfläche (aus PNG-Informationen oder eingefügtem Text) wird das ausgewählte Modell/der ausgewählte Checkpoint nicht geändert.",
- "Font for image grids that have text": "Schriftart für Bildraster, die Text enthalten",
- "Enable full page image viewer": "Ganzseitenbildbetrachter einschalten",
- "Show images zoomed in by default in full page image viewer": "Bilder standardmäßig vergrößert im Ganzseitenbildbetrachter anzeigen",
- "Show generation progress in window title.": "Generierungsfortschritt im Fenstertitel anzeigen.",
- "Quicksettings list": "Quicksettings-Liste",
- "Localization (requires restart)": "Lokalisierung (erfordert Neustart)",
- "Sampler parameters": "Sampler parameter",
- "Hide samplers in user interface (requires restart)": "Ausblenden von Samplern in der Benutzeroberfläche (erfordert einen Neustart)",
- "eta (noise multiplier) for DDIM": "eta (noise multiplier) für DDIM",
- "eta (noise multiplier) for ancestral samplers": "eta (noise multiplier) für ancestral samplers",
- "img2img DDIM discretize": "img2img DDIM discretize",
+ "Checkpoints to cache in RAM": "Checkpoints zum Zwischenspeichern im RAM",
+ "Hypernetwork strength": "Hypernetworkstärke",
+ "Inpainting conditioning mask strength": "Inpainting Stärke der Konditionierungsmaske",
+ "Apply color correction to img2img results to match original colors.": "Farbkorrektur auf die img2img-Ergebnisse anwenden, damit sie den Originalfarben entsprechen.",
+ "Save a copy of image before applying color correction to img2img results": "Vor dem Anwenden der Farbkorrektur eine Kopie des Bildes speichern",
+ "With img2img, do exactly the amount of steps the slider specifies (normally you'd do less with less denoising).": "Mit img2img, die exakte Anzahl der Schritte ausführen, die vom Schieberegler angegeben sind (normalerweise weniger bei weniger Denoising).",
+ "Enable quantization in K samplers for sharper and cleaner results. This may change existing seeds. Requires restart to apply.": "Aktivieren der Quantisierung in K-Samplern für schärfere und sauberere Ergebnisse. Dies kann bestehende Seeds verändern. Erfordert Neustart.",
+ "Emphasis: use (text) to make model pay more attention to text and [text] to make it pay less attention": "Hervorhebung: Verwenden Sie (Text), damit das Modell dem Text mehr Aufmerksamkeit schenkt, und [Text], damit es ihm weniger Aufmerksamkeit schenkt",
+ "Use old emphasis implementation. Can be useful to reproduce old seeds.": "Verwenden der alten Implementierung von Hervorhebungen. Kann nützlich sein, um alte Seeds zu reproduzieren.",
+ "Make K-diffusion samplers produce same images in a batch as when making a single image": "K-Diffusions-Sampler erzeugen in einem Batch die gleichen Bilder, wie bei der Erstellung eines einzelnen Bildes",
+ "Increase coherency by padding from the last comma within n tokens when using more than 75 tokens": "Erhöhung der Kohärenz durch Auffüllen ab dem letzten Komma innerhalb von n Token, wenn mehr als 75 Token verwendet werden",
+ "Filter NSFW content": "NSFW-Inhalte filtern",
+ "Stop At last layers of CLIP model": "Stoppe bei den letzten Schichten des CLIP-Modells",
+ "Interrogate Options": "Interrogate Optionen",
+ "Interrogate: keep models in VRAM": "Interrogate: Modelle im VRAM behalten",
+ "Interrogate: use artists from artists.csv": "Interrogate: Künstler aus 'artists.csv' nutzen",
+ "Interrogate: include ranks of model tags matches in results (Has no effect on caption-based interrogators).": "Interrogate: Die Rangfolge von Modell-Tags in den Ergebnissen einschließen (hat keine Auswirkung auf beschriftungsbasierte Interrogator).",
+ "Interrogate: num_beams for BLIP": "Interrogate: num_beams für BLIP",
+ "Interrogate: minimum description length (excluding artists, etc..)": "Interrogate: minimale Beschreibungslänge (Künstler, etc.. ausgenommen)",
+ "Interrogate: maximum description length": "Interrogate: maximale Beschreibungslänge",
+ "CLIP: maximum number of lines in text file (0 = No limit)": "CLIP: maximale Anzahl an Zeilen in Textdatei (0 = Kein Limit)",
+ "Interrogate: deepbooru score threshold": "Interrogate: Deepbooru minimale Punkteanzahl",
+ "Interrogate: deepbooru sort alphabetically": "Interrogate: Sortiere Deepbooru alphabetisch",
+ "use spaces for tags in deepbooru": "Benutze Leerzeichen für Deepbooru-Tags",
+ "escape (\\) brackets in deepbooru (so they are used as literal brackets and not for emphasis)": "Escape-Klammern (\\) in Deepbooru (damit sie als normale Klammern und nicht zur Hervorhebung verwendet werden)",
+ "User interface": "Benutzeroberfläche",
+ "Show progressbar": "Fortschrittsleiste anzeigen",
+ "Show image creation progress every N sampling steps. Set 0 to disable.": "Zeige eine Bildvorschau alle N Samplingschritte. Zum Deaktivieren auf 0 setzen.",
+ "Show previews of all images generated in a batch as a grid": "Zeige eine Vorschau aller erzeugten Bilder in einem Batch als Raster",
+ "Show grid in results for web": "Zeige Raster in der Web-UI Vorschau",
+ "Do not show any images in results for web": "Keine Bilder in der Web-UI Vorschau zeigen",
+ "Add model hash to generation information": "Hash des Modells zu den Generationsinformationen hinzufügen",
+ "Add model name to generation information": "Name des Modells zu den Generationsinformationen hinzufügen",
+ "When reading generation parameters from text into UI (from PNG info or pasted text), do not change the selected model/checkpoint.": "Beim Einlesen von Generierungsparametern aus Text in die Benutzeroberfläche (aus PNG-Info oder eingefügtem Text) wird das ausgewählte Modell/Checkpoint nicht geändert.",
+ "Send seed when sending prompt or image to other interface": "Den Seed, beim Senden des Bildes/Prompt zu einem anderen Tab, mitsenden",
+ "Font for image grids that have text": "Schriftart für Bildraster mit Text",
+ "Enable full page image viewer": "Ganzseitenbildbetrachter aktivieren",
+ "Show images zoomed in by default in full page image viewer": "Standardmäßig Bilder im Ganzseitenbildbetrachter vergrößert anzeigen",
+ "Show generation progress in window title.": "Generationsfortschritt im Fenstertitel anzeigen.",
+ "Quicksettings list": "Schnellzugriffsleiste",
+ "Localization (requires restart)": "Lokalisierung (Erfordert Neustart)",
+ "Sampler parameters": "Samplerparameter",
+ "Hide samplers in user interface (requires restart)": "Sampler in der Benutzeroberfläche verstecken (Erfordert Neustart)",
+ "eta (noise multiplier) for DDIM": "Eta (noise Multiplikator) für DDIM",
+ "eta (noise multiplier) for ancestral samplers": "Eta (noise Multiplikator) für Ancestral Sampler",
+ "img2img DDIM discretize": "img2img DDIM diskretisieren",
"uniform": "uniform",
"quad": "quad",
"sigma churn": "sigma churn",
"sigma tmin": "sigma tmin",
"sigma noise": "sigma noise",
"Eta noise seed delta": "Eta noise seed delta",
- "Request browser notifications": "Browser-Benachrichtigungen anfordern",
+ "Request browser notifications": "Browserbenachrichtigungen anfordern",
"Download localization template": "Vorlage für Lokalisierung herunterladen",
- "Reload custom script bodies (No ui updates, No restart)": "Neu laden von benutzerdefinierten Skripten (keine Aktualisierung der Benutzeroberfläche, kein Neustart)",
+ "Reload custom script bodies (No ui updates, No restart)": "Benutzerdefinierte Skripte neu laden (keine Aktualisierung der Benutzeroberfläche, kein Neustart)",
"Restart Gradio and Refresh components (Custom Scripts, ui.py, js and css only)": "Gradio neu starten und Komponenten aktualisieren (nur Custom Scripts, ui.py, js und css)",
"Prompt (press Ctrl+Enter or Alt+Enter to generate)": "Prompt (zum Erzeugen Strg+Eingabe oder Alt+Eingabe drücken)",
- "Negative prompt (press Ctrl+Enter or Alt+Enter to generate)": "Prompt negativo (presiona Ctrl+Enter o Alt+Enter para generar)",
- "Add a random artist to the prompt.": "Zufälligen Künstler den Prompt hinzufügen.",
- "Read generation parameters from prompt or last generation if prompt is empty into user interface.": "Import von Generierungsparameter aus dem Prompt oder aus der letzten Generierung, wenn das Prompt in der Benutzeroberfläche leer ist.",
- "Save style": "Style speichern",
- "Apply selected styles to current prompt": "Momentan ausgewählte styles auf den Prompt anwenden",
- "Stop processing current image and continue processing.": "Verarbeitung des momentanen Bildes abbrechen und zum nächsten fortsetzen.",
- "Stop processing images and return any results accumulated so far.": "Verarbeitung abbrechen und alle bisherigen Bilder ausgeben.",
- "Style to apply; styles have components for both positive and negative prompts and apply to both": "Style, der angwendet werden soll. Styles haben sowohl negative als auch positive prompt anteile, die auf beide angewendet werden.",
+ "Negative prompt (press Ctrl+Enter or Alt+Enter to generate)": "Negative Prompt (zum Erzeugen Strg+Eingabe oder Alt+Eingabe drücken)",
+ "Add a random artist to the prompt.": "Zufälligen Künstler der Prompt hinzufügen.",
+ "Read generation parameters from prompt or last generation if prompt is empty into user interface.": "Lesen der Generationsparameter aus der Prompt oder der letzten Generation (wenn Prompt leer ist) in die Benutzeroberfläche.",
+ "Save style": "Stil speichern",
+ "Apply selected styles to current prompt": "Momentan ausgewählte Stile auf die Prompt anwenden",
+ "Stop processing current image and continue processing.": "Verarbeitung des momentanen Bildes abbrechen und Verarbeitung fortsetzen.",
+ "Stop processing images and return any results accumulated so far.": "Verarbeitung abbrechen und alle bisherigen Ergebnisse ausgeben.",
+ "Style to apply; styles have components for both positive and negative prompts and apply to both": "Stil, der angwendet werden soll. Stile haben sowohl positive als auch negative Promptanteile und werden auf beide angewandt.",
"Do not do anything special": "Nichts besonderes machen",
- "Which algorithm to use to produce the image": "Der zu benutzende algorithmus für die Bildgeneration",
- "Euler Ancestral - very creative, each can get a completely different picture depending on step count, setting steps to higher than 30-40 does not help": "Euler Ancestral - sehr kreativ, jeder kann unterschiedliche Bilder, abhängig von der Step/Schritt anzahl bekommen. Werte höher als 30-40 helfen nicht.",
- "Denoising Diffusion Implicit Models - best at inpainting": "Denoising Diffusion Implicit Models - am besten für img2img inpainting",
+ "Which algorithm to use to produce the image": "Der zu benutzende Algorithmus für die Bildgeneration",
+ "Euler Ancestral - very creative, each can get a completely different picture depending on step count, setting steps to higher than 30-40 does not help": "Euler Ancestral - sehr kreativ, kann sehr unterschiedliche Bilder in Abhängigkeit von der Schrittanzahl bekommen. Werte höher als 30-40 helfen nicht.",
+ "Denoising Diffusion Implicit Models - best at inpainting": "Denoising Diffusion Implicit Modelle - am besten für inpainting",
"Produce an image that can be tiled.": "Bild erzeugen, dass gekachelt werden kann.",
- "Use a two step process to partially create an image at smaller resolution, upscale, and then improve details in it without changing composition": "Verwendung eines zweistufigen Prozess, um ein Bild teilweise mit geringerer Auflösung zu erstellen, hochzuskalieren und dann die Details zu verbessern, ohne die zusammensetzung zu verändern.",
- "Determines how little respect the algorithm should have for image's content. At 0, nothing will change, and at 1 you'll get an unrelated image. With values below 1.0, processing will take less steps than the Sampling Steps slider specifies.": "Bestimmt, wie wenig Bezug der Algorithmus zu dem Inhalt des Bildes haben soll. Bei 0 ändert sich nichts, und bei 1 erhalten Sie ein Bild ohne Bezug. Bei Werten unter 1,0 erfolgt die Verarbeitung in weniger Schritten, als der Schieberegler Sampling-Schritte angibt.",
- "How many batches of images to create": "Wie viele Stapel von Bildern erstellt werden sollen",
- "How many image to create in a single batch": "Wie viele Bilder in einem einzigen Stapel erstellt werden sollen",
- "Classifier Free Guidance Scale - how strongly the image should conform to prompt - lower values produce more creative results": "Classifier Free Guidance Scale - wie stark das Bild der Aufforderung entsprechen soll - niedrigere Werte führen zu kreativeren Ergebnissen",
- "A value that determines the output of random number generator - if you create an image with same parameters and seed as another image, you'll get the same result": "Ein Wert, der die Ausgabe des Zufallszahlengenerators bestimmt: Wenn Sie ein Bild mit denselben Parametern und demselben Seed wie ein anderes Bild erstellen, erhalten Sie dasselbe Ergebnis.",
+ "Use a two step process to partially create an image at smaller resolution, upscale, and then improve details in it without changing composition": "Verwendung eines zweistufigen Prozesses, um ein Bild mit geringerer Auflösung zu erstellen, hochzuskalieren und dann die Details zu verbessern, ohne die Komposition zu verändern.",
+ "Determines how little respect the algorithm should have for image's content. At 0, nothing will change, and at 1 you'll get an unrelated image. With values below 1.0, processing will take less steps than the Sampling Steps slider specifies.": "Bestimmt, wie wenig Bezug der Algorithmus zu dem Inhalt des Bildes haben soll. Bei 0 ändert sich nichts, und bei 1 besitzt das Bild keinen Bezug. Bei Werten unter 1,0 erfolgt die Verarbeitung in weniger Schritten, als der Schieberegler angibt.",
+ "How many batches of images to create": "Wie viele Sätze von Bildern erstellt werden sollen",
+ "How many image to create in a single batch": "Wie viele Bilder in einem Batch erstellt werden sollen",
+ "Classifier Free Guidance Scale - how strongly the image should conform to prompt - lower values produce more creative results": "Classifier Free Guidance Scale - wie stark das Bild der Prompt entsprechen soll - niedrigere Werte führen zu kreativeren Ergebnissen",
+ "A value that determines the output of random number generator - if you create an image with same parameters and seed as another image, you'll get the same result": "Ein Wert, der die Ausgabe des Zufallszahlengenerators bestimmt: Wenn ein Bild mit denselben Parametern und demselben Seed wie ein anderes Bild erstellt wird, erhält man dasselbe Ergebnis.",
"Set seed to -1, which will cause a new random number to be used every time": "Seed auf -1 setzen, so dass jedes Mal eine neue Zufallszahl verwendet wird",
- "Reuse seed from last generation, mostly useful if it was randomed": "Wiederverwendung des Seed der letzten Generation, meist nützlich, wenn es zufällig gewählt wurde",
- "Seed of a different picture to be mixed into the generation.": "Seed eines anderen Bildes, das bei der Erzeugung reingemischt wird.",
- "How strong of a variation to produce. At 0, there will be no effect. At 1, you will get the complete picture with variation seed (except for ancestral samplers, where you will just get something).": "Wie stark die Veränderung sein soll. Bei 0 gibt es keinen Effekt. Bei 1 erhalten Sie das vollständige Bild mit variations Seed (außer bei ancestral samplers,wie Euler A, wo Sie nur etwas erhalten).",
- "Make an attempt to produce a picture similar to what would have been produced with same seed at specified resolution": "Versuchen ein Bild zu erzeugen, das dem ähnelt, das mit demselben Seed bei der angegebenen Auflösung erzeugt worden wäre.",
- "Separate values for X axis using commas.": "Trennen Sie die Werte für die X-Achse durch Kommas.",
- "Separate values for Y axis using commas.": "Trennen Sie die Werte für die Y-Achse durch Kommas.",
- "Write image to a directory (default - log/images) and generation parameters into csv file.": "Bild in ein Verzeichnis schreiben (Standard - log/images) und Generierungsparameter in eine csv-Datei.",
- "Open images output directory": "Bildverzeichnis öffnen",
- "How much to blur the mask before processing, in pixels.": "Wie stark die Maske vor der Verarbeitung verwischt werden soll, in Pixeln.",
- "What to put inside the masked area before processing it with Stable Diffusion.": "Was soll in den maskierten Bereich vor der Verarbeitung mit Stable Diffusion.",
+ "Reuse seed from last generation, mostly useful if it was randomed": "Wiederverwendung des Seeds der letzten Generation, meist nützlich, wenn er zufällig gewählt wurde",
+ "Seed of a different picture to be mixed into the generation.": "Seed eines anderen Bildes, der bei der Erzeugung reingemischt wird.",
+ "How strong of a variation to produce. At 0, there will be no effect. At 1, you will get the complete picture with variation seed (except for ancestral samplers, where you will just get something).": "Wie stark die Veränderung sein soll. Bei 0 gibt es keinen Effekt. Bei 1 erhält man das vollständige Bild mit dem Variationsseed (außer bei Ancestral Samplern, wie Euler A, wo man nur etwas erhält).",
+ "Make an attempt to produce a picture similar to what would have been produced with same seed at specified resolution": "Versuche ein Bild zu erzeugen, das dem ähnelt, das mit dem Seed bei der angegebenen Auflösung erzeugt worden wäre.",
+ "Separate values for X axis using commas.": "Trenne die Werte für die X-Achse durch Kommas.",
+ "Separate values for Y axis using commas.": "Trenne die Werte für die Y-Achse durch Kommas.",
+ "Write image to a directory (default - log/images) and generation parameters into csv file.": "Bild in ein Verzeichnis (Standard - log/images) und Generationsparameter in eine csv-Datei schreiben.",
+ "Open images output directory": "Ausgabeverzeichnis öffnen",
+ "How much to blur the mask before processing, in pixels.": "Wie stark die Maske vor der Verarbeitung weichgezeichnet werden soll, in Pixeln.",
+ "What to put inside the masked area before processing it with Stable Diffusion.": "Was in den maskierten Bereich vor der Verarbeitung mit Stable Diffusion soll.",
"fill it with colors of the image": "Füllen mit den Farben des Bildes",
"keep whatever was there originally": "Originalen Inhalt behalten",
"fill it with latent space noise": "Füllen mit latent space noise",
- "fill it with latent space zeroes": "Füllen mit latent space zeroes",
+ "fill it with latent space zeroes": "Füllen mit latent space Nullen",
"Upscale masked region to target resolution, do inpainting, downscale back and paste into original image": "Hochskalieren des maskierten Bereichs auf die Zielauflösung, Inpainting, Zurückskalieren und Einfügen in das Originalbild.",
- "Resize image to target resolution. Unless height and width match, you will get incorrect aspect ratio.": "Die Größe des Bildes auf die gewünschte Auflösung ändern. Wenn Höhe und Breite nicht übereinstimmen, erhalten Sie ein falsches Seitenverhältnis.",
- "Resize the image so that entirety of target resolution is filled with the image. Crop parts that stick out.": "Die Größe des Bildes so ändern, dass die gesamte Zielauflösung mit dem Bild ausgefüllt wird. Herausragende Teile zuschneiden.",
- "Resize the image so that entirety of image is inside target resolution. Fill empty space with image's colors.": "Die Größe des Bildes so ändern, dass die gesamte Zielauflösung mit dem Bild ausgefüllt wird. Herausragende Teile mit Farben des Bildes ausfüllen.",
- "How many times to repeat processing an image and using it as input for the next iteration": "Wie oft soll die Verarbeitung eines Bildes wiederholt werden, um es als Eingabe für die nächste Iteration zu verwenden",
- "In loopback mode, on each loop the denoising strength is multiplied by this value. <1 means decreasing variety so your sequence will converge on a fixed picture. >1 means increasing variety so your sequence will become more and more chaotic.": "Im Loopback-Modus wird die Stärke der Rauschunterdrückung in jeder Schleife mit diesem Wert multipliziert. <1 bedeutet abnehmende Vielfalt, so dass Ihre Sequenz zu einem festen Bild konvergiert. >1 bedeutet zunehmende Vielfalt, so dass die Sequenz immer chaotischer wird..",
- "For SD upscale, how much overlap in pixels should there be between tiles. Tiles overlap so that when they are merged back into one picture, there is no clearly visible seam.": "Wie viel Pixel sollten sich beim SD-Upscale zwischen den Kacheln überlappen? Die Kacheln überlappen sich so, dass beim Zusammenfügen zu einem Bild keine deutlich sichtbare Naht entsteht..",
+ "Resize image to target resolution. Unless height and width match, you will get incorrect aspect ratio.": "Die Größe des Bildes auf die gewünschte Auflösung ändern. Wenn Höhe und Breite nicht übereinstimmen, erhält man ein falsches Seitenverhältnis.",
+ "Resize the image so that entirety of target resolution is filled with the image. Crop parts that stick out.": "Die Größe des Bildes so ändern, dass die gesamte Zielauflösung mit dem Bild ausgefüllt wird. Herausragende Teile werden abgeschnitten.",
+ "Resize the image so that entirety of image is inside target resolution. Fill empty space with image's colors.": "Die Größe des Bildes so ändern, dass das gesamte Bild enthalten ist. Lücken werden mit Farben des Bildes ausgefüllt.",
+ "How many times to repeat processing an image and using it as input for the next iteration": "Wie oft die Verarbeitung eines Bildes wiederholt und als Eingabe für die nächste Iteration verwendet werden soll",
+ "In loopback mode, on each loop the denoising strength is multiplied by this value. <1 means decreasing variety so your sequence will converge on a fixed picture. >1 means increasing variety so your sequence will become more and more chaotic.": "Im Loopback-Modus wird die Denoisingstärke in jeder Schleife mit diesem Wert multipliziert. <1 bedeutet abnehmende Vielfalt, so dass die Sequenz zu einem festen Bild konvergiert. >1 bedeutet zunehmende Vielfalt, so dass die Sequenz immer chaotischer wird.",
+ "For SD upscale, how much overlap in pixels should there be between tiles. Tiles overlap so that when they are merged back into one picture, there is no clearly visible seam.": "Wie viel Pixel sich beim SD-Upscale zwischen den Kacheln überlappen. Die Kacheln überlappen sich so, dass beim Zusammenfügen zu einem Bild keine deutlich sichtbare Naht entsteht.",
"A directory on the same machine where the server is running.": "Ein Verzeichnis auf demselben Rechner, auf dem der Server läuft.",
"Leave blank to save images to the default path.": "Leer lassen, um Bilder im Standardpfad zu speichern.",
"Result = A * (1 - M) + B * M": "Ergebnis = A * (1 - M) + B * M",
"Result = A + (B - C) * M": "Ergebnis = A + (B - C) * M",
- "1st and last digit must be 1. ex:'1, 2, 1'": "Erste und letzte Ziffer muss 1 sein. Bspw:'1, 2, 1'",
+ "1st and last digit must be 1. ex:'1, 2, 1'": "Erste und letzte Ziffer müssen 1 sein. Bspl:'1, 2, 1'",
"Path to directory with input images": "Pfad zum Verzeichnis mit den Eingabebildern",
- "Path to directory where to write outputs": "Pfad zum Verzeichnis, in das die Ausgaben geschrieben werden sollen",
- "Use following tags to define how filenames for images are chosen: [steps], [cfg], [prompt], [prompt_no_styles], [prompt_spaces], [width], [height], [styles], [sampler], [seed], [model_hash], [prompt_words], [date], [datetime], [datetime], [datetime], [job_timestamp]; leave empty for default.": "Verwenden Sie die folgenden Tags, um festzulegen, wie die Dateinamen für Bilder ausgewählt werden: [steps], [cfg], [prompt], [prompt_no_styles], [prompt_spaces], [width], [height], [styles], [sampler], [seed], [model_hash], [prompt_words], [date], [datetime], [datetime], [datetime], [job_timestamp]; leer lassen, um Standardwerte zu verwenden.",
- "If this option is enabled, watermark will not be added to created images. Warning: if you do not add watermark, you may be behaving in an unethical manner.": "Wenn diese Option aktiviert ist, wird den erstellten Bildern kein unsichtbares Wasserzeichen hinzugefügt. Achtung: Wenn Sie kein Wasserzeichen hinzufügen, verhalten Sie sich möglicherweise unethisch gegenüber sensiblen Personen.",
+ "Path to directory where to write outputs": "Pfad zum Verzeichnis, wo die Ausgaben gespeichert werden",
+ "Use following tags to define how filenames for images are chosen: [steps], [cfg], [prompt], [prompt_no_styles], [prompt_spaces], [width], [height], [styles], [sampler], [seed], [model_hash], [prompt_words], [date], [datetime], [datetime], [datetime], [job_timestamp]; leave empty for default.": "Verwende die folgenden Tags, um festzulegen, wie die Dateinamen für Bilder ausgewählt werden: [steps], [cfg], [prompt], [prompt_no_styles], [prompt_spaces], [width], [height], [styles], [sampler], [seed], [model_hash], [prompt_words], [date], [datetime], [datetime], [datetime], [job_timestamp]; leer lassen, um Standardwerte zu verwenden.",
+ "If this option is enabled, watermark will not be added to created images. Warning: if you do not add watermark, you may be behaving in an unethical manner.": "Wenn diese Option aktiviert ist, wird den erstellten Bildern kein Wasserzeichen hinzugefügt. Achtung: Wenn Sie kein Wasserzeichen hinzufügen, verhalten Sie sich möglicherweise unethisch.",
"Use following tags to define how subdirectories for images and grids are chosen: [steps], [cfg], [prompt], [prompt_no_styles], [prompt_spaces], [width], [height], [styles], [sampler], [seed], [model_hash], [prompt_words], [date], [datetime], [datetime], [datetime], [job_timestamp]; leave empty for default.": "Verwenden Sie die folgenden Tags, um festzulegen, wie Unterverzeichnisse für Bilder und Raster ausgewählt werden: [steps], [cfg], [prompt], [prompt_no_styles], [prompt_spaces], [width], [height], [styles], [sampler], [seed], [model_hash], [prompt_words], [date], [datetime], [datetime], [datetime], [job_timestamp]; leer lassen, um Standardwerte zu verwenden.",
- "Restore low quality faces using GFPGAN neural network": "Wiederherstellung von Gesichtern schlechter Qualität mit GFPGAN neural network",
+ "Restore low quality faces using GFPGAN neural network": "Wiederherstellung von Gesichtern schlechter Qualität mit dem neuralen Netzwerk GFPGAN",
"This regular expression will be used extract words from filename, and they will be joined using the option below into label text used for training. Leave empty to keep filename text as it is.": "Dieser reguläre Ausdruck wird verwendet, um Wörter aus dem Dateinamen zu extrahieren, die dann mit der unten stehenden Option zu einem Beschriftungstext für das Training zusammengefügt werden. Leer lassen, um den Text des Dateinamens so zu belassen, wie er ist.",
"This string will be used to join split words into a single line if the option above is enabled.": "Diese Zeichenfolge wird verwendet, um getrennte Wörter in einer einzigen Zeile zu verbinden, wenn die obige Option aktiviert ist.",
- "List of setting names, separated by commas, for settings that should go to the quick access bar at the top, rather than the usual setting tab. See modules/shared.py for setting names. Requires restarting to apply.": "Liste von Einstellungsnamen, getrennt durch Kommata, für Einstellungen, die in der Schnellzugriffsleiste oben erscheinen sollen, anstatt auf dem üblichen Einstellungs-Tab. Siehe modules/shared.py für Einstellungsnamen. Erfordert einen Neustart zur Anwendung.",
- "If this values is non-zero, it will be added to seed and used to initialize RNG for noises when using samplers with Eta. You can use this to produce even more variation of images, or you can use this to match images of other software if you know what you are doing.": "Wenn dieser Wert ungleich Null ist, wird er zum Seed addiert und zur Initialisierung des RNG für Rauschen bei der Verwendung von Samplern mit Eta verwendet. Sie können dies verwenden, um noch mehr Variationen von Bildern zu erzeugen, oder Sie können dies verwenden, um Bilder von anderer Software abzugleichen, wenn Sie wissen, was Sie tun."
-}
+ "Only applies to inpainting models. Determines how strongly to mask off the original image for inpainting and img2img. 1.0 means fully masked, which is the default behaviour. 0.0 means a fully unmasked conditioning. Lower values will help preserve the overall composition of the image, but will struggle with large changes.": "Gilt nur für Inpainting-Modelle. Legt fest, wie stark das Originalbild für Inpainting und img2img maskiert werden soll. 1.0 bedeutet vollständig maskiert, was das Standardverhalten ist. 0.0 bedeutet eine vollständig unmaskierte Konditionierung. Niedrigere Werte tragen dazu bei, die Gesamtkomposition des Bildes zu erhalten, sind aber bei großen Änderungen problematisch.",
+ "List of setting names, separated by commas, for settings that should go to the quick access bar at the top, rather than the usual setting tab. See modules/shared.py for setting names. Requires restarting to apply.": "Liste von Einstellungsnamen, getrennt durch Kommas, für Einstellungen, die in der Schnellzugriffsleiste oben erscheinen sollen, anstatt in dem üblichen Einstellungs-Tab. Siehe modules/shared.py für Einstellungsnamen. Erfordert einen Neustart zur Anwendung.",
+ "If this values is non-zero, it will be added to seed and used to initialize RNG for noises when using samplers with Eta. You can use this to produce even more variation of images, or you can use this to match images of other software if you know what you are doing.": "Wenn dieser Wert ungleich Null ist, wird er zum Seed addiert und zur Initialisierung des RNG für Noise bei der Verwendung von Samplern mit Eta verwendet. Dies kann verwendet werden, um noch mehr Variationen von Bildern zu erzeugen, oder um Bilder von anderer Software zu erzeugen, wenn Sie wissen, was Sie tun."
+}
\ No newline at end of file
--
cgit v1.2.1
From 66d038f6a41507af2243ff1f6618a745a092c290 Mon Sep 17 00:00:00 2001
From: timntorres
Date: Sat, 29 Oct 2022 15:00:08 -0700
Subject: Read hypernet strength from PNG info.
---
modules/generation_parameters_copypaste.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules/generation_parameters_copypaste.py b/modules/generation_parameters_copypaste.py
index bbaad42e..59c6d7da 100644
--- a/modules/generation_parameters_copypaste.py
+++ b/modules/generation_parameters_copypaste.py
@@ -66,6 +66,7 @@ def integrate_settings_paste_fields(component_dict):
settings_map = {
'sd_hypernetwork': 'Hypernet',
+ 'sd_hypernetwork_strength': 'Hypernetwork strength',
'CLIP_stop_at_last_layers': 'Clip skip',
'sd_model_checkpoint': 'Model hash',
}
--
cgit v1.2.1
From 9f4f894d74b57c3d02ebccaa59f9c22fca2b6c90 Mon Sep 17 00:00:00 2001
From: evshiron
Date: Sun, 30 Oct 2022 06:03:32 +0800
Subject: allow skip current image in progress api
---
modules/api/api.py | 4 ++--
modules/api/models.py | 3 +++
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/modules/api/api.py b/modules/api/api.py
index e960bb7b..5c5b210f 100644
--- a/modules/api/api.py
+++ b/modules/api/api.py
@@ -167,7 +167,7 @@ class Api:
return PNGInfoResponse(info=result[1])
- def progressapi(self):
+ def progressapi(self, req: ProgressRequest = Depends()):
# copy from check_progress_call of ui.py
if shared.state.job_count == 0:
@@ -188,7 +188,7 @@ class Api:
progress = min(progress, 1)
current_image = None
- if shared.state.current_image:
+ if shared.state.current_image and not req.skip_current_image:
current_image = encode_pil_to_base64(shared.state.current_image)
return ProgressResponse(progress=progress, eta_relative=eta_relative, state=shared.state.dict(), current_image=current_image)
diff --git a/modules/api/models.py b/modules/api/models.py
index c8bc719a..9ee42a17 100644
--- a/modules/api/models.py
+++ b/modules/api/models.py
@@ -157,6 +157,9 @@ class PNGInfoRequest(BaseModel):
class PNGInfoResponse(BaseModel):
info: str = Field(title="Image info", description="A string with all the info the image had")
+class ProgressRequest(BaseModel):
+ skip_current_image: bool = Field(default=False, title="Skip current image", description="Skip current image serialization")
+
class ProgressResponse(BaseModel):
progress: float = Field(title="Progress", description="The progress with a range of 0 to 1")
eta_relative: float = Field(title="ETA in secs")
--
cgit v1.2.1
From 35e95f574a5954e9cbe95265cbcf1386715c9e87 Mon Sep 17 00:00:00 2001
From: Riccardo Giovanetti <29801031+Harvester62@users.noreply.github.com>
Date: Sun, 30 Oct 2022 00:13:13 +0200
Subject: Italian localization (extended) [Requires Feedback]
This is my first version of an alternative localization into Italian language which is a follow-up of the current localization file made by @EugenioBuffo (#3725), which I thanks, and of my discussion "Italian localization (git newbie)" (#3633) which covers the main user interface, all the current the Extensions and Scripts, with the following exceptions:
txt2img2img (I got errors therefore I removed it from my local installation of SD Web UI)
Parameter Sequencer (not installed locally)
Booru tag autocompletion (not installed locally)
Saving steps of the sampling process (not installed locally)
I do not forecast to translate the above scripts in the short period, unless I will install them locally on my machine.
I beg your pardon if I am brutally overwriting the originally submitted file but I find quite exhausting to edit and append over a thousand lines of code to the original file. If this is mandatory, then I will delete this commit and start a new one amending the original it_IT.json file.
It is for sure not perfect and there are some translations that can be improved, therefore I wish to invite @EugenioBuffo and any other Italian mother language person willing give advice and to help to review this extensive translation . I look forward read any feedback from the community and developers. Thank you.
---
localizations/it_IT.json | 1560 +++++++++++++++++++++++++++++++---------------
1 file changed, 1069 insertions(+), 491 deletions(-)
diff --git a/localizations/it_IT.json b/localizations/it_IT.json
index d05035f9..9752f71c 100644
--- a/localizations/it_IT.json
+++ b/localizations/it_IT.json
@@ -1,492 +1,1070 @@
{
- "⤡": "⤡",
- "⊞": "⊞",
- "×": "×",
- "❮": "❮",
- "❯": "❯",
- "Loading...": "Caricamento...",
- "view": "mostra ",
- "api": "API",
- "•": "•",
- "built with gradio": "Sviluppato con Gradio",
- "Stable Diffusion checkpoint": "Stable Diffusion checkpoint",
- "txt2img": "txt2img",
- "img2img": "img2img",
- "Extras": "Extra",
- "PNG Info": "PNG Info",
- "Checkpoint Merger": "Checkpoint Merger",
- "Train": "Train",
- "Image Browser": "Galleria Immagini",
- "Settings": "Impostazioni",
- "Prompt": "Prompt",
- "Negative prompt": "Prompt negativo",
- "Run": "Esegui",
- "Skip": "Salta",
- "Interrupt": "Interrompi",
- "Generate": "Genera",
- "Style 1": "Stile 1",
- "Style 2": "Stile 2",
- "Label": "Etichetta",
- "File": "File",
- "Drop File Here": "Trascina il file qui",
- "-": "-",
- "or": "o",
- "Click to Upload": "Clicca per caricare",
- "Image": "Immagine",
- "Check progress": "Verifica progresso",
- "Check progress (first)": "Verifica progresso (iniziale)",
- "Sampling Steps": "Sampling Steps",
- "Sampling method": "Sampling method",
- "Euler a": "Euler a",
- "Euler": "Euler",
- "LMS": "LMS",
- "Heun": "Heun",
- "DPM2": "DPM2",
- "DPM2 a": "DPM2 a",
- "DPM fast": "DPM fast",
- "DPM adaptive": "DPM adaptive",
- "LMS Karras": "LMS Karras",
- "DPM2 Karras": "DPM2 Karras",
- "DPM2 a Karras": "DPM2 a Karras",
- "DDIM": "DDIM",
- "PLMS": "PLMS",
- "Width": "Larghezza",
- "Height": "Altezza",
- "Restore faces": "Ripristina volti",
- "Tiling": "Tiling",
- "Highres. fix": "Highres. fix",
- "Firstpass width": "Larghezza del primo step",
- "Firstpass height": "Altezza del primo step",
- "Denoising strength": "Denoising strength",
- "Batch count": "Batch count",
- "Batch size": "Batch size",
- "CFG Scale": "CFG Scale",
- "Seed": "Seed",
- "Extra": "Extra",
- "Variation seed": "Variation seed",
- "Variation strength": "Variation strength",
- "Resize seed from width": "Ridimensiona seed da larghezza",
- "Resize seed from height": "Ridimensiona seed da altezza",
- "Script": "Script",
- "None": "Nessuno",
- "Prompt matrix": "Prompt matrix",
- "Prompts from file or textbox": "Prompts da file o casella di testo",
- "X/Y plot": "X/Y plot",
- "Put variable parts at start of prompt": "Inserisce una parte variabile all'inizio del prompt",
- "Iterate seed every line": "Itera seed per ogni linea",
- "List of prompt inputs": "Lista dei prompt in input",
- "Upload prompt inputs": "Carica prompt di input",
- "Show Textbox": "Mostra la casella di testo",
- "File with inputs": "File con input",
- "Prompts": "Prompts",
- "X type": "X type",
- "Nothing": "Nulla",
- "Var. seed": "Var. seed",
- "Var. strength": "Var. strength",
- "Steps": "Steps",
- "Prompt order": "Prompt order",
- "Sampler": "Sampler",
- "Checkpoint name": "Checkpoint name",
- "Hypernetwork": "Hypernetwork",
- "Hypernet str.": "Hypernet str.",
- "Sigma Churn": "Sigma Churn",
- "Sigma min": "Sigma min",
- "Sigma max": "Sigma max",
- "Sigma noise": "Sigma noise",
- "Eta": "Eta",
- "Clip skip": "Clip skip",
- "Denoising": "Denoising",
- "X values": "X values",
- "Y type": "Y type",
- "Y values": "Y values",
- "Draw legend": "Disegna legenda",
- "Include Separate Images": "Includi immagini separate",
- "Keep -1 for seeds": "Mantieni il seed a -1",
- "Drop Image Here": "Trascina l'immagine qui",
- "Save": "Salva",
- "Send to img2img": "Invia a img2img",
- "Send to inpaint": "Invia a inpaint",
- "Send to extras": "Invia a extra",
- "Make Zip when Save?": "Creare Zip al salvataggio?",
- "Textbox": "Casella di testo",
- "Interrogate\nCLIP": "Interroga\nCLIP",
- "Inpaint": "Inpaint",
- "Batch img2img": "Batch img2img",
- "Image for img2img": "Immagine per img2img",
- "Image for inpainting with mask": "Immagine per inpainting con maschera",
- "Mask": "Mask",
- "Mask blur": "Maschera sfocatura",
- "Mask mode": "Modalità maschera",
- "Draw mask": "Disegna maschera",
- "Upload mask": "Carica maschera",
- "Masking mode": "Modalità mascheramento",
- "Inpaint masked": "Inpaint mascherato",
- "Inpaint not masked": "Inpaint non mascherato",
- "Masked content": "Maschera contenuto",
- "fill": "riempi",
- "original": "originale",
- "latent noise": "latent noise",
- "latent nothing": "latent nothing",
- "Inpaint at full resolution": "Inpaint alla massima risoluzione",
- "Inpaint at full resolution padding, pixels": "Inpaint alla massima risoluzione padding, pixels",
- "Process images in a directory on the same machine where the server is running.": "Processa le immagini in una cartella nella stessa macchina in cui il server è stato lanciato.",
- "Use an empty output directory to save pictures normally instead of writing to the output directory.": "Usa una cartella di output vuota per salvare le immagini normalmente invece di scrivere nella cartella di output",
- "Input directory": "Cartella di Input",
- "Output directory": "Cartella di Output",
- "Resize mode": "Modalità ridimensionamento",
- "Just resize": "Solo ridimensionamento",
- "Crop and resize": "Taglia e Ridimensiona",
- "Resize and fill": "Ridimensiona e Riempi",
- "img2img alternative test": "img2img alternative test",
- "Loopback": "Loopback",
- "Outpainting mk2": "Outpainting mk2",
- "Poor man's outpainting": "Poor man's outpainting",
- "SD upscale": "SD upscale",
- "should be 2 or lower.": "deve essere 2 o inferiore.",
- "Override `Sampling method` to Euler?(this method is built for it)": "Ripristinare il `Sampling method` in Euler?(metodo di default)",
- "Override `prompt` to the same value as `original prompt`?(and `negative prompt`)": "Ripristinare il `prompt` al valore del `prompt originale`? (e `prompt negativo`)",
- "Original prompt": "Prompt originale",
- "Original negative prompt": "Promp negativo originale",
- "Override `Sampling Steps` to the same value as `Decode steps`?": "Ripristinare il `Sampling Steps` al valore di `Decode steps`?",
- "Decode steps": "Decode steps",
- "Override `Denoising strength` to 1?": "Ripristinare `Denoising strength` a 1?",
- "Decode CFG scale": "Decode CFG scale",
- "Randomness": "Casualità",
- "Sigma adjustment for finding noise for image": "Sigma adjustment for finding noise for image. ",
- "Loops": "Loops",
- "Denoising strength change factor": "Denoising strength change factor",
- "Recommended settings: Sampling Steps: 80-100, Sampler: Euler a, Denoising strength: 0.8": "Impostazioni Raccomandate: Sampling Steps: 80-100, Sampler: Euler a, Denoising strength: 0.8",
- "Pixels to expand": "Pixels to expand",
- "Outpainting direction": "Direzione Outpainting",
- "left": "sinistra",
- "right": "destra",
- "up": "su",
- "down": "giù",
- "Fall-off exponent (lower=higher detail)": "Fall-off exponent (inferiore=maggiori dettagli)",
- "Color variation": "Variazione del colore",
- "Will upscale the image to twice the dimensions; use width and height sliders to set tile size": "Verrà effettuato l'upscale dell'immagine di due volte le sue dimensioni; usa gli sliders di larghezza e altezza per configurare la dimensione del tile",
- "Tile overlap": "Sovrapposizione Tile",
- "Upscaler": "Upscaler",
- "Lanczos": "Lanczos",
- "LDSR": "LDSR",
- "SwinIR 4x": "SwinIR 4x",
- "ScuNET GAN": "ScuNET GAN",
- "ScuNET PSNR": "ScuNET PSNR",
- "ESRGAN_4x": "ESRGAN_4x",
- "Single Image": "Singola Immagine",
- "Batch Process": "Batch Process",
- "Batch from Directory": "Batch da Cartella",
- "Source": "Sorgente",
- "Show result images": "Mostra risultati",
- "Scale by": "Scala di",
- "Scale to": "Scala a",
- "Resize": "Ridimensionamento",
- "Crop to fit": "Taglia per adeguare",
- "Upscaler 2 visibility": "Visibilità Upscaler 2",
- "GFPGAN visibility": "Visibilità GFPGAN",
- "CodeFormer visibility": "Visibilità CodeFormer",
- "CodeFormer weight (0 = maximum effect, 1 = minimum effect)": "Peso CodeFormer (0 = effetto massimo, 1 = effetto minimo)",
- "Open output directory": "Apri cartella di output",
- "Send to txt2img": "Invia a txt2img",
- "A merger of the two checkpoints will be generated in your": "Una fusione dei due checkpoint sarà generata nella ",
- "checkpoint": "checkpoint",
- "directory.": " directory.",
- "Primary model (A)": "Primo modello (A)",
- "Secondary model (B)": "Secondo modello (B)",
- "Tertiary model (C)": "Terzo modello (C)",
- "Custom Name (Optional)": "Nome Personalizzato (opzionale)",
- "Multiplier (M) - set to 0 to get model A": "Moltiplicatore (M) - Imposta 0 per ottenere il modello A",
- "Interpolation Method": "Metodo di Interpolazione",
- "Weighted sum": "Somma pesata",
- "Add difference": "Add difference",
- "Save as float16": "Salva come float16",
- "See": "Verifica la ",
- "wiki": "wiki ",
- "for detailed explanation.": "per una spiegazione dettagliata.",
- "Create embedding": "Crea embedding",
- "Create hypernetwork": "Crea hypernetwork",
- "Preprocess images": "Pre-processa immagini",
- "Name": "Nome",
- "Initialization text": "Testo di Inizializzazione",
- "Number of vectors per token": "Numero di vettori per token",
- "Overwrite Old Embedding": "Sovrascrivi Vecchio Embedding",
- "Modules": "Moduli",
- "Enter hypernetwork layer structure": "Inserisci la struttura livelli dell'hypernetwork",
- "Select activation function of hypernetwork": "Seleziona la funzione di attivazione dell'hypernetwork",
- "linear": "linear",
- "relu": "relu",
- "leakyrelu": "leakyrelu",
- "elu": "elu",
- "swish": "swish",
- "tanh": "tanh",
- "sigmoid": "sigmoid",
- "celu": "celu",
- "gelu": "gelu",
- "glu": "glu",
- "hardshrink": "hardshrink",
- "hardsigmoid": "hardsigmoid",
- "hardswish": "hardswish",
- "hardtanh": "hardtanh",
- "logsigmoid": "logsigmoid",
- "logsoftmax": "logsoftmax",
- "mish": "mish",
- "multiheadattention": "multiheadattention",
- "prelu": "prelu",
- "rrelu": "rrelu",
- "relu6": "relu6",
- "selu": "selu",
- "silu": "silu",
- "softmax": "softmax",
- "softmax2d": "softmax2d",
- "softmin": "softmin",
- "softplus": "softplus",
- "softshrink": "softshrink",
- "softsign": "softsign",
- "tanhshrink": "tanhshrink",
- "threshold": "threshold",
- "Select Layer weights initialization. relu-like - Kaiming, sigmoid-like - Xavier is recommended": "Seleziona Inizializzazione dei pesi dei livelli. (relu-like: Kaiming, sigmoid-like: Xavier). Xavier è raccomandato",
- "Normal": "Normal",
- "KaimingUniform": "KaimingUniform",
- "KaimingNormal": "KaimingNormal",
- "XavierUniform": "XavierUniform",
- "XavierNormal": "XavierNormal",
- "Add layer normalization": "Aggiungi normalizzazione dei livelli",
- "Use dropout": "Usa dropout",
- "Overwrite Old Hypernetwork": "Sovrascrivi Vecchio Hypernetwork",
- "Source directory": "Cartella sorgente",
- "Destination directory": "Cartella di destinazione",
- "Existing Caption txt Action": "Azione in caso di didascalia già presente",
- "ignore": "ignora",
- "copy": "copia",
- "prepend": "anteponi",
- "append": "apponi",
- "Create flipped copies": "Crea copie specchiate",
- "Split oversized images": "Dividi immagini grandi",
- "Use BLIP for caption": "Usa BLIP per la didascalia",
- "Use deepbooru for caption": "Usa deepbooru per la didascalia",
- "Split image threshold": "Dividi Threshold immagine",
- "Split image overlap ratio": "Rapporto di sovrapposizione dell'immagine",
- "Preprocess": "Preprocessa",
- "Train an embedding or Hypernetwork; you must specify a directory with a set of 1:1 ratio images": "Train an embedding or Hypernetwork; you must specify a directory with a set of 1:1 ratio images",
- "[wiki]": "[wiki]",
- "Embedding": "Embedding",
- "Embedding Learning rate": "Embedding Learning rate",
- "Hypernetwork Learning rate": "Hypernetwork Learning rate",
- "Dataset directory": "Cartella dataset",
- "Log directory": "Cartella log",
- "Prompt template file": "Prompt template file",
- "Max steps": "Max steps",
- "Save an image to log directory every N steps, 0 to disable": "Salva un'immagine ogni N step, 0 per disabilitare",
- "Save a copy of embedding to log directory every N steps, 0 to disable": "Salva una copia dell'embedding nella cartella log ogni N step, 0 per disabilitare",
- "Save images with embedding in PNG chunks": "Salva le immagini con embedding in PNG",
- "Read parameters (prompt, etc...) from txt2img tab when making previews": "Usa i parametri (prompt, etc...) di txt2img per visualizzare le anteprime",
- "Train Hypernetwork": "Train Hypernetwork",
- "Train Embedding": "Train Embedding",
- "extras": "Extra",
- "favorites": "Preferiti",
- "custom fold": "Cartella personalizzata",
- "Load": "Carica",
- "Images directory": "Cartella Immagini",
- "Prev batch": "Batch Precedente",
- "Next batch": "Batch Successivo",
- "First Page": "Prima Pagina",
- "Prev Page": "Pagina Precedente",
- "Page Index": "Indice Pagina",
- "Next Page": "Pagina Successiva",
- "End Page": "Pagina Finale",
- "number of images to delete consecutively next": "numero di immagini da eliminare consecutivamente a seguire",
- "Delete": "Elimina",
- "Generate Info": "Genera Info",
- "File Name": "Nome File",
- "Collect": "Ottieni",
- "Refresh page": "Aggiorna Pagina",
- "Date to": "Data fine",
- "Number": "Numero",
- "set_index": "set_index",
- "Checkbox": "Checkbox",
- "Apply settings": "Applica impostazioni",
- "Saving images/grids": "Salvataggio immagini/griglie",
- "Always save all generated images": "Salva sempre tutte le immagini generate",
- "File format for images": "Formato file per le immagini",
- "Images filename pattern": "Configura Pattern per il nome dei file immagine",
- "Add number to filename when saving": "Aggiungi un numero al nome del file al salvataggio",
- "Always save all generated image grids": "Salva sempre tutte le griglie delle immagini generate",
- "File format for grids": "Formato file per le giglie",
- "Add extended info (seed, prompt) to filename when saving grid": "Aggiungi informazioni estese (seed, prompt) al nome del file al salvataggio della griglia",
- "Do not save grids consisting of one picture": "Non salvare griglie composte da una sola immagine",
- "Prevent empty spots in grid (when set to autodetect)": "Previeni spazi vuoti nella griglia",
- "Grid row count; use -1 for autodetect and 0 for it to be same as batch size": "Numero righe griglia; usa -1 per trovarlo automaticamente e 0 per essere lo stesso del batch size",
- "Save text information about generation parameters as chunks to png files": "Salva le informazioni dei parametri di generazione come chunks nei file PNG",
- "Create a text file next to every image with generation parameters.": "Crea un file di testo per ogni immagine con i parametri di generazione.",
- "Save a copy of image before doing face restoration.": "Salva una copia dell'immagine prima di fare la riparazione volti.",
- "Quality for saved jpeg images": "Qualità per le immagini salvate in JPEG",
- "If PNG image is larger than 4MB or any dimension is larger than 4000, downscale and save copy as JPG": "Se l'immagine PNG image è più grande di 4MB o qualsiasi dimensione maggiore di 4000, effettua il downscale e salva come JPG",
- "Use original name for output filename during batch process in extras tab": "Usa il nome originale del file come nome del file di output durante il 'batch process' nella tab 'extras'",
- "When using 'Save' button, only save a single selected image": "Usando il tasto 'Save', verrà salvata solo la singola immagine selezionata",
- "Do not add watermark to images": "Non aggiungere watermark alle immagini",
- "Paths for saving": "Percorsi per il salvataggio",
- "Output directory for images; if empty, defaults to three directories below": "Cartella di Output globale per immagini; se vuota, verranno usate di default le cartelle indicate sotto",
- "Output directory for txt2img images": "Cartella di Output per txt2img",
- "Output directory for img2img images": "Cartella di Output per img2img",
- "Output directory for images from extras tab": "Cartella di Output per immagini dalla tab 'extra'",
- "Output directory for grids; if empty, defaults to two directories below": "Cartella di Output globale per le griglie; se vuota, verranno usate di default le cartelle indicate sotto",
- "Output directory for txt2img grids": "Cartella di Output per txt2img grids",
- "Output directory for img2img grids": "Cartella di Output per img2img grids",
- "Directory for saving images using the Save button": "Cartella di Output per il salvataggion con il tasto 'Salva'",
- "Saving to a directory": "Salvataggio in cartelle",
- "Save images to a subdirectory": "Salva immagini in una sottocartella",
- "Save grids to a subdirectory": "Salva griglie in una sottocartella",
- "When using \"Save\" button, save images to a subdirectory": "Usando il tasto \"Salva\", le immagini verranno salvate in una sottocartella",
- "Directory name pattern": "Pattern del nome della cartella",
- "Max prompt words for [prompt_words] pattern": "Massimo numero di parole per il pattern [prompt_words]",
- "Upscaling": "Upscaling",
- "Tile size for ESRGAN upscalers. 0 = no tiling.": "Dimensione Tile per upscalers ESRGAN. 0 = no tiling.",
- "Tile overlap, in pixels for ESRGAN upscalers. Low values = visible seam.": "Sovrapposizione Tile, in pixels per upscalers ESRGAN. Valore basso = taglio visible.",
- "Tile size for all SwinIR.": "Dimensione Tile per SwinIR.",
- "Tile overlap, in pixels for SwinIR. Low values = visible seam.": "Sovrapposizione Tile, in pixels per upscalers SwinIR. Valore basso = taglio visible.",
- "LDSR processing steps. Lower = faster": "LDSR processing steps. Basso = Veloce",
- "Upscaler for img2img": "Upscaler per img2img",
- "Upscale latent space image when doing hires. fix": "Upscale latent space image when doing hires. fix",
- "Face restoration": "Ripristino volti",
- "CodeFormer weight parameter; 0 = maximum effect; 1 = minimum effect": "Peso CodeFormer; 0 = effetto massimo; 1 = effetto minimo",
- "Move face restoration model from VRAM into RAM after processing": "Sposta il modello di ripristino volti dalla VRAM alla RAM dopo averlo processato",
- "System": "Sistema",
- "VRAM usage polls per second during generation. Set to 0 to disable.": "Utilizzo VRAM al secondo durante la generazione. Imposta 0 per disabilitare.",
- "Always print all generation info to standard output": "Mostra sempre tutte le informazioni della generazione nello standard output",
- "Add a second progress bar to the console that shows progress for an entire job.": "Aggiungi una seconda progress bar alla console per mostrare il progresso complessivo della generazione.",
- "Training": "Training",
- "Move VAE and CLIP to RAM when training hypernetwork. Saves VRAM.": "Sposta VAE e CLIP in RAM durante il training di hypernetwork. Risparmia VRAM.",
- "Filename word regex": "Filename word regex",
- "Filename join string": "Filename join string",
- "Number of repeats for a single input image per epoch; used only for displaying epoch number": "Numero di ripetizioni per singola immagine in input per epoch; usato solo per mostrare il numero di epoch",
- "Save an csv containing the loss to log directory every N steps, 0 to disable": "Salva un csv contenente il loss nella cartella log ogni N step, 0 per disabilitare",
- "Stable Diffusion": "Stable Diffusion",
- "Checkpoints to cache in RAM": "Checkpoints da memorizzare in RAM",
- "Hypernetwork strength": "Hypernetwork strength",
- "Apply color correction to img2img results to match original colors.": "Applica color correction ai risultati img2img per uguagliare i colori originali.",
- "Save a copy of image before applying color correction to img2img results": "Salva una copia dell'immagine prima di applicare la color correction ai risultati img2img",
- "With img2img, do exactly the amount of steps the slider specifies (normally you'd do less with less denoising).": "Con img2img, effettua esattamente la quantità di step indicata (normalmente se ne effettuano di meno con meno riduzione del disturbo).",
- "Enable quantization in K samplers for sharper and cleaner results. This may change existing seeds. Requires restart to apply.": "Abilita la quantizzazione nei campionatori K per risultati più nitidi e puliti. Questo può cambiare seed esistenti. Richiede il riavvio per essere applicato.",
- "Emphasis: use (text) to make model pay more attention to text and [text] to make it pay less attention": "Enfasi: usa (testo) per far prestare maggiore attenzione al testo indicato e [testo] per renderlo meno importante",
- "Use old emphasis implementation. Can be useful to reproduce old seeds.": "Usa la vecchia implementazione per l'enfasi. Può essere utile per riprodurre vecchi seeds.",
- "Make K-diffusion samplers produce same images in a batch as when making a single image": "Fa sì che i K-Diffusion producano le stesse immagini in un batch come quando si effettuano una singola immagine",
- "Increase coherency by padding from the last comma within n tokens when using more than 75 tokens": "Aumenta la coerenza aggiungendo dall'ultima virgola ulteriori N token quando si usano più di 75 token.",
- "Filter NSFW content": "Filtra contenuti NSFW",
- "Stop At last layers of CLIP model": "Fermati all'ultimo livello del modello CLIP",
- "Interrogate Options": "Opzioni Interrogate",
- "Interrogate: keep models in VRAM": "Interrogate: mantieni modelli nella VRAM",
- "Interrogate: use artists from artists.csv": "Interrogate: usa artisti dal file artists.csv",
- "Interrogate: include ranks of model tags matches in results (Has no effect on caption-based interrogators).": "Interrogate: include ranks of model tags matches in results (Has no effect on caption-based interrogators).",
- "Interrogate: num_beams for BLIP": "Interrogate: num_beams per BLIP",
- "Interrogate: minimum description length (excluding artists, etc..)": "Interrogate: minima lunghezza della descrizione (escludendo artisti, etc..)",
- "Interrogate: maximum description length": "Interrogate: massima lunghezza descrizione",
- "CLIP: maximum number of lines in text file (0 = No limit)": "CLIP: massimo numero di linee di testo per file (0 = Nessun limite)",
- "Interrogate: deepbooru score threshold": "Interrogate: soglia punteggio deepbooru",
- "Interrogate: deepbooru sort alphabetically": "Interrogate: deepbooru ordina alfabeticamente",
- "use spaces for tags in deepbooru": "usa spazi per tag su deepbooru",
- "escape (\\) brackets in deepbooru (so they are used as literal brackets and not for emphasis)": "effettuta l'escape (\\) delle parentesi in deepbooru (così vengono usati come parentesi e non come enfasi)",
- "User interface": "Interfaccia Utente",
- "Show progressbar": "Mostra barre di caricamento",
- "Show image creation progress every N sampling steps. Set 0 to disable.": "Mostra il progresso della generazione immagini ogni N step. Imposta 0 per disabilitare.",
- "Show previews of all images generated in a batch as a grid": "Mostra l'anteprima di tutte le immagini di un batch come griglia",
- "Show grid in results for web": "Mostra la griglia nei risultati per web",
- "Do not show any images in results for web": "Non mostrare alcun risultato per web",
- "Add model hash to generation information": "Aggiungi l'hash del modello alle informazioni di generazione",
- "Add model name to generation information": "Aggiungi il nome del modello alle informazioni di generazione",
- "When reading generation parameters from text into UI (from PNG info or pasted text), do not change the selected model/checkpoint.": "Alla lettura dei parametri di generazione da testo ad interfaccia (da PNG o testo copiato), non cambiare il modello/checkpoint.",
- "Font for image grids that have text": "Font per griglie di immagini con testo",
- "Enable full page image viewer": "Abilita la visualizzazione a pagina intera",
- "Show images zoomed in by default in full page image viewer": "Mostra le immagini zoommate di default nella visualizzazione a pagina intera",
- "Show generation progress in window title.": "Mostra il progresso di generazione nel titolo della finestra.",
- "Quicksettings list": "Lista imporazioni rapide",
- "Localization (requires restart)": "Localization (richiede riavvio)",
- "ar_AR": "ar_AR",
- "es_ES": "es_ES",
- "fr-FR": "fr-FR",
- "it_IT": "it_IT",
- "ja_JP": "ja_JP",
- "ko_KR": "ko_KR",
- "ru_RU": "ru_RU",
- "tr_TR": "tr_TR",
- "zh_CN": "zh_CN",
- "Sampler parameters": "Parametri del Sampler",
- "Hide samplers in user interface (requires restart)": "Hide samplers in user interface (richiede riavvio)",
- "eta (noise multiplier) for DDIM": "eta (noise multiplier) per DDIM",
- "eta (noise multiplier) for ancestral samplers": "eta (noise multiplier) per ancestral samplers",
- "img2img DDIM discretize": "img2img DDIM discretize",
- "uniform": "uniform",
- "quad": "quad",
- "sigma churn": "sigma churn",
- "sigma tmin": "sigma tmin",
- "sigma noise": "sigma noise",
- "Eta noise seed delta": "Eta noise seed delta",
- "Images Browser": "Galleria Immagini",
- "Preload images at startup": "Precarica immagini all'avvio",
- "Number of columns on the page": "Numero di colonne per pagina",
- "Number of rows on the page": "Numero di righe per pagina",
- "Minimum number of pages per load": "Minimo numero di pagine da caricare",
- "Request browser notifications": "Richiedi notifiche via browser",
- "Download localization template": "Scarica template di Localization",
- "Reload custom script bodies (No ui updates, No restart)": "Ricarica gli script custom (Nessun aggiornamento UI, Nessun riavvio)",
- "Restart Gradio and Refresh components (Custom Scripts, ui.py, js and css only)": "Riavvio Gradio and Aggiorna i componenti (solo Script Custom, ui.py, js e css)",
- "Prompt (press Ctrl+Enter or Alt+Enter to generate)": "Prompt (premi Ctrl+Enter o Alt+Enter per generare)",
- "Negative prompt (press Ctrl+Enter or Alt+Enter to generate)": "Prompt negativo (premi Ctrl+Enter o Alt+Enter per generare)",
- "Add a random artist to the prompt.": "Aggiungi un'artista casuale al prompt.",
- "Read generation parameters from prompt or last generation if prompt is empty into user interface.": "Leggi i parametri di generazione dal prompt o dall'ultima generazione se il prompt è vuoto nell'interfaccia utente.",
- "Save style": "Salva stile",
- "Apply selected styles to current prompt": "Applica lo stile selezionato al prompt corrente",
- "Stop processing current image and continue processing.": "Smette di processare l'immagine corrente e continua a processare.",
- "Stop processing images and return any results accumulated so far.": "Smette di processare l'immagine corrente e restituisce tutti i risultati accumulati fin'ora.",
- "Style to apply; styles have components for both positive and negative prompts and apply to both": "Stile da applicare; gli stili verranno applicati sia ai prompt positivi che ai prompt negativi",
- "Do not do anything special": "Non fa nulla di speciale",
- "Which algorithm to use to produce the image": "Algoritmo usato per produrre l'immagine",
- "Euler Ancestral - very creative, each can get a completely different picture depending on step count, setting steps to higher than 30-40 does not help": "Euler Ancestral - molto creativo, può generare immagini completamente diverse in base alla quantità di step, impostare valori maggiori di 30-40 non aiuta",
- "Denoising Diffusion Implicit Models - best at inpainting": "Denoising Diffusion Implicit Models - il migliore su inpainting",
- "Produce an image that can be tiled.": "Produce un'immagine che può essere usata come texture.",
- "Use a two step process to partially create an image at smaller resolution, upscale, and then improve details in it without changing composition": "Usa un processo a due step per creare parzialmente un'immagine a bassa risoluzione, eseguire l'upscale e dopo migliorare i dettagli senza cambiarne la composizione.",
- "Determines how little respect the algorithm should have for image's content. At 0, nothing will change, and at 1 you'll get an unrelated image. With values below 1.0, processing will take less steps than the Sampling Steps slider specifies.": "Determines how little respect the algorithm should have for image's content. At 0, nothing will change, and at 1 you'll get an unrelated image. With values below 1.0, processing will take less steps than the Sampling Steps slider specifies.",
- "How many batches of images to create": "Quanti batch di immagini creare in una sola generazione",
- "How many image to create in a single batch": "Quante immagini creare per ogni singolo batch",
- "Classifier Free Guidance Scale - how strongly the image should conform to prompt - lower values produce more creative results": "Classifier Free Guidance Scale - quanto l'immagine sarà conforme al prompt - valori bassi generano risultati più creativi",
- "A value that determines the output of random number generator - if you create an image with same parameters and seed as another image, you'll get the same result": "Un valore che determina l'output del generatore casuale di numeri - se crei un'immagine con gli stessi parametri e seed, otterrai lo stesso risultato",
- "Set seed to -1, which will cause a new random number to be used every time": "Imposta il seed a -1, dunque verrà usato un numero diverso ogni volta",
- "Reuse seed from last generation, mostly useful if it was randomed": "Riutilizza il seed dall'ultima generazione, utile nel caso fosse casuale",
- "Seed of a different picture to be mixed into the generation.": "Seed di differenti generazioni, mescolati nella generazione corrente.",
- "How strong of a variation to produce. At 0, there will be no effect. At 1, you will get the complete picture with variation seed (except for ancestral samplers, where you will just get something).": "How strong of a variation to produce. At 0, there will be no effect. At 1, you will get the complete picture with variation seed (except for ancestral samplers, where you will just get something).",
- "Make an attempt to produce a picture similar to what would have been produced with same seed at specified resolution": "Prova a generare immagini simili a quelle che sarebbero state prodotte con lo stesso seed ad una specifica risoluzione",
- "Separate a list of words with commas, and the first word will be used as a keyword: script will search for this word in the prompt, and replace it with others": "Separa una lista di parole usando le virgole, la prima parola verrà usata come parola chiave: lo script cercherà la parola nel prompt e la rimpiazzerà con le altre",
- "Separate values for X axis using commas.": "Separa i valori per l'asse X usando le virgole.",
- "Separate values for Y axis using commas.": "Separa i valori per l'asse Y usando le virgole.",
- "Write image to a directory (default - log/images) and generation parameters into csv file.": "Salva l'immagine in una cartella (default - log/images) e i parametri di generazione in un file CSV.",
- "Open images output directory": "Apri la cartella di output delle immagini",
- "How much to blur the mask before processing, in pixels.": "Quanto sfocare le maschere prima di processarle, in pixel.",
- "What to put inside the masked area before processing it with Stable Diffusion.": "Cosa inserire nell'area di mascheramento prima di processarla con Stable Diffusion.",
- "fill it with colors of the image": "riempi con colori dell'immagine",
- "keep whatever was there originally": "mantieni qualsiasi cosa ci fosse originariamente",
- "fill it with latent space noise": "riempi con latent space noise",
- "fill it with latent space zeroes": "riempi con latent space zeroes",
- "Upscale masked region to target resolution, do inpainting, downscale back and paste into original image": "Effettua l'Upscale della regione mascherata alla risoluzione obiettivo, effettua l'inpainting, esegue il downscale e lo incolla nell'immagine originale",
- "Resize image to target resolution. Unless height and width match, you will get incorrect aspect ratio.": "Ridimensiona l'immagine alla risoluzione obiettivo. Se l'altezza e la larghezza non coincidono, il risultato avrà un'aspect ratio scorretto.",
- "Resize the image so that entirety of target resolution is filled with the image. Crop parts that stick out.": "Ridimensiona l'immagine affinché l'intera risoluzione obiettivo sia riempita con l'immagine. Taglia le parti che restano fuori.",
- "Resize the image so that entirety of image is inside target resolution. Fill empty space with image's colors.": "RRidimensiona l'immagine affinché l'intera risoluzione obiettivo sia riempita con l'immagine. Riempie gli spazi vuoti con i colori dell'immagine.",
- "How many times to repeat processing an image and using it as input for the next iteration": "Quante volte processare un immagine e usarla come input per la prossima iterazione",
- "In loopback mode, on each loop the denoising strength is multiplied by this value. <1 means decreasing variety so your sequence will converge on a fixed picture. >1 means increasing variety so your sequence will become more and more chaotic.": "In modalità Loopback, per ogni loop la denoising strength sarà moltiplicata per il suo valore. <1 significa ridurre la varietà, dunque la sequenza convergerà in un'immagine più sistemata. >1 significa aumentare la varietà, quindi la sequenza sarà sempre più caotica.",
- "For SD upscale, how much overlap in pixels should there be between tiles. Tiles overlap so that when they are merged back into one picture, there is no clearly visible seam.": "Per l'upscale in SD, quanta sovrapposizione vi sarà in pixel per ogni tile. I tile si sovrapporranno in modo da essere fusi insieme in una singola immagine. Non vi sarà alcuna linea visibile.",
- "A directory on the same machine where the server is running.": "Una cartella nella stessa macchina in cui il server è in funzione.",
- "Leave blank to save images to the default path.": "Lascia vuoto per salvare le immagini nel percorso di default.",
- "Result = A * (1 - M) + B * M": "Risultato = A * (1 - M) + B * M",
- "Result = A + (B - C) * M": "Risultato = A + (B - C) * M",
- "1st and last digit must be 1. ex:'1, 2, 1'": "Il primo e l'ulitmo carattere devono essere 1. es:'1, 2, 1'",
- "Path to directory with input images": "Percorso della cartella con le immagini di input",
- "Path to directory where to write outputs": "Percorso della cartella dove posizione le immagini di output",
- "Input images directory": "Cartella immagini di input",
- "Use following tags to define how filenames for images are chosen: [steps], [cfg], [prompt], [prompt_no_styles], [prompt_spaces], [width], [height], [styles], [sampler], [seed], [model_hash], [prompt_words], [date], [datetime], [datetime], [datetime], [job_timestamp]; leave empty for default.": "Usa i seguenti tag per definire come i nomi dei file saranno scelti: [steps], [cfg], [prompt], [prompt_no_styles], [prompt_spaces], [width], [height], [styles], [sampler], [seed], [model_hash], [prompt_words], [date], [datetime], [datetime], [datetime], [job_timestamp]; lascia vuoto per default.",
- "If this option is enabled, watermark will not be added to created images. Warning: if you do not add watermark, you may be behaving in an unethical manner.": "Se questa opzione non è abilita, i watermark non verranno aggiunti. Attenzione: se non aggiungi i watermark, potresti star agendo in modo non etico.",
- "Use following tags to define how subdirectories for images and grids are chosen: [steps], [cfg], [prompt], [prompt_no_styles], [prompt_spaces], [width], [height], [styles], [sampler], [seed], [model_hash], [prompt_words], [date], [datetime], [datetime], [datetime], [job_timestamp]; leave empty for default.": "Use following tags to define how subdirectories for images and grids are chosen: [steps], [cfg], [prompt], [prompt_no_styles], [prompt_spaces], [width], [height], [styles], [sampler], [seed], [model_hash], [prompt_words], [date], [datetime], [datetime], [datetime], [job_timestamp]; leave empty for default.",
- "Restore low quality faces using GFPGAN neural network": "Ripristina i volti in bassa qualità usando la rete neurale GFPGAN",
- "This regular expression will be used extract words from filename, and they will be joined using the option below into label text used for training. Leave empty to keep filename text as it is.": "Questa espressione regolare verrà usata per estrarre parole dai nomi dei file, e verranno uniti usanto le opzioni indicate sotto per il training. Lascia vuoto per mantenere il nome del file così com'è.",
- "This string will be used to join split words into a single line if the option above is enabled.": "Questa stringa sarà usata per unire parole tagliate in una sola riga se l'opzione sopra è abilitata.",
- "List of setting names, separated by commas, for settings that should go to the quick access bar at the top, rather than the usual setting tab. See modules/shared.py for setting names. Requires restarting to apply.": "List of setting names, separated by commas, for settings that should go to the quick access bar at the top, rather than the usual setting tab. See modules/shared.py for setting names. Requires restarting to apply.",
- "If this values is non-zero, it will be added to seed and used to initialize RNG for noises when using samplers with Eta. You can use this to produce even more variation of images, or you can use this to match images of other software if you know what you are doing.": "If this values is non-zero, it will be added to seed and used to initialize RNG for noises when using samplers with Eta. You can use this to produce even more variation of images, or you can use this to match images of other software if you know what you are doing.",
- "Enable Autocomplete": "Abilita Autocompletamento"
-}
+ "⤡": "⤡",
+ "⊞": "⊞",
+ "×": "×",
+ "❮": "❮",
+ "❯": "❯",
+ "Loading...": "Caricamento...",
+ "view": "mostra ",
+ "api": "API",
+ "•": " • ",
+ "built with gradio": " Sviluppato con Gradio",
+ "Stable Diffusion checkpoint": "Stable Diffusion checkpoint",
+ "txt2img": "txt2img",
+ "img2img": "img2img",
+ "Extras": "Extra",
+ "PNG Info": "Info PNG",
+ "Checkpoint Merger": "Miscelatore di Checkpoint",
+ "Train": "Addestramento",
+ "Create aesthetic embedding": "Crea incorporamento estetico",
+ "Dataset Tag Editor": "Dataset Tag Editor",
+ "Deforum": "Deforum",
+ "Artists To Study": "Artisti per studiare",
+ "Image Browser": "Galleria immagini",
+ "Inspiration": "Ispirazione",
+ "Settings": "Impostazioni",
+ "Prompt": "Prompt",
+ "Negative prompt": "Prompt negativo",
+ "Run": "Esegui",
+ "Skip": "Salta",
+ "Interrupt": "Interrompi",
+ "Generate": "Genera",
+ "Style 1": "Stile 1",
+ "Style 2": "Stile 2",
+ "Label": "Etichetta",
+ "File": "File",
+ "Drop File Here": "Trascina il file qui",
+ "-": "-",
+ "or": "o",
+ "Click to Upload": "Clicca per caricare",
+ "Image": "Immagine",
+ "Check progress": "Controlla i progressi",
+ "Check progress (first)": "Controlla i progressi (primo)",
+ "Sampling Steps": "Passi di campionamento",
+ "Sampling method": "Metodo di campionamento",
+ "Euler a": "Euler a",
+ "Euler": "Euler",
+ "LMS": "LMS",
+ "Heun": "Heun",
+ "DPM2": "DPM2",
+ "DPM2 a": "DPM2 a",
+ "DPM fast": "DPM fast",
+ "DPM adaptive": "DPM adaptive",
+ "LMS Karras": "LMS Karras",
+ "DPM2 Karras": "DPM2 Karras",
+ "DPM2 a Karras": "DPM2 a Karras",
+ "DDIM": "DDIM",
+ "PLMS": "PLMS",
+ "Width": "Larghezza",
+ "Height": "Altezza",
+ "Restore faces": "Restaura i volti",
+ "Tiling": "Piastrellatura",
+ "Highres. fix": "Correzione alta risoluzione",
+ "Firstpass width": "Larghezza del primo passaggio",
+ "Firstpass height": "Altezza del primo passaggio",
+ "Denoising strength": "Forza del Denoising",
+ "Batch count": "Lotti di immagini",
+ "Batch size": "Immagini per lotto",
+ "CFG Scale": "Scala CFG",
+ "Seed": "Seme",
+ "Extra": "Extra",
+ "Variation seed": "Seme della variazione",
+ "Variation strength": "Forza della variazione",
+ "Resize seed from width": "Ridimensiona il seme dalla larghezza",
+ "Resize seed from height": "Ridimensiona il seme dall'altezza",
+ "Open for Clip Aesthetic!": "Apri per Estetica CLIP!",
+ "▼": "▼",
+ "Aesthetic weight": "Estetica - Peso",
+ "Aesthetic steps": "Estetica - Passi",
+ "Aesthetic learning rate": "Estetica - Tasso di apprendimento",
+ "Slerp interpolation": "Interpolazione Slerp",
+ "Aesthetic imgs embedding": "Estetica - Incorporamento di immagini",
+ "None": "Nessuno",
+ "Aesthetic text for imgs": "Estetica - Testo per le immagini",
+ "Slerp angle": "Angolo Slerp",
+ "Is negative text": "È un testo negativo",
+ "Script": "Script",
+ "Random": "Random",
+ "Advanced prompt matrix": "Matrice di prompt avanzata",
+ "Alternate Sampler Noise Schedules": "Metodi alternativi di campionamento del rumore",
+ "Asymmetric tiling": "Piastrellatura asimmetrica",
+ "Custom code": "Custom code",
+ "Dynamic Prompting v0.2": "Prompt dinamici v0.2",
+ "Embedding to Shareable PNG": "Incorporamento convertito in PNG condivisibile",
+ "Force symmetry": "Forza la simmetria",
+ "Prompts interpolation": "Interpola Prompt",
+ "Prompt matrix": "Matrice dei prompt",
+ "Prompt morph": "Metamorfosi del prompt",
+ "Prompts from file or textbox": "Prompt da file o da casella di testo",
+ "To Infinity and Beyond": "Verso l'infinito e oltre",
+ "Seed travel": "Seed travel",
+ "Shift attention": "Sposta l'attenzione",
+ "Text to Vector Graphics": "Da testo a grafica vettoriale",
+ "X/Y plot": "Grafico X/Y",
+ "X/Y/Z plot": "Grafico X/Y/Z",
+ "Create inspiration images": "Crea immagini di ispirazione",
+ "Loops": "Loops",
+ "step1 min/max": "step1 min/max",
+ "step2 min/max": "step2 min/max",
+ "cfg1 min/max": "cfg1 min/max",
+ "cfg2 min/max": "cfg2 min/max",
+ "Keep -1 for seeds": "Keep -1 for seeds",
+ "Usage: a wearing ": "Utilizzo: a wearing ",
+ "Noise Scheduler": "Programmatore del rumore",
+ "Default": "Predefinito",
+ "Karras": "Karras",
+ "Exponential": "Esponenziale",
+ "Variance Preserving": "Conservazione della Varianza",
+ "Sigma min": "Sigma min",
+ "Sigma max": "Sigma max",
+ "Sigma rho (Karras only)": "Sigma rho (Solo Karras)",
+ "Beta distribution (VP only)": "Distribuzione Beta (Solo CV)",
+ "Beta min (VP only)": "Beta min (Solo CV)",
+ "Epsilon (VP only)": "Epsilon (Solo CV)",
+ "Tile X": "Piastrella asse X",
+ "Tile Y": "Piastrella asse Y",
+ "Python code": "Codice Python",
+ "Combinatorial generation": "Generazione combinatoria",
+ "Combinations": "Combinazioni",
+ "Choose a number of terms from a list, in this case we choose two artists": "Scegli un numero di termini da un elenco, in questo caso scegliamo due artisti",
+ "{2$$artist1|artist2|artist3}": "{2$$artist1|artist2|artist3}",
+ "If $$ is not provided, then 1$$ is assumed.": "Se $$ non viene fornito, si presume 1$$.",
+ "{1-3$$artist1|artist2|artist3}": "{1-3$$artist1|artist2|artist3}",
+ "In this case, a random number of artists between 1 and 3 is chosen.": "In questo caso viene scelto un numero casuale di artisti compreso tra 1 e 3.",
+ "Wildcards": "Termini jolly",
+ "If the groups wont drop down click": "Se i gruppi non vengono visualizzati, clicca",
+ "here": "qui",
+ "to fix the issue.": "per correggere il problema.",
+ "WILDCARD_DIR: scripts/wildcards": "WILDCARD_DIR: scripts/wildcards",
+ "You can add more wildcards by creating a text file with one term per line and name is mywildcards.txt. Place it in scripts/wildcards.": "Puoi aggiungere termini jolly creando un file di testo con un termine per riga e nominandolo, per esempio, mywildcards.txt. Inseriscilo in scripts/wildcards.",
+ "__/mywildcards__": "__/mywildcards__",
+ "will then become available.": "diverrà quindi disponibile.",
+ "Source embedding to convert": "Incorporamento sorgente da convertire",
+ "Embedding token": "Token Incorporamento",
+ "Output directory": "Cartella di output",
+ "Horizontal symmetry": "Simmetria orizzontale",
+ "Vertical symmetry": "Simmetria verticale",
+ "Alt. symmetry method (blending)": "Alt. symmetry method (blending)",
+ "Apply every n steps": "Applica ogni n passi",
+ "Skip last n steps": "Salta gli ultimi n passi",
+ "Interpolation prompt": "Prompt di interpolazione",
+ "Number of images": "Numero di immagini",
+ "Make a gif": "Crea GIF",
+ "Duration of images (ms)": "Durata delle immagini (ms)",
+ "Put variable parts at start of prompt": "Inserisce le parti variabili all'inizio del prompt",
+ "Keyframe Format:": "Formato dei fotogrammi chiave:",
+ "Seed | Prompt or just Prompt": "Seme | Prompt o semplicemente Prompt",
+ "Prompt list": "Elenco dei prompt",
+ "Number of images between keyframes": "Numero di immagini tra fotogrammi chiave",
+ "Save results as video": "Salva i risultati come video",
+ "Frames per second": "Fotogrammi al secondo",
+ "Iterate seed every line": "Iterare il seme per ogni riga",
+ "List of prompt inputs": "Elenco di prompt di input",
+ "Upload prompt inputs": "Carica un file contenente i prompt di input",
+ "n": "n",
+ "Destination seed(s) (Comma separated)": "Seme/i di destinazione (separati da virgola)",
+ "Only use Random seeds (Unless comparing paths)": "Usa solo semi casuali (a meno che non si confrontino i percorsi)",
+ "Number of random seed(s)": "Numero di semi casuali",
+ "Compare paths (Separate travels from 1st seed to each destination)": "Confronta percorsi (transizioni separate dal primo seme a ciascuna destinazione)",
+ "Steps": "Passi",
+ "Loop back to initial seed": "Ritorna al seme iniziale",
+ "Bump seed (If > 0 do a Compare Paths but only one image. No video)": "Bump seed (If > 0 do a Compare Paths but only one image. No video)",
+ "Show generated images in ui": "Mostra le immagini generate nell'interfaccia utente",
+ "\"Hug the middle\" during interpolation": "\"Hug the middle\" durante l'interpolazione",
+ "Allow the default Euler a Sampling method. (Does not produce good results)": "Consenti Euler_a come metodo di campionamento predefinito. (Non produce buoni risultati)",
+ "Visual style": "Stile visivo",
+ "Illustration": "Illustrazione",
+ "Logo": "Logo",
+ "Drawing": "Disegno",
+ "Artistic": "Artistico",
+ "Tattoo": "Tatuaggio",
+ "Gothic": "Gotico",
+ "Anime": "Anime",
+ "Cartoon": "Cartoon",
+ "Sticker": "Etichetta",
+ "Gold Pendant": "Ciondolo in oro",
+ "None - prompt only": "Nessuno - solo prompt",
+ "Enable Vectorizing": "Abilita vettorizzazione",
+ "Output format": "Formato di output",
+ "svg": "svg",
+ "pdf": "pdf",
+ "White is Opaque": "Il bianco è opaco",
+ "Cut white margin from input": "Taglia il margine bianco dall'input",
+ "Keep temp images": "Conserva le immagini temporanee",
+ "Threshold": "Soglia",
+ "Transparent PNG": "PNG trasparente",
+ "Noise Tolerance": "Tolleranza al rumore",
+ "Quantize": "Quantizzare",
+ "X type": "Parametro asse X",
+ "Nothing": "Niente",
+ "Var. seed": "Seme della variazione",
+ "Var. strength": "Forza della variazione",
+ "Prompt S/R": "Cerca e Sostituisci nel Prompt",
+ "Prompt order": "In ordine di prompt",
+ "Sampler": "Campionatore",
+ "Checkpoint name": "Nome del checkpoint",
+ "Hypernetwork": "Iperrete",
+ "Hypernet str.": "Forza della Iperrete",
+ "Sigma Churn": "Sigma Churn",
+ "Sigma noise": "Sigma noise",
+ "Eta": "ETA",
+ "Clip skip": "Salta CLIP",
+ "Denoising": "Riduzione del rumore",
+ "Cond. Image Mask Weight": "Cond. Image Mask Weight",
+ "X values": "Valori per X",
+ "Y type": "Parametro asse Y",
+ "Y values": "Valori per Y",
+ "Draw legend": "Disegna legenda",
+ "Include Separate Images": "Includi immagini separate",
+ "Z type": "Parametro asse Z",
+ "Z values": "Valori per Z",
+ "Artist or styles name list. '.txt' files with one name per line": "Elenco nomi di artisti o stili. File '.txt' con un nome per riga",
+ "Prompt words before artist or style name": "Parole chiave prima del nome dell'artista o dello stile",
+ "Prompt words after artist or style name": "Parole chiave dopo il nome dell'artista o dello stile",
+ "Negative Prompt": "Prompt negativo",
+ "Save": "Salva",
+ "Send to img2img": "Invia a img2img",
+ "Send to inpaint": "Invia a inpaint",
+ "Send to extras": "Invia a extra",
+ "Make Zip when Save?": "Crea un file ZIP quando si usa 'Salva'",
+ "Textbox": "Casella di testo",
+ "Interrogate\nCLIP": "Interroga\nCLIP",
+ "Interrogate\nDeepBooru": "Interroga\nDeepBooru",
+ "Inpaint": "Inpaint",
+ "Batch img2img": "Lotti img2img",
+ "Image for img2img": "Immagine per img2img",
+ "Drop Image Here": "Trascina l'immagine qui",
+ "Image for inpainting with mask": "Immagine per inpainting con maschera",
+ "Mask": "Maschera",
+ "Mask blur": "Sfocatura maschera",
+ "Mask mode": "Modalità maschera",
+ "Draw mask": "Disegna maschera",
+ "Upload mask": "Carica maschera",
+ "Masking mode": "Modalità mascheratura",
+ "Inpaint masked": "Inpaint mascherato",
+ "Inpaint not masked": "Inpaint non mascherato",
+ "Masked content": "Contenuto mascherato",
+ "fill": "riempi",
+ "original": "originale",
+ "latent noise": "rumore latente",
+ "latent nothing": "latenza nulla",
+ "Inpaint at full resolution": "Inpaint alla massima risoluzione",
+ "Inpaint at full resolution padding, pixels": "Inpaint con riempimento a piena risoluzione, pixel",
+ "Process images in a directory on the same machine where the server is running.": "Elabora le immagini in una cartella sulla stessa macchina su cui è in esecuzione il server.",
+ "Use an empty output directory to save pictures normally instead of writing to the output directory.": "Usa una cartella di output vuota per salvare normalmente le immagini invece di scrivere nella cartella di output.",
+ "Input directory": "Cartella di Input",
+ "Resize mode": "Modalità di ridimensionamento",
+ "Just resize": "Ridimensiona solamente",
+ "Crop and resize": "Ritaglia e ridimensiona",
+ "Resize and fill": "Ridimensiona e riempie",
+ "Advanced loopback": "Advanced loopback",
+ "Animator v5": "Animator v5",
+ "External Image Masking": "Immagine esterna per la mascheratura",
+ "img2img alternative test": "Test alternativo per img2img",
+ "img2tiles": "img2tiles",
+ "Interpolate": "Interpolare",
+ "Loopback": "Rielaborazione ricorsiva",
+ "Loopback and Superimpose": "Rielabora ricorsivamente e sovraimponi",
+ "Outpaint Canvas Region": "Regione della tela di Outpaint",
+ "Outpainting mk2": "Outpainting mk2",
+ "Poor man's outpainting": "Poor man's outpainting",
+ "SD upscale": "Ampliamento SD",
+ "txt2mask v0.1.1": "txt2mask v0.1.1",
+ "[C] Video to video": "[C] Video to video",
+ "Videos": "Filmati",
+ "Deforum-webui (use tab extension instead!)": "Deforum-webui (usa piuttosto la scheda Deforum delle estensioni!)",
+ "Use first image colors (custom color correction)": "Use first image colors (custom color correction)",
+ "Denoising strength change factor (overridden if proportional used)": "Denoising strength change factor (overridden if proportional used)",
+ "Zoom level": "Zoom level",
+ "Direction X": "Direction X",
+ "Direction Y": "Direction Y",
+ "Denoising strength start": "Denoising strength start",
+ "Denoising strength end": "Denoising strength end",
+ "Denoising strength proportional change starting value": "Denoising strength proportional change starting value",
+ "Denoising strength proportional change ending value (0.1 = disabled)": "Denoising strength proportional change ending value (0.1 = disabled)",
+ "Saturation enhancement per image": "Saturation enhancement per image",
+ "Use sine denoising strength variation": "Use sine denoising strength variation",
+ "Phase difference": "Phase difference",
+ "Denoising strength exponentiation": "Denoising strength exponentiation",
+ "Use sine zoom variation": "Use sine zoom variation",
+ "Zoom exponentiation": "Zoom exponentiation",
+ "Use multiple prompts": "Use multiple prompts",
+ "Same seed per prompt": "Same seed per prompt",
+ "Same seed for everything": "Same seed for everything",
+ "Original init image for everything": "Original init image for everything",
+ "Multiple prompts : 1 line positive, 1 line negative, leave a blank line for no negative": "Multiple prompts : 1 line positive, 1 line negative, leave a blank line for no negative",
+ "Render these video formats:": "Renderizza in questi formati:",
+ "GIF": "GIF",
+ "MP4": "MP4",
+ "WEBM": "WEBM",
+ "Animation Parameters": "Parametri animazione",
+ "Total Animation Length (s)": "Durata totale dell'animazione (s)",
+ "Framerate": "Frequenza dei fotogrammi",
+ "Initial Parameters": "Parametri iniziali",
+ "Denoising Strength (overrides img2img slider)": "Intensità di riduzione del rumore (sovrascrive il cursore img2img)",
+ "Seed_March": "Seed_March",
+ "Smoothing_Frames": "Smoothing_Frames",
+ "Zoom Factor (scale/s)": "Fattore di ingrandimento (scala/s)",
+ "X Pixel Shift (pixels/s)": "X Pixel Shift (pixels/s)",
+ "Y Pixel Shift (pixels/s)": "Y Pixel Shift (pixels/s)",
+ "Rotation (deg/s)": "Rotazione (gradi/s)",
+ "Prompt Template, applied to each keyframe below": "Modello di prompt, applicato a ciascun fotogramma chiave qui di seguito",
+ "Positive Prompts": "Prompt positivi",
+ "Negative Prompts": "Prompt negativi",
+ "Props": "Props",
+ "Folder:": "Cartella:",
+ "Supported Keyframes:": "Fotogrammi chiave supportati:",
+ "time_s | source | video, images, img2img | path": "time_s | source | video, images, img2img | path",
+ "time_s | prompt | positive_prompts | negative_prompts": "time_s | prompt | positive_prompts | negative_prompts",
+ "time_s | template | positive_prompts | negative_prompts": "time_s | template | positive_prompts | negative_prompts",
+ "time_s | transform | zoom | x_shift | y_shift | rotation": "time_s | transform | zoom | x_shift | y_shift | rotation",
+ "time_s | seed | new_seed_int": "time_s | seed | new_seed_int",
+ "time_s | denoise | denoise_value": "time_s | denoise | denoise_value",
+ "time_s | set_text | textblock_name | text_prompt | x | y | w | h | fore_color | back_color | font_name": "time_s | set_text | textblock_name | text_prompt | x | y | w | h | fore_color | back_color | font_name",
+ "time_s | clear_text | textblock_name": "time_s | clear_text | textblock_name",
+ "time_s | prop | prop_name | prop_filename | x pos | y pos | scale | rotation": "time_s | prop | prop_name | prop_filename | x pos | y pos | scale | rotation",
+ "time_s | set_stamp | stamp_name | stamp_filename | x pos | y pos | scale | rotation": "time_s | set_stamp | stamp_name | stamp_filename | x pos | y pos | scale | rotation",
+ "time_s | clear_stamp | stamp_name": "time_s | clear_stamp | stamp_name",
+ "time_s | col_set": "time_s | col_set",
+ "time_s | col_clear": "time_s | col_clear",
+ "time_s | model | sd-v1-4_f16, sd-v1-5-inpainting, sd-v1-5-pruned-emaonly_fp16, wd-v1-3-float16": "time_s | model | sd-v1-4_f16, sd-v1-5-inpainting, sd-v1-5-pruned-emaonly_fp16, wd-v1-3-float16",
+ "Keyframes:": "Fotogrammi chiave:",
+ "Masking preview size": "Dimensione dell'anteprima della mascheratura",
+ "Draw new mask on every run": "Disegna una nuova maschera ad ogni esecuzione",
+ "Process non-contigious masks separately": "Elaborare le maschere non contigue separatamente",
+ "should be 2 or lower.": "dovrebbe essere 2 o inferiore.",
+ "Override `Sampling method` to Euler?(this method is built for it)": "Sovrascrivi il `Metodo di campionamento` con Eulero? (questo metodo è stato creato per questo)",
+ "Override `prompt` to the same value as `original prompt`?(and `negative prompt`)": "Sovrascrivi `prompt` con lo stesso valore del `prompt originale`? (e `prompt negativo`)",
+ "Original prompt": "Prompt originale",
+ "Original negative prompt": "Prompt negativo originale",
+ "Override `Sampling Steps` to the same val due as `Decode steps`?": "Sovrascrivere 'Passi di campionamento' allo stesso valore di 'Passi di decodifica'?",
+ "Decode steps": "Passi di decodifica",
+ "Override `Denoising strength` to 1?": "Sostituisci 'Forza di denoising' a 1?",
+ "Decode CFG scale": "Scala CFG di decodifica",
+ "Randomness": "Casualità",
+ "Sigma adjustment for finding noise for image": "Regolazione Sigma per trovare il rumore per l'immagine",
+ "Tile size": "Dimensione piastrella",
+ "Tile overlap": "Sovrapposizione piastrella",
+ "alternate img2img imgage": "alternate img2img imgage",
+ "interpolation values": "Valori di interpolazione",
+ "Refinement loops": "Cicli di affinamento",
+ "Loopback alpha": "Trasparenza rielaborazione ricorsiva",
+ "Border alpha": "Trasparenza del bordo",
+ "Blending strides": "Passi di fusione",
+ "Reuse Seed": "Riusa il seme",
+ "One grid": "Singola griglia",
+ "Interpolate VarSeed": "Interpola il seme di variazione",
+ "Paste on mask": "Incolla sulla maschera",
+ "Inpaint all": "Inpaint tutto",
+ "Interpolate in latent": "Interpola in latenza",
+ "Denoising strength change factor": "Fattore di variazione dell'intensità di denoising",
+ "Superimpose alpha": "Sovrapporre Alpha",
+ "Show extra settings": "Mostra impostazioni aggiuntive",
+ "Reuse seed": "Riusa il seme",
+ "CFG decay factor": "Fattore di decadimento CFG",
+ "CFG target": "CFG di destinazione",
+ "Show/Hide Canvas": "Mostra/Nascondi Tela",
+ "Left start coord": "Coordinate iniziali - Sinistra",
+ "top start coord": "Coordinate iniziali - Sopra",
+ "unused": "non usato",
+ "Recommended settings: Sampling Steps: 80-100, Sampler: Euler a, Denoising strength: 0.8": "Impostazioni consigliate: Passi di campionamento: 80-100, Campionatore: Euler a, Intensità denoising: 0.8",
+ "Pixels to expand": "Pixel da espandere",
+ "Outpainting direction": "Direzione di Outpainting",
+ "left": "sinistra",
+ "right": "destra",
+ "up": "sopra",
+ "down": "sotto",
+ "Fall-off exponent (lower=higher detail)": "Esponente di decremento (più basso=maggior dettaglio)",
+ "Color variation": "Variazione di colore",
+ "Will upscale the image to twice the dimensions; use width and height sliders to set tile size": "Aumenterà l'immagine al doppio delle dimensioni; utilizzare i cursori di larghezza e altezza per impostare la dimensione della piastrella",
+ "Upscaler": "Ampliamento immagine",
+ "Lanczos": "Lanczos",
+ "LDSR": "LDSR",
+ "ESRGAN_4x": "ESRGAN_4x",
+ "ScuNET GAN": "ScuNET GAN",
+ "ScuNET PSNR": "ScuNET PSNR",
+ "SwinIR 4x": "SwinIR 4x",
+ "Mask prompt": "Prompt maschera",
+ "Negative mask prompt": "Prompt maschera negativa",
+ "Mask precision": "Precisione della maschera",
+ "Mask padding": "Estendi i bordi della maschera",
+ "Brush mask mode": "Modalità pennello maschera",
+ "discard": "Scarta",
+ "add": "Aggiungi",
+ "subtract": "Sottrai",
+ "Show mask in output?": "Mostra maschera in uscita?",
+ "If you like my work, please consider showing your support on": "Se ti piace il mio lavoro, per favore considera di mostrare il tuo supporto su ",
+ "Patreon": "Patreon",
+ "Input file path": "Percorso file di input",
+ "CRF (quality, less is better, x264 param)": "CRF (qualità, meno è meglio, x264 param)",
+ "FPS": "FPS",
+ "Seed step size": "Ampiezza del gradiente del seme",
+ "Seed max distance": "Distanza massima del seme",
+ "Start time": "Orario di inizio",
+ "End time": "Orario di fine",
+ "End Prompt Blend Trigger Percent": "Percentuale di innesco del mix col prompt finale",
+ "Prompt end": "Prompt finale",
+ "Smooth video": "Rendi il filmato fluido",
+ "Seconds": "Secondi",
+ "Zoom": "Zoom",
+ "Rotate": "Ruota",
+ "Degrees": "Gradi",
+ "Is the Image Tiled?": "L'immagine è piastrellata?",
+ "TranslateX": "Traslazione X",
+ "Left": "Sinistra",
+ "PercentX": "Percentuale X",
+ "TranslateY": "Traslazione Y",
+ "Up": "Sopra",
+ "PercentY": "Percentuale Y",
+ "Show generated pictures in ui": "Mostra le immagini generate nell'interfaccia utente",
+ "Deforum v0.5-webui-beta": "Deforum v0.5-webui-beta",
+ "This script is deprecated. Please use the full Deforum extension instead.": "Questo script è obsoleto. Utilizzare invece l'estensione Deforum completa.",
+ "Update instructions:": "Istruzioni per l'aggiornamento:",
+ "github.com/deforum-art/deforum-for-automatic1111-webui/blob/automatic1111-webui/README.md": "github.com/deforum-art/deforum-for-automatic1111-webui/blob/automatic1111-webui/README.md",
+ "discord.gg/deforum": "discord.gg/deforum",
+ "Single Image": "Singola immagine",
+ "Batch Process": "Elaborare a lotti",
+ "Batch from Directory": "Lotto da cartella",
+ "Source": "Sorgente",
+ "Show result images": "Mostra le immagini dei risultati",
+ "Scale by": "Scala di",
+ "Scale to": "Scala a",
+ "Resize": "Ridimensiona",
+ "Crop to fit": "Ritaglia per adattare",
+ "Upscaler 2 visibility": "Visibilità Ampliamento immagine 2",
+ "GFPGAN visibility": "Visibilità GFPGAN",
+ "CodeFormer visibility": "Visibilità CodeFormer",
+ "CodeFormer weight (0 = maximum effect, 1 = minimum effect)": "Peso di CodeFormer (0 = effetto massimo, 1 = effetto minimo)",
+ "Upscale Before Restoring Faces": "Amplia prima di restaurare i volti",
+ "Send to txt2img": "Invia a txt2img",
+ "A merger of the two checkpoints will be generated in your": "I due checkpoint verranno fusi nella cartella dei",
+ "checkpoint": "checkpoint",
+ "directory.": ".",
+ "Primary model (A)": "Modello Primario (A)",
+ "Secondary model (B)": "Modello Secondario (B)",
+ "Tertiary model (C)": "Modello Terziario (C)",
+ "Custom Name (Optional)": "Nome personalizzato (facoltativo)",
+ "Multiplier (M) - set to 0 to get model A": "Moltiplicatore (M): impostare a 0 per ottenere il modello A",
+ "Interpolation Method": "Metodo di interpolazione",
+ "Weighted sum": "Somma pesata",
+ "Add difference": "Aggiungi differenza",
+ "Save as float16": "Salva come float16",
+ "See": "Consulta la ",
+ "wiki": "wiki",
+ "for detailed explanation.": " per una spiegazione dettagliata.",
+ "Create embedding": "Crea Incorporamento",
+ "Create hypernetwork": "Crea Iperrete",
+ "Preprocess images": "Preprocessa le immagini",
+ "Name": "Nome",
+ "Initialization text": "Testo di inizializzazione",
+ "Number of vectors per token": "Numero di vettori per token",
+ "Overwrite Old Embedding": "Sovrascrivi il vecchio incorporamento",
+ "Modules": "Moduli",
+ "Enter hypernetwork layer structure": "Immettere la struttura del livello della Iperrete",
+ "Select activation function of hypernetwork": "Selezionare la funzione di attivazione della Iperrete",
+ "linear": "linear",
+ "relu": "relu",
+ "leakyrelu": "leakyrelu",
+ "elu": "elu",
+ "swish": "swish",
+ "tanh": "tanh",
+ "sigmoid": "sigmoid",
+ "celu": "celu",
+ "gelu": "gelu",
+ "glu": "glu",
+ "hardshrink": "hardshrink",
+ "hardsigmoid": "hardsigmoid",
+ "hardtanh": "hardtanh",
+ "logsigmoid": "logsigmoid",
+ "logsoftmax": "logsoftmax",
+ "mish": "mish",
+ "prelu": "prelu",
+ "rrelu": "rrelu",
+ "relu6": "relu6",
+ "selu": "selu",
+ "silu": "silu",
+ "softmax": "softmax",
+ "softmax2d": "softmax2d",
+ "softmin": "softmin",
+ "softplus": "softplus",
+ "softshrink": "softshrink",
+ "softsign": "softsign",
+ "tanhshrink": "tanhshrink",
+ "threshold": "threshold",
+ "Select Layer weights initialization. relu-like - Kaiming, sigmoid-like - Xavier is recommended": "Seleziona inizializzazione dei pesi dei livelli. relu-like - Kaiming, Si consiglia sigmoid-like - Xavier",
+ "Normal": "Normal",
+ "KaimingUniform": "KaimingUniform",
+ "KaimingNormal": "KaimingNormal",
+ "XavierUniform": "XavierUniform",
+ "XavierNormal": "XavierNormal",
+ "Add layer normalization": "Aggiunge la normalizzazione del livello",
+ "Use dropout": "Usa Dropout",
+ "Overwrite Old Hypernetwork": "Sovrascrive la vecchia Iperrete",
+ "Source directory": "Cartella sorgente",
+ "Destination directory": "Cartella di destinazione",
+ "Existing Caption txt Action": "Azione sul testo della didascalia esistente",
+ "ignore": "ignora",
+ "copy": "copia",
+ "prepend": "anteporre",
+ "append": "appendere",
+ "Create flipped copies": "Crea copie specchiate",
+ "Split oversized images": "Dividi immagini di grandi dimensioni",
+ "Auto focal point crop": "Ritaglio automatico al punto focale",
+ "Use BLIP for caption": "Usa BLIP per la didascalia",
+ "Use deepbooru for caption": "Usa deepbooru per la didascalia",
+ "Split image threshold": "Soglia di divisione dell'immagine",
+ "Split image overlap ratio": "Rapporto di sovrapposizione dell'immagine",
+ "Focal point face weight": "Peso della faccia del punto focale",
+ "Focal point entropy weight": "Peso dell'entropia del punto focale",
+ "Focal point edges weight": "Peso dei bordi del punto focalePeso dei bordi del punto focale",
+ "Create debug image": "Crea immagine di debug",
+ "Preprocess": "Preprocessa",
+ "Train an embedding or Hypernetwork; you must specify a directory with a set of 1:1 ratio images": "Addestra un Incorporamento o Iperrete; è necessario specificare una directory con un set di immagini con rapporto 1:1",
+ "[wiki]": "[wiki]",
+ "Embedding": "Incorporamento",
+ "Embedding Learning rate": "Tasso di apprendimento Incorporamento",
+ "Hypernetwork Learning rate": "Tasso di apprendimento Iperrete",
+ "Dataset directory": "Cartella del Dataset",
+ "Log directory": "Cartella del registro",
+ "Prompt template file": "File modello prompt",
+ "Max steps": "Passi massimi",
+ "Save an image to log directory every N steps, 0 to disable": "Salva un'immagine nella cartella del registro ogni N passaggi, 0 per disabilitare",
+ "Save a copy of embedding to log directory every N steps, 0 to disable": "Salva una copia dell'incorporamento nella cartella del registro ogni N passaggi, 0 per disabilitare",
+ "Save images with embedding in PNG chunks": "Salva le immagini con l'incorporamento in blocchi PNG",
+ "Read parameters (prompt, etc...) from txt2img tab when making previews": "Legge i parametri (prompt, ecc...) dalla scheda txt2img durante la creazione delle anteprime",
+ "Train Hypernetwork": "Addestra Iperrete",
+ "Train Embedding": "Addestra Incorporamento",
+ "Create an aesthetic embedding out of any number of images": "Crea un'incorporamento estetico da qualsiasi numero di immagini",
+ "Create images embedding": "Crea incorporamento di immagini",
+ "-1": "-1",
+ "This extension works well with text captions in comma-separated style (such as the tags generated by DeepBooru interrogator).": "Questa estensione funziona bene con i sottotitoli di testo in stile separato da virgole (come i tag generati dall'interrogatore DeepBooru).",
+ "Save all changes": "Salva tutte le modifiche",
+ "Backup original text file (original file will be renamed like filename.000, .001, .002, ...)": "Backup del file di testo originale (il file originale verrà rinominato come nomefile.000, .001, .002, ...)",
+ "Note:": "Note:",
+ "New text file will be created if you are using filename as captions.": "Verrà creato un nuovo file di testo se si utilizza il nome del file come didascalia.",
+ "Results": "Risultati",
+ "Load": "Carica",
+ "Dataset Images": "Immagini del Dataset",
+ "Filter and Edit Tags": "Filtra e modifica i tag",
+ "Edit Caption of Selected Image": "Modifica la didascalia dell'immagine selezionata",
+ "Search tags / Filter images by tags": "Cerca tag / Filtra le immagini per tag",
+ "Search Tags": "Cerca tag",
+ "Clear all filters": "Rimuovi tutti i filtri",
+ "Sort by": "Ordina per",
+ "Alphabetical Order": "Ordine alfabetico",
+ "Frequency": "Frequenza",
+ "Sort Order": "Ordinamento",
+ "Ascending": "Ascendente",
+ "Descending": "Discendente",
+ "Filter Images by Tags": "Filtra le immagini per tag",
+ "Edit tags in filtered images": "Modifica i tag nelle immagini filtrate",
+ "Selected Tags": "Tag selezionati",
+ "Edit Tags": "Modificare i tag",
+ "Apply changes to filtered images": "Applica le modifiche alle immagini filtrate",
+ "Append additional tags to the beginning": "Aggiungi tag addizionali all'inizio",
+ "1. The selected tags are displayed in comma separated style.": "1. I tag selezionati vengono visualizzati in uno stile separato da virgole.",
+ "2. When changes are applied, all tags in each displayed images are replaced.": "2. Quando vengono applicate le modifiche, tutti i tag in ciascuna immagine visualizzata vengono sostituiti.",
+ "3. If you change some tags into blank, they will be erased.": "3. Se modifichi alcuni tag con uno spazio vuoto, verranno cancellati.",
+ "4. If you add some tags to the end, they will be appended to the end/beginning of the text file.": "4. Se aggiungi dei tag alla fine, questi verranno aggiunti alla fine/inizio del file di testo.",
+ "5. Changes are not applied to the text files until the \"Save all changes\" button is pressed.": "5. Le modifiche non vengono applicate ai file di testo finché non viene premuto il pulsante \"Salva tutte le modifiche\"..",
+ "ex A.": "esempio A.",
+ "Original Text = \"A, A, B, C\" Selected Tags = \"B, A\" Edit Tags = \"X, Y\"": "Testo originale = \"A, A, B, C\" Tag selezionati = \"B, A\" Modifica tag = \"X, Y\"",
+ "Result = \"Y, Y, X, C\" (B->X, A->Y)": "Risultato = \"Y, Y, X, C\" (B->X, A->Y)",
+ "ex B.": "esempio B.",
+ "Original Text = \"A, B, C\" Selected Tags = \"(nothing)\" Edit Tags = \"X, Y\"": "Testo originale = \"A, B, C\" Tag selezionati = \"(nothing)\" Modifica tag = \"X, Y\"",
+ "Result = \"A, B, C, X, Y\" (add X and Y to the end (default))": "Risultato = \"A, B, C, X, Y\" (aggiunge X e Y alla fine (predefinito))",
+ "Risultato = \"X, Y, A, B, C\" (aggiunge X e Y all'inizio (\"Aggiungi tag addizionali all'inizio\" selezionato))": "Risultato = \"X, Y, A, B, C\" (aggiunge X e Y all'inizio (\"Aggiungi tag addizionali all'inizio\" selezionato))",
+ "ex C.": "esempio C.",
+ "Original Text = \"A, B, C, D, E\" Selected Tags = \"A, B, D\" Edit Tags = \", X, \"": "Testo originale = \"A, B, C, D, E\" Tag selezionati = \"A, B, D\" Modifica tag = \", X, \"",
+ "Result = \"X, C, E\" (A->\"\", B->X, D->\"\")": "Risultato = \"X, C, E\" (A->\"\", B->X, D->\"\")",
+ "Caption of Selected Image": "Didascalia dell'immagine selezionata",
+ "Copy caption": "Copia didascalia",
+ "Edit Caption": "Modifica didascalia",
+ "Apply changes to selected image": "Applica le modifiche all'immagine selezionata",
+ "Changes are not applied to the text files until the \"Save all changes\" button is pressed.": "Le modifiche non vengono applicate ai file di testo finché non viene premuto il pulsante \"Salva tutte le modifiche\".",
+ "Info and links": "Info e link",
+ "Made by deforum.github.io, port for AUTOMATIC1111's webui maintained by kabachuha": "Realizzato da deforum.github.io, port per l'interfaccia web di AUTOMATIC1111 manutenuto da kabachuha",
+ "Original Deforum Github repo github.com/deforum/stable-diffusion": "Repository Github originale di Deforum github.com/deforum/stable-diffusion",
+ "This fork for auto1111's webui github.com/deforum-art/deforum-for-automatic1111-webui": "Questo fork è per l'interfaccia web di AUTOMATIC1111 github.com/deforum-art/deforum-for-automatic1111-webui",
+ "Join the official Deforum Discord discord.gg/deforum to share your creations and suggestions": "Unisciti al canale Discord ufficiale di Deforum discord.gg/deforum per condividere le tue creazioni e suggerimenti",
+ "User guide for v0.5 docs.google.com/document/d/1pEobUknMFMkn8F5TMsv8qRzamXX_75BShMMXV8IFslI/edit": "Manuale d'uso per la versione 0.5 docs.google.com/document/d/1pEobUknMFMkn8F5TMsv8qRzamXX_75BShMMXV8IFslI/edit",
+ "Math keyframing explanation docs.google.com/document/d/1pfW1PwbDIuW0cv-dnuyYj1UzPqe23BlSLTJsqazffXM/edit?usp=sharing": "Spiegazione della matematica dei fotogrammi chiave docs.google.com/document/d/1pfW1PwbDIuW0cv-dnuyYj1UzPqe23BlSLTJsqazffXM/edit?usp=sharing",
+ "Keyframes": "Fotogrammi chiave",
+ "Prompts": "Prompt",
+ "Init": "Inizializzare",
+ "Video output": "Uscita video",
+ "Run settings": "Esegui le impostazioni",
+ "Import settings from file": "Importa impostazioni da file",
+ "Override settings": "Sostituisci le impostazioni",
+ "Custom settings file": "File delle impostazioni personalizzate",
+ "Sampling settings": "Impostazioni di campionamento",
+ "override_these_with_webui": "Sovrascrivi con Web UI",
+ "W": "L",
+ "H": "A",
+ "seed": "Seme",
+ "sampler": "Campionatore",
+ "Enable extras": "Abilita Extra",
+ "subseed": "sub seme",
+ "subseed_strength": "Intensità subseme",
+ "steps": "passi",
+ "ddim_eta": "ETA DDIM",
+ "n_batch": "Numero lotto",
+ "make_grid": "Crea griglia",
+ "grid_rows": "Righe griglia",
+ "save_settings": "Salva impostazioni",
+ "save_samples": "Salva i campioni",
+ "display_samples": "Mostra i campioni",
+ "save_sample_per_step": "Salva campioni per passo",
+ "show_sample_per_step": "Mostra campioni per passo",
+ "Batch settings": "Impostazioni lotto",
+ "batch_name": "Nome del lotto",
+ "filename_format": "Formato nome del file",
+ "seed_behavior": "Comportamento seme",
+ "iter": "Iterativo",
+ "fixed": "Fisso",
+ "random": "Casuale",
+ "schedule": "Programmato",
+ "Animation settings": "Impostazioni animazione",
+ "animation_mode": "Modalità animazione",
+ "2D": "2D",
+ "3D": "3D",
+ "Video Input": "Ingresso video",
+ "max_frames": "Fotogrammi max",
+ "border": "Bordo",
+ "replicate": "Replica",
+ "wrap": "Impacchetta",
+ "Motion parameters:": "Parametri di movimento:",
+ "2D and 3D settings": "Impostazioni 2D e 3D",
+ "angle": "Angolo",
+ "zoom": "Zoom",
+ "translation_x": "Traslazione X",
+ "translation_y": "Traslazione Y",
+ "3D settings": "Impostazioni 3D",
+ "translation_z": "Traslazione Z",
+ "rotation_3d_x": "Rotazione 3D X",
+ "rotation_3d_y": "Rotazione 3D Y",
+ "rotation_3d_z": "Rotazione 3D Z",
+ "Prespective flip — Low VRAM pseudo-3D mode:": "Inversione prospettica: modalità pseudo-3D a bassa VRAM:",
+ "flip_2d_perspective": "Inverti prospettiva 2D",
+ "perspective_flip_theta": "Inverti prospettiva theta",
+ "perspective_flip_phi": "Inverti prospettiva phi",
+ "perspective_flip_gamma": "Inverti prospettiva gamma",
+ "perspective_flip_fv": "Inverti prospettiva fv",
+ "Generation settings:": "Impostazioni di generazione:",
+ "noise_schedule": "Pianificazione del rumore",
+ "strength_schedule": "Intensità della pianificazione",
+ "contrast_schedule": "Contrasto della pianificazione",
+ "cfg_scale_schedule": "Pianificazione della scala CFG",
+ "3D Fov settings:": "Impostazioni del campo visivo 3D:",
+ "fov_schedule": "Pianificazione del campo visivo",
+ "near_schedule": "Pianificazione da vicino",
+ "far_schedule": "Pianificazione da lontano",
+ "To enable seed schedule select seed behavior — 'schedule'": "Per abilitare la pianificazione del seme, seleziona il comportamento del seme — 'programma'",
+ "seed_schedule": "Pianificazione del seme",
+ "Coherence:": "Coerenza:",
+ "color_coherence": "Coerenza del colore",
+ "Match Frame 0 HSV": "Uguaglia HSV del fotogramma 0",
+ "Match Frame 0 LAB": "Uguaglia LAB del fotogramma 0",
+ "Match Frame 0 RGB": "Uguaglia RGB del fotogramma 0",
+ "diffusion_cadence": "Cadenza di diffusione",
+ "3D Depth Warping:": "Deformazione della profondità 3D:",
+ "use_depth_warping": "Usa la deformazione della profondità",
+ "midas_weight": "Peso MIDAS",
+ "near_plane": "Piano vicino",
+ "far_plane": "Piano lontano",
+ "fov": "Campo visivo",
+ "padding_mode": "Modalità di riempimento",
+ "reflection": "Rifletti",
+ "zeros": "Zeri",
+ "sampling_mode": "Modalità di campionamento",
+ "bicubic": "bicubic",
+ "bilinear": "bilinear",
+ "nearest": "nearest",
+ "save_depth_maps": "Salva le mappe di profondità",
+ "`animation_mode: None` batches on list of *prompts*. (Batch mode disabled atm, only animation_prompts are working)": "`modalità animazione: Nessuno` si inserisce nell'elenco di *prompt*. (Modalità batch disabilitata atm, funzionano solo i prompt di animazione)",
+ "*Important change from vanilla Deforum!*": "*Importante cambiamento rispetto alla versione originale di Deforum!*",
+ "This script uses the built-in webui weighting settings.": "Questo script utilizza le impostazioni di pesatura webui integrate.",
+ "So if you want to use math functions as prompt weights,": "Quindi, se vuoi usare le funzioni matematiche come pesi dei prompt,",
+ "keep the values above zero in both parts": "mantenere i valori sopra lo zero in entrambe le parti",
+ "Negative prompt part can be specified with --neg": "La parte negativa del prompt può essere specificata con --neg",
+ "batch_prompts (disabled atm)": "Prompt in lotti (al momento è disabilitato)",
+ "animation_prompts": "Prompt animazione",
+ "Init settings": "Impostazioni iniziali",
+ "use_init": "Usa le impostazioni iniziali",
+ "from_img2img_instead_of_link": "from_img2img_instead_of_link",
+ "strength_0_no_init": "strength_0_no_init",
+ "strength": "Intensità",
+ "init_image": "Immagine di inizializzazione",
+ "use_mask": "Usa maschera",
+ "use_alpha_as_mask": "Usa alpha come maschera",
+ "invert_mask": "Inverti la maschera",
+ "overlay_mask": "Sovrapponi la maschera",
+ "mask_file": "File della maschera",
+ "mask_brightness_adjust": "Regola la luminosità della maschera",
+ "mask_overlay_blur": "Sfocatura della sovrapposizione della maschera",
+ "Video Input:": "Ingresso video:",
+ "video_init_path": "Percorso del video di inizializzazione",
+ "extract_nth_frame": "Estrai ogni ennesimo fotogramma",
+ "overwrite_extracted_frames": "Sovrascrivi i fotogrammi estratti",
+ "use_mask_video": "Usa maschera video",
+ "video_mask_path": "Percorso della maschera video",
+ "Interpolation (turned off atm)": "Interpolazione (attualmente spento)",
+ "interpolate_key_frames": "Interpola fotogrammi chiave",
+ "interpolate_x_frames": "Interpola x fotogrammi",
+ "Resume animation:": "Riprendi l'animazione:",
+ "resume_from_timestring": "Riprendi da stringa temporale",
+ "resume_timestring": "Stringa temporale",
+ "Video output settings": "Impostazioni uscita video",
+ "skip_video_for_run_all": "skip_video_for_run_all",
+ "fps": "FPS",
+ "output_format": "Formato di uscita",
+ "PIL gif": "PIL gif",
+ "FFMPEG mp4": "FFMPEG mp4",
+ "ffmpeg_location": "Percorso ffmpeg",
+ "add_soundtrack": "Aggiungi colonna sonora",
+ "soundtrack_path": "Percorso colonna sonora",
+ "use_manual_settings": "Usa impostazioni manuali",
+ "render_steps": "Passi di renderizzazione",
+ "max_video_frames": "Numero max fotogrammi video",
+ "path_name_modifier": "Modificatore del nome del percorso",
+ "x0_pred": "x0_pred",
+ "x": "x",
+ "image_path": "Percorso immagine",
+ "mp4_path": "Percorso MP4",
+ "Click here after the generation to show the video": "Clicca qui dopo la generazione per mostrare il video",
+ "Save Settings": "Salva le impostazioni",
+ "Load Settings": "Carica le impostazioni",
+ "Path relative to the webui folder." : "Percorso relativo alla cartella webui.",
+ "Save Video Settings": "Salva impostazioni video",
+ "Load Video Settings": "Carica impostazioni video",
+ "dog": "cane",
+ "house": "casa",
+ "portrait": "ritratto",
+ "spaceship": "nave spaziale",
+ "anime": "anime",
+ "cartoon": "cartoon",
+ "digipa-high-impact": "digipa-high-impact",
+ "digipa-med-impact": "digipa-med-impact",
+ "digipa-low-impact": "digipa-low-impact",
+ "fareast": "estremo oriente",
+ "fineart": "fineart",
+ "scribbles": "scarabocchi",
+ "special": "special",
+ "ukioe": "ukioe",
+ "weird": "strano",
+ "black-white": "bianco e nero",
+ "nudity": "nudità",
+ "c": "c",
+ "Get Images": "Ottieni immagini",
+ "dog-anime": "dog-anime",
+ "dog-cartoon": "dog-cartoon",
+ "dog-digipa-high-impact": "dog-digipa-high-impact",
+ "dog-digipa-med-impact": "dog-digipa-med-impact",
+ "dog-digipa-low-impact": "dog-digipa-low-impact",
+ "dog-fareast": "dog-fareast",
+ "dog-fineart": "dog-fineart",
+ "dog-scribbles": "dog-scribbles",
+ "dog-special": "dog-special",
+ "dog-ukioe": "dog-ukioe",
+ "dog-weird": "dog-weird",
+ "dog-black-white": "dog-black-white",
+ "dog-nudity": "dog-nudity",
+ "dog-c": "dog-c",
+ "dog-n": "dog-n",
+ "house-anime": "house-anime",
+ "house-cartoon": "house-cartoon",
+ "house-digipa-high-impact": "house-digipa-high-impact",
+ "house-digipa-med-impact": "house-digipa-med-impact",
+ "house-digipa-low-impact": "house-digipa-low-impact",
+ "house-fareast": "house-fareast",
+ "house-fineart": "house-fineart",
+ "house-scribbles": "house-scribbles",
+ "house-special": "house-special",
+ "house-ukioe": "house-ukioe",
+ "house-weird": "house-weird",
+ "house-black-white": "house-black-white",
+ "house-nudity": "house-nudity",
+ "house-c": "house-c",
+ "house-n": "house-n",
+ "portrait-anime": "portrait-anime",
+ "portrait-cartoon": "portrait-cartoon",
+ "portrait-digipa-high-impact": "portrait-digipa-high-impact",
+ "portrait-digipa-med-impact": "portrait-digipa-med-impact",
+ "portrait-digipa-low-impact": "portrait-digipa-low-impact",
+ "portrait-fareast": "portrait-fareast",
+ "portrait-fineart": "portrait-fineart",
+ "portrait-scribbles": "portrait-scribbles",
+ "portrait-special": "portrait-special",
+ "portrait-ukioe": "portrait-ukioe",
+ "portrait-weird": "portrait-weird",
+ "portrait-black-white": "portrait-black-white",
+ "portrait-nudity": "portrait-nudity",
+ "portrait-c": "portrait-c",
+ "portrait-n": "portrait-n",
+ "spaceship-anime": "spaceship-anime",
+ "spaceship-cartoon": "spaceship-cartoon",
+ "spaceship-digipa-high-impact": "spaceship-digipa-high-impact",
+ "spaceship-digipa-med-impact": "spaceship-digipa-med-impact",
+ "spaceship-digipa-low-impact": "spaceship-digipa-low-impact",
+ "spaceship-fareast": "spaceship-fareast",
+ "spaceship-fineart": "spaceship-fineart",
+ "spaceship-scribbles": "spaceship-scribbles",
+ "spaceship-special": "spaceship-special",
+ "spaceship-ukioe": "spaceship-ukioe",
+ "spaceship-weird": "spaceship-weird",
+ "spaceship-black-white": "spaceship-black-white",
+ "spaceship-nudity": "spaceship-nudity",
+ "spaceship-c": "spaceship-c",
+ "spaceship-n": "spaceship-n",
+ "artists to study extension by camenduru |": "Estensione 'Artisti per studiare' a cura di camenduru |",
+ "github": "Github",
+ "|": "|",
+ "twitter": "Twitter",
+ "youtube": "Youtube",
+ "hi-res images": "Immagini in alta risoluzione",
+ "All images generated with CompVis/stable-diffusion-v1-4 +": "Tutte le immagini sono state generate con CompVis/stable-diffusion-v1-4 +",
+ "artists.csv": "artists.csv",
+ "| License: Attribution 4.0 International (CC BY 4.0)": "| Licenza: Attribution 4.0 International (CC BY 4.0)",
+ "extras": "Extra",
+ "favorites": "Preferiti",
+ "others": "Altre immagini",
+ "Images directory": "Cartella immagini",
+ "Dropdown": "Elenco cartelle",
+ "First Page": "Prima pagina",
+ "Prev Page": "Pagina precedente",
+ "Page Index": "Indice pagina",
+ "Next Page": "Pagina successiva",
+ "End Page": "Ultima pagina",
+ "delete next": "Cancella successivo",
+ "Delete": "Elimina",
+ "sort by": "Ordina per",
+ "path name": "Nome percorso",
+ "date": "Data",
+ "keyword": "Parola chiave",
+ "Generate Info": "Genera Info",
+ "File Name": "Nome del file",
+ "Collect": "Aggiungi ai preferiti",
+ "Renew page": "Aggiorna la pagina",
+ "Number": "Numero",
+ "set_index": "Imposta indice",
+ "load_switch": "load_switch",
+ "turn_page_switch": "turn_page_switch",
+ "Checkbox": "Casella di controllo",
+ "Checkbox Group": "Seleziona immagini per",
+ "artists": "Artisti",
+ "flavors": "Stili",
+ "mediums": "Tecniche",
+ "movements": "Movimenti artistici",
+ "All": "Tutto",
+ "Favorites": "Preferiti",
+ "Exclude abandoned": "Escludi scartati",
+ "Abandoned": "Scartati",
+ "Key word": "Parola chiave",
+ "Get inspiration": "Ispirami",
+ "to txt2img": "Invia a txt2img",
+ "to img2img": "Invia a img2img",
+ "Don't show again": "Scarta",
+ "Move out": "Rimuovi",
+ "set button": "Pulsante imposta",
+ "Apply settings": "Applica le impostazioni",
+ "Saving images/grids": "Salva immagini/griglie",
+ "Always save all generated images": "Salva sempre tutte le immagini generate",
+ "File format for images": "Formato del file delle immagini",
+ "Images filename pattern": "Modello del nome dei file immagine",
+ "Add number to filename when saving": "Aggiungi un numero al nome del file al salvataggio",
+ "Always save all generated image grids": "Salva sempre tutte le griglie di immagini generate",
+ "File format for grids": "Formato del file per le griglie",
+ "Add extended info (seed, prompt) to filename when saving grid": "Aggiungi informazioni estese (seme, prompt) al nome del file durante il salvataggio della griglia",
+ "Do not save grids consisting of one picture": "Non salvare le griglie composte da una sola immagine",
+ "Prevent empty spots in grid (when set to autodetect)": "Previeni spazi vuoti nella griglia (se impostato su rilevamento automatico)",
+ "Grid row count; use -1 for autodetect and 0 for it to be same as batch size": "Numero di righe della griglia; utilizzare -1 per il rilevamento automatico e 0 per essere uguale alla dimensione del lotto",
+ "Save text information about generation parameters as chunks to png files": "Salva le informazioni di testo dei parametri di generazione come blocchi nel file png",
+ "Create a text file next to every image with generation parameters.": "Crea un file di testo assieme a ogni immagine con i parametri di generazione.",
+ "Save a copy of image before doing face restoration.": "Salva una copia dell'immagine prima di eseguire il restauro dei volti.",
+ "Quality for saved jpeg images": "Qualità delle immagini salvate in formato JPEG",
+ "If PNG image is larger than 4MB or any dimension is larger than 4000, downscale and save copy as JPG": "Se l'immagine PNG è più grande di 4 MB o qualsiasi dimensione è maggiore di 4000, ridimensiona e salva la copia come JPG",
+ "Use original name for output filename during batch process in extras tab": "Usa il nome originale per il nome del file di output durante l'elaborazione a lotti nella scheda 'Extra'",
+ "When using 'Save' button, only save a single selected image": "Usando il pulsante 'Salva', verrà salvata solo la singola immagine selezionata",
+ "Do not add watermark to images": "Non aggiungere la filigrana alle immagini",
+ "Paths for saving": "Percorsi di salvataggio",
+ "Output directory for images; if empty, defaults to three directories below": "Cartella di output per le immagini; se vuoto, per impostazione predefinita verranno usate le cartelle seguenti",
+ "Output directory for txt2img images": "Cartella di output per le immagini txt2img",
+ "Output directory for img2img images": "Cartella di output per le immagini img2img",
+ "Output directory for images from extras tab": "Cartella di output per le immagini dalla scheda 'Extra'",
+ "Output directory for grids; if empty, defaults to two directories below": "Cartella di output per le griglie; se vuoto, per impostazione predefinita veranno usate cartelle seguenti",
+ "Output directory for txt2img grids": "Cartella di output per le griglie txt2img",
+ "Output directory for img2img grids": "Cartella di output per le griglie img2img",
+ "Directory for saving images using the Save button": "Cartella dove salvare le immagini usando il pulsante 'Salva'",
+ "Saving to a directory": "Salva in una cartella",
+ "Save images to a subdirectory": "Salva le immagini in una sotto cartella",
+ "Save grids to a subdirectory": "Salva le griglie in una sotto cartella",
+ "When using \"Save\" button, save images to a subdirectory": "Usando il pulsante \"Salva\", le immagini verranno salvate in una sotto cartella",
+ "Directory name pattern": "Modello del nome della cartella",
+ "Max prompt words for [prompt_words] pattern": "Numero massimo di parole del prompt per il modello [prompt_words]",
+ "Upscaling": "Ampliamento",
+ "Tile size for ESRGAN upscalers. 0 = no tiling.": "Dimensione piastrella per ampliamento ESRGAN. 0 = nessuna piastrellatura.",
+ "Tile overlap, in pixels for ESRGAN upscalers. Low values = visible seam.": "Sovrapposizione delle piastrelle, in pixel per gli ampliamenti ESRGAN. Valori bassi = cucitura visibile.",
+ "Tile size for all SwinIR.": "Dimensione piastrella per tutti gli SwinIR.",
+ "Tile overlap, in pixels for SwinIR. Low values = visible seam.": "Sovrapposizione delle piastrelle, in pixel per SwinIR. Valori bassi = cucitura visibile.",
+ "LDSR processing steps. Lower = faster": "Fasi di elaborazione LDSR. Più basso = più veloce",
+ "Upscaler for img2img": "Metodo di ampliamento per img2img",
+ "Upscale latent space image when doing hires. fix": "Amplia l'immagine nello spazio latente durante la correzione in alta risoluzione",
+ "Face restoration": "Restauro del viso",
+ "CodeFormer weight parameter; 0 = maximum effect; 1 = minimum effect": "Peso di CodeFormer; 0 = effetto massimo; 1 = effetto minimo",
+ "Move face restoration model from VRAM into RAM after processing": "Sposta il modello di restauro facciale dalla VRAM alla RAM dopo l'elaborazione",
+ "System": "Sistema",
+ "VRAM usage polls per second during generation. Set to 0 to disable.": "Verifiche al secondo sull'utilizzo della VRAM durante la generazione. Impostare a 0 per disabilitare.",
+ "Always print all generation info to standard output": "Stampa sempre tutte le informazioni di generazione sul output standard",
+ "Add a second progress bar to the console that shows progress for an entire job.": "Aggiungi una seconda barra di avanzamento alla console che mostra l'avanzamento complessivo del lavoro.",
+ "Training": "Addestramento",
+ "Move VAE and CLIP to RAM when training hypernetwork. Saves VRAM.": "Sposta VAE e CLIP nella RAM durante l'addestramento di Iperreti. Risparmia VRAM.",
+ "Filename word regex": "Filename word regex",
+ "Filename join string": "Filename join string",
+ "Number of repeats for a single input image per epoch; used only for displaying epoch number": "Numero di ripetizioni per una singola immagine di input per epoca; utilizzato solo per visualizzare il numero di epoca",
+ "Save an csv containing the loss to log directory every N steps, 0 to disable": "Salva un file CSV contenente la perdita nella cartella di registrazione ogni N passaggi, 0 per disabilitare",
+ "Stable Diffusion": "Stable Diffusion",
+ "Checkpoints to cache in RAM": "Checkpoint da memorizzare nella RAM",
+ "Hypernetwork strength": "Forza della Iperrete",
+ "Inpainting conditioning mask strength": "Forza della maschera di condizionamento del Inpainting",
+ "Apply color correction to img2img results to match original colors.": "Applica la correzione del colore ai risultati di img2img in modo che corrispondano ai colori originali.",
+ "Save a copy of image before applying color correction to img2img results": "Salva una copia dell'immagine prima di applicare la correzione del colore ai risultati di img2img",
+ "With img2img, do exactly the amount of steps the slider specifies (normally you'd do less with less denoising).": "Con img2img, esegue esattamente la quantità di passi specificata dalla barra di scorrimento (normalmente se ne effettuano di meno con meno riduzione del rumore).",
+ "Enable quantization in K samplers for sharper and cleaner results. This may change existing seeds. Requires restart to apply.": "Abilita la quantizzazione nei campionatori K per risultati più nitidi e puliti. Questo può cambiare i semi esistenti. Richiede il riavvio per applicare la modifica.",
+ "Emphasis: use (text) to make model pay more attention to text and [text] to make it pay less attention": "Enfasi: utilizzare (testo) per fare in modo che il modello presti maggiore attenzione al testo e [testo] per fargli prestare meno attenzione",
+ "Use old emphasis implementation. Can be useful to reproduce old seeds.": "Usa la vecchia implementazione dell'enfasi. Può essere utile per riprodurre vecchi semi.",
+ "Make K-diffusion samplers produce same images in a batch as when making a single image": "Fa sì che i campionatori di diffusione K producano le stesse immagini in un lotto come quando si genera una singola immagine",
+ "Increase coherency by padding from the last comma within n tokens when using more than 75 tokens": "Aumenta la coerenza disattivando dall'ultima virgola all'indietro di n token quando si utilizzano più di 75 token",
+ "Filter NSFW content": "Filtra i contenuti NSFW",
+ "Stop At last layers of CLIP model": "Fermati agli ultimi livelli del modello CLIP",
+ "Interrogate Options": "Opzioni di interrogazione",
+ "Interrogate: keep models in VRAM": "Interroga: mantieni i modelli nella VRAM",
+ "Interrogate: use artists from artists.csv": "Interroga: utilizza artisti dal file artisti.csv",
+ "Interrogate: include ranks of model tags matches in results (Has no effect on caption-based interrogators).": "Interroga: include la classifica delle corrispondenze dei tag del modello nei risultati (non ha effetto sulle interrogazioni basate su didascalie).",
+ "Interrogate: num_beams for BLIP": "Interroga: num_beams per BLIP",
+ "Interrogate: minimum description length (excluding artists, etc..)": "Interroga: lunghezza minima della descrizione (esclusi artisti, ecc..)",
+ "Interrogate: maximum description length": "Interroga: lunghezza massima della descrizione",
+ "CLIP: maximum number of lines in text file (0 = No limit)": "CLIP: numero massimo di righe nel file di testo (0 = Nessun limite)",
+ "Interrogate: deepbooru score threshold": "Interroga: soglia del punteggio deepbooru",
+ "Interrogate: deepbooru sort alphabetically": "Interroga: deepbooru ordinato alfabeticamente",
+ "use spaces for tags in deepbooru": "usa gli spazi per i tag in deepbooru",
+ "escape (\\) brackets in deepbooru (so they are used as literal brackets and not for emphasis)": "Effettua l'escape (\\) delle parentesi in deepbooru (così vengono usate come parentesi letterali e non per enfatizzare)",
+ "User interface": "Interfaccia Utente",
+ "Show progressbar": "Mostra la barra di avanzamento",
+ "Show image creation progress every N sampling steps. Set 0 to disable.": "Mostra l'avanzamento della generazione dell'immagine ogni N passaggi di campionamento. Impostare a 0 per disabilitare.",
+ "Show previews of all images generated in a batch as a grid": "Mostra le anteprime di tutte le immagini generate in un lotto come una griglia",
+ "Show grid in results for web": "Mostra la griglia nei risultati per il web",
+ "Do not show any images in results for web": "Non mostrare alcuna immagine nei risultati per il web",
+ "Add model hash to generation information": "Aggiungi l'hash del modello alle informazioni sulla generazione",
+ "Add model name to generation information": "Aggiungi il nome del modello alle informazioni sulla generazione",
+ "When reading generation parameters from text into UI (from PNG info or pasted text), do not change the selected model/checkpoint.": "Durante la lettura dei parametri di generazione dal testo nell'interfaccia utente (da informazioni PNG o testo incollato), non modificare il modello/checkpoint selezionato.",
+ "Send seed when sending prompt or image to other interface": "Invia il seme quando si invia un prompt o un'immagine a un'altra interfaccia",
+ "Font for image grids that have text": "Font per griglie di immagini con testo",
+ "Enable full page image viewer": "Abilita la visualizzazione delle immagini a pagina intera",
+ "Show images zoomed in by default in full page image viewer": "Mostra le immagini ingrandite per impostazione predefinita nella visualizzazione a pagina intera",
+ "Show generation progress in window title.": "Mostra l'avanzamento della generazione nel titolo della finestra.",
+ "Quicksettings list": "Elenco delle impostazioni rapide",
+ "Localization (requires restart)": "Localizzazione (richiede il riavvio)",
+ "ar_AR": "ar_AR",
+ "de_DE": "de_DE",
+ "es_ES": "es_ES",
+ "fr-FR": "fr-FR",
+ "it_IT": "it_IT",
+ "ja_JP": "ja_JP",
+ "ko_KR": "ko_KR",
+ "pt_BR": "pt_BR",
+ "ru_RU": "ru_RU",
+ "tr_TR": "tr_TR",
+ "zh_CN": "zh_CN",
+ "zh_TW": "zh_TW",
+ "Sampler parameters": "Parametri del campionatore",
+ "Hide samplers in user interface (requires restart)": "Nascondi campionatori nell'interfaccia utente (richiede il riavvio)",
+ "eta (noise multiplier) for DDIM": "ETA (moltiplicatore di rumore) per DDIM",
+ "eta (noise multiplier) for ancestral samplers": "ETA (moltiplicatore di rumore) per campionatori ancestrali",
+ "img2img DDIM discretize": "discretizzazione DDIM per img2img",
+ "uniform": "uniforme",
+ "quad": "quad",
+ "sigma churn": "sigma churn",
+ "sigma tmin": "sigma tmin",
+ "sigma noise": "sigma noise",
+ "Eta noise seed delta": "ETA del delta del seme del rumore",
+ "Aesthetic Image Scorer": "Punteggio delle immagini estetiche",
+ "Save score as EXIF or PNG Info Chunk": "Salva il punteggio come info EXIF o PNG",
+ "Save score as tag (Windows Only)": "Salva punteggio come etichetta (solo Windows)",
+ "Force CPU (Requires Custom Script Reload)": "Forza CPU (richiede il ricaricamento dello script personalizzato)",
+ "Number of columns on image gallery": "Numero di colonne nella galleria di immagini",
+ "Images Browser": "Galleria immagini",
+ "Preload images at startup": "Precarica le immagini all'avvio",
+ "Number of columns on the page": "Numero di colonne nella pagina",
+ "Number of rows on the page": "Numero di righe nella pagina",
+ "Minimum number of pages per load": "Numero minimo di pagine da caricare",
+ "Maximum number of samples, used to determine which folders to skip when continue running the create script": "Numero massimo di campioni, utilizzato per determinare quali cartelle ignorare quando si continua a eseguire lo script di creazione",
+ "Use same seed for all images": "Usa lo stesso seme per tutte le immagini",
+ "Request browser notifications": "Richiedi le notifiche del browser",
+ "Download localization template": "Scarica il modello per la localizzazione",
+ "Reload custom script bodies (No ui updates, No restart)": "Ricarica gli script personalizzati (nessun aggiornamento dell'interfaccia utente, nessun riavvio)",
+ "Restart Gradio and Refresh components (Custom Scripts, ui.py, js and css only)": "Riavvia Gradio e aggiorna i componenti (solo script personalizzati, ui.py, js e css)",
+ "Prompt (press Ctrl+Enter or Alt+Enter to generate)": "Prompt (premi Ctrl+Invio o Alt+Invio per generare)",
+ "Negative prompt (press Ctrl+Enter or Alt+Enter to generate)": "Prompt negativo (premere Ctrl+Invio o Alt+Invio per generare)",
+ "Add a random artist to the prompt.": "Aggiungi un artista casuale al prompt.",
+ "Read generation parameters from prompt or last generation if prompt is empty into user interface.": "Leggere i parametri di generazione dal prompt o dall'ultima generazione se il prompt è vuoto ed inserirli nell'interfaccia utente.",
+ "Save style": "Salva stile",
+ "Apply selected styles to current prompt": "Applica gli stili selezionati al prompt corrente",
+ "Stop processing current image and continue processing.": "Interrompe l'elaborazione dell'immagine corrente e continua l'elaborazione.",
+ "Stop processing images and return any results accumulated so far.": "Interrompe l'elaborazione delle immagini e restituisce tutti i risultati accumulati finora.",
+ "Style to apply; styles have components for both positive and negative prompts and apply to both": "Stile da applicare; gli stili hanno componenti sia per i prompt positivi che per quelli negativi e si applicano a entrambi",
+ "Do not do anything special": "Non fa nulla di speciale",
+ "Which algorithm to use to produce the image": "Quale algoritmo utilizzare per produrre l'immagine",
+ "Euler Ancestral - very creative, each can get a completely different picture depending on step count, setting steps to higher than 30-40 does not help": "Euler Ancestral - molto creativo, si può ottenere un'immagine completamente diversa a seconda del numero di passi, impostare i passi su un valore superiore a 30-40 non aiuta",
+ "Denoising Diffusion Implicit Models - best at inpainting": "Denoising Diffusion Implicit Models - il migliore per inpainting",
+ "Produce an image that can be tiled.": "Produce un'immagine che può essere piastrellata.",
+ "Use a two step process to partially create an image at smaller resolution, upscale, and then improve details in it without changing composition": "Utilizza un processo in due fasi per creare parzialmente un'immagine con una risoluzione inferiore, aumentare la scala e quindi migliorarne i dettagli senza modificare la composizione",
+ "Determines how little respect the algorithm should have for image's content. At 0, nothing will change, and at 1 you'll get an unrelated image. With values below 1.0, processing will take less steps than the Sampling Steps slider specifies.": "Determina quanto poco l'algoritmo dovrebbe rispettare dovrebbe il contenuto dell'immagine. A 0, non cambierà nulla e a 1 otterrai un'immagine non correlata. Con valori inferiori a 1.0 l'elaborazione richiederà meno passaggi di quelli specificati dalla barra di scorrimento dei passi di campionamento.",
+ "How many batches of images to create": "Quanti lotti di immagini generare",
+ "How many image to create in a single batch": "Quante immagini generare in un singolo lotto",
+ "Classifier Free Guidance Scale - how strongly the image should conform to prompt - lower values produce more creative results": "Classifier Free Guidance Scale - quanto fortemente l'immagine deve conformarsi al prompt: valori più bassi producono risultati più creativi",
+ "A value that determines the output of random number generator - if you create an image with same parameters and seed as another image, you'll get the same result": "Un valore che determina l'output del generatore di numeri casuali: se create un'immagine con gli stessi parametri e seme di un'altra immagine, otterrete lo stesso risultato",
+ "Set seed to -1, which will cause a new random number to be used every time": "Imposta il seme su -1, che farà sì che ogni volta venga utilizzato un nuovo numero casuale",
+ "Reuse seed from last generation, mostly useful if it was randomed": "Riusa il seme dell'ultima generazione, utile soprattutto se casuale",
+ "Seed of a different picture to be mixed into the generation.": "Seme di un'immagine diversa da miscelare nella generazione.",
+ "How strong of a variation to produce. At 0, there will be no effect. At 1, you will get the complete picture with variation seed (except for ancestral samplers, where you will just get something).": "Quanto è forte la variazione da produrre. A 0, non ci sarà alcun effetto. A 1, otterrai l'intera immagine con il seme della variazione (tranne per i campionatori ancestrali, dove otterrai solo una leggera variazione).",
+ "Make an attempt to produce a picture similar to what would have been produced with same seed at specified resolution": "Prova a produrre un'immagine simile a quella che sarebbe stata prodotta con lo stesso seme alla risoluzione specificata",
+ "This text is used to rotate the feature space of the imgs embs": "Questo testo viene utilizzato per ruotare lo spazio delle funzioni delle immagini incorporate",
+ "How many times to repeat processing an image and using it as input for the next iteration": "Quante volte ripetere l'elaborazione di un'immagine e utilizzarla come input per l'iterazione successiva",
+ "Enter one prompt per line. Blank lines will be ignored.": "Immettere un prompt per riga. Le righe vuote verranno ignorate.",
+ "Separate values for X axis using commas.": "Separare i valori per l'asse X usando le virgole.",
+ "Separate values for Y axis using commas.": "Separare i valori per l'asse Y usando le virgole.",
+ "Separate a list of words with commas, and the script will make a variation of prompt with those words for their every possible order": "Separa un elenco di parole con virgole e lo script eseguirà una variazione di prompt con quelle parole per ogni loro possibile ordine",
+ "Write image to a directory (default - log/images) and generation parameters into csv file.": "Salva l'immagine/i in una cartella (predefinita - log/images) ed i parametri di generazione in un file CSV.",
+ "Open images output directory": "Apri la cartella di output delle immagini",
+ "How much to blur the mask before processing, in pixels.": "Quanto sfocare la maschera prima dell'elaborazione, in pixel.",
+ "What to put inside the masked area before processing it with Stable Diffusion.": "Cosa mettere all'interno dell'area mascherata prima di elaborarla con Stable Diffusion.",
+ "fill it with colors of the image": "riempi con i colori dell'immagine",
+ "keep whatever was there originally": "conserva tutto ciò che c'era in origine",
+ "fill it with latent space noise": "riempi di rumore spaziale latente",
+ "fill it with latent space zeroes": "riempi con zeri di spazio latente",
+ "Upscale masked region to target resolution, do inpainting, downscale back and paste into original image": "Ingrandisce la regione mascherata per raggiungere la risoluzione, esegue la pittura, riduce la scala e incolla nell'immagine originale",
+ "Resize image to target resolution. Unless height and width match, you will get incorrect aspect ratio.": "Ridimensiona l'immagine alla risoluzione di destinazione. A meno che altezza e larghezza non corrispondano, otterrai proporzioni errate.",
+ "Resize the image so that entirety of target resolution is filled with the image. Crop parts that stick out.": "Ridimensionare l'immagine in modo che l'intera risoluzione di destinazione sia riempita con l'immagine. Ritaglia le parti che sporgono.",
+ "Resize the image so that entirety of image is inside target resolution. Fill empty space with image's colors.": "Ridimensiona l'immagine in modo che l'intera immagine rientri nella risoluzione di destinazione. Riempi lo spazio vuoto con i colori dell'immagine.",
+ "For SD upscale, how much overlap in pixels should there be between tiles. Tiles overlap so that when they are merged back into one picture, there is no clearly visible seam.": "Per l'upscaling SD, quanta sovrapposizione in pixel dovrebbe esserci tra le piastrelle. Le piastrelle si sovrappongono in modo che quando vengono unite nuovamente in un'immagine, non ci siano giunture chiaramente visibili.",
+ "Process an image, use it as an input, repeat.": "Elabora un'immagine, usala come input, ripeti.",
+ "In loopback mode, on each loop the denoising strength is multiplied by this value. <1 means decreasing variety so your sequence will converge on a fixed picture. >1 means increasing variety so your sequence will become more and more chaotic.": "In modalità rielaborazione ricorsiva, su ogni ciclo la forza di denoising viene moltiplicata per questo valore. <1 significa varietà decrescente in modo che la sequenza converga su un'immagine fissa. >1 significa aumentare la varietà in modo che la tua sequenza diventi sempre più caotica.",
+ "A directory on the same machine where the server is running.": "Una cartella sulla stessa macchina su cui è in esecuzione il server.",
+ "Leave blank to save images to the default path.": "Lascia vuoto per salvare le immagini nel percorso predefinito.",
+ "Result = A * (1 - M) + B * M": "Risultato = A * (1 - M) + B * M",
+ "Result = A + (B - C) * M": "Risultato = A + (B - C) * M",
+ "1st and last digit must be 1. ex:'1, 2, 1'": "La prima e l'ultima cifra devono essere 1. Es.:'1, 2, 1'",
+ "Path to directory with input images": "Percorso della cartella con immagini di input",
+ "Path to directory where to write outputs": "Percorso della cartella in cui scrivere i risultati",
+ "C:\\directory\\of\\datasets": "C:\\cartella\\del\\dataset",
+ "Input images directory": "Cartella di input delle immagini",
+ "Use following tags to define how filenames for images are chosen: [steps], [cfg], [prompt], [prompt_no_styles], [prompt_spaces], [width], [height], [styles], [sampler], [seed], [model_hash], [prompt_words], [date], [datetime], [job_timestamp]; leave empty for default.": "Usa i seguenti tag per definire come vengono scelti i nomi dei file per le immagini: [steps], [cfg], [prompt], [prompt_no_styles], [prompt_spaces], [width], [height], [styles], [sampler], [seed ], [model_hash], [prompt_words], [date], [datetime], [job_timestamp]; lasciare vuoto per usare l'impostazione predefinita.",
+ "If this option is enabled, watermark will not be added to created images. Warning: if you do not add watermark, you may be behaving in an unethical manner.": "Se questa opzione è abilitata, la filigrana non verrà aggiunta alle immagini create. Attenzione: se non aggiungi la filigrana, potresti comportarti in modo non etico.",
+ "Use following tags to define how subdirectories for images and grids are chosen: [steps], [cfg], [prompt], [prompt_no_styles], [prompt_spaces], [width], [height], [styles], [sampler], [seed], [model_hash], [prompt_words], [date], [datetime], [job_timestamp]; leave empty for default.": "Utilizzare i seguenti tag per definire come vengono scelte le sottodirectory per le immagini e le griglie: [steps], [cfg], [prompt], [prompt_no_styles], [prompt_spaces], [width], [height], [styles], [sampler], [seed], [model_hash], [prompt_words], [date], [datetime], [job_timestamp]; lasciare vuoto per usare l'impostazione predefinita.",
+ "Restore low quality faces using GFPGAN neural network": "Ripristina volti di bassa qualità utilizzando la rete neurale GFPGAN",
+ "This regular expression will be used extract words from filename, and they will be joined using the option below into label text used for training. Leave empty to keep filename text as it is.": "Questa espressione regolare verrà utilizzata per estrarre le parole dal nome del file e verranno unite utilizzando l'opzione seguente nel testo dell'etichetta utilizzato per l'addestramento. Lascia vuoto per mantenere il testo del nome del file così com'è.",
+ "This string will be used to join split words into a single line if the option above is enabled.": "Questa stringa verrà utilizzata per unire le parole divise in un'unica riga se l'opzione sopra è abilitata.",
+ "Only applies to inpainting models. Determines how strongly to mask off the original image for inpainting and img2img. 1.0 means fully masked, which is the default behaviour. 0.0 means a fully unmasked conditioning. Lower values will help preserve the overall composition of the image, but will struggle with large changes.": "Si applica solo ai modelli di pittura. Determina con quale forza mascherare l'immagine originale per inpainting e img2img. 1.0 significa completamente mascherato, che è il comportamento predefinito. 0.0 significa un condizionamento completamente non mascherato. Valori più bassi aiuteranno a preservare la composizione generale dell'immagine, ma avranno difficoltà con grandi cambiamenti.",
+ "List of setting names, separated by commas, for settings that should go to the quick access bar at the top, rather than the usual setting tab. See modules/shared.py for setting names. Requires restarting to apply.": "Elenco dei nomi delle impostazioni, separati da virgole, per le impostazioni che dovrebbero essere visualizzate nella barra di accesso rapido in alto, anziché nella normale scheda delle impostazioni. Vedi modules/shared.py per impostare i nomi. Richiede il riavvio per applicare.",
+ "If this values is non-zero, it will be added to seed and used to initialize RNG for noises when using samplers with Eta. You can use this to produce even more variation of images, or you can use this to match images of other software if you know what you are doing.": "Se questo valore è diverso da zero, verrà aggiunto al seed e utilizzato per inizializzare il generatore di numeri casuali per il rumore quando si utilizzano campionatori con ETA. Puoi usarlo per produrre ancora più variazioni di immagini, oppure puoi usarlo per abbinare le immagini di altri software se sai cosa stai facendo."
+}
\ No newline at end of file
--
cgit v1.2.1
From 4ae575853fd3855d219d28363b745a4998244d48 Mon Sep 17 00:00:00 2001
From: Martucci <73501718+M-art-ucci@users.noreply.github.com>
Date: Sat, 29 Oct 2022 19:23:05 -0300
Subject: Final commit for october (19:22) / 22
---
localizations/pt_BR.json | 76 ++++++++++++++++++++++++------------------------
1 file changed, 38 insertions(+), 38 deletions(-)
diff --git a/localizations/pt_BR.json b/localizations/pt_BR.json
index 49d71edc..56281105 100644
--- a/localizations/pt_BR.json
+++ b/localizations/pt_BR.json
@@ -5,10 +5,10 @@
"❮": "❮",
"❯": "❯",
"Loading...": "Carregando...",
- "view": "ver ",
+ "view": "ver",
"api": "api",
"•": "•",
- "built with gradio": "Criado com gradio",
+ "built with gradio": "criado com gradio",
"Stable Diffusion checkpoint": "Stable Diffusion checkpoint",
"txt2img": "txt2img",
"img2img": "img2img",
@@ -27,14 +27,14 @@
"Style 2": "Estilo 2",
"Label": "Rótulo",
"File": "Arquivo",
- "Drop File Here": "Coloque aqui o arquivo",
+ "Drop File Here": "Solte Aqui o Arquivo",
"-": "-",
"or": "ou",
- "Click to Upload": "Clique para carregar um arquivo",
+ "Click to Upload": "Clique para Carregar um Arquivo",
"Image": "Imagem",
"Check progress": "Checar progresso",
"Check progress (first)": "Checar progresso (primeiro)",
- "Sampling Steps": "Passos de amostragem",
+ "Sampling Steps": "Passos de Amostragem",
"Sampling method": "Método de amostragem",
"Euler a": "Euler a",
"Euler": "Euler",
@@ -68,13 +68,13 @@
"Resize seed from height": "Redimensionar a seed a partir da altura",
"Script": "Script",
"None": "Nenhum",
- "Prompt matrix": "Matriz de Prompt",
+ "Prompt matrix": "Matriz de prompt",
"Prompts from file or textbox": "Prompts a partir de arquivo ou caixa de texto",
"X/Y plot": "X/Y plot",
"Put variable parts at start of prompt": "Coloca partes variáveis no começo do prompt",
"Iterate seed every line": "Iterar seed a cada linha",
- "List of prompt inputs": "Lista de entradas de texto para prompt",
- "Upload prompt inputs": "Carregar entradas de textos para prompts",
+ "List of prompt inputs": "Lista de entrada de texto para prompt",
+ "Upload prompt inputs": "Carregar entrada de texto para prompt",
"X type": "Tipo do X",
"Nothing": "Nenhum",
"Var. seed": "Var. seed",
@@ -99,7 +99,7 @@
"Draw legend": "Desenhar a legenda",
"Include Separate Images": "Incluir Imagens Separadas",
"Keep -1 for seeds": "Manter em -1 para seeds",
- "Drop Image Here": "Coloque a imagem aqui",
+ "Drop Image Here": "Solte a imagem aqui",
"Save": "Salvar",
"Send to img2img": "Mandar para img2img",
"Send to inpaint": "Mandar para inpaint",
@@ -137,29 +137,29 @@
"img2img alternative test": "Teste alternativo de img2img",
"Loopback": "Loopback",
"Outpainting mk2": "Outpainting mk2",
- "Poor man's outpainting": "Poor man's outpainting",
+ "Poor man's outpainting": "Poor man`s outpainting",
"SD upscale": "Ampliamento SD",
"should be 2 or lower.": "deve ser 2 ou menos.",
- "Override `Sampling method` to Euler?(this method is built for it)": "Substituir 'Método de amostragem' para Euler? (este método foi feito para isso)",
- "Override `prompt` to the same value as `original prompt`?(and `negative prompt`)": "Substituir 'prompt' para o mesmo valor que o 'prompt original'? (também para o 'prompt negativo')",
+ "Override `Sampling method` to Euler?(this method is built for it)": "Substituir `Método de amostragem` por Euler? (este método foi feito para isso)",
+ "Override `prompt` to the same value as `original prompt`?(and `negative prompt`)": "Substituir `prompt` para o mesmo valor que o `prompt original`? (também para o `prompt negativo`)",
"Original prompt": "Prompt original",
"Original negative prompt": "Prompt negativo original",
- "Override `Sampling Steps` to the same value as `Decode steps`?": "Substituir 'Passos de Amostragem' para o mesmo valor que 'Decodificar Passos'?",
+ "Override `Sampling Steps` to the same value as `Decode steps`?": "Substituir `Passos de Amostragem` para o mesmo valor que `Decodificar Passos`?",
"Decode steps": "Decode steps",
- "Override `Denoising strength` to 1?": "Substituir 'Quantidade do Denoise' para 1?",
+ "Override `Denoising strength` to 1?": "Substituir `Quantidade do Denoise` para 1?",
"Decode CFG scale": "Decodificar escala CFG",
"Randomness": "Aleatoriedade",
"Sigma adjustment for finding noise for image": "Ajuste Sigma para encontrar ruído para imagem",
"Loops": "Loops",
"Denoising strength change factor": "Fator de mudança na quantidade do Denoise",
- "Recommended settings: Sampling Steps: 80-100, Sampler: Euler a, Denoising strength: 0.8": "Configurações recomendadas",
+ "Recommended settings: Sampling Steps: 80-100, Sampler: Euler a, Denoising strength: 0.8": "Configurações recomendadas: Passos de amostragem: 80-100: Euler a, força do Denoise: 0.8",
"Pixels to expand": "Pixels para expandir",
- "Outpainting direction": "Direção do Outpainting",
+ "Outpainting direction": "Direção do outpainting",
"left": "esquerda",
"right": "direita",
"up": "cima",
"down": "baixo",
- "Fall-off exponent (lower=higher detail)": "Exponente de queda (menor=mais detalhes)",
+ "Fall-off exponent (lower=higher detail)": "Expoente de queda (menor=mais detalhes)",
"Color variation": "Variação de cor",
"Will upscale the image to twice the dimensions; use width and height sliders to set tile size": "Amplia a imagem em dobro; ajusta a largura e altura para definir o tamanho do ladrilho",
"Tile overlap": "Sobreposição de ladrilho",
@@ -191,9 +191,9 @@
"CodeFormer weight (0 = maximum effect, 1 = minimum effect)": "Peso do CodeFormer (0 = efeito máximo, 1 = efeito mínimo)",
"Open output directory": "Abrir diretório de saída",
"Send to txt2img": "Mandar para txt2img",
- "A merger of the two checkpoints will be generated in your": "Uma fusão dos dois checkpoints será gerada em seu ",
+ "A merger of the two checkpoints will be generated in your": "Uma fusão dos dois checkpoints será gerada em seu",
"checkpoint": "checkpoint",
- "directory.": " diretório.",
+ "directory.": "diretório.",
"Primary model (A)": "Modelo primário (A)",
"Secondary model (B)": "Modelo secundário (B)",
"Tertiary model (C)": "Modelo terciário (C)",
@@ -257,7 +257,7 @@
"Overwrite Old Hypernetwork": "Sobrescrever Hypernetwork Anterior",
"Source directory": "Diretório de origem",
"Destination directory": "Diretório de destino",
- "Existing Caption txt Action": "Ação de legenda txt já existente",
+ "Existing Caption txt Action": "Ação de Título txt Já Existente",
"ignore": "ignorar",
"copy": "copiar",
"prepend": "adicionar ao início",
@@ -305,9 +305,9 @@
"Create a text file next to every image with generation parameters.": "Criar um arquivo de texto com informações de geração junto a cada imagem gerada.",
"Save a copy of image before doing face restoration.": "Salva uma cópia de cada imagem antes do refinamento facial.",
"Quality for saved jpeg images": "Qualidade das imagens jpeg",
- "If PNG image is larger than 4MB or any dimension is larger than 4000, downscale and save copy as JPG": "Se a imagem PNG for maior que 4MB ou qualquer dimensão mair que 4000, diminuir e salvar uma cópia em JPG",
+ "If PNG image is larger than 4MB or any dimension is larger than 4000, downscale and save copy as JPG": "Se a imagem PNG for maior que 4MB ou qualquer dimensão maior que 4000, diminuir e salvar uma cópia em JPG",
"Use original name for output filename during batch process in extras tab": "Usar o nome original para os arquivos de output durante o processo de levas da aba Extras",
- "When using 'Save' button, only save a single selected image": "Quando usar o botão 'Salvar', somente salvar as imagens selecionadas.",
+ "When using 'Save' button, only save a single selected image": "Quando usar o botão `Salvar`, somente salvar as imagens selecionadas.",
"Do not add watermark to images": "Não adicionar marca dágua nas imagens",
"Paths for saving": "Caminhos para salvar",
"Output directory for images; if empty, defaults to three directories below": "Diretório de saída para imagens; se deixado em branco, as imagens vao para os seguintes diretórios",
@@ -327,7 +327,7 @@
"Upscaling": "Ampliando",
"Tile size for ESRGAN upscalers. 0 = no tiling.": "Tamanho do ladrilho para ampliação ESRGAN. 0 = sem ladrilho.",
"Tile overlap, in pixels for ESRGAN upscalers. Low values = visible seam.": "Sobreposição de azulejo, em pixels, para amplicação ESRGAN. Valores baixos = linhas de fusão mais aparente.",
- "Tile size for all SwinIR.": "Tamanho do azulejo para todo SwinIR.",
+ "Tile size for all SwinIR.": "Tamanho do ladrilho para todo SwinIR.",
"Tile overlap, in pixels for SwinIR. Low values = visible seam.": "Sobreposição de azulejo, em pixels, para SwinIR. Valores baixos = junção mais aparente.",
"LDSR processing steps. Lower = faster": "Steps de processamento LDSR. Menos = rápido",
"Upscaler for img2img": "Ampliação para img2img",
@@ -348,11 +348,11 @@
"Stable Diffusion": "Stable Diffusion",
"Checkpoints to cache in RAM": "Checkpoints para manter no cache da RAM",
"Hypernetwork strength": "Força da Hypernetwork",
- "Apply color correction to img2img results to match original colors.": "Aplicar correção de cor nas imagens geradas em img2img, usando a imagem original como base. Recomendação: se marcar essa opção, marcar também a de baixo",
+ "Apply color correction to img2img results to match original colors.": "Aplicar correção de cor nas imagens geradas em img2img, usando a imagem original como base.",
"Save a copy of image before applying color correction to img2img results": "Salvar uma cópia das imagens geradas em img2img antes de aplicar a correção de cor",
"With img2img, do exactly the amount of steps the slider specifies (normally you'd do less with less denoising).": "Durante gerações img2img, fazer examente o número de steps definidos na barra (normalmente você faz menos steps com denoising menor).",
"Enable quantization in K samplers for sharper and cleaner results. This may change existing seeds. Requires restart to apply.": "Ativar quantização em K samples para resultados mais nítidos e visíveis. Pode alterar seeds ja existentes. Precisa reiniciar para funcionar.",
- "Emphasis: use (text) to make model pay more attention to text and [text] to make it pay less attention": "Ênfase: usar parênteses ao redor de palavras (texto de exemplo) para fazer o modelo dar mais atenção par aquela palavra ou frase, e chaves [texto de exemplo] para tirar atenção",
+ "Emphasis: use (text) to make model pay more attention to text and [text] to make it pay less attention": "Ênfase: usar parênteses ao redor de palavras (texto de exemplo) para fazer o modelo dar mais atenção para aquela palavra ou frase, e chaves [texto de exemplo] para tirar atenção",
"Use old emphasis implementation. Can be useful to reproduce old seeds.": "Usar método anterior de implementação de ênfase. Útil para reproduzir seeds antigas.",
"Make K-diffusion samplers produce same images in a batch as when making a single image": "Faz as amostragens K-diffusion produzirem imagens iguais em lotes quando criando uma única imagem",
"Increase coherency by padding from the last comma within n tokens when using more than 75 tokens": "Aumenta a coerência por preenchimento apartir da ultima vírgula dentro de n tokens quando usando mais de 75 tokens",
@@ -361,7 +361,7 @@
"Interrogate Options": "Opções de Interrogatório",
"Interrogate: keep models in VRAM": "Interrogar: manter modelos na VRAM",
"Interrogate: use artists from artists.csv": "Interrogar: usa artistas e estilos do documento artists.csv",
- "Interrogate: include ranks of model tags matches in results (Has no effect on caption-based interrogators).": "Interrogar: incluir classificação de tags de modelo combinando nos resultados(Não tem efeito na interrogação feita por legenda).",
+ "Interrogate: include ranks of model tags matches in results (Has no effect on caption-based interrogators).": "Interrogar: incluir classificação de tags de modelo combinando nos resultados (Não tem efeito na interrogação feita por legenda).",
"Interrogate: num_beams for BLIP": "Interrogar: num_beams para BLIP",
"Interrogate: minimum description length (excluding artists, etc..)": "Interrogar: tamanho mínimo da descrição (tirando artistas, etc..)",
"Interrogate: maximum description length": "Interrogar: tamanho máximo da descrição",
@@ -370,7 +370,7 @@
"Interrogate: deepbooru sort alphabetically": "Interrogar: organizar deepbooru por ordem alfabética",
"use spaces for tags in deepbooru": "usar espaços para tags em deepbooru",
"escape (\\) brackets in deepbooru (so they are used as literal brackets and not for emphasis)": "espaço (\\) colchetes em deepbooru (são usados como colchetes ao invés de dar ênfase)",
- "User interface": "Interface de Usuário",
+ "User interface": "Interface de usuário",
"Show progressbar": "Mostrar barra de progresso",
"Show image creation progress every N sampling steps. Set 0 to disable.": "Mostrar a criação de imagens a cada N sampling steps. Em 1 já dá para ver o processo de geração. Marcar como 0 para desativar.",
"Show previews of all images generated in a batch as a grid": "Mostrar previsualização de todas as imagens geradas em leva numa grade",
@@ -379,7 +379,7 @@
"Add model hash to generation information": "Adicionar hash do modelo para informação de geração",
"Add model name to generation information": "Adicionar nome do modelo para informação de geração",
"When reading generation parameters from text into UI (from PNG info or pasted text), do not change the selected model/checkpoint.": "Quando ler parâmetros de texto para a interface (de informações de PNG ou texto copiado), não alterar o modelo/intervalo selecionado.",
- "Font for image grids that have text": "Fonte para grade de imagenss que tem texto",
+ "Font for image grids that have text": "Fonte para grade de imagens que têm texto",
"Enable full page image viewer": "Ativar visualizador de página inteira",
"Show images zoomed in by default in full page image viewer": "Mostrar imagens com zoom por definição no visualizador de página inteira",
"Show generation progress in window title.": "Mostrar barra de progresso no nome da janela.",
@@ -443,25 +443,25 @@
"keep whatever was there originally": "manter usando o que estava lá originalmente",
"fill it with latent space noise": "Preenche com ruídos do espaço latente.",
"fill it with latent space zeroes": "Preenche com zeros do espaço latente.",
- "Upscale masked region to target resolution, do inpainting, downscale back and paste into original image": "Faz ampliação na região com máscara para atingir a resolução desejada, faz inpainting, faz downscale para voltar na resolução original e cola na imagem original",
- "Resize image to target resolution. Unless height and width match, you will get incorrect aspect ratio.": "Redimensiona a imagem para a resolução desejada. A menos que a altura e a largura correspondam, você obterá uma proporção incorreta.",
+ "Upscale masked region to target resolution, do inpainting, downscale back and paste into original image": "Faz ampliação na região com máscara para atingir a resolução desejada, faz inpainting, faz downscale para voltar à resolução original e cola na imagem original",
+ "Resize image to target resolution. Unless height and width match, you will get incorrect aspect ratio.": "Redimensiona a imagem para a resolução desejada. A menos que a altura e a largura sejam iguais, você obterá uma proporção incorreta.",
"Resize the image so that entirety of target resolution is filled with the image. Crop parts that stick out.": "Redimensiona a imagem para que toda a resolução desejada seja preenchida com a imagem. Corta as partes que ficaram pra fora.",
"Resize the image so that entirety of image is inside target resolution. Fill empty space with image's colors.": "Redimensiona a imagem para que toda a imagem esteja dentro da resolução desejada. Preenche o espaço vazio com as cores da imagem.",
- "How many times to repeat processing an image and using it as input for the next iteration": "Quantas vezes vai repetir o processamento de uma imagem e usá-la como entrada para a próxima iteração",
+ "How many times to repeat processing an image and using it as input for the next iteration": "Número de vezes que vai repetir o processamento da imagem e usar como entrada para a próxima iteração",
"In loopback mode, on each loop the denoising strength is multiplied by this value. <1 means decreasing variety so your sequence will converge on a fixed picture. >1 means increasing variety so your sequence will become more and more chaotic.": "No modo de loopback, em cada loop a força do denoise é multiplicado por este valor. <1 significa diminuir a variedade para que sua sequência converta em uma imagem fixa. >1 significa aumentar a variedade para que sua sequência se torne cada vez mais caótica.",
- "For SD upscale, how much overlap in pixels should there be between tiles. Tiles overlap so that when they are merged back into one picture, there is no clearly visible seam.": "Para ampliação SD, quanta sobreposição em pixels deve haver entre os ladrilhos. Os ladrilhos se sobrepõem para que, quando forem mesclados de volta em uma imagem, não haja linhas de junção claramente visível.",
- "A directory on the same machine where the server is running.": "Um diretório na mesma máquina onde o server está rodando.",
+ "For SD upscale, how much overlap in pixels should there be between tiles. Tiles overlap so that when they are merged back into one picture, there is no clearly visible seam.": "Para ampliação SD, quantidade de sobreposição em pixels que deve haver entre os ladrilhos. Os ladrilhos se sobrepõem para que, quando forem mesclados de volta em uma imagem, não haja linhas de junção claramente visíveis.",
+ "A directory on the same machine where the server is running.": "Um diretório na mesma máquina onde o servidor está rodando.",
"Leave blank to save images to the default path.": "Deixar em branco para salvar imagens no caminho padrão.",
"Result = A * (1 - M) + B * M": "Resultado = A * (1 - M) + B * M",
"Result = A + (B - C) * M": "Resultado = A + (B - C) * M",
- "1st and last digit must be 1. ex:'1, 2, 1'": "Primeiro e último dígito precisam ser 1. ex:'1, 2, 1'",
+ "1st and last digit must be 1. ex:'1, 2, 1'": "Primeiro e último dígito precisam ser 1. ex:`1, 2, 1`",
"Path to directory with input images": "Caminho para o diretório com imagens de entrada",
"Path to directory where to write outputs": "Caminho para o diretório para gravar as saídas",
- "Use following tags to define how filenames for images are chosen: [steps], [cfg], [prompt], [prompt_no_styles], [prompt_spaces], [width], [height], [styles], [sampler], [seed], [model_hash], [prompt_words], [date], [datetime], [datetime], [datetime], [job_timestamp]; leave empty for default.": "Usa essas tags para definir como os nomes dos arquivos sao escolhidos: [steps], [cfg], [prompt], [prompt_no_styles], [prompt_spaces], [width], [height], [styles], [sampler], [seed], [model_hash], [prompt_words], [date], [datetime], [job_timestamp]; deixe em branco para manter o padrao.",
- "If this option is enabled, watermark will not be added to created images. Warning: if you do not add watermark, you may be behaving in an unethical manner.": "Se esta opção estiver marcada, as imagens não vão ter marca d'água. Aviso: se você não quer a marca d'água, você pode estar se envolvendo em comportamentos antiéticos",
- "Use following tags to define how subdirectories for images and grids are chosen: [steps], [cfg], [prompt], [prompt_no_styles], [prompt_spaces], [width], [height], [styles], [sampler], [seed], [model_hash], [prompt_words], [date], [datetime], [datetime], [datetime], [job_timestamp]; leave empty for default.": "Usa essas tags para definir como os nomes dos subdiretorios e ghrades sao escolhidos: [steps], [cfg], [prompt], [prompt_no_styles], [prompt_spaces], [width], [height], [styles], [sampler], [seed], [model_hash], [prompt_words], [date], [datetime], [job_timestamp]; deixe em branco para manter o padrao.",
+ "Use following tags to define how filenames for images are chosen: [steps], [cfg], [prompt], [prompt_no_styles], [prompt_spaces], [width], [height], [styles], [sampler], [seed], [model_hash], [prompt_words], [date], [datetime], [datetime], [datetime], [job_timestamp]; leave empty for default.": "Usa essas tags para definir como os nomes dos arquivos sao escolhidos: [steps], [cfg], [prompt], [prompt_no_styles], [prompt_spaces], [width], [height], [styles], [sampler], [seed], [model_hash], [prompt_words], [date], [datetime], [job_timestamp]; deixe em branco para manter o padrão.",
+ "If this option is enabled, watermark will not be added to created images. Warning: if you do not add watermark, you may be behaving in an unethical manner.": "Se esta opção estiver marcada, as imagens não vão ter marca d`água. Aviso: se você não quer a marca d`água, você pode estar se envolvendo em comportamentos antiéticos",
+ "Use following tags to define how subdirectories for images and grids are chosen: [steps], [cfg], [prompt], [prompt_no_styles], [prompt_spaces], [width], [height], [styles], [sampler], [seed], [model_hash], [prompt_words], [date], [datetime], [datetime], [datetime], [job_timestamp]; leave empty for default.": "Usa essas tags para definir como os nomes dos subdiretorios e grades são escolhidos: [steps], [cfg], [prompt], [prompt_no_styles], [prompt_spaces], [width], [height], [styles], [sampler], [seed], [model_hash], [prompt_words], [date], [datetime], [job_timestamp]; deixe em branco para manter o padrão.",
"Restore low quality faces using GFPGAN neural network": "Restaurar rostos de baixa qualidade usando a rede neural GFPGAN",
- "This regular expression will be used extract words from filename, and they will be joined using the option below into label text used for training. Leave empty to keep filename text as it is.": "Esta expressão regular vai retirar palavras do nome do arquivo e vai se juntar usando a opção abaixo em etiquetas usadas em treinamento. Não mexer para manter os nomes como estão.",
+ "This regular expression will be used extract words from filename, and they will be joined using the option below into label text used for training. Leave empty to keep filename text as it is.": "Esta expressão regular vai retirar palavras do nome do arquivo e serão juntadas via regex usando a opção abaixo em etiquetas usadas em treinamento. Não mexer para manter os nomes como estão.",
"This string will be used to join split words into a single line if the option above is enabled.": "Esta string será usada para unir palavras divididas em uma única linha se a opção acima estiver habilitada.",
"List of setting names, separated by commas, for settings that should go to the quick access bar at the top, rather than the usual setting tab. See modules/shared.py for setting names. Requires restarting to apply.": "Lista de nomes de configurações, separados por vírgulas, para configurações que devem ir para a barra de acesso rápido na parte superior, em vez da guia de configuração usual. Veja modules/shared.py para nomes de configuração. Necessita reinicialização para aplicar.",
"If this values is non-zero, it will be added to seed and used to initialize RNG for noises when using samplers with Eta. You can use this to produce even more variation of images, or you can use this to match images of other software if you know what you are doing.": "Se este valor for diferente de zero, ele será adicionado à seed e usado para inicializar o RNG para ruídos ao usar amostragens com Tempo Estimado. Você pode usar isso para produzir ainda mais variações de imagens ou pode usar isso para combinar imagens de outro software se souber o que está fazendo."
--
cgit v1.2.1
From 3d9dd6c18439b58e16badc281d5560b1a6c53934 Mon Sep 17 00:00:00 2001
From: "Modar M. Alfadly"
Date: Sun, 30 Oct 2022 02:03:15 +0300
Subject: Update ar_AR.json
---
localizations/ar_AR.json | 102 +++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 98 insertions(+), 4 deletions(-)
diff --git a/localizations/ar_AR.json b/localizations/ar_AR.json
index 271ebb87..abbbcff4 100644
--- a/localizations/ar_AR.json
+++ b/localizations/ar_AR.json
@@ -26,8 +26,21 @@
"Sampling Steps": "عدد الخطوات",
"Sampling method": "أسلوب الخطو",
"Which algorithm to use to produce the image": "Sampler: اسم نظام تحديد طريقة تغيير المسافات بين الخطوات",
+ "Euler a": "Euler a",
"Euler Ancestral - very creative, each can get a completely different picture depending on step count, setting steps to higher than 30-40 does not help": "Euler Ancestral: طريقة مبدعة يمكن أن تنتج صور مختلفة على حسب عدد الخطوات، لا تتغير بعد 30-40 خطوة",
+ "Euler": "Euler",
+ "LMS": "LMS",
+ "Heun": "Heun",
+ "DPM2": "DPM2",
+ "DPM2 a": "DPM2 a",
+ "DPM fast": "DPM fast",
+ "DPM adaptive": "DPM adaptive",
+ "LMS Karras": "LMS Karras",
+ "DPM2 Karras": "DPM2 Karras",
+ "DPM2 a Karras": "DPM2 a Karras",
+ "DDIM": "DDIM",
"Denoising Diffusion Implicit Models - best at inpainting": "Denoising Diffusion Implicit Models: الأفضل في الإنتاج الجزئي",
+ "PLMS": "PLMS",
"Width": "العرض",
"Height": "الإرتفاع",
"Restore faces": "تحسين الوجوه",
@@ -58,6 +71,7 @@
"Resize seed from height": "إرتفاع الممزوج",
"Make an attempt to produce a picture similar to what would have been produced with same seed at specified resolution": "Seed resize from: حدد دقة صورة الممزوج (0: نفس دقة الإنتاج)",
"Open for Clip Aesthetic!": "تضمين تجميلي",
+ "▼": "▼",
"Aesthetic weight": "أثر التضمين",
"Aesthetic steps": "عدد الخطوات",
"Aesthetic learning rate": "معدل التعلم",
@@ -79,7 +93,6 @@
"-": "-",
"or": "أو",
"Click to Upload": "انقر للرفع",
- "Prompts": "قائمة الطلبات",
"X/Y plot": "مصفوفة عوامل",
"X type": "العامل الأول",
"Nothing": "لا شيء",
@@ -92,6 +105,8 @@
"Checkpoint name": "ملف الأوزان",
"Hypernetwork": "الشبكة الفائقة",
"Hypernet str.": "قوة الشبكة الفائقة",
+ "Inpainting conditioning mask strength": "قوة قناع الإنتاج الجزئي",
+ "Only applies to inpainting models. Determines how strongly to mask off the original image for inpainting and img2img. 1.0 means fully masked, which is the default behaviour. 0.0 means a fully unmasked conditioning. Lower values will help preserve the overall composition of the image, but will struggle with large changes.": "حدد مدى صرامة قناع الإنتاج، يصبح القناع شفاف إذا قوته 0 (لا يعمل إلا مع ملفات أوزان الإنتاج الجزئي: inpainting)",
"Sigma Churn": "العشوائية (Schurn)",
"Sigma min": "أدنى تشويش (Stmin)",
"Sigma max": "أقصى تشويش (Stmax)",
@@ -99,6 +114,7 @@
"Eta": "العامل Eta η",
"Clip skip": "تخطي آخر طبقات CLIP",
"Denoising": "المدى",
+ "Cond. Image Mask Weight": "قوة قناع الإنتاج الجزئي",
"X values": "قيم العامل الأول",
"Separate values for X axis using commas.": "افصل القيم بفواصل (,) من اليسار إلى اليمين",
"Y type": "العامل الثاني",
@@ -168,6 +184,12 @@
"Tile overlap": "تداخل النافذة",
"For SD upscale, how much overlap in pixels should there be between tiles. Tiles overlap so that when they are merged back into one picture, there is no clearly visible seam.": "المكبر ينظر إلى أجزاء الصورة من خلال نافذة لتكبير المحتوى ثم ينتقل إلى الجزء المجاور، يفضل أن يكون هناك تداخل بين كل رقعة لكي لا يكون هناك اختلاف واضح بينهم",
"Upscaler": "طريقة التكبير",
+ "Lanczos": "Lanczos",
+ "LDSR": "LDSR",
+ "ScuNET GAN": "ScuNET GAN",
+ "ScuNET PSNR": "ScuNET PSNR",
+ "ESRGAN_4x": "ESRGAN_4x",
+ "SwinIR 4x": "SwinIR 4x",
"Inpaint": "إنتاج جزئي",
"Draw mask": "ارسم القناع",
"Upload mask": "ارفع القناع",
@@ -192,6 +214,7 @@
"GFPGAN visibility": "أثر GFPGAN (محسن وجوه)",
"CodeFormer visibility": "أثر CodeFormer (محسن وجوه)",
"CodeFormer weight (0 = maximum effect, 1 = minimum effect)": "وزن CodeFormer (يزيد التفاصيل على حساب الجودة)",
+ "Upscale Before Restoring Faces": "كبر قبل تحسين الوجوه",
"Scale to": "دقة محددة",
"Crop to fit": "قص الأطراف الزائدة إذا لم تتناسب الأبعاد",
"Batch Process": "حزمة صور",
@@ -199,7 +222,6 @@
"A directory on the same machine where the server is running.": "مسار مجلد صور موجود في جهاز الخادم",
"Leave blank to save images to the default path.": "اتركه فارغا لاستخدام المسار الإفتراضي",
"Show result images": "اعرض الصور الناتجة",
- "Open output directory": "افتح مجلد المخرجات",
"PNG Info": "عوامل الصورة",
"Send to txt2img": "أرسل لنص إلى صورة",
"Checkpoint Merger": "مزج الأوزان",
@@ -232,7 +254,41 @@
"Enter hypernetwork layer structure": "ترتيب مضاعفات عرض الطبقات",
"1st and last digit must be 1. ex:'1, 2, 1'": "المضاعفين الأول والأخير يجب أن يكونا 1، مثال: 1, 2, 1",
"Select activation function of hypernetwork": "دالة التنشيط",
+ "linear": "linear",
+ "relu": "relu",
+ "leakyrelu": "leakyrelu",
+ "elu": "elu",
+ "swish": "swish",
+ "tanh": "tanh",
+ "sigmoid": "sigmoid",
+ "celu": "celu",
+ "gelu": "gelu",
+ "glu": "glu",
+ "hardshrink": "hardshrink",
+ "hardsigmoid": "hardsigmoid",
+ "hardtanh": "hardtanh",
+ "logsigmoid": "logsigmoid",
+ "logsoftmax": "logsoftmax",
+ "mish": "mish",
+ "prelu": "prelu",
+ "rrelu": "rrelu",
+ "relu6": "relu6",
+ "selu": "selu",
+ "silu": "silu",
+ "softmax": "softmax",
+ "softmax2d": "softmax2d",
+ "softmin": "softmin",
+ "softplus": "softplus",
+ "softshrink": "softshrink",
+ "softsign": "softsign",
+ "tanhshrink": "tanhshrink",
+ "threshold": "threshold",
"Select Layer weights initialization. relu-like - Kaiming, sigmoid-like - Xavier is recommended": "تهيئة الأوزان (استخدم Kaiming مع relu وأمثالها وXavier مع sigmoid وأمثالها)",
+ "Normal": "Normal",
+ "KaimingUniform": "KaimingUniform",
+ "KaimingNormal": "KaimingNormal",
+ "XavierUniform": "XavierUniform",
+ "XavierNormal": "XavierNormal",
"Add layer normalization": "أضف تسوية الطبقات (LayerNorm)",
"Use dropout": "استخدم الإسقاط (Dropout)",
"Overwrite Old Hypernetwork": "استبدل الشبكة الفائقة القديمة",
@@ -393,6 +449,7 @@
"Add model hash to generation information": "أضف رمز تهشير (Hash) ملف الأوزان لعوامل الإنتاج",
"Add model name to generation information": "أضف اسم ملف الأوزان لعوامل الإنتاج",
"When reading generation parameters from text into UI (from PNG info or pasted text), do not change the selected model/checkpoint.": "لا تغير الأوزان المختارة عند قراءة عوامل الإنتاج من صورة أو من ملف",
+ "Send seed when sending prompt or image to other interface": "عند إرسال صورة أو طلب ألحق البذرة أيضا",
"Font for image grids that have text": "نوع الخط في جداول الصور التي تحتوي على نصوص",
"Enable full page image viewer": "اسمح بعرض الصور في وضع ملئ الشاشة",
"Show images zoomed in by default in full page image viewer": "اعرض الصور مقربة عند استخدام وضع ملئ الشاشة",
@@ -400,6 +457,18 @@
"Quicksettings list": "قائمة الإعدادات السريعة",
"List of setting names, separated by commas, for settings that should go to the quick access bar at the top, rather than the usual setting tab. See modules/shared.py for setting names. Requires restarting to apply.": "قائمة مقسمة بفواصل لأسماء الإعدادات التي يجب أن تظهر في الأعلى لتسهيل الوصول إليها، انظر إلى modules/shared.py لمعرفة الأسماء، يتطلب إعادة تشغيل",
"Localization (requires restart)": "اللغة (تتطلب إعادة تشغيل)",
+ "pt_BR": "البرتغالية",
+ "zh_CN": "الصينية",
+ "ko_KR": "الكورية",
+ "fr_FR": "الفرنسية",
+ "ru_RU": "الروسية",
+ "ar_AR": "العربية",
+ "tr_TR": "التركية",
+ "it_IT": "الإيطالية",
+ "ja_JP": "اليابانية",
+ "de_DE": "الألمانية",
+ "zh_TW": "الصينية (تايوان)",
+ "es_ES": "الإسبانية",
"Sampler parameters": "عوامل أساليب الخطو",
"Hide samplers in user interface (requires restart)": "اخف أساليب الخطو التالية (يتطلب إعادة تشغيل)",
"eta (noise multiplier) for DDIM": "العامل Eta η لأسلوب الخطو DDIM",
@@ -420,5 +489,30 @@
"Request browser notifications": "اطلب تنبيهات المتصفح",
"Download localization template": "حمل ملف اللغة",
"Reload custom script bodies (No ui updates, No restart)": "أعد تحميل الأدوات الخاصة (بدون واجهة المستخدم ولا يحتاج إعادة تشغيل)",
- "Restart Gradio and Refresh components (Custom Scripts, ui.py, js and css only)": "أعد تشغيل gradio وتحميل الأدوات الخاصة وواجهة المستخدم"
-}
\ No newline at end of file
+ "Restart Gradio and Refresh components (Custom Scripts, ui.py, js and css only)": "أعد تشغيل gradio وتحميل الأدوات الخاصة وواجهة المستخدم",
+ "⤡": "⤡",
+ "⊞": "⊞",
+ "×": "×",
+ "❮": "❮",
+ "❯": "❯",
+ "•": "•",
+ "Label": "Label",
+ "File": "File",
+ "Image": "Image",
+ "Check progress": "Check progress",
+ "Check progress (first)": "Check progress (first)",
+ "Textbox": "Textbox",
+ "Image for img2img": "Image for img2img",
+ "Image for inpainting with mask": "Image for inpainting with mask",
+ "Mask": "Mask",
+ "Mask mode": "Mask mode",
+ "Masking mode": "Masking mode",
+ "Resize mode": "Resize mode",
+ "Prev batch": "Prev batch",
+ "Next batch": "Next batch",
+ "Refresh page": "Refresh page",
+ "Date to": "Date to",
+ "Number": "Number",
+ "set_index": "set_index",
+ "Checkbox": "Checkbox"
+}
--
cgit v1.2.1
From 05a657dd357eaca6940c4775daa946bd33f1167d Mon Sep 17 00:00:00 2001
From: AUTOMATIC <16777216c@gmail.com>
Date: Sun, 30 Oct 2022 07:36:56 +0300
Subject: fix broken hires fix
---
modules/processing.py | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/modules/processing.py b/modules/processing.py
index 50343846..947ce6fa 100644
--- a/modules/processing.py
+++ b/modules/processing.py
@@ -686,15 +686,12 @@ class StableDiffusionProcessingTxt2Img(StableDiffusionProcessing):
noise = create_random_tensors(samples.shape[1:], seeds=seeds, subseeds=subseeds, subseed_strength=subseed_strength, seed_resize_from_h=self.seed_resize_from_h, seed_resize_from_w=self.seed_resize_from_w, p=self)
+ image_conditioning = self.txt2img_image_conditioning(x)
+
# GC now before running the next img2img to prevent running out of memory
x = None
devices.torch_gc()
- image_conditioning = self.img2img_image_conditioning(
- decoded_samples,
- samples,
- decoded_samples.new_ones(decoded_samples.shape[0], 1, decoded_samples.shape[2], decoded_samples.shape[3])
- )
samples = self.sampler.sample_img2img(self, samples, noise, conditioning, unconditional_conditioning, steps=self.steps, image_conditioning=image_conditioning)
return samples
--
cgit v1.2.1
From 59dfe0845d964868e92572c78a420b6d68c46ea4 Mon Sep 17 00:00:00 2001
From: AUTOMATIC <16777216c@gmail.com>
Date: Sun, 30 Oct 2022 08:22:44 +0300
Subject: launch tests from launch.py with --tests commandline argument
---
.gitignore | 2 ++
launch.py | 19 +++++++++++++++++++
run_tests.bat | 15 ---------------
test/extras_test.py | 6 +++---
test/img2img_test.py | 12 ++++++------
test/server_poll.py | 28 +++++++++++++++-------------
test/txt2img_test.py | 8 +++++---
7 files changed, 50 insertions(+), 40 deletions(-)
delete mode 100644 run_tests.bat
diff --git a/.gitignore b/.gitignore
index 8fa05852..ee53044c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -29,3 +29,5 @@ notification.mp3
/textual_inversion
.vscode
/extensions
+/test/stdout.txt
+/test/stderr.txt
diff --git a/launch.py b/launch.py
index 8affd410..33f98343 100644
--- a/launch.py
+++ b/launch.py
@@ -128,10 +128,12 @@ def prepare_enviroment():
blip_commit_hash = os.environ.get('BLIP_COMMIT_HASH', "48211a1594f1321b00f14c9f7a5b4813144b2fb9")
sys.argv += shlex.split(commandline_args)
+ test_argv = [x for x in sys.argv if x != '--tests']
sys.argv, skip_torch_cuda_test = extract_arg(sys.argv, '--skip-torch-cuda-test')
sys.argv, reinstall_xformers = extract_arg(sys.argv, '--reinstall-xformers')
sys.argv, update_check = extract_arg(sys.argv, '--update-check')
+ sys.argv, run_tests = extract_arg(sys.argv, '--tests')
xformers = '--xformers' in sys.argv
deepdanbooru = '--deepdanbooru' in sys.argv
ngrok = '--ngrok' in sys.argv
@@ -194,6 +196,23 @@ def prepare_enviroment():
print("Exiting because of --exit argument")
exit(0)
+ if run_tests:
+ tests(test_argv)
+ exit(0)
+
+
+def tests(argv):
+ print(f"Launching Web UI in another process for testing with arguments: {' '.join(argv[1:])}")
+
+ with open('test/stdout.txt', "w", encoding="utf8") as stdout, open('test/stderr.txt', "w", encoding="utf8") as stderr:
+ proc = subprocess.Popen([sys.executable, *argv], stdout=stdout, stderr=stderr)
+
+ import test.server_poll
+ test.server_poll.run_tests()
+
+ print(f"Stopping Web UI process with id {proc.pid}")
+ proc.kill()
+
def start_webui():
print(f"Launching Web UI with arguments: {' '.join(sys.argv[1:])}")
diff --git a/run_tests.bat b/run_tests.bat
deleted file mode 100644
index 3a63f034..00000000
--- a/run_tests.bat
+++ /dev/null
@@ -1,15 +0,0 @@
-@echo off
-set ERROR_REPORTING=FALSE
-set COMMANDLINE_ARGS= --api
-echo Launching SDWebUI...
-start "SDWebUITest" webui.bat
-
-if not defined PYTHON (set PYTHON=python)
-if not defined VENV_DIR (set VENV_DIR=venv)
-set PYTHON="%~dp0%VENV_DIR%\Scripts\Python.exe"
-%PYTHON% test/server_poll.py
-for /f "tokens=2 delims=," %%a in ('tasklist /v /fo csv ^| findstr /i "SDWebUITest"') do set "$PID=%%a"
-
-taskkill /PID %$PID% >nul 2>&1
-
-pause
diff --git a/test/extras_test.py b/test/extras_test.py
index 2e1764d9..9b8ce0f0 100644
--- a/test/extras_test.py
+++ b/test/extras_test.py
@@ -1,7 +1,5 @@
import unittest
-import requests
-from gradio.processing_utils import encode_pil_to_base64
-from PIL import Image
+
class TestExtrasWorking(unittest.TestCase):
def setUp(self):
@@ -22,8 +20,10 @@ class TestExtrasWorking(unittest.TestCase):
"image": ""
}
+
class TestExtrasCorrectness(unittest.TestCase):
pass
+
if __name__ == "__main__":
unittest.main()
diff --git a/test/img2img_test.py b/test/img2img_test.py
index 61e3e285..012a9580 100644
--- a/test/img2img_test.py
+++ b/test/img2img_test.py
@@ -3,13 +3,12 @@ import requests
from gradio.processing_utils import encode_pil_to_base64
from PIL import Image
+
class TestImg2ImgWorking(unittest.TestCase):
def setUp(self):
self.url_img2img = "http://localhost:7860/sdapi/v1/img2img"
self.simple_img2img = {
- "init_images": [
- encode_pil_to_base64(Image.open(r"test/test_files/img2img_basic.png"))
- ],
+ "init_images": [encode_pil_to_base64(Image.open(r"test/test_files/img2img_basic.png"))],
"resize_mode": 0,
"denoising_strength": 0.75,
"mask": None,
@@ -19,9 +18,7 @@ class TestImg2ImgWorking(unittest.TestCase):
"inpaint_full_res_padding": 0,
"inpainting_mask_invert": 0,
"prompt": "example prompt",
- "styles": [
- ""
- ],
+ "styles": [],
"seed": -1,
"subseed": -1,
"subseed_strength": 0,
@@ -45,6 +42,7 @@ class TestImg2ImgWorking(unittest.TestCase):
"sampler_index": "Euler a",
"include_init_images": False
}
+
def test_img2img_simple_performed(self):
self.assertEqual(requests.post(self.url_img2img, json=self.simple_img2img).status_code, 200)
@@ -52,8 +50,10 @@ class TestImg2ImgWorking(unittest.TestCase):
self.simple_img2img["mask"] = encode_pil_to_base64(Image.open(r"test/test_files/mask_basic.png"))
self.assertEqual(requests.post(self.url_img2img, json=self.simple_img2img).status_code, 200)
+
class TestImg2ImgCorrectness(unittest.TestCase):
pass
+
if __name__ == "__main__":
unittest.main()
diff --git a/test/server_poll.py b/test/server_poll.py
index 8c0436f8..eeefb7eb 100644
--- a/test/server_poll.py
+++ b/test/server_poll.py
@@ -2,16 +2,18 @@ import unittest
import requests
import time
-timeout_threshold = 240
-start_time = time.time()
-while time.time()-start_time < timeout_threshold:
- try:
- requests.head("http://localhost:7860/")
- break
- except requests.exceptions.ConnectionError:
- pass
-if time.time()-start_time < timeout_threshold:
- suite = unittest.TestLoader().discover('', pattern='*_test.py')
- result = unittest.TextTestRunner(verbosity=2).run(suite)
-else:
- print("Launch unsuccessful")
+
+def run_tests():
+ timeout_threshold = 240
+ start_time = time.time()
+ while time.time()-start_time < timeout_threshold:
+ try:
+ requests.head("http://localhost:7860/")
+ break
+ except requests.exceptions.ConnectionError:
+ pass
+ if time.time()-start_time < timeout_threshold:
+ suite = unittest.TestLoader().discover('', pattern='*_test.py')
+ result = unittest.TextTestRunner(verbosity=2).run(suite)
+ else:
+ print("Launch unsuccessful")
diff --git a/test/txt2img_test.py b/test/txt2img_test.py
index ad27686a..1936e07e 100644
--- a/test/txt2img_test.py
+++ b/test/txt2img_test.py
@@ -1,6 +1,7 @@
import unittest
import requests
+
class TestTxt2ImgWorking(unittest.TestCase):
def setUp(self):
self.url_txt2img = "http://localhost:7860/sdapi/v1/txt2img"
@@ -10,9 +11,7 @@ class TestTxt2ImgWorking(unittest.TestCase):
"firstphase_width": 0,
"firstphase_height": 0,
"prompt": "example prompt",
- "styles": [
- ""
- ],
+ "styles": [],
"seed": -1,
"subseed": -1,
"subseed_strength": 0,
@@ -34,6 +33,7 @@ class TestTxt2ImgWorking(unittest.TestCase):
"s_noise": 1,
"sampler_index": "Euler a"
}
+
def test_txt2img_simple_performed(self):
self.assertEqual(requests.post(self.url_txt2img, json=self.simple_txt2img).status_code, 200)
@@ -65,8 +65,10 @@ class TestTxt2ImgWorking(unittest.TestCase):
self.simple_txt2img["n_iter"] = 2
self.assertEqual(requests.post(self.url_txt2img, json=self.simple_txt2img).status_code, 200)
+
class TestTxt2ImgCorrectness(unittest.TestCase):
pass
+
if __name__ == "__main__":
unittest.main()
--
cgit v1.2.1
From 5a6e0cfba675c0f11ade7124cbeec1356c77beb2 Mon Sep 17 00:00:00 2001
From: AUTOMATIC <16777216c@gmail.com>
Date: Sun, 30 Oct 2022 08:28:36 +0300
Subject: always add --api when running tests
---
launch.py | 3 +++
1 file changed, 3 insertions(+)
diff --git a/launch.py b/launch.py
index 33f98343..958336f2 100644
--- a/launch.py
+++ b/launch.py
@@ -202,6 +202,9 @@ def prepare_enviroment():
def tests(argv):
+ if "--api" not in argv:
+ argv.append("--api")
+
print(f"Launching Web UI in another process for testing with arguments: {' '.join(argv[1:])}")
with open('test/stdout.txt', "w", encoding="utf8") as stdout, open('test/stderr.txt', "w", encoding="utf8") as stderr:
--
cgit v1.2.1
From 61836bd544fc8f4ef62f311c9d5964fbdaeb3f4c Mon Sep 17 00:00:00 2001
From: AUTOMATIC <16777216c@gmail.com>
Date: Sun, 30 Oct 2022 08:48:53 +0300
Subject: shorten Hypernetwork strength in infotext and omit it when it's the
default value.
---
modules/generation_parameters_copypaste.py | 2 +-
modules/processing.py | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/generation_parameters_copypaste.py b/modules/generation_parameters_copypaste.py
index 59c6d7da..df70c728 100644
--- a/modules/generation_parameters_copypaste.py
+++ b/modules/generation_parameters_copypaste.py
@@ -66,7 +66,7 @@ def integrate_settings_paste_fields(component_dict):
settings_map = {
'sd_hypernetwork': 'Hypernet',
- 'sd_hypernetwork_strength': 'Hypernetwork strength',
+ 'sd_hypernetwork_strength': 'Hypernet strength',
'CLIP_stop_at_last_layers': 'Clip skip',
'sd_model_checkpoint': 'Model hash',
}
diff --git a/modules/processing.py b/modules/processing.py
index ecaa78e2..b1df4918 100644
--- a/modules/processing.py
+++ b/modules/processing.py
@@ -396,7 +396,7 @@ def create_infotext(p, all_prompts, all_seeds, all_subseeds, comments, iteration
"Model hash": getattr(p, 'sd_model_hash', None if not opts.add_model_hash_to_info or not shared.sd_model.sd_model_hash else shared.sd_model.sd_model_hash),
"Model": (None if not opts.add_model_name_to_info or not shared.sd_model.sd_checkpoint_info.model_name else shared.sd_model.sd_checkpoint_info.model_name.replace(',', '').replace(':', '')),
"Hypernet": (None if shared.loaded_hypernetwork is None else shared.loaded_hypernetwork.name),
- "Hypernetwork strength": (None if shared.loaded_hypernetwork is None else shared.opts.sd_hypernetwork_strength),
+ "Hypernet strength": (None if shared.loaded_hypernetwork is None or shared.opts.sd_hypernetwork_strength >= 1 else shared.opts.sd_hypernetwork_strength),
"Batch size": (None if p.batch_size < 2 else p.batch_size),
"Batch pos": (None if p.batch_size < 2 else position_in_batch),
"Variation seed": (None if p.subseed_strength == 0 else all_subseeds[index]),
--
cgit v1.2.1
From 149784202cca8612b43629c601ee27cfda64e623 Mon Sep 17 00:00:00 2001
From: AUTOMATIC <16777216c@gmail.com>
Date: Sun, 30 Oct 2022 09:10:22 +0300
Subject: rework #3722 to not introduce duplicate code
---
modules/api/api.py | 43 +++++++++++++------------------------------
modules/shared.py | 22 +++++++++++++++++++---
webui.py | 19 +++----------------
3 files changed, 35 insertions(+), 49 deletions(-)
diff --git a/modules/api/api.py b/modules/api/api.py
index 5c5b210f..6c06d449 100644
--- a/modules/api/api.py
+++ b/modules/api/api.py
@@ -9,31 +9,6 @@ from modules.processing import StableDiffusionProcessingTxt2Img, StableDiffusion
from modules.sd_samplers import all_samplers
from modules.extras import run_extras, run_pnginfo
-# copy from wrap_gradio_gpu_call of webui.py
-# because queue lock will be acquired in api handlers
-# and time start needs to be set
-# the function has been modified into two parts
-
-def before_gpu_call():
- devices.torch_gc()
-
- shared.state.sampling_step = 0
- shared.state.job_count = -1
- shared.state.job_no = 0
- shared.state.job_timestamp = shared.state.get_job_timestamp()
- shared.state.current_latent = None
- shared.state.current_image = None
- shared.state.current_image_sampling_step = 0
- shared.state.skipped = False
- shared.state.interrupted = False
- shared.state.textinfo = None
- shared.state.time_start = time.time()
-
-def after_gpu_call():
- shared.state.job = ""
- shared.state.job_count = 0
-
- devices.torch_gc()
def upscaler_to_index(name: str):
try:
@@ -41,8 +16,10 @@ def upscaler_to_index(name: str):
except:
raise HTTPException(status_code=400, detail=f"Invalid upscaler, needs to be on of these: {' , '.join([x.name for x in sd_upscalers])}")
+
sampler_to_index = lambda name: next(filter(lambda row: name.lower() == row[1].name.lower(), enumerate(all_samplers)), None)
+
def setUpscalers(req: dict):
reqDict = vars(req)
reqDict['extras_upscaler_1'] = upscaler_to_index(req.upscaler_1)
@@ -51,6 +28,7 @@ def setUpscalers(req: dict):
reqDict.pop('upscaler_2')
return reqDict
+
class Api:
def __init__(self, app, queue_lock):
self.router = APIRouter()
@@ -78,10 +56,13 @@ class Api:
)
p = StableDiffusionProcessingTxt2Img(**vars(populate))
# Override object param
- before_gpu_call()
+
+ shared.state.begin()
+
with self.queue_lock:
processed = process_images(p)
- after_gpu_call()
+
+ shared.state.end()
b64images = list(map(encode_pil_to_base64, processed.images))
@@ -119,11 +100,13 @@ class Api:
imgs = [img] * p.batch_size
p.init_images = imgs
- # Override object param
- before_gpu_call()
+
+ shared.state.begin()
+
with self.queue_lock:
processed = process_images(p)
- after_gpu_call()
+
+ shared.state.end()
b64images = list(map(encode_pil_to_base64, processed.images))
diff --git a/modules/shared.py b/modules/shared.py
index f7b0990c..e4f163c1 100644
--- a/modules/shared.py
+++ b/modules/shared.py
@@ -144,9 +144,6 @@ class State:
self.sampling_step = 0
self.current_image_sampling_step = 0
- def get_job_timestamp(self):
- return datetime.datetime.now().strftime("%Y%m%d%H%M%S") # shouldn't this return job_timestamp?
-
def dict(self):
obj = {
"skipped": self.skipped,
@@ -160,6 +157,25 @@ class State:
return obj
+ def begin(self):
+ self.sampling_step = 0
+ self.job_count = -1
+ self.job_no = 0
+ self.job_timestamp = datetime.datetime.now().strftime("%Y%m%d%H%M%S")
+ self.current_latent = None
+ self.current_image = None
+ self.current_image_sampling_step = 0
+ self.skipped = False
+ self.interrupted = False
+ self.textinfo = None
+
+ devices.torch_gc()
+
+ def end(self):
+ self.job = ""
+ self.job_count = 0
+
+ devices.torch_gc()
state = State()
diff --git a/webui.py b/webui.py
index ade7334b..29530872 100644
--- a/webui.py
+++ b/webui.py
@@ -46,26 +46,13 @@ def wrap_queued_call(func):
def wrap_gradio_gpu_call(func, extra_outputs=None):
def f(*args, **kwargs):
- devices.torch_gc()
-
- shared.state.sampling_step = 0
- shared.state.job_count = -1
- shared.state.job_no = 0
- shared.state.job_timestamp = shared.state.get_job_timestamp()
- shared.state.current_latent = None
- shared.state.current_image = None
- shared.state.current_image_sampling_step = 0
- shared.state.skipped = False
- shared.state.interrupted = False
- shared.state.textinfo = None
+
+ shared.state.begin()
with queue_lock:
res = func(*args, **kwargs)
- shared.state.job = ""
- shared.state.job_count = 0
-
- devices.torch_gc()
+ shared.state.end()
return res
--
cgit v1.2.1
From e19edbbf724cb19387600da754627933fcc6563e Mon Sep 17 00:00:00 2001
From: Dynamic
Date: Mon, 31 Oct 2022 16:56:41 +0900
Subject: Update ko_KR.json
Added KR support for Dynamic Prompts extension - https://github.com/mkco5162/sd-dynamic-prompts
---
localizations/ko_KR.json | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/localizations/ko_KR.json b/localizations/ko_KR.json
index 8f5f155b..66d4addf 100644
--- a/localizations/ko_KR.json
+++ b/localizations/ko_KR.json
@@ -33,10 +33,12 @@
"Always save all generated images": "생성된 이미지 항상 저장하기",
"api": "",
"append": "뒤에 삽입",
+ "Append commas": "쉼표 삽입",
"Apply color correction to img2img results to match original colors.": "이미지→이미지 결과물이 기존 색상과 일치하도록 색상 보정 적용하기",
"Apply selected styles to current prompt": "현재 프롬프트에 선택된 스타일 적용",
"Apply settings": "설정 적용하기",
"Auto focal point crop": "초점 기준 크롭(자동 감지)",
+ "Autocomplete options": "자동완성 설정",
"Batch count": "배치 수",
"Batch from Directory": "저장 경로로부터 여러장 처리",
"Batch img2img": "이미지→이미지 배치",
@@ -64,6 +66,9 @@
"CodeFormer weight parameter; 0 = maximum effect; 1 = minimum effect": "CodeFormer 가중치 설정값 (0 = 최대 효과, 1 = 최소 효과)",
"Collect": "즐겨찾기",
"Color variation": "색깔 다양성",
+ "Combinations": "조합",
+ "Combinatorial batches": "조합 배치 수",
+ "Combinatorial generation": "조합 생성",
"copy": "복사",
"Create a grid where images will have different parameters. Use inputs below to specify which parameters will be shared by columns and rows": "서로 다른 설정값으로 생성된 이미지의 그리드를 만듭니다. 아래의 설정으로 가로/세로에 어떤 설정값을 적용할지 선택하세요.",
"Create a text file next to every image with generation parameters.": "생성된 이미지마다 생성 설정값을 담은 텍스트 파일 생성하기",
@@ -150,6 +155,7 @@
"First Page": "처음 페이지",
"Firstpass height": "초기 세로길이",
"Firstpass width": "초기 가로길이",
+ "Fixed seed": "시드 고정",
"Focal point edges weight": "경계면 가중치",
"Focal point entropy weight": "엔트로피 가중치",
"Focal point face weight": "얼굴 가중치",
@@ -247,6 +253,7 @@
"Loopback": "루프백",
"Loops": "루프 수",
"Loss:": "손실(Loss) : ",
+ "Magic prompt": "매직 프롬프트",
"Make an attempt to produce a picture similar to what would have been produced with same seed at specified resolution": "동일한 시드 값으로 생성되었을 이미지를 주어진 해상도로 최대한 유사하게 재현합니다.",
"Make K-diffusion samplers produce same images in a batch as when making a single image": "K-diffusion 샘플러들이 단일 이미지를 생성하는 것처럼 배치에서도 동일한 이미지를 생성하게 하기",
"Make Zip when Save?": "저장 시 Zip 생성하기",
--
cgit v1.2.1
From 81624f4dfb041a53a796cdca18401e2d920972ac Mon Sep 17 00:00:00 2001
From: Dynamic
Date: Mon, 31 Oct 2022 22:25:05 +0900
Subject: Added some extension KR support
Supported extensions
https://github.com/adieyal/sd-dynamic-prompts
https://github.com/yfszzx/stable-diffusion-webui-images-browser
https://github.com/DominikDoom/a1111-sd-webui-tagcomplete
https://github.com/lilly1987/AI-WEBUI-scripts-Random
---
localizations/ko_KR.json | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/localizations/ko_KR.json b/localizations/ko_KR.json
index 66d4addf..09ee5c86 100644
--- a/localizations/ko_KR.json
+++ b/localizations/ko_KR.json
@@ -47,6 +47,7 @@
"BSRGAN 4x": "BSRGAN 4x",
"built with gradio": "gradio로 제작되었습니다",
"Cancel generate forever": "반복 생성 취소",
+ "cfg cnt": "CFG 변화 횟수",
"cfg count": "CFG 변화 횟수",
"CFG Scale": "CFG 스케일",
"cfg1 min/max": "CFG1 최소/최대",
@@ -83,10 +84,12 @@
"custom fold": "커스텀 경로",
"Custom Name (Optional)": "병합 모델 이름 (선택사항)",
"Dataset directory": "데이터셋 경로",
+ "date": "생성 일자",
"DDIM": "DDIM",
"Decode CFG scale": "디코딩 CFG 스케일",
"Decode steps": "디코딩 스텝 수",
"Delete": "삭제",
+ "delete next": "선택한 이미지부터 시작해서 삭제할 이미지 갯수",
"Denoising": "디노이징",
"Denoising Diffusion Implicit Models - best at inpainting": "Denoising Diffusion Implicit Models - 인페이팅에 뛰어남",
"Denoising strength": "디노이즈 강도",
@@ -113,6 +116,7 @@
"Draw mask": "마스크 직접 그리기",
"Drop File Here": "파일을 끌어 놓으세요",
"Drop Image Here": "이미지를 끌어 놓으세요",
+ "Dropdown": "드롭다운",
"Embedding": "임베딩",
"Embedding Learning rate": "임베딩 학습률",
"Emphasis: use (text) to make model pay more attention to text and [text] to make it pay less attention": "강조 : (텍스트)를 이용해 모델의 텍스트에 대한 가중치를 더 강하게 주고 [텍스트]를 이용해 더 약하게 줍니다.",
@@ -139,7 +143,7 @@
"Face restoration": "얼굴 보정",
"Face restoration model": "얼굴 보정 모델",
"Fall-off exponent (lower=higher detail)": "감쇠 지수 (낮을수록 디테일이 올라감)",
- "favorites": "즐겨찾기",
+ "Favorites": "즐겨찾기",
"File": "파일",
"File format for grids": "그리드 이미지 파일 형식",
"File format for images": "이미지 파일 형식",
@@ -192,6 +196,7 @@
"Image Browser": "이미지 브라우저",
"Image for img2img": "Image for img2img",
"Image for inpainting with mask": "마스크로 인페인팅할 이미지",
+ "Image not found (may have been already moved)": "이미지를 찾을 수 없습니다 (이미 옮겨졌을 수 있음)",
"Images Browser": "이미지 브라우저",
"Images directory": "이미지 경로",
"Images filename pattern": "이미지 파일명 패턴",
@@ -229,6 +234,7 @@
"Just resize": "리사이징",
"Keep -1 for seeds": "시드값 -1로 유지",
"keep whatever was there originally": "이미지 원본 유지",
+ "keyword": "프롬프트",
"Label": "라벨",
"Lanczos": "Lanczos",
"Last prompt:": "마지막 프롬프트 : ",
@@ -267,7 +273,9 @@
"Minimum number of pages per load": "한번 불러올 때마다 불러올 최소 페이지 수",
"Modules": "모듈",
"Move face restoration model from VRAM into RAM after processing": "처리가 완료되면 얼굴 보정 모델을 VRAM에서 RAM으로 옮기기",
+ "Move to favorites": "즐겨찾기로 옮기기",
"Move VAE and CLIP to RAM when training hypernetwork. Saves VRAM.": "하이퍼네트워크 훈련 진행 시 VAE와 CLIP을 RAM으로 옮기기. VRAM이 절약됩니다.",
+ "Moved to favorites": "즐겨찾기로 옮겨짐",
"Multiplier (M) - set to 0 to get model A": "배율 (M) - 0으로 적용하면 모델 A를 얻게 됩니다",
"Name": "이름",
"Negative prompt": "네거티브 프롬프트",
@@ -292,6 +300,7 @@
"original": "원본 유지",
"Original negative prompt": "기존 네거티브 프롬프트",
"Original prompt": "기존 프롬프트",
+ "Others": "기타",
"Outpainting direction": "아웃페인팅 방향",
"Outpainting mk2": "아웃페인팅 마크 2",
"Output directory": "이미지 저장 경로",
@@ -310,6 +319,7 @@
"Overwrite Old Hypernetwork": "기존 하이퍼네트워크 덮어쓰기",
"Page Index": "페이지 인덱스",
"parameters": "설정값",
+ "path name": "경로 이름",
"Path to directory where to write outputs": "결과물을 출력할 경로",
"Path to directory with input images": "인풋 이미지가 있는 경로",
"Paths for saving": "저장 경로",
@@ -431,6 +441,7 @@
"Skip": "건너뛰기",
"Slerp angle": "구면 선형 보간 각도",
"Slerp interpolation": "구면 선형 보간",
+ "sort by": "정렬 기준",
"Source": "원본",
"Source directory": "원본 경로",
"Split image overlap ratio": "이미지 분할 겹침 비율",
@@ -438,6 +449,7 @@
"Split oversized images": "사이즈가 큰 이미지 분할하기",
"Stable Diffusion": "Stable Diffusion",
"Stable Diffusion checkpoint": "Stable Diffusion 체크포인트",
+ "step cnt": "스텝 변화 횟수",
"step count": "스텝 변화 횟수",
"step1 min/max": "스텝1 최소/최대",
"step2 min/max": "스텝2 최소/최대",
--
cgit v1.2.1
From 910a097ae2ed78a62101951f1b87137f9e1baaea Mon Sep 17 00:00:00 2001
From: AUTOMATIC <16777216c@gmail.com>
Date: Mon, 31 Oct 2022 17:36:45 +0300
Subject: add initial version of the extensions tab fix broken Restart Gradio
button
---
javascript/extensions.js | 24 +++++
modules/extensions.py | 83 +++++++++++++++
modules/generation_parameters_copypaste.py | 5 +
modules/scripts.py | 21 +---
modules/shared.py | 10 +-
modules/ui.py | 16 ++-
modules/ui_extensions.py | 162 +++++++++++++++++++++++++++++
style.css | 22 +++-
webui.py | 20 ++--
9 files changed, 333 insertions(+), 30 deletions(-)
create mode 100644 javascript/extensions.js
create mode 100644 modules/extensions.py
create mode 100644 modules/ui_extensions.py
diff --git a/javascript/extensions.js b/javascript/extensions.js
new file mode 100644
index 00000000..86f5336d
--- /dev/null
+++ b/javascript/extensions.js
@@ -0,0 +1,24 @@
+
+function extensions_apply(_, _){
+ disable = []
+ update = []
+ gradioApp().querySelectorAll('#extensions input[type="checkbox"]').forEach(function(x){
+ if(x.name.startsWith("enable_") && ! x.checked)
+ disable.push(x.name.substr(7))
+
+ if(x.name.startsWith("update_") && x.checked)
+ update.push(x.name.substr(7))
+ })
+
+ restart_reload()
+
+ return [JSON.stringify(disable), JSON.stringify(update)]
+}
+
+function extensions_check(){
+ gradioApp().querySelectorAll('#extensions .extension_status').forEach(function(x){
+ x.innerHTML = "Loading..."
+ })
+
+ return []
+}
\ No newline at end of file
diff --git a/modules/extensions.py b/modules/extensions.py
new file mode 100644
index 00000000..8d6ae848
--- /dev/null
+++ b/modules/extensions.py
@@ -0,0 +1,83 @@
+import os
+import sys
+import traceback
+
+import git
+
+from modules import paths, shared
+
+
+extensions = []
+extensions_dir = os.path.join(paths.script_path, "extensions")
+
+
+def active():
+ return [x for x in extensions if x.enabled]
+
+
+class Extension:
+ def __init__(self, name, path, enabled=True):
+ self.name = name
+ self.path = path
+ self.enabled = enabled
+ self.status = ''
+ self.can_update = False
+
+ repo = None
+ try:
+ if os.path.exists(os.path.join(path, ".git")):
+ repo = git.Repo(path)
+ except Exception:
+ print(f"Error reading github repository info from {path}:", file=sys.stderr)
+ print(traceback.format_exc(), file=sys.stderr)
+
+ if repo is None or repo.bare:
+ self.remote = None
+ else:
+ self.remote = next(repo.remote().urls, None)
+ self.status = 'unknown'
+
+ def list_files(self, subdir, extension):
+ from modules import scripts
+
+ dirpath = os.path.join(self.path, subdir)
+ if not os.path.isdir(dirpath):
+ return []
+
+ res = []
+ for filename in sorted(os.listdir(dirpath)):
+ res.append(scripts.ScriptFile(dirpath, filename, os.path.join(dirpath, filename)))
+
+ res = [x for x in res if os.path.splitext(x.path)[1].lower() == extension and os.path.isfile(x.path)]
+
+ return res
+
+ def check_updates(self):
+ repo = git.Repo(self.path)
+ for fetch in repo.remote().fetch("--dry-run"):
+ if fetch.flags != fetch.HEAD_UPTODATE:
+ self.can_update = True
+ self.status = "behind"
+ return
+
+ self.can_update = False
+ self.status = "latest"
+
+ def pull(self):
+ repo = git.Repo(self.path)
+ repo.remotes.origin.pull()
+
+
+def list_extensions():
+ extensions.clear()
+
+ if not os.path.isdir(extensions_dir):
+ return
+
+ for dirname in sorted(os.listdir(extensions_dir)):
+ path = os.path.join(extensions_dir, dirname)
+ if not os.path.isdir(path):
+ continue
+
+ extension = Extension(name=dirname, path=path, enabled=dirname not in shared.opts.disabled_extensions)
+ extensions.append(extension)
diff --git a/modules/generation_parameters_copypaste.py b/modules/generation_parameters_copypaste.py
index df70c728..985ec95e 100644
--- a/modules/generation_parameters_copypaste.py
+++ b/modules/generation_parameters_copypaste.py
@@ -17,6 +17,11 @@ paste_fields = {}
bind_list = []
+def reset():
+ paste_fields.clear()
+ bind_list.clear()
+
+
def quote(text):
if ',' not in str(text):
return text
diff --git a/modules/scripts.py b/modules/scripts.py
index 96e44bfd..533db45c 100644
--- a/modules/scripts.py
+++ b/modules/scripts.py
@@ -7,7 +7,7 @@ import modules.ui as ui
import gradio as gr
from modules.processing import StableDiffusionProcessing
-from modules import shared, paths, script_callbacks
+from modules import shared, paths, script_callbacks, extensions
AlwaysVisible = object()
@@ -107,17 +107,8 @@ def list_scripts(scriptdirname, extension):
for filename in sorted(os.listdir(basedir)):
scripts_list.append(ScriptFile(paths.script_path, filename, os.path.join(basedir, filename)))
- extdir = os.path.join(paths.script_path, "extensions")
- if os.path.exists(extdir):
- for dirname in sorted(os.listdir(extdir)):
- dirpath = os.path.join(extdir, dirname)
- scriptdirpath = os.path.join(dirpath, scriptdirname)
-
- if not os.path.isdir(scriptdirpath):
- continue
-
- for filename in sorted(os.listdir(scriptdirpath)):
- scripts_list.append(ScriptFile(dirpath, filename, os.path.join(scriptdirpath, filename)))
+ for ext in extensions.active():
+ scripts_list += ext.list_files(scriptdirname, extension)
scripts_list = [x for x in scripts_list if os.path.splitext(x.path)[1].lower() == extension and os.path.isfile(x.path)]
@@ -127,11 +118,7 @@ def list_scripts(scriptdirname, extension):
def list_files_with_name(filename):
res = []
- dirs = [paths.script_path]
-
- extdir = os.path.join(paths.script_path, "extensions")
- if os.path.exists(extdir):
- dirs += [os.path.join(extdir, d) for d in sorted(os.listdir(extdir))]
+ dirs = [paths.script_path] + [ext.path for ext in extensions.active()]
for dirpath in dirs:
if not os.path.isdir(dirpath):
diff --git a/modules/shared.py b/modules/shared.py
index e4f163c1..cce87081 100644
--- a/modules/shared.py
+++ b/modules/shared.py
@@ -132,6 +132,7 @@ class State:
current_image = None
current_image_sampling_step = 0
textinfo = None
+ need_restart = False
def skip(self):
self.skipped = True
@@ -354,6 +355,12 @@ options_templates.update(options_section(('sampler-params', "Sampler parameters"
'eta_noise_seed_delta': OptionInfo(0, "Eta noise seed delta", gr.Number, {"precision": 0}),
}))
+options_templates.update(options_section((None, "Hidden options"), {
+ "disabled_extensions": OptionInfo([], "Disable those extensions"),
+}))
+
+options_templates.update()
+
class Options:
data = None
@@ -365,8 +372,9 @@ class Options:
def __setattr__(self, key, value):
if self.data is not None:
- if key in self.data:
+ if key in self.data or key in self.data_labels:
self.data[key] = value
+ return
return super(Options, self).__setattr__(key, value)
diff --git a/modules/ui.py b/modules/ui.py
index 5055ca64..2c15abb7 100644
--- a/modules/ui.py
+++ b/modules/ui.py
@@ -19,7 +19,7 @@ import numpy as np
from PIL import Image, PngImagePlugin
-from modules import sd_hijack, sd_models, localization, script_callbacks
+from modules import sd_hijack, sd_models, localization, script_callbacks, ui_extensions
from modules.paths import script_path
from modules.shared import opts, cmd_opts, restricted_opts
@@ -671,6 +671,7 @@ def create_ui(wrap_gradio_gpu_call):
import modules.img2img
import modules.txt2img
+ parameters_copypaste.reset()
with gr.Blocks(analytics_enabled=False) as txt2img_interface:
txt2img_prompt, roll, txt2img_prompt_style, txt2img_negative_prompt, txt2img_prompt_style2, submit, _, _, txt2img_prompt_style_apply, txt2img_save_style, txt2img_paste, token_counter, token_button = create_toprow(is_img2img=False)
@@ -1511,8 +1512,9 @@ def create_ui(wrap_gradio_gpu_call):
column = None
with gr.Row(elem_id="settings").style(equal_height=False):
for i, (k, item) in enumerate(opts.data_labels.items()):
+ section_must_be_skipped = item.section[0] is None
- if previous_section != item.section:
+ if previous_section != item.section and not section_must_be_skipped:
if cols_displayed < settings_cols and (items_displayed >= items_per_col or previous_section is None):
if column is not None:
column.__exit__()
@@ -1531,6 +1533,8 @@ def create_ui(wrap_gradio_gpu_call):
if k in quicksettings_names and not shared.cmd_opts.freeze_settings:
quicksettings_list.append((i, k, item))
components.append(dummy_component)
+ elif section_must_be_skipped:
+ components.append(dummy_component)
else:
component = create_setting_component(k)
component_dict[k] = component
@@ -1572,9 +1576,10 @@ def create_ui(wrap_gradio_gpu_call):
def request_restart():
shared.state.interrupt()
- settings_interface.gradio_ref.do_restart = True
+ shared.state.need_restart = True
restart_gradio.click(
+
fn=request_restart,
inputs=[],
outputs=[],
@@ -1612,14 +1617,15 @@ def create_ui(wrap_gradio_gpu_call):
interfaces += script_callbacks.ui_tabs_callback()
interfaces += [(settings_interface, "Settings", "settings")]
+ extensions_interface = ui_extensions.create_ui()
+ interfaces += [(extensions_interface, "Extensions", "extensions")]
+
with gr.Blocks(css=css, analytics_enabled=False, title="Stable Diffusion") as demo:
with gr.Row(elem_id="quicksettings"):
for i, k, item in quicksettings_list:
component = create_setting_component(k, is_quicksettings=True)
component_dict[k] = component
- settings_interface.gradio_ref = demo
-
parameters_copypaste.integrate_settings_paste_fields(component_dict)
parameters_copypaste.run_bind()
diff --git a/modules/ui_extensions.py b/modules/ui_extensions.py
new file mode 100644
index 00000000..b7d747dc
--- /dev/null
+++ b/modules/ui_extensions.py
@@ -0,0 +1,162 @@
+import json
+import os.path
+import shutil
+import sys
+import time
+import traceback
+
+import git
+
+import gradio as gr
+import html
+
+from modules import extensions, shared, paths
+
+
+def apply_and_restart(disable_list, update_list):
+ disabled = json.loads(disable_list)
+ assert type(disabled) == list, f"wrong disable_list data for apply_and_restart: {disable_list}"
+
+ update = json.loads(update_list)
+ assert type(update) == list, f"wrong update_list data for apply_and_restart: {update_list}"
+
+ update = set(update)
+
+ for ext in extensions.extensions:
+ if ext.name not in update:
+ continue
+
+ try:
+ ext.pull()
+ except Exception:
+ print(f"Error pulling updates for {ext.name}:", file=sys.stderr)
+ print(traceback.format_exc(), file=sys.stderr)
+
+ shared.opts.disabled_extensions = disabled
+ shared.opts.save(shared.config_filename)
+
+ shared.state.interrupt()
+ shared.state.need_restart = True
+
+
+def check_updates():
+ for ext in extensions.extensions:
+ if ext.remote is None:
+ continue
+
+ try:
+ ext.check_updates()
+ except Exception:
+ print(f"Error checking updates for {ext.name}:", file=sys.stderr)
+ print(traceback.format_exc(), file=sys.stderr)
+
+ return extension_table()
+
+
+def extension_table():
+ code = f"""
+
+
+
+
Extension
+
URL
+
Update
+
+
+
+ """
+
+ for ext in extensions.extensions:
+ if ext.can_update:
+ ext_status = f""""""
+ else:
+ ext_status = ext.status
+
+ code += f"""
+