Hub documentation

Hugging Face์—์„œ ๐Ÿงจ diffusers ์‚ฌ์šฉ

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Hugging Face์—์„œ ๐Ÿงจ diffusers ์‚ฌ์šฉ

Diffusers๋Š” ์ด๋ฏธ์ง€, ์˜ค๋””์˜ค, ์‹ฌ์ง€์–ด ๋ถ„์ž์˜ 3D ๊ตฌ์กฐ ์ƒ์„ฑ์„ ์œ„ํ•œ ์ตœ์ฒจ๋‹จ ์‚ฌ์ „ ํ•™์Šต diffusion model์„ ์œ„ํ•œ ํ•„์ˆ˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ ์ถ”๋ก  ์†”๋ฃจ์…˜์„ ์ฐพ๊ณ  ์žˆ๊ฑฐ๋‚˜ ์ž์ฒด diffusion model์„ ํ•™์Šตํ•˜๋ ค๋Š” ๊ฒฝ์šฐ, Diffusers๋Š” ์ด ๋‘ ๊ฐ€์ง€๋ฅผ ๋ชจ๋‘ ์ง€์›ํ•˜๋Š” ๋ชจ๋“ˆํ˜• ๋„๊ตฌ ์ƒ์ž์ž…๋‹ˆ๋‹ค. ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์„ฑ๋Šฅ๋ณด๋‹ค ์‚ฌ์šฉ์„ฑ, ๋‹จ์ˆœํ•จ๋ณด๋‹ค ์šฉ์ด์„ฑ, ์ถ”์ƒํ™”๋ณด๋‹ค ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ๊ฐ€๋Šฅ์„ฑ์„ ์ค‘์ ์œผ๋กœ ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Hub์—์„œ Diffusers ํƒ์ƒ‰

Hub์—๋Š” 10,000๊ฐœ ์ด์ƒ์˜ diffusers ํ˜ธํ™˜ ํŒŒ์ดํ”„๋ผ์ธ์ด ์žˆ์œผ๋ฉฐ, ๋ชจ๋ธ ํŽ˜์ด์ง€ ์™ผ์ชฝ์—์„œ ํ•„ํ„ฐ๋งํ•˜์—ฌ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Diffusion ์‹œ์Šคํ…œ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ํ…์ŠคํŠธ ์ธ์ฝ”๋”, UNet, VAE, ์Šค์ผ€์ค„๋Ÿฌ์™€ ๊ฐ™์€ ์—ฌ๋Ÿฌ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ๋…๋ฆฝ์ ์ธ ๋ชจ๋ธ์€ ์•„๋‹ˆ์ง€๋งŒ, ํŒŒ์ดํ”„๋ผ์ธ ์ถ”์ƒํ™”๋ฅผ ํ†ตํ•ด ์ถ”๋ก ์ด๋‚˜ ํ•™์Šต์— ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์–‘ํ•œ ์ž‘์—…์„ ์œ„ํ•œ diffusion ํŒŒ์ดํ”„๋ผ์ธ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

  • ์ž์—ฐ์–ด ํ…์ŠคํŠธ ํ”„๋กฌํ”„ํŠธ(text-to-image)์—์„œ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • ์ž์—ฐ์–ด ํ…์ŠคํŠธ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฏธ์ง€๋ฅผ ๋ณ€ํ™˜ํ•˜๋Š” ์ž‘์—…(image-to-image).
  • ์ž์—ฐ์–ด ์„ค๋ช…(text-to-video)์—์„œ ๋น„๋””์˜ค ์ƒ์„ฑ

๋ชจ๋ธ์„ ๋‹ค์šด๋กœ๋“œํ•˜์ง€ ์•Š๊ณ  ํ…Œ์ŠคํŠธํ•ด ๋ณด๋ ค๋ฉด ๋ธŒ๋ผ์šฐ์ € ์œ„์ ฏ์„ ํ†ตํ•ด ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ชจ๋ธ์„ ์ง์ ‘ ์‚ฌ์šฉํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Diffusers ์ €์žฅ์†Œ ํŒŒ์ผ

Diffusers ๋ชจ๋ธ ์ €์žฅ์†Œ์—๋Š” ์ด๋ฏธ์ง€๋ฅผ ์ธ์ฝ”๋”ฉํ•˜๊ณ  latents๋ฅผ ๋””์ฝ”๋”ฉํ•˜๋Š” ๋ณ€๋ถ„ ์˜คํ† ์ธ์ฝ”๋”, ํ…์ŠคํŠธ ์ธ์ฝ”๋”, transformer ๋ชจ๋ธ ๋“ฑ ํ•„์š”ํ•œ ๋ชจ๋“  ๋ชจ๋ธ ํ•˜์œ„ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ•˜์œ„ ๊ตฌ์„ฑ ์š”์†Œ๋Š” ์—ฌ๋Ÿฌ ํด๋”๋กœ ๊ตฌ์„ฑ๋œ ๋ ˆ์ด์•„์›ƒ์— ์ •๋ฆฌ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ ํ•˜์œ„ ํด๋”์—๋Š” Transformers ๋ชจ๋ธ๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ๊ฐ ๊ตฌ์„ฑ ์š”์†Œ์˜ ๊ฐ€์ค‘์น˜์™€ ๊ตฌ์„ฑ ํŒŒ์ผ(ํ•ด๋‹นํ•˜๋Š” ๊ฒฝ์šฐ)์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

Weights๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ safetensors ํŒŒ์ผ๋กœ ์ €์žฅ๋˜๋ฉฐ, configuration์€ ๋ชจ๋ธ ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‹ด์€ json ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.

๊ธฐ์กด ํŒŒ์ดํ”„๋ผ์ธ ์‚ฌ์šฉ

๋ชจ๋“  diffusers ํŒŒ์ดํ”„๋ผ์ธ์€ ํ•œ ์ค„๋งŒ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒ์„ฑ์„ ์‹คํ–‰ํ•˜๋ ค๋ฉด ํ•ญ์ƒ DiffusionPipeline์—์„œ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค:

from diffusers import DiffusionPipeline

pipeline = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0")

UNet๊ณผ ๊ฐ™์€ ํŠน์ • ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋กœ๋“œํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

from diffusers import UNet2DConditionModel

unet = UNet2DConditionModel.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0", subfolder="unet")

ํŒŒ์ดํ”„๋ผ์ธ ๋ฐ ๋ชจ๋ธ ๊ณต์œ 

๋ชจ๋“  pipeline ํด๋ž˜์Šค, ๋ชจ๋ธ ํด๋ž˜์Šค, ์Šค์ผ€์ค„๋Ÿฌ ํด๋ž˜์Šค๋Š” Hub์™€ ์™„์ „ํžˆ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค. ๊ตฌ์ฒด์ ์œผ๋กœ, from_pretrained() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Hub์—์„œ ์‰ฝ๊ฒŒ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, push_to_hub() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์™€ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ฌธ์„œ๋ฅผ ํ™•์ธํ•ด ์ฃผ์„ธ์š”.

์ถ”๊ฐ€ ๋ฆฌ์†Œ์Šค

Update on GitHub