Unconditional ์ด๋ฏธ์ง ์์ฑ
[[open-in-colab]]
Unconditional ์ด๋ฏธ์ง ์์ฑ์ ๋น๊ต์ ๊ฐ๋จํ ์์ ์ ๋๋ค. ๋ชจ๋ธ์ด ํ ์คํธ๋ ์ด๋ฏธ์ง์ ๊ฐ์ ์ถ๊ฐ ์กฐ๊ฑด ์์ด ์ด๋ฏธ ํ์ต๋ ํ์ต ๋ฐ์ดํฐ์ ์ ์ฌํ ์ด๋ฏธ์ง๋ง ์์ฑํฉ๋๋ค.
['DiffusionPipeline']์ ์ถ๋ก ์ ์ํด ๋ฏธ๋ฆฌ ํ์ต๋ diffusion ์์คํ ์ ์ฌ์ฉํ๋ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ ๋๋ค.
๋จผ์ ['DiffusionPipeline']์ ์ธ์คํด์ค๋ฅผ ์์ฑํ๊ณ ๋ค์ด๋ก๋ํ ํ์ดํ๋ผ์ธ์ ์ฒดํฌํฌ์ธํธ๋ฅผ ์ง์ ํฉ๋๋ค. ํ๋ธ์ ๐งจ diffusion ์ฒดํฌํฌ์ธํธ ์ค ํ๋๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค(์ฌ์ฉํ ์ฒดํฌํฌ์ธํธ๋ ๋๋น ์ด๋ฏธ์ง๋ฅผ ์์ฑํฉ๋๋ค).
๐ก ๋๋ง์ unconditional ์ด๋ฏธ์ง ์์ฑ ๋ชจ๋ธ์ ํ์ต์ํค๊ณ ์ถ์ผ์ ๊ฐ์? ํ์ต ๊ฐ์ด๋๋ฅผ ์ดํด๋ณด๊ณ ๋๋ง์ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์ธ์.
์ด ๊ฐ์ด๋์์๋ unconditional ์ด๋ฏธ์ง ์์ฑ์ ['DiffusionPipeline']๊ณผ DDPM์ ์ฌ์ฉํฉ๋๋ค:
>>> from diffusers import DiffusionPipeline
>>> generator = DiffusionPipeline.from_pretrained("anton-l/ddpm-butterflies-128")
[diffusion ํ์ดํ๋ผ์ธ]์ ๋ชจ๋ ๋ชจ๋ธ๋ง, ํ ํฐํ, ์ค์ผ์ค๋ง ๊ตฌ์ฑ ์์๋ฅผ ๋ค์ด๋ก๋ํ๊ณ ์บ์ํฉ๋๋ค. ์ด ๋ชจ๋ธ์ ์ฝ 14์ต ๊ฐ์ ํ๋ผ๋ฏธํฐ๋ก ๊ตฌ์ฑ๋์ด ์๊ธฐ ๋๋ฌธ์ GPU์์ ์คํํ ๊ฒ์ ๊ฐ๋ ฅํ ๊ถ์ฅํฉ๋๋ค. PyTorch์์์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ ๋๋ ์ดํฐ ๊ฐ์ฒด๋ฅผ GPU๋ก ์ฎ๊ธธ ์ ์์ต๋๋ค:
>>> generator.to("cuda")
์ด์ ์ ๋๋ ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ ์ ์์ต๋๋ค:
>>> image = generator().images[0]
์ถ๋ ฅ์ ๊ธฐ๋ณธ์ ์ผ๋ก PIL.Image ๊ฐ์ฒด๋ก ๊ฐ์ธ์ง๋๋ค.
๋ค์์ ํธ์ถํ์ฌ ์ด๋ฏธ์ง๋ฅผ ์ ์ฅํ ์ ์์ต๋๋ค:
>>> image.save("generated_image.png")
์๋ ์คํ์ด์ค(๋ฐ๋ชจ ๋งํฌ)๋ฅผ ์ด์ฉํด ๋ณด๊ณ , ์ถ๋ก ๋จ๊ณ์ ๋งค๊ฐ๋ณ์๋ฅผ ์์ ๋กญ๊ฒ ์กฐ์ ํ์ฌ ์ด๋ฏธ์ง ํ์ง์ ์ด๋ค ์ํฅ์ ๋ฏธ์น๋์ง ํ์ธํด ๋ณด์ธ์!