Buckets:
تكييف نموذج لمهمة جديدة
تشارك العديد من أنظمة الانتشار نفس المكونات، مما يتيح لك تكييف نموذج مُدرَّب مسبقًا لمهمة واحدة لتناسب مهمة مختلفة تمامًا.
ستُظهر لك هذه الدليل كيفية تكييف نموذج نص إلى صورة مُدرَّب مسبقًا لعملية inpainting من خلال تهيئة وتعديل بنية UNet2DConditionModel المُدرَّب مسبقًا.
تهيئة معلمات UNet2DConditionModel
يقبل UNet2DConditionModel افتراضياً 4 قنوات في عينة الإدخال. على سبيل المثال، حمّل نموذجاً مسبق التدريب لتوليد الصور من النص مثل stable-diffusion-v1-5/stable-diffusion-v1-5 واطّلع على عدد in_channels:
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:
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 باستخدام أوزان نموذج النص إلى الصورة المُسبقة التدريب، وغيّر in_channels إلى 9. إن تغيير عدد in_channels يعني أنك بحاجة إلى تعيين ignore_mismatched_sizes=True وlow_cpu_mem_usage=False لتجنب خطأ عدم تطابق الحجم لأن الشكل أصبح مختلفاً الآن.
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.