Buckets:

hf-doc-build/doc / diffusers /main /tr /training /adapt_a_model.md
mishig's picture
|
download
raw
2.97 kB

Bir modeli yeni bir göreve uyarlayın

Birçok difüzyon sistemi aynı bileşenleri paylaşır; bu da bir görev için önceden eğitilmiş bir modelin tamamen farklı bir göreve uyarlanmasını sağlar.

Bu kılavuz, önceden eğitilmiş bir UNet2DConditionModel'in mimarisini başlatıp değiştirerek, önceden eğitilmiş bir metinden görüntüye modelini inpainting için nasıl uyarlayacağınızı gösterecektir.

UNet2DConditionModel parametrelerini yapılandır

Varsayılan olarak bir UNet2DConditionModel, girdi örneğinde 4 kanal kabul eder. Örneğin, stable-diffusion-v1-5/stable-diffusion-v1-5 gibi önceden eğitilmiş bir metinden görüntüye model yükleyin ve in_channels sayısına bakın:

from diffusers import StableDiffusionPipeline

pipeline = StableDiffusionPipeline.from_pretrained("stable-diffusion-v1-5/stable-diffusion-v1-5", use_safetensors=True)
pipeline.unet.config["in_channels"]
4

Inpainting, giriş örneğinde 9 kanal gerektirir. Bu değeri, stable-diffusion-v1-5/stable-diffusion-inpainting gibi önceden eğitilmiş bir inpainting modelinde kontrol edebilirsiniz:

from diffusers import StableDiffusionPipeline

pipeline = StableDiffusionPipeline.from_pretrained("stable-diffusion-v1-5/stable-diffusion-inpainting", use_safetensors=True)
pipeline.unet.config["in_channels"]
9

Metinden görüntüye modelinizi inpainting için uyarlamak için in_channels sayısını 4'ten 9'a değiştirmeniz gerekir.

Önceden eğitilmiş metinden görüntüye model ağırlıklarıyla bir UNet2DConditionModel başlatın ve in_channels değerini 9 olarak değiştirin. in_channels sayısını değiştirmek, şeklinin artık farklı olması nedeniyle boyut uyumsuzluğu hatasından kaçınmak için ignore_mismatched_sizes=True ve low_cpu_mem_usage=False parametrelerini ayarlamanızı gerektirir.

from diffusers import AutoModel

model_id = "stable-diffusion-v1-5/stable-diffusion-v1-5"
unet = AutoModel.from_pretrained(
    model_id,
    subfolder="unet",
    in_channels=9,
    low_cpu_mem_usage=False,
    ignore_mismatched_sizes=True,
    use_safetensors=True,
)

Metinden görüntüye modelin diğer bileşenlerinin önceden eğitilmiş ağırlıkları, checkpoint'lerinden başlatılır; ancak unet'in giriş kanal ağırlıkları (conv_in.weight) rastgele başlatılır. Modelin inpainting için ince ayarının yapılması önemlidir, aksi takdirde model gürültü döndürür.

Xet Storage Details

Size:
2.97 kB
·
Xet hash:
2256798af9c9ee26f01bd1d4cfb1c2abcc769fce487d7e5b9e5b2cbc2304c72e

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.