From bed40290a49b3644cfaa057075c8334f92b8af17 Mon Sep 17 00:00:00 2001 From: jungwoo Date: Mon, 19 Jun 2023 19:40:46 +0900 Subject: [PATCH 1/5] unconditional_image_generation first draft --- .../unconditional_image_generation.mdx | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 docs/source/ko/using-diffusers/unconditional_image_generation.mdx diff --git a/docs/source/ko/using-diffusers/unconditional_image_generation.mdx b/docs/source/ko/using-diffusers/unconditional_image_generation.mdx new file mode 100644 index 000000000000..87a6116712e2 --- /dev/null +++ b/docs/source/ko/using-diffusers/unconditional_image_generation.mdx @@ -0,0 +1,47 @@ + + +#무조건적 이미지 생성 +[[Colab에서 열기]] + +무조건적 이미지 생성은 비교적 간단한 작업입니다. 모델이 텍스트나 이미지와 같은 추가 조건 없이 이미 학습된 훈련 데이터와 유사한 이미지만 생성합니다. + +[디퓨전 파이프라인]은 추론을 위해 미리 훈련된 디퓨전 시스템을 사용하는 가장 쉬운 방법입니다. + +먼저 [디퓨전 파이프라인]의 인스턴스를 생성하고 다운로드할 파이프라인의 체크포인트를 지정합니다. 허브의 🧨 디퓨전 체크포인트 중 하나를 사용할 수 있습니다(사용할 체크포인트는 나비 이미지를 생성합니다). + + +💡 나만의 무조건적 이미지 생성 모델을 학습시키고 싶으신가요? 학습 가이드를 살펴보고 나만의 이미지를 생성하는 방법을 알아보세요. + + +이 가이드에서는 무조건적 이미지 생성에 [DiffusionPipeline]과 DDPM을 사용합니다: + +>>> from diffusers import DiffusionPipeline + +>>> generator = DiffusionPipeline.from_pretrained("anton-l/ddpm-butterflies-128") + +[디퓨전 파이프라인]은 모든 모델링, 토큰화, 스케줄링 구성 요소를 다운로드하고 캐시합니다. 이 모델은 약 14억 개의 파라미터로 구성되어 있기 때문에 GPU에서 실행할 것을 강력히 권장합니다. PyTorch에서와 마찬가지로 제너레이터 객체를 GPU로 옮길 수 있습니다: + +>>> generator.to("cuda") +이제 제너레이터를 사용하여 이미지를 생성할 수 있습니다: + +>>> image = generator().images[0] +출력은 기본적으로 PIL.Image 객체로 감싸집니다. + +호출하여 이미지를 저장할 수 있습니다: + +>>> image.save("generated_image.png") +아래 스페이스(데모 링크)를 이용해 보고, 추론 단계의 매개변수를 자유롭게 조절하여 이미지 품질에 어떤 영향을 미치는지 확인해 보세요! + + + + From 6fb0c14342e516baec26704dfd5e274a830e7fba Mon Sep 17 00:00:00 2001 From: jungwoo Date: Mon, 19 Jun 2023 20:41:24 +0900 Subject: [PATCH 2/5] reviese --- .../unconditional_image_generation.mdx | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/docs/source/ko/using-diffusers/unconditional_image_generation.mdx b/docs/source/ko/using-diffusers/unconditional_image_generation.mdx index 87a6116712e2..eec2a9e7cd7c 100644 --- a/docs/source/ko/using-diffusers/unconditional_image_generation.mdx +++ b/docs/source/ko/using-diffusers/unconditional_image_generation.mdx @@ -25,21 +25,25 @@ specific language governing permissions and limitations under the License. 이 가이드에서는 무조건적 이미지 생성에 [DiffusionPipeline]과 DDPM을 사용합니다: +```py >>> from diffusers import DiffusionPipeline >>> generator = DiffusionPipeline.from_pretrained("anton-l/ddpm-butterflies-128") - +``` [디퓨전 파이프라인]은 모든 모델링, 토큰화, 스케줄링 구성 요소를 다운로드하고 캐시합니다. 이 모델은 약 14억 개의 파라미터로 구성되어 있기 때문에 GPU에서 실행할 것을 강력히 권장합니다. PyTorch에서와 마찬가지로 제너레이터 객체를 GPU로 옮길 수 있습니다: - +```py >>> generator.to("cuda") +``` 이제 제너레이터를 사용하여 이미지를 생성할 수 있습니다: - +```py >>> image = generator().images[0] +``` 출력은 기본적으로 PIL.Image 객체로 감싸집니다. 호출하여 이미지를 저장할 수 있습니다: - +```py >>> image.save("generated_image.png") +``` 아래 스페이스(데모 링크)를 이용해 보고, 추론 단계의 매개변수를 자유롭게 조절하여 이미지 품질에 어떤 영향을 미치는지 확인해 보세요! From d35633c771267761e96a0bc4447d3ffbf5c7b10b Mon Sep 17 00:00:00 2001 From: jungwoo Date: Mon, 19 Jun 2023 20:44:48 +0900 Subject: [PATCH 3/5] revise-2 --- .../unconditional_image_generation.mdx | 33 +++++++++++-------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/docs/source/ko/using-diffusers/unconditional_image_generation.mdx b/docs/source/ko/using-diffusers/unconditional_image_generation.mdx index eec2a9e7cd7c..73d95e560584 100644 --- a/docs/source/ko/using-diffusers/unconditional_image_generation.mdx +++ b/docs/source/ko/using-diffusers/unconditional_image_generation.mdx @@ -10,7 +10,8 @@ an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express o specific language governing permissions and limitations under the License. --> -#무조건적 이미지 생성 +# 무조건적 이미지 생성 + [[Colab에서 열기]] 무조건적 이미지 생성은 비교적 간단한 작업입니다. 모델이 텍스트나 이미지와 같은 추가 조건 없이 이미 학습된 훈련 데이터와 유사한 이미지만 생성합니다. @@ -20,30 +21,34 @@ specific language governing permissions and limitations under the License. 먼저 [디퓨전 파이프라인]의 인스턴스를 생성하고 다운로드할 파이프라인의 체크포인트를 지정합니다. 허브의 🧨 디퓨전 체크포인트 중 하나를 사용할 수 있습니다(사용할 체크포인트는 나비 이미지를 생성합니다). + 💡 나만의 무조건적 이미지 생성 모델을 학습시키고 싶으신가요? 학습 가이드를 살펴보고 나만의 이미지를 생성하는 방법을 알아보세요. + + 이 가이드에서는 무조건적 이미지 생성에 [DiffusionPipeline]과 DDPM을 사용합니다: -```py ->>> from diffusers import DiffusionPipeline + ```py + >>> from diffusers import DiffusionPipeline ->>> generator = DiffusionPipeline.from_pretrained("anton-l/ddpm-butterflies-128") -``` + >>> generator = DiffusionPipeline.from_pretrained("anton-l/ddpm-butterflies-128") + ``` [디퓨전 파이프라인]은 모든 모델링, 토큰화, 스케줄링 구성 요소를 다운로드하고 캐시합니다. 이 모델은 약 14억 개의 파라미터로 구성되어 있기 때문에 GPU에서 실행할 것을 강력히 권장합니다. PyTorch에서와 마찬가지로 제너레이터 객체를 GPU로 옮길 수 있습니다: -```py ->>> generator.to("cuda") -``` + ```py + >>> generator.to("cuda") + ``` 이제 제너레이터를 사용하여 이미지를 생성할 수 있습니다: -```py ->>> image = generator().images[0] -``` + ```py + >>> image = generator().images[0] + ``` 출력은 기본적으로 PIL.Image 객체로 감싸집니다. 호출하여 이미지를 저장할 수 있습니다: -```py ->>> image.save("generated_image.png") -``` + ```py + >>> image.save("generated_image.png") + ``` + 아래 스페이스(데모 링크)를 이용해 보고, 추론 단계의 매개변수를 자유롭게 조절하여 이미지 품질에 어떤 영향을 미치는지 확인해 보세요! From f06feb47e1ba2b360c478bc2467dad3cd4822ece Mon Sep 17 00:00:00 2001 From: jungwoo Date: Sun, 2 Jul 2023 23:24:17 +0900 Subject: [PATCH 4/5] revised_all --- .../unconditional_image_generation.mdx | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/source/ko/using-diffusers/unconditional_image_generation.mdx b/docs/source/ko/using-diffusers/unconditional_image_generation.mdx index 73d95e560584..95a1613d6062 100644 --- a/docs/source/ko/using-diffusers/unconditional_image_generation.mdx +++ b/docs/source/ko/using-diffusers/unconditional_image_generation.mdx @@ -14,11 +14,11 @@ specific language governing permissions and limitations under the License. [[Colab에서 열기]] -무조건적 이미지 생성은 비교적 간단한 작업입니다. 모델이 텍스트나 이미지와 같은 추가 조건 없이 이미 학습된 훈련 데이터와 유사한 이미지만 생성합니다. +무조건적 이미지 생성은 비교적 간단한 작업입니다. 모델이 텍스트나 이미지와 같은 추가 조건 없이 이미 학습된 학습 데이터와 유사한 이미지만 생성합니다. -[디퓨전 파이프라인]은 추론을 위해 미리 훈련된 디퓨전 시스템을 사용하는 가장 쉬운 방법입니다. +['DiffusionPipeline']은 추론을 위해 미리 학습된 diffusion 시스템을 사용하는 가장 쉬운 방법입니다. -먼저 [디퓨전 파이프라인]의 인스턴스를 생성하고 다운로드할 파이프라인의 체크포인트를 지정합니다. 허브의 🧨 디퓨전 체크포인트 중 하나를 사용할 수 있습니다(사용할 체크포인트는 나비 이미지를 생성합니다). +먼저 ['DiffusionPipeline']의 인스턴스를 생성하고 다운로드할 파이프라인의 [체크포인트](https://huggingface.co/models?library=diffusers&sort=downloads)를 지정합니다. 허브의 🧨 diffusion 체크포인트 중 하나를 사용할 수 있습니다(사용할 체크포인트는 나비 이미지를 생성합니다). @@ -27,25 +27,25 @@ specific language governing permissions and limitations under the License. -이 가이드에서는 무조건적 이미지 생성에 [DiffusionPipeline]과 DDPM을 사용합니다: +이 가이드에서는 무조건적 이미지 생성에 ['DiffusionPipeline']과 [DDPM](https://arxiv.org/abs/2006.11239)을 사용합니다: - ```py + ```python >>> from diffusers import DiffusionPipeline >>> generator = DiffusionPipeline.from_pretrained("anton-l/ddpm-butterflies-128") ``` -[디퓨전 파이프라인]은 모든 모델링, 토큰화, 스케줄링 구성 요소를 다운로드하고 캐시합니다. 이 모델은 약 14억 개의 파라미터로 구성되어 있기 때문에 GPU에서 실행할 것을 강력히 권장합니다. PyTorch에서와 마찬가지로 제너레이터 객체를 GPU로 옮길 수 있습니다: - ```py +[diffusion 파이프라인]은 모든 모델링, 토큰화, 스케줄링 구성 요소를 다운로드하고 캐시합니다. 이 모델은 약 14억 개의 파라미터로 구성되어 있기 때문에 GPU에서 실행할 것을 강력히 권장합니다. PyTorch에서와 마찬가지로 제너레이터 객체를 GPU로 옮길 수 있습니다: + ```python >>> generator.to("cuda") ``` 이제 제너레이터를 사용하여 이미지를 생성할 수 있습니다: - ```py + ```python >>> image = generator().images[0] ``` -출력은 기본적으로 PIL.Image 객체로 감싸집니다. +출력은 기본적으로 [PIL.Image](https://pillow.readthedocs.io/en/stable/reference/Image.html?highlight=image#the-image-class) 객체로 감싸집니다. -호출하여 이미지를 저장할 수 있습니다: - ```py +다음을 호출하여 이미지를 저장할 수 있습니다: + ```python >>> image.save("generated_image.png") ``` From 67582796dce87f63b2bfa4e6c2244cea0174d979 Mon Sep 17 00:00:00 2001 From: jungwoo Date: Mon, 3 Jul 2023 00:45:00 +0900 Subject: [PATCH 5/5] =?UTF-8?q?img2img=20=ED=95=9C=EA=B8=80=EB=B2=88?= =?UTF-8?q?=EC=97=AD=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/source/ko/using-diffusers/img2img.mdx | 100 +++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 docs/source/ko/using-diffusers/img2img.mdx diff --git a/docs/source/ko/using-diffusers/img2img.mdx b/docs/source/ko/using-diffusers/img2img.mdx new file mode 100644 index 000000000000..764df6a72cf8 --- /dev/null +++ b/docs/source/ko/using-diffusers/img2img.mdx @@ -0,0 +1,100 @@ + + +# 텍스트 기반 image-to-image 생성 + +[[Colab에서 열기]] + +[`StableDiffusionImg2ImgPipeline`]을 사용하면 텍스트 프롬프트와 시작 이미지를 전달하여 새 이미지 생성의 조건을 지정할 수 있습니다. + +시작하기 전에 필요한 라이브러리가 모두 설치되어 있는지 확인하세요: + +```bash +!pip install diffusers transformers ftfy accelerate +``` + +[`nitrosocke/Ghibli-Diffusion`](https://huggingface.co/nitrosocke/Ghibli-Diffusion)과 같은 사전 학습된 stable diffusion 모델로 [`StableDiffusionImg2ImgPipeline`]을 생성하여 시작하세요. + + +```python +import torch +import requests +from PIL import Image +from io import BytesIO +from diffusers import StableDiffusionImg2ImgPipeline + +device = "cuda" +pipe = StableDiffusionImg2ImgPipeline.from_pretrained("nitrosocke/Ghibli-Diffusion", torch_dtype=torch.float16).to( + device +) +``` + +초기 이미지를 다운로드하고 사전 처리하여 파이프라인에 전달할 수 있습니다: + +```python +url = "https://raw.githubusercontent.com/CompVis/stable-diffusion/main/assets/stable-samples/img2img/sketch-mountains-input.jpg" + +response = requests.get(url) +init_image = Image.open(BytesIO(response.content)).convert("RGB") +init_image.thumbnail((768, 768)) +init_image +``` + +
+ +
+ + + +💡 `strength`는 입력 이미지에 추가되는 노이즈의 양을 제어하는 0.0에서 1.0 사이의 값입니다. 1.0에 가까운 값은 다양한 변형을 허용하지만 입력 이미지와 의미적으로 일치하지 않는 이미지를 생성합니다. + + + +프롬프트를 정의하고(지브리 스타일(Ghibli-style)에 맞게 조정된 이 체크포인트의 경우 프롬프트 앞에 `ghibli style` 토큰을 붙여야 합니다) 파이프라인을 실행합니다: + +```python +prompt = "ghibli style, a fantasy landscape with castles" +generator = torch.Generator(device=device).manual_seed(1024) +image = pipe(prompt=prompt, image=init_image, strength=0.75, guidance_scale=7.5, generator=generator).images[0] +image +``` + +
+ +
+ +다른 스케줄러로 실험하여 출력에 어떤 영향을 미치는지 확인할 수도 있습니다: + +```python +from diffusers import LMSDiscreteScheduler + +lms = LMSDiscreteScheduler.from_config(pipe.scheduler.config) +pipe.scheduler = lms +generator = torch.Generator(device=device).manual_seed(1024) +image = pipe(prompt=prompt, image=init_image, strength=0.75, guidance_scale=7.5, generator=generator).images[0] +image +``` + +
+ +
+ +아래 공백을 확인하고 `strength` 값을 다르게 설정하여 이미지를 생성해 보세요. `strength`를 낮게 설정하면 원본 이미지와 더 유사한 이미지가 생성되는 것을 확인할 수 있습니다. + +자유롭게 스케줄러를 [`LMSDiscreteScheduler`]로 전환하여 출력에 어떤 영향을 미치는지 확인해 보세요. + + \ No newline at end of file