Diffusers documentation
IP-Adapter
IP-Adapter
IP-Adapter هو مُكيّف خفيف الوزن يتيح استخدام صورة كإدخال توجيهي لنموذج الانتشار. تفصل هذه الطريقة طبقات الانتباه المتقاطع بين ميزات الصورة وميزات النص. وتُستخرج ميزات الصورة من مُشفِّر الصور.
تعلّم كيفية تحميل واستخدام نقطة تحقق (checkpoint) وصورة في دليل IP-Adapter.
IPAdapterMixin
مزيج للتعامل مع محولات IP.
load_ip_adapter
< source >( pretrained_model_name_or_path_or_dict: str | list[str] | dict[str, torch.Tensor]subfolder: str | list[str]weight_name: str | list[str]image_encoder_folder: str | None = 'image_encoder'**kwargs )
المعاملات
- pretrained_model_name_or_path_or_dict (
strأوlist[str]أوos.PathLikeأوlist[os.PathLike]أوdictأوlist[dict]) — يمكن أن يكون أحد ما يلي:- سلسلة نصية، وهي معرف النموذج (على سبيل المثال
google/ddpm-celebahq-256) لنموذج مُدرَّب مسبقًا مستضاف على الـ Hub. - مسار إلى مجلد (على سبيل المثال
./my_model_directory) يحتوي على أوزان النموذج المحفوظة باستخدام ModelMixin.save_pretrained(). - حالة torch.
- سلسلة نصية، وهي معرف النموذج (على سبيل المثال
- subfolder (
strأوlist[str]) — موقع المجلد الفرعي لملف النموذج داخل مستودع نموذج أكبر على Hub أو محليًا. إذا تم تمرير قائمة، فيجب أن يكون طولها مطابقًا لطولweight_name. - weight_name (
strأوlist[str]) — اسم ملف الأوزان الذي سيتم تحميله. إذا تم تمرير قائمة، فيجب أن يكون طولها مطابقًا لطولsubfolder. - image_encoder_folder (
str, اختياري، القيمة الافتراضيةimage_encoder) — موقع المجلد الفرعي لمُشفِّر الصور داخل مستودع نموذج أكبر على Hub أو محليًا. مرّرNoneلعدم تحميل مُشفِّر الصور. إذا كان مُشفِّر الصور موجودًا في مجلد داخلsubfolder، فأنت بحاجة فقط إلى تمرير اسم المجلد الذي يحتوي على أوزان مُشفِّر الصور، على سبيل المثالimage_encoder_folder="image_encoder". إذا كان مُشفِّر الصور موجودًا في مجلد غيرsubfolder، فيجب عليك تمرير المسار إلى المجلد الذي يحتوي على أوزان مُشفِّر الصور، على سبيل المثالimage_encoder_folder="different_subfolder/image_encoder". - cache_dir (
str | os.PathLike، اختياري) — المسار إلى مجلد حيث يتم تخزين إعدادات النموذج المُدرَّب مسبقًا المُحمَّل مؤقتًا إذا لم يُستخدم المجلد المؤقت القياسي. - force_download (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب إجبار إعادة تنزيل أوزان النموذج وملفات الإعداد، مع تجاوز النسخ المخزنة مؤقتًا إذا كانت موجودة. - proxies (
dict[str, str]، اختياري) — قاموس لخوادم الوكيل (proxy) للاستخدام حسب البروتوكول أو نقطة النهاية، على سبيل المثال{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}. تُستخدم هذه الوكلاء في كل طلب. - local_files_only (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم تحميل أوزان النموذج وملفات الإعداد المحلية فقط أم لا. إذا تم ضبطه علىTrue، فلن يتم تنزيل النموذج من Hub. - token (
strأو bool، اختياري) — الرمز الذي يُستخدم كتفويض حامل HTTP للملفات البعيدة. إذا كانTrue، يُستخدم الرمز المولّد منdiffusers-cli login(المخزّن في~/.huggingface). - revision (
str، اختياري، القيمة الافتراضية"main") — الإصدار المحدد من النموذج الذي سيتم استخدامه. يمكن أن يكون اسم فرع، أو اسم وسم، أو معرف commit، أو أي معرّف مسموح به بواسطة Git. - low_cpu_mem_usage (
bool، اختياري، القيمة الافتراضيةTrueإذا كان إصدار torch >= 1.9.0 وإلاFalse) — تسريع تحميل النموذج من خلال تحميل الأوزان المُسبقة التدريب فقط دون تهيئة الأوزان. كما يحاول هذا الخيار عدم استخدام أكثر من 1x حجم النموذج في ذاكرة المعالج المركزي (بما في ذلك الذروة) أثناء تحميل النموذج. مدعوم فقط لـ PyTorch >= 1.9.0. إذا كنت تستخدم إصدارًا أقدم من PyTorch، فإن تعيين هذا الحجج إلىTrueسيؤدي إلى رفع خطأ.
تُضبط مقاييس IP-Adapter لكل كتلة محوّل على حدة. يمكن أن يكون المدخل scale تكوينًا واحدًا أو قائمة من التكوينات للتحكم الدقيق في سلوك كل IP-Adapter. يمكن أن يكون التكوين رقمًا عشريًا أو قاموسًا.
مثال:
# To use original IP-Adapter
scale = 1.0
pipeline.set_ip_adapter_scale(scale)
# To use style block only
scale = {
"up": {"block_0": [0.0, 1.0, 0.0]},
}
pipeline.set_ip_adapter_scale(scale)
# To use style+layout blocks
scale = {
"down": {"block_2": [0.0, 1.0]},
"up": {"block_0": [0.0, 1.0, 0.0]},
}
pipeline.set_ip_adapter_scale(scale)
# To use style and layout from 2 reference images
scales = [{"down": {"block_2": [0.0, 1.0]}}, {"up": {"block_0": [0.0, 1.0, 0.0]}}]
pipeline.set_ip_adapter_scale(scales)يفكك أوزان IP Adapter
SD3IPAdapterMixin
مزيج (Mixin) للتعامل مع محولات IP Adapter في StableDiffusion 3.
is_ip_adapter_active
< source >( ) → bool
يعيد
bool
صحيح عند تحميل IP-Adapter ووجود أي طبقة لها قيمة مقياس > 0.
يتحقق من تحميل IP-Adapter وأن scale > 0.
يتحكم معامل IP-Adapter في تأثير موجه الصورة مقارنةً بموجه النص. عند ضبط هذه القيمة على 0، يصبح سياق الصورة غير ذي صلة.
load_ip_adapter
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]weight_name: str = 'ip-adapter.safetensors'subfolder: str | None = Noneimage_encoder_folder: str | None = 'image_encoder'**kwargs )
المعاملات
- pretrained_model_name_or_path_or_dict (
strأوos.PathLikeأوdict) — يمكن أن يكون أحد ما يلي:- سلسلة نصية، وهي معرف النموذج (على سبيل المثال
google/ddpm-celebahq-256) لنموذج مُدرَّب مسبقًا مستضاف على الـ Hub. - مسار إلى مجلد (على سبيل المثال
./my_model_directory) يحتوي على أوزان النموذج المحفوظة باستخدام ModelMixin.save_pretrained(). - حالة torch.
- سلسلة نصية، وهي معرف النموذج (على سبيل المثال
- weight_name (
str، القيمة الافتراضية “ip-adapter.safetensors”) — اسم ملف الأوزان الذي سيتم تحميله. إذا تم تمرير قائمة، فيجب أن يكون طولها مطابقًا لطولsubfolder. - subfolder (
str، اختياري) — موقع المجلد الفرعي لملف النموذج داخل مستودع نموذج أكبر على Hub أو محليًا. إذا تم تمرير قائمة، فيجب أن يكون طولها مطابقًا لطولweight_name. - image_encoder_folder (
str, اختياري، القيمة الافتراضيةimage_encoder) — موقع المجلد الفرعي لمُشفِّر الصور داخل مستودع نموذج أكبر على Hub أو محليًا. مرّرNoneلعدم تحميل مُشفِّر الصور. إذا كان مُشفِّر الصور موجودًا في مجلد داخلsubfolder، فأنت بحاجة فقط إلى تمرير اسم المجلد الذي يحتوي على أوزان مُشفِّر الصور، على سبيل المثالimage_encoder_folder="image_encoder". إذا كان مُشفِّر الصور موجودًا في مجلد غيرsubfolder، فيجب عليك تمرير المسار إلى المجلد الذي يحتوي على أوزان مُشفِّر الصور، على سبيل المثالimage_encoder_folder="different_subfolder/image_encoder". - cache_dir (
str | os.PathLike، اختياري) — المسار إلى مجلد حيث يتم تخزين إعدادات النموذج المُدرَّب مسبقًا المُحمَّل مؤقتًا إذا لم يُستخدم المجلد المؤقت القياسي. - force_download (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب إجبار إعادة تنزيل أوزان النموذج وملفات الإعداد، مع تجاوز النسخ المخزنة مؤقتًا إذا كانت موجودة. - proxies (
dict[str, str]، اختياري) — قاموس لخوادم الوكيل (proxy) للاستخدام حسب البروتوكول أو نقطة النهاية، على سبيل المثال{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}. تُستخدم هذه الوكلاء في كل طلب. - local_files_only (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم تحميل أوزان النموذج وملفات الإعداد المحلية فقط أم لا. إذا تم ضبطه علىTrue، فلن يتم تنزيل النموذج من Hub. - token (
strأو bool، اختياري) — الرمز الذي يُستخدم كتفويض حامل HTTP للملفات البعيدة. إذا كانTrue، يُستخدم الرمز المولّد منdiffusers-cli login(المخزّن في~/.huggingface). - revision (
str، اختياري، القيمة الافتراضية"main") — الإصدار المحدد من النموذج الذي سيتم استخدامه. يمكن أن يكون اسم فرع، أو اسم وسم، أو معرف commit، أو أي معرّف مسموح به بواسطة Git. - low_cpu_mem_usage (
bool، اختياري، القيمة الافتراضيةTrueإذا كان إصدار torch >= 1.9.0 وإلاFalse) — تسريع تحميل النموذج من خلال تحميل الأوزان المُسبقة التدريب فقط دون تهيئة الأوزان. كما يحاول هذا الخيار عدم استخدام أكثر من 1x حجم النموذج في ذاكرة المعالج المركزي (بما في ذلك الذروة) أثناء تحميل النموذج. مدعوم فقط لـ PyTorch >= 1.9.0. إذا كنت تستخدم إصدارًا أقدم من PyTorch، فإن تعيين هذا الحجج إلىTrueسيؤدي إلى رفع خطأ.
set_ip_adapter_scale
< source >( scale: float )
تعيين مقياس IP-Adapter، الذي يتحكم في تكييف موجه الصورة. القيمة 1.0 تعني أن النموذج مشروط بموجه الصورة فقط، بينما القيمة 0.0 تعني أنه مشروط بموجه النص فقط. إن خفض هذه القيمة يشجع النموذج على إنتاج صور أكثر تنوعاً، لكنها قد لا تكون متوافقة مع موجه الصورة بنفس الدرجة.
يفكك أوزان مُكيّف الإدخال (IP Adapter).
IPAdapterMaskProcessor
فئة diffusers.IPAdapterMaskProcessor
< source >( do_resize: bool = Truevae_scale_factor: int = 8resample: str = 'lanczos'do_normalize: bool = Falsedo_binarize: bool = Truedo_convert_grayscale: bool = True )
المعاملات
- do_resize (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم تصغير أبعاد الصورة (الارتفاع، العرض) إلى مضاعفات منvae_scale_factor. - vae_scale_factor (
int، اختياري، القيمة الافتراضية8) — معامل مقياس VAE. إذا كانdo_resizeهوTrue، يتم تغيير حجم الصورة تلقائيًا إلى مضاعفات لهذا المعامل. - resample (
str، اختياري، الافتراضيlanczos) — مرشح إعادة العينة المستخدم عند تغيير حجم الصورة. - do_normalize (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب تطبيع الصورة إلى [-1,1]. - do_binarize (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم تحويل الصورة إلى ثنائية (0/1). - do_convert_grayscale (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم تحويل الصور إلى تنسيق رمادي.
معالج الصور لأقنعة صور IP Adapter.
تقليل الدقة
< source >( mask: Tensorbatch_size: intnum_queries: intvalue_embed_dim: int ) → torch.Tensor
يقوم بتقليل دقة مُتجه القناع المُقدَّم ليتطابق مع الأبعاد المتوقعة لانتباه النقطي المُقيَّم. إذا لم يتطابق نسبة أبعاد القناع مع نسبة أبعاد الصورة الناتجة، يتم إصدار تحذير.