# تكييف نموذج لمهمة جديدة

تشارك العديد من أنظمة الانتشار نفس المكونات، مما يتيح لك تكييف نموذج مُدرَّب مسبقًا لمهمة واحدة لتناسب مهمة مختلفة تمامًا.

ستُظهر لك هذه الدليل كيفية تكييف نموذج نص إلى صورة مُدرَّب مسبقًا لعملية inpainting من خلال تهيئة وتعديل بنية [UNet2DConditionModel](/docs/diffusers/v0.43.0/ar/api/models/unet2d-cond#diffusers.UNet2DConditionModel) المُدرَّب مسبقًا.

## تهيئة معلمات UNet2DConditionModel

يقبل [UNet2DConditionModel](/docs/diffusers/v0.43.0/ar/api/models/unet2d-cond#diffusers.UNet2DConditionModel) افتراضياً 4 قنوات في [عينة الإدخال](https://huggingface.co/docs/diffusers/v0.16.0/en/api/models#diffusers.UNet2DConditionModel.in_channels). على سبيل المثال، حمّل نموذجاً مسبق التدريب لتوليد الصور من النص مثل [`stable-diffusion-v1-5/stable-diffusion-v1-5`](https://huggingface.co/stable-diffusion-v1-5/stable-diffusion-v1-5) واطّلع على عدد `in_channels`:

```py
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) 9 قنوات في العينة المدخلة. يمكنك التحقق من هذه القيمة في نموذج توليد داخل صورة مُدرَّب مسبقًا مثل [`stable-diffusion-v1-5/stable-diffusion-inpainting`](https://huggingface.co/stable-diffusion-v1-5/stable-diffusion-inpainting):

```py
from diffusers import StableDiffusionPipeline

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

لتكييف نموذج النص إلى صورة الخاص بك لأغراض إعادة التلوين، ستحتاج إلى تغيير عدد `in_channels` من 4 إلى 9.

قم بتهيئة [UNet2DConditionModel](/docs/diffusers/v0.43.0/ar/api/models/unet2d-cond#diffusers.UNet2DConditionModel) باستخدام أوزان نموذج النص إلى الصورة المُسبقة التدريب، وغيّر `in_channels` إلى 9. إن تغيير عدد `in_channels` يعني أنك بحاجة إلى تعيين `ignore_mismatched_sizes=True` و`low_cpu_mem_usage=False` لتجنب خطأ عدم تطابق الحجم لأن الشكل أصبح مختلفاً الآن.

```py
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,
)
```

تُهيّأ أوزان المكونات الأخرى المُسبَق تدريبها من نموذج النص إلى الصورة من نقاط التفتيش الخاصة بها، لكن أوزان قناة الإدخال (`conv_in.weight`) في `unet` تُهيّأ عشوائياً. من المهم ضبط النموذج بدقة لمهمة إعادة رسم الصور (inpainting)، وإلا فإن النموذج سيعيد ضوضاء.

