From 7651b84968f66dd0a5c3346520aad8dac6c4464e Mon Sep 17 00:00:00 2001 From: Dynamic Date: Tue, 18 Oct 2022 19:07:17 +0900 Subject: [PATCH 01/73] Initial KR support - WIP Localization WIP --- ko-KR.json | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 ko-KR.json diff --git a/ko-KR.json b/ko-KR.json new file mode 100644 index 00000000..f93b3e16 --- /dev/null +++ b/ko-KR.json @@ -0,0 +1,76 @@ +{ + "txt2img": "텍스트→이미지", + "img2img": "이미지→이미지", + "Extras": "부가기능", + "PNG Info": "PNG 정보", + "History": "기록", + "Checkpoint Merger": "체크포인트 병합", + "Train": "훈련", + "Settings": "설정", + "Stable Diffusion checkpoint": "Stable Diffusion 체크포인트", + "Hypernetwork": "하이퍼네트워크", + "Stop At last layers of CLIP model": "CLIP 모델의 n번째 레이어에서 멈추기", + "Generate": "생성", + "Style 1": "스타일 1", + "Style 2": "스타일 2", + "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": "현재 프롬프트에 선택된 스타일 적용", + "Do not do anything special": "아무것도 하지 않기", + "Generate forever": "반복 생성", + "Cancel generate forever": "반복 생성 취소", + "Interrupt": "중단", + "Skip": "건너뛰기", + "Stop processing images and return any results accumulated so far.": "이미지 생성을 중단하고 지금까지 진행된 결과물 출력", + "Stop processing current image and continue processing.": "현재 진행중인 이미지 생성을 중단하고 작업을 계속하기", + "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로 생성 시작)", + "Sampling Steps": "샘플링 스텝 수", + "Sampling method": "샘플링 방법", + "Which algorithm to use to produce the image": "이미지를 생성할 때 사용할 알고리즘", + "How many times to improve the generated image iteratively; higher values take longer; very low values can produce bad results": "생성된 이미지를 향상할 횟수; 매우 낮은 값은 만족스럽지 못한 결과물을 출력할 수 있음", + "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": "얼굴 보정", + "Restore low quality faces using GFPGAN neural network": "GFPGAN 신경망을 이용해 저품질의 얼굴을 보정합니다.", + "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": "저해상도 이미지를 1차적으로 생성 후 업스케일을 진행하여, 구성을 바꾸지 않고 세부적인 디테일을 향상시킵니다.", + "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.": "알고리즘이 얼마나 원본 이미지를 반영할지를 결정하는 수치입니다. 0일 경우 아무것도 바뀌지 않고, 1일 경우 원본 이미지와 전혀 관련없는 결과물을 얻게 됩니다. 1.0 아래의 값일 경우, 설정된 샘플링 스텝 수보다 적은 스텝 수를 거치게 됩니다.", + "Batch count": "배치 수", + "Batch size": "배치 크기", + "How many batches of images to create": "생성할 이미지 배치 수", + "How many image to create in a single batch": "한 배치당 이미지 수", + "CFG Scale": "CFG 스케일", + "Classifier Free Guidance Scale - how strongly the image should conform to prompt - lower values produce more creative results": "Classifier Free Guidance Scale - 이미지가 주어진 프롬프트를 얼마나 따를지를 정해주는 수치 - 낮은 값일수록 더 창의적인 결과물이 나옴", + "Seed": "시드", + "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": "난수 생성기의 결과물을 지정하는 값 - 동일한 설정값과 동일한 시드를 적용 시, 완전히 똑같은 결과물을 얻게 됩니다.", + "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": "바리에이션 시드", + "Variation strength": "바리에이션 강도", + "Seed of a different picture to be mixed into the generation.": "결과물에 섞일 다른 그림의 시드", + "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).": "바리에이션을 얼마나 줄지 정하는 수치 - 0일 경우 아무것도 바뀌지 않고, 1일 경우 바리에이션 시드로부터 생성된 이미지를 얻게 됩니다. (Ancestral 샘플러 제외 - 이 경우에는 좀 다른 무언가를 얻게 됩니다)", + "Resize seed from height": "시드 리사이징 가로길이", + "Resize seed from width": "시드 리사이징 세로길이", + "Make an attempt to produce a picture similar to what would have been produced with same seed at specified resolution": "동일한 시드 값으로 생성되었을 이미지를 주어진 해상도로 최대한 유사하게 재현합니다.", + "Script": "스크립트", + "Save": "저장", + "Write image to a directory (default - log/images) and generation parameters into csv file.": "이미지를 경로에 저장하고, 설정값들을 csv 파일로 저장합니다. (기본 경로 - log/images)", + "Send to img2img": "이미지→이미지로 전송", + "Send to inpaint": "인페인트로 전송", + "Send to extras": "부가기능으로 전송", + "Open images output directory": "이미지 저장 경로 열기", + "Make Zip when Save?": "저장 시 Zip 생성하기", + "Always save all generated images": "생성된 이미지 항상 저장하기" +} \ No newline at end of file From 50e34cf194b3e3085bc99aeea4dbfd7758dc79c8 Mon Sep 17 00:00:00 2001 From: Dynamic Date: Tue, 18 Oct 2022 20:11:17 +0900 Subject: [PATCH 02/73] Update ko-KR.json --- localizations/ko-KR.json | 85 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 localizations/ko-KR.json diff --git a/localizations/ko-KR.json b/localizations/ko-KR.json new file mode 100644 index 00000000..a4367dc5 --- /dev/null +++ b/localizations/ko-KR.json @@ -0,0 +1,85 @@ +{ + "⤡": "⤡", + "⊞": "⊞", + "×": "×", + "❮": "❮", + "❯": "❯", + "Loading...": "로딩중...", + "view": "", + "api": "api", + "•": "•", + "txt2img": "텍스트→이미지", + "img2img": "이미지→이미지", + "Extras": "부가기능", + "PNG Info": "PNG 정보", + "History": "기록", + "Checkpoint Merger": "체크포인트 병합", + "Train": "훈련", + "Settings": "설정", + "Stable Diffusion checkpoint": "Stable Diffusion 체크포인트", + "Hypernetwork": "하이퍼네트워크", + "Stop At last layers of CLIP model": "CLIP 모델의 n번째 레이어에서 멈추기", + "Generate": "생성", + "Style 1": "스타일 1", + "Style 2": "스타일 2", + "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": "현재 프롬프트에 선택된 스타일 적용", + "Do not do anything special": "아무것도 하지 않기", + "Generate forever": "반복 생성", + "Cancel generate forever": "반복 생성 취소", + "Interrupt": "중단", + "Skip": "건너뛰기", + "Stop processing images and return any results accumulated so far.": "이미지 생성을 중단하고 지금까지 진행된 결과물 출력", + "Stop processing current image and continue processing.": "현재 진행중인 이미지 생성을 중단하고 작업을 계속하기", + "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로 생성 시작)", + "Sampling Steps": "샘플링 스텝 수", + "Sampling method": "샘플링 방법", + "Which algorithm to use to produce the image": "이미지를 생성할 때 사용할 알고리즘", + "How many times to improve the generated image iteratively; higher values take longer; very low values can produce bad results": "생성된 이미지를 향상할 횟수; 매우 낮은 값은 만족스럽지 못한 결과물을 출력할 수 있음", + "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": "얼굴 보정", + "Restore low quality faces using GFPGAN neural network": "GFPGAN 신경망을 이용해 저품질의 얼굴을 보정합니다.", + "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": "저해상도 이미지를 1차적으로 생성 후 업스케일을 진행하여, 구성을 바꾸지 않고 세부적인 디테일을 향상시킵니다.", + "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.": "알고리즘이 얼마나 원본 이미지를 반영할지를 결정하는 수치입니다. 0일 경우 아무것도 바뀌지 않고, 1일 경우 원본 이미지와 전혀 관련없는 결과물을 얻게 됩니다. 1.0 아래의 값일 경우, 설정된 샘플링 스텝 수보다 적은 스텝 수를 거치게 됩니다.", + "Batch count": "배치 수", + "Batch size": "배치 크기", + "How many batches of images to create": "생성할 이미지 배치 수", + "How many image to create in a single batch": "한 배치당 이미지 수", + "CFG Scale": "CFG 스케일", + "Classifier Free Guidance Scale - how strongly the image should conform to prompt - lower values produce more creative results": "Classifier Free Guidance Scale - 이미지가 주어진 프롬프트를 얼마나 따를지를 정해주는 수치 - 낮은 값일수록 더 창의적인 결과물이 나옴", + "Seed": "시드", + "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": "난수 생성기의 결과물을 지정하는 값 - 동일한 설정값과 동일한 시드를 적용 시, 완전히 똑같은 결과물을 얻게 됩니다.", + "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": "바리에이션 시드", + "Variation strength": "바리에이션 강도", + "Seed of a different picture to be mixed into the generation.": "결과물에 섞일 다른 그림의 시드", + "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).": "바리에이션을 얼마나 줄지 정하는 수치 - 0일 경우 아무것도 바뀌지 않고, 1일 경우 바리에이션 시드로부터 생성된 이미지를 얻게 됩니다. (Ancestral 샘플러 제외 - 이 경우에는 좀 다른 무언가를 얻게 됩니다)", + "Resize seed from height": "시드 리사이징 가로길이", + "Resize seed from width": "시드 리사이징 세로길이", + "Make an attempt to produce a picture similar to what would have been produced with same seed at specified resolution": "동일한 시드 값으로 생성되었을 이미지를 주어진 해상도로 최대한 유사하게 재현합니다.", + "Script": "스크립트", + "Save": "저장", + "Write image to a directory (default - log/images) and generation parameters into csv file.": "이미지를 경로에 저장하고, 설정값들을 csv 파일로 저장합니다. (기본 경로 - log/images)", + "Send to img2img": "이미지→이미지로 전송", + "Send to inpaint": "인페인트로 전송", + "Send to extras": "부가기능으로 전송", + "Open images output directory": "이미지 저장 경로 열기", + "Make Zip when Save?": "저장 시 Zip 생성하기", + "Always save all generated images": "생성된 이미지 항상 저장하기" +} \ No newline at end of file From 0530f07da3c77ed4bfa02f37de5c84562a37f470 Mon Sep 17 00:00:00 2001 From: Dynamic Date: Tue, 18 Oct 2022 20:12:54 +0900 Subject: [PATCH 03/73] Move ko-KR.json --- ko-KR.json | 76 ------------------------------------------------------ 1 file changed, 76 deletions(-) delete mode 100644 ko-KR.json diff --git a/ko-KR.json b/ko-KR.json deleted file mode 100644 index f93b3e16..00000000 --- a/ko-KR.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "txt2img": "텍스트→이미지", - "img2img": "이미지→이미지", - "Extras": "부가기능", - "PNG Info": "PNG 정보", - "History": "기록", - "Checkpoint Merger": "체크포인트 병합", - "Train": "훈련", - "Settings": "설정", - "Stable Diffusion checkpoint": "Stable Diffusion 체크포인트", - "Hypernetwork": "하이퍼네트워크", - "Stop At last layers of CLIP model": "CLIP 모델의 n번째 레이어에서 멈추기", - "Generate": "생성", - "Style 1": "스타일 1", - "Style 2": "스타일 2", - "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": "현재 프롬프트에 선택된 스타일 적용", - "Do not do anything special": "아무것도 하지 않기", - "Generate forever": "반복 생성", - "Cancel generate forever": "반복 생성 취소", - "Interrupt": "중단", - "Skip": "건너뛰기", - "Stop processing images and return any results accumulated so far.": "이미지 생성을 중단하고 지금까지 진행된 결과물 출력", - "Stop processing current image and continue processing.": "현재 진행중인 이미지 생성을 중단하고 작업을 계속하기", - "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로 생성 시작)", - "Sampling Steps": "샘플링 스텝 수", - "Sampling method": "샘플링 방법", - "Which algorithm to use to produce the image": "이미지를 생성할 때 사용할 알고리즘", - "How many times to improve the generated image iteratively; higher values take longer; very low values can produce bad results": "생성된 이미지를 향상할 횟수; 매우 낮은 값은 만족스럽지 못한 결과물을 출력할 수 있음", - "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": "얼굴 보정", - "Restore low quality faces using GFPGAN neural network": "GFPGAN 신경망을 이용해 저품질의 얼굴을 보정합니다.", - "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": "저해상도 이미지를 1차적으로 생성 후 업스케일을 진행하여, 구성을 바꾸지 않고 세부적인 디테일을 향상시킵니다.", - "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.": "알고리즘이 얼마나 원본 이미지를 반영할지를 결정하는 수치입니다. 0일 경우 아무것도 바뀌지 않고, 1일 경우 원본 이미지와 전혀 관련없는 결과물을 얻게 됩니다. 1.0 아래의 값일 경우, 설정된 샘플링 스텝 수보다 적은 스텝 수를 거치게 됩니다.", - "Batch count": "배치 수", - "Batch size": "배치 크기", - "How many batches of images to create": "생성할 이미지 배치 수", - "How many image to create in a single batch": "한 배치당 이미지 수", - "CFG Scale": "CFG 스케일", - "Classifier Free Guidance Scale - how strongly the image should conform to prompt - lower values produce more creative results": "Classifier Free Guidance Scale - 이미지가 주어진 프롬프트를 얼마나 따를지를 정해주는 수치 - 낮은 값일수록 더 창의적인 결과물이 나옴", - "Seed": "시드", - "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": "난수 생성기의 결과물을 지정하는 값 - 동일한 설정값과 동일한 시드를 적용 시, 완전히 똑같은 결과물을 얻게 됩니다.", - "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": "바리에이션 시드", - "Variation strength": "바리에이션 강도", - "Seed of a different picture to be mixed into the generation.": "결과물에 섞일 다른 그림의 시드", - "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).": "바리에이션을 얼마나 줄지 정하는 수치 - 0일 경우 아무것도 바뀌지 않고, 1일 경우 바리에이션 시드로부터 생성된 이미지를 얻게 됩니다. (Ancestral 샘플러 제외 - 이 경우에는 좀 다른 무언가를 얻게 됩니다)", - "Resize seed from height": "시드 리사이징 가로길이", - "Resize seed from width": "시드 리사이징 세로길이", - "Make an attempt to produce a picture similar to what would have been produced with same seed at specified resolution": "동일한 시드 값으로 생성되었을 이미지를 주어진 해상도로 최대한 유사하게 재현합니다.", - "Script": "스크립트", - "Save": "저장", - "Write image to a directory (default - log/images) and generation parameters into csv file.": "이미지를 경로에 저장하고, 설정값들을 csv 파일로 저장합니다. (기본 경로 - log/images)", - "Send to img2img": "이미지→이미지로 전송", - "Send to inpaint": "인페인트로 전송", - "Send to extras": "부가기능으로 전송", - "Open images output directory": "이미지 저장 경로 열기", - "Make Zip when Save?": "저장 시 Zip 생성하기", - "Always save all generated images": "생성된 이미지 항상 저장하기" -} \ No newline at end of file From 684a31c4da673961ce9e3a384132fda5d1111ab8 Mon Sep 17 00:00:00 2001 From: Dynamic Date: Tue, 18 Oct 2022 21:50:34 +0900 Subject: [PATCH 04/73] update ko-KR.json Translated all text on txt2img window, plus some extra --- localizations/ko-KR.json | 42 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/localizations/ko-KR.json b/localizations/ko-KR.json index a4367dc5..c6e55bb1 100644 --- a/localizations/ko-KR.json +++ b/localizations/ko-KR.json @@ -4,9 +4,10 @@ "×": "×", "❮": "❮", "❯": "❯", - "Loading...": "로딩중...", - "view": "", - "api": "api", + "Loading...": "", + "view": "api 보이기", + "hide": "api 숨기기", + "api": "", "•": "•", "txt2img": "텍스트→이미지", "img2img": "이미지→이미지", @@ -50,7 +51,7 @@ "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": "저해상도 이미지를 1차적으로 생성 후 업스케일을 진행하여, 구성을 바꾸지 않고 세부적인 디테일을 향상시킵니다.", + "Use a two step process to partially create an image at smaller resolution, upscale, and then improve details in it without changing composition": "저해상도 이미지를 1차적으로 생성 후 업스케일을 진행하여, 이미지의 전체적인 구성을 바꾸지 않고 세부적인 디테일을 향상시킵니다.", "Firstpass width": "초기 가로길이", "Firstpass height": "초기 세로길이", "Denoising strength": "디노이즈 강도", @@ -81,5 +82,38 @@ "Send to extras": "부가기능으로 전송", "Open images output directory": "이미지 저장 경로 열기", "Make Zip when Save?": "저장 시 Zip 생성하기", + "Prompt matrix": "프롬프트 매트릭스", + "Separate prompts into parts using vertical pipe character (|) and the script will create a picture for every combination of them (except for the first part, which will be present in all combinations)": "(|)를 이용해 프롬프트를 분리할 시 첫 프롬프트를 제외하고 모든 프롬프트의 조합마다 이미지를 생성합니다. 첫 프롬프트는 모든 조합에 포함되게 됩니다.", + "Put variable parts at start of prompt": "변경되는 프롬프트를 앞에 위치시키기", + "Prompts from file or textbox": "파일이나 텍스트박스로부터 프롬프트 불러오기", + "Show Textbox": "텍스트박스 보이기", + "File with inputs": "설정값 파일", + "Prompts": "프롬프트", + "X/Y plot": "X/Y 플롯", + "Create a grid where images will have different parameters. Use inputs below to specify which parameters will be shared by columns and rows": "서로 다른 설정값으로 생성된 이미지의 그리드를 만듭니다. 아래의 설정으로 가로/세로에 어떤 설정값을 적용할지 선택하세요.", + "X type": "X축", + "Y type": "Y축", + "X values": "X 설정값", + "Y values": "Y 설정값", + "Separate values for X axis using commas.": "쉼표로 X축에 적용할 값 분리", + "Separate values for Y axis using commas.": "쉼표로 Y축에 적용할 값 분리", + "Draw legend": "범례 그리기", + "Include Separate Images": "분리된 이미지 포함하기", + "Keep -1 for seeds": "시드값 -1로 유지", + "Var. seed": "바리에이션 시드", + "Var. strength": "바리에이션 강도", + "Steps": "스텝 수", + "Prompt S/R": "프롬프트 스타일 변경", + "Prompt order": "프롬프트 순서", + "Sampler": "샘플러", + "Checkpoint name": "체크포인트 이름", + "Hypernet str.": "하이퍼네트워크 강도", + "Sigma Churn": "시그마 섞기", + "Sigma min": "시그마 최솟값", + "Sigma max": "시그마 최댓값", + "Sigma noise": "시그마 노이즈", + "Clip skip": "클립 건너뛰기", + "Denoising": "디노이징", + "Nothing": "없음", "Always save all generated images": "생성된 이미지 항상 저장하기" } \ No newline at end of file From 4f4e7fed7e4910b165c651e7618eb8e47c57ddb5 Mon Sep 17 00:00:00 2001 From: Dynamic Date: Tue, 18 Oct 2022 22:12:41 +0900 Subject: [PATCH 05/73] update ko-KR.json --- localizations/ko-KR.json | 1 + 1 file changed, 1 insertion(+) diff --git a/localizations/ko-KR.json b/localizations/ko-KR.json index c6e55bb1..b263b13c 100644 --- a/localizations/ko-KR.json +++ b/localizations/ko-KR.json @@ -115,5 +115,6 @@ "Clip skip": "클립 건너뛰기", "Denoising": "디노이징", "Nothing": "없음", + "Apply settings": "설정 적용하기", "Always save all generated images": "생성된 이미지 항상 저장하기" } \ No newline at end of file From abeec4b63029c2c4151a78fc395d312113881845 Mon Sep 17 00:00:00 2001 From: captin411 Date: Wed, 19 Oct 2022 03:18:26 -0700 Subject: [PATCH 06/73] Add auto focal point cropping to Preprocess images This algorithm plots a bunch of points of interest on the source image and averages their locations to find a center. Most points come from OpenCV. One point comes from an entropy model. OpenCV points account for 50% of the weight and the entropy based point is the other 50%. The center of all weighted points is calculated and a bounding box is drawn as close to centered over that point as possible. --- modules/textual_inversion/preprocess.py | 151 +++++++++++++++++++++++- 1 file changed, 146 insertions(+), 5 deletions(-) diff --git a/modules/textual_inversion/preprocess.py b/modules/textual_inversion/preprocess.py index 886cf0c3..168bfb09 100644 --- a/modules/textual_inversion/preprocess.py +++ b/modules/textual_inversion/preprocess.py @@ -1,5 +1,7 @@ import os -from PIL import Image, ImageOps +import cv2 +import numpy as np +from PIL import Image, ImageOps, ImageDraw import platform import sys import tqdm @@ -11,7 +13,7 @@ if cmd_opts.deepdanbooru: import modules.deepbooru as deepbooru -def preprocess(process_src, process_dst, process_width, process_height, process_flip, process_split, process_caption, process_caption_deepbooru=False): +def preprocess(process_src, process_dst, process_width, process_height, process_flip, process_split, process_caption, process_caption_deepbooru=False, process_entropy_focus=False): try: if process_caption: shared.interrogator.load() @@ -21,7 +23,7 @@ def preprocess(process_src, process_dst, process_width, process_height, process_ db_opts[deepbooru.OPT_INCLUDE_RANKS] = False deepbooru.create_deepbooru_process(opts.interrogate_deepbooru_score_threshold, db_opts) - preprocess_work(process_src, process_dst, process_width, process_height, process_flip, process_split, process_caption, process_caption_deepbooru) + preprocess_work(process_src, process_dst, process_width, process_height, process_flip, process_split, process_caption, process_caption_deepbooru, process_entropy_focus) finally: @@ -33,7 +35,7 @@ def preprocess(process_src, process_dst, process_width, process_height, process_ -def preprocess_work(process_src, process_dst, process_width, process_height, process_flip, process_split, process_caption, process_caption_deepbooru=False): +def preprocess_work(process_src, process_dst, process_width, process_height, process_flip, process_split, process_caption, process_caption_deepbooru=False, process_entropy_focus=False): width = process_width height = process_height src = os.path.abspath(process_src) @@ -93,6 +95,8 @@ def preprocess_work(process_src, process_dst, process_width, process_height, pro is_tall = ratio > 1.35 is_wide = ratio < 1 / 1.35 + processing_option_ran = False + if process_split and is_tall: img = img.resize((width, height * img.height // img.width)) @@ -101,6 +105,8 @@ def preprocess_work(process_src, process_dst, process_width, process_height, pro bot = img.crop((0, img.height - height, width, img.height)) save_pic(bot, index) + + processing_option_ran = True elif process_split and is_wide: img = img.resize((width * img.width // img.height, height)) @@ -109,8 +115,143 @@ def preprocess_work(process_src, process_dst, process_width, process_height, pro right = img.crop((img.width - width, 0, img.width, height)) save_pic(right, index) - else: + + processing_option_ran = True + + if process_entropy_focus and (is_tall or is_wide): + if is_tall: + img = img.resize((width, height * img.height // img.width)) + else: + img = img.resize((width * img.width // img.height, height)) + + x_focal_center, y_focal_center = image_central_focal_point(img, width, height) + + # take the focal point and turn it into crop coordinates that try to center over the focal + # point but then get adjusted back into the frame + y_half = int(height / 2) + x_half = int(width / 2) + + x1 = x_focal_center - x_half + if x1 < 0: + x1 = 0 + elif x1 + width > img.width: + x1 = img.width - width + + y1 = y_focal_center - y_half + if y1 < 0: + y1 = 0 + elif y1 + height > img.height: + y1 = img.height - height + + x2 = x1 + width + y2 = y1 + height + + crop = [x1, y1, x2, y2] + + focal = img.crop(tuple(crop)) + save_pic(focal, index) + + processing_option_ran = True + + if not processing_option_ran: img = images.resize_image(1, img, width, height) save_pic(img, index) shared.state.nextjob() + + +def image_central_focal_point(im, target_width, target_height): + focal_points = [] + + focal_points.extend( + image_focal_points(im) + ) + + fp_entropy = image_entropy_point(im, target_width, target_height) + fp_entropy['weight'] = len(focal_points) + 1 # about half of the weight to entropy + + focal_points.append(fp_entropy) + + weight = 0.0 + x = 0.0 + y = 0.0 + for focal_point in focal_points: + weight += focal_point['weight'] + x += focal_point['x'] * focal_point['weight'] + y += focal_point['y'] * focal_point['weight'] + avg_x = round(x // weight) + avg_y = round(y // weight) + + return avg_x, avg_y + + +def image_focal_points(im): + grayscale = im.convert("L") + + # naive attempt at preventing focal points from collecting at watermarks near the bottom + gd = ImageDraw.Draw(grayscale) + gd.rectangle([0, im.height*.9, im.width, im.height], fill="#999") + + np_im = np.array(grayscale) + + points = cv2.goodFeaturesToTrack( + np_im, + maxCorners=50, + qualityLevel=0.04, + minDistance=min(grayscale.width, grayscale.height)*0.05, + useHarrisDetector=False, + ) + + if points is None: + return [] + + focal_points = [] + for point in points: + x, y = point.ravel() + focal_points.append({ + 'x': x, + 'y': y, + 'weight': 1.0 + }) + + return focal_points + + +def image_entropy_point(im, crop_width, crop_height): + img = im.copy() + # just make it easier to slide the test crop with images oriented the same way + if (img.size[0] < img.size[1]): + portrait = True + img = img.rotate(90, expand=1) + + e_max = 0 + crop_current = [0, 0, crop_width, crop_height] + crop_best = crop_current + while crop_current[2] < img.size[0]: + crop = img.crop(tuple(crop_current)) + e = image_entropy(crop) + + if (e_max < e): + e_max = e + crop_best = list(crop_current) + + crop_current[0] += 4 + crop_current[2] += 4 + + x_mid = int((crop_best[2] - crop_best[0])/2) + y_mid = int((crop_best[3] - crop_best[1])/2) + + return { + 'x': x_mid, + 'y': y_mid, + 'weight': 1.0 + } + + +def image_entropy(im): + # greyscale image entropy + band = np.asarray(im.convert("L")) + hist, _ = np.histogram(band, bins=range(0, 256)) + hist = hist[hist > 0] + return -np.log2(hist / hist.sum()).sum() + From 087609ee181a91a523647435ffffa6288a317e2f Mon Sep 17 00:00:00 2001 From: captin411 Date: Wed, 19 Oct 2022 03:19:35 -0700 Subject: [PATCH 07/73] UI changes for focal point image cropping --- modules/ui.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/ui.py b/modules/ui.py index 1ff7eb4f..b6be713b 100644 --- a/modules/ui.py +++ b/modules/ui.py @@ -1234,6 +1234,7 @@ def create_ui(wrap_gradio_gpu_call): with gr.Row(): process_flip = gr.Checkbox(label='Create flipped copies') process_split = gr.Checkbox(label='Split oversized images into two') + process_entropy_focus = gr.Checkbox(label='Create auto focal point crop') process_caption = gr.Checkbox(label='Use BLIP for caption') process_caption_deepbooru = gr.Checkbox(label='Use deepbooru for caption', visible=True if cmd_opts.deepdanbooru else False) @@ -1318,7 +1319,8 @@ def create_ui(wrap_gradio_gpu_call): process_flip, process_split, process_caption, - process_caption_deepbooru + process_caption_deepbooru, + process_entropy_focus ], outputs=[ ti_output, From 41e3877be2c667316515c86037413763eb0ba4da Mon Sep 17 00:00:00 2001 From: captin411 Date: Wed, 19 Oct 2022 13:44:59 -0700 Subject: [PATCH 08/73] fix entropy point calculation --- modules/textual_inversion/preprocess.py | 34 ++++++++++++++----------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/modules/textual_inversion/preprocess.py b/modules/textual_inversion/preprocess.py index 168bfb09..7c1a594e 100644 --- a/modules/textual_inversion/preprocess.py +++ b/modules/textual_inversion/preprocess.py @@ -196,9 +196,9 @@ def image_focal_points(im): points = cv2.goodFeaturesToTrack( np_im, - maxCorners=50, + maxCorners=100, qualityLevel=0.04, - minDistance=min(grayscale.width, grayscale.height)*0.05, + minDistance=min(grayscale.width, grayscale.height)*0.07, useHarrisDetector=False, ) @@ -218,28 +218,32 @@ def image_focal_points(im): def image_entropy_point(im, crop_width, crop_height): - img = im.copy() - # just make it easier to slide the test crop with images oriented the same way - if (img.size[0] < img.size[1]): - portrait = True - img = img.rotate(90, expand=1) + landscape = im.height < im.width + portrait = im.height > im.width + if landscape: + move_idx = [0, 2] + move_max = im.size[0] + elif portrait: + move_idx = [1, 3] + move_max = im.size[1] e_max = 0 crop_current = [0, 0, crop_width, crop_height] crop_best = crop_current - while crop_current[2] < img.size[0]: - crop = img.crop(tuple(crop_current)) + while crop_current[move_idx[1]] < move_max: + crop = im.crop(tuple(crop_current)) e = image_entropy(crop) - if (e_max < e): + if (e > e_max): e_max = e crop_best = list(crop_current) - crop_current[0] += 4 - crop_current[2] += 4 + crop_current[move_idx[0]] += 4 + crop_current[move_idx[1]] += 4 + + x_mid = int(crop_best[0] + crop_width/2) + y_mid = int(crop_best[1] + crop_height/2) - x_mid = int((crop_best[2] - crop_best[0])/2) - y_mid = int((crop_best[3] - crop_best[1])/2) return { 'x': x_mid, @@ -250,7 +254,7 @@ def image_entropy_point(im, crop_width, crop_height): def image_entropy(im): # greyscale image entropy - band = np.asarray(im.convert("L")) + band = np.asarray(im.convert("1")) hist, _ = np.histogram(band, bins=range(0, 256)) hist = hist[hist > 0] return -np.log2(hist / hist.sum()).sum() From 59ed74438318af893d2cba552b0e28dbc2a9266c Mon Sep 17 00:00:00 2001 From: captin411 Date: Wed, 19 Oct 2022 17:19:02 -0700 Subject: [PATCH 09/73] face detection algo, configurability, reusability Try to move the crop in the direction of a face if it is present More internal configuration options for choosing weights of each of the algorithm's findings Move logic into its module --- modules/textual_inversion/autocrop.py | 216 ++++++++++++++++++++++++ modules/textual_inversion/preprocess.py | 150 ++-------------- 2 files changed, 230 insertions(+), 136 deletions(-) create mode 100644 modules/textual_inversion/autocrop.py diff --git a/modules/textual_inversion/autocrop.py b/modules/textual_inversion/autocrop.py new file mode 100644 index 00000000..f858a958 --- /dev/null +++ b/modules/textual_inversion/autocrop.py @@ -0,0 +1,216 @@ +import cv2 +from collections import defaultdict +from math import log, sqrt +import numpy as np +from PIL import Image, ImageDraw + +GREEN = "#0F0" +BLUE = "#00F" +RED = "#F00" + +def crop_image(im, settings): + """ Intelligently crop an image to the subject matter """ + if im.height > im.width: + im = im.resize((settings.crop_width, settings.crop_height * im.height // im.width)) + else: + im = im.resize((settings.crop_width * im.width // im.height, settings.crop_height)) + + focus = focal_point(im, settings) + + # take the focal point and turn it into crop coordinates that try to center over the focal + # point but then get adjusted back into the frame + y_half = int(settings.crop_height / 2) + x_half = int(settings.crop_width / 2) + + x1 = focus.x - x_half + if x1 < 0: + x1 = 0 + elif x1 + settings.crop_width > im.width: + x1 = im.width - settings.crop_width + + y1 = focus.y - y_half + if y1 < 0: + y1 = 0 + elif y1 + settings.crop_height > im.height: + y1 = im.height - settings.crop_height + + x2 = x1 + settings.crop_width + y2 = y1 + settings.crop_height + + crop = [x1, y1, x2, y2] + + if settings.annotate_image: + d = ImageDraw.Draw(im) + rect = list(crop) + rect[2] -= 1 + rect[3] -= 1 + d.rectangle(rect, outline=GREEN) + if settings.destop_view_image: + im.show() + + return im.crop(tuple(crop)) + +def focal_point(im, settings): + corner_points = image_corner_points(im, settings) + entropy_points = image_entropy_points(im, settings) + face_points = image_face_points(im, settings) + + total_points = len(corner_points) + len(entropy_points) + len(face_points) + + corner_weight = settings.corner_points_weight + entropy_weight = settings.entropy_points_weight + face_weight = settings.face_points_weight + + weight_pref_total = corner_weight + entropy_weight + face_weight + + # weight things + pois = [] + if weight_pref_total == 0 or total_points == 0: + return pois + + pois.extend( + [ PointOfInterest( p.x, p.y, weight=p.weight * ( (corner_weight/weight_pref_total) / (len(corner_points)/total_points) )) for p in corner_points ] + ) + pois.extend( + [ PointOfInterest( p.x, p.y, weight=p.weight * ( (entropy_weight/weight_pref_total) / (len(entropy_points)/total_points) )) for p in entropy_points ] + ) + pois.extend( + [ PointOfInterest( p.x, p.y, weight=p.weight * ( (face_weight/weight_pref_total) / (len(face_points)/total_points) )) for p in face_points ] + ) + + if settings.annotate_image: + d = ImageDraw.Draw(im) + + average_point = poi_average(pois, settings, im=im) + + if settings.annotate_image: + d.ellipse([average_point.x - 25, average_point.y - 25, average_point.x + 25, average_point.y + 25], outline=GREEN) + + return average_point + + +def image_face_points(im, settings): + np_im = np.array(im) + gray = cv2.cvtColor(np_im, cv2.COLOR_BGR2GRAY) + classifier = cv2.CascadeClassifier(f'{cv2.data.haarcascades}haarcascade_frontalface_default.xml') + + minsize = int(min(im.width, im.height) * 0.15) # at least N percent of the smallest side + faces = classifier.detectMultiScale(gray, scaleFactor=1.05, + minNeighbors=5, minSize=(minsize, minsize), flags=cv2.CASCADE_SCALE_IMAGE) + + if len(faces) == 0: + return [] + + rects = [[f[0], f[1], f[0] + f[2], f[1] + f[3]] for f in faces] + if settings.annotate_image: + for f in rects: + d = ImageDraw.Draw(im) + d.rectangle(f, outline=RED) + + return [PointOfInterest((r[0] +r[2]) // 2, (r[1] + r[3]) // 2) for r in rects] + + +def image_corner_points(im, settings): + grayscale = im.convert("L") + + # naive attempt at preventing focal points from collecting at watermarks near the bottom + gd = ImageDraw.Draw(grayscale) + gd.rectangle([0, im.height*.9, im.width, im.height], fill="#999") + + np_im = np.array(grayscale) + + points = cv2.goodFeaturesToTrack( + np_im, + maxCorners=100, + qualityLevel=0.04, + minDistance=min(grayscale.width, grayscale.height)*0.07, + useHarrisDetector=False, + ) + + if points is None: + return [] + + focal_points = [] + for point in points: + x, y = point.ravel() + focal_points.append(PointOfInterest(x, y)) + + return focal_points + + +def image_entropy_points(im, settings): + landscape = im.height < im.width + portrait = im.height > im.width + if landscape: + move_idx = [0, 2] + move_max = im.size[0] + elif portrait: + move_idx = [1, 3] + move_max = im.size[1] + else: + return [] + + e_max = 0 + crop_current = [0, 0, settings.crop_width, settings.crop_height] + crop_best = crop_current + while crop_current[move_idx[1]] < move_max: + crop = im.crop(tuple(crop_current)) + e = image_entropy(crop) + + if (e > e_max): + e_max = e + crop_best = list(crop_current) + + crop_current[move_idx[0]] += 4 + crop_current[move_idx[1]] += 4 + + x_mid = int(crop_best[0] + settings.crop_width/2) + y_mid = int(crop_best[1] + settings.crop_height/2) + + return [PointOfInterest(x_mid, y_mid)] + + +def image_entropy(im): + # greyscale image entropy + band = np.asarray(im.convert("1")) + hist, _ = np.histogram(band, bins=range(0, 256)) + hist = hist[hist > 0] + return -np.log2(hist / hist.sum()).sum() + + +def poi_average(pois, settings, im=None): + weight = 0.0 + x = 0.0 + y = 0.0 + for pois in pois: + if settings.annotate_image and im is not None: + w = 4 * 0.5 * sqrt(pois.weight) + d = ImageDraw.Draw(im) + d.ellipse([ + pois.x - w, pois.y - w, + pois.x + w, pois.y + w ], fill=BLUE) + weight += pois.weight + x += pois.x * pois.weight + y += pois.y * pois.weight + avg_x = round(x / weight) + avg_y = round(y / weight) + + return PointOfInterest(avg_x, avg_y) + + +class PointOfInterest: + def __init__(self, x, y, weight=1.0): + self.x = x + self.y = y + self.weight = weight + + +class Settings: + def __init__(self, crop_width=512, crop_height=512, corner_points_weight=0.5, entropy_points_weight=0.5, face_points_weight=0.5, annotate_image=False): + self.crop_width = crop_width + self.crop_height = crop_height + self.corner_points_weight = corner_points_weight + self.entropy_points_weight = entropy_points_weight + self.face_points_weight = entropy_points_weight + self.annotate_image = annotate_image + self.destop_view_image = False \ No newline at end of file diff --git a/modules/textual_inversion/preprocess.py b/modules/textual_inversion/preprocess.py index 7c1a594e..0c79f012 100644 --- a/modules/textual_inversion/preprocess.py +++ b/modules/textual_inversion/preprocess.py @@ -1,7 +1,5 @@ import os -import cv2 -import numpy as np -from PIL import Image, ImageOps, ImageDraw +from PIL import Image, ImageOps import platform import sys import tqdm @@ -9,6 +7,7 @@ import time from modules import shared, images from modules.shared import opts, cmd_opts +from modules.textual_inversion import autocrop if cmd_opts.deepdanbooru: import modules.deepbooru as deepbooru @@ -80,6 +79,7 @@ def preprocess_work(process_src, process_dst, process_width, process_height, pro if process_flip: save_pic_with_caption(ImageOps.mirror(image), index) + for index, imagefile in enumerate(tqdm.tqdm(files)): subindex = [0] filename = os.path.join(src, imagefile) @@ -118,37 +118,16 @@ def preprocess_work(process_src, process_dst, process_width, process_height, pro processing_option_ran = True - if process_entropy_focus and (is_tall or is_wide): - if is_tall: - img = img.resize((width, height * img.height // img.width)) - else: - img = img.resize((width * img.width // img.height, height)) - - x_focal_center, y_focal_center = image_central_focal_point(img, width, height) - - # take the focal point and turn it into crop coordinates that try to center over the focal - # point but then get adjusted back into the frame - y_half = int(height / 2) - x_half = int(width / 2) - - x1 = x_focal_center - x_half - if x1 < 0: - x1 = 0 - elif x1 + width > img.width: - x1 = img.width - width - - y1 = y_focal_center - y_half - if y1 < 0: - y1 = 0 - elif y1 + height > img.height: - y1 = img.height - height - - x2 = x1 + width - y2 = y1 + height - - crop = [x1, y1, x2, y2] - - focal = img.crop(tuple(crop)) + if process_entropy_focus and img.height != img.width: + autocrop_settings = autocrop.Settings( + crop_width = width, + crop_height = height, + face_points_weight = 0.9, + entropy_points_weight = 0.7, + corner_points_weight = 0.5, + annotate_image = False + ) + focal = autocrop.crop_image(img, autocrop_settings) save_pic(focal, index) processing_option_ran = True @@ -157,105 +136,4 @@ def preprocess_work(process_src, process_dst, process_width, process_height, pro img = images.resize_image(1, img, width, height) save_pic(img, index) - shared.state.nextjob() - - -def image_central_focal_point(im, target_width, target_height): - focal_points = [] - - focal_points.extend( - image_focal_points(im) - ) - - fp_entropy = image_entropy_point(im, target_width, target_height) - fp_entropy['weight'] = len(focal_points) + 1 # about half of the weight to entropy - - focal_points.append(fp_entropy) - - weight = 0.0 - x = 0.0 - y = 0.0 - for focal_point in focal_points: - weight += focal_point['weight'] - x += focal_point['x'] * focal_point['weight'] - y += focal_point['y'] * focal_point['weight'] - avg_x = round(x // weight) - avg_y = round(y // weight) - - return avg_x, avg_y - - -def image_focal_points(im): - grayscale = im.convert("L") - - # naive attempt at preventing focal points from collecting at watermarks near the bottom - gd = ImageDraw.Draw(grayscale) - gd.rectangle([0, im.height*.9, im.width, im.height], fill="#999") - - np_im = np.array(grayscale) - - points = cv2.goodFeaturesToTrack( - np_im, - maxCorners=100, - qualityLevel=0.04, - minDistance=min(grayscale.width, grayscale.height)*0.07, - useHarrisDetector=False, - ) - - if points is None: - return [] - - focal_points = [] - for point in points: - x, y = point.ravel() - focal_points.append({ - 'x': x, - 'y': y, - 'weight': 1.0 - }) - - return focal_points - - -def image_entropy_point(im, crop_width, crop_height): - landscape = im.height < im.width - portrait = im.height > im.width - if landscape: - move_idx = [0, 2] - move_max = im.size[0] - elif portrait: - move_idx = [1, 3] - move_max = im.size[1] - - e_max = 0 - crop_current = [0, 0, crop_width, crop_height] - crop_best = crop_current - while crop_current[move_idx[1]] < move_max: - crop = im.crop(tuple(crop_current)) - e = image_entropy(crop) - - if (e > e_max): - e_max = e - crop_best = list(crop_current) - - crop_current[move_idx[0]] += 4 - crop_current[move_idx[1]] += 4 - - x_mid = int(crop_best[0] + crop_width/2) - y_mid = int(crop_best[1] + crop_height/2) - - - return { - 'x': x_mid, - 'y': y_mid, - 'weight': 1.0 - } - - -def image_entropy(im): - # greyscale image entropy - band = np.asarray(im.convert("1")) - hist, _ = np.histogram(band, bins=range(0, 256)) - hist = hist[hist > 0] - return -np.log2(hist / hist.sum()).sum() - + shared.state.nextjob() \ No newline at end of file From 0ddaf8d2028a7251e8c4ad93551a43b5d4700841 Mon Sep 17 00:00:00 2001 From: captin411 Date: Thu, 20 Oct 2022 00:34:55 -0700 Subject: [PATCH 10/73] improve face detection a lot --- modules/textual_inversion/autocrop.py | 95 +++++++++++++++++---------- 1 file changed, 60 insertions(+), 35 deletions(-) diff --git a/modules/textual_inversion/autocrop.py b/modules/textual_inversion/autocrop.py index f858a958..5a551c25 100644 --- a/modules/textual_inversion/autocrop.py +++ b/modules/textual_inversion/autocrop.py @@ -8,12 +8,18 @@ GREEN = "#0F0" BLUE = "#00F" RED = "#F00" + def crop_image(im, settings): """ Intelligently crop an image to the subject matter """ if im.height > im.width: im = im.resize((settings.crop_width, settings.crop_height * im.height // im.width)) - else: + elif im.width > im.height: im = im.resize((settings.crop_width * im.width // im.height, settings.crop_height)) + else: + im = im.resize((settings.crop_width, settings.crop_height)) + + if im.height == im.width: + return im focus = focal_point(im, settings) @@ -78,13 +84,18 @@ def focal_point(im, settings): [ PointOfInterest( p.x, p.y, weight=p.weight * ( (face_weight/weight_pref_total) / (len(face_points)/total_points) )) for p in face_points ] ) + average_point = poi_average(pois, settings) + if settings.annotate_image: d = ImageDraw.Draw(im) - - average_point = poi_average(pois, settings, im=im) - - if settings.annotate_image: - d.ellipse([average_point.x - 25, average_point.y - 25, average_point.x + 25, average_point.y + 25], outline=GREEN) + for f in face_points: + d.rectangle(f.bounding(f.size), outline=RED) + for f in entropy_points: + d.rectangle(f.bounding(30), outline=BLUE) + for poi in pois: + w = max(4, 4 * 0.5 * sqrt(poi.weight)) + d.ellipse(poi.bounding(w), fill=BLUE) + d.ellipse(average_point.bounding(25), outline=GREEN) return average_point @@ -92,22 +103,32 @@ def focal_point(im, settings): def image_face_points(im, settings): np_im = np.array(im) gray = cv2.cvtColor(np_im, cv2.COLOR_BGR2GRAY) - classifier = cv2.CascadeClassifier(f'{cv2.data.haarcascades}haarcascade_frontalface_default.xml') - minsize = int(min(im.width, im.height) * 0.15) # at least N percent of the smallest side - faces = classifier.detectMultiScale(gray, scaleFactor=1.05, - minNeighbors=5, minSize=(minsize, minsize), flags=cv2.CASCADE_SCALE_IMAGE) + tries = [ + [ f'{cv2.data.haarcascades}haarcascade_eye.xml', 0.01 ], + [ f'{cv2.data.haarcascades}haarcascade_frontalface_default.xml', 0.05 ], + [ f'{cv2.data.haarcascades}haarcascade_profileface.xml', 0.05 ], + [ f'{cv2.data.haarcascades}haarcascade_frontalface_alt.xml', 0.05 ], + [ f'{cv2.data.haarcascades}haarcascade_frontalface_alt2.xml', 0.05 ], + [ f'{cv2.data.haarcascades}haarcascade_frontalface_alt_tree.xml', 0.05 ], + [ f'{cv2.data.haarcascades}haarcascade_eye_tree_eyeglasses.xml', 0.05 ], + [ f'{cv2.data.haarcascades}haarcascade_upperbody.xml', 0.05 ] + ] - if len(faces) == 0: - return [] + for t in tries: + # print(t[0]) + classifier = cv2.CascadeClassifier(t[0]) + minsize = int(min(im.width, im.height) * t[1]) # at least N percent of the smallest side + try: + faces = classifier.detectMultiScale(gray, scaleFactor=1.1, + minNeighbors=7, minSize=(minsize, minsize), flags=cv2.CASCADE_SCALE_IMAGE) + except: + continue - rects = [[f[0], f[1], f[0] + f[2], f[1] + f[3]] for f in faces] - if settings.annotate_image: - for f in rects: - d = ImageDraw.Draw(im) - d.rectangle(f, outline=RED) - - return [PointOfInterest((r[0] +r[2]) // 2, (r[1] + r[3]) // 2) for r in rects] + if len(faces) > 0: + rects = [[f[0], f[1], f[0] + f[2], f[1] + f[3]] for f in faces] + return [PointOfInterest((r[0] +r[2]) // 2, (r[1] + r[3]) // 2, size=abs(r[0]-r[2])) for r in rects] + return [] def image_corner_points(im, settings): @@ -132,8 +153,8 @@ def image_corner_points(im, settings): focal_points = [] for point in points: - x, y = point.ravel() - focal_points.append(PointOfInterest(x, y)) + x, y = point.ravel() + focal_points.append(PointOfInterest(x, y, size=4)) return focal_points @@ -167,31 +188,26 @@ def image_entropy_points(im, settings): x_mid = int(crop_best[0] + settings.crop_width/2) y_mid = int(crop_best[1] + settings.crop_height/2) - return [PointOfInterest(x_mid, y_mid)] + return [PointOfInterest(x_mid, y_mid, size=25)] def image_entropy(im): # greyscale image entropy - band = np.asarray(im.convert("1")) + # band = np.asarray(im.convert("L")) + band = np.asarray(im.convert("1"), dtype=np.uint8) hist, _ = np.histogram(band, bins=range(0, 256)) hist = hist[hist > 0] return -np.log2(hist / hist.sum()).sum() -def poi_average(pois, settings, im=None): +def poi_average(pois, settings): weight = 0.0 x = 0.0 y = 0.0 - for pois in pois: - if settings.annotate_image and im is not None: - w = 4 * 0.5 * sqrt(pois.weight) - d = ImageDraw.Draw(im) - d.ellipse([ - pois.x - w, pois.y - w, - pois.x + w, pois.y + w ], fill=BLUE) - weight += pois.weight - x += pois.x * pois.weight - y += pois.y * pois.weight + for poi in pois: + weight += poi.weight + x += poi.x * poi.weight + y += poi.y * poi.weight avg_x = round(x / weight) avg_y = round(y / weight) @@ -199,10 +215,19 @@ def poi_average(pois, settings, im=None): class PointOfInterest: - def __init__(self, x, y, weight=1.0): + def __init__(self, x, y, weight=1.0, size=10): self.x = x self.y = y self.weight = weight + self.size = size + + def bounding(self, size): + return [ + self.x - size//2, + self.y - size//2, + self.x + size//2, + self.y + size//2 + ] class Settings: From 21364c5c39b269497944b56dd6664792d779333b Mon Sep 17 00:00:00 2001 From: Dynamic Date: Thu, 20 Oct 2022 19:20:39 +0900 Subject: [PATCH 11/73] Updated file with basic template and added new translations Translation done in txt2img-img2img windows and following scripts --- localizations/ko-KR.json | 498 +++++++++++++++++++++++++++++++-------- 1 file changed, 400 insertions(+), 98 deletions(-) diff --git a/localizations/ko-KR.json b/localizations/ko-KR.json index b263b13c..7cc431c6 100644 --- a/localizations/ko-KR.json +++ b/localizations/ko-KR.json @@ -1,120 +1,422 @@ { - "⤡": "⤡", - "⊞": "⊞", "×": "×", + "•": "•", + "⊞": "⊞", "❮": "❮", "❯": "❯", - "Loading...": "", - "view": "api 보이기", - "hide": "api 숨기기", - "api": "", - "•": "•", - "txt2img": "텍스트→이미지", - "img2img": "이미지→이미지", - "Extras": "부가기능", - "PNG Info": "PNG 정보", - "History": "기록", - "Checkpoint Merger": "체크포인트 병합", - "Train": "훈련", - "Settings": "설정", - "Stable Diffusion checkpoint": "Stable Diffusion 체크포인트", - "Hypernetwork": "하이퍼네트워크", - "Stop At last layers of CLIP model": "CLIP 모델의 n번째 레이어에서 멈추기", - "Generate": "생성", - "Style 1": "스타일 1", - "Style 2": "스타일 2", + "⤡": "⤡", + "1st and last digit must be 1. ex:'1, 2, 1'": "1st and last digit must be 1. ex:'1, 2, 1'", + "A directory on the same machine where the server is running.": "A directory on the same machine where the server is running.", + "A merger of the two checkpoints will be generated in your": "A merger of the two checkpoints will be generated in your", + "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": "난수 생성기의 결과물을 지정하는 값 - 동일한 설정값과 동일한 시드를 적용 시, 완전히 똑같은 결과물을 얻게 됩니다.", "Add a random artist to the prompt.": "프롬프트에 랜덤한 작가 추가", - "Read generation parameters from prompt or last generation if prompt is empty into user interface.": "클립보드에 복사된 정보로부터 설정값 읽어오기/프롬프트창이 비어있을경우 제일 최근 설정값 불러오기", - "Save style": "스타일 저장", + "Add a second progress bar to the console that shows progress for an entire job.": "Add a second progress bar to the console that shows progress for an entire job.", + "Add difference": "Add difference", + "Add extended info (seed, prompt) to filename when saving grid": "Add extended info (seed, prompt) to filename when saving grid", + "Add layer normalization": "Add layer normalization", + "Add model hash to generation information": "Add model hash to generation information", + "Add model name to generation information": "Add model name to generation information", + "Always print all generation info to standard output": "Always print all generation info to standard output", + "Always save all generated image grids": "Always save all generated image grids", + "Always save all generated images": "생성된 이미지 항상 저장하기", + "Apply color correction to img2img results to match original colors.": "Apply color correction to img2img results to match original colors.", "Apply selected styles to current prompt": "현재 프롬프트에 선택된 스타일 적용", - "Do not do anything special": "아무것도 하지 않기", - "Generate forever": "반복 생성", - "Cancel generate forever": "반복 생성 취소", - "Interrupt": "중단", - "Skip": "건너뛰기", - "Stop processing images and return any results accumulated so far.": "이미지 생성을 중단하고 지금까지 진행된 결과물 출력", - "Stop processing current image and continue processing.": "현재 진행중인 이미지 생성을 중단하고 작업을 계속하기", - "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로 생성 시작)", - "Sampling Steps": "샘플링 스텝 수", - "Sampling method": "샘플링 방법", - "Which algorithm to use to produce the image": "이미지를 생성할 때 사용할 알고리즘", - "How many times to improve the generated image iteratively; higher values take longer; very low values can produce bad results": "생성된 이미지를 향상할 횟수; 매우 낮은 값은 만족스럽지 못한 결과물을 출력할 수 있음", - "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": "얼굴 보정", - "Restore low quality faces using GFPGAN neural network": "GFPGAN 신경망을 이용해 저품질의 얼굴을 보정합니다.", - "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": "저해상도 이미지를 1차적으로 생성 후 업스케일을 진행하여, 이미지의 전체적인 구성을 바꾸지 않고 세부적인 디테일을 향상시킵니다.", - "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.": "알고리즘이 얼마나 원본 이미지를 반영할지를 결정하는 수치입니다. 0일 경우 아무것도 바뀌지 않고, 1일 경우 원본 이미지와 전혀 관련없는 결과물을 얻게 됩니다. 1.0 아래의 값일 경우, 설정된 샘플링 스텝 수보다 적은 스텝 수를 거치게 됩니다.", + "Apply settings": "설정 적용하기", + "BSRGAN 4x": "BSRGAN 4x", + "Batch Process": "Batch Process", "Batch count": "배치 수", + "Batch from Directory": "Batch from Directory", + "Batch img2img": "이미지→이미지 배치", "Batch size": "배치 크기", + "CFG Scale": "CFG 스케일", + "CLIP: maximum number of lines in text file (0 = No limit)": "CLIP: maximum number of lines in text file (0 = No limit)", + "Cancel generate forever": "반복 생성 취소", + "Check progress (first)": "Check progress (first)", + "Check progress": "Check progress", + "Checkpoint Merger": "체크포인트 병합", + "Checkpoint name": "체크포인트 이름", + "Checkpoints to cache in RAM": "Checkpoints to cache in RAM", + "Classifier Free Guidance Scale - how strongly the image should conform to prompt - lower values produce more creative results": "Classifier Free Guidance Scale - 이미지가 주어진 프롬프트를 얼마나 따를지를 정해주는 수치 - 낮은 값일수록 더 창의적인 결과물이 나옴", + "Clip skip": "클립 건너뛰기", + "CodeFormer visibility": "CodeFormer visibility", + "CodeFormer weight (0 = maximum effect, 1 = minimum effect)": "CodeFormer weight (0 = maximum effect, 1 = minimum effect)", + "CodeFormer weight parameter; 0 = maximum effect; 1 = minimum effect": "CodeFormer weight parameter; 0 = maximum effect; 1 = minimum effect", + "Color variation": "색깔 다양성", + "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.": "Create a text file next to every image with generation parameters.", + "Create embedding": "Create embedding", + "Create flipped copies": "Create flipped copies", + "Create hypernetwork": "Create hypernetwork", + "Crop and resize": "잘라낸 후 리사이징", + "Crop to fit": "Crop to fit", + "Custom Name (Optional)": "Custom Name (Optional)", + "DDIM": "DDIM", + "DPM adaptive": "DPM adaptive", + "DPM fast": "DPM fast", + "DPM2 Karras": "DPM2 Karras", + "DPM2 a Karras": "DPM2 a Karras", + "DPM2 a": "DPM2 a", + "DPM2": "DPM2", + "Dataset directory": "Dataset directory", + "Decode CFG scale": "디코딩 CFG 스케일", + "Decode steps": "디코딩 스텝 수", + "Delete": "Delete", + "Denoising Diffusion Implicit Models - best at inpainting": "Denoising Diffusion Implicit Models - 인페이팅에 뛰어남", + "Denoising strength change factor": "디노이즈 강도 변경 배수", + "Denoising strength": "디노이즈 강도", + "Denoising": "디노이징", + "Destination directory": "Destination directory", + "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.": "알고리즘이 얼마나 원본 이미지를 반영할지를 결정하는 수치입니다. 0일 경우 아무것도 바뀌지 않고, 1일 경우 원본 이미지와 전혀 관련없는 결과물을 얻게 됩니다. 1.0 아래의 값일 경우, 설정된 샘플링 스텝 수보다 적은 스텝 수를 거치게 됩니다.", + "Directory for saving images using the Save button": "Directory for saving images using the Save button", + "Directory name pattern": "Directory name pattern", + "Do not add watermark to images": "Do not add watermark to images", + "Do not do anything special": "아무것도 하지 않기", + "Do not save grids consisting of one picture": "Do not save grids consisting of one picture", + "Do not show any images in results for web": "Do not show any images in results for web", + "Download localization template": "Download localization template", + "Draw legend": "범례 그리기", + "Draw mask": "마스크 직접 그리기", + "Drop File Here": "Drop File Here", + "Drop Image Here": "Drop Image Here", + "ESRGAN_4x": "ESRGAN_4x", + "Embedding": "Embedding", + "Emphasis: use (text) to make model pay more attention to text and [text] to make it pay less attention": "Emphasis: use (text) to make model pay more attention to text and [text] to make it pay less attention", + "Enable full page image viewer": "Enable full page image viewer", + "Enable quantization in K samplers for sharper and cleaner results. This may change existing seeds. Requires restart to apply.": "Enable quantization in K samplers for sharper and cleaner results. This may change existing seeds. Requires restart to apply.", + "End Page": "End Page", + "Enter hypernetwork layer structure": "Enter hypernetwork layer structure", + "Eta noise seed delta": "Eta noise seed delta", + "Eta": "Eta", + "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 a": "Euler a", + "Euler": "Euler", + "Extra": "고급", + "Extras": "부가기능", + "Face restoration": "Face restoration", + "Fall-off exponent (lower=higher detail)": "감쇠 지수 (낮을수록 디테일이 올라감)", + "File Name": "File Name", + "File format for grids": "File format for grids", + "File format for images": "File format for images", + "File with inputs": "설정값 파일", + "File": "File", + "Filename join string": "Filename join string", + "Filename word regex": "Filename word regex", + "Filter NSFW content": "Filter NSFW content", + "First Page": "First Page", + "Firstpass height": "초기 세로길이", + "Firstpass width": "초기 가로길이", + "Font for image grids that have text": "Font for image grids that have text", + "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.": "SD 업스케일링에서 타일 간 몇 픽셀을 겹치게 할지 결정하는 설정값입니다. 타일들이 다시 한 이미지로 합쳐질 때, 눈에 띄는 이음매가 없도록 서로 겹치게 됩니다.", + "GFPGAN visibility": "GFPGAN visibility", + "Generate Info": "Generate Info", + "Generate forever": "반복 생성", + "Generate": "생성", + "Grid row count; use -1 for autodetect and 0 for it to be same as batch size": "Grid row count; use -1 for autodetect and 0 for it to be same as batch size", + "Height": "세로", + "Heun": "Heun", + "Hide samplers in user interface (requires restart)": "Hide samplers in user interface (requires restart)", + "Highres. fix": "고해상도 보정", + "History": "기록", "How many batches of images to create": "생성할 이미지 배치 수", "How many image to create in a single batch": "한 배치당 이미지 수", - "CFG Scale": "CFG 스케일", - "Classifier Free Guidance Scale - how strongly the image should conform to prompt - lower values produce more creative results": "Classifier Free Guidance Scale - 이미지가 주어진 프롬프트를 얼마나 따를지를 정해주는 수치 - 낮은 값일수록 더 창의적인 결과물이 나옴", - "Seed": "시드", - "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": "난수 생성기의 결과물을 지정하는 값 - 동일한 설정값과 동일한 시드를 적용 시, 완전히 똑같은 결과물을 얻게 됩니다.", - "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": "바리에이션 시드", - "Variation strength": "바리에이션 강도", - "Seed of a different picture to be mixed into the generation.": "결과물에 섞일 다른 그림의 시드", + "How many times to improve the generated image iteratively; higher values take longer; very low values can produce bad results": "생성된 이미지를 향상할 횟수; 매우 낮은 값은 만족스럽지 못한 결과물을 출력할 수 있음", + "How many times to repeat processing an image and using it as input for the next iteration": "이미지를 생성 후 원본으로 몇 번 반복해서 사용할지 결정하는 값", + "How much to blur the mask before processing, in pixels.": "이미지 생성 전 마스크를 얼마나 블러처리할지 결정하는 값. 픽셀 단위", "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).": "바리에이션을 얼마나 줄지 정하는 수치 - 0일 경우 아무것도 바뀌지 않고, 1일 경우 바리에이션 시드로부터 생성된 이미지를 얻게 됩니다. (Ancestral 샘플러 제외 - 이 경우에는 좀 다른 무언가를 얻게 됩니다)", + "Hypernet str.": "하이퍼네트워크 강도", + "Hypernetwork strength": "Hypernetwork strength", + "Hypernetwork": "하이퍼네트워크", + "If PNG image is larger than 4MB or any dimension is larger than 4000, downscale and save copy as JPG": "If PNG image is larger than 4MB or any dimension is larger than 4000, downscale and save copy as JPG", + "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.": "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.", + "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.", + "Image for img2img": "Image for img2img", + "Image for inpainting with mask": "Image for inpainting with mask", + "Image": "Image", + "Images filename pattern": "Images filename pattern", + "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보다 클 경우 다양성이 높아져 결과 이미지들이 갈수록 혼란스러워지겠죠.", + "Include Separate Images": "분리된 이미지 포함하기", + "Increase coherency by padding from the last comma within n tokens when using more than 75 tokens": "Increase coherency by padding from the last comma within n tokens when using more than 75 tokens", + "Initialization text": "Initialization text", + "Inpaint at full resolution padding, pixels": "전체 해상도로 인페인트 패딩값(픽셀 단위)", + "Inpaint at full resolution": "전체 해상도로 인페인트하기", + "Inpaint masked": "마스크만 처리", + "Inpaint not masked": "마스크 이외만 처리", + "Inpaint": "인페인트", + "Input directory": "인풋 이미지 경로", + "Interpolation Method": "Interpolation Method", + "Interrogate\nCLIP": "CLIP\n분석", + "Interrogate\nDeepBooru": "DeepBooru\n분석", + "Interrogate Options": "Interrogate Options", + "Interrogate: deepbooru score threshold": "Interrogate: deepbooru score threshold", + "Interrogate: deepbooru sort alphabetically": "Interrogate: deepbooru sort alphabetically", + "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: keep models in VRAM": "Interrogate: keep models in VRAM", + "Interrogate: maximum description length": "Interrogate: maximum description length", + "Interrogate: minimum description length (excluding artists, etc..)": "Interrogate: minimum description length (excluding artists, etc..)", + "Interrogate: num_beams for BLIP": "Interrogate: num_beams for BLIP", + "Interrogate: use artists from artists.csv": "Interrogate: use artists from artists.csv", + "Interrupt": "중단", + "Just resize": "리사이징", + "Keep -1 for seeds": "시드값 -1로 유지", + "LDSR processing steps. Lower = faster": "LDSR processing steps. Lower = faster", + "LDSR": "LDSR", + "LMS Karras": "LMS Karras", + "LMS": "LMS", + "Label": "Label", + "Lanczos": "Lanczos", + "Learning rate": "Learning rate", + "Leave blank to save images to the default path.": "Leave blank to save images to the default path.", + "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.", + "Loading...": "로딩 중...", + "Localization (requires restart)": "Localization (requires restart)", + "Log directory": "Log directory", + "Loopback": "루프백", + "Loops": "루프 수", + "Make K-diffusion samplers produce same images in a batch as when making a single image": "Make K-diffusion samplers produce same images in a batch as when making a single image", + "Make Zip when Save?": "저장 시 Zip 생성하기", + "Make an attempt to produce a picture similar to what would have been produced with same seed at specified resolution": "동일한 시드 값으로 생성되었을 이미지를 주어진 해상도로 최대한 유사하게 재현합니다.", + "Mask blur": "마스크 블러", + "Mask mode": "Mask mode", + "Mask": "마스크", + "Masked content": "마스크된 부분", + "Masking mode": "Masking mode", + "Max prompt words for [prompt_words] pattern": "Max prompt words for [prompt_words] pattern", + "Max steps": "Max steps", + "Modules": "Modules", + "Move face restoration model from VRAM into RAM after processing": "Move face restoration model from VRAM into RAM after processing", + "Multiplier (M) - set to 0 to get model A": "Multiplier (M) - set to 0 to get model A", + "Name": "Name", + "Negative prompt (press Ctrl+Enter or Alt+Enter to generate)": "네거티브 프롬프트 입력(Ctrl+Enter나 Alt+Enter로 생성 시작)", + "Negative prompt": "네거티브 프롬프트", + "Next Page": "Next Page", + "None": "None", + "Nothing": "없음", + "Number of repeats for a single input image per epoch; used only for displaying epoch number": "Number of repeats for a single input image per epoch; used only for displaying epoch number", + "Number of vectors per token": "Number of vectors per token", + "Open images output directory": "이미지 저장 경로 열기", + "Open output directory": "Open output directory", + "Original negative prompt": "기존 네거티브 프롬프트", + "Original prompt": "기존 프롬프트", + "Outpainting direction": "아웃페인팅 방향", + "Outpainting mk2": "아웃페인팅 마크 2", + "Output directory for grids; if empty, defaults to two directories below": "Output directory for grids; if empty, defaults to two directories below", + "Output directory for images from extras tab": "Output directory for images from extras tab", + "Output directory for images; if empty, defaults to three directories below": "Output directory for images; if empty, defaults to three directories below", + "Output directory for img2img grids": "Output directory for img2img grids", + "Output directory for img2img images": "Output directory for img2img images", + "Output directory for txt2img grids": "Output directory for txt2img grids", + "Output directory for txt2img images": "Output directory for txt2img images", + "Output directory": "이미지 저장 경로", + "Override `Denoising strength` to 1?": "디노이즈 강도를 1로 적용할까요?", + "Override `Sampling Steps` to the same value as `Decode steps`?": "샘플링 스텝 수를 디코딩 스텝 수와 동일하게 적용할까요?", + "Override `Sampling method` to Euler?(this method is built for it)": "샘플링 방법을 Euler로 적용할까요?(이 기능은 해당 샘플러를 위해 만들어져 있습니다)", + "Override `prompt` to the same value as `original prompt`?(and `negative prompt`)": "프롬프트 값을 기존 프롬프트와 동일하게 적용할까요?(네거티브 프롬프트 포함)", + "PLMS": "PLMS", + "PNG Info": "PNG 정보", + "Page Index": "Page Index", + "Path to directory where to write outputs": "Path to directory where to write outputs", + "Path to directory with input images": "Path to directory with input images", + "Paths for saving": "Paths for saving", + "Pixels to expand": "확장할 픽셀 수", + "Poor man's outpainting": "가난뱅이의 아웃페인팅", + "Preprocess images": "Preprocess images", + "Preprocess": "Preprocess", + "Prev Page": "Prev Page", + "Prevent empty spots in grid (when set to autodetect)": "Prevent empty spots in grid (when set to autodetect)", + "Primary model (A)": "Primary model (A)", + "Process an image, use it as an input, repeat.": "이미지를 생성하고, 생성한 이미지를 다시 원본으로 사용하는 과정을 반복합니다.", + "Process images in a directory on the same machine where the server is running.": "WebUI 서버가 돌아가고 있는 디바이스에 존재하는 디렉토리의 이미지들을 처리합니다.", + "Produce an image that can be tiled.": "타일링 가능한 이미지를 생성합니다.", + "Prompt (press Ctrl+Enter or Alt+Enter to generate)": "프롬프트 입력(Ctrl+Enter나 Alt+Enter로 생성 시작)", + "Prompt S/R": "프롬프트 스타일 변경", + "Prompt matrix": "프롬프트 매트릭스", + "Prompt order": "프롬프트 순서", + "Prompt template file": "Prompt template file", + "Prompt": "프롬프트", + "Prompts from file or textbox": "파일이나 텍스트박스로부터 프롬프트 불러오기", + "Prompts": "프롬프트", + "Put variable parts at start of prompt": "변경되는 프롬프트를 앞에 위치시키기", + "Quality for saved jpeg images": "Quality for saved jpeg images", + "Quicksettings list": "Quicksettings list", + "R-ESRGAN 4x+ Anime6B": "R-ESRGAN 4x+ Anime6B", + "Randomness": "랜덤성", + "Read generation parameters from prompt or last generation if prompt is empty into user interface.": "클립보드에 복사된 정보로부터 설정값 읽어오기/프롬프트창이 비어있을경우 제일 최근 설정값 불러오기", + "Read parameters (prompt, etc...) from txt2img tab when making previews": "Read parameters (prompt, etc...) from txt2img tab when making previews", + "Recommended settings: Sampling Steps: 80-100, Sampler: Euler a, Denoising strength: 0.8": "추천 설정값 - 샘플링 스텝 수 : 80-100 , 샘플러 : Euler a, 디노이즈 강도 : 0.8", + "Reload custom script bodies (No ui updates, No restart)": "Reload custom script bodies (No ui updates, No restart)", + "Renew Page": "Renew Page", + "Request browser notifications": "Request browser notifications", + "Resize and fill": "리사이징 후 채우기", + "Resize image to target resolution. Unless height and width match, you will get incorrect aspect ratio.": "설정된 해상도로 이미지 리사이징을 진행합니다. 원본과 가로/세로 길이가 일치하지 않을 경우, 부정확한 화면비의 이미지를 얻게 됩니다.", + "Resize mode": "Resize mode", "Resize seed from height": "시드 리사이징 가로길이", "Resize seed from width": "시드 리사이징 세로길이", - "Make an attempt to produce a picture similar to what would have been produced with same seed at specified resolution": "동일한 시드 값으로 생성되었을 이미지를 주어진 해상도로 최대한 유사하게 재현합니다.", - "Script": "스크립트", + "Resize the image so that entirety of image is inside target resolution. Fill empty space with image's colors.": "이미지 전체가 설정된 해상도 내부에 들어가게 리사이징을 진행합니다. 빈 공간은 이미지의 색상으로 채웁니다.", + "Resize the image so that entirety of target resolution is filled with the image. Crop parts that stick out.": "설정된 해상도 전체가 이미지로 가득차게 리사이징을 진행합니다. 튀어나오는 부분은 잘라냅니다.", + "Resize": "Resize", + "Restart Gradio and Refresh components (Custom Scripts, ui.py, js and css only)": "Restart Gradio and Refresh components (Custom Scripts, ui.py, js and css only)", + "Restore faces": "얼굴 보정", + "Restore low quality faces using GFPGAN neural network": "GFPGAN 신경망을 이용해 저품질의 얼굴을 보정합니다.", + "Result = A * (1 - M) + B * M": "Result = A * (1 - M) + B * M", + "Result = A + (B - C) * M": "Result = A + (B - C) * M", + "Reuse seed from last generation, mostly useful if it was randomed": "이전 생성에서 사용된 시드를 불러옵니다. 랜덤하게 생성했을 시 도움됨", + "Run": "Run", + "SD upscale": "SD 업스케일링", + "Sampler parameters": "Sampler parameters", + "Sampler": "샘플러", + "Sampling Steps": "샘플링 스텝 수", + "Sampling method": "샘플링 방법", + "Save a copy of embedding to log directory every N steps, 0 to disable": "Save a copy of embedding to log directory every N steps, 0 to disable", + "Save a copy of image before applying color correction to img2img results": "Save a copy of image before applying color correction to img2img results", + "Save a copy of image before doing face restoration.": "Save a copy of image before doing face restoration.", + "Save an csv containing the loss to log directory every N steps, 0 to disable": "Save an csv containing the loss to log directory every N steps, 0 to disable", + "Save an image to log directory every N steps, 0 to disable": "Save an image to log directory every N steps, 0 to disable", + "Save as float16": "Save as float16", + "Save grids to a subdirectory": "Save grids to a subdirectory", + "Save images to a subdirectory": "Save images to a subdirectory", + "Save images with embedding in PNG chunks": "Save images with embedding in PNG chunks", + "Save style": "스타일 저장", + "Save text information about generation parameters as chunks to png files": "Save text information about generation parameters as chunks to png files", "Save": "저장", - "Write image to a directory (default - log/images) and generation parameters into csv file.": "이미지를 경로에 저장하고, 설정값들을 csv 파일로 저장합니다. (기본 경로 - log/images)", + "Saving images/grids": "Saving images/grids", + "Saving to a directory": "Saving to a directory", + "Scale by": "Scale by", + "Scale to": "Scale to", + "Script": "스크립트", + "ScuNET GAN": "ScuNET GAN", + "ScuNET PSNR": "ScuNET PSNR", + "Secondary model (B)": "Secondary model (B)", + "See": "See", + "Seed of a different picture to be mixed into the generation.": "결과물에 섞일 다른 그림의 시드", + "Seed": "시드", + "Send to extras": "부가기능으로 전송", "Send to img2img": "이미지→이미지로 전송", "Send to inpaint": "인페인트로 전송", - "Send to extras": "부가기능으로 전송", - "Open images output directory": "이미지 저장 경로 열기", - "Make Zip when Save?": "저장 시 Zip 생성하기", - "Prompt matrix": "프롬프트 매트릭스", + "Send to txt2img": "텍스트→이미지로 전송", "Separate prompts into parts using vertical pipe character (|) and the script will create a picture for every combination of them (except for the first part, which will be present in all combinations)": "(|)를 이용해 프롬프트를 분리할 시 첫 프롬프트를 제외하고 모든 프롬프트의 조합마다 이미지를 생성합니다. 첫 프롬프트는 모든 조합에 포함되게 됩니다.", - "Put variable parts at start of prompt": "변경되는 프롬프트를 앞에 위치시키기", - "Prompts from file or textbox": "파일이나 텍스트박스로부터 프롬프트 불러오기", - "Show Textbox": "텍스트박스 보이기", - "File with inputs": "설정값 파일", - "Prompts": "프롬프트", - "X/Y plot": "X/Y 플롯", - "Create a grid where images will have different parameters. Use inputs below to specify which parameters will be shared by columns and rows": "서로 다른 설정값으로 생성된 이미지의 그리드를 만듭니다. 아래의 설정으로 가로/세로에 어떤 설정값을 적용할지 선택하세요.", - "X type": "X축", - "Y type": "Y축", - "X values": "X 설정값", - "Y values": "Y 설정값", "Separate values for X axis using commas.": "쉼표로 X축에 적용할 값 분리", "Separate values for Y axis using commas.": "쉼표로 Y축에 적용할 값 분리", - "Draw legend": "범례 그리기", - "Include Separate Images": "분리된 이미지 포함하기", - "Keep -1 for seeds": "시드값 -1로 유지", + "Set seed to -1, which will cause a new random number to be used every time": "시드를 -1로 적용 - 매번 랜덤한 시드가 적용되게 됩니다.", + "Settings": "설정", + "Show Textbox": "텍스트박스 보이기", + "Show generation progress in window title.": "Show generation progress in window title.", + "Show grid in results for web": "Show grid in results for web", + "Show image creation progress every N sampling steps. Set 0 to disable.": "Show image creation progress every N sampling steps. Set 0 to disable.", + "Show images zoomed in by default in full page image viewer": "Show images zoomed in by default in full page image viewer", + "Show progressbar": "Show progressbar", + "Show result images": "Show result images", + "Sigma Churn": "시그마 섞기", + "Sigma adjustment for finding noise for image": "이미지 노이즈를 찾기 위해 시그마 조정", + "Sigma max": "시그마 최댓값", + "Sigma min": "시그마 최솟값", + "Sigma noise": "시그마 노이즈", + "Single Image": "Single Image", + "Skip": "건너뛰기", + "Source directory": "Source directory", + "Source": "Source", + "Split oversized images into two": "Split oversized images into two", + "Stable Diffusion checkpoint": "Stable Diffusion 체크포인트", + "Stable Diffusion": "Stable Diffusion", + "Steps": "스텝 수", + "Stop At last layers of CLIP model": "CLIP 모델의 n번째 레이어에서 멈추기", + "Stop processing current image and continue processing.": "현재 진행중인 이미지 생성을 중단하고 작업을 계속하기", + "Stop processing images and return any results accumulated so far.": "이미지 생성을 중단하고 지금까지 진행된 결과물 출력", + "Style 1": "스타일 1", + "Style 2": "스타일 2", + "Style to apply; styles have components for both positive and negative prompts and apply to both": "Style to apply; styles have components for both positive and negative prompts and apply to both", + "SwinIR 4x": "SwinIR 4x", + "System": "System", + "Tertiary model (C)": "Tertiary model (C)", + "Textbox": "Textbox", + "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.": "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.", + "This string will be used to join split words into a single line if the option above is enabled.": "This string will be used to join split words into a single line if the option above is enabled.", + "Tile overlap, in pixels for ESRGAN upscalers. Low values = visible seam.": "Tile overlap, in pixels for ESRGAN upscalers. Low values = visible seam.", + "Tile overlap, in pixels for SwinIR. Low values = visible seam.": "Tile overlap, in pixels for SwinIR. Low values = visible seam.", + "Tile overlap": "타일 겹침", + "Tile size for ESRGAN upscalers. 0 = no tiling.": "Tile size for ESRGAN upscalers. 0 = no tiling.", + "Tile size for all SwinIR.": "Tile size for all SwinIR.", + "Tiling": "타일링", + "Train Embedding": "Train Embedding", + "Train Hypernetwork": "Train Hypernetwork", + "Train an embedding; must specify a directory with a set of 1:1 ratio images": "Train an embedding; must specify a directory with a set of 1:1 ratio images", + "Train": "훈련", + "Training": "Training", + "Unload VAE and CLIP from VRAM when training": "Unload VAE and CLIP from VRAM when training", + "Upload mask": "마스크 업로드하기", + "Upscale latent space image when doing hires. fix": "Upscale latent space image when doing hires. fix", + "Upscale masked region to target resolution, do inpainting, downscale back and paste into original image": "마스크된 부분을 설정된 해상도로 업스케일하고, 인페인팅을 진행한 뒤, 다시 다운스케일 후 원본 이미지에 붙여넣습니다.", + "Upscaler 2 visibility": "Upscaler 2 visibility", + "Upscaler for img2img": "Upscaler for img2img", + "Upscaler": "업스케일러", + "Upscaling": "Upscaling", + "Use BLIP for caption": "Use BLIP for caption", + "Use a two step process to partially create an image at smaller resolution, upscale, and then improve details in it without changing composition": "저해상도 이미지를 1차적으로 생성 후 업스케일을 진행하여, 이미지의 전체적인 구성을 바꾸지 않고 세부적인 디테일을 향상시킵니다.", + "Use an empty output directory to save pictures normally instead of writing to the output directory.": "저장 경로를 비워두면 기본 저장 폴더에 이미지들이 저장됩니다.", + "Use deepbooru for caption": "Use deepbooru for caption", + "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.": "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.", + "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.": "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.", + "Use old emphasis implementation. Can be useful to reproduce old seeds.": "Use old emphasis implementation. Can be useful to reproduce old seeds.", + "Use original name for output filename during batch process in extras tab": "Use original name for output filename during batch process in extras tab", + "User interface": "User interface", + "VRAM usage polls per second during generation. Set to 0 to disable.": "VRAM usage polls per second during generation. Set to 0 to disable.", "Var. seed": "바리에이션 시드", "Var. strength": "바리에이션 강도", - "Steps": "스텝 수", - "Prompt S/R": "프롬프트 스타일 변경", - "Prompt order": "프롬프트 순서", - "Sampler": "샘플러", - "Checkpoint name": "체크포인트 이름", - "Hypernet str.": "하이퍼네트워크 강도", - "Sigma Churn": "시그마 섞기", - "Sigma min": "시그마 최솟값", - "Sigma max": "시그마 최댓값", - "Sigma noise": "시그마 노이즈", - "Clip skip": "클립 건너뛰기", - "Denoising": "디노이징", - "Nothing": "없음", - "Apply settings": "설정 적용하기", - "Always save all generated images": "생성된 이미지 항상 저장하기" + "Variation seed": "바리에이션 시드", + "Variation strength": "바리에이션 강도", + "Weighted sum": "Weighted sum", + "What to put inside the masked area before processing it with Stable Diffusion.": "Stable Diffusion으로 이미지를 생성하기 전 마스크된 부분에 무엇을 채울지 결정하는 설정값", + "When reading generation parameters from text into UI (from PNG info or pasted text), do not change the selected model/checkpoint.": "When reading generation parameters from text into UI (from PNG info or pasted text), do not change the selected model/checkpoint.", + "When using \"Save\" button, save images to a subdirectory": "When using \"Save\" button, save images to a subdirectory", + "When using 'Save' button, only save a single selected image": "When using 'Save' button, only save a single selected image", + "Which algorithm to use to produce the image": "이미지를 생성할 때 사용할 알고리즘", + "Width": "가로", + "Will upscale the image to twice the dimensions; use width and height sliders to set tile size": "이미지를 설정된 사이즈의 2배로 업스케일합니다. 상단의 가로와 세로 슬라이더를 이용해 타일 사이즈를 지정하세요.", + "With img2img, do exactly the amount of steps the slider specifies (normally you'd do less with less denoising).": "With img2img, do exactly the amount of steps the slider specifies (normally you'd do less with less denoising).", + "Write image to a directory (default - log/images) and generation parameters into csv file.": "이미지를 경로에 저장하고, 설정값들을 csv 파일로 저장합니다. (기본 경로 - log/images)", + "X type": "X축", + "X values": "X 설정값", + "X/Y plot": "X/Y 플롯", + "Y type": "Y축", + "Y values": "Y 설정값", + "api": "", + "built with gradio": "gradio로 제작되었습니다", + "checkpoint": "checkpoint", + "directory.": "directory.", + "down": "아래쪽", + "escape (\\) brackets in deepbooru (so they are used as literal brackets and not for emphasis)": "escape (\\) brackets in deepbooru (so they are used as literal brackets and not for emphasis)", + "eta (noise multiplier) for DDIM": "eta (noise multiplier) for DDIM", + "eta (noise multiplier) for ancestral samplers": "eta (noise multiplier) for ancestral samplers", + "extras history": "extras history", + "fill it with colors of the image": "이미지의 색상으로 채우기", + "fill it with latent space noise": "잠재 공간 노이즈로 채우기", + "fill it with latent space zeroes": "잠재 공간의 0값으로 채우기", + "fill": "채우기", + "for detailed explanation.": "for detailed explanation.", + "hide": "api 숨기기", + "how fast should the training go. Low values will take longer to train, high values may fail to converge (not generate accurate results) and/or may break the embedding (This has happened if you see Loss: nan in the training info textbox. If this happens, you need to manually restore your embedding from an older not-broken backup).\n\nYou can set a single numeric value, or multiple learning rates using the syntax:\n\n rate_1:max_steps_1, rate_2:max_steps_2, ...\n\nEG: 0.005:100, 1e-3:1000, 1e-5\n\nWill train with rate of 0.005 for first 100 steps, then 1e-3 until 1000 steps, then 1e-5 for all remaining steps.": "how fast should the training go. Low values will take longer to train, high values may fail to converge (not generate accurate results) and/or may break the embedding (This has happened if you see Loss: nan in the training info textbox. If this happens, you need to manually restore your embedding from an older not-broken backup).\n\nYou can set a single numeric value, or multiple learning rates using the syntax:\n\n rate_1:max_steps_1, rate_2:max_steps_2, ...\n\nEG: 0.005:100, 1e-3:1000, 1e-5\n\nWill train with rate of 0.005 for first 100 steps, then 1e-3 until 1000 steps, then 1e-5 for all remaining steps.", + "img2img DDIM discretize": "img2img DDIM discretize", + "img2img alternative test": "이미지→이미지 대체버전 테스트", + "img2img history": "img2img history", + "img2img": "이미지→이미지", + "keep whatever was there originally": "이미지 원본 유지", + "latent noise": "잠재 노이즈", + "latent nothing": "잠재 공백", + "left": "왼쪽", + "number of images to delete consecutively next": "number of images to delete consecutively next", + "or": "or", + "original": "원본 유지", + "quad": "quad", + "right": "오른쪽", + "set_index": "set_index", + "should be 2 or lower.": "이 2 이하여야 합니다.", + "sigma churn": "sigma churn", + "sigma noise": "sigma noise", + "sigma tmin": "sigma tmin", + "txt2img history": "txt2img history", + "txt2img": "텍스트→이미지", + "uniform": "uniform", + "up": "위쪽", + "use spaces for tags in deepbooru": "use spaces for tags in deepbooru", + "view": "api 보이기", + "wiki": "wiki" } \ No newline at end of file From 1be5933ba21a3badec42b7b2753d626f849b609d Mon Sep 17 00:00:00 2001 From: captin411 Date: Sun, 23 Oct 2022 04:11:07 -0700 Subject: [PATCH 12/73] auto cropping now works with non square crops --- modules/textual_inversion/autocrop.py | 509 ++++++++++++++------------ 1 file changed, 269 insertions(+), 240 deletions(-) diff --git a/modules/textual_inversion/autocrop.py b/modules/textual_inversion/autocrop.py index 5a551c25..b2f9241c 100644 --- a/modules/textual_inversion/autocrop.py +++ b/modules/textual_inversion/autocrop.py @@ -1,241 +1,270 @@ -import cv2 -from collections import defaultdict -from math import log, sqrt -import numpy as np -from PIL import Image, ImageDraw - -GREEN = "#0F0" -BLUE = "#00F" -RED = "#F00" - - -def crop_image(im, settings): - """ Intelligently crop an image to the subject matter """ - if im.height > im.width: - im = im.resize((settings.crop_width, settings.crop_height * im.height // im.width)) - elif im.width > im.height: - im = im.resize((settings.crop_width * im.width // im.height, settings.crop_height)) - else: - im = im.resize((settings.crop_width, settings.crop_height)) - - if im.height == im.width: - return im - - focus = focal_point(im, settings) - - # take the focal point and turn it into crop coordinates that try to center over the focal - # point but then get adjusted back into the frame - y_half = int(settings.crop_height / 2) - x_half = int(settings.crop_width / 2) - - x1 = focus.x - x_half - if x1 < 0: - x1 = 0 - elif x1 + settings.crop_width > im.width: - x1 = im.width - settings.crop_width - - y1 = focus.y - y_half - if y1 < 0: - y1 = 0 - elif y1 + settings.crop_height > im.height: - y1 = im.height - settings.crop_height - - x2 = x1 + settings.crop_width - y2 = y1 + settings.crop_height - - crop = [x1, y1, x2, y2] - - if settings.annotate_image: - d = ImageDraw.Draw(im) - rect = list(crop) - rect[2] -= 1 - rect[3] -= 1 - d.rectangle(rect, outline=GREEN) - if settings.destop_view_image: - im.show() - - return im.crop(tuple(crop)) - -def focal_point(im, settings): - corner_points = image_corner_points(im, settings) - entropy_points = image_entropy_points(im, settings) - face_points = image_face_points(im, settings) - - total_points = len(corner_points) + len(entropy_points) + len(face_points) - - corner_weight = settings.corner_points_weight - entropy_weight = settings.entropy_points_weight - face_weight = settings.face_points_weight - - weight_pref_total = corner_weight + entropy_weight + face_weight - - # weight things - pois = [] - if weight_pref_total == 0 or total_points == 0: - return pois - - pois.extend( - [ PointOfInterest( p.x, p.y, weight=p.weight * ( (corner_weight/weight_pref_total) / (len(corner_points)/total_points) )) for p in corner_points ] - ) - pois.extend( - [ PointOfInterest( p.x, p.y, weight=p.weight * ( (entropy_weight/weight_pref_total) / (len(entropy_points)/total_points) )) for p in entropy_points ] - ) - pois.extend( - [ PointOfInterest( p.x, p.y, weight=p.weight * ( (face_weight/weight_pref_total) / (len(face_points)/total_points) )) for p in face_points ] - ) - - average_point = poi_average(pois, settings) - - if settings.annotate_image: - d = ImageDraw.Draw(im) - for f in face_points: - d.rectangle(f.bounding(f.size), outline=RED) - for f in entropy_points: - d.rectangle(f.bounding(30), outline=BLUE) - for poi in pois: - w = max(4, 4 * 0.5 * sqrt(poi.weight)) - d.ellipse(poi.bounding(w), fill=BLUE) - d.ellipse(average_point.bounding(25), outline=GREEN) - - return average_point - - -def image_face_points(im, settings): - np_im = np.array(im) - gray = cv2.cvtColor(np_im, cv2.COLOR_BGR2GRAY) - - tries = [ - [ f'{cv2.data.haarcascades}haarcascade_eye.xml', 0.01 ], - [ f'{cv2.data.haarcascades}haarcascade_frontalface_default.xml', 0.05 ], - [ f'{cv2.data.haarcascades}haarcascade_profileface.xml', 0.05 ], - [ f'{cv2.data.haarcascades}haarcascade_frontalface_alt.xml', 0.05 ], - [ f'{cv2.data.haarcascades}haarcascade_frontalface_alt2.xml', 0.05 ], - [ f'{cv2.data.haarcascades}haarcascade_frontalface_alt_tree.xml', 0.05 ], - [ f'{cv2.data.haarcascades}haarcascade_eye_tree_eyeglasses.xml', 0.05 ], - [ f'{cv2.data.haarcascades}haarcascade_upperbody.xml', 0.05 ] - ] - - for t in tries: - # print(t[0]) - classifier = cv2.CascadeClassifier(t[0]) - minsize = int(min(im.width, im.height) * t[1]) # at least N percent of the smallest side - try: - faces = classifier.detectMultiScale(gray, scaleFactor=1.1, - minNeighbors=7, minSize=(minsize, minsize), flags=cv2.CASCADE_SCALE_IMAGE) - except: - continue - - if len(faces) > 0: - rects = [[f[0], f[1], f[0] + f[2], f[1] + f[3]] for f in faces] - return [PointOfInterest((r[0] +r[2]) // 2, (r[1] + r[3]) // 2, size=abs(r[0]-r[2])) for r in rects] - return [] - - -def image_corner_points(im, settings): - grayscale = im.convert("L") - - # naive attempt at preventing focal points from collecting at watermarks near the bottom - gd = ImageDraw.Draw(grayscale) - gd.rectangle([0, im.height*.9, im.width, im.height], fill="#999") - - np_im = np.array(grayscale) - - points = cv2.goodFeaturesToTrack( - np_im, - maxCorners=100, - qualityLevel=0.04, - minDistance=min(grayscale.width, grayscale.height)*0.07, - useHarrisDetector=False, - ) - - if points is None: - return [] - - focal_points = [] - for point in points: - x, y = point.ravel() - focal_points.append(PointOfInterest(x, y, size=4)) - - return focal_points - - -def image_entropy_points(im, settings): - landscape = im.height < im.width - portrait = im.height > im.width - if landscape: - move_idx = [0, 2] - move_max = im.size[0] - elif portrait: - move_idx = [1, 3] - move_max = im.size[1] - else: - return [] - - e_max = 0 - crop_current = [0, 0, settings.crop_width, settings.crop_height] - crop_best = crop_current - while crop_current[move_idx[1]] < move_max: - crop = im.crop(tuple(crop_current)) - e = image_entropy(crop) - - if (e > e_max): - e_max = e - crop_best = list(crop_current) - - crop_current[move_idx[0]] += 4 - crop_current[move_idx[1]] += 4 - - x_mid = int(crop_best[0] + settings.crop_width/2) - y_mid = int(crop_best[1] + settings.crop_height/2) - - return [PointOfInterest(x_mid, y_mid, size=25)] - - -def image_entropy(im): - # greyscale image entropy - # band = np.asarray(im.convert("L")) - band = np.asarray(im.convert("1"), dtype=np.uint8) - hist, _ = np.histogram(band, bins=range(0, 256)) - hist = hist[hist > 0] - return -np.log2(hist / hist.sum()).sum() - - -def poi_average(pois, settings): - weight = 0.0 - x = 0.0 - y = 0.0 - for poi in pois: - weight += poi.weight - x += poi.x * poi.weight - y += poi.y * poi.weight - avg_x = round(x / weight) - avg_y = round(y / weight) - - return PointOfInterest(avg_x, avg_y) - - -class PointOfInterest: - def __init__(self, x, y, weight=1.0, size=10): - self.x = x - self.y = y - self.weight = weight - self.size = size - - def bounding(self, size): - return [ - self.x - size//2, - self.y - size//2, - self.x + size//2, - self.y + size//2 - ] - - -class Settings: - def __init__(self, crop_width=512, crop_height=512, corner_points_weight=0.5, entropy_points_weight=0.5, face_points_weight=0.5, annotate_image=False): - self.crop_width = crop_width - self.crop_height = crop_height - self.corner_points_weight = corner_points_weight - self.entropy_points_weight = entropy_points_weight - self.face_points_weight = entropy_points_weight - self.annotate_image = annotate_image +import cv2 +from collections import defaultdict +from math import log, sqrt +import numpy as np +from PIL import Image, ImageDraw + +GREEN = "#0F0" +BLUE = "#00F" +RED = "#F00" + + +def crop_image(im, settings): + """ Intelligently crop an image to the subject matter """ + + scale_by = 1 + if is_landscape(im.width, im.height): + scale_by = settings.crop_height / im.height + elif is_portrait(im.width, im.height): + scale_by = settings.crop_width / im.width + elif is_square(im.width, im.height): + if is_square(settings.crop_width, settings.crop_height): + scale_by = settings.crop_width / im.width + elif is_landscape(settings.crop_width, settings.crop_height): + scale_by = settings.crop_width / im.width + elif is_portrait(settings.crop_width, settings.crop_height): + scale_by = settings.crop_height / im.height + + im = im.resize((int(im.width * scale_by), int(im.height * scale_by))) + + if im.width == settings.crop_width and im.height == settings.crop_height: + if settings.annotate_image: + d = ImageDraw.Draw(im) + rect = [0, 0, im.width, im.height] + rect[2] -= 1 + rect[3] -= 1 + d.rectangle(rect, outline=GREEN) + if settings.destop_view_image: + im.show() + return im + + focus = focal_point(im, settings) + + # take the focal point and turn it into crop coordinates that try to center over the focal + # point but then get adjusted back into the frame + y_half = int(settings.crop_height / 2) + x_half = int(settings.crop_width / 2) + + x1 = focus.x - x_half + if x1 < 0: + x1 = 0 + elif x1 + settings.crop_width > im.width: + x1 = im.width - settings.crop_width + + y1 = focus.y - y_half + if y1 < 0: + y1 = 0 + elif y1 + settings.crop_height > im.height: + y1 = im.height - settings.crop_height + + x2 = x1 + settings.crop_width + y2 = y1 + settings.crop_height + + crop = [x1, y1, x2, y2] + + if settings.annotate_image: + d = ImageDraw.Draw(im) + rect = list(crop) + rect[2] -= 1 + rect[3] -= 1 + d.rectangle(rect, outline=GREEN) + if settings.destop_view_image: + im.show() + + return im.crop(tuple(crop)) + +def focal_point(im, settings): + corner_points = image_corner_points(im, settings) + entropy_points = image_entropy_points(im, settings) + face_points = image_face_points(im, settings) + + total_points = len(corner_points) + len(entropy_points) + len(face_points) + + corner_weight = settings.corner_points_weight + entropy_weight = settings.entropy_points_weight + face_weight = settings.face_points_weight + + weight_pref_total = corner_weight + entropy_weight + face_weight + + # weight things + pois = [] + if weight_pref_total == 0 or total_points == 0: + return pois + + pois.extend( + [ PointOfInterest( p.x, p.y, weight=p.weight * ( (corner_weight/weight_pref_total) / (len(corner_points)/total_points) )) for p in corner_points ] + ) + pois.extend( + [ PointOfInterest( p.x, p.y, weight=p.weight * ( (entropy_weight/weight_pref_total) / (len(entropy_points)/total_points) )) for p in entropy_points ] + ) + pois.extend( + [ PointOfInterest( p.x, p.y, weight=p.weight * ( (face_weight/weight_pref_total) / (len(face_points)/total_points) )) for p in face_points ] + ) + + average_point = poi_average(pois, settings) + + if settings.annotate_image: + d = ImageDraw.Draw(im) + for f in face_points: + d.rectangle(f.bounding(f.size), outline=RED) + for f in entropy_points: + d.rectangle(f.bounding(30), outline=BLUE) + for poi in pois: + w = max(4, 4 * 0.5 * sqrt(poi.weight)) + d.ellipse(poi.bounding(w), fill=BLUE) + d.ellipse(average_point.bounding(25), outline=GREEN) + + return average_point + + +def image_face_points(im, settings): + np_im = np.array(im) + gray = cv2.cvtColor(np_im, cv2.COLOR_BGR2GRAY) + + tries = [ + [ f'{cv2.data.haarcascades}haarcascade_eye.xml', 0.01 ], + [ f'{cv2.data.haarcascades}haarcascade_frontalface_default.xml', 0.05 ], + [ f'{cv2.data.haarcascades}haarcascade_profileface.xml', 0.05 ], + [ f'{cv2.data.haarcascades}haarcascade_frontalface_alt.xml', 0.05 ], + [ f'{cv2.data.haarcascades}haarcascade_frontalface_alt2.xml', 0.05 ], + [ f'{cv2.data.haarcascades}haarcascade_frontalface_alt_tree.xml', 0.05 ], + [ f'{cv2.data.haarcascades}haarcascade_eye_tree_eyeglasses.xml', 0.05 ], + [ f'{cv2.data.haarcascades}haarcascade_upperbody.xml', 0.05 ] + ] + + for t in tries: + # print(t[0]) + classifier = cv2.CascadeClassifier(t[0]) + minsize = int(min(im.width, im.height) * t[1]) # at least N percent of the smallest side + try: + faces = classifier.detectMultiScale(gray, scaleFactor=1.1, + minNeighbors=7, minSize=(minsize, minsize), flags=cv2.CASCADE_SCALE_IMAGE) + except: + continue + + if len(faces) > 0: + rects = [[f[0], f[1], f[0] + f[2], f[1] + f[3]] for f in faces] + return [PointOfInterest((r[0] +r[2]) // 2, (r[1] + r[3]) // 2, size=abs(r[0]-r[2])) for r in rects] + return [] + + +def image_corner_points(im, settings): + grayscale = im.convert("L") + + # naive attempt at preventing focal points from collecting at watermarks near the bottom + gd = ImageDraw.Draw(grayscale) + gd.rectangle([0, im.height*.9, im.width, im.height], fill="#999") + + np_im = np.array(grayscale) + + points = cv2.goodFeaturesToTrack( + np_im, + maxCorners=100, + qualityLevel=0.04, + minDistance=min(grayscale.width, grayscale.height)*0.07, + useHarrisDetector=False, + ) + + if points is None: + return [] + + focal_points = [] + for point in points: + x, y = point.ravel() + focal_points.append(PointOfInterest(x, y, size=4)) + + return focal_points + + +def image_entropy_points(im, settings): + landscape = im.height < im.width + portrait = im.height > im.width + if landscape: + move_idx = [0, 2] + move_max = im.size[0] + elif portrait: + move_idx = [1, 3] + move_max = im.size[1] + else: + return [] + + e_max = 0 + crop_current = [0, 0, settings.crop_width, settings.crop_height] + crop_best = crop_current + while crop_current[move_idx[1]] < move_max: + crop = im.crop(tuple(crop_current)) + e = image_entropy(crop) + + if (e > e_max): + e_max = e + crop_best = list(crop_current) + + crop_current[move_idx[0]] += 4 + crop_current[move_idx[1]] += 4 + + x_mid = int(crop_best[0] + settings.crop_width/2) + y_mid = int(crop_best[1] + settings.crop_height/2) + + return [PointOfInterest(x_mid, y_mid, size=25)] + + +def image_entropy(im): + # greyscale image entropy + # band = np.asarray(im.convert("L")) + band = np.asarray(im.convert("1"), dtype=np.uint8) + hist, _ = np.histogram(band, bins=range(0, 256)) + hist = hist[hist > 0] + return -np.log2(hist / hist.sum()).sum() + + +def poi_average(pois, settings): + weight = 0.0 + x = 0.0 + y = 0.0 + for poi in pois: + weight += poi.weight + x += poi.x * poi.weight + y += poi.y * poi.weight + avg_x = round(x / weight) + avg_y = round(y / weight) + + return PointOfInterest(avg_x, avg_y) + + +def is_landscape(w, h): + return w > h + + +def is_portrait(w, h): + return h > w + + +def is_square(w, h): + return w == h + + +class PointOfInterest: + def __init__(self, x, y, weight=1.0, size=10): + self.x = x + self.y = y + self.weight = weight + self.size = size + + def bounding(self, size): + return [ + self.x - size//2, + self.y - size//2, + self.x + size//2, + self.y + size//2 + ] + + +class Settings: + def __init__(self, crop_width=512, crop_height=512, corner_points_weight=0.5, entropy_points_weight=0.5, face_points_weight=0.5, annotate_image=False): + self.crop_width = crop_width + self.crop_height = crop_height + self.corner_points_weight = corner_points_weight + self.entropy_points_weight = entropy_points_weight + self.face_points_weight = entropy_points_weight + self.annotate_image = annotate_image self.destop_view_image = False \ No newline at end of file From 705bbf327f54e26facc833ddf620425453358dbc Mon Sep 17 00:00:00 2001 From: Dynamic Date: Sun, 23 Oct 2022 22:37:40 +0900 Subject: [PATCH 13/73] Rename ko-KR.json to ko_KR.json --- localizations/{ko-KR.json => ko_KR.json} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename localizations/{ko-KR.json => ko_KR.json} (98%) diff --git a/localizations/ko-KR.json b/localizations/ko_KR.json similarity index 98% rename from localizations/ko-KR.json rename to localizations/ko_KR.json index 7cc431c6..f665042e 100644 --- a/localizations/ko-KR.json +++ b/localizations/ko_KR.json @@ -419,4 +419,4 @@ "use spaces for tags in deepbooru": "use spaces for tags in deepbooru", "view": "api 보이기", "wiki": "wiki" -} \ No newline at end of file +} From c729cd41303ee258e1fbca9d0dcf9e54c7f6993f Mon Sep 17 00:00:00 2001 From: Dynamic Date: Sun, 23 Oct 2022 22:38:49 +0900 Subject: [PATCH 14/73] Update ko_KR.json Updated translation for everything except the Settings tab --- localizations/ko_KR.json | 381 ++++++++++++++++++++++----------------- 1 file changed, 219 insertions(+), 162 deletions(-) diff --git a/localizations/ko_KR.json b/localizations/ko_KR.json index f665042e..a48ece87 100644 --- a/localizations/ko_KR.json +++ b/localizations/ko_KR.json @@ -5,118 +5,158 @@ "❮": "❮", "❯": "❯", "⤡": "⤡", + " images in this directory. Loaded ": "개의 이미지가 이 경로에 존재합니다. ", + " images during ": "개의 이미지를 불러왔고, 생성 기간은 ", + ", divided into ": "입니다. ", + " pages": "페이지로 나뉘어 표시합니다.", "1st and last digit must be 1. ex:'1, 2, 1'": "1st and last digit must be 1. ex:'1, 2, 1'", - "A directory on the same machine where the server is running.": "A directory on the same machine where the server is running.", - "A merger of the two checkpoints will be generated in your": "A merger of the two checkpoints will be generated in your", + "[wiki]": " [위키] 참조", + "A directory on the same machine where the server is running.": "WebUI 서버가 돌아가고 있는 디바이스에 존재하는 디렉토리를 선택해 주세요.", + "A merger of the two checkpoints will be generated in your": "체크포인트들이 병합된 결과물이 당신의", "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": "난수 생성기의 결과물을 지정하는 값 - 동일한 설정값과 동일한 시드를 적용 시, 완전히 똑같은 결과물을 얻게 됩니다.", "Add a random artist to the prompt.": "프롬프트에 랜덤한 작가 추가", "Add a second progress bar to the console that shows progress for an entire job.": "Add a second progress bar to the console that shows progress for an entire job.", - "Add difference": "Add difference", + "Add difference": "차이점 추가", "Add extended info (seed, prompt) to filename when saving grid": "Add extended info (seed, prompt) to filename when saving grid", - "Add layer normalization": "Add layer normalization", + "Add layer normalization": "레이어 정규화(normalization) 추가", "Add model hash to generation information": "Add model hash to generation information", "Add model name to generation information": "Add model name to generation information", + "Aesthetic imgs embedding": "스타일 이미지 임베딩", + "Aesthetic learning rate": "스타일 학습 수", + "Aesthetic steps": "스타일 스텝 수", + "Aesthetic text for imgs": "스타일 텍스트", + "Aesthetic weight": "스타일 가중치", "Always print all generation info to standard output": "Always print all generation info to standard output", "Always save all generated image grids": "Always save all generated image grids", "Always save all generated images": "생성된 이미지 항상 저장하기", + "api": "", + "append": "뒤에 삽입", "Apply color correction to img2img results to match original colors.": "Apply color correction to img2img results to match original colors.", "Apply selected styles to current prompt": "현재 프롬프트에 선택된 스타일 적용", "Apply settings": "설정 적용하기", - "BSRGAN 4x": "BSRGAN 4x", - "Batch Process": "Batch Process", "Batch count": "배치 수", - "Batch from Directory": "Batch from Directory", + "Batch from Directory": "저장 경로로부터 여러장 처리", "Batch img2img": "이미지→이미지 배치", + "Batch Process": "이미지 여러장 처리", "Batch size": "배치 크기", - "CFG Scale": "CFG 스케일", - "CLIP: maximum number of lines in text file (0 = No limit)": "CLIP: maximum number of lines in text file (0 = No limit)", + "BSRGAN 4x": "BSRGAN 4x", + "built with gradio": "gradio로 제작되었습니다", "Cancel generate forever": "반복 생성 취소", - "Check progress (first)": "Check progress (first)", + "CFG Scale": "CFG 스케일", "Check progress": "Check progress", + "Check progress (first)": "Check progress (first)", + "checkpoint": " 체크포인트 ", "Checkpoint Merger": "체크포인트 병합", "Checkpoint name": "체크포인트 이름", "Checkpoints to cache in RAM": "Checkpoints to cache in RAM", "Classifier Free Guidance Scale - how strongly the image should conform to prompt - lower values produce more creative results": "Classifier Free Guidance Scale - 이미지가 주어진 프롬프트를 얼마나 따를지를 정해주는 수치 - 낮은 값일수록 더 창의적인 결과물이 나옴", + "Click to Upload": "Click to Upload", "Clip skip": "클립 건너뛰기", - "CodeFormer visibility": "CodeFormer visibility", - "CodeFormer weight (0 = maximum effect, 1 = minimum effect)": "CodeFormer weight (0 = maximum effect, 1 = minimum effect)", + "CLIP: maximum number of lines in text file (0 = No limit)": "CLIP: maximum number of lines in text file (0 = No limit)", + "CodeFormer visibility": "CodeFormer 가시성", + "CodeFormer weight (0 = maximum effect, 1 = minimum effect)": "CodeFormer 가중치 (0 = 최대 효과, 1 = 최소 효과)", "CodeFormer weight parameter; 0 = maximum effect; 1 = minimum effect": "CodeFormer weight parameter; 0 = maximum effect; 1 = minimum effect", "Color variation": "색깔 다양성", + "Collect": "즐겨찾기", + "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.": "Create a text file next to every image with generation parameters.", - "Create embedding": "Create embedding", - "Create flipped copies": "Create flipped copies", - "Create hypernetwork": "Create hypernetwork", + "Create aesthetic images embedding": "Create aesthetic images embedding", + "Create embedding": "임베딩 생성", + "Create flipped copies": "좌우로 뒤집은 복사본 생성", + "Create hypernetwork": "하이퍼네트워크 생성", + "Create images embedding": "Create images embedding", "Crop and resize": "잘라낸 후 리사이징", - "Crop to fit": "Crop to fit", - "Custom Name (Optional)": "Custom Name (Optional)", + "Crop to fit": "잘라내서 맞추기", + "Custom Name (Optional)": "병합 모델 이름 (선택사항)", + "Dataset directory": "데이터셋 경로", "DDIM": "DDIM", - "DPM adaptive": "DPM adaptive", - "DPM fast": "DPM fast", - "DPM2 Karras": "DPM2 Karras", - "DPM2 a Karras": "DPM2 a Karras", - "DPM2 a": "DPM2 a", - "DPM2": "DPM2", - "Dataset directory": "Dataset directory", "Decode CFG scale": "디코딩 CFG 스케일", "Decode steps": "디코딩 스텝 수", - "Delete": "Delete", - "Denoising Diffusion Implicit Models - best at inpainting": "Denoising Diffusion Implicit Models - 인페이팅에 뛰어남", - "Denoising strength change factor": "디노이즈 강도 변경 배수", - "Denoising strength": "디노이즈 강도", + "Delete": "삭제", "Denoising": "디노이징", - "Destination directory": "Destination directory", + "Denoising Diffusion Implicit Models - best at inpainting": "Denoising Diffusion Implicit Models - 인페이팅에 뛰어남", + "Denoising strength": "디노이즈 강도", + "Denoising strength change factor": "디노이즈 강도 변경 배수", + "Destination directory": "결과물 저장 경로", "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.": "알고리즘이 얼마나 원본 이미지를 반영할지를 결정하는 수치입니다. 0일 경우 아무것도 바뀌지 않고, 1일 경우 원본 이미지와 전혀 관련없는 결과물을 얻게 됩니다. 1.0 아래의 값일 경우, 설정된 샘플링 스텝 수보다 적은 스텝 수를 거치게 됩니다.", "Directory for saving images using the Save button": "Directory for saving images using the Save button", "Directory name pattern": "Directory name pattern", + "directory.": "저장 경로에 저장됩니다.", "Do not add watermark to images": "Do not add watermark to images", "Do not do anything special": "아무것도 하지 않기", "Do not save grids consisting of one picture": "Do not save grids consisting of one picture", "Do not show any images in results for web": "Do not show any images in results for web", + "down": "아래쪽", "Download localization template": "Download localization template", + "Download": "다운로드", + "DPM adaptive": "DPM adaptive", + "DPM fast": "DPM fast", + "DPM2": "DPM2", + "DPM2 a": "DPM2 a", + "DPM2 a Karras": "DPM2 a Karras", + "DPM2 Karras": "DPM2 Karras", "Draw legend": "범례 그리기", "Draw mask": "마스크 직접 그리기", "Drop File Here": "Drop File Here", "Drop Image Here": "Drop Image Here", - "ESRGAN_4x": "ESRGAN_4x", - "Embedding": "Embedding", + "Embedding": "임베딩", + "Embedding Learning rate": "임베딩 학습률", "Emphasis: use (text) to make model pay more attention to text and [text] to make it pay less attention": "Emphasis: use (text) to make model pay more attention to text and [text] to make it pay less attention", "Enable full page image viewer": "Enable full page image viewer", "Enable quantization in K samplers for sharper and cleaner results. This may change existing seeds. Requires restart to apply.": "Enable quantization in K samplers for sharper and cleaner results. This may change existing seeds. Requires restart to apply.", - "End Page": "End Page", - "Enter hypernetwork layer structure": "Enter hypernetwork layer structure", - "Eta noise seed delta": "Eta noise seed delta", + "End Page": "마지막 페이지", + "Enter hypernetwork layer structure": "하이퍼네트워크 레이어 구조 입력", + "Error": "오류", + "escape (\\) brackets in deepbooru (so they are used as literal brackets and not for emphasis)": "escape (\\) brackets in deepbooru (so they are used as literal brackets and not for emphasis)", + "ESRGAN_4x": "ESRGAN_4x", "Eta": "Eta", - "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 a": "Euler a", + "eta (noise multiplier) for ancestral samplers": "eta (noise multiplier) for ancestral samplers", + "eta (noise multiplier) for DDIM": "eta (noise multiplier) for DDIM", + "Eta noise seed delta": "Eta noise seed delta", "Euler": "Euler", + "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보다 높은 스텝 수는 효과가 미미함", + "Existing Caption txt Action": "이미 존재하는 캡션 텍스트 처리", "Extra": "고급", "Extras": "부가기능", + "extras history": "extras history", "Face restoration": "Face restoration", "Fall-off exponent (lower=higher detail)": "감쇠 지수 (낮을수록 디테일이 올라감)", - "File Name": "File Name", + "favorites": "즐겨찾기", + "File": "File", "File format for grids": "File format for grids", "File format for images": "File format for images", + "File Name": "파일 이름", "File with inputs": "설정값 파일", - "File": "File", "Filename join string": "Filename join string", "Filename word regex": "Filename word regex", + "fill": "채우기", + "fill it with colors of the image": "이미지의 색상으로 채우기", + "fill it with latent space noise": "잠재 공간 노이즈로 채우기", + "fill it with latent space zeroes": "잠재 공간의 0값으로 채우기", "Filter NSFW content": "Filter NSFW content", - "First Page": "First Page", + "First Page": "처음 페이지", "Firstpass height": "초기 세로길이", "Firstpass width": "초기 가로길이", "Font for image grids that have text": "Font for image grids that have text", + "for detailed explanation.": "를 참조하십시오.", "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.": "SD 업스케일링에서 타일 간 몇 픽셀을 겹치게 할지 결정하는 설정값입니다. 타일들이 다시 한 이미지로 합쳐질 때, 눈에 띄는 이음매가 없도록 서로 겹치게 됩니다.", - "GFPGAN visibility": "GFPGAN visibility", - "Generate Info": "Generate Info", - "Generate forever": "반복 생성", "Generate": "생성", + "Generate forever": "반복 생성", + "Generate Info": "생성 정보", + "GFPGAN visibility": "GFPGAN 가시성", "Grid row count; use -1 for autodetect and 0 for it to be same as batch size": "Grid row count; use -1 for autodetect and 0 for it to be same as batch size", "Height": "세로", "Heun": "Heun", + "hide": "api 숨기기", "Hide samplers in user interface (requires restart)": "Hide samplers in user interface (requires restart)", "Highres. fix": "고해상도 보정", "History": "기록", + "Image Browser": "이미지 브라우저", + "Images directory": "이미지 경로", + "extras": "부가기능", + "how fast should the training go. Low values will take longer to train, high values may fail to converge (not generate accurate results) and/or may break the embedding (This has happened if you see Loss: nan in the training info textbox. If this happens, you need to manually restore your embedding from an older not-broken backup).\n\nYou can set a single numeric value, or multiple learning rates using the syntax:\n\n rate_1:max_steps_1, rate_2:max_steps_2, ...\n\nEG: 0.005:100, 1e-3:1000, 1e-5\n\nWill train with rate of 0.005 for first 100 steps, then 1e-3 until 1000 steps, then 1e-5 for all remaining steps.": "how fast should the training go. Low values will take longer to train, high values may fail to converge (not generate accurate results) and/or may break the embedding (This has happened if you see Loss: nan in the training info textbox. If this happens, you need to manually restore your embedding from an older not-broken backup).\n\nYou can set a single numeric value, or multiple learning rates using the syntax:\n\n rate_1:max_steps_1, rate_2:max_steps_2, ...\n\nEG: 0.005:100, 1e-3:1000, 1e-5\n\nWill train with rate of 0.005 for first 100 steps, then 1e-3 until 1000 steps, then 1e-5 for all remaining steps.", "How many batches of images to create": "생성할 이미지 배치 수", "How many image to create in a single batch": "한 배치당 이미지 수", "How many times to improve the generated image iteratively; higher values take longer; very low values can produce bad results": "생성된 이미지를 향상할 횟수; 매우 낮은 값은 만족스럽지 못한 결과물을 출력할 수 있음", @@ -124,26 +164,32 @@ "How much to blur the mask before processing, in pixels.": "이미지 생성 전 마스크를 얼마나 블러처리할지 결정하는 값. 픽셀 단위", "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).": "바리에이션을 얼마나 줄지 정하는 수치 - 0일 경우 아무것도 바뀌지 않고, 1일 경우 바리에이션 시드로부터 생성된 이미지를 얻게 됩니다. (Ancestral 샘플러 제외 - 이 경우에는 좀 다른 무언가를 얻게 됩니다)", "Hypernet str.": "하이퍼네트워크 강도", - "Hypernetwork strength": "Hypernetwork strength", "Hypernetwork": "하이퍼네트워크", + "Hypernetwork Learning rate": "하이퍼네트워크 학습률", + "Hypernetwork strength": "Hypernetwork strength", "If PNG image is larger than 4MB or any dimension is larger than 4000, downscale and save copy as JPG": "If PNG image is larger than 4MB or any dimension is larger than 4000, downscale and save copy as JPG", "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.": "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.", "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.", + "ignore": "무시", + "Image": "Image", "Image for img2img": "Image for img2img", "Image for inpainting with mask": "Image for inpainting with mask", - "Image": "Image", "Images filename pattern": "Images filename pattern", + "img2img": "이미지→이미지", + "img2img alternative test": "이미지→이미지 대체버전 테스트", + "img2img DDIM discretize": "img2img DDIM discretize", + "img2img history": "img2img history", "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보다 클 경우 다양성이 높아져 결과 이미지들이 갈수록 혼란스러워지겠죠.", "Include Separate Images": "분리된 이미지 포함하기", "Increase coherency by padding from the last comma within n tokens when using more than 75 tokens": "Increase coherency by padding from the last comma within n tokens when using more than 75 tokens", - "Initialization text": "Initialization text", - "Inpaint at full resolution padding, pixels": "전체 해상도로 인페인트 패딩값(픽셀 단위)", + "Initialization text": "초기화 텍스트", + "Inpaint": "인페인트", "Inpaint at full resolution": "전체 해상도로 인페인트하기", + "Inpaint at full resolution padding, pixels": "전체 해상도로 인페인트 패딩값(픽셀 단위)", "Inpaint masked": "마스크만 처리", "Inpaint not masked": "마스크 이외만 처리", - "Inpaint": "인페인트", "Input directory": "인풋 이미지 경로", - "Interpolation Method": "Interpolation Method", + "Interpolation Method": "보간 방법", "Interrogate\nCLIP": "CLIP\n분석", "Interrogate\nDeepBooru": "DeepBooru\n분석", "Interrogate Options": "Interrogate Options", @@ -156,49 +202,68 @@ "Interrogate: num_beams for BLIP": "Interrogate: num_beams for BLIP", "Interrogate: use artists from artists.csv": "Interrogate: use artists from artists.csv", "Interrupt": "중단", + "Is negative text": "네거티브 텍스트일시 체크", "Just resize": "리사이징", "Keep -1 for seeds": "시드값 -1로 유지", - "LDSR processing steps. Lower = faster": "LDSR processing steps. Lower = faster", - "LDSR": "LDSR", - "LMS Karras": "LMS Karras", - "LMS": "LMS", + "keep whatever was there originally": "이미지 원본 유지", "Label": "Label", "Lanczos": "Lanczos", - "Learning rate": "Learning rate", - "Leave blank to save images to the default path.": "Leave blank to save images to the default path.", + "Last prompt:": "Last prompt:", + "Last saved hypernetwork:": "Last saved hypernetwork:", + "Last saved image:": "Last saved image:", + "latent noise": "잠재 노이즈", + "latent nothing": "잠재 공백", + "LDSR": "LDSR", + "LDSR processing steps. Lower = faster": "LDSR processing steps. Lower = faster", + "leakyrelu": "leakyrelu", + "Leave blank to save images to the default path.": "기존 저장 경로에 이미지들을 저장하려면 비워두세요.", + "left": "왼쪽", + "linear": "linear", "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.", + "LMS": "LMS", + "LMS Karras": "LMS Karras", + "Load": "불러오기", "Loading...": "로딩 중...", "Localization (requires restart)": "Localization (requires restart)", - "Log directory": "Log directory", + "Log directory": "로그 경로", "Loopback": "루프백", "Loops": "루프 수", + "Loss:": "Loss:", + "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": "Make K-diffusion samplers produce same images in a batch as when making a single image", "Make Zip when Save?": "저장 시 Zip 생성하기", - "Make an attempt to produce a picture similar to what would have been produced with same seed at specified resolution": "동일한 시드 값으로 생성되었을 이미지를 주어진 해상도로 최대한 유사하게 재현합니다.", + "Mask": "마스크", "Mask blur": "마스크 블러", "Mask mode": "Mask mode", - "Mask": "마스크", "Masked content": "마스크된 부분", "Masking mode": "Masking mode", "Max prompt words for [prompt_words] pattern": "Max prompt words for [prompt_words] pattern", - "Max steps": "Max steps", - "Modules": "Modules", + "Max steps": "최대 스텝 수", + "Modules": "모듈", "Move face restoration model from VRAM into RAM after processing": "Move face restoration model from VRAM into RAM after processing", - "Multiplier (M) - set to 0 to get model A": "Multiplier (M) - set to 0 to get model A", - "Name": "Name", - "Negative prompt (press Ctrl+Enter or Alt+Enter to generate)": "네거티브 프롬프트 입력(Ctrl+Enter나 Alt+Enter로 생성 시작)", + "Move VAE and CLIP to RAM when training hypernetwork. Saves VRAM.": "Move VAE and CLIP to RAM when training hypernetwork. Saves VRAM.", + "Multiplier (M) - set to 0 to get model A": "배율 (M) - 0으로 적용하면 모델 A를 얻게 됩니다", + "Name": "이름", "Negative prompt": "네거티브 프롬프트", - "Next Page": "Next Page", + "Negative prompt (press Ctrl+Enter or Alt+Enter to generate)": "네거티브 프롬프트 입력(Ctrl+Enter나 Alt+Enter로 생성 시작)", + "Next batch": "다음 묶음", + "Next Page": "다음 페이지", "None": "None", "Nothing": "없음", + "Nothing found in the image.": "Nothing found in the image.", + "number of images to delete consecutively next": "연속적으로 삭제할 이미지 수", "Number of repeats for a single input image per epoch; used only for displaying epoch number": "Number of repeats for a single input image per epoch; used only for displaying epoch number", - "Number of vectors per token": "Number of vectors per token", + "Number of vectors per token": "토큰별 벡터 수", + "Open for Clip Aesthetic!": "클립 스타일 기능을 활성화하려면 클릭!", "Open images output directory": "이미지 저장 경로 열기", - "Open output directory": "Open output directory", + "Open output directory": "저장 경로 열기", + "or": "or", + "original": "원본 유지", "Original negative prompt": "기존 네거티브 프롬프트", "Original prompt": "기존 프롬프트", "Outpainting direction": "아웃페인팅 방향", "Outpainting mk2": "아웃페인팅 마크 2", + "Output directory": "이미지 저장 경로", "Output directory for grids; if empty, defaults to two directories below": "Output directory for grids; if empty, defaults to two directories below", "Output directory for images from extras tab": "Output directory for images from extras tab", "Output directory for images; if empty, defaults to three directories below": "Output directory for images; if empty, defaults to three directories below", @@ -206,46 +271,54 @@ "Output directory for img2img images": "Output directory for img2img images", "Output directory for txt2img grids": "Output directory for txt2img grids", "Output directory for txt2img images": "Output directory for txt2img images", - "Output directory": "이미지 저장 경로", "Override `Denoising strength` to 1?": "디노이즈 강도를 1로 적용할까요?", - "Override `Sampling Steps` to the same value as `Decode steps`?": "샘플링 스텝 수를 디코딩 스텝 수와 동일하게 적용할까요?", - "Override `Sampling method` to Euler?(this method is built for it)": "샘플링 방법을 Euler로 적용할까요?(이 기능은 해당 샘플러를 위해 만들어져 있습니다)", "Override `prompt` to the same value as `original prompt`?(and `negative prompt`)": "프롬프트 값을 기존 프롬프트와 동일하게 적용할까요?(네거티브 프롬프트 포함)", - "PLMS": "PLMS", - "PNG Info": "PNG 정보", - "Page Index": "Page Index", + "Override `Sampling method` to Euler?(this method is built for it)": "샘플링 방법을 Euler로 적용할까요?(이 기능은 해당 샘플러를 위해 만들어져 있습니다)", + "Override `Sampling Steps` to the same value as `Decode steps`?": "샘플링 스텝 수를 디코딩 스텝 수와 동일하게 적용할까요?", + "Overwrite Old Embedding": "기존 임베딩 덮어쓰기", + "Overwrite Old Hypernetwork": "기존 하이퍼네트워크 덮어쓰기", + "Page Index": "페이지 인덱스", + "parameters": "설정값", "Path to directory where to write outputs": "Path to directory where to write outputs", - "Path to directory with input images": "Path to directory with input images", + "Path to directory with input images": "인풋 이미지가 있는 경로", "Paths for saving": "Paths for saving", "Pixels to expand": "확장할 픽셀 수", + "PLMS": "PLMS", + "PNG Info": "PNG 정보", "Poor man's outpainting": "가난뱅이의 아웃페인팅", - "Preprocess images": "Preprocess images", - "Preprocess": "Preprocess", - "Prev Page": "Prev Page", + "Preparing dataset from": "Preparing dataset from", + "prepend": "앞에 삽입", + "Preprocess": "전처리", + "Preprocess images": "이미지 전처리", + "Prev batch": "이전 묶음", + "Prev Page": "이전 페이지", "Prevent empty spots in grid (when set to autodetect)": "Prevent empty spots in grid (when set to autodetect)", - "Primary model (A)": "Primary model (A)", + "Primary model (A)": "주 모델 (A)", "Process an image, use it as an input, repeat.": "이미지를 생성하고, 생성한 이미지를 다시 원본으로 사용하는 과정을 반복합니다.", "Process images in a directory on the same machine where the server is running.": "WebUI 서버가 돌아가고 있는 디바이스에 존재하는 디렉토리의 이미지들을 처리합니다.", "Produce an image that can be tiled.": "타일링 가능한 이미지를 생성합니다.", + "Prompt": "프롬프트", "Prompt (press Ctrl+Enter or Alt+Enter to generate)": "프롬프트 입력(Ctrl+Enter나 Alt+Enter로 생성 시작)", - "Prompt S/R": "프롬프트 스타일 변경", "Prompt matrix": "프롬프트 매트릭스", "Prompt order": "프롬프트 순서", - "Prompt template file": "Prompt template file", - "Prompt": "프롬프트", - "Prompts from file or textbox": "파일이나 텍스트박스로부터 프롬프트 불러오기", + "Prompt S/R": "프롬프트 스타일 변경", + "Prompt template file": "프롬프트 템플릿 파일 경로", "Prompts": "프롬프트", + "Prompts from file or textbox": "파일이나 텍스트박스로부터 프롬프트 불러오기", "Put variable parts at start of prompt": "변경되는 프롬프트를 앞에 위치시키기", + "quad": "quad", "Quality for saved jpeg images": "Quality for saved jpeg images", "Quicksettings list": "Quicksettings list", "R-ESRGAN 4x+ Anime6B": "R-ESRGAN 4x+ Anime6B", "Randomness": "랜덤성", "Read generation parameters from prompt or last generation if prompt is empty into user interface.": "클립보드에 복사된 정보로부터 설정값 읽어오기/프롬프트창이 비어있을경우 제일 최근 설정값 불러오기", - "Read parameters (prompt, etc...) from txt2img tab when making previews": "Read parameters (prompt, etc...) from txt2img tab when making previews", + "Read parameters (prompt, etc...) from txt2img tab when making previews": "프리뷰 이미지 생성 시 텍스트→이미지 탭에서 설정값(프롬프트 등) 읽어오기", "Recommended settings: Sampling Steps: 80-100, Sampler: Euler a, Denoising strength: 0.8": "추천 설정값 - 샘플링 스텝 수 : 80-100 , 샘플러 : Euler a, 디노이즈 강도 : 0.8", "Reload custom script bodies (No ui updates, No restart)": "Reload custom script bodies (No ui updates, No restart)", + "relu": "relu", "Renew Page": "Renew Page", "Request browser notifications": "Request browser notifications", + "Resize": "리사이징 배수", "Resize and fill": "리사이징 후 채우기", "Resize image to target resolution. Unless height and width match, you will get incorrect aspect ratio.": "설정된 해상도로 이미지 리사이징을 진행합니다. 원본과 가로/세로 길이가 일치하지 않을 경우, 부정확한 화면비의 이미지를 얻게 됩니다.", "Resize mode": "Resize mode", @@ -253,42 +326,43 @@ "Resize seed from width": "시드 리사이징 세로길이", "Resize the image so that entirety of image is inside target resolution. Fill empty space with image's colors.": "이미지 전체가 설정된 해상도 내부에 들어가게 리사이징을 진행합니다. 빈 공간은 이미지의 색상으로 채웁니다.", "Resize the image so that entirety of target resolution is filled with the image. Crop parts that stick out.": "설정된 해상도 전체가 이미지로 가득차게 리사이징을 진행합니다. 튀어나오는 부분은 잘라냅니다.", - "Resize": "Resize", "Restart Gradio and Refresh components (Custom Scripts, ui.py, js and css only)": "Restart Gradio and Refresh components (Custom Scripts, ui.py, js and css only)", "Restore faces": "얼굴 보정", "Restore low quality faces using GFPGAN neural network": "GFPGAN 신경망을 이용해 저품질의 얼굴을 보정합니다.", - "Result = A * (1 - M) + B * M": "Result = A * (1 - M) + B * M", - "Result = A + (B - C) * M": "Result = A + (B - C) * M", + "Result = A * (1 - M) + B * M": "결과물 = A * (1 - M) + B * M", + "Result = A + (B - C) * M": "결과물 = A + (B - C) * M", "Reuse seed from last generation, mostly useful if it was randomed": "이전 생성에서 사용된 시드를 불러옵니다. 랜덤하게 생성했을 시 도움됨", - "Run": "Run", - "SD upscale": "SD 업스케일링", - "Sampler parameters": "Sampler parameters", + "right": "오른쪽", + "Run": "가동", "Sampler": "샘플러", - "Sampling Steps": "샘플링 스텝 수", + "Sampler parameters": "Sampler parameters", "Sampling method": "샘플링 방법", - "Save a copy of embedding to log directory every N steps, 0 to disable": "Save a copy of embedding to log directory every N steps, 0 to disable", + "Sampling Steps": "샘플링 스텝 수", + "Save": "저장", + "Save a copy of embedding to log directory every N steps, 0 to disable": "N스텝마다 로그 경로에 임베딩을 저장합니다, 비활성화하려면 0으로 설정하십시오.", "Save a copy of image before applying color correction to img2img results": "Save a copy of image before applying color correction to img2img results", "Save a copy of image before doing face restoration.": "Save a copy of image before doing face restoration.", "Save an csv containing the loss to log directory every N steps, 0 to disable": "Save an csv containing the loss to log directory every N steps, 0 to disable", - "Save an image to log directory every N steps, 0 to disable": "Save an image to log directory every N steps, 0 to disable", - "Save as float16": "Save as float16", + "Save an image to log directory every N steps, 0 to disable": "N스텝마다 로그 경로에 이미지를 저장합니다, 비활성화하려면 0으로 설정하십시오.", + "Save as float16": "float16으로 저장", "Save grids to a subdirectory": "Save grids to a subdirectory", "Save images to a subdirectory": "Save images to a subdirectory", - "Save images with embedding in PNG chunks": "Save images with embedding in PNG chunks", + "Save images with embedding in PNG chunks": "PNG 청크로 이미지에 임베딩을 포함시켜 저장", "Save style": "스타일 저장", "Save text information about generation parameters as chunks to png files": "Save text information about generation parameters as chunks to png files", - "Save": "저장", "Saving images/grids": "Saving images/grids", "Saving to a directory": "Saving to a directory", - "Scale by": "Scale by", - "Scale to": "Scale to", + "Scale by": "스케일링 배수 지정", + "Scale to": "스케일링 사이즈 지정", "Script": "스크립트", "ScuNET GAN": "ScuNET GAN", "ScuNET PSNR": "ScuNET PSNR", - "Secondary model (B)": "Secondary model (B)", - "See": "See", - "Seed of a different picture to be mixed into the generation.": "결과물에 섞일 다른 그림의 시드", + "SD upscale": "SD 업스케일링", + "Secondary model (B)": "2차 모델 (B)", + "See": "자세한 설명은", "Seed": "시드", + "Seed of a different picture to be mixed into the generation.": "결과물에 섞일 다른 그림의 시드", + "Select activation function of hypernetwork": "하이퍼네트워크 활성화 함수 선택", "Send to extras": "부가기능으로 전송", "Send to img2img": "이미지→이미지로 전송", "Send to inpaint": "인페인트로 전송", @@ -297,26 +371,36 @@ "Separate values for X axis using commas.": "쉼표로 X축에 적용할 값 분리", "Separate values for Y axis using commas.": "쉼표로 Y축에 적용할 값 분리", "Set seed to -1, which will cause a new random number to be used every time": "시드를 -1로 적용 - 매번 랜덤한 시드가 적용되게 됩니다.", + "set_index": "set_index", "Settings": "설정", - "Show Textbox": "텍스트박스 보이기", + "should be 2 or lower.": "이 2 이하여야 합니다.", "Show generation progress in window title.": "Show generation progress in window title.", "Show grid in results for web": "Show grid in results for web", "Show image creation progress every N sampling steps. Set 0 to disable.": "Show image creation progress every N sampling steps. Set 0 to disable.", "Show images zoomed in by default in full page image viewer": "Show images zoomed in by default in full page image viewer", "Show progressbar": "Show progressbar", - "Show result images": "Show result images", - "Sigma Churn": "시그마 섞기", + "Show result images": "이미지 결과 보이기", + "Show Textbox": "텍스트박스 보이기", "Sigma adjustment for finding noise for image": "이미지 노이즈를 찾기 위해 시그마 조정", + "Sigma Churn": "시그마 섞기", + "sigma churn": "sigma churn", "Sigma max": "시그마 최댓값", "Sigma min": "시그마 최솟값", "Sigma noise": "시그마 노이즈", - "Single Image": "Single Image", + "sigma noise": "sigma noise", + "sigma tmin": "sigma tmin", + "Single Image": "단일 이미지", "Skip": "건너뛰기", - "Source directory": "Source directory", - "Source": "Source", - "Split oversized images into two": "Split oversized images into two", - "Stable Diffusion checkpoint": "Stable Diffusion 체크포인트", + "Slerp angle": "구면 선형 보간 각도", + "Slerp interpolation": "구면 선형 보간", + "Source": "원본", + "Source directory": "원본 경로", + "Split image threshold": "Split image threshold", + "Split image overlap ratio": "Split image overlap ratio", + "Split oversized images": "사이즈가 큰 이미지 분할하기", "Stable Diffusion": "Stable Diffusion", + "Stable Diffusion checkpoint": "Stable Diffusion 체크포인트", + "Step:": "Step:", "Steps": "스텝 수", "Stop At last layers of CLIP model": "CLIP 모델의 n번째 레이어에서 멈추기", "Stop processing current image and continue processing.": "현재 진행중인 이미지 생성을 중단하고 작업을 계속하기", @@ -325,51 +409,65 @@ "Style 2": "스타일 2", "Style to apply; styles have components for both positive and negative prompts and apply to both": "Style to apply; styles have components for both positive and negative prompts and apply to both", "SwinIR 4x": "SwinIR 4x", + "Sys VRAM:": "시스템 VRAM : ", "System": "System", - "Tertiary model (C)": "Tertiary model (C)", + "Tertiary model (C)": "3차 모델 (C)", "Textbox": "Textbox", "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.": "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.", "This string will be used to join split words into a single line if the option above is enabled.": "This string will be used to join split words into a single line if the option above is enabled.", + "This text is used to rotate the feature space of the imgs embs": "이 텍스트는 이미지 임베딩의 특징 공간을 회전하는 데 사용됩니다.", + "Tile overlap": "타일 겹침", "Tile overlap, in pixels for ESRGAN upscalers. Low values = visible seam.": "Tile overlap, in pixels for ESRGAN upscalers. Low values = visible seam.", "Tile overlap, in pixels for SwinIR. Low values = visible seam.": "Tile overlap, in pixels for SwinIR. Low values = visible seam.", - "Tile overlap": "타일 겹침", - "Tile size for ESRGAN upscalers. 0 = no tiling.": "Tile size for ESRGAN upscalers. 0 = no tiling.", "Tile size for all SwinIR.": "Tile size for all SwinIR.", + "Tile size for ESRGAN upscalers. 0 = no tiling.": "Tile size for ESRGAN upscalers. 0 = no tiling.", "Tiling": "타일링", - "Train Embedding": "Train Embedding", - "Train Hypernetwork": "Train Hypernetwork", - "Train an embedding; must specify a directory with a set of 1:1 ratio images": "Train an embedding; must specify a directory with a set of 1:1 ratio images", + "Time taken:": "소요 시간 : ", + "Torch active/reserved:": "활성화/예약된 Torch 양 : ", + "Torch active: Peak amount of VRAM used by Torch during generation, excluding cached data.\nTorch reserved: Peak amount of VRAM allocated by Torch, including all active and cached data.\nSys VRAM: Peak amount of VRAM allocation across all applications / total GPU VRAM (peak utilization%).": "활성화된 Torch : 생성 도중 캐시된 데이터를 포함해 사용된 VRAM의 최대량\n예약된 Torch : 활성화되고 캐시된 모든 데이터를 포함해 Torch에게 할당된 VRAM의 최대량\n시스템 VRAM : 모든 어플리케이션에 할당된 VRAM 최대량 / 총 GPU VRAM (최고 이용도%)", "Train": "훈련", + "Train an embedding or Hypernetwork; you must specify a directory with a set of 1:1 ratio images": "임베딩이나 하이퍼네트워크를 훈련시킵니다. 1:1 비율의 이미지가 있는 경로를 지정해야 합니다.", + "Train Embedding": "임베딩 훈련", + "Train Hypernetwork": "하이퍼네트워크 훈련", "Training": "Training", - "Unload VAE and CLIP from VRAM when training": "Unload VAE and CLIP from VRAM when training", + "txt2img": "텍스트→이미지", + "txt2img history": "txt2img history", + "uniform": "uniform", + "up": "위쪽", "Upload mask": "마스크 업로드하기", "Upscale latent space image when doing hires. fix": "Upscale latent space image when doing hires. fix", "Upscale masked region to target resolution, do inpainting, downscale back and paste into original image": "마스크된 부분을 설정된 해상도로 업스케일하고, 인페인팅을 진행한 뒤, 다시 다운스케일 후 원본 이미지에 붙여넣습니다.", - "Upscaler 2 visibility": "Upscaler 2 visibility", - "Upscaler for img2img": "Upscaler for img2img", "Upscaler": "업스케일러", + "Upscaler 1": "업스케일러 1", + "Upscaler 2": "업스케일러 2", + "Upscaler 2 visibility": "업스케일러 2 가시성", + "Upscaler for img2img": "Upscaler for img2img", "Upscaling": "Upscaling", - "Use BLIP for caption": "Use BLIP for caption", "Use a two step process to partially create an image at smaller resolution, upscale, and then improve details in it without changing composition": "저해상도 이미지를 1차적으로 생성 후 업스케일을 진행하여, 이미지의 전체적인 구성을 바꾸지 않고 세부적인 디테일을 향상시킵니다.", "Use an empty output directory to save pictures normally instead of writing to the output directory.": "저장 경로를 비워두면 기본 저장 폴더에 이미지들이 저장됩니다.", - "Use deepbooru for caption": "Use deepbooru for caption", + "Use BLIP for caption": "캡션에 BLIP 사용", + "Use deepbooru for caption": "캡션에 deepbooru 사용", + "Use dropout": "드롭아웃 사용", "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.": "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.", "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.": "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.", "Use old emphasis implementation. Can be useful to reproduce old seeds.": "Use old emphasis implementation. Can be useful to reproduce old seeds.", "Use original name for output filename during batch process in extras tab": "Use original name for output filename during batch process in extras tab", + "use spaces for tags in deepbooru": "use spaces for tags in deepbooru", "User interface": "User interface", - "VRAM usage polls per second during generation. Set to 0 to disable.": "VRAM usage polls per second during generation. Set to 0 to disable.", "Var. seed": "바리에이션 시드", "Var. strength": "바리에이션 강도", "Variation seed": "바리에이션 시드", "Variation strength": "바리에이션 강도", - "Weighted sum": "Weighted sum", + "view": "api 보이기", + "VRAM usage polls per second during generation. Set to 0 to disable.": "VRAM usage polls per second during generation. Set to 0 to disable.", + "Weighted sum": "가중 합", "What to put inside the masked area before processing it with Stable Diffusion.": "Stable Diffusion으로 이미지를 생성하기 전 마스크된 부분에 무엇을 채울지 결정하는 설정값", "When reading generation parameters from text into UI (from PNG info or pasted text), do not change the selected model/checkpoint.": "When reading generation parameters from text into UI (from PNG info or pasted text), do not change the selected model/checkpoint.", "When using \"Save\" button, save images to a subdirectory": "When using \"Save\" button, save images to a subdirectory", "When using 'Save' button, only save a single selected image": "When using 'Save' button, only save a single selected image", "Which algorithm to use to produce the image": "이미지를 생성할 때 사용할 알고리즘", "Width": "가로", + "wiki": " 위키", "Will upscale the image to twice the dimensions; use width and height sliders to set tile size": "이미지를 설정된 사이즈의 2배로 업스케일합니다. 상단의 가로와 세로 슬라이더를 이용해 타일 사이즈를 지정하세요.", "With img2img, do exactly the amount of steps the slider specifies (normally you'd do less with less denoising).": "With img2img, do exactly the amount of steps the slider specifies (normally you'd do less with less denoising).", "Write image to a directory (default - log/images) and generation parameters into csv file.": "이미지를 경로에 저장하고, 설정값들을 csv 파일로 저장합니다. (기본 경로 - log/images)", @@ -377,46 +475,5 @@ "X values": "X 설정값", "X/Y plot": "X/Y 플롯", "Y type": "Y축", - "Y values": "Y 설정값", - "api": "", - "built with gradio": "gradio로 제작되었습니다", - "checkpoint": "checkpoint", - "directory.": "directory.", - "down": "아래쪽", - "escape (\\) brackets in deepbooru (so they are used as literal brackets and not for emphasis)": "escape (\\) brackets in deepbooru (so they are used as literal brackets and not for emphasis)", - "eta (noise multiplier) for DDIM": "eta (noise multiplier) for DDIM", - "eta (noise multiplier) for ancestral samplers": "eta (noise multiplier) for ancestral samplers", - "extras history": "extras history", - "fill it with colors of the image": "이미지의 색상으로 채우기", - "fill it with latent space noise": "잠재 공간 노이즈로 채우기", - "fill it with latent space zeroes": "잠재 공간의 0값으로 채우기", - "fill": "채우기", - "for detailed explanation.": "for detailed explanation.", - "hide": "api 숨기기", - "how fast should the training go. Low values will take longer to train, high values may fail to converge (not generate accurate results) and/or may break the embedding (This has happened if you see Loss: nan in the training info textbox. If this happens, you need to manually restore your embedding from an older not-broken backup).\n\nYou can set a single numeric value, or multiple learning rates using the syntax:\n\n rate_1:max_steps_1, rate_2:max_steps_2, ...\n\nEG: 0.005:100, 1e-3:1000, 1e-5\n\nWill train with rate of 0.005 for first 100 steps, then 1e-3 until 1000 steps, then 1e-5 for all remaining steps.": "how fast should the training go. Low values will take longer to train, high values may fail to converge (not generate accurate results) and/or may break the embedding (This has happened if you see Loss: nan in the training info textbox. If this happens, you need to manually restore your embedding from an older not-broken backup).\n\nYou can set a single numeric value, or multiple learning rates using the syntax:\n\n rate_1:max_steps_1, rate_2:max_steps_2, ...\n\nEG: 0.005:100, 1e-3:1000, 1e-5\n\nWill train with rate of 0.005 for first 100 steps, then 1e-3 until 1000 steps, then 1e-5 for all remaining steps.", - "img2img DDIM discretize": "img2img DDIM discretize", - "img2img alternative test": "이미지→이미지 대체버전 테스트", - "img2img history": "img2img history", - "img2img": "이미지→이미지", - "keep whatever was there originally": "이미지 원본 유지", - "latent noise": "잠재 노이즈", - "latent nothing": "잠재 공백", - "left": "왼쪽", - "number of images to delete consecutively next": "number of images to delete consecutively next", - "or": "or", - "original": "원본 유지", - "quad": "quad", - "right": "오른쪽", - "set_index": "set_index", - "should be 2 or lower.": "이 2 이하여야 합니다.", - "sigma churn": "sigma churn", - "sigma noise": "sigma noise", - "sigma tmin": "sigma tmin", - "txt2img history": "txt2img history", - "txt2img": "텍스트→이미지", - "uniform": "uniform", - "up": "위쪽", - "use spaces for tags in deepbooru": "use spaces for tags in deepbooru", - "view": "api 보이기", - "wiki": "wiki" -} + "Y values": "Y 설정값" +} \ No newline at end of file From 6124575e1892259bf706db186de303acc9de47bf Mon Sep 17 00:00:00 2001 From: Dynamic Date: Mon, 24 Oct 2022 04:29:19 +0900 Subject: [PATCH 15/73] Translation complete --- localizations/ko_KR.json | 302 +++++++++++++++++++++------------------ 1 file changed, 160 insertions(+), 142 deletions(-) diff --git a/localizations/ko_KR.json b/localizations/ko_KR.json index a48ece87..6889de46 100644 --- a/localizations/ko_KR.json +++ b/localizations/ko_KR.json @@ -15,23 +15,24 @@ "A merger of the two checkpoints will be generated in your": "체크포인트들이 병합된 결과물이 당신의", "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": "난수 생성기의 결과물을 지정하는 값 - 동일한 설정값과 동일한 시드를 적용 시, 완전히 똑같은 결과물을 얻게 됩니다.", "Add a random artist to the prompt.": "프롬프트에 랜덤한 작가 추가", - "Add a second progress bar to the console that shows progress for an entire job.": "Add a second progress bar to the console that shows progress for an entire job.", + "Add a second progress bar to the console that shows progress for an entire job.": "콘솔에 전체 작업의 진행도를 보여주는 2번째 프로그레스 바 추가하기", "Add difference": "차이점 추가", - "Add extended info (seed, prompt) to filename when saving grid": "Add extended info (seed, prompt) to filename when saving grid", + "Add extended info (seed, prompt) to filename when saving grid": "그리드 저장 시 파일명에 추가 정보(시드, 프롬프트) 기입", "Add layer normalization": "레이어 정규화(normalization) 추가", - "Add model hash to generation information": "Add model hash to generation information", - "Add model name to generation information": "Add model name to generation information", + "Add model hash to generation information": "생성 정보에 모델 해시 추가", + "Add model name to generation information": "생성 정보에 모델 이름 추가", "Aesthetic imgs embedding": "스타일 이미지 임베딩", "Aesthetic learning rate": "스타일 학습 수", "Aesthetic steps": "스타일 스텝 수", "Aesthetic text for imgs": "스타일 텍스트", "Aesthetic weight": "스타일 가중치", - "Always print all generation info to standard output": "Always print all generation info to standard output", - "Always save all generated image grids": "Always save all generated image grids", + "Allowed categories for random artists selection when using the Roll button": "랜덤 버튼을 눌러 무작위 작가를 선택할 때 허용된 카테고리", + "Always print all generation info to standard output": "기본 아웃풋에 모든 생성 정보 항상 출력하기", + "Always save all generated image grids": "생성된 이미지 그리드 항상 저장하기", "Always save all generated images": "생성된 이미지 항상 저장하기", "api": "", "append": "뒤에 삽입", - "Apply color correction to img2img results to match original colors.": "Apply color correction to img2img results to match original colors.", + "Apply color correction to img2img results to match original colors.": "이미지→이미지 결과물이 기존 색상과 일치하도록 색상 보정 적용하기", "Apply selected styles to current prompt": "현재 프롬프트에 선택된 스타일 적용", "Apply settings": "설정 적용하기", "Batch count": "배치 수", @@ -43,29 +44,29 @@ "built with gradio": "gradio로 제작되었습니다", "Cancel generate forever": "반복 생성 취소", "CFG Scale": "CFG 스케일", - "Check progress": "Check progress", - "Check progress (first)": "Check progress (first)", + "Check progress": "진행도 체크", + "Check progress (first)": "진행도 체크 (처음)", "checkpoint": " 체크포인트 ", "Checkpoint Merger": "체크포인트 병합", "Checkpoint name": "체크포인트 이름", - "Checkpoints to cache in RAM": "Checkpoints to cache in RAM", + "Checkpoints to cache in RAM": "RAM에 캐싱할 체크포인트 수", "Classifier Free Guidance Scale - how strongly the image should conform to prompt - lower values produce more creative results": "Classifier Free Guidance Scale - 이미지가 주어진 프롬프트를 얼마나 따를지를 정해주는 수치 - 낮은 값일수록 더 창의적인 결과물이 나옴", - "Click to Upload": "Click to Upload", + "Click to Upload": "클릭해서 업로드하기", "Clip skip": "클립 건너뛰기", - "CLIP: maximum number of lines in text file (0 = No limit)": "CLIP: maximum number of lines in text file (0 = No limit)", + "CLIP: maximum number of lines in text file (0 = No limit)": "CLIP : 텍스트 파일 최대 라인 수 (0 = 제한 없음)", "CodeFormer visibility": "CodeFormer 가시성", "CodeFormer weight (0 = maximum effect, 1 = minimum effect)": "CodeFormer 가중치 (0 = 최대 효과, 1 = 최소 효과)", - "CodeFormer weight parameter; 0 = maximum effect; 1 = minimum effect": "CodeFormer weight parameter; 0 = maximum effect; 1 = minimum effect", + "CodeFormer weight parameter; 0 = maximum effect; 1 = minimum effect": "CodeFormer 가중치 설정값 (0 = 최대 효과, 1 = 최소 효과)", "Color variation": "색깔 다양성", "Collect": "즐겨찾기", "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.": "Create a text file next to every image with generation parameters.", - "Create aesthetic images embedding": "Create aesthetic images embedding", + "Create a text file next to every image with generation parameters.": "생성된 이미지마다 생성 설정값을 담은 텍스트 파일 생성하기", + "Create aesthetic images embedding": "스타일 이미지 임베딩 생성하기", "Create embedding": "임베딩 생성", "Create flipped copies": "좌우로 뒤집은 복사본 생성", "Create hypernetwork": "하이퍼네트워크 생성", - "Create images embedding": "Create images embedding", + "Create images embedding": "이미지 임베딩 생성하기", "Crop and resize": "잘라낸 후 리사이징", "Crop to fit": "잘라내서 맞추기", "Custom Name (Optional)": "병합 모델 이름 (선택사항)", @@ -80,15 +81,15 @@ "Denoising strength change factor": "디노이즈 강도 변경 배수", "Destination directory": "결과물 저장 경로", "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.": "알고리즘이 얼마나 원본 이미지를 반영할지를 결정하는 수치입니다. 0일 경우 아무것도 바뀌지 않고, 1일 경우 원본 이미지와 전혀 관련없는 결과물을 얻게 됩니다. 1.0 아래의 값일 경우, 설정된 샘플링 스텝 수보다 적은 스텝 수를 거치게 됩니다.", - "Directory for saving images using the Save button": "Directory for saving images using the Save button", - "Directory name pattern": "Directory name pattern", + "Directory for saving images using the Save button": "저장 버튼을 이용해 저장하는 이미지들의 저장 경로", + "Directory name pattern": "디렉토리명 패턴", "directory.": "저장 경로에 저장됩니다.", - "Do not add watermark to images": "Do not add watermark to images", + "Do not add watermark to images": "이미지에 워터마크 추가하지 않기", "Do not do anything special": "아무것도 하지 않기", - "Do not save grids consisting of one picture": "Do not save grids consisting of one picture", - "Do not show any images in results for web": "Do not show any images in results for web", + "Do not save grids consisting of one picture": "이미지가 1개뿐인 그리드는 저장하지 않기", + "Do not show any images in results for web": "웹에서 결과창에 아무 이미지도 보여주지 않기", "down": "아래쪽", - "Download localization template": "Download localization template", + "Download localization template": "현지화 템플릿 다운로드", "Download": "다운로드", "DPM adaptive": "DPM adaptive", "DPM fast": "DPM fast", @@ -98,65 +99,67 @@ "DPM2 Karras": "DPM2 Karras", "Draw legend": "범례 그리기", "Draw mask": "마스크 직접 그리기", - "Drop File Here": "Drop File Here", - "Drop Image Here": "Drop Image Here", + "Drop File Here": "파일을 끌어 놓으세요", + "Drop Image Here": "이미지를 끌어 놓으세요", "Embedding": "임베딩", "Embedding Learning rate": "임베딩 학습률", - "Emphasis: use (text) to make model pay more attention to text and [text] to make it pay less attention": "Emphasis: use (text) to make model pay more attention to text and [text] to make it pay less attention", - "Enable full page image viewer": "Enable full page image viewer", - "Enable quantization in K samplers for sharper and cleaner results. This may change existing seeds. Requires restart to apply.": "Enable quantization in K samplers for sharper and cleaner results. This may change existing seeds. Requires restart to apply.", + "Emphasis: use (text) to make model pay more attention to text and [text] to make it pay less attention": "강조 : (텍스트)를 이용해 모델의 텍스트에 대한 가중치를 더 강하게 주고 [텍스트]를 이용해 더 약하게 줍니다.", + "Enable full page image viewer": "전체 페이지 이미지 뷰어 활성화", + "Enable quantization in K samplers for sharper and cleaner results. This may change existing seeds. Requires restart to apply.": "더 예리하고 깔끔한 결과물을 위해 K 샘플러들에 양자화를 적용합니다. 존재하는 시드가 변경될 수 있습니다. 재시작이 필요합니다.", "End Page": "마지막 페이지", "Enter hypernetwork layer structure": "하이퍼네트워크 레이어 구조 입력", "Error": "오류", - "escape (\\) brackets in deepbooru (so they are used as literal brackets and not for emphasis)": "escape (\\) brackets in deepbooru (so they are used as literal brackets and not for emphasis)", + "escape (\\) brackets in deepbooru (so they are used as literal brackets and not for emphasis)": "deepbooru에서 괄호를 역슬래시(\\)로 이스케이프 처리하기(가중치 강조가 아니라 실제 괄호로 사용되게 하기 위해)", "ESRGAN_4x": "ESRGAN_4x", "Eta": "Eta", - "eta (noise multiplier) for ancestral samplers": "eta (noise multiplier) for ancestral samplers", - "eta (noise multiplier) for DDIM": "eta (noise multiplier) for DDIM", - "Eta noise seed delta": "Eta noise seed delta", + "eta (noise multiplier) for ancestral samplers": "ancestral 샘플러를 위한 eta(노이즈 배수)값", + "eta (noise multiplier) for DDIM": "DDIM을 위한 eta(노이즈 배수)값", + "Eta noise seed delta": "Eta 노이즈 시드 변화", "Euler": "Euler", "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보다 높은 스텝 수는 효과가 미미함", "Existing Caption txt Action": "이미 존재하는 캡션 텍스트 처리", "Extra": "고급", "Extras": "부가기능", - "extras history": "extras history", - "Face restoration": "Face restoration", + "extras history": "부가기능 기록", + "Face restoration": "얼굴 보정", + "Face restoration model": "얼굴 보정 모델", "Fall-off exponent (lower=higher detail)": "감쇠 지수 (낮을수록 디테일이 올라감)", "favorites": "즐겨찾기", - "File": "File", - "File format for grids": "File format for grids", - "File format for images": "File format for images", + "File": "파일", + "File format for grids": "그리드 이미지 파일 형식", + "File format for images": "이미지 파일 형식", "File Name": "파일 이름", "File with inputs": "설정값 파일", - "Filename join string": "Filename join string", - "Filename word regex": "Filename word regex", + "Filename join string": "파일명 병합 문자열", + "Filename word regex": "파일명 정규표현식", "fill": "채우기", "fill it with colors of the image": "이미지의 색상으로 채우기", "fill it with latent space noise": "잠재 공간 노이즈로 채우기", "fill it with latent space zeroes": "잠재 공간의 0값으로 채우기", - "Filter NSFW content": "Filter NSFW content", + "Filter NSFW content": "성인 컨텐츠 필터링하기", "First Page": "처음 페이지", "Firstpass height": "초기 세로길이", "Firstpass width": "초기 가로길이", - "Font for image grids that have text": "Font for image grids that have text", + "Font for image grids that have text": "텍스트가 존재하는 그리드 이미지의 폰트", "for detailed explanation.": "를 참조하십시오.", "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.": "SD 업스케일링에서 타일 간 몇 픽셀을 겹치게 할지 결정하는 설정값입니다. 타일들이 다시 한 이미지로 합쳐질 때, 눈에 띄는 이음매가 없도록 서로 겹치게 됩니다.", "Generate": "생성", "Generate forever": "반복 생성", "Generate Info": "생성 정보", "GFPGAN visibility": "GFPGAN 가시성", - "Grid row count; use -1 for autodetect and 0 for it to be same as batch size": "Grid row count; use -1 for autodetect and 0 for it to be same as batch size", + "Grid row count; use -1 for autodetect and 0 for it to be same as batch size": "그리드 세로줄 수 : -1로 설정 시 자동 감지/0으로 설정 시 배치 크기와 동일", "Height": "세로", "Heun": "Heun", "hide": "api 숨기기", - "Hide samplers in user interface (requires restart)": "Hide samplers in user interface (requires restart)", + "Hide samplers in user interface (requires restart)": "사용자 인터페이스에서 숨길 샘플러 선택(재시작 필요)", "Highres. fix": "고해상도 보정", "History": "기록", "Image Browser": "이미지 브라우저", + "Images Browser": "이미지 브라우저", "Images directory": "이미지 경로", "extras": "부가기능", - "how fast should the training go. Low values will take longer to train, high values may fail to converge (not generate accurate results) and/or may break the embedding (This has happened if you see Loss: nan in the training info textbox. If this happens, you need to manually restore your embedding from an older not-broken backup).\n\nYou can set a single numeric value, or multiple learning rates using the syntax:\n\n rate_1:max_steps_1, rate_2:max_steps_2, ...\n\nEG: 0.005:100, 1e-3:1000, 1e-5\n\nWill train with rate of 0.005 for first 100 steps, then 1e-3 until 1000 steps, then 1e-5 for all remaining steps.": "how fast should the training go. Low values will take longer to train, high values may fail to converge (not generate accurate results) and/or may break the embedding (This has happened if you see Loss: nan in the training info textbox. If this happens, you need to manually restore your embedding from an older not-broken backup).\n\nYou can set a single numeric value, or multiple learning rates using the syntax:\n\n rate_1:max_steps_1, rate_2:max_steps_2, ...\n\nEG: 0.005:100, 1e-3:1000, 1e-5\n\nWill train with rate of 0.005 for first 100 steps, then 1e-3 until 1000 steps, then 1e-5 for all remaining steps.", + "how fast should the training go. Low values will take longer to train, high values may fail to converge (not generate accurate results) and/or may break the embedding (This has happened if you see Loss: nan in the training info textbox. If this happens, you need to manually restore your embedding from an older not-broken backup).\n\nYou can set a single numeric value, or multiple learning rates using the syntax:\n\n rate_1:max_steps_1, rate_2:max_steps_2, ...\n\nEG: 0.005:100, 1e-3:1000, 1e-5\n\nWill train with rate of 0.005 for first 100 steps, then 1e-3 until 1000 steps, then 1e-5 for all remaining steps.": "훈련이 얼마나 빨리 이루어질지 정하는 값입니다. 값이 낮을수록 훈련 시간이 길어지고, 높은 값일수록 정확한 결과를 내는 데 실패하고 임베딩을 망가뜨릴 수 있습니다(임베딩이 망가진 경우에는 훈련 정보 텍스트박스에 손실(Loss) : nan 이라고 출력되게 됩니다. 이 경우에는 망가지지 않은 이전 백업본을 불러와야 합니다).\n\n학습률은 하나의 값으로 설정할 수도 있고, 다음 문법을 사용해 여러 값을 사용할 수도 있습니다 :\n\n학습률_1:최대 스텝수_1, 학습률_2:최대 스텝수_2, ...\n\n예 : 0.005:100, 1e-3:1000, 1e-5\n\n예의 설정값은 첫 100스텝동안 0.005의 학습률로, 그 이후 1000스텝까지는 1e-3으로, 남은 스텝은 1e-5로 훈련하게 됩니다.", "How many batches of images to create": "생성할 이미지 배치 수", "How many image to create in a single batch": "한 배치당 이미지 수", "How many times to improve the generated image iteratively; higher values take longer; very low values can produce bad results": "생성된 이미지를 향상할 횟수; 매우 낮은 값은 만족스럽지 못한 결과물을 출력할 수 있음", @@ -166,111 +169,114 @@ "Hypernet str.": "하이퍼네트워크 강도", "Hypernetwork": "하이퍼네트워크", "Hypernetwork Learning rate": "하이퍼네트워크 학습률", - "Hypernetwork strength": "Hypernetwork strength", - "If PNG image is larger than 4MB or any dimension is larger than 4000, downscale and save copy as JPG": "If PNG image is larger than 4MB or any dimension is larger than 4000, downscale and save copy as JPG", - "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.": "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.", - "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.", + "Hypernetwork strength": "하이퍼네트워크 강도", + "If PNG image is larger than 4MB or any dimension is larger than 4000, downscale and save copy as JPG": "PNG 이미지가 4MB보다 크거나 가로 또는 세로길이가 4000보다 클 경우, 다운스케일 후 JPG로 복사본 저장하기", + "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.": "이 옵션이 활성화되면 생성된 이미지에 워터마크가 추가되지 않습니다. 경고 : 워터마크를 추가하지 않는다면, 비윤리적인 행동을 하는 중일지도 모릅니다.", + "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.": "이 값이 0이 아니라면, 시드에 해당 값이 더해지고, Eta가 있는 샘플러를 사용할 때 노이즈의 RNG 조정을 위해 해당 값이 사용됩니다. 이 설정으로 더 다양한 이미지를 생성하거나, 잘 알고 계시다면 특정 소프트웨어의 결과값을 재현할 수도 있습니다.", "ignore": "무시", - "Image": "Image", + "Image": "이미지", "Image for img2img": "Image for img2img", - "Image for inpainting with mask": "Image for inpainting with mask", - "Images filename pattern": "Images filename pattern", + "Image for inpainting with mask": "마스크로 인페인팅할 이미지", + "Images filename pattern": "이미지 파일명 패턴", "img2img": "이미지→이미지", "img2img alternative test": "이미지→이미지 대체버전 테스트", - "img2img DDIM discretize": "img2img DDIM discretize", - "img2img history": "img2img history", + "img2img DDIM discretize": "이미지→이미지 DDIM 이산화", + "img2img history": "이미지→이미지 기록", "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보다 클 경우 다양성이 높아져 결과 이미지들이 갈수록 혼란스러워지겠죠.", "Include Separate Images": "분리된 이미지 포함하기", - "Increase coherency by padding from the last comma within n tokens when using more than 75 tokens": "Increase coherency by padding from the last comma within n tokens when using more than 75 tokens", + "Increase coherency by padding from the last comma within n tokens when using more than 75 tokens": "75개보다 많은 토큰을 사용시 마지막 쉼표로부터 N개의 토큰 이내에 패딩을 추가해 통일성 증가시키기", "Initialization text": "초기화 텍스트", "Inpaint": "인페인트", "Inpaint at full resolution": "전체 해상도로 인페인트하기", - "Inpaint at full resolution padding, pixels": "전체 해상도로 인페인트 패딩값(픽셀 단위)", + "Inpaint at full resolution padding, pixels": "전체 해상도로 인페인트시 패딩값(픽셀 단위)", "Inpaint masked": "마스크만 처리", "Inpaint not masked": "마스크 이외만 처리", "Input directory": "인풋 이미지 경로", "Interpolation Method": "보간 방법", "Interrogate\nCLIP": "CLIP\n분석", "Interrogate\nDeepBooru": "DeepBooru\n분석", - "Interrogate Options": "Interrogate Options", - "Interrogate: deepbooru score threshold": "Interrogate: deepbooru score threshold", - "Interrogate: deepbooru sort alphabetically": "Interrogate: deepbooru sort alphabetically", - "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: keep models in VRAM": "Interrogate: keep models in VRAM", - "Interrogate: maximum description length": "Interrogate: maximum description length", - "Interrogate: minimum description length (excluding artists, etc..)": "Interrogate: minimum description length (excluding artists, etc..)", - "Interrogate: num_beams for BLIP": "Interrogate: num_beams for BLIP", - "Interrogate: use artists from artists.csv": "Interrogate: use artists from artists.csv", + "Interrogate Options": "분석 설정", + "Interrogate: deepbooru score threshold": "분석 : deepbooru 점수 임계값", + "Interrogate: deepbooru sort alphabetically": "분석 : deepbooru 알파벳 순서로 정렬하기", + "Interrogate: include ranks of model tags matches in results (Has no effect on caption-based interrogators).": "분석 : 결과물에 모델 태그의 랭크 포함하기 (캡션 바탕의 분석기에는 효과 없음)", + "Interrogate: keep models in VRAM": "분석 : VRAM에 모델 유지하기", + "Interrogate: maximum description length": "분석 : 설명 최대 길이", + "Interrogate: minimum description length (excluding artists, etc..)": "분석 : 설명 최소 길이(작가 등등..제외)", + "Interrogate: num_beams for BLIP": "분석 : BLIP의 num_beams값", + "Interrogate: use artists from artists.csv": "분석 : artists.csv의 작가들 사용하기", "Interrupt": "중단", "Is negative text": "네거티브 텍스트일시 체크", "Just resize": "리사이징", "Keep -1 for seeds": "시드값 -1로 유지", "keep whatever was there originally": "이미지 원본 유지", - "Label": "Label", + "Label": "라벨", "Lanczos": "Lanczos", - "Last prompt:": "Last prompt:", - "Last saved hypernetwork:": "Last saved hypernetwork:", - "Last saved image:": "Last saved image:", + "Last prompt:": "마지막 프롬프트 : ", + "Last saved hypernetwork:": "마지막으로 저장된 하이퍼네트워크 : ", + "Last saved image:": "마지막으로 저장된 이미지 : ", "latent noise": "잠재 노이즈", "latent nothing": "잠재 공백", "LDSR": "LDSR", - "LDSR processing steps. Lower = faster": "LDSR processing steps. Lower = faster", + "LDSR processing steps. Lower = faster": "LDSR 스텝 수. 낮은 값 = 빠른 속도", "leakyrelu": "leakyrelu", "Leave blank to save images to the default path.": "기존 저장 경로에 이미지들을 저장하려면 비워두세요.", "left": "왼쪽", "linear": "linear", - "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.", + "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에서 찾을 수 있습니다. 재시작이 필요합니다.", "LMS": "LMS", "LMS Karras": "LMS Karras", "Load": "불러오기", "Loading...": "로딩 중...", - "Localization (requires restart)": "Localization (requires restart)", + "Localization (requires restart)": "현지화 (재시작 필요)", "Log directory": "로그 경로", "Loopback": "루프백", "Loops": "루프 수", - "Loss:": "Loss:", + "Loss:": "손실(Loss) : ", "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": "Make K-diffusion samplers produce same images in a batch as when making a single image", + "Make K-diffusion samplers produce same images in a batch as when making a single image": "K-diffusion 샘플러들이 단일 이미지를 생성하는 것처럼 배치에서도 동일한 이미지를 생성하게 하기", "Make Zip when Save?": "저장 시 Zip 생성하기", "Mask": "마스크", "Mask blur": "마스크 블러", - "Mask mode": "Mask mode", + "Mask mode": "마스크 모드", "Masked content": "마스크된 부분", - "Masking mode": "Masking mode", - "Max prompt words for [prompt_words] pattern": "Max prompt words for [prompt_words] pattern", + "Masking mode": "마스킹 모드", + "Max prompt words for [prompt_words] pattern": "[prompt_words] 패턴의 최대 프롬프트 단어 수", "Max steps": "최대 스텝 수", "Modules": "모듈", - "Move face restoration model from VRAM into RAM after processing": "Move face restoration model from VRAM into RAM after processing", - "Move VAE and CLIP to RAM when training hypernetwork. Saves VRAM.": "Move VAE and CLIP to RAM when training hypernetwork. Saves VRAM.", + "Move face restoration model from VRAM into RAM after processing": "처리가 완료되면 얼굴 보정 모델을 VRAM에서 RAM으로 옮기기", + "Move VAE and CLIP to RAM when training hypernetwork. Saves VRAM.": "하이퍼네트워크 훈련 진행 시 VAE와 CLIP을 RAM으로 옮기기. VRAM이 절약됩니다.", "Multiplier (M) - set to 0 to get model A": "배율 (M) - 0으로 적용하면 모델 A를 얻게 됩니다", "Name": "이름", "Negative prompt": "네거티브 프롬프트", "Negative prompt (press Ctrl+Enter or Alt+Enter to generate)": "네거티브 프롬프트 입력(Ctrl+Enter나 Alt+Enter로 생성 시작)", "Next batch": "다음 묶음", "Next Page": "다음 페이지", - "None": "None", + "None": "없음", "Nothing": "없음", "Nothing found in the image.": "Nothing found in the image.", "number of images to delete consecutively next": "연속적으로 삭제할 이미지 수", - "Number of repeats for a single input image per epoch; used only for displaying epoch number": "Number of repeats for a single input image per epoch; used only for displaying epoch number", + "Number of pictures displayed on each page": "각 페이지에 표시될 이미지 수", + "Minimum number of pages per load": "한번 불러올 때마다 불러올 최소 페이지 수", + "Number of grids in each row": "각 세로줄마다 표시될 그리드 수", + "Number of repeats for a single input image per epoch; used only for displaying epoch number": "세대(Epoch)당 단일 인풋 이미지의 반복 횟수 - 세대(Epoch) 숫자를 표시하는 데에만 사용됩니다. ", "Number of vectors per token": "토큰별 벡터 수", "Open for Clip Aesthetic!": "클립 스타일 기능을 활성화하려면 클릭!", "Open images output directory": "이미지 저장 경로 열기", "Open output directory": "저장 경로 열기", - "or": "or", + "or": "또는", "original": "원본 유지", "Original negative prompt": "기존 네거티브 프롬프트", "Original prompt": "기존 프롬프트", "Outpainting direction": "아웃페인팅 방향", "Outpainting mk2": "아웃페인팅 마크 2", "Output directory": "이미지 저장 경로", - "Output directory for grids; if empty, defaults to two directories below": "Output directory for grids; if empty, defaults to two directories below", - "Output directory for images from extras tab": "Output directory for images from extras tab", - "Output directory for images; if empty, defaults to three directories below": "Output directory for images; if empty, defaults to three directories below", - "Output directory for img2img grids": "Output directory for img2img grids", - "Output directory for img2img images": "Output directory for img2img images", - "Output directory for txt2img grids": "Output directory for txt2img grids", - "Output directory for txt2img images": "Output directory for txt2img images", + "Output directory for grids; if empty, defaults to two directories below": "그리드 이미지 저장 경로 - 비워둘 시 하단의 2가지 기본 경로로 설정됨", + "Output directory for images from extras tab": "부가기능 탭 저장 경로", + "Output directory for images; if empty, defaults to three directories below": "이미지 저장 경로 - 비워둘 시 하단의 3가지 기본 경로로 설정됨", + "Output directory for img2img grids": "이미지→이미지 그리드 저장 경로", + "Output directory for img2img images": "이미지→이미지 저장 경로", + "Output directory for txt2img grids": "텍스트→이미지 그리드 저장 경로", + "Output directory for txt2img images": "텍스트→이미지 저장 경로", "Override `Denoising strength` to 1?": "디노이즈 강도를 1로 적용할까요?", "Override `prompt` to the same value as `original prompt`?(and `negative prompt`)": "프롬프트 값을 기존 프롬프트와 동일하게 적용할까요?(네거티브 프롬프트 포함)", "Override `Sampling method` to Euler?(this method is built for it)": "샘플링 방법을 Euler로 적용할까요?(이 기능은 해당 샘플러를 위해 만들어져 있습니다)", @@ -279,20 +285,21 @@ "Overwrite Old Hypernetwork": "기존 하이퍼네트워크 덮어쓰기", "Page Index": "페이지 인덱스", "parameters": "설정값", - "Path to directory where to write outputs": "Path to directory where to write outputs", + "Path to directory where to write outputs": "결과물을 출력할 경로", "Path to directory with input images": "인풋 이미지가 있는 경로", - "Paths for saving": "Paths for saving", + "Paths for saving": "저장 경로", "Pixels to expand": "확장할 픽셀 수", "PLMS": "PLMS", "PNG Info": "PNG 정보", "Poor man's outpainting": "가난뱅이의 아웃페인팅", - "Preparing dataset from": "Preparing dataset from", + "Preload images at startup": "WebUI 가동 시 이미지 프리로드하기", + "Preparing dataset from": "준비된 데이터셋 경로 : ", "prepend": "앞에 삽입", "Preprocess": "전처리", "Preprocess images": "이미지 전처리", "Prev batch": "이전 묶음", "Prev Page": "이전 페이지", - "Prevent empty spots in grid (when set to autodetect)": "Prevent empty spots in grid (when set to autodetect)", + "Prevent empty spots in grid (when set to autodetect)": "(자동 감지 사용시)그리드에 빈칸이 생기는 것 방지하기", "Primary model (A)": "주 모델 (A)", "Process an image, use it as an input, repeat.": "이미지를 생성하고, 생성한 이미지를 다시 원본으로 사용하는 과정을 반복합니다.", "Process images in a directory on the same machine where the server is running.": "WebUI 서버가 돌아가고 있는 디바이스에 존재하는 디렉토리의 이미지들을 처리합니다.", @@ -307,26 +314,26 @@ "Prompts from file or textbox": "파일이나 텍스트박스로부터 프롬프트 불러오기", "Put variable parts at start of prompt": "변경되는 프롬프트를 앞에 위치시키기", "quad": "quad", - "Quality for saved jpeg images": "Quality for saved jpeg images", - "Quicksettings list": "Quicksettings list", + "Quality for saved jpeg images": "저장된 jpeg 이미지들의 품질", + "Quicksettings list": "빠른 설정 리스트", "R-ESRGAN 4x+ Anime6B": "R-ESRGAN 4x+ Anime6B", "Randomness": "랜덤성", "Read generation parameters from prompt or last generation if prompt is empty into user interface.": "클립보드에 복사된 정보로부터 설정값 읽어오기/프롬프트창이 비어있을경우 제일 최근 설정값 불러오기", "Read parameters (prompt, etc...) from txt2img tab when making previews": "프리뷰 이미지 생성 시 텍스트→이미지 탭에서 설정값(프롬프트 등) 읽어오기", "Recommended settings: Sampling Steps: 80-100, Sampler: Euler a, Denoising strength: 0.8": "추천 설정값 - 샘플링 스텝 수 : 80-100 , 샘플러 : Euler a, 디노이즈 강도 : 0.8", - "Reload custom script bodies (No ui updates, No restart)": "Reload custom script bodies (No ui updates, No restart)", + "Reload custom script bodies (No ui updates, No restart)": "커스텀 스크립트 리로드하기(UI 업데이트 없음, 재시작 없음)", "relu": "relu", "Renew Page": "Renew Page", - "Request browser notifications": "Request browser notifications", + "Request browser notifications": "브라우저 알림 권한 요청", "Resize": "리사이징 배수", "Resize and fill": "리사이징 후 채우기", "Resize image to target resolution. Unless height and width match, you will get incorrect aspect ratio.": "설정된 해상도로 이미지 리사이징을 진행합니다. 원본과 가로/세로 길이가 일치하지 않을 경우, 부정확한 화면비의 이미지를 얻게 됩니다.", - "Resize mode": "Resize mode", + "Resize mode": "리사이징 모드", "Resize seed from height": "시드 리사이징 가로길이", "Resize seed from width": "시드 리사이징 세로길이", "Resize the image so that entirety of image is inside target resolution. Fill empty space with image's colors.": "이미지 전체가 설정된 해상도 내부에 들어가게 리사이징을 진행합니다. 빈 공간은 이미지의 색상으로 채웁니다.", "Resize the image so that entirety of target resolution is filled with the image. Crop parts that stick out.": "설정된 해상도 전체가 이미지로 가득차게 리사이징을 진행합니다. 튀어나오는 부분은 잘라냅니다.", - "Restart Gradio and Refresh components (Custom Scripts, ui.py, js and css only)": "Restart Gradio and Refresh components (Custom Scripts, ui.py, js and css only)", + "Restart Gradio and Refresh components (Custom Scripts, ui.py, js and css only)": "Gradio를 재시작하고 컴포넌트 새로고침하기 (커스텀 스크립트, ui.py, js, css만 해당됨)", "Restore faces": "얼굴 보정", "Restore low quality faces using GFPGAN neural network": "GFPGAN 신경망을 이용해 저품질의 얼굴을 보정합니다.", "Result = A * (1 - M) + B * M": "결과물 = A * (1 - M) + B * M", @@ -335,23 +342,23 @@ "right": "오른쪽", "Run": "가동", "Sampler": "샘플러", - "Sampler parameters": "Sampler parameters", + "Sampler parameters": "샘플러 설정값", "Sampling method": "샘플링 방법", "Sampling Steps": "샘플링 스텝 수", "Save": "저장", "Save a copy of embedding to log directory every N steps, 0 to disable": "N스텝마다 로그 경로에 임베딩을 저장합니다, 비활성화하려면 0으로 설정하십시오.", - "Save a copy of image before applying color correction to img2img results": "Save a copy of image before applying color correction to img2img results", - "Save a copy of image before doing face restoration.": "Save a copy of image before doing face restoration.", - "Save an csv containing the loss to log directory every N steps, 0 to disable": "Save an csv containing the loss to log directory every N steps, 0 to disable", + "Save a copy of image before applying color correction to img2img results": "이미지→이미지 결과물에 색상 보정을 진행하기 전 이미지의 복사본을 저장하기", + "Save a copy of image before doing face restoration.": "얼굴 보정을 진행하기 전 이미지의 복사본을 저장하기", + "Save an csv containing the loss to log directory every N steps, 0 to disable": "N스텝마다 로그 경로에 손실(Loss)을 포함하는 csv 파일을 저장합니다, 비활성화하려면 0으로 설정하십시오.", "Save an image to log directory every N steps, 0 to disable": "N스텝마다 로그 경로에 이미지를 저장합니다, 비활성화하려면 0으로 설정하십시오.", "Save as float16": "float16으로 저장", - "Save grids to a subdirectory": "Save grids to a subdirectory", - "Save images to a subdirectory": "Save images to a subdirectory", + "Save grids to a subdirectory": "그리드 이미지를 하위 디렉토리에 저장하기", + "Save images to a subdirectory": "이미지를 하위 디렉토리에 저장하기", "Save images with embedding in PNG chunks": "PNG 청크로 이미지에 임베딩을 포함시켜 저장", "Save style": "스타일 저장", - "Save text information about generation parameters as chunks to png files": "Save text information about generation parameters as chunks to png files", - "Saving images/grids": "Saving images/grids", - "Saving to a directory": "Saving to a directory", + "Save text information about generation parameters as chunks to png files": "이미지 생성 설정값을 PNG 청크에 텍스트로 저장", + "Saving images/grids": "이미지/그리드 저장", + "Saving to a directory": "디렉토리에 저장", "Scale by": "스케일링 배수 지정", "Scale to": "스케일링 사이즈 지정", "Script": "스크립트", @@ -363,6 +370,7 @@ "Seed": "시드", "Seed of a different picture to be mixed into the generation.": "결과물에 섞일 다른 그림의 시드", "Select activation function of hypernetwork": "하이퍼네트워크 활성화 함수 선택", + "Select which Real-ESRGAN models to show in the web UI. (Requires restart)": "WebUI에 표시할 Real-ESRGAN 모델을 선택하십시오. (재시작 필요)", "Send to extras": "부가기능으로 전송", "Send to img2img": "이미지→이미지로 전송", "Send to inpaint": "인페인트로 전송", @@ -374,29 +382,30 @@ "set_index": "set_index", "Settings": "설정", "should be 2 or lower.": "이 2 이하여야 합니다.", - "Show generation progress in window title.": "Show generation progress in window title.", - "Show grid in results for web": "Show grid in results for web", - "Show image creation progress every N sampling steps. Set 0 to disable.": "Show image creation progress every N sampling steps. Set 0 to disable.", - "Show images zoomed in by default in full page image viewer": "Show images zoomed in by default in full page image viewer", - "Show progressbar": "Show progressbar", + "Show generation progress in window title.": "창 타이틀에 생성 진행도 보여주기", + "Show grid in results for web": "웹에서 결과창에 그리드 보여주기", + "Show image creation progress every N sampling steps. Set 0 to disable.": "N번째 샘플링 스텝마다 이미지 생성 과정 보이기 - 비활성화하려면 0으로 설정", + "Show images zoomed in by default in full page image viewer": "전체 페이지 이미지 뷰어에서 기본값으로 이미지 확대해서 보여주기", + "Show progressbar": "프로그레스 바 보이기", "Show result images": "이미지 결과 보이기", "Show Textbox": "텍스트박스 보이기", + "Show previews of all images generated in a batch as a grid": "배치에서 생성된 모든 이미지의 미리보기를 그리드 형식으로 보여주기", "Sigma adjustment for finding noise for image": "이미지 노이즈를 찾기 위해 시그마 조정", "Sigma Churn": "시그마 섞기", - "sigma churn": "sigma churn", + "sigma churn": "시그마 섞기", "Sigma max": "시그마 최댓값", "Sigma min": "시그마 최솟값", "Sigma noise": "시그마 노이즈", - "sigma noise": "sigma noise", - "sigma tmin": "sigma tmin", + "sigma noise": "시그마 노이즈", + "sigma tmin": "시그마 tmin", "Single Image": "단일 이미지", "Skip": "건너뛰기", "Slerp angle": "구면 선형 보간 각도", "Slerp interpolation": "구면 선형 보간", "Source": "원본", "Source directory": "원본 경로", - "Split image threshold": "Split image threshold", - "Split image overlap ratio": "Split image overlap ratio", + "Split image threshold": "이미지 분할 임계값", + "Split image overlap ratio": "이미지 분할 겹침 비율", "Split oversized images": "사이즈가 큰 이미지 분할하기", "Stable Diffusion": "Stable Diffusion", "Stable Diffusion checkpoint": "Stable Diffusion 체크포인트", @@ -407,20 +416,20 @@ "Stop processing images and return any results accumulated so far.": "이미지 생성을 중단하고 지금까지 진행된 결과물 출력", "Style 1": "스타일 1", "Style 2": "스타일 2", - "Style to apply; styles have components for both positive and negative prompts and apply to both": "Style to apply; styles have components for both positive and negative prompts and apply to both", + "Style to apply; styles have components for both positive and negative prompts and apply to both": "적용할 스타일 - 스타일은 긍정/부정 프롬프트 모두에 대한 설정값을 가지고 있고 양쪽 모두에 적용 가능합니다.", "SwinIR 4x": "SwinIR 4x", "Sys VRAM:": "시스템 VRAM : ", - "System": "System", + "System": "시스템", "Tertiary model (C)": "3차 모델 (C)", - "Textbox": "Textbox", - "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.": "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.", - "This string will be used to join split words into a single line if the option above is enabled.": "This string will be used to join split words into a single line if the option above is enabled.", + "Textbox": "텍스트박스", + "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.": "이 정규표현식은 파일명으로부터 단어를 추출하는 데 사용됩니다. 추출된 단어들은 하단의 설정을 이용해 라벨 텍스트로 변환되어 훈련에 사용됩니다. 파일명 텍스트를 유지하려면 비워두십시오.", + "This string will be used to join split words into a single line if the option above is enabled.": "이 문자열은 상단 설정이 활성화되어있을 때 분리된 단어들을 한 줄로 합치는 데 사용됩니다.", "This text is used to rotate the feature space of the imgs embs": "이 텍스트는 이미지 임베딩의 특징 공간을 회전하는 데 사용됩니다.", "Tile overlap": "타일 겹침", - "Tile overlap, in pixels for ESRGAN upscalers. Low values = visible seam.": "Tile overlap, in pixels for ESRGAN upscalers. Low values = visible seam.", - "Tile overlap, in pixels for SwinIR. Low values = visible seam.": "Tile overlap, in pixels for SwinIR. Low values = visible seam.", - "Tile size for all SwinIR.": "Tile size for all SwinIR.", - "Tile size for ESRGAN upscalers. 0 = no tiling.": "Tile size for ESRGAN upscalers. 0 = no tiling.", + "Tile overlap, in pixels for ESRGAN upscalers. Low values = visible seam.": "ESRGAN 업스케일러들의 타일 중첩 수치, 픽셀 단위. 낮은 값 = 눈에 띄는 이음매.", + "Tile overlap, in pixels for SwinIR. Low values = visible seam.": "SwinIR의 타일 중첩 수치, 픽셀 단위. 낮은 값 = 눈에 띄는 이음매.", + "Tile size for all SwinIR.": "SwinIR의 타일 사이즈.", + "Tile size for ESRGAN upscalers. 0 = no tiling.": "ESRGAN 업스케일러들의 타일 사이즈. 0 = 타일링 없음.", "Tiling": "타일링", "Time taken:": "소요 시간 : ", "Torch active/reserved:": "활성화/예약된 Torch 양 : ", @@ -429,51 +438,60 @@ "Train an embedding or Hypernetwork; you must specify a directory with a set of 1:1 ratio images": "임베딩이나 하이퍼네트워크를 훈련시킵니다. 1:1 비율의 이미지가 있는 경로를 지정해야 합니다.", "Train Embedding": "임베딩 훈련", "Train Hypernetwork": "하이퍼네트워크 훈련", - "Training": "Training", + "Training": "훈련", "txt2img": "텍스트→이미지", - "txt2img history": "txt2img history", + "txt2img history": "텍스트→이미지 기록", "uniform": "uniform", "up": "위쪽", "Upload mask": "마스크 업로드하기", - "Upscale latent space image when doing hires. fix": "Upscale latent space image when doing hires. fix", + "Upscale latent space image when doing hires. fix": "고해상도 보정 사용시 잠재 공간 이미지 업스케일하기", "Upscale masked region to target resolution, do inpainting, downscale back and paste into original image": "마스크된 부분을 설정된 해상도로 업스케일하고, 인페인팅을 진행한 뒤, 다시 다운스케일 후 원본 이미지에 붙여넣습니다.", "Upscaler": "업스케일러", "Upscaler 1": "업스케일러 1", "Upscaler 2": "업스케일러 2", "Upscaler 2 visibility": "업스케일러 2 가시성", - "Upscaler for img2img": "Upscaler for img2img", - "Upscaling": "Upscaling", + "Upscaler for img2img": "이미지→이미지 업스케일러", + "Upscaling": "업스케일링", "Use a two step process to partially create an image at smaller resolution, upscale, and then improve details in it without changing composition": "저해상도 이미지를 1차적으로 생성 후 업스케일을 진행하여, 이미지의 전체적인 구성을 바꾸지 않고 세부적인 디테일을 향상시킵니다.", "Use an empty output directory to save pictures normally instead of writing to the output directory.": "저장 경로를 비워두면 기본 저장 폴더에 이미지들이 저장됩니다.", "Use BLIP for caption": "캡션에 BLIP 사용", "Use deepbooru for caption": "캡션에 deepbooru 사용", "Use dropout": "드롭아웃 사용", - "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.": "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.", - "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.": "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.", - "Use old emphasis implementation. Can be useful to reproduce old seeds.": "Use old emphasis implementation. Can be useful to reproduce old seeds.", - "Use original name for output filename during batch process in extras tab": "Use original name for output filename during batch process in extras tab", - "use spaces for tags in deepbooru": "use spaces for tags in deepbooru", - "User interface": "User interface", + "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.": "다음 태그들을 사용해 이미지 파일명 형식을 결정하세요 : [steps], [cfg], [prompt], [prompt_no_styles], [prompt_spaces], [width], [height], [styles], [sampler], [seed], [model_hash], [prompt_words], [date], [datetime], [job_timestamp]. 비워두면 기본값으로 설정됩니다.", + "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.": "다음 태그들을 사용해 이미지와 그리드의 하위 디렉토리명의 형식을 결정하세요 : [steps], [cfg], [prompt], [prompt_no_styles], [prompt_spaces], [width], [height], [styles], [sampler], [seed], [model_hash], [prompt_words], [date], [datetime], [job_timestamp]. 비워두면 기본값으로 설정됩니다.", + "Use old emphasis implementation. Can be useful to reproduce old seeds.": "옛 방식의 강조 구현을 사용합니다. 옛 시드를 재현하는 데 효과적일 수 있습니다.", + "Use original name for output filename during batch process in extras tab": "부가기능 탭에서 이미지를 여러장 처리 시 결과물 파일명에 기존 파일명 사용하기", + "use spaces for tags in deepbooru": "deepbooru에서 태그에 공백 사용", + "User interface": "사용자 인터페이스", "Var. seed": "바리에이션 시드", "Var. strength": "바리에이션 강도", "Variation seed": "바리에이션 시드", "Variation strength": "바리에이션 강도", "view": "api 보이기", - "VRAM usage polls per second during generation. Set to 0 to disable.": "VRAM usage polls per second during generation. Set to 0 to disable.", + "VRAM usage polls per second during generation. Set to 0 to disable.": "생성 도중 초당 VRAM 사용량 폴링 수. 비활성화하려면 0으로 설정하십시오.", "Weighted sum": "가중 합", "What to put inside the masked area before processing it with Stable Diffusion.": "Stable Diffusion으로 이미지를 생성하기 전 마스크된 부분에 무엇을 채울지 결정하는 설정값", - "When reading generation parameters from text into UI (from PNG info or pasted text), do not change the selected model/checkpoint.": "When reading generation parameters from text into UI (from PNG info or pasted text), do not change the selected model/checkpoint.", - "When using \"Save\" button, save images to a subdirectory": "When using \"Save\" button, save images to a subdirectory", - "When using 'Save' button, only save a single selected image": "When using 'Save' button, only save a single selected image", + "When reading generation parameters from text into UI (from PNG info or pasted text), do not change the selected model/checkpoint.": "PNG 정보나 붙여넣은 텍스트로부터 생성 설정값을 읽어올 때, 선택된 모델/체크포인트는 변경하지 않기.", + "When using \"Save\" button, save images to a subdirectory": "저장 버튼 사용시, 이미지를 하위 디렉토리에 저장하기", + "When using 'Save' button, only save a single selected image": "저장 버튼 사용시, 선택된 이미지 1개만 저장하기", "Which algorithm to use to produce the image": "이미지를 생성할 때 사용할 알고리즘", "Width": "가로", "wiki": " 위키", "Will upscale the image to twice the dimensions; use width and height sliders to set tile size": "이미지를 설정된 사이즈의 2배로 업스케일합니다. 상단의 가로와 세로 슬라이더를 이용해 타일 사이즈를 지정하세요.", - "With img2img, do exactly the amount of steps the slider specifies (normally you'd do less with less denoising).": "With img2img, do exactly the amount of steps the slider specifies (normally you'd do less with less denoising).", + "With img2img, do exactly the amount of steps the slider specifies (normally you'd do less with less denoising).": "이미지→이미지 진행 시, 슬라이더로 설정한 스텝 수를 정확히 실행하기 (일반적으로 디노이즈 강도가 낮을수록 실제 설정된 스텝 수보다 적게 진행됨)", "Write image to a directory (default - log/images) and generation parameters into csv file.": "이미지를 경로에 저장하고, 설정값들을 csv 파일로 저장합니다. (기본 경로 - log/images)", "X type": "X축", "X values": "X 설정값", "X/Y plot": "X/Y 플롯", "Y type": "Y축", - "Y values": "Y 설정값" + "Y values": "Y 설정값", + "step1 min/max": "스텝1 최소/최대", + "step2 min/max": "스텝2 최소/최대", + "step count": "스텝 변화 횟수", + "cfg1 min/max": "CFG1 최소/최대", + "cfg2 min/max": "CFG2 최소/최대", + "cfg count": "CFG 변화 횟수", + "x/y change": "X/Y축 변경", + "Random": "랜덤", + "Random grid": "랜덤 그리드" } \ No newline at end of file From 2ce44fc48e3ee6c73042ea83748772fe3eb45b1e Mon Sep 17 00:00:00 2001 From: Dynamic Date: Mon, 24 Oct 2022 04:38:16 +0900 Subject: [PATCH 16/73] Finalize ko_KR.json --- localizations/ko_KR.json | 44 ++++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/localizations/ko_KR.json b/localizations/ko_KR.json index 6889de46..ab12c37e 100644 --- a/localizations/ko_KR.json +++ b/localizations/ko_KR.json @@ -5,10 +5,10 @@ "❮": "❮", "❯": "❯", "⤡": "⤡", - " images in this directory. Loaded ": "개의 이미지가 이 경로에 존재합니다. ", " images during ": "개의 이미지를 불러왔고, 생성 기간은 ", - ", divided into ": "입니다. ", + " images in this directory. Loaded ": "개의 이미지가 이 경로에 존재합니다. ", " pages": "페이지로 나뉘어 표시합니다.", + ", divided into ": "입니다. ", "1st and last digit must be 1. ex:'1, 2, 1'": "1st and last digit must be 1. ex:'1, 2, 1'", "[wiki]": " [위키] 참조", "A directory on the same machine where the server is running.": "WebUI 서버가 돌아가고 있는 디바이스에 존재하는 디렉토리를 선택해 주세요.", @@ -43,7 +43,10 @@ "BSRGAN 4x": "BSRGAN 4x", "built with gradio": "gradio로 제작되었습니다", "Cancel generate forever": "반복 생성 취소", + "cfg count": "CFG 변화 횟수", "CFG Scale": "CFG 스케일", + "cfg1 min/max": "CFG1 최소/최대", + "cfg2 min/max": "CFG2 최소/최대", "Check progress": "진행도 체크", "Check progress (first)": "진행도 체크 (처음)", "checkpoint": " 체크포인트 ", @@ -57,8 +60,8 @@ "CodeFormer visibility": "CodeFormer 가시성", "CodeFormer weight (0 = maximum effect, 1 = minimum effect)": "CodeFormer 가중치 (0 = 최대 효과, 1 = 최소 효과)", "CodeFormer weight parameter; 0 = maximum effect; 1 = minimum effect": "CodeFormer 가중치 설정값 (0 = 최대 효과, 1 = 최소 효과)", - "Color variation": "색깔 다양성", "Collect": "즐겨찾기", + "Color variation": "색깔 다양성", "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.": "생성된 이미지마다 생성 설정값을 담은 텍스트 파일 생성하기", @@ -89,8 +92,8 @@ "Do not save grids consisting of one picture": "이미지가 1개뿐인 그리드는 저장하지 않기", "Do not show any images in results for web": "웹에서 결과창에 아무 이미지도 보여주지 않기", "down": "아래쪽", - "Download localization template": "현지화 템플릿 다운로드", "Download": "다운로드", + "Download localization template": "현지화 템플릿 다운로드", "DPM adaptive": "DPM adaptive", "DPM fast": "DPM fast", "DPM2": "DPM2", @@ -121,6 +124,7 @@ "Existing Caption txt Action": "이미 존재하는 캡션 텍스트 처리", "Extra": "고급", "Extras": "부가기능", + "extras": "부가기능", "extras history": "부가기능 기록", "Face restoration": "얼굴 보정", "Face restoration model": "얼굴 보정 모델", @@ -155,10 +159,6 @@ "Hide samplers in user interface (requires restart)": "사용자 인터페이스에서 숨길 샘플러 선택(재시작 필요)", "Highres. fix": "고해상도 보정", "History": "기록", - "Image Browser": "이미지 브라우저", - "Images Browser": "이미지 브라우저", - "Images directory": "이미지 경로", - "extras": "부가기능", "how fast should the training go. Low values will take longer to train, high values may fail to converge (not generate accurate results) and/or may break the embedding (This has happened if you see Loss: nan in the training info textbox. If this happens, you need to manually restore your embedding from an older not-broken backup).\n\nYou can set a single numeric value, or multiple learning rates using the syntax:\n\n rate_1:max_steps_1, rate_2:max_steps_2, ...\n\nEG: 0.005:100, 1e-3:1000, 1e-5\n\nWill train with rate of 0.005 for first 100 steps, then 1e-3 until 1000 steps, then 1e-5 for all remaining steps.": "훈련이 얼마나 빨리 이루어질지 정하는 값입니다. 값이 낮을수록 훈련 시간이 길어지고, 높은 값일수록 정확한 결과를 내는 데 실패하고 임베딩을 망가뜨릴 수 있습니다(임베딩이 망가진 경우에는 훈련 정보 텍스트박스에 손실(Loss) : nan 이라고 출력되게 됩니다. 이 경우에는 망가지지 않은 이전 백업본을 불러와야 합니다).\n\n학습률은 하나의 값으로 설정할 수도 있고, 다음 문법을 사용해 여러 값을 사용할 수도 있습니다 :\n\n학습률_1:최대 스텝수_1, 학습률_2:최대 스텝수_2, ...\n\n예 : 0.005:100, 1e-3:1000, 1e-5\n\n예의 설정값은 첫 100스텝동안 0.005의 학습률로, 그 이후 1000스텝까지는 1e-3으로, 남은 스텝은 1e-5로 훈련하게 됩니다.", "How many batches of images to create": "생성할 이미지 배치 수", "How many image to create in a single batch": "한 배치당 이미지 수", @@ -175,8 +175,11 @@ "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.": "이 값이 0이 아니라면, 시드에 해당 값이 더해지고, Eta가 있는 샘플러를 사용할 때 노이즈의 RNG 조정을 위해 해당 값이 사용됩니다. 이 설정으로 더 다양한 이미지를 생성하거나, 잘 알고 계시다면 특정 소프트웨어의 결과값을 재현할 수도 있습니다.", "ignore": "무시", "Image": "이미지", + "Image Browser": "이미지 브라우저", "Image for img2img": "Image for img2img", "Image for inpainting with mask": "마스크로 인페인팅할 이미지", + "Images Browser": "이미지 브라우저", + "Images directory": "이미지 경로", "Images filename pattern": "이미지 파일명 패턴", "img2img": "이미지→이미지", "img2img alternative test": "이미지→이미지 대체버전 테스트", @@ -242,6 +245,7 @@ "Masking mode": "마스킹 모드", "Max prompt words for [prompt_words] pattern": "[prompt_words] 패턴의 최대 프롬프트 단어 수", "Max steps": "최대 스텝 수", + "Minimum number of pages per load": "한번 불러올 때마다 불러올 최소 페이지 수", "Modules": "모듈", "Move face restoration model from VRAM into RAM after processing": "처리가 완료되면 얼굴 보정 모델을 VRAM에서 RAM으로 옮기기", "Move VAE and CLIP to RAM when training hypernetwork. Saves VRAM.": "하이퍼네트워크 훈련 진행 시 VAE와 CLIP을 RAM으로 옮기기. VRAM이 절약됩니다.", @@ -254,10 +258,9 @@ "None": "없음", "Nothing": "없음", "Nothing found in the image.": "Nothing found in the image.", + "Number of grids in each row": "각 세로줄마다 표시될 그리드 수", "number of images to delete consecutively next": "연속적으로 삭제할 이미지 수", "Number of pictures displayed on each page": "각 페이지에 표시될 이미지 수", - "Minimum number of pages per load": "한번 불러올 때마다 불러올 최소 페이지 수", - "Number of grids in each row": "각 세로줄마다 표시될 그리드 수", "Number of repeats for a single input image per epoch; used only for displaying epoch number": "세대(Epoch)당 단일 인풋 이미지의 반복 횟수 - 세대(Epoch) 숫자를 표시하는 데에만 사용됩니다. ", "Number of vectors per token": "토큰별 벡터 수", "Open for Clip Aesthetic!": "클립 스타일 기능을 활성화하려면 클릭!", @@ -317,6 +320,8 @@ "Quality for saved jpeg images": "저장된 jpeg 이미지들의 품질", "Quicksettings list": "빠른 설정 리스트", "R-ESRGAN 4x+ Anime6B": "R-ESRGAN 4x+ Anime6B", + "Random": "랜덤", + "Random grid": "랜덤 그리드", "Randomness": "랜덤성", "Read generation parameters from prompt or last generation if prompt is empty into user interface.": "클립보드에 복사된 정보로부터 설정값 읽어오기/프롬프트창이 비어있을경우 제일 최근 설정값 불러오기", "Read parameters (prompt, etc...) from txt2img tab when making previews": "프리뷰 이미지 생성 시 텍스트→이미지 탭에서 설정값(프롬프트 등) 읽어오기", @@ -386,10 +391,10 @@ "Show grid in results for web": "웹에서 결과창에 그리드 보여주기", "Show image creation progress every N sampling steps. Set 0 to disable.": "N번째 샘플링 스텝마다 이미지 생성 과정 보이기 - 비활성화하려면 0으로 설정", "Show images zoomed in by default in full page image viewer": "전체 페이지 이미지 뷰어에서 기본값으로 이미지 확대해서 보여주기", + "Show previews of all images generated in a batch as a grid": "배치에서 생성된 모든 이미지의 미리보기를 그리드 형식으로 보여주기", "Show progressbar": "프로그레스 바 보이기", "Show result images": "이미지 결과 보이기", "Show Textbox": "텍스트박스 보이기", - "Show previews of all images generated in a batch as a grid": "배치에서 생성된 모든 이미지의 미리보기를 그리드 형식으로 보여주기", "Sigma adjustment for finding noise for image": "이미지 노이즈를 찾기 위해 시그마 조정", "Sigma Churn": "시그마 섞기", "sigma churn": "시그마 섞기", @@ -404,11 +409,14 @@ "Slerp interpolation": "구면 선형 보간", "Source": "원본", "Source directory": "원본 경로", - "Split image threshold": "이미지 분할 임계값", "Split image overlap ratio": "이미지 분할 겹침 비율", + "Split image threshold": "이미지 분할 임계값", "Split oversized images": "사이즈가 큰 이미지 분할하기", "Stable Diffusion": "Stable Diffusion", "Stable Diffusion checkpoint": "Stable Diffusion 체크포인트", + "step count": "스텝 변화 횟수", + "step1 min/max": "스텝1 최소/최대", + "step2 min/max": "스텝2 최소/최대", "Step:": "Step:", "Steps": "스텝 수", "Stop At last layers of CLIP model": "CLIP 모델의 n번째 레이어에서 멈추기", @@ -482,16 +490,8 @@ "Write image to a directory (default - log/images) and generation parameters into csv file.": "이미지를 경로에 저장하고, 설정값들을 csv 파일로 저장합니다. (기본 경로 - log/images)", "X type": "X축", "X values": "X 설정값", + "x/y change": "X/Y축 변경", "X/Y plot": "X/Y 플롯", "Y type": "Y축", - "Y values": "Y 설정값", - "step1 min/max": "스텝1 최소/최대", - "step2 min/max": "스텝2 최소/최대", - "step count": "스텝 변화 횟수", - "cfg1 min/max": "CFG1 최소/최대", - "cfg2 min/max": "CFG2 최소/최대", - "cfg count": "CFG 변화 횟수", - "x/y change": "X/Y축 변경", - "Random": "랜덤", - "Random grid": "랜덤 그리드" + "Y values": "Y 설정값" } \ No newline at end of file From 8d8d4d8a1b6401ef3c21d21d7784eb2e1f82d955 Mon Sep 17 00:00:00 2001 From: Dynamic Date: Mon, 24 Oct 2022 20:55:21 +0900 Subject: [PATCH 17/73] Update new strings in Settings tab --- localizations/ko_KR.json | 1 + 1 file changed, 1 insertion(+) diff --git a/localizations/ko_KR.json b/localizations/ko_KR.json index ab12c37e..eb614c35 100644 --- a/localizations/ko_KR.json +++ b/localizations/ko_KR.json @@ -21,6 +21,7 @@ "Add layer normalization": "레이어 정규화(normalization) 추가", "Add model hash to generation information": "생성 정보에 모델 해시 추가", "Add model name to generation information": "생성 정보에 모델 이름 추가", + "Add number to filename when saving": "이미지를 저장할 때 파일명에 숫자 추가하기", "Aesthetic imgs embedding": "스타일 이미지 임베딩", "Aesthetic learning rate": "스타일 학습 수", "Aesthetic steps": "스타일 스텝 수", From e595b41c9d8a596b9b29d9505324e9afca2f12b5 Mon Sep 17 00:00:00 2001 From: Dynamic Date: Tue, 25 Oct 2022 00:17:46 +0900 Subject: [PATCH 18/73] Update translations for renewed tooltip texts --- localizations/ko_KR.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/localizations/ko_KR.json b/localizations/ko_KR.json index eb614c35..52ba4020 100644 --- a/localizations/ko_KR.json +++ b/localizations/ko_KR.json @@ -466,8 +466,8 @@ "Use BLIP for caption": "캡션에 BLIP 사용", "Use deepbooru for caption": "캡션에 deepbooru 사용", "Use dropout": "드롭아웃 사용", - "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.": "다음 태그들을 사용해 이미지 파일명 형식을 결정하세요 : [steps], [cfg], [prompt], [prompt_no_styles], [prompt_spaces], [width], [height], [styles], [sampler], [seed], [model_hash], [prompt_words], [date], [datetime], [job_timestamp]. 비워두면 기본값으로 설정됩니다.", - "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.": "다음 태그들을 사용해 이미지와 그리드의 하위 디렉토리명의 형식을 결정하세요 : [steps], [cfg], [prompt], [prompt_no_styles], [prompt_spaces], [width], [height], [styles], [sampler], [seed], [model_hash], [prompt_words], [date], [datetime], [job_timestamp]. 비워두면 기본값으로 설정됩니다.", + "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