Buckets:
| # من العمق إلى الصورة | |
| يمكن لنموذج Stable Diffusion أيضًا الاستدلال على العمق بناءً على صورة باستخدام [MiDaS](https://github.com/isl-org/MiDaS). وهذا يتيح لك تمرير موجه نصي وصورة أولية لتوجيه توليد صور جديدة، بالإضافة إلى `depth_map` للحفاظ على بنية الصورة. | |
| > [!TIP] | |
| > تأكد من الاطلاع على قسم [نصائح](overview#tips) الخاصة بـ Stable Diffusion لمعرفة كيفية استكشاف التوازن بين سرعة المجدول وجودة النتائج، وكيفية إعادة استخدام مكونات خط الأنابيب بكفاءة! | |
| > | |
| > إذا كنت مهتمًا باستخدام أحد نقاط التفتيش الرسمية لمهمة معينة، فاستكشف منظمات [CompVis](https://huggingface.co/CompVis) و[Stability AI](https://huggingface.co/stabilityai) على Hub! | |
| ## StableDiffusionDepth2ImgPipeline[[diffusers.StableDiffusionDepth2ImgPipeline]] | |
| #### diffusers.StableDiffusionDepth2ImgPipeline[[diffusers.StableDiffusionDepth2ImgPipeline]] | |
| ```python | |
| diffusers.StableDiffusionDepth2ImgPipeline(vae: AutoencoderKL, text_encoder: CLIPTextModel, tokenizer: CLIPTokenizer, unet: UNet2DConditionModel, scheduler: KarrasDiffusionSchedulers, depth_estimator: DPTForDepthEstimation, feature_extractor: DPTImageProcessorPil) | |
| ``` | |
| [المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_depth2img.py#L92) | |
| **المعاملات:** | |
| vae ([AutoencoderKL](/docs/diffusers/v0.43.0/ar/api/models/autoencoderkl#diffusers.AutoencoderKL)) : نموذج الترميز التحويلي التبايني (VAE) لتشفير وفك تشفير الصور إلى تمثيلات كامنة ومنها. | |
| text_encoder ([CLIPTextModel](https://huggingface.co/docs/transformers/v5.22.2/en/model_doc/clip#transformers.CLIPTextModel)) : مُشفِّر نص ثابت ([clip-vit-large-patch14](https://huggingface.co/openai/clip-vit-large-patch14)). | |
| tokenizer ([CLIPTokenizer](https://huggingface.co/docs/transformers/v5.22.2/en/model_doc/clip#transformers.CLIPTokenizer)) : `CLIPTokenizer` لتجزئة النص. | |
| unet ([UNet2DConditionModel](/docs/diffusers/v0.43.0/ar/api/models/unet2d-cond#diffusers.UNet2DConditionModel)) : نموذج `UNet2DConditionModel` لإزالة الضوضاء من الكامنات المُرمّزة للصورة. | |
| scheduler ([SchedulerMixin](/docs/diffusers/v0.43.0/ar/api/schedulers/overview#diffusers.SchedulerMixin)) : مُجدول يُستخدم بالاقتران مع `unet` لإزالة الضوضاء من كائنات الصورة المُرمّزة. يمكن أن يكون أحد [DDIMScheduler](/docs/diffusers/v0.43.0/ar/api/schedulers/ddim#diffusers.DDIMScheduler) أو [LMSDiscreteScheduler](/docs/diffusers/v0.43.0/ar/api/schedulers/lms_discrete#diffusers.LMSDiscreteScheduler) أو [PNDMScheduler](/docs/diffusers/v0.43.0/ar/api/schedulers/pndm#diffusers.PNDMScheduler). | |
| خط أنابيب لتوليد الصور من الصور بناءً على العمق مع إرشاد نصي باستخدام Stable Diffusion. | |
| يرث هذا النموذج من [DiffusionPipeline](/docs/diffusers/v0.43.0/ar/api/pipelines/overview#diffusers.DiffusionPipeline). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة المُنفَّذة لجميع خطوط الأنابيب (التنزيل، الحفظ، التشغيل على جهاز معين، إلخ). | |
| تورث خط الأنابيب أيضًا طرق التحميل التالية: | |
| - [load_textual_inversion()](/docs/diffusers/v0.43.0/ar/api/loaders/textual_inversion#diffusers.loaders.TextualInversionLoaderMixin.load_textual_inversion) لتحميل تضمينات الانعكاس النصي | |
| - [load_lora_weights()](/docs/diffusers/v0.43.0/ar/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights) لتحميل أوزان LoRA | |
| - [save_lora_weights()](/docs/diffusers/v0.43.0/ar/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.save_lora_weights) لحفظ أوزان LoRA | |
| #### __call__[[diffusers.StableDiffusionDepth2ImgPipeline.__call__]] | |
| ```python | |
| __call__(prompt: str | list[str] = None, image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = None, depth_map: typing.Optional[torch.Tensor] = None, strength: float = 0.8, num_inference_steps: int | None = 50, guidance_scale: float | None = 7.5, negative_prompt: str | list[str] | None = None, num_images_per_prompt: int | None = 1, eta: float | None = 0.0, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, output_type: str | None = 'pil', return_dict: bool = True, cross_attention_kwargs: dict[str, typing.Any] | None = None, clip_skip: int | None = None, callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = None, callback_on_step_end_tensor_inputs: list[str] = ['latents'], **kwargs) | |
| ``` | |
| [المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_depth2img.py#L634) | |
| **المعاملات:** | |
| prompt (`str` أو `list[str]`، *اختياري*) : الأمر أو الأوامر التي تُوجّه توليد الصورة. إذا لم تُعرَّف، يجب عليك تمرير `prompt_embeds`. | |
| image (`torch.Tensor`، `PIL.Image.Image`، `np.ndarray`، `list[torch.Tensor]`، `list[PIL.Image.Image]`، أو `list[np.ndarray]`) : `Image` أو tensor يمثل دفعة من الصور (image batch) ليُستخدم كنقطة انطلاق. يمكن قبول كامنات الصور (image latents) كـ `image` فقط إذا لم يكن `depth_map` هو `None`. | |
| depth_map (`torch.Tensor`، *اختياري*) : توقع العمق الذي سيُستخدم كشرط إضافي لعملية توليد الصورة. إذا لم يُعرَّف، فإنه يتنبأ بالعمق تلقائيًا باستخدام `self.depth_estimator`. | |
| strength (`float`، *اختياري*، القيمة الافتراضية 0.8) : يحدد مدى تحويل الصورة المرجعية `image`. يجب أن يكون بين 0 و 1. تُستخدم `image` كنقطة انطلاق، وكلما ارتفعت قيمة `strength` زاد مقدار الضوضاء المضافة. يعتمد عدد خطوات إزالة الضوضاء على كمية الضوضاء المضافة في البداية. عندما تكون `strength` تساوي 1، تكون الضوضاء المضافة في أقصى حد، وتعمل عملية إزالة الضوضاء لعدد التكرارات الكامل المحدد في `num_inference_steps`. القيمة 1 تتجاهل `image` بشكل أساسي. | |
| num_inference_steps (`int`، *اختياري*، القيمة الافتراضية 50) : عدد خطوات إزالة الضوضاء. تؤدي زيادة عدد خطوات إزالة الضوضاء عادةً إلى صورة ذات جودة أعلى على حساب بطء الاستدلال. يتم تعديل هذا المعامل بواسطة `strength`. | |
| guidance_scale (`float`, *اختياري*, القيمة الافتراضية 7.5) : كلما زادت قيمة مقياس التوجيه، شجّع النموذج على توليد صور مرتبطة ارتباطًا وثيقًا بنص `prompt` على حساب انخفاض جودة الصورة. يتم تفعيل مقياس التوجيه عندما يكون `guidance_scale > 1`. | |
| negative_prompt (`str` أو `list[str]`، *اختياري*) : الأمر أو الأوامر التي توجّه ما يجب عدم تضمينه في توليد الصورة. إذا لم يُعرَّف، يجب عليك تمرير `negative_prompt_embeds` بدلاً من ذلك. يتم تجاهله عند عدم استخدام التوجيه (`guidance_scale < 1`). | |
| num_images_per_prompt (`int`، *اختياري*، القيمة الافتراضية 1) : عدد الصور التي سيتم توليدها لكل موجه. | |
| eta (`float`، *اختياري*، القيمة الافتراضية 0.0) : يتوافق مع المعامل eta (η) من ورقة [DDIM](https://huggingface.co/papers/2010.02502). ينطبق فقط على [DDIMScheduler](/docs/diffusers/v0.43.0/ar/api/schedulers/ddim#diffusers.DDIMScheduler)، ويُتجاهل في جدولة أخرى. | |
| generator (`torch.Generator` أو `list[torch.Generator]`، *اختياري*) : [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html) لجعل التوليد حتميًا. | |
| prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة (وزن الأوامر). إذا لم تُقدَّم، يتم توليد تمثيلات النص من معامل الإدخال `prompt`. | |
| negative_prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية سالبة مُولّدة مسبقًا. يمكن استخدامها لضبط مدخلات النص بسهولة (وزن الموجه). إذا لم تُقدَّم، يتم توليد `negative_prompt_embeds` من معامل الإدخال `negative_prompt`. | |
| output_type (`str`، *اختياري*، الافتراضي `"pil"`) : صيغة الصورة المولّدة. اختر بين `PIL.Image` أو `np.array`. | |
| return_dict (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان يجب إرجاع [StableDiffusionPipelineOutput](/docs/diffusers/v0.43.0/ar/api/pipelines/stable_diffusion/img2img#diffusers.pipelines.stable_diffusion.StableDiffusionPipelineOutput) بدلاً من tuple عادي. | |
| cross_attention_kwargs (`dict`، *اختياري*) : قاموس kwargs يُمرَّر إلى `AttentionProcessor` إذا تم تحديده، كما هو معرّف في [`self.processor`](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py). | |
| clip_skip (`int`, *اختياري*) : عدد الطبقات التي سيتم تجاوزها من CLIP أثناء حساب تمثيلات الموجه. القيمة 1 تعني أنه سيتم استخدام مخرجات الطبقة قبل الأخيرة لحساب تمثيلات الموجه. | |
| callback_on_step_end (`Callable`، *اختياري*) : دالة تُستدعى في نهاية كل خطوة إزالة ضوضاء أثناء الاستدلال. تُستدعى الدالة بالحجج التالية: `callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict)`. سيتضمن `callback_kwargs` قائمة بجميع المصفوفات كما حددتها `callback_on_step_end_tensor_inputs`. | |
| callback_on_step_end_tensor_inputs (`list`، *اختياري*) : قائمة مدخلات المصفوفات (tensors) لدالة `callback_on_step_end`. سيتم تمرير المصفوفات المحددة في القائمة كحجة `callback_kwargs`. لن تتمكن من تضمين سوى المتغيرات المدرجة في خاصية `._callback_tensor_inputs` لفئة خط الأنابيب (pipeline) الخاص بك. | |
| **يعيد:** [StableDiffusionPipelineOutput](/docs/diffusers/v0.43.0/ar/api/pipelines/stable_diffusion/img2img#diffusers.pipelines.stable_diffusion.StableDiffusionPipelineOutput) أو `tuple` | |
| إذا كان `return_dict` هو `True`، يُعاد [StableDiffusionPipelineOutput](/docs/diffusers/v0.43.0/ar/api/pipelines/stable_diffusion/img2img#diffusers.pipelines.stable_diffusion.StableDiffusionPipelineOutput)، وإلا يُعاد `tuple` يكون عنصره الأول قائمة بالصور المولّدة. | |
| دالة الاستدعاء call لخط الأنابيب pipeline الخاص بالتوليد. | |
| أمثلة: | |
| ```py | |
| >>> import torch | |
| >>> import requests | |
| >>> from PIL import Image | |
| >>> from diffusers import StableDiffusionDepth2ImgPipeline | |
| >>> pipe = StableDiffusionDepth2ImgPipeline.from_pretrained( | |
| ... "stabilityai/stable-diffusion-2-depth", | |
| ... torch_dtype=torch.float16, | |
| ... ) | |
| >>> pipe.to("cuda") | |
| >>> url = "http://images.cocodataset.org/val2017/000000039769.jpg" | |
| >>> init_image = Image.open(requests.get(url, stream=True).raw) | |
| >>> prompt = "two tigers" | |
| >>> n_prompt = "bad, deformed, ugly, bad anotomy" | |
| >>> image = pipe(prompt=prompt, image=init_image, negative_prompt=n_prompt, strength=0.7).images[0] | |
| ``` | |
| #### enable_attention_slicing[[diffusers.StableDiffusionDepth2ImgPipeline.enable_attention_slicing]] | |
| ```python | |
| enable_attention_slicing(slice_size: str | int = 'auto') | |
| ``` | |
| [المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/pipeline_utils.py#L2030) | |
| **المعاملات:** | |
| slice_size (`str` أو `int`، *اختياري*، القيمة الافتراضية `"auto"`) : عند تعيين `"auto"`، يُنصَّف المدخل إلى رؤوس الانتباه، بحيث يُحسب الانتباه في خطوتين. إذا كانت القيمة `"max"`، فسيتم توفير أقصى قدر من الذاكرة من خلال تشغيل شريحة واحدة في كل مرة. إذا تم تقديم رقم، فسيتم استخدام عدد من الشرائح يساوي `attention_head_dim // slice_size`. في هذه الحالة، يجب أن يكون `attention_head_dim` مضاعفًا لـ `slice_size`. | |
| تفعيل حساب الانتباه المقطّع. عند تفعيل هذا الخيار، يقسم وحدة الانتباه المصفوفة المدخلة إلى شرائح لحساب الانتباه على عدة خطوات. في حالة وجود أكثر من رأس انتباه، يتم تنفيذ الحساب بشكل تسلسلي على كل رأس. وهذا مفيد لتوفير بعض الذاكرة مقابل انخفاض طفيف في السرعة. | |
| > [!WARNING] > ⚠️ لا تفعّل تقطيع الانتباه إذا كنت تستخدم بالفعل `scaled_dot_product_attention` (SDPA) | |
| من PyTorch > 2.0 أو xFormers. عمليات حساب الانتباه هذه فعّالة جداً من حيث الذاكرة، لذا لن تحتاج إلى تفعيل > هذه الوظيفة. إذا قمت بتفعيل تقطيع الانتباه مع SDPA أو xFormers، فقد يؤدي ذلك إلى تباطؤات جسيمة! | |
| أمثلة: | |
| ```py | |
| >>> import torch | |
| >>> from diffusers import StableDiffusionPipeline | |
| >>> pipe = StableDiffusionPipeline.from_pretrained( | |
| ... "stable-diffusion-v1-5/stable-diffusion-v1-5", | |
| ... dtype=torch.float16, | |
| ... use_safetensors=True, | |
| ... ) | |
| >>> prompt = "a photo of an astronaut riding a horse on mars" | |
| >>> pipe.enable_attention_slicing() | |
| >>> image = pipe(prompt).images[0] | |
| ``` | |
| #### disable_attention_slicing[[diffusers.StableDiffusionDepth2ImgPipeline.disable_attention_slicing]] | |
| ```python | |
| disable_attention_slicing() | |
| ``` | |
| [المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/pipeline_utils.py#L2067) | |
| تعطيل حساب الانتباه المقطّع. إذا كان `enable_attention_slicing` قد تم استدعاؤه سابقًا، يتم حساب الانتباه في خطوة واحدة. | |
| #### enable_xformers_memory_efficient_attention[[diffusers.StableDiffusionDepth2ImgPipeline.enable_xformers_memory_efficient_attention]] | |
| ```python | |
| enable_xformers_memory_efficient_attention(attention_op: typing.Optional[typing.Callable] = None) | |
| ``` | |
| [المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/pipeline_utils.py#L1975) | |
| **المعاملات:** | |
| attention_op (`Callable`، *اختياري*) : تجاوز المشغّل الافتراضي `None` لاستخدامه كحجة `op` في دالة [`memory_efficient_attention()`](https://facebookresearch.github.io/xformers/components/ops.html#xformers.ops.memory_efficient_attention) الخاصة بـ xFormers. | |
| تفعيل الانتباه الموفّر للذاكرة من [xFormers](https://facebookresearch.github.io/xformers/). عند تفعيل هذا الخيار، يجب أن تلاحظ انخفاضًا في استخدام ذاكرة وحدة معالجة الرسوميات (GPU) وتسريعًا محتملًا أثناء الاستدلال. لا يُضمن التسريع أثناء التدريب. | |
| > [!WARNING] > ⚠️ عند تفعيل كل من الانتباه الموفّر للذاكرة والانتباه المقطّع، يكون الانتباه الموفّر | |
| تتمتع attention بأولوية أعلى. | |
| أمثلة: | |
| ```py | |
| >>> import torch | |
| >>> from diffusers import DiffusionPipeline | |
| >>> from xformers.ops import MemoryEfficientAttentionFlashAttentionOp | |
| >>> pipe = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-2-1", dtype=torch.float16) | |
| >>> pipe = pipe.to("cuda") | |
| >>> pipe.enable_xformers_memory_efficient_attention(attention_op=MemoryEfficientAttentionFlashAttentionOp) | |
| >>> # Workaround for not accepting attention shape using VAE for Flash Attention | |
| >>> pipe.vae.enable_xformers_memory_efficient_attention(attention_op=None) | |
| ``` | |
| #### disable_xformers_memory_efficient_attention[[diffusers.StableDiffusionDepth2ImgPipeline.disable_xformers_memory_efficient_attention]] | |
| ```python | |
| disable_xformers_memory_efficient_attention() | |
| ``` | |
| [المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/pipeline_utils.py#L2006) | |
| تعطيل الانتباه الموفّر للذاكرة من [xFormers](https://facebookresearch.github.io/xformers/). | |
| #### load_textual_inversion[[diffusers.StableDiffusionDepth2ImgPipeline.load_textual_inversion]] | |
| ```python | |
| load_textual_inversion(pretrained_model_name_or_path: str | list[str] | dict[str, torch.Tensor] | list[dict[str, torch.Tensor]], token: str | list[str] | None = None, tokenizer: 'PreTrainedTokenizer' | None = None, text_encoder: 'PreTrainedModel' | None = None, **kwargs) | |
| ``` | |
| [المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/loaders/textual_inversion.py#L271) | |
| **المعاملات:** | |
| pretrained_model_name_or_path (`str` أو `os.PathLike` أو `list[str or os.PathLike]` أو `Dict` أو `list[Dict]`) : يمكن أن يكون أيًا مما يلي أو قائمة به: - نص، وهو *معرف النموذج* (مثل `sd-concepts-library/low-poly-hd-logos-icons`) لنموذج مُدرَّب مسبقًا مستضاف على Hub. - مسار إلى *مجلد* (مثل `./my_text_inversion_directory/`) يحتوي على أوزان العكس النصي. - مسار إلى *ملف* (مثل `./my_text_inversions.pt`) يحتوي على أوزان العكس النصي. - [قاموس حالة torch](https://pytorch.org/tutorials/beginner/saving_loading_models.html#what-is-a-state-dict). | |
| token (`str` أو `list[str]`، *اختياري*) : تجاوز الرمز المستخدم لأوزان الانعكاس النصي. إذا كان `pretrained_model_name_or_path` قائمة، فيجب أن يكون `token` أيضًا قائمة بطول متساوٍ. | |
| text_encoder ([CLIPTextModel](https://huggingface.co/docs/transformers/v5.22.2/en/model_doc/clip#transformers.CLIPTextModel)، *اختياري*) : مُشفِّر نص ثابت ([clip-vit-large-patch14](https://huggingface.co/openai/clip-vit-large-patch14)). إذا لم يُحدد، ستأخذ الدالة self.tokenizer. | |
| tokenizer ([CLIPTokenizer](https://huggingface.co/docs/transformers/v5.22.2/en/model_doc/clip#transformers.CLIPTokenizer)، *اختياري*) : `CLIPTokenizer` لتجزئة النص. إذا لم يُحدد، ستأخذ الدالة self.tokenizer. | |
| weight_name (`str`، *اختياري*) : اسم ملف الأوزان المخصص. يجب استخدام هذا عند: - كان ملف الانعكاس النصي المحفوظ بصيغة 🤗 Diffusers، لكنه حُفظ باسم أوزان محدد مثل `text_inv.bin`. - كان ملف الانعكاس النصي المحفوظ بصيغة Automatic1111. | |
| cache_dir (`str | os.PathLike`، *اختياري*) : مسار إلى مجلد حيث تُخزَّن مؤقتًا إعدادات النموذج المُسبق التحميل المُحمَّل إذا لم يُستخدم التخزين المؤقت القياسي. | |
| force_download (`bool`، *اختياري*، القيمة الافتراضية `False`) : ما إذا كان يجب إجبار إعادة تنزيل أوزان النموذج وملفات الإعداد، مع تجاوز النسخ المخزنة مؤقتًا إذا كانت موجودة. | |
| proxies (`dict[str, str]`، *اختياري*) : قاموس لخوادم الوكيل (proxy servers) للاستخدام حسب البروتوكول أو نقطة النهاية، على سبيل المثال، `{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}`. تُستخدم هذه الوكلاء في كل طلب. | |
| local_files_only (`bool`، *اختياري*، القيمة الافتراضية `False`) : ما إذا كان سيتم تحميل أوزان النموذج المحلية وملفات الإعداد فقط أم لا. إذا تم ضبطه على `True`، فلن يتم تنزيل النموذج من Hub. | |
| hf_token (`str` أو *bool*، *اختياري*) : الرمز الذي يُستخدم كتوكن مصادقة HTTP bearer للملفات البعيدة. إذا كان `True`، يُستخدم التوكن المولّد من `diffusers-cli login` (المخزَّن في `~/.huggingface`). | |
| revision (`str`، *اختياري*، القيمة الافتراضية `"main"`) : إصدار النموذج المحدد الذي سيتم استخدامه. يمكن أن يكون اسم فرع، أو اسم وسم، أو معرف التزامن، أو أي معرّف مسموح به بواسطة Git. | |
| subfolder (`str`، *اختياري*، القيمة الافتراضية `""`) : موقع المجلد الفرعي لملف النموذج داخل مستودع نموذج أكبر على Hub أو محليًا. | |
| mirror (`str`، *اختياري*) : مصدر مرآة لحل مشاكل إمكانية الوصول إذا كنت تقوم بتنزيل نموذج في الصين. نحن لا نضمن حداثة المصدر أو أمانه، وينبغي لك الرجوع إلى موقع المرآة لمزيد من المعلومات. | |
| حمّل ترميزات Textual Inversion في مُشفِّر النص الخاص بـ [StableDiffusionPipeline](/docs/diffusers/v0.43.0/ar/api/pipelines/stable_diffusion/text2img#diffusers.StableDiffusionPipeline) (يُؤمَّن دعم كلا الصيغتين: 🤗 Diffusers وAutomatic1111). | |
| مثال: | |
| لتحميل متجه تضمين Textual Inversion بصيغة 🤗 Diffusers: | |
| ```py | |
| from diffusers import StableDiffusionPipeline | |
| import torch | |
| model_id = "stable-diffusion-v1-5/stable-diffusion-v1-5" | |
| pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16).to("cuda") | |
| pipe.load_textual_inversion("sd-concepts-library/cat-toy") | |
| prompt = "A <cat-toy> backpack" | |
| image = pipe(prompt, num_inference_steps=50).images[0] | |
| image.save("cat-backpack.png") | |
| ``` | |
| لتحميل متجه تضمين Textual Inversion بصيغة Automatic1111، تأكد أولاً من تنزيل المتجه (على سبيل المثال من [civitAI](https://civitai.com/models/3036?modelVersionId=9857)) ثم قم بتحميل المتجه | |
| محليًا: | |
| ```py | |
| from diffusers import StableDiffusionPipeline | |
| import torch | |
| model_id = "stable-diffusion-v1-5/stable-diffusion-v1-5" | |
| pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16).to("cuda") | |
| pipe.load_textual_inversion("./charturnerv2.pt", token="charturnerv2") | |
| prompt = "charturnerv2, multiple views of the same character in the same outfit, a character turnaround of a woman wearing a black jacket and red shirt, best quality, intricate details." | |
| image = pipe(prompt, num_inference_steps=50).images[0] | |
| image.save("character.png") | |
| ``` | |
| #### load_lora_weights[[diffusers.StableDiffusionDepth2ImgPipeline.load_lora_weights]] | |
| ```python | |
| load_lora_weights(pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor], adapter_name: str | None = None, hotswap: bool = False, **kwargs) | |
| ``` | |
| [المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/loaders/lora_pipeline.py#L148) | |
| **المعاملات:** | |
| pretrained_model_name_or_path_or_dict (`str` أو `os.PathLike` أو `dict`) : راجع [lora_state_dict()](/docs/diffusers/v0.43.0/ar/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.lora_state_dict). | |
| adapter_name (`str`، *اختياري*) : اسم المُكيّف (Adapter) الذي سيُستخدم للإشارة إلى نموذج المُكيّف المُحمّل. إذا لم يُحدد، فسيُستخدم `default_{i}` حيث i هو العدد الإجمالي للمُكيّفات قيد التحميل. | |
| low_cpu_mem_usage (`bool`، *اختياري*) : تسريع تحميل النموذج من خلال تحميل أوزان LoRA المُسبقة التدريب فقط دون تهيئة الأوزان العشوائية. | |
| hotswap (`bool`, *اختياري*) : القيمة الافتراضية هي `False`. ما إذا كان يجب استبدال مُكيّف (LoRA) موجود بمُكيّف جديد تم تحميله في مكانه. وهذا يعني أنه، بدلاً من تحميل مُكيّف إضافي، سيتم أخذ أوزان المُكيّف الحالي واستبدالها بأوزان المُكيّف الجديد. يمكن أن يكون هذا أسرع وأكثر كفاءة في استخدام الذاكرة. ومع ذلك، فإن الميزة الرئيسية للاستبدال الساخن هي أنه عند تجميع النموذج باستخدام torch.compile، فإن تحميل المُكيّف الجديد لا يتطلب إعادة تجميع النموذج. عند استخدام الاستبدال الساخن، يجب أن يكون `adapter_name` المُمرَّر هو اسم مُكيّف تم تحميله بالفعل. إذا كان للمُكيّف الجديد والمُكيّف القديم رتب مختلفة و/أو قيم LoRA alpha (أي التوسع)، فستحتاج إلى استدعاء طريقة إضافية قبل تحميل المُكيّف: ```py pipeline = ... # load diffusers pipeline max_rank = ... # the highest rank among all LoRAs that you want to load # call *before* compiling and loading the LoRA adapter pipeline.enable_lora_hotswap(target_rank=max_rank) pipeline.load_lora_weights(file_name) # optionally compile the model now ``` لاحظ أن استبدال مُكيّفات مُشفّر النص غير مدعوم بعد. هناك بعض القيود الإضافية على هذه التقنية، وهي موثقة هنا: https://huggingface.co/docs/peft/main/en/package_reference/hotswap | |
| kwargs (`dict`، *اختياري*) : راجع [lora_state_dict()](/docs/diffusers/v0.43.0/ar/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.lora_state_dict). | |
| حمّل أوزان LoRA المحددة في `pretrained_model_name_or_path_or_dict` إلى `self.unet` و`self.text_encoder`. | |
| تُمرَّر جميع معاملات kwargs إلى `self.lora_state_dict`. | |
| راجع [lora_state_dict()](/docs/diffusers/v0.43.0/ar/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.lora_state_dict) لمزيد من التفاصيل حول كيفية تحميل قاموس الحالة. | |
| راجع [load_lora_into_unet()](/docs/diffusers/v0.43.0/ar/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_into_unet) لمزيد من التفاصيل حول كيفية تحميل قاموس الحالة في `self.unet`. | |
| راجع [load_lora_into_text_encoder()](/docs/diffusers/v0.43.0/ar/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_into_text_encoder) لمزيد من التفاصيل حول كيفية تحميل state dict في `self.text_encoder`. | |
| #### save_lora_weights[[diffusers.StableDiffusionDepth2ImgPipeline.save_lora_weights]] | |
| ```python | |
| save_lora_weights(save_directory: str | os.PathLike, unet_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = None, text_encoder_lora_layers: dict[str, torch.nn.Module] = None, is_main_process: bool = True, weight_name: str = None, save_function: typing.Callable = None, safe_serialization: bool = True, unet_lora_adapter_metadata = None, text_encoder_lora_adapter_metadata = None) | |
| ``` | |
| [المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/loaders/lora_pipeline.py#L466) | |
| **المعاملات:** | |
| save_directory (`str` أو `os.PathLike`) : المجلد الذي سيتم حفظ معلمات LoRA فيه. سيتم إنشاؤه إذا لم يكن موجودًا. | |
| unet_lora_layers (`dict[str, torch.nn.Module]` أو `dict[str, torch.Tensor]`) : قاموس الحالة (State dict) لطبقات LoRA المقابلة لـ `unet`. | |
| text_encoder_lora_layers (`dict[str, torch.nn.Module]` أو `dict[str, torch.Tensor]`) : قاموس الحالة (State dict) لطبقات LoRA المقابلة لـ `text_encoder`. يجب تمرير قاموس حالة LoRA الخاص بمشفر النص صراحةً لأنه يأتي من 🤗 Transformers. | |
| is_main_process (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان العملية التي تستدعي هذا هي العملية الرئيسية أم لا. مفيد أثناء التدريب الموزع عندما تحتاج إلى استدعاء هذه الدالة على جميع العمليات. في هذه الحالة، اضبط `is_main_process=True` على العملية الرئيسية فقط لتجنب حالات السباق. | |
| save_function (`Callable`) : الدالة المستخدمة لحفظ قاموس الحالة. مفيدة أثناء التدريب الموزع عندما تحتاج إلى استبدال `torch.save` بطريقة أخرى. يمكن ضبطها باستخدام متغير البيئة `DIFFUSERS_SAVE_MODE`. | |
| safe_serialization (`bool`، *اختياري*، الافتراضي `True`) : ما إذا كان سيتم حفظ النموذج باستخدام `safetensors` أو بالطريقة التقليدية الخاصة بـ PyTorch باستخدام `pickle`. | |
| unet_lora_adapter_metadata : بيانات الوصف (metadata) الخاصة بمحوّل LoRA المرتبط بـ unet والتي سيتم تسلسلها مع state dict. | |
| text_encoder_lora_adapter_metadata : بيانات الوصف (البيانات الوصفية) الخاصة بمحوّل LoRA المرتبط بترميز النص، والتي سيتم تسلسلها مع قاموس الحالة. | |
| احفظ معاملات LoRA المقابلة لـ UNet ومشفّر النص. | |
| #### encode_prompt[[diffusers.StableDiffusionDepth2ImgPipeline.encode_prompt]] | |
| ```python | |
| encode_prompt(prompt, device, num_images_per_prompt, do_classifier_free_guidance, negative_prompt = None, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, lora_scale: float | None = None, clip_skip: int | None = None) | |
| ``` | |
| [المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_depth2img.py#L204) | |
| **المعاملات:** | |
| prompt (`str` أو `list[str]`، *اختياري*) : النص الذي سيتم ترميزه | |
| device : (`torch.device`): جهاز torch | |
| num_images_per_prompt (`int`) : عدد الصور التي يجب توليدها لكل موجه | |
| do_classifier_free_guidance (`bool`) : ما إذا كان سيتم استخدام التوجيه الحر للتصنيف أم لا | |
| negative_prompt (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات التي لا ينبغي توجيه توليد الصورة بها. إذا لم يُعرَّف، يجب تمرير `negative_prompt_embeds` بدلاً من ذلك. يتم تجاهله عند عدم استخدام التوجيه (أي يتم تجاهله إذا كان `guidance_scale` أقل من `1`). | |
| prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد تمثيلات النص من معامل الإدخال `prompt`. | |
| negative_prompt_embeds (`torch.Tensor`, *اختياري*) : تمثيلات نصية سالبة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد negative_prompt_embeds من معامل الإدخال `negative_prompt`. | |
| lora_scale (`float`، *اختياري*) : مقياس LoRA سيُطبَّق على جميع طبقات LoRA في مُشفِّر النص إذا كانت طبقات LoRA محمَّلة. | |
| clip_skip (`int`, *اختياري*) : عدد الطبقات التي سيتم تجاوزها من CLIP أثناء حساب تمثيلات الموجه. القيمة 1 تعني أنه سيتم استخدام مخرجات الطبقة قبل الأخيرة لحساب تمثيلات الموجه. | |
| يقوم بتشفير الموجه إلى حالات مخفية لمشفّر النص. | |
| ## StableDiffusionPipelineOutput[[diffusers.pipelines.stable_diffusion.StableDiffusionPipelineOutput]] | |
| #### diffusers.pipelines.stable_diffusion.StableDiffusionPipelineOutput[[diffusers.pipelines.stable_diffusion.StableDiffusionPipelineOutput]] | |
| ```python | |
| diffusers.pipelines.stable_diffusion.StableDiffusionPipelineOutput(images: list[PIL.Image.Image] | numpy.ndarray, nsfw_content_detected: list[bool] | None) | |
| ``` | |
| [المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/stable_diffusion/pipeline_output.py#L10) | |
| **المعاملات:** | |
| images (`list[PIL.Image.Image]` أو `np.ndarray`) : قائمة من صور PIL منزوعة الضوضاء بطول `batch_size` أو مصفوفة NumPy بأبعاد `(batch_size, height, width, num_channels)`. | |
| nsfw_content_detected (`list[bool]`) : قائمة تُبيّن ما إذا كانت الصورة المولّدة المقابلة تحتوي على محتوى "غير آمن للعمل" (nsfw) أو `None` إذا تعذّر إجراء فحص الأمان. | |
| فئة الإخراج لخطوط أنابيب Stable Diffusion. | |
Xet Storage Details
- Size:
- 34.7 kB
- Xet hash:
- 8e168b57cee9ba09f995cf61af981d325cda275290a8e24b2fdce40031ae0505
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.