Buckets:

hf-doc-build/doc / diffusers /main /ar /training /adapt_a_model.md
mishig's picture
|
download
raw
3.41 kB
# تكييف نموذج لمهمة جديدة
تشارك العديد من أنظمة الانتشار نفس المكونات، مما يتيح لك تكييف نموذج مُدرَّب مسبقًا لمهمة واحدة لتناسب مهمة مختلفة تمامًا.
ستُظهر لك هذه الدليل كيفية تكييف نموذج نص إلى صورة مُدرَّب مسبقًا لعملية inpainting من خلال تهيئة وتعديل بنية [UNet2DConditionModel](/docs/diffusers/main/ar/api/models/unet2d-cond#diffusers.UNet2DConditionModel) المُدرَّب مسبقًا.
## تهيئة معلمات UNet2DConditionModel
يقبل [UNet2DConditionModel](/docs/diffusers/main/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/main/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)، وإلا فإن النموذج سيعيد ضوضاء.

Xet Storage Details

Size:
3.41 kB
·
Xet hash:
fb3d2d2fe4a27bf6ea110c91f4bfcbef9219f79a21634c7dd59e744956e508f3

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