# إرشاد الانتباه المُعطَّل

  

[Perturbed-Attention Guidance (PAG)](https://ku-cvlab.github.io/Perturbed-Attention-Guidance/) هو توجيه جديد لعينة الانتشار يحسّن جودة العينات في الإعدادات غير الشرطية والشرطية على حد سواء، ويحقق ذلك دون الحاجة إلى تدريب إضافي أو دمج وحدات خارجية.

تم تقديم PAG في [Self-Rectifying Diffusion Sampling with Perturbed-Attention Guidance](https://huggingface.co/papers/2403.17377) بواسطة Donghoon Ahn وHyoungwon Cho وJaewon Min وWooseok Jang وJungwoo Kim وSeonHwa Kim وHyun Hee Park وKyong Hwan Jin وSeungryong Kim.

ملخص الورقة البحثية هو:

*أثبتت الدراسات الحديثة أن نماذج الانتشار قادرة على توليد عينات عالية الجودة، لكن جودتها تعتمد بشكل كبير على تقنيات التوجيه أثناء التوليد، مثل التوجيه بتصنيفي (CG) والتوجيه بتصنيفي حر (CFG). وغالبًا ما لا تكون هذه التقنيات قابلة للتطبيق في التوليد غير الشرطي أو في مهام لاحقة متنوعة مثل استعادة الصور. في هذه الورقة، نقترح تقنية توجيه جديدة للتوليد تسمى التوجيه بالانتباه المضطرب (PAG)، والتي تحسّن جودة عينات الانتشار في الإعدادات غير الشرطية والشرطية على حد سواء، مع تحقيق ذلك دون الحاجة إلى تدريب إضافي أو دمج وحدات خارجية. صُمم PAG لتعزيز بنية العينات تدريجيًا على مدار عملية إزالة الضوضاء. ويتضمن ذلك توليد عينات وسيطة ذات بنية متدهورة عن طريق استبدال خرائط الانتباه الذاتي المختارة في شبكة U-Net الخاصة بالانتشار بمصفوفة الوحدة، مع الأخذ في الاعتبار قدرة آليات الانتباه الذاتي على التقاط المعلومات البنيوية، وتوجيه عملية إزالة الضوضاء بعيدًا عن هذه العينات المتدهورة. في كل من ADM وStable Diffusion، يحسّن PAG بشكل مفاجئ جودة العينات في السيناريوهات الشرطية وحتى غير الشرطية. علاوة على ذلك، يحسّن PAG بشكل كبير أداء الأساس في مهام لاحقة متنوعة حيث لا يمكن الاستفادة الكاملة من تقنيات التوجيه الحالية مثل CG أو CFG، بما في ذلك ControlNet مع أوامر فارغة واستعادة الصور مثل التعبئة (inpainting) وإزالة الضبابية (deblurring).*

يمكن استخدام PAG عن طريق تحديد `pag_applied_layers` كعامل عند إنشاء خط أنابيب PAG. يمكن أن يكون نصاً واحداً أو قائمة من النصوص. يمكن أن يكون كل نص معرِّفاً فريداً لطبقة أو تعبيراً منتظماً لتحديد طبقة واحدة أو أكثر.

- المعرّف الكامل كنص عادي: `down_blocks.2.attentions.0.transformer_blocks.0.attn1.processor`
- المعرّف الكامل كـ RegEx: `down_blocks.2.(attentions|motion_modules).0.transformer_blocks.0.attn1.processor`
- المعرّف الجزئي كنمط RegEx: `down_blocks.2`، أو `attn1`
- قائمة بالمعرّفات (يمكن أن تكون مزيجاً من النصوص والتعبيرات النمطية): `["blocks.1", "blocks.(14|20)", r"down_blocks\.(2,3)"]`

> [!WARNING]
> بما أن RegEx مدعوم كطريقة لمطابقة معرّفات الطبقات، فمن الضروري استخدامه بشكل صحيح، وإلا فقد تظهر سلوكيات غير متوقعة. الطريقة الموصى بها لاستخدام PAG هي تحديد الطبقات على شكل `blocks.{layer_index}` و`blocks.({layer_index_1|layer_index_2|...})`. استخدام الطريقة بأي شكل آخر، رغم أنه ممكن، قد يتجاوز فحوصات التحقق الأساسية لدينا ويعطيك نتائج غير متوقعة.

## المهام العامة

يمكنك تطبيق PAG على [StableDiffusionXLPipeline](/docs/diffusers/main/ar/api/pipelines/stable_diffusion/stable_diffusion_xl#diffusers.StableDiffusionXLPipeline) لمهام مثل النص إلى صورة، والصورة إلى صورة، والتعبئة (inpainting). لتفعيل PAG لمهمة محددة، حمّل خط الأنابيب باستخدام واجهة [AutoPipeline](./auto_pipeline) مع علم `enable_pag=True` والحجة `pag_applied_layers`.

> [!TIP]
> 🤗 يدعم Diffusers حاليًا استخدام PAG مع خطوط SDXL المحددة و [PixArtSigmaPAGPipeline](/docs/diffusers/main/ar/api/pipelines/pag#diffusers.PixArtSigmaPAGPipeline) فقط. لكن لا تتردد في فتح [طلب ميزة](https://github.com/huggingface/diffusers/issues/new/choose) إذا كنت ترغب في إضافة دعم PAG إلى خط جديد!

```py
from diffusers import AutoPipelineForText2Image
from diffusers.utils import load_image
import torch

pipeline = AutoPipelineForText2Image.from_pretrained(
    "stabilityai/stable-diffusion-xl-base-1.0",
    enable_pag=True,
    pag_applied_layers=["mid"],
    dtype=torch.float16
)
pipeline.enable_model_cpu_offload()
```

> [!TIP]
> يتيح لك الحُجّة `pag_applied_layers` تحديد الطبقات التي يُطبَّق عليها PAG. بالإضافة إلى ذلك، يمكنك استخدام طريقة `set_pag_applied_layers` لتحديث هذه الطبقات بعد إنشاء خط المعالجة. اطّلع على قسم [pag_applied_layers](#pagappliedlayers) لمعرفة المزيد حول تطبيق PAG على طبقات أخرى.

إذا كان لديك خط أنابيب مُنشأ ومحمّل بالفعل، يمكنك تفعيل PAG عليه باستخدام واجهة `from_pipe` مع علم `enable_pag`. داخليًا، يتم إنشاء خط أنابيب PAG بناءً على خط الأنابيب والمهمة اللذين حددتهما. في المثال أدناه، بما أننا استخدمنا `AutoPipelineForText2Image` وقدمنا `StableDiffusionXLPipeline`، يتم إنشاء `StableDiffusionXLPAGPipeline` وفقًا لذلك. لاحظ أن هذا لا يتطلب ذاكرة إضافية، وستكون كلًا من `StableDiffusionXLPipeline` و `StableDiffusionXLPAGPipeline` محمّلة وجاهزة للاستخدام. يمكنك قراءة المزيد حول واجهة `from_pipe` وكيفية إعادة استخدام خطوط الأنابيب في diffuser [هنا](https://huggingface.co/docs/diffusers/using-diffusers/loading#reusing-models-in-multiple-pipelines).

```py
pipeline_sdxl = AutoPipelineForText2Image.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0", dtype=torch.float16)
pipeline = AutoPipelineForText2Image.from_pipe(pipeline_sdxl, enable_pag=True)
```

لتوليد صورة، ستحتاج أيضًا إلى تمرير `pag_scale`. عند زيادة `pag_scale`، تكتسب الصور هياكل أكثر تماسكًا دلاليًا وتظهر بمزيد من الخلو من الشوائب. ومع ذلك، فإن مقياس التوجيه الكبير جدًا قد يؤدي إلى نسيج أكثر نعومة وتشبعًا طفيفًا في الصور، على غرار CFG. يُستخدم `pag_scale=3.0` في العرض التوضيحي الرسمي ويعمل بشكل جيد في معظم حالات الاستخدام، لكن لا تتردد في التجربة واختيار القيمة المناسبة وفقًا لاحتياجاتك! يتم تعطيل PAG عندما يكون `pag_scale=0`.

```py
prompt = "an insect robot preparing a delicious meal, anime style"

for pag_scale in [0.0, 3.0]:
    generator = torch.Generator(device="cpu").manual_seed(0)
    images = pipeline(
        prompt=prompt,
        num_inference_steps=25,
        guidance_scale=7.0,
        generator=generator,
        pag_scale=pag_scale,
    ).images
```

  
    
    صورة مولّدة بدون PAG
  
  
    
    صورة مولّدة باستخدام PAG
  

يمكنك استخدام PAG مع خطوط أنابيب تحويل الصورة إلى صورة.

```py
from diffusers import AutoPipelineForImage2Image
from diffusers.utils import load_image
import torch

pipeline = AutoPipelineForImage2Image.from_pretrained(
    "stabilityai/stable-diffusion-xl-base-1.0",
    enable_pag=True,
    pag_applied_layers=["mid"],
    dtype=torch.float16
)
pipeline.enable_model_cpu_offload()
```

إذا كان لديك بالفعل خط أنابيب من صورة إلى صورة وتودّ تفعيل PAG عليه، يمكنك تشغيل هذا

```py
pipeline_t2i = AutoPipelineForImage2Image.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0", dtype=torch.float16)
pipeline = AutoPipelineForImage2Image.from_pipe(pipeline_t2i, enable_pag=True)
```

كما أنه من السهل للغاية التبديل مباشرةً من خط أنابيب النص إلى الصورة إلى خط أنابيب الصورة إلى الصورة الذي يدعم PAG

```py
pipeline_pag = AutoPipelineForText2Image.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0", dtype=torch.float16)
pipeline = AutoPipelineForImage2Image.from_pipe(pipeline_t2i, enable_pag=True)
```

إذا كان لديك خط أنابيب لتوليد الصور من النص مفعّل فيه PAG، يمكنك التبديل مباشرةً إلى خط أنابيب لتحويل الصور إلى صور مع بقاء PAG مفعّلًا

```py
pipeline_pag = AutoPipelineForText2Image.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0", enable_pag=True, dtype=torch.float16)
pipeline = AutoPipelineForImage2Image.from_pipe(pipeline_t2i)
```

الآن لنقم بتوليد صورة!

```py
pag_scales =  4.0
guidance_scales = 7.0

url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/sdxl-text2img.png"
init_image = load_image(url)
prompt = "a dog catching a frisbee in the jungle"

generator = torch.Generator(device="cpu").manual_seed(0)
image = pipeline(
    prompt,
    image=init_image,
    strength=0.8,
    guidance_scale=guidance_scale,
    pag_scale=pag_scale,
    generator=generator).images[0]
```

```py
from diffusers import AutoPipelineForInpainting
from diffusers.utils import load_image
import torch

pipeline = AutoPipelineForInpainting.from_pretrained(
    "stabilityai/stable-diffusion-xl-base-1.0",
    enable_pag=True,
    dtype=torch.float16
)
pipeline.enable_model_cpu_offload()
```

يمكنك تفعيل PAG على خط أنابيب إعادة التلوين (inpainting) قائم على النحو التالي

```py
pipeline_inpaint = AutoPipelineForInpainting.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0", dtype=torch.float16)
pipeline = AutoPipelineForInpainting.from_pipe(pipeline_inpaint, enable_pag=True)
```

لا يزال هذا يعمل عندما يكون لديك خط أنابيب بمهمة مختلفة:

```py
pipeline_t2i = AutoPipelineForText2Image.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0", dtype=torch.float16)
pipeline = AutoPipelineForInpaiting.from_pipe(pipeline_t2i, enable_pag=True)
```

لنقم بتوليد صورة!

```py
img_url = "https://raw.githubusercontent.com/CompVis/latent-diffusion/main/data/inpainting_examples/overture-creations-5sI6fQgYIuo.png"
mask_url = "https://raw.githubusercontent.com/CompVis/latent-diffusion/main/data/inpainting_examples/overture-creations-5sI6fQgYIuo_mask.png"
init_image = load_image(img_url).convert("RGB")
mask_image = load_image(mask_url).convert("RGB")

prompt = "A majestic tiger sitting on a bench"

pag_scales =  3.0
guidance_scales = 7.5

generator = torch.Generator(device="cpu").manual_seed(1)
images = pipeline(
    prompt=prompt,
    image=init_image,
    mask_image=mask_image,
    strength=0.8,
    num_inference_steps=50,
    guidance_scale=guidance_scale,
    generator=generator,
    pag_scale=pag_scale,
).images
images[0]
```

## PAG مع ControlNet

للاستخدام PAG مع ControlNet، أنشئ أولاً `controlnet`. ثم، مرّر `controlnet` وبقية حُجج PAG إلى طريقة `from_pretrained` الخاصة بـ AutoPipeline للمهمة المحددة.

```py
from diffusers import AutoPipelineForText2Image, ControlNetModel
import torch

controlnet = ControlNetModel.from_pretrained(
    "diffusers/controlnet-canny-sdxl-1.0", dtype=torch.float16
)

pipeline = AutoPipelineForText2Image.from_pretrained(
    "stabilityai/stable-diffusion-xl-base-1.0",
    controlnet=controlnet,
    enable_pag=True,
    pag_applied_layers="mid",
    dtype=torch.float16
)
pipeline.enable_model_cpu_offload()
```

> [!TIP]
> إذا كان لديك بالفعل خط أنابيب controlnet وتريد تفعيل PAG، يمكنك استخدام واجهة `from_pipe`: `AutoPipelineForText2Image.from_pipe(pipeline_controlnet, enable_pag=True)`

يمكنك استخدام خط الأنابيب بالطريقة نفسها التي تستخدم بها خطوط أنابيب ControlNet عادةً، مع إضافة خيار تحديد معامل `pag_scale`. لاحظ أن PAG يعمل بشكل جيد مع التوليد غير الشرطي. في هذا المثال، سنقوم بتوليد صورة دون استخدام موجه.

```py
from diffusers.utils import load_image
canny_image = load_image(
    "https://huggingface.co/datasets/YiYiXu/testing-images/resolve/main/pag_control_input.png"
)

for pag_scale in [0.0, 3.0]:
    generator = torch.Generator(device="cpu").manual_seed(1)
    images = pipeline(
        prompt="",
        controlnet_conditioning_scale=controlnet_conditioning_scale,
        image=canny_image,
        num_inference_steps=50,
        guidance_scale=0,
        generator=generator,
        pag_scale=pag_scale,
    ).images
    images[0]
```

  
    
    صورة مولّدة بدون PAG
  
  
    
    صورة مولّدة باستخدام PAG
  

## PAG مع IP-Adapter

[IP-Adapter](https://hf.co/papers/2308.06721) هو نموذج شائع يمكن دمجه في نماذج الانتشار (diffusion models) لتمكين التوجيه بالصور دون إجراء أي تغييرات على النموذج الأساسي. يمكنك تفعيل PAG في خط أنابيب (pipeline) تم تحميل IP-Adapter فيه.

```py
from diffusers import AutoPipelineForText2Image
from diffusers.utils import load_image
from transformers import CLIPVisionModelWithProjection
import torch

image_encoder = CLIPVisionModelWithProjection.from_pretrained(
    "h94/IP-Adapter",
    subfolder="models/image_encoder",
    dtype=torch.float16
)

pipeline = AutoPipelineForText2Image.from_pretrained(
    "stabilityai/stable-diffusion-xl-base-1.0",
    image_encoder=image_encoder,
    enable_pag=True,
    dtype=torch.float16
).to("cuda")  # or "mps", "xpu", "cpu"

pipeline.load_ip_adapter("h94/IP-Adapter", subfolder="sdxl_models", weight_name="ip-adapter-plus_sdxl_vit-h.bin")

pag_scales = 5.0
ip_adapter_scales = 0.8

image = load_image("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/ip_adapter_diner.png")

pipeline.set_ip_adapter_scale(ip_adapter_scale)
generator = torch.Generator(device="cpu").manual_seed(0)
images = pipeline(
    prompt="a polar bear sitting in a chair drinking a milkshake",
    ip_adapter_image=image,
    negative_prompt="deformed, ugly, wrong proportion, low res, bad anatomy, worst quality, low quality",
    num_inference_steps=25,
    guidance_scale=3.0,
    generator=generator,
    pag_scale=pag_scale,
).images
images[0]

```

تقلل PAG من الشوائب وتحسّن التكوين العام.

  
    
    صورة مولّدة بدون PAG
  
  
    
    صورة مولّدة باستخدام PAG
  

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

### pag_applied_layers

تتيح لك الحجة `pag_applied_layers` تحديد الطبقات التي يُطبَّق عليها PAG. افتراضيًا، يُطبَّق على الكتل الوسطى فقط. سيؤدي تغيير هذا الإعداد إلى تأثير كبير على المخرجات. يمكنك استخدام الطريقة `set_pag_applied_layers` لضبط طبقات PAG بعد إنشاء خط الأنابيب، مما يساعدك على إيجاد الطبقات المثالية لنموذجك.

كمثال، فيما يلي الصور المولّدة باستخدام `pag_layers = ["down.block_2"]` و`pag_layers = ["down.block_2", "up.block_1.attentions_0"]`

```py
prompt = "an insect robot preparing a delicious meal, anime style"
pipeline.set_pag_applied_layers(pag_layers)
generator = torch.Generator(device="cpu").manual_seed(0)
images = pipeline(
    prompt=prompt,
    num_inference_steps=25,
    guidance_scale=guidance_scale,
    generator=generator,
    pag_scale=pag_scale,
).images
images[0]
```

  
    
    down.block_2 + up.block1.attentions_0
  
  
    
    down.block_2
  

## AnimateDiffPAGPipeline[[diffusers.AnimateDiffPAGPipeline]]

#### diffusers.AnimateDiffPAGPipeline[[diffusers.AnimateDiffPAGPipeline]]

```python
diffusers.AnimateDiffPAGPipeline(vae: AutoencoderKL, text_encoder: CLIPTextModel, tokenizer: CLIPTokenizer, unet: diffusers.models.unets.unet_2d_condition.UNet2DConditionModel | diffusers.models.unets.unet_motion_model.UNetMotionModel, motion_adapter: MotionAdapter, scheduler: KarrasDiffusionSchedulers, feature_extractor: CLIPImageProcessorPil = None, image_encoder: CLIPVisionModelWithProjection = None, pag_applied_layers: str | list[str] = 'mid_block.*attn1')
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_sd_animatediff.py#L89)

**المعاملات:**

vae ([AutoencoderKL](/docs/diffusers/main/ar/api/models/autoencoderkl#diffusers.AutoencoderKL)) : نموذج الترميز التحويلي التبايني (VAE) لتشفير وفك تشفير الصور إلى تمثيلات كامنة ومنها.

text_encoder (`CLIPTextModel`) : مُشفِّر نص ثابت ([clip-vit-large-patch14](https://huggingface.co/openai/clip-vit-large-patch14)).

tokenizer (`CLIPTokenizer`) : [CLIPTokenizer](https://huggingface.co/docs/transformers/main/en/model_doc/clip#transformers.CLIPTokenizer) لتجزئة النص.

unet ([UNet2DConditionModel](/docs/diffusers/main/ar/api/models/unet2d-cond#diffusers.UNet2DConditionModel)) : نموذج [UNet2DConditionModel](/docs/diffusers/main/ar/api/models/unet2d-cond#diffusers.UNet2DConditionModel) يُستخدم لإنشاء UNetMotionModel لإزالة الضوضاء من كائنات الفيديو المُرمّزة.

motion_adapter (`MotionAdapter`) : مُكيّف حركة `MotionAdapter` يُستخدم بالاقتران مع `unet` لإزالة الضوضاء من كامنات الفيديو المُرمّزة.

scheduler ([SchedulerMixin](/docs/diffusers/main/ar/api/schedulers/overview#diffusers.SchedulerMixin)) : مُجدول يُستخدم بالاقتران مع `unet` لإزالة الضوضاء من كائنات الصورة المُرمّزة. يمكن أن يكون أحد [DDIMScheduler](/docs/diffusers/main/ar/api/schedulers/ddim#diffusers.DDIMScheduler) أو [LMSDiscreteScheduler](/docs/diffusers/main/ar/api/schedulers/lms_discrete#diffusers.LMSDiscreteScheduler) أو [PNDMScheduler](/docs/diffusers/main/ar/api/schedulers/pndm#diffusers.PNDMScheduler).

خط أنابيب لتوليد الفيديو من النص باستخدام [AnimateDiff](https://huggingface.co/docs/diffusers/en/api/pipelines/animatediff) و [Perturbed Attention Guidance](https://huggingface.co/docs/diffusers/en/using-diffusers/pag).

يرث هذا النموذج من [DiffusionPipeline](/docs/diffusers/main/ar/api/pipelines/overview#diffusers.DiffusionPipeline). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة المُنفَّذة لجميع خطوط الأنابيب (التنزيل، الحفظ، التشغيل على جهاز معين، إلخ).

تورث خط الأنابيب أيضًا طرق التحميل التالية:
- [load_textual_inversion()](/docs/diffusers/main/ar/api/loaders/textual_inversion#diffusers.loaders.TextualInversionLoaderMixin.load_textual_inversion) لتحميل تضمينات الانعكاس النصي
- [load_lora_weights()](/docs/diffusers/main/ar/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights) لتحميل أوزان LoRA
- [save_lora_weights()](/docs/diffusers/main/ar/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.save_lora_weights) لحفظ أوزان LoRA
- [load_ip_adapter()](/docs/diffusers/main/ar/api/loaders/ip_adapter#diffusers.loaders.IPAdapterMixin.load_ip_adapter) لتحميل وحدات IP Adapter

#### __call__[[diffusers.AnimateDiffPAGPipeline.__call__]]

```python
__call__(prompt: str | list[str] | None = None, num_frames: int | None = 16, height: int | None = None, width: int | None = None, num_inference_steps: int = 50, guidance_scale: float = 7.5, negative_prompt: str | list[str] | None = None, num_videos_per_prompt: int | None = 1, eta: float = 0.0, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, ip_adapter_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = None, ip_adapter_image_embeds: list[torch.Tensor] | None = 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 = ['latents'], decode_chunk_size: int = 16, pag_scale: float = 3.0, pag_adaptive_scale: float = 0.0)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_sd_animatediff.py#L575)

**المعاملات:**

prompt (`str` أو `list[str]`، *اختياري*) : الأمر أو الأوامر التي تُوجّه توليد الصورة. إذا لم تُعرَّف، يجب عليك تمرير `prompt_embeds`.

height (`int`، *اختياري*، القيمة الافتراضية هي `self.unet.config.sample_size * self.vae_scale_factor`) : ارتفاع الفيديو المولّد بالبكسل.

width (`int`، *اختياري*، القيمة الافتراضية هي `self.unet.config.sample_size * self.vae_scale_factor`) : عرض الفيديو المولّد بالبكسل.

num_frames (`int`، *اختياري*، القيمة الافتراضية 16) : عدد إطارات الفيديو التي يتم توليدها. القيمة الافتراضية هي 16 إطارًا، والتي عند 8 إطارات في الثانية تعادل ثانيتين من الفيديو.

num_inference_steps (`int`، *اختياري*، القيمة الافتراضية 50) : عدد خطوات إزالة الضوضاء. تؤدي زيادة عدد خطوات إزالة الضوضاء عادةً إلى فيديوهات بجودة أعلى على حساب بطء الاستدلال.

guidance_scale (`float`, *اختياري*, القيمة الافتراضية 7.5) : كلما زادت قيمة مقياس التوجيه، شجّع النموذج على توليد صور مرتبطة ارتباطًا وثيقًا بنص `prompt` على حساب انخفاض جودة الصورة. يتم تفعيل مقياس التوجيه عندما يكون `guidance_scale > 1`.

negative_prompt (`str` أو `list[str]`، *اختياري*) : الأمر أو الأوامر التي توجّه ما يجب عدم تضمينه في توليد الصورة. إذا لم يُعرَّف، يجب عليك تمرير `negative_prompt_embeds` بدلاً من ذلك. يتم تجاهله عند عدم استخدام التوجيه (`guidance_scale < 1`).

num_videos_per_prompt (`int`، *اختياري*، القيمة الافتراضية 1) : عدد مقاطع الفيديو التي سيتم توليدها لكل موجه.

eta (`float`، *اختياري*، القيمة الافتراضية 0.0) : يتوافق مع المعامل eta (η) من ورقة [DDIM](https://huggingface.co/papers/2010.02502). ينطبق فقط على [DDIMScheduler](/docs/diffusers/main/ar/api/schedulers/ddim#diffusers.DDIMScheduler)، ويُتجاهل في جدولة أخرى.

generator (`torch.Generator` أو `list[torch.Generator]`، *اختياري*) : [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html) لجعل التوليد حتميًا.

latents (`torch.Tensor`، *اختياري*) : كامنات ضجيج مُولّدة مسبقًا، مُستخرجة من توزيع غاوسي، تُستخدم كمدخلات لتوليد الفيديو. يمكن استخدامها لتعديل نفس التوليد باستخدام أوامر مختلفة. إذا لم تُقدَّم، يتم توليد كامنات عن طريق الاستخراج باستخدام `generator` العشوائي المُقدَّم. يجب أن تكون الكامنات على شكل `(batch_size, num_channel, num_frames, height, width)`.

prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة (وزن الأوامر). إذا لم تُقدَّم، يتم توليد تمثيلات النص من معامل الإدخال `prompt`.

negative_prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية سالبة مُولّدة مسبقًا. يمكن استخدامها لضبط مدخلات النص بسهولة (وزن الموجه). إذا لم تُقدَّم، يتم توليد `negative_prompt_embeds` من معامل الإدخال `negative_prompt`.

ip_adapter_image : (`PipelineImageInput`، *اختياري*): إدخال صورة اختياري للعمل مع IP Adapters.

ip_adapter_image_embeds (`list[torch.Tensor]`, *اختياري*) : تمثيلات صور مُولّدة مسبقًا لـ IP-Adapter. يجب أن يكون قائمة بطول يساوي عدد وحدات IP-adapter. يجب أن يكون كل عنصر منها متجهًا (tensor) بشكل `(batch_size, num_images, emb_dim)`. يجب أن يحتوي على تمثيل الصورة السلبية إذا كان `do_classifier_free_guidance` مضبوطًا على `True`. إذا لم يُقدَّم، تُحسب التمثيلات من معامل الإدخال `ip_adapter_image`.

output_type (`str`، *اختياري*، الافتراضي `"pil"`) : صيغة مخرجات الفيديو المولّد. اختر بين `torch.Tensor` و`PIL.Image` أو `np.array`.

return_dict (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان يجب إرجاع `~pipelines.text_to_video_synthesis.TextToVideoSDPipelineOutput` بدلاً من 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) الخاص بك.

decode_chunk_size (`int`، *اختياري*، القيمة الافتراضية 16) : عدد الإطارات التي يتم فك ترميزها دفعة واحدة عند استدعاء طريقة `decode_latents`.

pag_scale (`float`، *اختياري*، القيمة الافتراضية 3.0) : معامل المقياس للتوجيه الانتباه المُعطَّل. إذا تم ضبطه على 0.0، فلن يُستخدم التوجيه الانتباه المُعطَّل.

pag_adaptive_scale (`float`، *اختياري*، القيمة الافتراضية 0.0) : معامل المقياس التكيفي لمرشد الانتباه المُعطَّل. إذا تم ضبطه على 0.0، يُستخدم `pag_scale`.

**يعيد:** [AnimateDiffPipelineOutput](/docs/diffusers/main/ar/api/pipelines/animatediff#diffusers.pipelines.animatediff.AnimateDiffPipelineOutput) أو `tuple`

إذا كان `return_dict` هو `True`، يُعاد [AnimateDiffPipelineOutput](/docs/diffusers/main/ar/api/pipelines/animatediff#diffusers.pipelines.animatediff.AnimateDiffPipelineOutput)، وإلا يُعاد `tuple` يكون عنصره الأول قائمة تحتوي على الإطارات المولّدة.

دالة الاستدعاء call لخط الأنابيب pipeline الخاص بالتوليد.

أمثلة:
```py
>>> import torch
>>> from diffusers import AnimateDiffPAGPipeline, MotionAdapter, DDIMScheduler
>>> from diffusers.utils import export_to_gif

>>> model_id = "SG161222/Realistic_Vision_V5.1_noVAE"
>>> motion_adapter_id = "guoyww/animatediff-motion-adapter-v1-5-2"
>>> motion_adapter = MotionAdapter.from_pretrained(motion_adapter_id)
>>> scheduler = DDIMScheduler.from_pretrained(
...     model_id, subfolder="scheduler", beta_schedule="linear", steps_offset=1, clip_sample=False
... )
>>> pipe = AnimateDiffPAGPipeline.from_pretrained(
...     model_id,
...     motion_adapter=motion_adapter,
...     scheduler=scheduler,
...     pag_applied_layers=["mid"],
...     torch_dtype=torch.float16,
... ).to("cuda")

>>> video = pipe(
...     prompt="car, futuristic cityscape with neon lights, street, no human",
...     negative_prompt="low quality, bad quality",
...     num_inference_steps=25,
...     guidance_scale=6.0,
...     pag_scale=3.0,
...     generator=torch.Generator().manual_seed(42),
... ).frames[0]

>>> export_to_gif(video, "animatediff_pag.gif")
```

#### encode_prompt[[diffusers.AnimateDiffPAGPipeline.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/main/src/diffusers/pipelines/pag/pipeline_pag_sd_animatediff.py#L165)

**المعاملات:**

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 تعني أنه سيتم استخدام مخرجات الطبقة قبل الأخيرة لحساب تمثيلات الموجه.

يقوم بتشفير الموجه إلى حالات مخفية لمشفّر النص.

## HunyuanDiTPAGPipeline[[diffusers.HunyuanDiTPAGPipeline]]

#### diffusers.HunyuanDiTPAGPipeline[[diffusers.HunyuanDiTPAGPipeline]]

```python
diffusers.HunyuanDiTPAGPipeline(vae: AutoencoderKL, text_encoder: BertModel, tokenizer: BertTokenizer, transformer: HunyuanDiT2DModel, scheduler: DDPMScheduler, safety_checker: diffusers.pipelines.stable_diffusion.safety_checker.StableDiffusionSafetyChecker | None = None, feature_extractor: transformers.models.clip.image_processing_pil_clip.CLIPImageProcessorPil | None = None, requires_safety_checker: bool = True, text_encoder_2: transformers.models.t5.modeling_t5.T5EncoderModel | None = None, tokenizer_2: transformers.models.t5.tokenization_t5.T5Tokenizer | None = None, pag_applied_layers: str | list[str] = 'blocks.1')
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_hunyuandit.py#L152)

**المعاملات:**

vae ([AutoencoderKL](/docs/diffusers/main/ar/api/models/autoencoderkl#diffusers.AutoencoderKL)) : نموذج الترميز التحويلي التبايني (VAE) لتشفير وفك تشفير الصور إلى تمثيلات كامنة ومنها. نستخدم `sdxl-vae-fp16-fix`.

text_encoder (`~transformers.BertModel`، `~transformers.CLIPTextModel` | None) : مُشفِّر نص ثابت ([clip-vit-large-patch14](https://huggingface.co/openai/clip-vit-large-patch14)). يستخدم HunyuanDiT [CLIP ثنائي اللغة] مُعدّلًا.

tokenizer (`~transformers.BertTokenizer`، `~transformers.CLIPTokenizer` | None) : `BertTokenizer` أو `CLIPTokenizer` لتجزئة النص.

transformer ([HunyuanDiT2DModel](/docs/diffusers/main/ar/api/models/hunyuan_transformer2d#diffusers.HunyuanDiT2DModel)) : نموذج HunyuanDiT الذي صمّمه Tencent Hunyuan.

text_encoder_2 (`T5EncoderModel`) : مُضمّن mT5. تحديداً، هو 't5-v1_1-xxl'.

tokenizer_2 (`T5Tokenizer`) : مُجزِّئ النصوص الخاص بمُضمِّن mT5.

scheduler ([DDPMScheduler](/docs/diffusers/main/ar/api/schedulers/ddpm#diffusers.DDPMScheduler)) : مُجدوِل يُستخدم بالاقتران مع HunyuanDiT لإزالة الضوضاء من كامنات الصورة المُرمَّزة.

خط أنابيب لتوليد الصور من الإنجليزية/الصينية باستخدام HunyuanDiT و[Perturbed Attention Guidance](https://huggingface.co/docs/diffusers/en/using-diffusers/pag).

يرث هذا النموذج من [DiffusionPipeline](/docs/diffusers/main/ar/api/pipelines/overview#diffusers.DiffusionPipeline). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع خطوط الأنابيب (مثل التنزيل أو الحفظ، أو التشغيل على جهاز معين، وما إلى ذلك).

يستخدم HunyuanDiT مشفّري نصّين: [mT5](https://huggingface.co/google/mt5-base) و[bilingual CLIP](fine-tuned by ourselves)

#### __call__[[diffusers.HunyuanDiTPAGPipeline.__call__]]

```python
__call__(prompt: str | list[str] = None, height: int | None = None, width: int | None = None, num_inference_steps: int = 50, guidance_scale: float = 5.0, negative_prompt: str | list[str] | None = None, num_images_per_prompt: int = 1, eta: float = 0.0, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, prompt_embeds_2: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds_2: typing.Optional[torch.Tensor] = None, prompt_attention_mask: typing.Optional[torch.Tensor] = None, prompt_attention_mask_2: typing.Optional[torch.Tensor] = None, negative_prompt_attention_mask: typing.Optional[torch.Tensor] = None, negative_prompt_attention_mask_2: typing.Optional[torch.Tensor] = None, output_type: str = 'pil', return_dict: bool = True, callback_on_step_end: typing.Union[typing.Callable[[int, int, dict], NoneType], diffusers.callbacks.PipelineCallback, diffusers.callbacks.MultiPipelineCallbacks, NoneType] = None, callback_on_step_end_tensor_inputs: list = ['latents'], guidance_rescale: float = 0.0, original_size: tuple = (1024, 1024), target_size: tuple = None, crops_coords_top_left: tuple = (0, 0), use_resolution_binning: bool = True, pag_scale: float = 3.0, pag_adaptive_scale: float = 0.0)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_hunyuandit.py#L579)

**المعاملات:**

prompt (`str` أو `list[str]`، *اختياري*) : الأمر أو الأوامر التي تُوجّه توليد الصورة. إذا لم تُعرَّف، يجب عليك تمرير `prompt_embeds`.

height (`int`) : ارتفاع الصورة المولّدة بالبكسل.

width (`int`) : عرض الصورة المولدة بالبكسل.

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/main/ar/api/schedulers/ddim#diffusers.DDIMScheduler)، ويُتجاهل في جدولة أخرى.

generator (`torch.Generator` أو `list[torch.Generator]`، *اختياري*) : [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html) لجعل التوليد حتميًا.

latents (`torch.Tensor`، *اختياري*) : كامنات ضجيج مُولّدة مسبقًا، مُستخرجة من توزيع غاوسي، تُستخدم كمدخلات لتوليد الصور. يمكن استخدامها لتعديل نفس التوليد باستخدام أوامر مختلفة. إذا لم تُقدَّم، يتم توليد كامنات من خلال الاستخراج باستخدام `generator` العشوائي المُقدَّم.

prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة (وزن الأوامر). إذا لم تُقدَّم، يتم توليد تمثيلات النص من معامل الإدخال `prompt`.

prompt_embeds_2 (`torch.Tensor`، *اختياري*) : تمثيلات نصية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة (وزن الأوامر). إذا لم تُقدَّم، يتم توليد تمثيلات النص من معامل الإدخال `prompt`.

negative_prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية سالبة مُولّدة مسبقًا. يمكن استخدامها لضبط مدخلات النص بسهولة (وزن الموجه). إذا لم تُقدَّم، يتم توليد `negative_prompt_embeds` من معامل الإدخال `negative_prompt`.

negative_prompt_embeds_2 (`torch.Tensor`، *اختياري*) : تمثيلات نصية سالبة مُولّدة مسبقًا. يمكن استخدامها لضبط مدخلات النص بسهولة (وزن الموجه). إذا لم تُقدَّم، يتم توليد `negative_prompt_embeds` من معامل الإدخال `negative_prompt`.

prompt_attention_mask (`torch.Tensor`، *اختياري*) : قناع الانتباه للموجّه. مطلوب عند تمرير `prompt_embeds` مباشرة.

prompt_attention_mask_2 (`torch.Tensor`، *اختياري*) : قناع الانتباه للموجّه. مطلوب عند تمرير `prompt_embeds_2` مباشرةً.

negative_prompt_attention_mask (`torch.Tensor`، *اختياري*) : قناع الانتباه (Attention mask) الخاص بالموجّه السلبي. مطلوب عند تمرير `negative_prompt_embeds` مباشرةً.

negative_prompt_attention_mask_2 (`torch.Tensor`، *اختياري*) : قناع الانتباه (Attention mask) الخاص بالموجّه السلبي. مطلوب عند تمرير `negative_prompt_embeds_2` مباشرةً.

output_type (`str`، *اختياري*، الافتراضي `"pil"`) : صيغة الصورة المولّدة. اختر بين `PIL.Image` أو `np.array`.

return_dict (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان يجب إرجاع [StableDiffusionPipelineOutput](/docs/diffusers/main/ar/api/pipelines/stable_diffusion/img2img#diffusers.pipelines.stable_diffusion.StableDiffusionPipelineOutput) بدلاً من tuple عادي.

callback_on_step_end (`Callable[[int, int], None]`، `PipelineCallback`، `MultiPipelineCallbacks`، *اختياري*) : دالة استجابة أو قائمة من دوال الاستجابة التي تُستدعى في نهاية كل خطوة إزالة ضوضاء.

callback_on_step_end_tensor_inputs (`list[str]`، *اختياري*) : قائمة من مدخلات المصفوفات (tensors) التي يجب تمريرها إلى دالة الاستدعاء (callback). إذا لم تُعرَّف، فسيتم تمرير جميع مدخلات المصفوفات.

guidance_rescale (`float`, *optional*, defaults to 0.0) : Rescale the noise_cfg according to `guidance_rescale`. Based on findings of [Common Diffusion Noise Schedules and Sample Steps are Flawed](https://huggingface.co/papers/2305.08891). See Section 3.4

original_size (`tuple[int, int]`، *اختياري*، القيمة الافتراضية `(1024, 1024)`) : الحجم الأصلي للصورة. يُستخدم لحساب معرّفات الوقت.

target_size (`tuple[int, int]`، *اختياري*) : الحجم المستهدف للصورة. يُستخدم لحساب معرّفات الوقت.

crops_coords_top_left (`tuple[int, int]`، *اختياري*، القيمة الافتراضية `(0, 0)`) : إحداثيات الزاوية العلوية اليسرى للمقتطع. تُستخدم لحساب معرّفات الوقت.

use_resolution_binning (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان سيتم استخدام تجميع الدقة أم لا. إذا كانت القيمة `True`، فسيتم تعيين دقة الإدخال إلى أقرب دقة قياسية. الدقات المدعومة هي 1024x1024، 1280x1280، 1024x768، 1152x864، 1280x960، 768x1024، 864x1152، 960x1280، 1280x768، و 768x1280. يُوصى بإعداد هذه القيمة على `True`.

pag_scale (`float`، *اختياري*، القيمة الافتراضية 3.0) : معامل المقياس للتوجيه الانتباه المُعطَّل. إذا تم ضبطه على 0.0، فلن يُستخدم التوجيه الانتباه المُعطَّل.

pag_adaptive_scale (`float`، *اختياري*، القيمة الافتراضية 0.0) : معامل المقياس التكيفي لمرشد الانتباه المُعطَّل. إذا تم ضبطه على 0.0، يُستخدم `pag_scale`.

**يعيد:** [StableDiffusionPipelineOutput](/docs/diffusers/main/ar/api/pipelines/stable_diffusion/img2img#diffusers.pipelines.stable_diffusion.StableDiffusionPipelineOutput) أو `tuple`

إذا كان `return_dict` هو `True`، يُعاد [StableDiffusionPipelineOutput](/docs/diffusers/main/ar/api/pipelines/stable_diffusion/img2img#diffusers.pipelines.stable_diffusion.StableDiffusionPipelineOutput)، وإلا يُعاد `tuple` حيث يكون العنصر الأول قائمة بالصور المولّدة والعنصر الثاني قائمة من قيم `bool` تشير إلى ما إذا كانت الصورة المولّدة المقابلة تحتوي على محتوى "غير آمن للعمل" (nsfw).

دالة الاستدعاء call لخط الأنابيب pipeline للتوليد باستخدام HunyuanDiT.

أمثلة:
```python
>>> import torch
>>> from diffusers import AutoPipelineForText2Image

>>> pipe = AutoPipelineForText2Image.from_pretrained(
...     "Tencent-Hunyuan/HunyuanDiT-v1.2-Diffusers",
...     torch_dtype=torch.float16,
...     enable_pag=True,
...     pag_applied_layers=[14],
... ).to("cuda")

>>> # prompt = "an astronaut riding a horse"
>>> prompt = "一个宇航员在骑马"
>>> image = pipe(prompt, guidance_scale=4, pag_scale=3).images[0]
```

#### encode_prompt[[diffusers.HunyuanDiTPAGPipeline.encode_prompt]]

```python
encode_prompt(prompt: str, device: device = None, dtype: dtype = None, num_images_per_prompt: int = 1, do_classifier_free_guidance: bool = True, negative_prompt: str | None = None, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, prompt_attention_mask: typing.Optional[torch.Tensor] = None, negative_prompt_attention_mask: typing.Optional[torch.Tensor] = None, max_sequence_length: int | None = None, text_encoder_index: int = 0)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_hunyuandit.py#L258)

**المعاملات:**

prompt (`str` أو `list[str]`، *اختياري*) : النص الذي سيتم ترميزه

device : (`torch.device`): جهاز torch

dtype (`torch.dtype`) : نوع 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`.

prompt_attention_mask (`torch.Tensor`، *اختياري*) : قناع الانتباه للموجّه. مطلوب عند تمرير `prompt_embeds` مباشرة.

negative_prompt_attention_mask (`torch.Tensor`، *اختياري*) : قناع الانتباه (Attention mask) الخاص بالموجّه السلبي. مطلوب عند تمرير `negative_prompt_embeds` مباشرةً.

max_sequence_length (`int`، *اختياري*) : أقصى طول تسلسل يُستخدم للموجّه.

text_encoder_index (`int`, *اختياري*) : فهرس مُشفِّر النص الذي سيتم استخدامه. `0` لـ clip و`1` لـ T5.

يقوم بتشفير الموجه إلى حالات مخفية لمشفّر النص.

## KolorsPAGPipeline[[diffusers.KolorsPAGPipeline]]

#### diffusers.KolorsPAGPipeline[[diffusers.KolorsPAGPipeline]]

```python
diffusers.KolorsPAGPipeline(vae: AutoencoderKL, text_encoder: ChatGLMModel, tokenizer: ChatGLMTokenizer, unet: UNet2DConditionModel, scheduler: KarrasDiffusionSchedulers, image_encoder: CLIPVisionModelWithProjection = None, feature_extractor: CLIPImageProcessorPil = None, force_zeros_for_empty_prompt: bool = False, pag_applied_layers: str | list[str] = 'mid')
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_kolors.py#L128)

**المعاملات:**

vae ([AutoencoderKL](/docs/diffusers/main/ar/api/models/autoencoderkl#diffusers.AutoencoderKL)) : نموذج الترميز التحويلي التبايني (VAE) لتشفير وفك تشفير الصور إلى تمثيلات كامنة ومنها.

text_encoder (`ChatGLMModel`) : مُشفِّر نص ثابت. يستخدم Kolors [ChatGLM3-6B](https://huggingface.co/THUDM/chatglm3-6b).

tokenizer (`ChatGLMTokenizer`) : مُقسِّم من الفئة [ChatGLMTokenizer](https://huggingface.co/THUDM/chatglm3-6b/blob/main/tokenization_chatglm.py).

unet ([UNet2DConditionModel](/docs/diffusers/main/ar/api/models/unet2d-cond#diffusers.UNet2DConditionModel)) : بنية U-Net الشرطية لفك تشويش كامن الصورة المُرمّزة.

scheduler ([SchedulerMixin](/docs/diffusers/main/ar/api/schedulers/overview#diffusers.SchedulerMixin)) : مُجدول يُستخدم بالاقتران مع `unet` لإزالة الضوضاء من كائنات الصورة المُرمّزة. يمكن أن يكون أحد [DDIMScheduler](/docs/diffusers/main/ar/api/schedulers/ddim#diffusers.DDIMScheduler) أو [LMSDiscreteScheduler](/docs/diffusers/main/ar/api/schedulers/lms_discrete#diffusers.LMSDiscreteScheduler) أو [PNDMScheduler](/docs/diffusers/main/ar/api/schedulers/pndm#diffusers.PNDMScheduler).

force_zeros_for_empty_prompt (`bool`، *اختياري*، القيمة الافتراضية `"False"`) : ما إذا كان يجب إجبار تضمينات الموجه السلبي على أن تكون دائمًا 0. راجع أيضًا إعدادات `Kwai-Kolors/Kolors-diffusers`.

pag_applied_layers (`str` or `list[str]``, *optional*, defaults to `"mid"`) : Set the transformer attention layers where to apply the perturbed attention guidance. Can be a string or a list of strings with "down", "mid", "up", a whole transformer block or specific transformer block attention layers, e.g.: ["mid"] ["down", "mid"] ["down", "mid", "up.block_1"] ["down", "mid", "up.block_1.attentions_0", "up.block_1.attentions_1"]

خط أنابيب لتوليد الصور من النص باستخدام Kolors.

يرث هذا النموذج من [DiffusionPipeline](/docs/diffusers/main/ar/api/pipelines/overview#diffusers.DiffusionPipeline). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع خطوط الأنابيب (مثل التنزيل أو الحفظ، أو التشغيل على جهاز معين، وما إلى ذلك).

تورث خط الأنابيب أيضًا طرق التحميل التالية:
- [load_lora_weights()](/docs/diffusers/main/ar/api/loaders/lora#diffusers.loaders.StableDiffusionXLLoraLoaderMixin.load_lora_weights) لتحميل أوزان LoRA
- [save_lora_weights()](/docs/diffusers/main/ar/api/loaders/lora#diffusers.loaders.StableDiffusionXLLoraLoaderMixin.save_lora_weights) لحفظ أوزان LoRA
- [load_ip_adapter()](/docs/diffusers/main/ar/api/loaders/ip_adapter#diffusers.loaders.IPAdapterMixin.load_ip_adapter) لتحميل وحدات IP Adapter

#### __call__[[diffusers.KolorsPAGPipeline.__call__]]

```python
__call__(prompt: str | list[str] = None, height: int | None = None, width: int | None = None, num_inference_steps: int = 50, timesteps: list = None, sigmas: list = None, denoising_end: float | None = None, guidance_scale: float = 5.0, negative_prompt: str | list[str] | None = None, num_images_per_prompt: int | None = 1, eta: float = 0.0, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, ip_adapter_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = None, ip_adapter_image_embeds: list[torch.Tensor] | None = None, output_type: str | None = 'pil', return_dict: bool = True, cross_attention_kwargs: dict[str, typing.Any] | None = None, original_size: tuple[int, int] | None = None, crops_coords_top_left: tuple = (0, 0), target_size: tuple[int, int] | None = None, negative_original_size: tuple[int, int] | None = None, negative_crops_coords_top_left: tuple = (0, 0), negative_target_size: tuple[int, int] | None = None, callback_on_step_end: typing.Union[typing.Callable[[int, int], NoneType], diffusers.callbacks.PipelineCallback, diffusers.callbacks.MultiPipelineCallbacks, NoneType] = None, callback_on_step_end_tensor_inputs: list = ['latents'], pag_scale: float = 3.0, pag_adaptive_scale: float = 0.0, max_sequence_length: int = 256)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_kolors.py#L665)

**المعاملات:**

prompt (`str` أو `list[str]`، *اختياري*) : الأمر أو الأوامر التي تُوجّه توليد الصورة. إذا لم يُعرَّف، يجب تمرير `prompt_embeds` بدلاً من ذلك.

height (`int`، *اختياري*، القيمة الافتراضية هي self.unet.config.sample_size * self.vae_scale_factor) : ارتفاع الصورة المولّدة بالبكسل. يتم ضبطه على 1024 افتراضيًا للحصول على أفضل النتائج. أي قيمة أقل من 512 بكسل لن تعمل بشكل جيد مع [Kwai-Kolors/Kolors-diffusers](https://huggingface.co/Kwai-Kolors/Kolors-diffusers) والنقاط المحفوظة التي لم يتم ضبطها بدقة على الدقة المنخفضة بشكل خاص.

width (`int`، *اختياري*، القيمة الافتراضية هي self.unet.config.sample_size * self.vae_scale_factor) : عرض الصورة المولدة بالبكسل. يتم ضبطه على 1024 افتراضيًا للحصول على أفضل النتائج. أي قيمة أقل من 512 بكسل لن تعمل بشكل جيد مع [Kwai-Kolors/Kolors-diffusers](https://huggingface.co/Kwai-Kolors/Kolors-diffusers) والنقاط المرجعية التي لم يتم ضبطها بدقة بشكل خاص على الدقات المنخفضة.

num_inference_steps (`int`، *اختياري*، القيمة الافتراضية 50) : عدد خطوات إزالة الضوضاء. تؤدي زيادة عدد خطوات إزالة الضوضاء عادةً إلى صورة ذات جودة أعلى على حساب بطء الاستدلال.

timesteps (`list[int]`، *اختياري*) : خطوات زمنية مخصصة لاستخدامها في عملية إزالة الضوضاء مع المجدولين الذين يدعمون معامل `timesteps` في طريقة `set_timesteps` الخاصة بهم. إذا لم يُعرَّف، فسيتم استخدام السلوك الافتراضي عند تمرير `num_inference_steps`. يجب أن تكون بترتيب تنازلي.

sigmas (`list[float]`، *اختياري*) : قيم `sigmas` مخصصة لاستخدامها في عملية إزالة الضوضاء مع المجدولين الذين يدعمون معامل `sigmas` في طريقة `set_timesteps` الخاصة بهم. إذا لم تُعرَّف، فسيتم استخدام السلوك الافتراضي عند تمرير `num_inference_steps`.

denoising_end (`float`، *اختياري*) : عند تحديده، يحدد نسبة (بين 0.0 و 1.0) من إجمالي عملية إزالة الضوضاء التي يجب إكمالها قبل إنهائها مبكرًا عمدًا. ونتيجةً لذلك، سيحتفظ العينة المُعاد بها بكمية كبيرة من الضوضاء كما تحددها الخطوات الزمنية المنفصلة التي يختارها المجدول. ينبغي استخدام معامل denoising_end بشكل مثالي عندما يشكل هذا الخط الأنابيب جزءًا من إعداد متعدد الخطوط الأنابيب "خليط من مُزيلات الضوضاء"، كما هو موضح في [**تحسين مخرجات الصورة**](https://huggingface.co/docs/diffusers/api/pipelines/stable_diffusion/stable_diffusion_xl#refining-the-image-output)

guidance_scale (`float`، *اختياري*، القيمة الافتراضية 5.0) : مقياس التوجيه كما هو مُعرَّف في [Classifier-Free Diffusion Guidance](https://huggingface.co/papers/2207.12598). يُعرَّف `guidance_scale` على أنه `w` من المعادلة 2. في [Imagen Paper](https://huggingface.co/papers/2205.11487). يتم تفعيل مقياس التوجيه عن طريق تعيين `guidance_scale > 1`. يشجع مقياس التوجيه الأعلى على توليد صور مرتبطة ارتباطًا وثيقًا بنص `prompt`، وعادةً على حساب انخفاض جودة الصورة.

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. ينطبق فقط على [schedulers.DDIMScheduler](/docs/diffusers/main/ar/api/schedulers/ddim#diffusers.DDIMScheduler)، وسيتم تجاهله في الحالات الأخرى.

generator (`torch.Generator` أو `list[torch.Generator]`، *اختياري*) : مولّد واحد أو قائمة من [مولّدات torch](https://pytorch.org/docs/stable/generated/torch.Generator.html) لجعل التوليد حتميًا.

latents (`torch.Tensor`، *اختياري*) : كامنات ضجيج مُولّدة مسبقًا، مُستخرجة من توزيع غاوسي، تُستخدم كمدخلات لتوليد الصور. يمكن استخدامها لتعديل نفس التوليد باستخدام أوامر مختلفة. إذا لم تُقدَّم، سيتم توليد كامنات من خلال الاستخراج باستخدام `generator` العشوائي المُقدَّم.

prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد تمثيلات النص من معامل الإدخال `prompt`.

pooled_prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مجمّعة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد تمثيلات نصية مجمّعة من معامل الإدخال `prompt`.

negative_prompt_embeds (`torch.Tensor`, *اختياري*) : تمثيلات نصية سالبة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد negative_prompt_embeds من معامل الإدخال `negative_prompt`.

negative_pooled_prompt_embeds (`torch.Tensor`, *اختياري*) : تمثيلات نصية مجمعة سالبة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد pooled negative_prompt_embeds من معامل الإدخال `negative_prompt`.

ip_adapter_image : (`PipelineImageInput`، *اختياري*): إدخال صورة اختياري للعمل مع IP Adapters.

ip_adapter_image_embeds (`list[torch.Tensor]`, *اختياري*) : تمثيلات صور مُولّدة مسبقًا لـ IP-Adapter. يجب أن يكون قائمة بطول يساوي عدد وحدات IP-adapter. يجب أن يكون كل عنصر منها متجهًا (tensor) بشكل `(batch_size, num_images, emb_dim)`. يجب أن يحتوي على تمثيل الصورة السلبية إذا كان `do_classifier_free_guidance` مضبوطًا على `True`. إذا لم يُقدَّم، تُحسب التمثيلات من معامل الإدخال `ip_adapter_image`.

output_type (`str`، *اختياري*، القيمة الافتراضية `"pil"`) : صيغة الصورة الناتجة عن عملية التوليد. اختر بين [PIL](https://pillow.readthedocs.io/en/stable/): `PIL.Image.Image` أو `np.array`.

return_dict (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان يجب إرجاع `~pipelines.kolors.KolorsPipelineOutput` بدلاً من tuple عادي.

cross_attention_kwargs (`dict`، *اختياري*) : قاموس kwargs يُمرَّر إلى `AttentionProcessor` إذا تم تحديده، كما هو معرَّف تحت `self.processor` في [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py).

original_size (`tuple[int]`، *اختياري*، القيمة الافتراضية (1024, 1024)) : إذا لم تكن `original_size` مطابقة لـ `target_size`، فسيبدو أن الصورة قد خضعت لتقليل أو زيادة حجمها. القيمة الافتراضية لـ `original_size` هي `(height, width)` إذا لم تُحدد. جزء من التكييف الدقيق (micro-conditioning) الخاص بـ SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952).

crops_coords_top_left (`tuple[int]`، *اختياري*، القيمة الافتراضية (0, 0)) : يمكن استخدام `crops_coords_top_left` لتوليد صورة تبدو وكأنها "مقتطعة" من الموضع `crops_coords_top_left` إلى الأسفل. عادةً ما يتم تحقيق صور مفضلة ومركزة جيدًا عن طريق تعيين `crops_coords_top_left` إلى (0, 0). جزء من micro-conditioning الخاص بـ SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952).

target_size (`tuple[int]`، *اختياري*، القيمة الافتراضية (1024, 1024)) : في معظم الحالات، يجب ضبط `target_size` على الارتفاع والعرض المطلوبين للصورة المولّدة. إذا لم يُحدد، فسيكون الافتراضي `(height, width)`. جزء من التكييف الدقيق (micro-conditioning) في SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952).

negative_original_size (`tuple[int]`، *اختياري*، القيمة الافتراضية (1024, 1024)) : يُستخدم لتقييد عملية التوليد سلبياً بناءً على دقة صورة محددة. وهو جزء من التكييف الدقيق (micro-conditioning) في SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952). لمزيد من المعلومات، راجع موضوع هذا المسألة: https://github.com/huggingface/diffusers/issues/4208.

negative_crops_coords_top_left (`tuple[int]`، *اختياري*، القيمة الافتراضية (0, 0)) : يُستخدم لتوجيه عملية التوليد سلبياً بناءً على إحداثيات قصّ محددة. وهو جزء من التكييف الدقيق (micro-conditioning) في SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952). لمزيد من المعلومات، راجع موضوع هذا الإشكال: https://github.com/huggingface/diffusers/issues/4208.

negative_target_size (`tuple[int]`، *اختياري*، القيمة الافتراضية (1024, 1024)) : يُستخدم لتقييد عملية التوليد سلبياً بناءً على دقة الصورة المستهدفة. يجب أن تكون مطابقة لـ `target_size` في معظم الحالات. وهو جزء من التكييف الدقيق (micro-conditioning) في SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952). لمزيد من المعلومات، راجع موضوع هذا الإشكال: https://github.com/huggingface/diffusers/issues/4208.

callback_on_step_end (`Callable`، `PipelineCallback`، `MultiPipelineCallbacks`، *اختياري*) : دالة أو فئة فرعية من `PipelineCallback` أو `MultiPipelineCallbacks` تُستدعى في نهاية كل خطوة إزالة ضوضاء أثناء الاستدلال، مع الحُجج التالية: `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) الخاص بك.

pag_scale (`float`، *اختياري*، القيمة الافتراضية 3.0) : معامل المقياس للتوجيه الانتباه المُعطَّل. إذا تم ضبطه على 0.0، فلن يُستخدم التوجيه الانتباه المُعطَّل.

pag_adaptive_scale (`float`، *اختياري*، القيمة الافتراضية 0.0) : معامل المقياس التكيفي لمرشد الانتباه المُعطَّل. إذا تم ضبطه على 0.0، يُستخدم `pag_scale`.

max_sequence_length (`int` الافتراضي 256) : أقصى طول تسلسل يُستخدم مع `prompt`.

**يعيد:** `~pipelines.kolors.KolorsPipelineOutput` أو `tuple`

`~pipelines.kolors.KolorsPipelineOutput` إذا كان `return_dict` هو True، وإلا `tuple`. عند إرجاع tuple، يكون العنصر الأول قائمة تحتوي على الصور المولّدة.

الدالة التي تُستدعى عند استدعاء خط الأنابيب للتوليد.

أمثلة:
```py
>>> import torch
>>> from diffusers import AutoPipelineForText2Image

>>> pipe = AutoPipelineForText2Image.from_pretrained(
...     "Kwai-Kolors/Kolors-diffusers",
...     variant="fp16",
...     torch_dtype=torch.float16,
...     enable_pag=True,
...     pag_applied_layers=["down.block_2.attentions_1", "up.block_0.attentions_1"],
... )
>>> pipe = pipe.to("cuda")

>>> prompt = (
...     "A photo of a ladybug, macro, zoom, high quality, film, holding a wooden sign with the text 'KOLORS'"
... )
>>> image = pipe(prompt, guidance_scale=5.5, pag_scale=1.5).images[0]
```

#### encode_prompt[[diffusers.KolorsPAGPipeline.encode_prompt]]

```python
encode_prompt(prompt, device: typing.Optional[torch.device] = None, num_images_per_prompt: int = 1, do_classifier_free_guidance: bool = True, negative_prompt = None, prompt_embeds: typing.Optional[torch.FloatTensor] = None, pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.FloatTensor] = None, negative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, max_sequence_length: int = 256)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_kolors.py#L216)

**المعاملات:**

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.FloatTensor`، *اختياري*) : تمثيلات نصية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد تمثيلات النص من معامل الإدخال `prompt`.

pooled_prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مجمّعة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد تمثيلات نصية مجمّعة من معامل الإدخال `prompt`.

negative_prompt_embeds (`torch.FloatTensor`، *اختياري*) : تمثيلات نصية سالبة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد negative_prompt_embeds من معامل الإدخال `negative_prompt`.

negative_pooled_prompt_embeds (`torch.Tensor`, *اختياري*) : تمثيلات نصية مجمعة سالبة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد pooled negative_prompt_embeds من معامل الإدخال `negative_prompt`.

max_sequence_length (`int` الافتراضي 256) : أقصى طول تسلسل يُستخدم مع `prompt`.

يقوم بتشفير الموجه إلى حالات مخفية لمشفّر النص.

#### get_guidance_scale_embedding[[diffusers.KolorsPAGPipeline.get_guidance_scale_embedding]]

```python
get_guidance_scale_embedding(w: Tensor, embedding_dim: int = 512, dtype: dtype = torch.float32)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_kolors.py#L608)

**المعاملات:**

w (`torch.Tensor`) : توليد متجهات تضمين بمقياس توجيه محدد لتُثري متضمينات خطوات الزمن اللاحقة.

embedding_dim (`int`، *اختياري*، القيمة الافتراضية 512) : بُعد التضمينات (embeddings) التي سيتم توليدها.

dtype (`torch.dtype`، *اختياري*، الافتراضي `torch.float32`) : نوع البيانات للتضمينات المولّدة.

**يعيد:** `torch.Tensor`

متجهات تضمين بشكل `(len(w), embedding_dim)`.

انظر إلى https://github.com/google-research/vdm/blob/dc27b98a554f65cdc654b800da5aa1846545d41b/model_vdm.py#L298

## StableDiffusionPAGInpaintPipeline[[diffusers.StableDiffusionPAGInpaintPipeline]]

#### diffusers.StableDiffusionPAGInpaintPipeline[[diffusers.StableDiffusionPAGInpaintPipeline]]

```python
diffusers.StableDiffusionPAGInpaintPipeline(vae: AutoencoderKL, text_encoder: CLIPTextModel, tokenizer: CLIPTokenizer, unet: UNet2DConditionModel, scheduler: KarrasDiffusionSchedulers, safety_checker: StableDiffusionSafetyChecker, feature_extractor: CLIPImageProcessorPil, image_encoder: CLIPVisionModelWithProjection = None, requires_safety_checker: bool = True, pag_applied_layers: str | list[str] = 'mid')
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_sd_inpaint.py#L184)

**المعاملات:**

vae ([AutoencoderKL](/docs/diffusers/main/ar/api/models/autoencoderkl#diffusers.AutoencoderKL)) : نموذج الترميز التحويلي التبايني (VAE) لتشفير وفك تشفير الصور إلى تمثيلات كامنة ومنها.

text_encoder ([CLIPTextModel](https://huggingface.co/docs/transformers/main/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/main/en/model_doc/clip#transformers.CLIPTokenizer)) : `CLIPTokenizer` لتجزئة النص.

unet ([UNet2DConditionModel](/docs/diffusers/main/ar/api/models/unet2d-cond#diffusers.UNet2DConditionModel)) : نموذج `UNet2DConditionModel` لإزالة الضوضاء من الكامنات المُرمّزة للصورة.

scheduler ([SchedulerMixin](/docs/diffusers/main/ar/api/schedulers/overview#diffusers.SchedulerMixin)) : مُجدول يُستخدم بالاقتران مع `unet` لإزالة الضوضاء من كائنات الصورة المُرمّزة. يمكن أن يكون أحد [DDIMScheduler](/docs/diffusers/main/ar/api/schedulers/ddim#diffusers.DDIMScheduler) أو [LMSDiscreteScheduler](/docs/diffusers/main/ar/api/schedulers/lms_discrete#diffusers.LMSDiscreteScheduler) أو [PNDMScheduler](/docs/diffusers/main/ar/api/schedulers/pndm#diffusers.PNDMScheduler).

safety_checker (`StableDiffusionSafetyChecker`) : وحدة تصنيف تُقدّر ما إذا كان يمكن اعتبار الصور المولّدة مسيئة أو ضارة. يُرجى الرجوع إلى [بطاقة النموذج](https://huggingface.co/stable-diffusion-v1-5/stable-diffusion-v1-5) لمزيد من التفاصيل حول الأضرار المحتملة التي قد يسببها النموذج.

feature_extractor ([CLIPImageProcessor](https://huggingface.co/docs/transformers/main/en/model_doc/clip#transformers.CLIPImageProcessor)) : مُعالج صور `CLIPImageProcessor` لاستخراج الميزات من الصور المولّدة؛ يُستخدم كمدخلات لـ `safety_checker`.

خط أنابيب لتوليد الصور من النص باستخدام Stable Diffusion.

يرث هذا النموذج من [DiffusionPipeline](/docs/diffusers/main/ar/api/pipelines/overview#diffusers.DiffusionPipeline). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة المُنفَّذة لجميع خطوط الأنابيب (التنزيل، الحفظ، التشغيل على جهاز معين، إلخ).

تورث خط الأنابيب أيضًا طرق التحميل التالية:
- [load_textual_inversion()](/docs/diffusers/main/ar/api/loaders/textual_inversion#diffusers.loaders.TextualInversionLoaderMixin.load_textual_inversion) لتحميل تضمينات الانعكاس النصي
- [load_lora_weights()](/docs/diffusers/main/ar/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights) لتحميل أوزان LoRA
- [save_lora_weights()](/docs/diffusers/main/ar/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.save_lora_weights) لحفظ أوزان LoRA
- [from_single_file()](/docs/diffusers/main/ar/api/loaders/single_file#diffusers.loaders.FromSingleFileMixin.from_single_file) لتحميل ملفات `.ckpt`
- [load_ip_adapter()](/docs/diffusers/main/ar/api/loaders/ip_adapter#diffusers.loaders.IPAdapterMixin.load_ip_adapter) لتحميل وحدات IP Adapter

#### __call__[[diffusers.StableDiffusionPAGInpaintPipeline.__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, mask_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = None, masked_image_latents: Tensor = None, height: int | None = None, width: int | None = None, padding_mask_crop: int | None = None, strength: float = 0.9999, num_inference_steps: int = 50, timesteps: list = None, sigmas: list = None, guidance_scale: float = 7.5, negative_prompt: str | list[str] | None = None, num_images_per_prompt: int | None = 1, eta: float = 0.0, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, ip_adapter_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = None, ip_adapter_image_embeds: list[torch.Tensor] | None = None, output_type: str | None = 'pil', return_dict: bool = True, cross_attention_kwargs: dict[str, typing.Any] | None = None, guidance_rescale: float = 0.0, clip_skip: int | None = None, callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = None, callback_on_step_end_tensor_inputs: list = ['latents'], pag_scale: float = 3.0, pag_adaptive_scale: float = 0.0)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_sd_inpaint.py#L910)

**المعاملات:**

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`، مصفوفة numpy أو tensor تمثل دفعة من الصور التي سيتم إجراء inpaint عليها (أي الأجزاء التي سيتم إخفاؤها باستخدام `mask_image` وإعادة رسمها وفقًا لـ `prompt`).

mask_image (`torch.Tensor`، `PIL.Image.Image`، `np.ndarray`، `list[torch.Tensor]`، `list[PIL.Image.Image]`، أو `list[np.ndarray]`) : `Image`، مصفوفة numpy أو tensor تمثل دفعة من الصور لتطبيق قناع على `image`. يتم إعادة رسم البكسلات البيضاء في القناع بينما تُحفظ البكسلات السوداء. إذا كان `mask_image` صورة PIL، يتم تحويلها إلى قناة واحدة (السطوع) قبل الاستخدام. وإذا كانت مصفوفة numpy أو tensor من pytorch، يجب أن تحتوي على قناة لون واحدة (L) بدلاً من ثلاث، لذا فإن الشكل المتوقع لـ tensor من pytorch هو `(B, 1, H, W)`، `(B, H, W)`، `(1, H, W)`، `(H, W)`. أما لمصفوفة numpy فيكون الشكل `(B, H, W, 1)`، `(B, H, W)`، `(H, W, 1)`، أو `(H, W)`.

masked_image_latents (`torch.Tensor`، *اختياري*) : تمثيل كامن مُرمَّز مسبقًا للصورة المقنَّعة (لأغراض إعادة الرسم).

height (`int`، *اختياري*، القيمة الافتراضية هي `self.unet.config.sample_size * self.vae_scale_factor`) : ارتفاع الصورة المولّدة بالبكسل.

width (`int`، *اختياري*، القيمة الافتراضية هي `self.unet.config.sample_size * self.vae_scale_factor`) : عرض الصورة المولدة بالبكسل.

padding_mask_crop (`int`, *اختياري*, القيمة الافتراضية `None`) : حجم الهامش في الاقتصاص الذي سيُطبَّق على الصورة والقناع. إذا كانت `None`، فلن يُطبَّق أي اقتصاص على الصورة وmask_image. إذا لم تكن `padding_mask_crop` هي `None`، فسيتم أولاً إيجاد منطقة مستطيلة بنفس نسبة أبعاد الصورة وتحتوي على كل المناطق المقنَّعة، ثم توسيع تلك المنطقة بناءً على `padding_mask_crop`. بعد ذلك، ستُقتَص الصورة وmask_image بناءً على المنطقة الموسَّعة قبل تغيير حجمهما إلى حجم الصورة الأصلي لأغراض إعادة البناء. هذا مفيد عندما تكون المنطقة المقنَّعة صغيرة بينما تكون الصورة كبيرة وتحتوي على معلومات غير ذات صلة بإعادة البناء، مثل الخلفية.

strength (`float`، *اختياري*، القيمة الافتراضية 0.9999) : يحدد مدى تحويل الصورة المرجعية `image`. يجب أن يكون بين 0 و 1. تُستخدم `image` كنقطة انطلاق، وكلما ارتفعت قيمة `strength` زاد مقدار الضوضاء المضافة. يعتمد عدد خطوات إزالة الضوضاء على كمية الضوضاء المضافة في البداية. عندما تكون `strength` تساوي 1، تكون الضوضاء المضافة في أقصى حد، وتعمل عملية إزالة الضوضاء لعدد التكرارات الكامل المحدد في `num_inference_steps`. القيمة 1 تتجاهل `image` بشكل أساسي.

num_inference_steps (`int`، *اختياري*، القيمة الافتراضية 50) : عدد خطوات إزالة الضوضاء. تؤدي زيادة عدد خطوات إزالة الضوضاء عادةً إلى صورة ذات جودة أعلى على حساب بطء الاستدلال.

timesteps (`list[int]`، *اختياري*) : خطوات زمنية مخصصة لاستخدامها في عملية إزالة الضوضاء مع المجدولين الذين يدعمون معامل `timesteps` في طريقة `set_timesteps` الخاصة بهم. إذا لم يُعرَّف، فسيتم استخدام السلوك الافتراضي عند تمرير `num_inference_steps`. يجب أن تكون بترتيب تنازلي.

sigmas (`list[float]`، *اختياري*) : قيم `sigmas` مخصصة لاستخدامها في عملية إزالة الضوضاء مع المجدولين الذين يدعمون معامل `sigmas` في طريقة `set_timesteps` الخاصة بهم. إذا لم تُعرَّف، فسيتم استخدام السلوك الافتراضي عند تمرير `num_inference_steps`.

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/main/ar/api/schedulers/ddim#diffusers.DDIMScheduler)، ويُتجاهل في جدولة أخرى.

generator (`torch.Generator` أو `list[torch.Generator]`، *اختياري*) : [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html) لجعل التوليد حتميًا.

latents (`torch.Tensor`، *اختياري*) : كامنات ضجيج مُولّدة مسبقًا، مُستخرجة من توزيع غاوسي، تُستخدم كمدخلات لتوليد الصور. يمكن استخدامها لتعديل نفس التوليد باستخدام أوامر مختلفة. إذا لم تُقدَّم، يتم توليد كامنات من خلال الاستخراج باستخدام `generator` العشوائي المُقدَّم.

prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة (وزن الأوامر). إذا لم تُقدَّم، يتم توليد تمثيلات النص من معامل الإدخال `prompt`.

negative_prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية سالبة مُولّدة مسبقًا. يمكن استخدامها لضبط مدخلات النص بسهولة (وزن الموجه). إذا لم تُقدَّم، يتم توليد `negative_prompt_embeds` من معامل الإدخال `negative_prompt`.

ip_adapter_image : (`PipelineImageInput`، *اختياري*): إدخال صورة اختياري للعمل مع IP Adapters.

ip_adapter_image_embeds (`list[torch.Tensor]`, *اختياري*) : تمثيلات صور مُولّدة مسبقًا لـ IP-Adapter. يجب أن يكون قائمة بطول يساوي عدد وحدات IP-adapter. يجب أن يكون كل عنصر منها متجهًا (tensor) بشكل `(batch_size, num_images, emb_dim)`. يجب أن يحتوي على تمثيل الصورة السلبية إذا كان `do_classifier_free_guidance` مضبوطًا على `True`. إذا لم يُقدَّم، تُحسب التمثيلات من معامل الإدخال `ip_adapter_image`.

output_type (`str`، *اختياري*، الافتراضي `"pil"`) : صيغة الصورة المولّدة. اختر بين `PIL.Image` أو `np.array`.

return_dict (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان يجب إرجاع [StableDiffusionPipelineOutput](/docs/diffusers/main/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).

guidance_rescale (`float`, *optional*, defaults to 0.0) : Guidance rescale factor from [Common Diffusion Noise Schedules and Sample Steps are Flawed](https://huggingface.co/papers/2305.08891). Guidance rescale factor should fix overexposure when using zero terminal SNR.

clip_skip (`int`, *اختياري*) : عدد الطبقات التي سيتم تجاوزها من CLIP أثناء حساب تمثيلات الموجه. القيمة 1 تعني أنه سيتم استخدام مخرجات الطبقة قبل الأخيرة لحساب تمثيلات الموجه.

callback_on_step_end (`Callable`، `PipelineCallback`، `MultiPipelineCallbacks`، *اختياري*) : دالة أو فئة فرعية من `PipelineCallback` أو `MultiPipelineCallbacks` تُستدعى في نهاية كل خطوة إزالة ضوضاء أثناء الاستدلال، مع الحُجج التالية: `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) الخاص بك.

pag_scale (`float`، *اختياري*، القيمة الافتراضية 3.0) : معامل المقياس للتوجيه الانتباه المُعطَّل. إذا تم ضبطه على 0.0، فلن يُستخدم التوجيه الانتباه المُعطَّل.

pag_adaptive_scale (`float`، *اختياري*، القيمة الافتراضية 0.0) : معامل المقياس التكيفي لمرشد الانتباه المُعطَّل. إذا تم ضبطه على 0.0، يُستخدم `pag_scale`.

**يعيد:** [StableDiffusionPipelineOutput](/docs/diffusers/main/ar/api/pipelines/stable_diffusion/img2img#diffusers.pipelines.stable_diffusion.StableDiffusionPipelineOutput) أو `tuple`

إذا كان `return_dict` هو `True`، يُعاد [StableDiffusionPipelineOutput](/docs/diffusers/main/ar/api/pipelines/stable_diffusion/img2img#diffusers.pipelines.stable_diffusion.StableDiffusionPipelineOutput)، وإلا يُعاد `tuple` حيث يكون العنصر الأول قائمة بالصور المولّدة والعنصر الثاني قائمة من قيم `bool` تشير إلى ما إذا كانت الصورة المولّدة المقابلة تحتوي على محتوى "غير آمن للعمل" (nsfw).

دالة الاستدعاء call لخط الأنابيب pipeline الخاص بالتوليد.

أمثلة:
```py
>>> import torch
>>> from diffusers import AutoPipelineForInpainting

>>> pipe = AutoPipelineForInpainting.from_pretrained(
...     "stable-diffusion-v1-5/stable-diffusion-v1-5", torch_dtype=torch.float16, enable_pag=True
... )
>>> pipe = pipe.to("cuda")
>>> img_url = "https://raw.githubusercontent.com/CompVis/latent-diffusion/main/data/inpainting_examples/overture-creations-5sI6fQgYIuo.png"
>>> mask_url = "https://raw.githubusercontent.com/CompVis/latent-diffusion/main/data/inpainting_examples/overture-creations-5sI6fQgYIuo_mask.png"
>>> init_image = load_image(img_url).convert("RGB")
>>> mask_image = load_image(mask_url).convert("RGB")
>>> prompt = "A majestic tiger sitting on a bench"
>>> image = pipe(
...     prompt=prompt,
...     image=init_image,
...     mask_image=mask_image,
...     strength=0.8,
...     num_inference_steps=50,
...     guidance_scale=guidance_scale,
...     generator=generator,
...     pag_scale=pag_scale,
... ).images[0]
```

#### encode_prompt[[diffusers.StableDiffusionPAGInpaintPipeline.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/main/src/diffusers/pipelines/pag/pipeline_pag_sd_inpaint.py#L334)

**المعاملات:**

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 تعني أنه سيتم استخدام مخرجات الطبقة قبل الأخيرة لحساب تمثيلات الموجه.

يقوم بتشفير الموجه إلى حالات مخفية لمشفّر النص.

#### get_guidance_scale_embedding[[diffusers.StableDiffusionPAGInpaintPipeline.get_guidance_scale_embedding]]

```python
get_guidance_scale_embedding(w: Tensor, embedding_dim: int = 512, dtype: dtype = torch.float32)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_sd_inpaint.py#L849)

**المعاملات:**

w (`torch.Tensor`) : توليد متجهات تضمين بمقياس توجيه محدد لتُثري متضمينات خطوات الزمن اللاحقة.

embedding_dim (`int`، *اختياري*، القيمة الافتراضية 512) : بُعد التضمينات (embeddings) التي سيتم توليدها.

dtype (`torch.dtype`، *اختياري*، الافتراضي `torch.float32`) : نوع البيانات للتضمينات المولّدة.

**يعيد:** `torch.Tensor`

متجهات تضمين بشكل `(len(w), embedding_dim)`.

انظر إلى https://github.com/google-research/vdm/blob/dc27b98a554f65cdc654b800da5aa1846545d41b/model_vdm.py#L298

## StableDiffusionPAGPipeline[[diffusers.StableDiffusionPAGPipeline]]

#### diffusers.StableDiffusionPAGPipeline[[diffusers.StableDiffusionPAGPipeline]]

```python
diffusers.StableDiffusionPAGPipeline(vae: AutoencoderKL, text_encoder: CLIPTextModel, tokenizer: CLIPTokenizer, unet: UNet2DConditionModel, scheduler: KarrasDiffusionSchedulers, safety_checker: StableDiffusionSafetyChecker, feature_extractor: CLIPImageProcessorPil, image_encoder: CLIPVisionModelWithProjection = None, requires_safety_checker: bool = True, pag_applied_layers: str | list[str] = 'mid')
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_sd.py#L157)

**المعاملات:**

vae ([AutoencoderKL](/docs/diffusers/main/ar/api/models/autoencoderkl#diffusers.AutoencoderKL)) : نموذج الترميز التحويلي التبايني (VAE) لتشفير وفك تشفير الصور إلى تمثيلات كامنة ومنها.

text_encoder ([CLIPTextModel](https://huggingface.co/docs/transformers/main/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/main/en/model_doc/clip#transformers.CLIPTokenizer)) : `CLIPTokenizer` لتجزئة النص.

unet ([UNet2DConditionModel](/docs/diffusers/main/ar/api/models/unet2d-cond#diffusers.UNet2DConditionModel)) : نموذج `UNet2DConditionModel` لإزالة الضوضاء من الكامنات المُرمّزة للصورة.

scheduler ([SchedulerMixin](/docs/diffusers/main/ar/api/schedulers/overview#diffusers.SchedulerMixin)) : مُجدول يُستخدم بالاقتران مع `unet` لإزالة الضوضاء من كائنات الصورة المُرمّزة. يمكن أن يكون أحد [DDIMScheduler](/docs/diffusers/main/ar/api/schedulers/ddim#diffusers.DDIMScheduler) أو [LMSDiscreteScheduler](/docs/diffusers/main/ar/api/schedulers/lms_discrete#diffusers.LMSDiscreteScheduler) أو [PNDMScheduler](/docs/diffusers/main/ar/api/schedulers/pndm#diffusers.PNDMScheduler).

safety_checker (`StableDiffusionSafetyChecker`) : وحدة تصنيف تُقدّر ما إذا كان يمكن اعتبار الصور المولّدة مسيئة أو ضارة. يُرجى الرجوع إلى [بطاقة النموذج](https://huggingface.co/stable-diffusion-v1-5/stable-diffusion-v1-5) لمزيد من التفاصيل حول الأضرار المحتملة التي قد يسببها النموذج.

feature_extractor ([CLIPImageProcessor](https://huggingface.co/docs/transformers/main/en/model_doc/clip#transformers.CLIPImageProcessor)) : مُعالج صور `CLIPImageProcessor` لاستخراج الميزات من الصور المولّدة؛ يُستخدم كمدخلات لـ `safety_checker`.

خط أنابيب لتوليد الصور من النص باستخدام Stable Diffusion.

يرث هذا النموذج من [DiffusionPipeline](/docs/diffusers/main/ar/api/pipelines/overview#diffusers.DiffusionPipeline). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة المُنفَّذة لجميع خطوط الأنابيب (التنزيل، الحفظ، التشغيل على جهاز معين، إلخ).

تورث خط الأنابيب أيضًا طرق التحميل التالية:
- [load_textual_inversion()](/docs/diffusers/main/ar/api/loaders/textual_inversion#diffusers.loaders.TextualInversionLoaderMixin.load_textual_inversion) لتحميل تضمينات الانعكاس النصي
- [load_lora_weights()](/docs/diffusers/main/ar/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights) لتحميل أوزان LoRA
- [save_lora_weights()](/docs/diffusers/main/ar/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.save_lora_weights) لحفظ أوزان LoRA
- [from_single_file()](/docs/diffusers/main/ar/api/loaders/single_file#diffusers.loaders.FromSingleFileMixin.from_single_file) لتحميل ملفات `.ckpt`
- [load_ip_adapter()](/docs/diffusers/main/ar/api/loaders/ip_adapter#diffusers.loaders.IPAdapterMixin.load_ip_adapter) لتحميل وحدات IP Adapter

#### __call__[[diffusers.StableDiffusionPAGPipeline.__call__]]

```python
__call__(prompt: str | list[str] = None, height: int | None = None, width: int | None = None, num_inference_steps: int = 50, timesteps: list = None, sigmas: list = None, guidance_scale: float = 7.5, negative_prompt: str | list[str] | None = None, num_images_per_prompt: int | None = 1, eta: float = 0.0, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, ip_adapter_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = None, ip_adapter_image_embeds: list[torch.Tensor] | None = None, output_type: str | None = 'pil', return_dict: bool = True, cross_attention_kwargs: dict[str, typing.Any] | None = None, guidance_rescale: float = 0.0, clip_skip: int | None = None, callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = None, callback_on_step_end_tensor_inputs: list = ['latents'], pag_scale: float = 3.0, pag_adaptive_scale: float = 0.0)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_sd.py#L745)

**المعاملات:**

prompt (`str` أو `list[str]`، *اختياري*) : الأمر أو الأوامر التي تُوجّه توليد الصورة. إذا لم تُعرَّف، يجب عليك تمرير `prompt_embeds`.

height (`int`، *اختياري*، القيمة الافتراضية هي `self.unet.config.sample_size * self.vae_scale_factor`) : ارتفاع الصورة المولّدة بالبكسل.

width (`int`، *اختياري*، القيمة الافتراضية هي `self.unet.config.sample_size * self.vae_scale_factor`) : عرض الصورة المولدة بالبكسل.

num_inference_steps (`int`، *اختياري*، القيمة الافتراضية 50) : عدد خطوات إزالة الضوضاء. تؤدي زيادة عدد خطوات إزالة الضوضاء عادةً إلى صورة ذات جودة أعلى على حساب بطء الاستدلال.

timesteps (`list[int]`، *اختياري*) : خطوات زمنية مخصصة لاستخدامها في عملية إزالة الضوضاء مع المجدولين الذين يدعمون معامل `timesteps` في طريقة `set_timesteps` الخاصة بهم. إذا لم يُعرَّف، فسيتم استخدام السلوك الافتراضي عند تمرير `num_inference_steps`. يجب أن تكون بترتيب تنازلي.

sigmas (`list[float]`، *اختياري*) : قيم `sigmas` مخصصة لاستخدامها في عملية إزالة الضوضاء مع المجدولين الذين يدعمون معامل `sigmas` في طريقة `set_timesteps` الخاصة بهم. إذا لم تُعرَّف، فسيتم استخدام السلوك الافتراضي عند تمرير `num_inference_steps`.

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/main/ar/api/schedulers/ddim#diffusers.DDIMScheduler)، ويُتجاهل في جدولة أخرى.

generator (`torch.Generator` أو `list[torch.Generator]`، *اختياري*) : [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html) لجعل التوليد حتميًا.

latents (`torch.Tensor`، *اختياري*) : كامنات ضجيج مُولّدة مسبقًا، مُستخرجة من توزيع غاوسي، تُستخدم كمدخلات لتوليد الصور. يمكن استخدامها لتعديل نفس التوليد باستخدام أوامر مختلفة. إذا لم تُقدَّم، يتم توليد كامنات من خلال الاستخراج باستخدام `generator` العشوائي المُقدَّم.

prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة (وزن الأوامر). إذا لم تُقدَّم، يتم توليد تمثيلات النص من معامل الإدخال `prompt`.

negative_prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية سالبة مُولّدة مسبقًا. يمكن استخدامها لضبط مدخلات النص بسهولة (وزن الموجه). إذا لم تُقدَّم، يتم توليد `negative_prompt_embeds` من معامل الإدخال `negative_prompt`.

ip_adapter_image : (`PipelineImageInput`، *اختياري*): إدخال صورة اختياري للعمل مع IP Adapters.

ip_adapter_image_embeds (`list[torch.Tensor]`, *اختياري*) : تمثيلات صور مُولّدة مسبقًا لـ IP-Adapter. يجب أن يكون قائمة بطول يساوي عدد وحدات IP-adapter. يجب أن يكون كل عنصر منها متجهًا (tensor) بشكل `(batch_size, num_images, emb_dim)`. يجب أن يحتوي على تمثيل الصورة السلبية إذا كان `do_classifier_free_guidance` مضبوطًا على `True`. إذا لم يُقدَّم، تُحسب التمثيلات من معامل الإدخال `ip_adapter_image`.

output_type (`str`، *اختياري*، الافتراضي `"pil"`) : صيغة الصورة المولّدة. اختر بين `PIL.Image` أو `np.array`.

return_dict (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان يجب إرجاع [StableDiffusionPipelineOutput](/docs/diffusers/main/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).

guidance_rescale (`float`, *optional*, defaults to 0.0) : Guidance rescale factor from [Common Diffusion Noise Schedules and Sample Steps are Flawed](https://huggingface.co/papers/2305.08891). Guidance rescale factor should fix overexposure when using zero terminal SNR.

clip_skip (`int`, *اختياري*) : عدد الطبقات التي سيتم تجاوزها من CLIP أثناء حساب تمثيلات الموجه. القيمة 1 تعني أنه سيتم استخدام مخرجات الطبقة قبل الأخيرة لحساب تمثيلات الموجه.

callback_on_step_end (`Callable`، `PipelineCallback`، `MultiPipelineCallbacks`، *اختياري*) : دالة أو فئة فرعية من `PipelineCallback` أو `MultiPipelineCallbacks` تُستدعى في نهاية كل خطوة إزالة ضوضاء أثناء الاستدلال، مع الحُجج التالية: `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) الخاص بك.

pag_scale (`float`، *اختياري*، القيمة الافتراضية 3.0) : معامل المقياس للتوجيه الانتباه المُعطَّل. إذا تم ضبطه على 0.0، فلن يُستخدم التوجيه الانتباه المُعطَّل.

pag_adaptive_scale (`float`، *اختياري*، القيمة الافتراضية 0.0) : معامل المقياس التكيفي لمرشد الانتباه المُعطَّل. إذا تم ضبطه على 0.0، يُستخدم `pag_scale`.

**يعيد:** [StableDiffusionPipelineOutput](/docs/diffusers/main/ar/api/pipelines/stable_diffusion/img2img#diffusers.pipelines.stable_diffusion.StableDiffusionPipelineOutput) أو `tuple`

إذا كان `return_dict` هو `True`، يُعاد [StableDiffusionPipelineOutput](/docs/diffusers/main/ar/api/pipelines/stable_diffusion/img2img#diffusers.pipelines.stable_diffusion.StableDiffusionPipelineOutput)، وإلا يُعاد `tuple` حيث يكون العنصر الأول قائمة بالصور المولّدة والعنصر الثاني قائمة من قيم `bool` تشير إلى ما إذا كانت الصورة المولّدة المقابلة تحتوي على محتوى "غير آمن للعمل" (nsfw).

دالة الاستدعاء call لخط الأنابيب pipeline الخاص بالتوليد.

أمثلة:
```py
>>> import torch
>>> from diffusers import AutoPipelineForText2Image

>>> pipe = AutoPipelineForText2Image.from_pretrained(
...     "stable-diffusion-v1-5/stable-diffusion-v1-5", torch_dtype=torch.float16, enable_pag=True
... )
>>> pipe = pipe.to("cuda")

>>> prompt = "a photo of an astronaut riding a horse on mars"
>>> image = pipe(prompt, pag_scale=0.3).images[0]
```

#### encode_prompt[[diffusers.StableDiffusionPAGPipeline.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/main/src/diffusers/pipelines/pag/pipeline_pag_sd.py#L304)

**المعاملات:**

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 تعني أنه سيتم استخدام مخرجات الطبقة قبل الأخيرة لحساب تمثيلات الموجه.

يقوم بتشفير الموجه إلى حالات مخفية لمشفّر النص.

#### get_guidance_scale_embedding[[diffusers.StableDiffusionPAGPipeline.get_guidance_scale_embedding]]

```python
get_guidance_scale_embedding(w: Tensor, embedding_dim: int = 512, dtype: dtype = torch.float32)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_sd.py#L684)

**المعاملات:**

w (`torch.Tensor`) : توليد متجهات تضمين بمقياس توجيه محدد لتُثري متضمينات خطوات الزمن اللاحقة.

embedding_dim (`int`، *اختياري*، القيمة الافتراضية 512) : بُعد التضمينات (embeddings) التي سيتم توليدها.

dtype (`torch.dtype`، *اختياري*، الافتراضي `torch.float32`) : نوع البيانات للتضمينات المولّدة.

**يعيد:** `torch.Tensor`

متجهات تضمين بشكل `(len(w), embedding_dim)`.

انظر إلى https://github.com/google-research/vdm/blob/dc27b98a554f65cdc654b800da5aa1846545d41b/model_vdm.py#L298

## StableDiffusionPAGImg2ImgPipeline[[diffusers.StableDiffusionPAGImg2ImgPipeline]]

#### diffusers.StableDiffusionPAGImg2ImgPipeline[[diffusers.StableDiffusionPAGImg2ImgPipeline]]

```python
diffusers.StableDiffusionPAGImg2ImgPipeline(vae: AutoencoderKL, text_encoder: CLIPTextModel, tokenizer: CLIPTokenizer, unet: UNet2DConditionModel, scheduler: KarrasDiffusionSchedulers, safety_checker: StableDiffusionSafetyChecker, feature_extractor: CLIPImageProcessorPil, image_encoder: CLIPVisionModelWithProjection = None, requires_safety_checker: bool = True, pag_applied_layers: str | list[str] = 'mid')
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_sd_img2img.py#L152)

**المعاملات:**

vae ([AutoencoderKL](/docs/diffusers/main/ar/api/models/autoencoderkl#diffusers.AutoencoderKL)) : نموذج الترميز التحويلي التبايني (VAE) لتشفير وفك تشفير الصور إلى تمثيلات كامنة ومنها.

text_encoder ([CLIPTextModel](https://huggingface.co/docs/transformers/main/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/main/en/model_doc/clip#transformers.CLIPTokenizer)) : `CLIPTokenizer` لتجزئة النص.

unet ([UNet2DConditionModel](/docs/diffusers/main/ar/api/models/unet2d-cond#diffusers.UNet2DConditionModel)) : نموذج `UNet2DConditionModel` لإزالة الضوضاء من الكامنات المُرمّزة للصورة.

scheduler ([SchedulerMixin](/docs/diffusers/main/ar/api/schedulers/overview#diffusers.SchedulerMixin)) : مُجدول يُستخدم بالاقتران مع `unet` لإزالة الضوضاء من كائنات الصورة المُرمّزة. يمكن أن يكون أحد [DDIMScheduler](/docs/diffusers/main/ar/api/schedulers/ddim#diffusers.DDIMScheduler) أو [LMSDiscreteScheduler](/docs/diffusers/main/ar/api/schedulers/lms_discrete#diffusers.LMSDiscreteScheduler) أو [PNDMScheduler](/docs/diffusers/main/ar/api/schedulers/pndm#diffusers.PNDMScheduler).

safety_checker (`StableDiffusionSafetyChecker`) : وحدة تصنيف تُقدّر ما إذا كان يمكن اعتبار الصور المولّدة مسيئة أو ضارة. يُرجى الرجوع إلى [بطاقة النموذج](https://huggingface.co/stable-diffusion-v1-5/stable-diffusion-v1-5) لمزيد من التفاصيل حول الأضرار المحتملة التي قد يسببها النموذج.

feature_extractor ([CLIPImageProcessor](https://huggingface.co/docs/transformers/main/en/model_doc/clip#transformers.CLIPImageProcessor)) : مُعالج صور `CLIPImageProcessor` لاستخراج الميزات من الصور المولّدة؛ يُستخدم كمدخلات لـ `safety_checker`.

خط أنابيب لتوليد الصور من الصور باستخدام التوجيه النصي مع Stable Diffusion.

يرث هذا النموذج من [DiffusionPipeline](/docs/diffusers/main/ar/api/pipelines/overview#diffusers.DiffusionPipeline). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة المُنفَّذة لجميع خطوط الأنابيب (التنزيل، الحفظ، التشغيل على جهاز معين، إلخ).

تورث خط الأنابيب أيضًا طرق التحميل التالية:
- [load_textual_inversion()](/docs/diffusers/main/ar/api/loaders/textual_inversion#diffusers.loaders.TextualInversionLoaderMixin.load_textual_inversion) لتحميل تضمينات الانعكاس النصي
- [load_lora_weights()](/docs/diffusers/main/ar/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights) لتحميل أوزان LoRA
- [save_lora_weights()](/docs/diffusers/main/ar/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.save_lora_weights) لحفظ أوزان LoRA
- [from_single_file()](/docs/diffusers/main/ar/api/loaders/single_file#diffusers.loaders.FromSingleFileMixin.from_single_file) لتحميل ملفات `.ckpt`
- [load_ip_adapter()](/docs/diffusers/main/ar/api/loaders/ip_adapter#diffusers.loaders.IPAdapterMixin.load_ip_adapter) لتحميل وحدات IP Adapter

#### __call__[[diffusers.StableDiffusionPAGImg2ImgPipeline.__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, strength: float = 0.8, num_inference_steps: int | None = 50, timesteps: list = None, sigmas: list = None, 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, ip_adapter_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = None, ip_adapter_image_embeds: list[torch.Tensor] | None = None, output_type: str | None = 'pil', return_dict: bool = True, cross_attention_kwargs: dict[str, typing.Any] | None = None, clip_skip: int = None, callback_on_step_end: typing.Union[typing.Callable[[int, int], NoneType], diffusers.callbacks.PipelineCallback, diffusers.callbacks.MultiPipelineCallbacks, NoneType] = None, callback_on_step_end_tensor_inputs: list = ['latents'], pag_scale: float = 3.0, pag_adaptive_scale: float = 0.0)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_sd_img2img.py#L782)

**المعاملات:**

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`، مصفوفة numpy أو tensor تمثل دفعة من الصور (image batch) لاستخدامها كنقطة انطلاق. لكل من مصفوفة numpy وtensor الخاص بـ pytorch، النطاق المتوقع للقيم هو بين `[0, 1]` إذا كان tensor أو قائمة من tensors، فيجب أن يكون الشكل المتوقع `(B, C, H, W)` أو `(C, H, W)`. إذا كانت مصفوفة numpy أو قائمة من المصفوفات، فيجب أن يكون الشكل المتوقع `(B, H, W, C)` أو `(H, W, C)` كما يمكنه قبول كامنات الصور (image latents) كـ `image`، ولكن إذا تم تمرير الكامنات مباشرةً فلن يتم ترميزها مرة أخرى.

strength (`float`، *اختياري*، القيمة الافتراضية 0.8) : يحدد مدى تحويل الصورة المرجعية `image`. يجب أن يكون بين 0 و 1. تُستخدم `image` كنقطة انطلاق، وكلما ارتفعت قيمة `strength` زاد مقدار الضوضاء المضافة. يعتمد عدد خطوات إزالة الضوضاء على كمية الضوضاء المضافة في البداية. عندما تكون `strength` تساوي 1، تكون الضوضاء المضافة في أقصى حد، وتعمل عملية إزالة الضوضاء لعدد التكرارات الكامل المحدد في `num_inference_steps`. القيمة 1 تتجاهل `image` بشكل أساسي.

num_inference_steps (`int`، *اختياري*، القيمة الافتراضية 50) : عدد خطوات إزالة الضوضاء. تؤدي زيادة عدد خطوات إزالة الضوضاء عادةً إلى صورة ذات جودة أعلى على حساب بطء الاستدلال. يتم تعديل هذا المعامل بواسطة `strength`.

timesteps (`list[int]`، *اختياري*) : خطوات زمنية مخصصة لاستخدامها في عملية إزالة الضوضاء مع المجدولين الذين يدعمون معامل `timesteps` في طريقة `set_timesteps` الخاصة بهم. إذا لم يُعرَّف، فسيتم استخدام السلوك الافتراضي عند تمرير `num_inference_steps`. يجب أن تكون بترتيب تنازلي.

sigmas (`list[float]`، *اختياري*) : قيم `sigmas` مخصصة لاستخدامها في عملية إزالة الضوضاء مع المجدولين الذين يدعمون معامل `sigmas` في طريقة `set_timesteps` الخاصة بهم. إذا لم تُعرَّف، فسيتم استخدام السلوك الافتراضي عند تمرير `num_inference_steps`.

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/main/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`.

ip_adapter_image : (`PipelineImageInput`، *اختياري*): إدخال صورة اختياري للعمل مع IP Adapters.

ip_adapter_image_embeds (`list[torch.Tensor]`, *اختياري*) : تمثيلات صور مُولّدة مسبقًا لـ IP-Adapter. يجب أن يكون قائمة بطول يساوي عدد وحدات IP-adapter. يجب أن يكون كل عنصر منها متجهًا (tensor) بشكل `(batch_size, num_images, emb_dim)`. يجب أن يحتوي على تمثيل الصورة السلبية إذا كان `do_classifier_free_guidance` مضبوطًا على `True`. إذا لم يُقدَّم، تُحسب التمثيلات من معامل الإدخال `ip_adapter_image`.

output_type (`str`، *اختياري*، الافتراضي `"pil"`) : صيغة الصورة المولّدة. اختر بين `PIL.Image` أو `np.array`.

return_dict (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان يجب إرجاع [StableDiffusionPipelineOutput](/docs/diffusers/main/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`، `PipelineCallback`، `MultiPipelineCallbacks`، *اختياري*) : دالة أو فئة فرعية من `PipelineCallback` أو `MultiPipelineCallbacks` تُستدعى في نهاية كل خطوة إزالة ضوضاء أثناء الاستدلال، مع الحُجج التالية: `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) الخاص بك.

pag_scale (`float`، *اختياري*، القيمة الافتراضية 3.0) : معامل المقياس للتوجيه الانتباه المُعطَّل. إذا تم ضبطه على 0.0، فلن يُستخدم التوجيه الانتباه المُعطَّل.

pag_adaptive_scale (`float`، *اختياري*، القيمة الافتراضية 0.0) : معامل المقياس التكيفي لمرشد الانتباه المُعطَّل. إذا تم ضبطه على 0.0، يُستخدم `pag_scale`.

**يعيد:** [StableDiffusionPipelineOutput](/docs/diffusers/main/ar/api/pipelines/stable_diffusion/img2img#diffusers.pipelines.stable_diffusion.StableDiffusionPipelineOutput) أو `tuple`

إذا كان `return_dict` هو `True`، يُعاد [StableDiffusionPipelineOutput](/docs/diffusers/main/ar/api/pipelines/stable_diffusion/img2img#diffusers.pipelines.stable_diffusion.StableDiffusionPipelineOutput)، وإلا يُعاد `tuple` حيث يكون العنصر الأول قائمة بالصور المولّدة والعنصر الثاني قائمة من قيم `bool` تشير إلى ما إذا كانت الصورة المولّدة المقابلة تحتوي على محتوى "غير آمن للعمل" (nsfw).

دالة الاستدعاء call لخط الأنابيب pipeline الخاص بالتوليد.

أمثلة:
```py
>>> import torch
>>> from diffusers import AutoPipelineForImage2Image
>>> from diffusers.utils import load_image

>>> pipe = AutoPipelineForImage2Image.from_pretrained(
...     "stable-diffusion-v1-5/stable-diffusion-v1-5",
...     torch_dtype=torch.float16,
...     enable_pag=True,
... )
>>> pipe = pipe.to("cuda")
>>> url = "https://huggingface.co/datasets/patrickvonplaten/images/resolve/main/aa_xl/000000009.png"

>>> init_image = load_image(url).convert("RGB")
>>> prompt = "a photo of an astronaut riding a horse on mars"
>>> image = pipe(prompt, image=init_image, pag_scale=0.3).images[0]
```

#### encode_prompt[[diffusers.StableDiffusionPAGImg2ImgPipeline.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/main/src/diffusers/pipelines/pag/pipeline_pag_sd_img2img.py#L299)

**المعاملات:**

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 تعني أنه سيتم استخدام مخرجات الطبقة قبل الأخيرة لحساب تمثيلات الموجه.

يقوم بتشفير الموجه إلى حالات مخفية لمشفّر النص.

#### get_guidance_scale_embedding[[diffusers.StableDiffusionPAGImg2ImgPipeline.get_guidance_scale_embedding]]

```python
get_guidance_scale_embedding(w: Tensor, embedding_dim: int = 512, dtype: dtype = torch.float32)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_sd_img2img.py#L725)

**المعاملات:**

w (`torch.Tensor`) : توليد متجهات تضمين بمقياس توجيه محدد لتُثري متضمينات خطوات الزمن اللاحقة.

embedding_dim (`int`، *اختياري*، القيمة الافتراضية 512) : بُعد التضمينات (embeddings) التي سيتم توليدها.

dtype (`torch.dtype`، *اختياري*، الافتراضي `torch.float32`) : نوع البيانات للتضمينات المولّدة.

**يعيد:** `torch.Tensor`

متجهات تضمين بشكل `(len(w), embedding_dim)`.

انظر إلى https://github.com/google-research/vdm/blob/dc27b98a554f65cdc654b800da5aa1846545d41b/model_vdm.py#L298

## StableDiffusionControlNetPAGPipeline[[diffusers.StableDiffusionControlNetPAGPipeline]]

#### diffusers.StableDiffusionControlNetPAGPipeline[[diffusers.StableDiffusionControlNetPAGPipeline]]

```python
diffusers.StableDiffusionControlNetPAGPipeline(vae: AutoencoderKL, text_encoder: CLIPTextModel, tokenizer: CLIPTokenizer, unet: UNet2DConditionModel, controlnet: diffusers.models.controlnets.controlnet.ControlNetModel | list[diffusers.models.controlnets.controlnet.ControlNetModel] | tuple[diffusers.models.controlnets.controlnet.ControlNetModel] | diffusers.models.controlnets.multicontrolnet.MultiControlNetModel, scheduler: KarrasDiffusionSchedulers, safety_checker: StableDiffusionSafetyChecker, feature_extractor: CLIPImageProcessorPil, image_encoder: CLIPVisionModelWithProjection = None, requires_safety_checker: bool = True, pag_applied_layers: str | list[str] = 'mid')
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_controlnet_sd.py#L168)

**المعاملات:**

vae ([AutoencoderKL](/docs/diffusers/main/ar/api/models/autoencoderkl#diffusers.AutoencoderKL)) : نموذج الترميز التحويلي التبايني (VAE) لتشفير وفك تشفير الصور إلى تمثيلات كامنة ومنها.

text_encoder ([CLIPTextModel](https://huggingface.co/docs/transformers/main/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/main/en/model_doc/clip#transformers.CLIPTokenizer)) : `CLIPTokenizer` لتجزئة النص.

unet ([UNet2DConditionModel](/docs/diffusers/main/ar/api/models/unet2d-cond#diffusers.UNet2DConditionModel)) : نموذج `UNet2DConditionModel` لإزالة الضوضاء من الكامنات المُرمّزة للصورة.

controlnet ([ControlNetModel](/docs/diffusers/main/ar/api/models/controlnet#diffusers.ControlNetModel) أو `list[ControlNetModel]`) : يوفر شروطًا إضافية لـ `unet` أثناء عملية إزالة الضوضاء. إذا قمت بتعيين عدة ControlNets كقائمة، فإن المخرجات من كل ControlNet تُجمع معًا لإنشاء شرط إضافي واحد موحّد.

scheduler ([SchedulerMixin](/docs/diffusers/main/ar/api/schedulers/overview#diffusers.SchedulerMixin)) : مُجدول يُستخدم بالاقتران مع `unet` لإزالة الضوضاء من كائنات الصورة المُرمّزة. يمكن أن يكون أحد [DDIMScheduler](/docs/diffusers/main/ar/api/schedulers/ddim#diffusers.DDIMScheduler) أو [LMSDiscreteScheduler](/docs/diffusers/main/ar/api/schedulers/lms_discrete#diffusers.LMSDiscreteScheduler) أو [PNDMScheduler](/docs/diffusers/main/ar/api/schedulers/pndm#diffusers.PNDMScheduler).

safety_checker (`StableDiffusionSafetyChecker`) : وحدة تصنيف تُقدّر ما إذا كان يمكن اعتبار الصور المولّدة مسيئة أو ضارة. يُرجى الرجوع إلى [بطاقة النموذج](https://huggingface.co/stable-diffusion-v1-5/stable-diffusion-v1-5) لمزيد من التفاصيل حول الأضرار المحتملة التي قد يسببها النموذج.

feature_extractor ([CLIPImageProcessor](https://huggingface.co/docs/transformers/main/en/model_doc/clip#transformers.CLIPImageProcessor)) : مُعالج صور `CLIPImageProcessor` لاستخراج الميزات من الصور المولّدة؛ يُستخدم كمدخلات لـ `safety_checker`.

خط أنابيب لتوليد الصور من النص باستخدام Stable Diffusion مع توجيه ControlNet.

يرث هذا النموذج من [DiffusionPipeline](/docs/diffusers/main/ar/api/pipelines/overview#diffusers.DiffusionPipeline). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة المُنفَّذة لجميع خطوط الأنابيب (التنزيل، الحفظ، التشغيل على جهاز معين، إلخ).

تورث خط الأنابيب أيضًا طرق التحميل التالية:
- [load_textual_inversion()](/docs/diffusers/main/ar/api/loaders/textual_inversion#diffusers.loaders.TextualInversionLoaderMixin.load_textual_inversion) لتحميل تضمينات الانعكاس النصي
- [load_lora_weights()](/docs/diffusers/main/ar/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights) لتحميل أوزان LoRA
- [save_lora_weights()](/docs/diffusers/main/ar/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.save_lora_weights) لحفظ أوزان LoRA
- [from_single_file()](/docs/diffusers/main/ar/api/loaders/single_file#diffusers.loaders.FromSingleFileMixin.from_single_file) لتحميل ملفات `.ckpt`
- [load_ip_adapter()](/docs/diffusers/main/ar/api/loaders/ip_adapter#diffusers.loaders.IPAdapterMixin.load_ip_adapter) لتحميل وحدات IP Adapter

#### encode_prompt[[diffusers.StableDiffusionControlNetPAGPipeline.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/main/src/diffusers/pipelines/pag/pipeline_pag_controlnet_sd.py#L275)

**المعاملات:**

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 تعني أنه سيتم استخدام مخرجات الطبقة قبل الأخيرة لحساب تمثيلات الموجه.

يقوم بتشفير الموجه إلى حالات مخفية لمشفّر النص.

#### get_guidance_scale_embedding[[diffusers.StableDiffusionControlNetPAGPipeline.get_guidance_scale_embedding]]

```python
get_guidance_scale_embedding(w: Tensor, embedding_dim: int = 512, dtype: dtype = torch.float32)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_controlnet_sd.py#L810)

**المعاملات:**

w (`torch.Tensor`) : توليد متجهات تضمين بمقياس توجيه محدد لتُثري متضمينات خطوات الزمن اللاحقة.

embedding_dim (`int`، *اختياري*، القيمة الافتراضية 512) : بُعد التضمينات (embeddings) التي سيتم توليدها.

dtype (`torch.dtype`، *اختياري*، الافتراضي `torch.float32`) : نوع البيانات للتضمينات المولّدة.

**يعيد:** `torch.Tensor`

متجهات تضمين بشكل `(len(w), embedding_dim)`.

انظر إلى https://github.com/google-research/vdm/blob/dc27b98a554f65cdc654b800da5aa1846545d41b/model_vdm.py#L298

## StableDiffusionControlNetPAGInpaintPipeline[[diffusers.StableDiffusionControlNetPAGInpaintPipeline]]

#### diffusers.StableDiffusionControlNetPAGInpaintPipeline[[diffusers.StableDiffusionControlNetPAGInpaintPipeline]]

```python
diffusers.StableDiffusionControlNetPAGInpaintPipeline(vae: AutoencoderKL, text_encoder: CLIPTextModel, tokenizer: CLIPTokenizer, unet: UNet2DConditionModel, controlnet: diffusers.models.controlnets.controlnet.ControlNetModel | list[diffusers.models.controlnets.controlnet.ControlNetModel] | tuple[diffusers.models.controlnets.controlnet.ControlNetModel] | diffusers.models.controlnets.multicontrolnet.MultiControlNetModel, scheduler: KarrasDiffusionSchedulers, safety_checker: StableDiffusionSafetyChecker, feature_extractor: CLIPImageProcessorPil, image_encoder: CLIPVisionModelWithProjection = None, requires_safety_checker: bool = True, pag_applied_layers: str | list[str] = 'mid')
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_controlnet_sd_inpaint.py#L134)

**المعاملات:**

vae ([AutoencoderKL](/docs/diffusers/main/ar/api/models/autoencoderkl#diffusers.AutoencoderKL)) : نموذج الترميز التحويلي التبايني (VAE) لتشفير وفك تشفير الصور إلى تمثيلات كامنة ومنها.

text_encoder ([CLIPTextModel](https://huggingface.co/docs/transformers/main/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/main/en/model_doc/clip#transformers.CLIPTokenizer)) : `CLIPTokenizer` لتجزئة النص.

unet ([UNet2DConditionModel](/docs/diffusers/main/ar/api/models/unet2d-cond#diffusers.UNet2DConditionModel)) : نموذج `UNet2DConditionModel` لإزالة الضوضاء من الكامنات المُرمّزة للصورة.

controlnet ([ControlNetModel](/docs/diffusers/main/ar/api/models/controlnet#diffusers.ControlNetModel) أو `list[ControlNetModel]`) : يوفر شروطًا إضافية لـ `unet` أثناء عملية إزالة الضوضاء. إذا قمت بتعيين عدة ControlNets كقائمة، فإن المخرجات من كل ControlNet تُجمع معًا لإنشاء شرط إضافي واحد موحّد.

scheduler ([SchedulerMixin](/docs/diffusers/main/ar/api/schedulers/overview#diffusers.SchedulerMixin)) : مُجدول يُستخدم بالاقتران مع `unet` لإزالة الضوضاء من كائنات الصورة المُرمّزة. يمكن أن يكون أحد [DDIMScheduler](/docs/diffusers/main/ar/api/schedulers/ddim#diffusers.DDIMScheduler) أو [LMSDiscreteScheduler](/docs/diffusers/main/ar/api/schedulers/lms_discrete#diffusers.LMSDiscreteScheduler) أو [PNDMScheduler](/docs/diffusers/main/ar/api/schedulers/pndm#diffusers.PNDMScheduler).

safety_checker (`StableDiffusionSafetyChecker`) : وحدة تصنيف تُقدّر ما إذا كان يمكن اعتبار الصور المولّدة مسيئة أو ضارة. يُرجى الرجوع إلى [بطاقة النموذج](https://huggingface.co/stable-diffusion-v1-5/stable-diffusion-v1-5) لمزيد من التفاصيل حول الأضرار المحتملة التي قد يسببها النموذج.

feature_extractor ([CLIPImageProcessor](https://huggingface.co/docs/transformers/main/en/model_doc/clip#transformers.CLIPImageProcessor)) : مُعالج صور `CLIPImageProcessor` لاستخراج الميزات من الصور المولّدة؛ يُستخدم كمدخلات لـ `safety_checker`.

خط أنابيب لتعبئة الصور باستخدام Stable Diffusion مع توجيه ControlNet.

يرث هذا النموذج من [DiffusionPipeline](/docs/diffusers/main/ar/api/pipelines/overview#diffusers.DiffusionPipeline). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة المُنفَّذة لجميع خطوط الأنابيب (التنزيل، الحفظ، التشغيل على جهاز معين، إلخ).

تورث خط الأنابيب أيضًا طرق التحميل التالية:
- [load_textual_inversion()](/docs/diffusers/main/ar/api/loaders/textual_inversion#diffusers.loaders.TextualInversionLoaderMixin.load_textual_inversion) لتحميل تضمينات الانعكاس النصي
- [load_lora_weights()](/docs/diffusers/main/ar/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights) لتحميل أوزان LoRA
- [save_lora_weights()](/docs/diffusers/main/ar/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.save_lora_weights) لحفظ أوزان LoRA
- [from_single_file()](/docs/diffusers/main/ar/api/loaders/single_file#diffusers.loaders.FromSingleFileMixin.from_single_file) لتحميل ملفات `.ckpt`
- [load_ip_adapter()](/docs/diffusers/main/ar/api/loaders/ip_adapter#diffusers.loaders.IPAdapterMixin.load_ip_adapter) لتحميل وحدات IP Adapter

> [!TIP] > يمكن استخدام خط الأنابيب هذا مع نقاط التفتيش التي تم ضبطها بدقة خصيصًا لعملية inpainting >
([stable-diffusion-v1-5/stable-diffusion-inpainting](https://huggingface.co/stable-diffusion-v1-5/stable-diffusion-inpainting)) وكذلك > نقاط التفتيش الافتراضية لنماذج Stable Diffusion لتحويل النص إلى صورة > ([stable-diffusion-v1-5/stable-diffusion-v1-5](https://huggingface.co/stable-diffusion-v1-5/stable-diffusion-v1-5)). قد تكون نقاط التفتيش الافتراضية لنماذج Stable Diffusion لتحويل النص إلى صورة هي الأنسب لشبكات ControlNet التي تم ضبطها بدقة على تلك النماذج، مثل > [lllyasviel/control_v11p_sd15_inpaint](https://huggingface.co/lllyasviel/control_v11p_sd15_inpaint).

#### __call__[[diffusers.StableDiffusionControlNetPAGInpaintPipeline.__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, mask_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = None, control_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = None, height: int | None = None, width: int | None = None, padding_mask_crop: int | None = None, strength: float = 1.0, num_inference_steps: int = 50, guidance_scale: float = 7.5, negative_prompt: str | list[str] | None = None, num_images_per_prompt: int | None = 1, eta: float = 0.0, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, ip_adapter_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = None, ip_adapter_image_embeds: list[torch.Tensor] | None = None, output_type: str | None = 'pil', return_dict: bool = True, cross_attention_kwargs: dict[str, typing.Any] | None = None, controlnet_conditioning_scale: float | list[float] = 0.5, control_guidance_start: float | list[float] = 0.0, control_guidance_end: float | list[float] = 1.0, clip_skip: int | None = None, callback_on_step_end: typing.Union[typing.Callable[[int, int], NoneType], diffusers.callbacks.PipelineCallback, diffusers.callbacks.MultiPipelineCallbacks, NoneType] = None, callback_on_step_end_tensor_inputs: list = ['latents'], pag_scale: float = 3.0, pag_adaptive_scale: float = 0.0)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_controlnet_sd_inpaint.py#L972)

**المعاملات:**

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`، مصفوفة NumPy أو tensor يمثل دفعة من الصور (image batch) ليتم استخدامه كنقطة انطلاق. لكل من مصفوفة NumPy وtensor الخاص بـ PyTorch، النطاق المتوقع للقيم هو بين `[0, 1]`. إذا كان tensor أو قائمة من tensors، فيجب أن يكون الشكل المتوقع `(B, C, H, W)` أو `(C, H, W)`. إذا كانت مصفوفة NumPy أو قائمة من المصفوفات، فيجب أن يكون الشكل المتوقع `(B, H, W, C)` أو `(H, W, C)`. كما يمكنه قبول كامنات الصور (image latents) كـ `image`، ولكن إذا تم تمرير الكامنات مباشرةً فلن يتم ترميزها مرة أخرى.

mask_image (`torch.Tensor`، `PIL.Image.Image`، `np.ndarray`، `list[torch.Tensor]`، : `list[PIL.Image.Image]`، أو `list[np.ndarray]`): `Image`، مصفوفة NumPy أو tensor يمثل دفعة من الصور لتطبيق قناع على `image`. يتم إعادة رسم البكسلات البيضاء في القناع بينما تُحفظ البكسلات السوداء. إذا كان `mask_image` صورة PIL، يتم تحويلها إلى قناة واحدة (السطوع) قبل الاستخدام. وإذا كانت مصفوفة NumPy أو tensor من PyTorch، فيجب أن تحتوي على قناة لون واحدة (L) بدلاً من ثلاث، لذا فإن الشكل المتوقع لـ tensor من PyTorch هو `(B, 1, H, W)`، `(B, H, W)`، `(1, H, W)`، `(H, W)`. أما بالنسبة لمصفوفة NumPy، فهو `(B, H, W, 1)`، `(B, H, W)`، `(H, W, 1)`، أو `(H, W)`.

control_image (`torch.Tensor`، `PIL.Image.Image`، `list[torch.Tensor]`، `list[PIL.Image.Image]`، : `list[list[torch.Tensor]]`، أو `list[list[PIL.Image.Image]]`): شرط الإدخال الخاص بـ ControlNet لتوفير التوجيه إلى `unet` من أجل التوليد. إذا تم تحديد النوع على أنه `torch.Tensor`، فإنه يُمرَّر إلى ControlNet كما هو. يمكن أيضًا قبول `PIL.Image.Image` كصورة. الأبعاد الافتراضية للصورة الناتجة هي أبعاد `image`. إذا تم تمرير الارتفاع و/أو العرض، يتم تغيير حجم `image` وفقًا لذلك. إذا تم تحديد عدة وحدات ControlNet في `init`، يجب تمرير الصور كقائمة بحيث يمكن تجميع كل عنصر من عناصر القائمة بشكل صحيح للإدخال إلى وحدة ControlNet واحدة.

height (`int`، *اختياري*، القيمة الافتراضية هي `self.unet.config.sample_size * self.vae_scale_factor`) : ارتفاع الصورة المولّدة بالبكسل.

width (`int`، *اختياري*، القيمة الافتراضية هي `self.unet.config.sample_size * self.vae_scale_factor`) : عرض الصورة المولدة بالبكسل.

padding_mask_crop (`int`, *اختياري*, القيمة الافتراضية `None`) : حجم الهامش في الاقتصاص الذي سيُطبَّق على الصورة والقناع. إذا كانت `None`، فلن يُطبَّق أي اقتصاص على الصورة وmask_image. إذا لم تكن `padding_mask_crop` هي `None`، فسيتم أولاً إيجاد منطقة مستطيلة بنفس نسبة أبعاد الصورة وتحتوي على كل المناطق المقنَّعة، ثم توسيع تلك المنطقة بناءً على `padding_mask_crop`. بعد ذلك، ستُقتَص الصورة وmask_image بناءً على المنطقة الموسَّعة قبل تغيير حجمهما إلى حجم الصورة الأصلي لأغراض إعادة البناء. هذا مفيد عندما تكون المنطقة المقنَّعة صغيرة بينما تكون الصورة كبيرة وتحتوي على معلومات غير ذات صلة بإعادة البناء، مثل الخلفية.

strength (`float`، *اختياري*، القيمة الافتراضية 1.0) : يحدد مدى تحويل الصورة المرجعية `image`. يجب أن يكون بين 0 و 1. تُستخدم `image` كنقطة انطلاق، وكلما ارتفعت قيمة `strength` زاد مقدار الضوضاء المضافة. يعتمد عدد خطوات إزالة الضوضاء على كمية الضوضاء المضافة في البداية. عندما تكون `strength` تساوي 1، تكون الضوضاء المضافة في أقصى حد، وتعمل عملية إزالة الضوضاء لعدد التكرارات الكامل المحدد في `num_inference_steps`. القيمة 1 تتجاهل `image` بشكل أساسي.

num_inference_steps (`int`، *اختياري*، القيمة الافتراضية 50) : عدد خطوات إزالة الضوضاء. تؤدي زيادة عدد خطوات إزالة الضوضاء عادةً إلى صورة ذات جودة أعلى على حساب بطء الاستدلال.

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/main/ar/api/schedulers/ddim#diffusers.DDIMScheduler)، ويُتجاهل في جدولة أخرى.

generator (`torch.Generator` أو `list[torch.Generator]`، *اختياري*) : [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html) لجعل التوليد حتميًا.

latents (`torch.Tensor`، *اختياري*) : كامنات ضجيج مُولّدة مسبقًا، مُستخرجة من توزيع غاوسي، تُستخدم كمدخلات لتوليد الصور. يمكن استخدامها لتعديل نفس التوليد باستخدام أوامر مختلفة. إذا لم تُقدَّم، يتم توليد كامنات من خلال الاستخراج باستخدام `generator` العشوائي المُقدَّم.

prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة (وزن الأوامر). إذا لم تُقدَّم، يتم توليد تمثيلات النص من معامل الإدخال `prompt`.

negative_prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية سالبة مُولّدة مسبقًا. يمكن استخدامها لضبط مدخلات النص بسهولة (وزن الموجه). إذا لم تُقدَّم، يتم توليد `negative_prompt_embeds` من معامل الإدخال `negative_prompt`.

ip_adapter_image : (`PipelineImageInput`، *اختياري*): إدخال صورة اختياري للعمل مع IP Adapters.

ip_adapter_image_embeds (`list[torch.Tensor]`, *اختياري*) : تمثيلات صور مُولّدة مسبقًا لـ IP-Adapter. يجب أن يكون قائمة بطول يساوي عدد وحدات IP-adapter. يجب أن يكون كل عنصر منها متجهًا (tensor) بشكل `(batch_size, num_images, emb_dim)`. يجب أن يحتوي على تمثيل الصورة السلبية إذا كان `do_classifier_free_guidance` مضبوطًا على `True`. إذا لم يُقدَّم، تُحسب التمثيلات من معامل الإدخال `ip_adapter_image`.

output_type (`str`، *اختياري*، الافتراضي `"pil"`) : صيغة الصورة المولّدة. اختر بين `PIL.Image` أو `np.array`.

return_dict (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان يجب إرجاع [StableDiffusionPipelineOutput](/docs/diffusers/main/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).

controlnet_conditioning_scale (`float` أو `list[float]`، *اختياري*، القيمة الافتراضية 0.5) : تُضرب مخرجات ControlNet في `controlnet_conditioning_scale` قبل إضافتها إلى الباقي في `unet` الأصلية. إذا تم تحديد عدة ControlNets في `init`، يمكنك تعيين المقياس المقابل كقائمة.

control_guidance_start (`float` أو `list[float]`، *اختياري*، القيمة الافتراضية 0.0) : النسبة المئوية من إجمالي الخطوات التي يبدأ عندها ControlNet في التطبيق.

control_guidance_end (`float` أو `list[float]`، *اختياري*، القيمة الافتراضية 1.0) : النسبة المئوية من إجمالي الخطوات التي يتوقف عندها ControlNet عن التطبيق.

clip_skip (`int`, *اختياري*) : عدد الطبقات التي سيتم تجاوزها من CLIP أثناء حساب تمثيلات الموجه. القيمة 1 تعني أنه سيتم استخدام مخرجات الطبقة قبل الأخيرة لحساب تمثيلات الموجه.

callback_on_step_end (`Callable`، `PipelineCallback`، `MultiPipelineCallbacks`، *اختياري*) : دالة أو فئة فرعية من `PipelineCallback` أو `MultiPipelineCallbacks` تُستدعى في نهاية كل خطوة إزالة ضوضاء أثناء الاستدلال، مع الحُجج التالية: `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) الخاص بك.

pag_scale (`float`، *اختياري*، القيمة الافتراضية 3.0) : معامل المقياس للتوجيه الانتباه المُعطَّل. إذا تم ضبطه على 0.0، فلن يُستخدم التوجيه الانتباه المُعطَّل.

pag_adaptive_scale (`float`، *اختياري*، القيمة الافتراضية 0.0) : معامل المقياس التكيفي لمرشد الانتباه المُعطَّل. إذا تم ضبطه على 0.0، يُستخدم `pag_scale`.

**يعيد:** [StableDiffusionPipelineOutput](/docs/diffusers/main/ar/api/pipelines/stable_diffusion/img2img#diffusers.pipelines.stable_diffusion.StableDiffusionPipelineOutput) أو `tuple`

إذا كان `return_dict` هو `True`، يُعاد [StableDiffusionPipelineOutput](/docs/diffusers/main/ar/api/pipelines/stable_diffusion/img2img#diffusers.pipelines.stable_diffusion.StableDiffusionPipelineOutput)، وإلا يُعاد `tuple` حيث يكون العنصر الأول قائمة بالصور المولّدة والعنصر الثاني قائمة من قيم `bool` تشير إلى ما إذا كانت الصورة المولّدة المقابلة تحتوي على محتوى "غير آمن للعمل" (nsfw).

دالة الاستدعاء call لخط الأنابيب pipeline الخاص بالتوليد.

أمثلة:
```py
>>> # !pip install transformers accelerate
>>> import cv2
>>> from diffusers import AutoPipelineForInpainting, ControlNetModel, DDIMScheduler
>>> from diffusers.utils import load_image
>>> import numpy as np
>>> from PIL import Image
>>> import torch

>>> init_image = load_image(
...     "https://huggingface.co/datasets/diffusers/test-arrays/resolve/main/stable_diffusion_inpaint/boy.png"
... )
>>> init_image = init_image.resize((512, 512))

>>> generator = torch.Generator(device="cpu").manual_seed(1)

>>> mask_image = load_image(
...     "https://huggingface.co/datasets/diffusers/test-arrays/resolve/main/stable_diffusion_inpaint/boy_mask.png"
... )
>>> mask_image = mask_image.resize((512, 512))

>>> def make_canny_condition(image):
...     image = np.array(image)
...     image = cv2.Canny(image, 100, 200)
...     image = image[:, :, None]
...     image = np.concatenate([image, image, image], axis=2)
...     image = Image.fromarray(image)
...     return image

>>> control_image = make_canny_condition(init_image)

>>> controlnet = ControlNetModel.from_pretrained(
...     "lllyasviel/control_v11p_sd15_inpaint", torch_dtype=torch.float16
... )
>>> pipe = AutoPipelineForInpainting.from_pretrained(
...     "stable-diffusion-v1-5/stable-diffusion-v1-5",
...     controlnet=controlnet,
...     torch_dtype=torch.float16,
...     enable_pag=True,
... )

>>> pipe.scheduler = DDIMScheduler.from_config(pipe.scheduler.config)
>>> pipe.enable_model_cpu_offload()

>>> # generate image
>>> image = pipe(
...     "a handsome man with ray-ban sunglasses",
...     num_inference_steps=20,
...     generator=generator,
...     eta=1.0,
...     image=init_image,
...     mask_image=mask_image,
...     control_image=control_image,
...     pag_scale=0.3,
... ).images[0]
```

#### encode_prompt[[diffusers.StableDiffusionControlNetPAGInpaintPipeline.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/main/src/diffusers/pipelines/pag/pipeline_pag_controlnet_sd_inpaint.py#L251)

**المعاملات:**

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 تعني أنه سيتم استخدام مخرجات الطبقة قبل الأخيرة لحساب تمثيلات الموجه.

يقوم بتشفير الموجه إلى حالات مخفية لمشفّر النص.

#### get_guidance_scale_embedding[[diffusers.StableDiffusionControlNetPAGInpaintPipeline.get_guidance_scale_embedding]]

```python
get_guidance_scale_embedding(w: Tensor, embedding_dim: int = 512, dtype: dtype = torch.float32)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_controlnet_sd_inpaint.py#L919)

**المعاملات:**

w (`torch.Tensor`) : توليد متجهات تضمين بمقياس توجيه محدد لتُثري متضمينات خطوات الزمن اللاحقة.

embedding_dim (`int`، *اختياري*، القيمة الافتراضية 512) : بُعد التضمينات (embeddings) التي سيتم توليدها.

dtype (`torch.dtype`، *اختياري*، الافتراضي `torch.float32`) : نوع البيانات للتضمينات المولّدة.

**يعيد:** `torch.Tensor`

متجهات تضمين بشكل `(len(w), embedding_dim)`.

انظر إلى https://github.com/google-research/vdm/blob/dc27b98a554f65cdc654b800da5aa1846545d41b/model_vdm.py#L298

## StableDiffusionXLPAGPipeline[[diffusers.StableDiffusionXLPAGPipeline]]

#### diffusers.StableDiffusionXLPAGPipeline[[diffusers.StableDiffusionXLPAGPipeline]]

```python
diffusers.StableDiffusionXLPAGPipeline(vae: AutoencoderKL, text_encoder: CLIPTextModel, text_encoder_2: CLIPTextModelWithProjection, tokenizer: CLIPTokenizer, tokenizer_2: CLIPTokenizer, unet: UNet2DConditionModel, scheduler: KarrasDiffusionSchedulers, image_encoder: CLIPVisionModelWithProjection = None, feature_extractor: CLIPImageProcessorPil = None, force_zeros_for_empty_prompt: bool = True, add_watermarker: bool | None = None, pag_applied_layers: str | list[str] = 'mid')
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_sd_xl.py#L172)

**المعاملات:**

vae ([AutoencoderKL](/docs/diffusers/main/ar/api/models/autoencoderkl#diffusers.AutoencoderKL)) : نموذج الترميز التحويلي التبايني (VAE) لتشفير وفك تشفير الصور إلى تمثيلات كامنة ومنها.

text_encoder (`CLIPTextModel`) : مُشفِّر نص ثابت. يستخدم Stable Diffusion XL الجزء النصي من [CLIP](https://huggingface.co/docs/transformers/model_doc/clip#transformers.CLIPTextModel)، وتحديداً النسخة [clip-vit-large-patch14](https://huggingface.co/openai/clip-vit-large-patch14).

text_encoder_2 (` CLIPTextModelWithProjection`) : مُشفِّر نصي مجمّد ثانٍ. يستخدم Stable Diffusion XL جزء النص والجزء المُجمَّع (pool) من [CLIP](https://huggingface.co/docs/transformers/model_doc/clip#transformers.CLIPTextModelWithProjection)، وتحديداً النسخة [laion/CLIP-ViT-bigG-14-laion2B-39B-b160k](https://huggingface.co/laion/CLIP-ViT-bigG-14-laion2B-39B-b160k).

tokenizer (`CLIPTokenizer`) : مُقسِّم من الفئة [CLIPTokenizer](https://huggingface.co/docs/transformers/v4.21.0/en/model_doc/clip#transformers.CLIPTokenizer).

tokenizer_2 (`CLIPTokenizer`) : مُقسِّم ثانٍ من الفئة [CLIPTokenizer](https://huggingface.co/docs/transformers/v4.21.0/en/model_doc/clip#transformers.CLIPTokenizer).

unet ([UNet2DConditionModel](/docs/diffusers/main/ar/api/models/unet2d-cond#diffusers.UNet2DConditionModel)) : بنية U-Net الشرطية لفك تشويش كامن الصورة المُرمّزة.

scheduler ([SchedulerMixin](/docs/diffusers/main/ar/api/schedulers/overview#diffusers.SchedulerMixin)) : مُجدول يُستخدم بالاقتران مع `unet` لإزالة الضوضاء من كائنات الصورة المُرمّزة. يمكن أن يكون أحد [DDIMScheduler](/docs/diffusers/main/ar/api/schedulers/ddim#diffusers.DDIMScheduler) أو [LMSDiscreteScheduler](/docs/diffusers/main/ar/api/schedulers/lms_discrete#diffusers.LMSDiscreteScheduler) أو [PNDMScheduler](/docs/diffusers/main/ar/api/schedulers/pndm#diffusers.PNDMScheduler).

force_zeros_for_empty_prompt (`bool`، *اختياري*، القيمة الافتراضية `"True"`) : ما إذا كان يجب إجبار تضمينات الموجه السلبي على أن تكون دائمًا 0. راجع أيضًا إعدادات `stabilityai/stable-diffusion-xl-base-1-0`.

add_watermarker (`bool`, *اختياري*) : ما إذا كان سيتم استخدام مكتبة [invisible_watermark](https://github.com/ShieldMnt/invisible-watermark/) لإضافة علامة مائية إلى الصور المُخرَجة. إذا لم يُعرَّف، فسيكون الافتراضي True إذا كانت الحزمة مثبّتة، وإلا فلن تُستخدم أي أداة لإضافة علامة مائية.

خط أنابيب لتوليد الصور من النص باستخدام Stable Diffusion XL.

يرث هذا النموذج من [DiffusionPipeline](/docs/diffusers/main/ar/api/pipelines/overview#diffusers.DiffusionPipeline). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع خطوط الأنابيب (مثل التنزيل أو الحفظ، أو التشغيل على جهاز معين، وما إلى ذلك).

تورث خط الأنابيب أيضًا طرق التحميل التالية:
- [load_textual_inversion()](/docs/diffusers/main/ar/api/loaders/textual_inversion#diffusers.loaders.TextualInversionLoaderMixin.load_textual_inversion) لتحميل تضمينات الانعكاس النصي
- [from_single_file()](/docs/diffusers/main/ar/api/loaders/single_file#diffusers.loaders.FromSingleFileMixin.from_single_file) لتحميل ملفات `.ckpt`
- [load_lora_weights()](/docs/diffusers/main/ar/api/loaders/lora#diffusers.loaders.StableDiffusionXLLoraLoaderMixin.load_lora_weights) لتحميل أوزان LoRA
- [save_lora_weights()](/docs/diffusers/main/ar/api/loaders/lora#diffusers.loaders.StableDiffusionXLLoraLoaderMixin.save_lora_weights) لحفظ أوزان LoRA
- [load_ip_adapter()](/docs/diffusers/main/ar/api/loaders/ip_adapter#diffusers.loaders.IPAdapterMixin.load_ip_adapter) لتحميل وحدات IP Adapter

#### __call__[[diffusers.StableDiffusionXLPAGPipeline.__call__]]

```python
__call__(prompt: str | list[str] = None, prompt_2: str | list[str] | None = None, height: int | None = None, width: int | None = None, num_inference_steps: int = 50, timesteps: list = None, sigmas: list = None, denoising_end: float | None = None, guidance_scale: float = 5.0, negative_prompt: str | list[str] | None = None, negative_prompt_2: str | list[str] | None = None, num_images_per_prompt: int | None = 1, eta: float = 0.0, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, ip_adapter_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = None, ip_adapter_image_embeds: list[torch.Tensor] | None = None, output_type: str | None = 'pil', return_dict: bool = True, cross_attention_kwargs: dict[str, typing.Any] | None = None, guidance_rescale: float = 0.0, original_size: tuple[int, int] | None = None, crops_coords_top_left: tuple = (0, 0), target_size: tuple[int, int] | None = None, negative_original_size: tuple[int, int] | None = None, negative_crops_coords_top_left: tuple = (0, 0), negative_target_size: tuple[int, int] | 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 = ['latents'], pag_scale: float = 3.0, pag_adaptive_scale: float = 0.0)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_sd_xl.py#L836)

**المعاملات:**

prompt (`str` أو `list[str]`، *اختياري*) : الأمر أو الأوامر التي تُوجّه توليد الصورة. إذا لم يُعرَّف، يجب تمرير `prompt_embeds` بدلاً من ذلك.

prompt_2 (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات المرسل إلى `tokenizer_2` و`text_encoder_2`. إذا لم يُعرَّف، يُستخدم `prompt` في كلا مشفّري النص

height (`int`، *اختياري*، القيمة الافتراضية هي self.unet.config.sample_size * self.vae_scale_factor) : ارتفاع الصورة المولّدة بالبكسلات. يتم ضبطه على 1024 افتراضيًا للحصول على أفضل النتائج. أي قيمة أقل من 512 بكسل لن تعمل بشكل جيد مع [stabilityai/stable-diffusion-xl-base-1.0](https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0) ونقاط التفتيش التي لم يتم ضبطها بدقة خصيصًا على الدقة المنخفضة.

width (`int`، *اختياري*، القيمة الافتراضية هي self.unet.config.sample_size * self.vae_scale_factor) : عرض الصورة المولدة بالبكسلات. يتم ضبطه على 1024 افتراضيًا للحصول على أفضل النتائج. أي قيمة أقل من 512 بكسل لن تعمل بشكل جيد مع [stabilityai/stable-diffusion-xl-base-1.0](https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0) ونقاط التفتيش التي لم يتم ضبطها بدقة خصيصًا على الدقات المنخفضة.

num_inference_steps (`int`، *اختياري*، القيمة الافتراضية 50) : عدد خطوات إزالة الضوضاء. تؤدي زيادة عدد خطوات إزالة الضوضاء عادةً إلى صورة ذات جودة أعلى على حساب بطء الاستدلال.

timesteps (`list[int]`، *اختياري*) : خطوات زمنية مخصصة لاستخدامها في عملية إزالة الضوضاء مع المجدولين الذين يدعمون معامل `timesteps` في طريقة `set_timesteps` الخاصة بهم. إذا لم يُعرَّف، فسيتم استخدام السلوك الافتراضي عند تمرير `num_inference_steps`. يجب أن تكون بترتيب تنازلي.

sigmas (`list[float]`، *اختياري*) : قيم `sigmas` مخصصة لاستخدامها في عملية إزالة الضوضاء مع المجدولين الذين يدعمون معامل `sigmas` في طريقة `set_timesteps` الخاصة بهم. إذا لم تُعرَّف، فسيتم استخدام السلوك الافتراضي عند تمرير `num_inference_steps`.

denoising_end (`float`، *اختياري*) : عند تحديده، يحدد نسبة (بين 0.0 و 1.0) من إجمالي عملية إزالة الضوضاء التي يجب إكمالها قبل إنهائها مبكرًا عمدًا. ونتيجةً لذلك، سيحتفظ العينة المُعاد بها بكمية كبيرة من الضوضاء كما تحددها الخطوات الزمنية المنفصلة التي يختارها المجدول. ينبغي استخدام معامل denoising_end بشكل مثالي عندما يشكل هذا الخط الأنابيب جزءًا من إعداد متعدد الخطوط الأنابيب "خليط من مُزيلات الضوضاء"، كما هو موضح في [**تحسين مخرجات الصورة**](https://huggingface.co/docs/diffusers/api/pipelines/stable_diffusion/stable_diffusion_xl#refining-the-image-output)

guidance_scale (`float`، *اختياري*، القيمة الافتراضية 5.0) : مقياس التوجيه كما هو مُعرَّف في [Classifier-Free Diffusion Guidance](https://huggingface.co/papers/2207.12598). يُعرَّف `guidance_scale` على أنه `w` من المعادلة 2. في [Imagen Paper](https://huggingface.co/papers/2205.11487). يتم تفعيل مقياس التوجيه عن طريق تعيين `guidance_scale > 1`. يشجع مقياس التوجيه الأعلى على توليد صور مرتبطة ارتباطًا وثيقًا بنص `prompt`، وعادةً على حساب انخفاض جودة الصورة.

negative_prompt (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات التي لا ينبغي توجيه توليد الصورة بها. إذا لم يُعرَّف، يجب تمرير `negative_prompt_embeds` بدلاً من ذلك. يتم تجاهله عند عدم استخدام التوجيه (أي يتم تجاهله إذا كان `guidance_scale` أقل من `1`).

negative_prompt_2 (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات التي لا ينبغي توجيه توليد الصورة إليها، والتي سيتم إرسالها إلى `tokenizer_2` و`text_encoder_2`. إذا لم يُعرَّف، يُستخدم `negative_prompt` في كلا مشفري النص

num_images_per_prompt (`int`، *اختياري*، القيمة الافتراضية 1) : عدد الصور التي سيتم توليدها لكل موجه.

eta (`float`، *اختياري*، القيمة الافتراضية 0.0) : يتوافق مع المعامل eta (η) في ورقة DDIM: https://huggingface.co/papers/2010.02502. ينطبق فقط على [schedulers.DDIMScheduler](/docs/diffusers/main/ar/api/schedulers/ddim#diffusers.DDIMScheduler)، وسيتم تجاهله في الحالات الأخرى.

generator (`torch.Generator` أو `list[torch.Generator]`، *اختياري*) : مولّد واحد أو قائمة من [مولّدات torch](https://pytorch.org/docs/stable/generated/torch.Generator.html) لجعل التوليد حتميًا.

latents (`torch.Tensor`، *اختياري*) : كامنات ضجيج مُولّدة مسبقًا، مُستخرجة من توزيع غاوسي، تُستخدم كمدخلات لتوليد الصور. يمكن استخدامها لتعديل نفس التوليد باستخدام أوامر مختلفة. إذا لم تُقدَّم، سيتم توليد كامنات من خلال الاستخراج باستخدام `generator` العشوائي المُقدَّم.

prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد تمثيلات النص من معامل الإدخال `prompt`.

negative_prompt_embeds (`torch.Tensor`, *اختياري*) : تمثيلات نصية سالبة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد negative_prompt_embeds من معامل الإدخال `negative_prompt`.

pooled_prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مجمّعة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد تمثيلات نصية مجمّعة من معامل الإدخال `prompt`.

negative_pooled_prompt_embeds (`torch.Tensor`, *اختياري*) : تمثيلات نصية مجمعة سالبة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد pooled negative_prompt_embeds من معامل الإدخال `negative_prompt`.

ip_adapter_image : (`PipelineImageInput`، *اختياري*): إدخال صورة اختياري للعمل مع IP Adapters.

ip_adapter_image_embeds (`list[torch.Tensor]`, *اختياري*) : تمثيلات صور مُولّدة مسبقًا لـ IP-Adapter. يجب أن يكون قائمة بطول يساوي عدد وحدات IP-adapter. يجب أن يكون كل عنصر منها متجهًا (tensor) بشكل `(batch_size, num_images, emb_dim)`. يجب أن يحتوي على تمثيل الصورة السلبية إذا كان `do_classifier_free_guidance` مضبوطًا على `True`. إذا لم يُقدَّم، تُحسب التمثيلات من معامل الإدخال `ip_adapter_image`.

output_type (`str`، *اختياري*، القيمة الافتراضية `"pil"`) : صيغة الصورة الناتجة عن عملية التوليد. اختر بين [PIL](https://pillow.readthedocs.io/en/stable/): `PIL.Image.Image` أو `np.array`.

return_dict (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان يجب إرجاع `~pipelines.stable_diffusion_xl.StableDiffusionXLPipelineOutput` بدلاً من tuple عادي.

cross_attention_kwargs (`dict`، *اختياري*) : قاموس kwargs يُمرَّر إلى `AttentionProcessor` إذا تم تحديده، كما هو معرَّف تحت `self.processor` في [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py).

guidance_rescale (`float`, *optional*, defaults to 0.0) : Guidance rescale factor proposed by [Common Diffusion Noise Schedules and Sample Steps are Flawed](https://huggingface.co/papers/2305.08891) `guidance_scale` is defined as `φ` in equation 16. of [Common Diffusion Noise Schedules and Sample Steps are Flawed](https://huggingface.co/papers/2305.08891). Guidance rescale factor should fix overexposure when using zero terminal SNR.

original_size (`tuple[int]`، *اختياري*، القيمة الافتراضية (1024, 1024)) : إذا لم تكن `original_size` مطابقة لـ `target_size`، فسيبدو أن الصورة قد خضعت لتقليل أو زيادة حجمها. القيمة الافتراضية لـ `original_size` هي `(height, width)` إذا لم تُحدد. جزء من التكييف الدقيق (micro-conditioning) الخاص بـ SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952).

crops_coords_top_left (`tuple[int]`، *اختياري*، القيمة الافتراضية (0, 0)) : يمكن استخدام `crops_coords_top_left` لتوليد صورة تبدو وكأنها "مقتطعة" من الموضع `crops_coords_top_left` إلى الأسفل. عادةً ما يتم تحقيق صور مفضلة ومركزة جيدًا عن طريق تعيين `crops_coords_top_left` إلى (0, 0). جزء من micro-conditioning الخاص بـ SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952).

target_size (`tuple[int]`، *اختياري*، القيمة الافتراضية (1024, 1024)) : في معظم الحالات، يجب ضبط `target_size` على الارتفاع والعرض المطلوبين للصورة المولّدة. إذا لم يُحدد، فسيكون الافتراضي `(height, width)`. جزء من التكييف الدقيق (micro-conditioning) في SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952).

negative_original_size (`tuple[int]`، *اختياري*، القيمة الافتراضية (1024, 1024)) : يُستخدم لتقييد عملية التوليد سلبياً بناءً على دقة صورة محددة. وهو جزء من التكييف الدقيق (micro-conditioning) في SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952). لمزيد من المعلومات، راجع موضوع هذا المسألة: https://github.com/huggingface/diffusers/issues/4208.

negative_crops_coords_top_left (`tuple[int]`، *اختياري*، القيمة الافتراضية (0, 0)) : يُستخدم لتوجيه عملية التوليد سلبياً بناءً على إحداثيات قصّ محددة. وهو جزء من التكييف الدقيق (micro-conditioning) في SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952). لمزيد من المعلومات، راجع موضوع هذا الإشكال: https://github.com/huggingface/diffusers/issues/4208.

negative_target_size (`tuple[int]`، *اختياري*، القيمة الافتراضية (1024, 1024)) : يُستخدم لتقييد عملية التوليد سلبياً بناءً على دقة الصورة المستهدفة. يجب أن تكون مطابقة لـ `target_size` في معظم الحالات. وهو جزء من التكييف الدقيق (micro-conditioning) في SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952). لمزيد من المعلومات، راجع موضوع هذا الإشكال: https://github.com/huggingface/diffusers/issues/4208.

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) الخاص بك.

pag_scale (`float`، *اختياري*، القيمة الافتراضية 3.0) : معامل المقياس للتوجيه الانتباه المُعطَّل. إذا تم ضبطه على 0.0، فلن يُستخدم التوجيه الانتباه المُعطَّل.

pag_adaptive_scale (`float`، *اختياري*، القيمة الافتراضية 0.0) : معامل المقياس التكيفي لمرشد الانتباه المُعطَّل. إذا تم ضبطه على 0.0، يُستخدم `pag_scale`.

**يعيد:** `~pipelines.stable_diffusion_xl.StableDiffusionXLPipelineOutput` أو `tuple`

`~pipelines.stable_diffusion_xl.StableDiffusionXLPipelineOutput` إذا كان `return_dict` هو True، وإلا `tuple`. عند إرجاع tuple، يكون العنصر الأول قائمة تحتوي على الصور المولّدة.

الدالة التي تُستدعى عند استدعاء خط الأنابيب للتوليد.

أمثلة:
```py
>>> import torch
>>> from diffusers import AutoPipelineForText2Image

>>> pipe = AutoPipelineForText2Image.from_pretrained(
...     "stabilityai/stable-diffusion-xl-base-1.0",
...     torch_dtype=torch.float16,
...     enable_pag=True,
... )
>>> pipe = pipe.to("cuda")

>>> prompt = "a photo of an astronaut riding a horse on mars"
>>> image = pipe(prompt, pag_scale=0.3).images[0]
```

#### encode_prompt[[diffusers.StableDiffusionXLPAGPipeline.encode_prompt]]

```python
encode_prompt(prompt: str, prompt_2: str | None = None, device: typing.Optional[torch.device] = None, num_images_per_prompt: int = 1, do_classifier_free_guidance: bool = True, negative_prompt: str | None = None, negative_prompt_2: str | None = None, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, lora_scale: float | None = None, clip_skip: int | None = None)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_sd_xl.py#L293)

**المعاملات:**

prompt (`str` أو `list[str]`، *اختياري*) : النص الذي سيتم ترميزه

prompt_2 (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات المرسل إلى `tokenizer_2` و`text_encoder_2`. إذا لم يُعرَّف، يُستخدم `prompt` في كلا مشفّري النص

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`).

negative_prompt_2 (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات التي لا ينبغي توجيه توليد الصورة إليها، والتي سيتم إرسالها إلى `tokenizer_2` و`text_encoder_2`. إذا لم يُعرَّف، يُستخدم `negative_prompt` في كلا مشفري النص

prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد تمثيلات النص من معامل الإدخال `prompt`.

negative_prompt_embeds (`torch.Tensor`, *اختياري*) : تمثيلات نصية سالبة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد negative_prompt_embeds من معامل الإدخال `negative_prompt`.

pooled_prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مجمّعة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد تمثيلات نصية مجمّعة من معامل الإدخال `prompt`.

negative_pooled_prompt_embeds (`torch.Tensor`, *اختياري*) : تمثيلات نصية مجمعة سالبة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد pooled negative_prompt_embeds من معامل الإدخال `negative_prompt`.

lora_scale (`float`، *اختياري*) : مقياس lora سيُطبَّق على جميع طبقات LoRA في مُشفِّر النص إذا كانت طبقات LoRA محمَّلة.

clip_skip (`int`, *اختياري*) : عدد الطبقات التي سيتم تجاوزها من CLIP أثناء حساب تمثيلات الموجه. القيمة 1 تعني أنه سيتم استخدام مخرجات الطبقة قبل الأخيرة لحساب تمثيلات الموجه.

يقوم بتشفير الموجه إلى حالات مخفية لمشفّر النص.

#### get_guidance_scale_embedding[[diffusers.StableDiffusionXLPAGPipeline.get_guidance_scale_embedding]]

```python
get_guidance_scale_embedding(w: Tensor, embedding_dim: int = 512, dtype: dtype = torch.float32)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_sd_xl.py#L771)

**المعاملات:**

w (`torch.Tensor`) : توليد متجهات تضمين بمقياس توجيه محدد لتُثري متضمينات خطوات الزمن اللاحقة.

embedding_dim (`int`، *اختياري*، القيمة الافتراضية 512) : بُعد التضمينات (embeddings) التي سيتم توليدها.

dtype (`torch.dtype`، *اختياري*، الافتراضي `torch.float32`) : نوع البيانات للتضمينات المولّدة.

**يعيد:** `torch.Tensor`

متجهات تضمين بشكل `(len(w), embedding_dim)`.

انظر إلى https://github.com/google-research/vdm/blob/dc27b98a554f65cdc654b800da5aa1846545d41b/model_vdm.py#L298

## StableDiffusionXLPAGImg2ImgPipeline[[diffusers.StableDiffusionXLPAGImg2ImgPipeline]]

#### diffusers.StableDiffusionXLPAGImg2ImgPipeline[[diffusers.StableDiffusionXLPAGImg2ImgPipeline]]

```python
diffusers.StableDiffusionXLPAGImg2ImgPipeline(vae: AutoencoderKL, text_encoder: CLIPTextModel, text_encoder_2: CLIPTextModelWithProjection, tokenizer: CLIPTokenizer, tokenizer_2: CLIPTokenizer, unet: UNet2DConditionModel, scheduler: KarrasDiffusionSchedulers, image_encoder: CLIPVisionModelWithProjection = None, feature_extractor: CLIPImageProcessorPil = None, requires_aesthetics_score: bool = False, force_zeros_for_empty_prompt: bool = True, add_watermarker: bool | None = None, pag_applied_layers: str | list[str] = 'mid')
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_sd_xl_img2img.py#L191)

**المعاملات:**

vae ([AutoencoderKL](/docs/diffusers/main/ar/api/models/autoencoderkl#diffusers.AutoencoderKL)) : نموذج الترميز التحويلي التبايني (VAE) لتشفير وفك تشفير الصور إلى تمثيلات كامنة ومنها.

text_encoder (`CLIPTextModel`) : مُشفِّر نص ثابت. يستخدم Stable Diffusion XL الجزء النصي من [CLIP](https://huggingface.co/docs/transformers/model_doc/clip#transformers.CLIPTextModel)، وتحديداً النسخة [clip-vit-large-patch14](https://huggingface.co/openai/clip-vit-large-patch14).

text_encoder_2 (` CLIPTextModelWithProjection`) : مُشفِّر نصي مجمّد ثانٍ. يستخدم Stable Diffusion XL جزء النص والجزء المُجمَّع (pool) من [CLIP](https://huggingface.co/docs/transformers/model_doc/clip#transformers.CLIPTextModelWithProjection)، وتحديداً النسخة [laion/CLIP-ViT-bigG-14-laion2B-39B-b160k](https://huggingface.co/laion/CLIP-ViT-bigG-14-laion2B-39B-b160k).

tokenizer (`CLIPTokenizer`) : مُقسِّم من الفئة [CLIPTokenizer](https://huggingface.co/docs/transformers/v4.21.0/en/model_doc/clip#transformers.CLIPTokenizer).

tokenizer_2 (`CLIPTokenizer`) : مُقسِّم ثانٍ من الفئة [CLIPTokenizer](https://huggingface.co/docs/transformers/v4.21.0/en/model_doc/clip#transformers.CLIPTokenizer).

unet ([UNet2DConditionModel](/docs/diffusers/main/ar/api/models/unet2d-cond#diffusers.UNet2DConditionModel)) : بنية U-Net الشرطية لفك تشويش كامن الصورة المُرمّزة.

scheduler ([SchedulerMixin](/docs/diffusers/main/ar/api/schedulers/overview#diffusers.SchedulerMixin)) : مُجدول يُستخدم بالاقتران مع `unet` لإزالة الضوضاء من كائنات الصورة المُرمّزة. يمكن أن يكون أحد [DDIMScheduler](/docs/diffusers/main/ar/api/schedulers/ddim#diffusers.DDIMScheduler) أو [LMSDiscreteScheduler](/docs/diffusers/main/ar/api/schedulers/lms_discrete#diffusers.LMSDiscreteScheduler) أو [PNDMScheduler](/docs/diffusers/main/ar/api/schedulers/pndm#diffusers.PNDMScheduler).

requires_aesthetics_score (`bool`، *اختياري*، القيمة الافتراضية `"False"`) : ما إذا كان `unet` يتطلب تمرير شرط `aesthetic_score` أثناء الاستدلال. راجع أيضًا إعدادات `stabilityai/stable-diffusion-xl-refiner-1-0`.

force_zeros_for_empty_prompt (`bool`، *اختياري*، القيمة الافتراضية `"True"`) : ما إذا كان يجب إجبار تضمينات الموجه السلبي على أن تكون دائمًا 0. راجع أيضًا إعدادات `stabilityai/stable-diffusion-xl-base-1-0`.

add_watermarker (`bool`, *اختياري*) : ما إذا كان سيتم استخدام مكتبة [invisible_watermark](https://github.com/ShieldMnt/invisible-watermark/) لإضافة علامة مائية إلى الصور المُخرَجة. إذا لم يُعرَّف، فسيكون الافتراضي True إذا كانت الحزمة مثبّتة، وإلا فلن تُستخدم أي أداة لإضافة علامة مائية.

خط أنابيب لتوليد الصور من النص باستخدام Stable Diffusion XL.

يرث هذا النموذج من [DiffusionPipeline](/docs/diffusers/main/ar/api/pipelines/overview#diffusers.DiffusionPipeline). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع خطوط الأنابيب (مثل التنزيل أو الحفظ، أو التشغيل على جهاز معين، وما إلى ذلك).

تورث خط الأنابيب أيضًا طرق التحميل التالية:
- [load_textual_inversion()](/docs/diffusers/main/ar/api/loaders/textual_inversion#diffusers.loaders.TextualInversionLoaderMixin.load_textual_inversion) لتحميل تضمينات الانعكاس النصي
- [from_single_file()](/docs/diffusers/main/ar/api/loaders/single_file#diffusers.loaders.FromSingleFileMixin.from_single_file) لتحميل ملفات `.ckpt`
- [load_lora_weights()](/docs/diffusers/main/ar/api/loaders/lora#diffusers.loaders.StableDiffusionXLLoraLoaderMixin.load_lora_weights) لتحميل أوزان LoRA
- [save_lora_weights()](/docs/diffusers/main/ar/api/loaders/lora#diffusers.loaders.StableDiffusionXLLoraLoaderMixin.save_lora_weights) لحفظ أوزان LoRA
- [load_ip_adapter()](/docs/diffusers/main/ar/api/loaders/ip_adapter#diffusers.loaders.IPAdapterMixin.load_ip_adapter) لتحميل وحدات IP Adapter

#### __call__[[diffusers.StableDiffusionXLPAGImg2ImgPipeline.__call__]]

```python
__call__(prompt: str | list[str] = None, prompt_2: str | list[str] | None = None, image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = None, strength: float = 0.3, num_inference_steps: int = 50, timesteps: list = None, sigmas: list = None, denoising_start: float | None = None, denoising_end: float | None = None, guidance_scale: float = 5.0, negative_prompt: str | list[str] | None = None, negative_prompt_2: str | list[str] | None = None, num_images_per_prompt: int | None = 1, eta: float = 0.0, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, ip_adapter_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = None, ip_adapter_image_embeds: list[torch.Tensor] | None = None, output_type: str | None = 'pil', return_dict: bool = True, cross_attention_kwargs: dict[str, typing.Any] | None = None, guidance_rescale: float = 0.0, original_size: tuple = None, crops_coords_top_left: tuple = (0, 0), target_size: tuple = None, negative_original_size: tuple[int, int] | None = None, negative_crops_coords_top_left: tuple = (0, 0), negative_target_size: tuple[int, int] | None = None, aesthetic_score: float = 6.0, negative_aesthetic_score: float = 2.5, clip_skip: int | None = None, callback_on_step_end: typing.Union[typing.Callable[[int, int], NoneType], diffusers.callbacks.PipelineCallback, diffusers.callbacks.MultiPipelineCallbacks, NoneType] = None, callback_on_step_end_tensor_inputs: list = ['latents'], pag_scale: float = 3.0, pag_adaptive_scale: float = 0.0)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_sd_xl_img2img.py#L989)

**المعاملات:**

prompt (`str` أو `list[str]`، *اختياري*) : الأمر أو الأوامر التي تُوجّه توليد الصورة. إذا لم يُعرَّف، يجب تمرير `prompt_embeds` بدلاً من ذلك.

prompt_2 (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات المرسل إلى `tokenizer_2` و`text_encoder_2`. إذا لم يُعرَّف، يُستخدم `prompt` في كلا مشفّري النص

image (`torch.Tensor` أو `PIL.Image.Image` أو `np.ndarray` أو `list[torch.Tensor]` أو `list[PIL.Image.Image]` أو `list[np.ndarray]`) : الصورة أو الصور التي سيتم تعديلها باستخدام خط الأنابيب.

strength (`float`، *اختياري*، القيمة الافتراضية 0.3) : يُشير مفهومياً إلى مقدار تحويل الصورة المرجعية `image`. يجب أن يكون بين 0 و 1. ستُستخدم `image` كنقطة انطلاق، حيث يُضاف المزيد من الضوضاء إليها كلما زاد `strength`. يعتمد عدد خطوات إزالة الضوضاء على كمية الضوضاء المضافة في البداية. عندما تكون `strength` تساوي 1، ستكون الضوضاء المضافة في أقصى حد، وستعمل عملية إزالة الضوضاء لعدد التكرارات الكامل المحدد في `num_inference_steps`. وبالتالي، فإن القيمة 1 تتجاهل `image` بشكل أساسي. لاحظ أنه في حالة إعلان `denoising_start` كعدد صحيح، سيتم تجاهل قيمة `strength`.

num_inference_steps (`int`، *اختياري*، القيمة الافتراضية 50) : عدد خطوات إزالة الضوضاء. تؤدي زيادة عدد خطوات إزالة الضوضاء عادةً إلى صورة ذات جودة أعلى على حساب بطء الاستدلال.

timesteps (`list[int]`، *اختياري*) : خطوات زمنية مخصصة لاستخدامها في عملية إزالة الضوضاء مع المجدولين الذين يدعمون معامل `timesteps` في طريقة `set_timesteps` الخاصة بهم. إذا لم يُعرَّف، فسيتم استخدام السلوك الافتراضي عند تمرير `num_inference_steps`. يجب أن تكون بترتيب تنازلي.

sigmas (`list[float]`، *اختياري*) : قيم `sigmas` مخصصة لاستخدامها في عملية إزالة الضوضاء مع المجدولين الذين يدعمون معامل `sigmas` في طريقة `set_timesteps` الخاصة بهم. إذا لم تُعرَّف، فسيتم استخدام السلوك الافتراضي عند تمرير `num_inference_steps`.

denoising_start (`float`, *اختياري*) : عند تحديده، يشير إلى نسبة (بين 0.0 و 1.0) من إجمالي عملية إزالة الضوضاء التي سيتم تجاوزها قبل بدء العملية. ونتيجةً لذلك، يتم تخطي الجزء الأولي من عملية إزالة الضوضاء ويُفترض أن `image` المُمرَّر هو صورة مُزالة الضوضاء جزئيًا. لاحظ أنه عند تحديد هذا، سيتم تجاهل strength. يُعدّ معامل `denoising_start` مفيدًا بشكل خاص عند دمج هذا الخط الأنابيب في إعداد متعدد الخطوط الأنابيب "Mixture of Denoisers"، كما هو موضح في [**تحسين جودة الصورة**](https://huggingface.co/docs/diffusers/using-diffusers/sdxl#refine-image-quality).

denoising_end (`float`, *اختياري*) : عند تحديده، يحدد نسبة (بين 0.0 و 1.0) من عملية إزالة الضوضاء الإجمالية التي يجب إكمالها قبل إنهائها مبكرًا عمدًا. ونتيجةً لذلك، سيحتفظ العينة المُعاد بها بكمية كبيرة من الضوضاء (حيث لا يزال هناك حاجة إلى حوالي 20% الأخيرة من خطوات الزمن) ويجب إزالة ضوضائها بواسطة خط أنابيب تابع تم ضبط `denoising_start` فيه على 0.8 بحيث يقوم بإزالة الضوضاء عن 20% الأخيرة من المجدول فقط. يجب استخدام معامل denoising_end بشكل مثالي عندما يشكل هذا الخط أنابيب جزءًا من إعداد متعدد خطوط الأنابيب "خليط من مُزيلات الضوضاء"، كما هو موضح في [**تحسين جودة الصورة**](https://huggingface.co/docs/diffusers/using-diffusers/sdxl#refine-image-quality).

guidance_scale (`float`, *اختياري*, القيمة الافتراضية 7.5) : مقياس التوجيه كما هو مُعرَّف في [Classifier-Free Diffusion Guidance](https://huggingface.co/papers/2207.12598). يُعرَّف `guidance_scale` على أنه `w` من المعادلة 2. في [Imagen Paper](https://huggingface.co/papers/2205.11487). يتم تفعيل مقياس التوجيه عن طريق تعيين `guidance_scale > 1`. يشجع مقياس التوجيه الأعلى على توليد صور مرتبطة ارتباطًا وثيقًا بنص `prompt`، وعادةً على حساب انخفاض جودة الصورة.

negative_prompt (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات التي لا ينبغي توجيه توليد الصورة بها. إذا لم يُعرَّف، يجب تمرير `negative_prompt_embeds` بدلاً من ذلك. يتم تجاهله عند عدم استخدام التوجيه (أي يتم تجاهله إذا كان `guidance_scale` أقل من `1`).

negative_prompt_2 (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات التي لا ينبغي توجيه توليد الصورة إليها، والتي سيتم إرسالها إلى `tokenizer_2` و`text_encoder_2`. إذا لم يُعرَّف، يُستخدم `negative_prompt` في كلا مشفري النص

num_images_per_prompt (`int`، *اختياري*، القيمة الافتراضية 1) : عدد الصور التي سيتم توليدها لكل موجه.

eta (`float`، *اختياري*، القيمة الافتراضية 0.0) : يتوافق مع المعامل eta (η) في ورقة DDIM: https://huggingface.co/papers/2010.02502. ينطبق فقط على [schedulers.DDIMScheduler](/docs/diffusers/main/ar/api/schedulers/ddim#diffusers.DDIMScheduler)، وسيتم تجاهله في الحالات الأخرى.

generator (`torch.Generator` أو `list[torch.Generator]`، *اختياري*) : مولّد واحد أو قائمة من [مولّدات torch](https://pytorch.org/docs/stable/generated/torch.Generator.html) لجعل التوليد حتميًا.

latents (`torch.Tensor`، *اختياري*) : كامنات ضجيج مُولّدة مسبقًا، مُستخرجة من توزيع غاوسي، تُستخدم كمدخلات لتوليد الصور. يمكن استخدامها لتعديل نفس التوليد باستخدام أوامر مختلفة. إذا لم تُقدَّم، سيتم توليد كامنات من خلال الاستخراج باستخدام `generator` العشوائي المُقدَّم.

prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد تمثيلات النص من معامل الإدخال `prompt`.

negative_prompt_embeds (`torch.Tensor`, *اختياري*) : تمثيلات نصية سالبة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد negative_prompt_embeds من معامل الإدخال `negative_prompt`.

pooled_prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مجمّعة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد تمثيلات نصية مجمّعة من معامل الإدخال `prompt`.

negative_pooled_prompt_embeds (`torch.Tensor`, *اختياري*) : تمثيلات نصية مجمعة سالبة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد pooled negative_prompt_embeds من معامل الإدخال `negative_prompt`.

ip_adapter_image : (`PipelineImageInput`، *اختياري*): إدخال صورة اختياري للعمل مع IP Adapters.

ip_adapter_image_embeds (`list[torch.Tensor]`, *اختياري*) : تمثيلات صور مُولّدة مسبقًا لـ IP-Adapter. يجب أن يكون قائمة بطول يساوي عدد وحدات IP-adapter. يجب أن يكون كل عنصر منها متجهًا (tensor) بشكل `(batch_size, num_images, emb_dim)`. يجب أن يحتوي على تمثيل الصورة السلبية إذا كان `do_classifier_free_guidance` مضبوطًا على `True`. إذا لم يُقدَّم، تُحسب التمثيلات من معامل الإدخال `ip_adapter_image`.

output_type (`str`، *اختياري*، القيمة الافتراضية `"pil"`) : صيغة الصورة الناتجة عن عملية التوليد. اختر بين [PIL](https://pillow.readthedocs.io/en/stable/): `PIL.Image.Image` أو `np.array`.

return_dict (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان يجب إرجاع `~pipelines.stable_diffusion.StableDiffusionXLPipelineOutput` بدلاً من tuple عادي.

cross_attention_kwargs (`dict`، *اختياري*) : قاموس kwargs يُمرَّر إلى `AttentionProcessor` إذا تم تحديده، كما هو معرَّف تحت `self.processor` في [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py).

guidance_rescale (`float`, *optional*, defaults to 0.0) : Guidance rescale factor proposed by [Common Diffusion Noise Schedules and Sample Steps are Flawed](https://huggingface.co/papers/2305.08891) `guidance_scale` is defined as `φ` in equation 16. of [Common Diffusion Noise Schedules and Sample Steps are Flawed](https://huggingface.co/papers/2305.08891). Guidance rescale factor should fix overexposure when using zero terminal SNR.

original_size (`tuple[int]`، *اختياري*، القيمة الافتراضية (1024, 1024)) : إذا لم تكن `original_size` مطابقة لـ `target_size`، فسيبدو أن الصورة قد خضعت لتقليل أو زيادة حجمها. القيمة الافتراضية لـ `original_size` هي `(height, width)` إذا لم تُحدد. جزء من التكييف الدقيق (micro-conditioning) الخاص بـ SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952).

crops_coords_top_left (`tuple[int]`، *اختياري*، القيمة الافتراضية (0, 0)) : يمكن استخدام `crops_coords_top_left` لتوليد صورة تبدو وكأنها "مقتطعة" من الموضع `crops_coords_top_left` إلى الأسفل. عادةً ما يتم تحقيق صور مفضلة ومركزة جيدًا عن طريق تعيين `crops_coords_top_left` إلى (0, 0). جزء من micro-conditioning الخاص بـ SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952).

target_size (`tuple[int]`، *اختياري*، القيمة الافتراضية (1024, 1024)) : في معظم الحالات، يجب ضبط `target_size` على الارتفاع والعرض المطلوبين للصورة المولّدة. إذا لم يُحدد، فسيكون الافتراضي `(height, width)`. جزء من التكييف الدقيق (micro-conditioning) في SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952).

negative_original_size (`tuple[int]`، *اختياري*، القيمة الافتراضية (1024, 1024)) : يُستخدم لتقييد عملية التوليد سلبياً بناءً على دقة صورة محددة. وهو جزء من التكييف الدقيق (micro-conditioning) في SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952). لمزيد من المعلومات، راجع موضوع هذا المسألة: https://github.com/huggingface/diffusers/issues/4208.

negative_crops_coords_top_left (`tuple[int]`، *اختياري*، القيمة الافتراضية (0, 0)) : يُستخدم لتوجيه عملية التوليد سلبياً بناءً على إحداثيات قصّ محددة. وهو جزء من التكييف الدقيق (micro-conditioning) في SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952). لمزيد من المعلومات، راجع موضوع هذا الإشكال: https://github.com/huggingface/diffusers/issues/4208.

negative_target_size (`tuple[int]`، *اختياري*، القيمة الافتراضية (1024, 1024)) : يُستخدم لتقييد عملية التوليد سلبياً بناءً على دقة الصورة المستهدفة. يجب أن تكون مطابقة لـ `target_size` في معظم الحالات. وهو جزء من التكييف الدقيق (micro-conditioning) في SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952). لمزيد من المعلومات، راجع موضوع هذا الإشكال: https://github.com/huggingface/diffusers/issues/4208.

aesthetic_score (`float`، *اختياري*، القيمة الافتراضية 6.0) : يُستخدم لمحاكاة درجة جمالية للصورة المولّدة من خلال التأثير على شرط النص الإيجابي. وهو جزء من التكييف الدقيق (micro-conditioning) في SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952).

negative_aesthetic_score (`float`، *اختياري*، القيمة الافتراضية 2.5) : جزء من التكييف الدقيق (micro-conditioning) في SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952). يمكن استخدامه لمحاكاة درجة جمالية للصورة المولّدة من خلال التأثير على شرط النص السلبي.

clip_skip (`int`, *اختياري*) : عدد الطبقات التي سيتم تجاوزها من CLIP أثناء حساب تمثيلات الموجه. القيمة 1 تعني أنه سيتم استخدام مخرجات الطبقة قبل الأخيرة لحساب تمثيلات الموجه.

callback_on_step_end (`Callable`، `PipelineCallback`، `MultiPipelineCallbacks`، *اختياري*) : دالة أو فئة فرعية من `PipelineCallback` أو `MultiPipelineCallbacks` تُستدعى في نهاية كل خطوة إزالة ضوضاء أثناء الاستدلال، مع الحُجج التالية: `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) الخاص بك.

pag_scale (`float`، *اختياري*، القيمة الافتراضية 3.0) : معامل المقياس للتوجيه الانتباه المُعطَّل. إذا تم ضبطه على 0.0، فلن يُستخدم التوجيه الانتباه المُعطَّل.

pag_adaptive_scale (`float`، *اختياري*، القيمة الافتراضية 0.0) : معامل المقياس التكيفي لمرشد الانتباه المُعطَّل. إذا تم ضبطه على 0.0، يُستخدم `pag_scale`.

**يعيد:** `~pipelines.stable_diffusion.StableDiffusionXLPipelineOutput` أو `tuple`

`~pipelines.stable_diffusion.StableDiffusionXLPipelineOutput` إذا كان `return_dict` هو True، وإلا فسيكون `tuple. عند إرجاع tuple، يكون العنصر الأول قائمة تحتوي على الصور المولّدة.

الدالة التي تُستدعى عند استدعاء خط الأنابيب للتوليد.

أمثلة:
```py
>>> import torch
>>> from diffusers import AutoPipelineForImage2Image
>>> from diffusers.utils import load_image

>>> pipe = AutoPipelineForImage2Image.from_pretrained(
...     "stabilityai/stable-diffusion-xl-refiner-1.0",
...     torch_dtype=torch.float16,
...     enable_pag=True,
... )
>>> pipe = pipe.to("cuda")
>>> url = "https://huggingface.co/datasets/patrickvonplaten/images/resolve/main/aa_xl/000000009.png"

>>> init_image = load_image(url).convert("RGB")
>>> prompt = "a photo of an astronaut riding a horse on mars"
>>> image = pipe(prompt, image=init_image, pag_scale=0.3).images[0]
```

#### encode_prompt[[diffusers.StableDiffusionXLPAGImg2ImgPipeline.encode_prompt]]

```python
encode_prompt(prompt: str, prompt_2: str | None = None, device: typing.Optional[torch.device] = None, num_images_per_prompt: int = 1, do_classifier_free_guidance: bool = True, negative_prompt: str | None = None, negative_prompt_2: str | None = None, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, lora_scale: float | None = None, clip_skip: int | None = None)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_sd_xl_img2img.py#L311)

**المعاملات:**

prompt (`str` أو `list[str]`، *اختياري*) : النص الذي سيتم ترميزه

prompt_2 (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات المرسل إلى `tokenizer_2` و`text_encoder_2`. إذا لم يُعرَّف، يُستخدم `prompt` في كلا مشفّري النص

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`).

negative_prompt_2 (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات التي لا ينبغي توجيه توليد الصورة إليها، والتي سيتم إرسالها إلى `tokenizer_2` و`text_encoder_2`. إذا لم يُعرَّف، يُستخدم `negative_prompt` في كلا مشفري النص

prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد تمثيلات النص من معامل الإدخال `prompt`.

negative_prompt_embeds (`torch.Tensor`, *اختياري*) : تمثيلات نصية سالبة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد negative_prompt_embeds من معامل الإدخال `negative_prompt`.

pooled_prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مجمّعة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد تمثيلات نصية مجمّعة من معامل الإدخال `prompt`.

negative_pooled_prompt_embeds (`torch.Tensor`, *اختياري*) : تمثيلات نصية مجمعة سالبة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد pooled negative_prompt_embeds من معامل الإدخال `negative_prompt`.

lora_scale (`float`، *اختياري*) : مقياس lora سيُطبَّق على جميع طبقات LoRA في مُشفِّر النص إذا كانت طبقات LoRA محمَّلة.

clip_skip (`int`, *اختياري*) : عدد الطبقات التي سيتم تجاوزها من CLIP أثناء حساب تمثيلات الموجه. القيمة 1 تعني أنه سيتم استخدام مخرجات الطبقة قبل الأخيرة لحساب تمثيلات الموجه.

يقوم بتشفير الموجه إلى حالات مخفية لمشفّر النص.

#### get_guidance_scale_embedding[[diffusers.StableDiffusionXLPAGImg2ImgPipeline.get_guidance_scale_embedding]]

```python
get_guidance_scale_embedding(w: Tensor, embedding_dim: int = 512, dtype: dtype = torch.float32)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_sd_xl_img2img.py#L920)

**المعاملات:**

w (`torch.Tensor`) : توليد متجهات تضمين بمقياس توجيه محدد لتُثري متضمينات خطوات الزمن اللاحقة.

embedding_dim (`int`، *اختياري*، القيمة الافتراضية 512) : بُعد التضمينات (embeddings) التي سيتم توليدها.

dtype (`torch.dtype`، *اختياري*، الافتراضي `torch.float32`) : نوع البيانات للتضمينات المولّدة.

**يعيد:** `torch.Tensor`

متجهات تضمين بشكل `(len(w), embedding_dim)`.

انظر إلى https://github.com/google-research/vdm/blob/dc27b98a554f65cdc654b800da5aa1846545d41b/model_vdm.py#L298

## StableDiffusionXLPAGInpaintPipeline[[diffusers.StableDiffusionXLPAGInpaintPipeline]]

#### diffusers.StableDiffusionXLPAGInpaintPipeline[[diffusers.StableDiffusionXLPAGInpaintPipeline]]

```python
diffusers.StableDiffusionXLPAGInpaintPipeline(vae: AutoencoderKL, text_encoder: CLIPTextModel, text_encoder_2: CLIPTextModelWithProjection, tokenizer: CLIPTokenizer, tokenizer_2: CLIPTokenizer, unet: UNet2DConditionModel, scheduler: KarrasDiffusionSchedulers, image_encoder: CLIPVisionModelWithProjection = None, feature_extractor: CLIPImageProcessorPil = None, requires_aesthetics_score: bool = False, force_zeros_for_empty_prompt: bool = True, add_watermarker: bool | None = None, pag_applied_layers: str | list[str] = 'mid')
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_sd_xl_inpaint.py#L204)

**المعاملات:**

vae ([AutoencoderKL](/docs/diffusers/main/ar/api/models/autoencoderkl#diffusers.AutoencoderKL)) : نموذج الترميز التحويلي التبايني (VAE) لتشفير وفك تشفير الصور إلى تمثيلات كامنة ومنها.

text_encoder (`CLIPTextModel`) : مُشفِّر نص ثابت. يستخدم Stable Diffusion XL الجزء النصي من [CLIP](https://huggingface.co/docs/transformers/model_doc/clip#transformers.CLIPTextModel)، وتحديداً النسخة [clip-vit-large-patch14](https://huggingface.co/openai/clip-vit-large-patch14).

text_encoder_2 (` CLIPTextModelWithProjection`) : مُشفِّر نصي مجمّد ثانٍ. يستخدم Stable Diffusion XL جزء النص والجزء المُجمَّع (pool) من [CLIP](https://huggingface.co/docs/transformers/model_doc/clip#transformers.CLIPTextModelWithProjection)، وتحديداً النسخة [laion/CLIP-ViT-bigG-14-laion2B-39B-b160k](https://huggingface.co/laion/CLIP-ViT-bigG-14-laion2B-39B-b160k).

tokenizer (`CLIPTokenizer`) : مُقسِّم من الفئة [CLIPTokenizer](https://huggingface.co/docs/transformers/v4.21.0/en/model_doc/clip#transformers.CLIPTokenizer).

tokenizer_2 (`CLIPTokenizer`) : مُقسِّم ثانٍ من الفئة [CLIPTokenizer](https://huggingface.co/docs/transformers/v4.21.0/en/model_doc/clip#transformers.CLIPTokenizer).

unet ([UNet2DConditionModel](/docs/diffusers/main/ar/api/models/unet2d-cond#diffusers.UNet2DConditionModel)) : بنية U-Net الشرطية لفك تشويش كامن الصورة المُرمّزة.

scheduler ([SchedulerMixin](/docs/diffusers/main/ar/api/schedulers/overview#diffusers.SchedulerMixin)) : مُجدول يُستخدم بالاقتران مع `unet` لإزالة الضوضاء من كائنات الصورة المُرمّزة. يمكن أن يكون أحد [DDIMScheduler](/docs/diffusers/main/ar/api/schedulers/ddim#diffusers.DDIMScheduler) أو [LMSDiscreteScheduler](/docs/diffusers/main/ar/api/schedulers/lms_discrete#diffusers.LMSDiscreteScheduler) أو [PNDMScheduler](/docs/diffusers/main/ar/api/schedulers/pndm#diffusers.PNDMScheduler).

requires_aesthetics_score (`bool`، *اختياري*، القيمة الافتراضية `"False"`) : ما إذا كان `unet` يتطلب تمرير شرط aesthetic_score أثناء الاستدلال. راجع أيضًا إعدادات `stabilityai/stable-diffusion-xl-refiner-1-0`.

force_zeros_for_empty_prompt (`bool`، *اختياري*، القيمة الافتراضية `"True"`) : ما إذا كان يجب إجبار تضمينات الموجه السلبي على أن تكون دائمًا 0. راجع أيضًا إعدادات `stabilityai/stable-diffusion-xl-base-1-0`.

add_watermarker (`bool`, *اختياري*) : ما إذا كان سيتم استخدام مكتبة [invisible_watermark](https://github.com/ShieldMnt/invisible-watermark/) لإضافة علامة مائية إلى الصور المُخرَجة. إذا لم يُعرَّف، فسيكون الافتراضي True إذا كانت الحزمة مثبّتة، وإلا فلن تُستخدم أي أداة لإضافة علامة مائية.

خط أنابيب لتوليد الصور من النص باستخدام Stable Diffusion XL.

يرث هذا النموذج من [DiffusionPipeline](/docs/diffusers/main/ar/api/pipelines/overview#diffusers.DiffusionPipeline). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع خطوط الأنابيب (مثل التنزيل أو الحفظ، أو التشغيل على جهاز معين، وما إلى ذلك).

تورث خط الأنابيب أيضًا طرق التحميل التالية:
- [load_textual_inversion()](/docs/diffusers/main/ar/api/loaders/textual_inversion#diffusers.loaders.TextualInversionLoaderMixin.load_textual_inversion) لتحميل تضمينات الانعكاس النصي
- [from_single_file()](/docs/diffusers/main/ar/api/loaders/single_file#diffusers.loaders.FromSingleFileMixin.from_single_file) لتحميل ملفات `.ckpt`
- [load_lora_weights()](/docs/diffusers/main/ar/api/loaders/lora#diffusers.loaders.StableDiffusionXLLoraLoaderMixin.load_lora_weights) لتحميل أوزان LoRA
- [save_lora_weights()](/docs/diffusers/main/ar/api/loaders/lora#diffusers.loaders.StableDiffusionXLLoraLoaderMixin.save_lora_weights) لحفظ أوزان LoRA
- [load_ip_adapter()](/docs/diffusers/main/ar/api/loaders/ip_adapter#diffusers.loaders.IPAdapterMixin.load_ip_adapter) لتحميل وحدات IP Adapter

#### __call__[[diffusers.StableDiffusionXLPAGInpaintPipeline.__call__]]

```python
__call__(prompt: str | list[str] = None, prompt_2: str | list[str] | None = None, image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = None, mask_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = None, masked_image_latents: Tensor = None, height: int | None = None, width: int | None = None, padding_mask_crop: int | None = None, strength: float = 0.9999, num_inference_steps: int = 50, timesteps: list = None, sigmas: list = None, denoising_start: float | None = None, denoising_end: float | None = None, guidance_scale: float = 7.5, negative_prompt: str | list[str] | None = None, negative_prompt_2: str | list[str] | None = None, num_images_per_prompt: int | None = 1, eta: float = 0.0, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, ip_adapter_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = None, ip_adapter_image_embeds: list[torch.Tensor] | None = None, output_type: str | None = 'pil', return_dict: bool = True, cross_attention_kwargs: dict[str, typing.Any] | None = None, guidance_rescale: float = 0.0, original_size: tuple = None, crops_coords_top_left: tuple = (0, 0), target_size: tuple = None, negative_original_size: tuple[int, int] | None = None, negative_crops_coords_top_left: tuple = (0, 0), negative_target_size: tuple[int, int] | None = None, aesthetic_score: float = 6.0, negative_aesthetic_score: float = 2.5, clip_skip: int | None = None, callback_on_step_end: typing.Union[typing.Callable[[int, int], NoneType], diffusers.callbacks.PipelineCallback, diffusers.callbacks.MultiPipelineCallbacks, NoneType] = None, callback_on_step_end_tensor_inputs: list = ['latents'], pag_scale: float = 3.0, pag_adaptive_scale: float = 0.0)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_sd_xl_inpaint.py#L1080)

**المعاملات:**

prompt (`str` أو `list[str]`، *اختياري*) : الأمر أو الأوامر التي تُوجّه توليد الصورة. إذا لم يُعرَّف، يجب تمرير `prompt_embeds` بدلاً من ذلك.

prompt_2 (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات المرسل إلى `tokenizer_2` و`text_encoder_2`. إذا لم يُعرَّف، يُستخدم `prompt` في كلا مشفّري النص

image (`PIL.Image.Image`) : `Image`، أو tensor يمثل دفعة من الصور التي سيتم إجراء inpaint عليها، *أي* أن أجزاء من الصورة ستُخفى باستخدام `mask_image` ثم تُعاد رسمها وفقاً لـ `prompt`.

mask_image (`PIL.Image.Image`) : `Image`، أو متجه (tensor) يمثل دفعة من الصور، لتطبيق قناع على `image`. سيتم إعادة رسم البكسلات البيضاء في القناع، بينما ستُحفظ البكسلات السوداء. إذا كان `mask_image` صورة بصيغة PIL، فسيتم تحويلها إلى قناة واحدة (السطوع) قبل الاستخدام. أما إذا كان متجهًا (tensor)، فيجب أن يحتوي على قناة لون واحدة (L) بدلاً من ثلاث، وبالتالي فإن الشكل المتوقع هو `(B, H, W, 1)`.

masked_image_latents (`torch.Tensor`، *اختياري*) : تمثيل كامن مُرمَّز مسبقًا للصورة المقنَّعة (لأغراض إعادة الرسم).

height (`int`، *اختياري*، القيمة الافتراضية هي self.unet.config.sample_size * self.vae_scale_factor) : ارتفاع الصورة المولّدة بالبكسلات. يتم ضبطه على 1024 افتراضيًا للحصول على أفضل النتائج. أي قيمة أقل من 512 بكسل لن تعمل بشكل جيد مع [stabilityai/stable-diffusion-xl-base-1.0](https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0) ونقاط التفتيش التي لم يتم ضبطها بدقة خصيصًا على الدقة المنخفضة.

width (`int`، *اختياري*، القيمة الافتراضية هي self.unet.config.sample_size * self.vae_scale_factor) : عرض الصورة المولدة بالبكسلات. يتم ضبطه على 1024 افتراضيًا للحصول على أفضل النتائج. أي قيمة أقل من 512 بكسل لن تعمل بشكل جيد مع [stabilityai/stable-diffusion-xl-base-1.0](https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0) ونقاط التفتيش التي لم يتم ضبطها بدقة خصيصًا على الدقات المنخفضة.

padding_mask_crop (`int`, *اختياري*, القيمة الافتراضية `None`) : حجم الهامش في الاقتصاص الذي سيُطبَّق على الصورة والقناع. إذا كانت `None`، فلن يُطبَّق أي اقتصاص على الصورة وmask_image. إذا لم تكن `padding_mask_crop` هي `None`، فسيتم أولاً إيجاد منطقة مستطيلة بنفس نسبة أبعاد الصورة وتحتوي على كل المناطق المقنَّعة، ثم توسيع تلك المنطقة بناءً على `padding_mask_crop`. بعد ذلك، ستُقتَص الصورة وmask_image بناءً على المنطقة الموسَّعة قبل تغيير حجمهما إلى حجم الصورة الأصلي لأغراض إعادة البناء. هذا مفيد عندما تكون المنطقة المقنَّعة صغيرة بينما تكون الصورة كبيرة وتحتوي على معلومات غير ذات صلة بإعادة البناء، مثل الخلفية.

strength (`float`، *اختياري*، القيمة الافتراضية 0.9999) : يشير مفهومياً إلى مقدار تحويل الجزء المقنّع من صورة `image` المرجعية. يجب أن يكون بين 0 و 1. ستُستخدم `image` كنقطة انطلاق، حيث يُضاف المزيد من الضوضاء إليها كلما زاد `strength`. يعتمد عدد خطوات إزالة الضوضاء على كمية الضوضاء المضافة في البداية. عندما تكون قيمة `strength` هي 1، ستكون الضوضاء المضافة في أقصى حد، وستعمل عملية إزالة الضوضاء لعدد التكرارات الكامل المحدد في `num_inference_steps`. وبالتالي، فإن القيمة 1 تتجاهل فعلياً الجزء المقنّع من صورة `image` المرجعية. لاحظ أنه في حال تم إعلان `denoising_start` كعدد صحيح، سيتم تجاهل قيمة `strength`.

num_inference_steps (`int`، *اختياري*، القيمة الافتراضية 50) : عدد خطوات إزالة الضوضاء. تؤدي زيادة عدد خطوات إزالة الضوضاء عادةً إلى صورة ذات جودة أعلى على حساب بطء الاستدلال.

timesteps (`list[int]`، *اختياري*) : خطوات زمنية مخصصة لاستخدامها في عملية إزالة الضوضاء مع المجدولين الذين يدعمون معامل `timesteps` في طريقة `set_timesteps` الخاصة بهم. إذا لم يُعرَّف، فسيتم استخدام السلوك الافتراضي عند تمرير `num_inference_steps`. يجب أن تكون بترتيب تنازلي.

sigmas (`list[float]`، *اختياري*) : قيم `sigmas` مخصصة لاستخدامها في عملية إزالة الضوضاء مع المجدولين الذين يدعمون معامل `sigmas` في طريقة `set_timesteps` الخاصة بهم. إذا لم تُعرَّف، فسيتم استخدام السلوك الافتراضي عند تمرير `num_inference_steps`.

denoising_start (`float`, *اختياري*) : عند تحديده، يشير إلى الكسر (بين 0.0 و 1.0) من إجمالي عملية إزالة الضوضاء الذي سيتم تجاوزه قبل بدء العملية. وبالتالي، يتم تخطي الجزء الأولي من عملية إزالة الضوضاء ويُفترض أن `image` المُمرَّر هو صورة مُزالة الضوضاء جزئيًا. لاحظ أنه عند تحديد هذا، سيتم تجاهل strength. يُعدّ معامل `denoising_start` مفيدًا بشكل خاص عند دمج هذا الخط الأنابيب في إعداد متعدد الخطوط الأنابيب "Mixture of Denoisers"، كما هو موضح في [**تحسين مخرجات الصورة**](https://huggingface.co/docs/diffusers/api/pipelines/stable_diffusion/stable_diffusion_xl#refining-the-image-output).

denoising_end (`float`, *اختياري*) : عند تحديده، يحدد نسبة (بين 0.0 و 1.0) من عملية إزالة الضوضاء الإجمالية التي يجب إكمالها قبل إنهائها مبكرًا عمدًا. ونتيجةً لذلك، سيحتفظ العينة المُعاد بها بكمية كبيرة من الضوضاء (حيث لا يزال هناك حاجة إلى حوالي 20% الأخيرة من خطوات الزمن) ويجب إزالة ضوضائها بواسطة خط أنابيب تابع تم ضبط `denoising_start` فيه على 0.8 بحيث يقوم بإزالة الضوضاء عن 20% الأخيرة من المجدول فقط. يجب استخدام معامل denoising_end بشكل مثالي عندما يشكل هذا الخط أنابيب جزءًا من إعداد متعدد خطوط الأنابيب "خليط من مُزيلات الضوضاء"، كما هو موضح في [**تحسين مخرجات الصورة**](https://huggingface.co/docs/diffusers/api/pipelines/stable_diffusion/stable_diffusion_xl#refining-the-image-output).

guidance_scale (`float`, *اختياري*, القيمة الافتراضية 7.5) : مقياس التوجيه كما هو مُعرَّف في [Classifier-Free Diffusion Guidance](https://huggingface.co/papers/2207.12598). يُعرَّف `guidance_scale` على أنه `w` من المعادلة 2. في [Imagen Paper](https://huggingface.co/papers/2205.11487). يتم تفعيل مقياس التوجيه عن طريق تعيين `guidance_scale > 1`. يشجع مقياس التوجيه الأعلى على توليد صور مرتبطة ارتباطًا وثيقًا بنص `prompt`، وعادةً على حساب انخفاض جودة الصورة.

negative_prompt (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات التي لا ينبغي توجيه توليد الصورة بها. إذا لم يُعرَّف، يجب تمرير `negative_prompt_embeds` بدلاً من ذلك. يتم تجاهله عند عدم استخدام التوجيه (أي يتم تجاهله إذا كان `guidance_scale` أقل من `1`).

negative_prompt_2 (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات التي لا ينبغي توجيه توليد الصورة إليها، والتي سيتم إرسالها إلى `tokenizer_2` و`text_encoder_2`. إذا لم يُعرَّف، يُستخدم `negative_prompt` في كلا مشفري النص

prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد تمثيلات النص من معامل الإدخال `prompt`.

negative_prompt_embeds (`torch.Tensor`, *اختياري*) : تمثيلات نصية سالبة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد negative_prompt_embeds من معامل الإدخال `negative_prompt`.

pooled_prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مجمّعة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد تمثيلات نصية مجمّعة من معامل الإدخال `prompt`.

negative_pooled_prompt_embeds (`torch.Tensor`, *اختياري*) : تمثيلات نصية مجمعة سالبة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد pooled negative_prompt_embeds من معامل الإدخال `negative_prompt`.

ip_adapter_image : (`PipelineImageInput`، *اختياري*): إدخال صورة اختياري للعمل مع IP Adapters.

ip_adapter_image_embeds (`list[torch.Tensor]`, *اختياري*) : تمثيلات صور مُولّدة مسبقًا لـ IP-Adapter. يجب أن يكون قائمة بطول يساوي عدد وحدات IP-adapter. يجب أن يكون كل عنصر منها متجهًا (tensor) بشكل `(batch_size, num_images, emb_dim)`. يجب أن يحتوي على تمثيل الصورة السلبية إذا كان `do_classifier_free_guidance` مضبوطًا على `True`. إذا لم يُقدَّم، تُحسب التمثيلات من معامل الإدخال `ip_adapter_image`.

num_images_per_prompt (`int`، *اختياري*، القيمة الافتراضية 1) : عدد الصور التي سيتم توليدها لكل موجه.

eta (`float`، *اختياري*، القيمة الافتراضية 0.0) : يتوافق مع المعامل eta (η) في ورقة DDIM: https://huggingface.co/papers/2010.02502. ينطبق فقط على [schedulers.DDIMScheduler](/docs/diffusers/main/ar/api/schedulers/ddim#diffusers.DDIMScheduler)، وسيتم تجاهله في الحالات الأخرى.

generator (`torch.Generator`، *اختياري*) : مولّد واحد أو قائمة من [مولّدات torch](https://pytorch.org/docs/stable/generated/torch.Generator.html) لجعل التوليد حتميًا.

latents (`torch.Tensor`، *اختياري*) : كامنات ضجيج مُولّدة مسبقًا، مُستخرجة من توزيع غاوسي، تُستخدم كمدخلات لتوليد الصور. يمكن استخدامها لتعديل نفس التوليد باستخدام أوامر مختلفة. إذا لم تُقدَّم، سيتم توليد كامنات من خلال الاستخراج باستخدام `generator` العشوائي المُقدَّم.

output_type (`str`، *اختياري*، القيمة الافتراضية `"pil"`) : صيغة الصورة الناتجة عن عملية التوليد. اختر بين [PIL](https://pillow.readthedocs.io/en/stable/): `PIL.Image.Image` أو `np.array`.

return_dict (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان يجب إرجاع [StableDiffusionPipelineOutput](/docs/diffusers/main/ar/api/pipelines/stable_diffusion/img2img#diffusers.pipelines.stable_diffusion.StableDiffusionPipelineOutput) بدلاً من tuple عادي.

cross_attention_kwargs (`dict`، *اختياري*) : قاموس kwargs يُمرَّر إلى `AttentionProcessor` إذا تم تحديده، كما هو معرَّف تحت `self.processor` في [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py).

original_size (`tuple[int]`، *اختياري*، القيمة الافتراضية (1024, 1024)) : إذا لم تكن `original_size` مطابقة لـ `target_size`، فسيبدو أن الصورة قد خضعت لتقليل أو زيادة حجمها. القيمة الافتراضية لـ `original_size` هي `(height, width)` إذا لم تُحدد. جزء من التكييف الدقيق (micro-conditioning) الخاص بـ SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952).

crops_coords_top_left (`tuple[int]`، *اختياري*، القيمة الافتراضية (0, 0)) : يمكن استخدام `crops_coords_top_left` لتوليد صورة تبدو وكأنها "مقتطعة" من الموضع `crops_coords_top_left` إلى الأسفل. عادةً ما يتم تحقيق صور مفضلة ومركزة جيدًا عن طريق تعيين `crops_coords_top_left` إلى (0, 0). جزء من micro-conditioning الخاص بـ SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952).

target_size (`tuple[int]`، *اختياري*، القيمة الافتراضية (1024, 1024)) : في معظم الحالات، يجب ضبط `target_size` على الارتفاع والعرض المطلوبين للصورة المولّدة. إذا لم يُحدد، فسيكون الافتراضي `(height, width)`. جزء من التكييف الدقيق (micro-conditioning) في SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952).

negative_original_size (`tuple[int]`، *اختياري*، القيمة الافتراضية (1024, 1024)) : يُستخدم لتقييد عملية التوليد سلبياً بناءً على دقة صورة محددة. وهو جزء من التكييف الدقيق (micro-conditioning) في SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952). لمزيد من المعلومات، راجع موضوع هذا المسألة: https://github.com/huggingface/diffusers/issues/4208.

negative_crops_coords_top_left (`tuple[int]`، *اختياري*، القيمة الافتراضية (0, 0)) : يُستخدم لتوجيه عملية التوليد سلبياً بناءً على إحداثيات قصّ محددة. وهو جزء من التكييف الدقيق (micro-conditioning) في SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952). لمزيد من المعلومات، راجع موضوع هذا الإشكال: https://github.com/huggingface/diffusers/issues/4208.

negative_target_size (`tuple[int]`، *اختياري*، القيمة الافتراضية (1024, 1024)) : يُستخدم لتقييد عملية التوليد سلبياً بناءً على دقة الصورة المستهدفة. يجب أن تكون مطابقة لـ `target_size` في معظم الحالات. وهو جزء من التكييف الدقيق (micro-conditioning) في SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952). لمزيد من المعلومات، راجع موضوع هذا الإشكال: https://github.com/huggingface/diffusers/issues/4208.

aesthetic_score (`float`، *اختياري*، القيمة الافتراضية 6.0) : يُستخدم لمحاكاة درجة جمالية للصورة المولّدة من خلال التأثير على شرط النص الإيجابي. وهو جزء من التكييف الدقيق (micro-conditioning) في SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952).

negative_aesthetic_score (`float`، *اختياري*، القيمة الافتراضية 2.5) : جزء من التكييف الدقيق (micro-conditioning) في SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952). يمكن استخدامه لمحاكاة درجة جمالية للصورة المولّدة من خلال التأثير على شرط النص السلبي.

guidance_rescale (`float`، *اختياري*، القيمة الافتراضية 0.0) : معامل إعادة الضبط للتوجيه من [جداول ضوضاء الانتشار الشائعة وخطوات العينة معيبة](https://arxiv.org/pdf/2305.08891.pdf).

clip_skip (`int`, *اختياري*) : عدد الطبقات التي سيتم تجاوزها من CLIP أثناء حساب تمثيلات الموجه. القيمة 1 تعني أنه سيتم استخدام مخرجات الطبقة قبل الأخيرة لحساب تمثيلات الموجه.

callback_on_step_end (`Callable`، `PipelineCallback`، `MultiPipelineCallbacks`، *اختياري*) : دالة أو فئة فرعية من `PipelineCallback` أو `MultiPipelineCallbacks` تُستدعى في نهاية كل خطوة إزالة ضوضاء أثناء الاستدلال، مع الحُجج التالية: `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) الخاص بك.

pag_scale (`float`، *اختياري*، القيمة الافتراضية 3.0) : معامل المقياس للتوجيه الانتباه المُعطَّل. إذا تم ضبطه على 0.0، فلن يُستخدم التوجيه الانتباه المُعطَّل.

pag_adaptive_scale (`float`، *اختياري*، القيمة الافتراضية 0.0) : معامل المقياس التكيفي لمرشد الانتباه المُعطَّل. إذا تم ضبطه على 0.0، يُستخدم `pag_scale`.

**يعيد:** `~pipelines.stable_diffusion.StableDiffusionXLPipelineOutput` أو `tuple`

`~pipelines.stable_diffusion.StableDiffusionXLPipelineOutput` إذا كان `return_dict` هو True، وإلا `tuple. `tuple. عند إرجاع tuple، يكون العنصر الأول قائمة بالصور المولّدة.

الدالة التي تُستدعى عند استدعاء خط الأنابيب للتوليد.

أمثلة:
```py
>>> import torch
>>> from diffusers import AutoPipelineForInpainting
>>> from diffusers.utils import load_image

>>> pipe = AutoPipelineForInpainting.from_pretrained(
...     "stabilityai/stable-diffusion-xl-base-1.0",
...     torch_dtype=torch.float16,
...     variant="fp16",
...     enable_pag=True,
... )
>>> pipe.to("cuda")

>>> img_url = "https://raw.githubusercontent.com/CompVis/latent-diffusion/main/data/inpainting_examples/overture-creations-5sI6fQgYIuo.png"
>>> mask_url = "https://raw.githubusercontent.com/CompVis/latent-diffusion/main/data/inpainting_examples/overture-creations-5sI6fQgYIuo_mask.png"

>>> init_image = load_image(img_url).convert("RGB")
>>> mask_image = load_image(mask_url).convert("RGB")

>>> prompt = "A majestic tiger sitting on a bench"
>>> image = pipe(
...     prompt=prompt,
...     image=init_image,
...     mask_image=mask_image,
...     num_inference_steps=50,
...     strength=0.80,
...     pag_scale=0.3,
... ).images[0]
```

#### encode_prompt[[diffusers.StableDiffusionXLPAGInpaintPipeline.encode_prompt]]

```python
encode_prompt(prompt: str, prompt_2: str | None = None, device: typing.Optional[torch.device] = None, num_images_per_prompt: int = 1, do_classifier_free_guidance: bool = True, negative_prompt: str | None = None, negative_prompt_2: str | None = None, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, lora_scale: float | None = None, clip_skip: int | None = None)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_sd_xl_inpaint.py#L401)

**المعاملات:**

prompt (`str` أو `list[str]`، *اختياري*) : النص الذي سيتم ترميزه

prompt_2 (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات المرسل إلى `tokenizer_2` و`text_encoder_2`. إذا لم يُعرَّف، يُستخدم `prompt` في كلا مشفّري النص

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`).

negative_prompt_2 (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات التي لا ينبغي توجيه توليد الصورة إليها، والتي سيتم إرسالها إلى `tokenizer_2` و`text_encoder_2`. إذا لم يُعرَّف، يُستخدم `negative_prompt` في كلا مشفري النص

prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد تمثيلات النص من معامل الإدخال `prompt`.

negative_prompt_embeds (`torch.Tensor`, *اختياري*) : تمثيلات نصية سالبة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد negative_prompt_embeds من معامل الإدخال `negative_prompt`.

pooled_prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مجمّعة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد تمثيلات نصية مجمّعة من معامل الإدخال `prompt`.

negative_pooled_prompt_embeds (`torch.Tensor`, *اختياري*) : تمثيلات نصية مجمعة سالبة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد pooled negative_prompt_embeds من معامل الإدخال `negative_prompt`.

lora_scale (`float`، *اختياري*) : مقياس lora سيُطبَّق على جميع طبقات LoRA في مُشفِّر النص إذا كانت طبقات LoRA محمَّلة.

clip_skip (`int`, *اختياري*) : عدد الطبقات التي سيتم تجاوزها من CLIP أثناء حساب تمثيلات الموجه. القيمة 1 تعني أنه سيتم استخدام مخرجات الطبقة قبل الأخيرة لحساب تمثيلات الموجه.

يقوم بتشفير الموجه إلى حالات مخفية لمشفّر النص.

#### get_guidance_scale_embedding[[diffusers.StableDiffusionXLPAGInpaintPipeline.get_guidance_scale_embedding]]

```python
get_guidance_scale_embedding(w: Tensor, embedding_dim: int = 512, dtype: dtype = torch.float32)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_sd_xl_inpaint.py#L1011)

**المعاملات:**

w (`torch.Tensor`) : توليد متجهات تضمين بمقياس توجيه محدد لتُثري متضمينات خطوات الزمن اللاحقة.

embedding_dim (`int`، *اختياري*، القيمة الافتراضية 512) : بُعد التضمينات (embeddings) التي سيتم توليدها.

dtype (`torch.dtype`، *اختياري*، الافتراضي `torch.float32`) : نوع البيانات للتضمينات المولّدة.

**يعيد:** `torch.Tensor`

متجهات تضمين بشكل `(len(w), embedding_dim)`.

انظر إلى https://github.com/google-research/vdm/blob/dc27b98a554f65cdc654b800da5aa1846545d41b/model_vdm.py#L298

## StableDiffusionXLControlNetPAGPipeline[[diffusers.StableDiffusionXLControlNetPAGPipeline]]

#### diffusers.StableDiffusionXLControlNetPAGPipeline[[diffusers.StableDiffusionXLControlNetPAGPipeline]]

```python
diffusers.StableDiffusionXLControlNetPAGPipeline(vae: AutoencoderKL, text_encoder: CLIPTextModel, text_encoder_2: CLIPTextModelWithProjection, tokenizer: CLIPTokenizer, tokenizer_2: CLIPTokenizer, unet: UNet2DConditionModel, controlnet: diffusers.models.controlnets.controlnet.ControlNetModel | list[diffusers.models.controlnets.controlnet.ControlNetModel] | tuple[diffusers.models.controlnets.controlnet.ControlNetModel] | diffusers.models.controlnets.multicontrolnet.MultiControlNetModel, scheduler: KarrasDiffusionSchedulers, force_zeros_for_empty_prompt: bool = True, add_watermarker: bool | None = None, feature_extractor: CLIPImageProcessorPil = None, image_encoder: CLIPVisionModelWithProjection = None, pag_applied_layers: str | list[str] = 'mid')
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_controlnet_sd_xl.py#L185)

**المعاملات:**

vae ([AutoencoderKL](/docs/diffusers/main/ar/api/models/autoencoderkl#diffusers.AutoencoderKL)) : نموذج الترميز التحويلي التبايني (VAE) لتشفير وفك تشفير الصور إلى تمثيلات كامنة ومنها.

text_encoder ([CLIPTextModel](https://huggingface.co/docs/transformers/main/en/model_doc/clip#transformers.CLIPTextModel)) : مُشفِّر نص ثابت ([clip-vit-large-patch14](https://huggingface.co/openai/clip-vit-large-patch14)).

text_encoder_2 ([CLIPTextModelWithProjection](https://huggingface.co/docs/transformers/main/en/model_doc/clip#transformers.CLIPTextModelWithProjection)) : مُشفِّر النص الثاني المُجمَّد ([laion/CLIP-ViT-bigG-14-laion2B-39B-b160k](https://huggingface.co/laion/CLIP-ViT-bigG-14-laion2B-39B-b160k)).

tokenizer ([CLIPTokenizer](https://huggingface.co/docs/transformers/main/en/model_doc/clip#transformers.CLIPTokenizer)) : `CLIPTokenizer` لتجزئة النص.

tokenizer_2 ([CLIPTokenizer](https://huggingface.co/docs/transformers/main/en/model_doc/clip#transformers.CLIPTokenizer)) : `CLIPTokenizer` لتجزئة النص.

unet ([UNet2DConditionModel](/docs/diffusers/main/ar/api/models/unet2d-cond#diffusers.UNet2DConditionModel)) : نموذج `UNet2DConditionModel` لإزالة الضوضاء من الكامنات المُرمّزة للصورة.

controlnet ([ControlNetModel](/docs/diffusers/main/ar/api/models/controlnet#diffusers.ControlNetModel) أو `list[ControlNetModel]`) : يوفر شروطًا إضافية لـ `unet` أثناء عملية إزالة الضوضاء. إذا قمت بتعيين عدة ControlNets كقائمة، فإن المخرجات من كل ControlNet تُجمع معًا لإنشاء شرط إضافي واحد موحّد.

scheduler ([SchedulerMixin](/docs/diffusers/main/ar/api/schedulers/overview#diffusers.SchedulerMixin)) : مُجدول يُستخدم بالاقتران مع `unet` لإزالة الضوضاء من كائنات الصورة المُرمّزة. يمكن أن يكون أحد [DDIMScheduler](/docs/diffusers/main/ar/api/schedulers/ddim#diffusers.DDIMScheduler) أو [LMSDiscreteScheduler](/docs/diffusers/main/ar/api/schedulers/lms_discrete#diffusers.LMSDiscreteScheduler) أو [PNDMScheduler](/docs/diffusers/main/ar/api/schedulers/pndm#diffusers.PNDMScheduler).

force_zeros_for_empty_prompt (`bool`، *اختياري*، القيمة الافتراضية `"True"`) : ما إذا كان يجب دائمًا تعيين ترميزات الموجه السلبي إلى 0. راجع أيضًا إعدادات `stabilityai/stable-diffusion-xl-base-1-0`.

add_watermarker (`bool`, *اختياري*) : ما إذا كان سيتم استخدام مكتبة [invisible_watermark](https://github.com/ShieldMnt/invisible-watermark/) لإضافة علامة مائية إلى الصور المُخرَجة. إذا لم يُعرَّف، فإن القيمة الافتراضية هي `True` إذا كانت الحزمة مثبّتة؛ وإلا فلن تُستخدم أي أداة لإضافة علامة مائية.

خط أنابيب لتوليد الصور من النص باستخدام Stable Diffusion XL مع توجيه ControlNet.

يرث هذا النموذج من [DiffusionPipeline](/docs/diffusers/main/ar/api/pipelines/overview#diffusers.DiffusionPipeline). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة المُنفَّذة لجميع خطوط الأنابيب (التنزيل، الحفظ، التشغيل على جهاز معين، إلخ).

تورث خط الأنابيب أيضًا طرق التحميل التالية:
- [load_textual_inversion()](/docs/diffusers/main/ar/api/loaders/textual_inversion#diffusers.loaders.TextualInversionLoaderMixin.load_textual_inversion) لتحميل تضمينات الانعكاس النصي
- [load_lora_weights()](/docs/diffusers/main/ar/api/loaders/lora#diffusers.loaders.StableDiffusionXLLoraLoaderMixin.load_lora_weights) لتحميل أوزان LoRA
- [save_lora_weights()](/docs/diffusers/main/ar/api/loaders/lora#diffusers.loaders.StableDiffusionXLLoraLoaderMixin.save_lora_weights) لحفظ أوزان LoRA
- [from_single_file()](/docs/diffusers/main/ar/api/loaders/single_file#diffusers.loaders.FromSingleFileMixin.from_single_file) لتحميل ملفات `.ckpt`
- [load_ip_adapter()](/docs/diffusers/main/ar/api/loaders/ip_adapter#diffusers.loaders.IPAdapterMixin.load_ip_adapter) لتحميل وحدات IP Adapter

#### __call__[[diffusers.StableDiffusionXLControlNetPAGPipeline.__call__]]

```python
__call__(prompt: str | list[str] = None, prompt_2: str | list[str] | None = None, image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = None, height: int | None = None, width: int | None = None, num_inference_steps: int = 50, timesteps: list = None, sigmas: list = None, denoising_end: float | None = None, guidance_scale: float = 5.0, negative_prompt: str | list[str] | None = None, negative_prompt_2: str | list[str] | None = None, num_images_per_prompt: int | None = 1, eta: float = 0.0, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, ip_adapter_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = None, ip_adapter_image_embeds: list[torch.Tensor] | None = None, output_type: str | None = 'pil', return_dict: bool = True, cross_attention_kwargs: dict[str, typing.Any] | None = None, controlnet_conditioning_scale: float | list[float] = 1.0, control_guidance_start: float | list[float] = 0.0, control_guidance_end: float | list[float] = 1.0, original_size: tuple = None, crops_coords_top_left: tuple = (0, 0), target_size: tuple = None, negative_original_size: tuple[int, int] | None = None, negative_crops_coords_top_left: tuple = (0, 0), negative_target_size: tuple[int, int] | None = None, clip_skip: int | None = None, callback_on_step_end: typing.Union[typing.Callable[[int, int], NoneType], diffusers.callbacks.PipelineCallback, diffusers.callbacks.MultiPipelineCallbacks, NoneType] = None, callback_on_step_end_tensor_inputs: list = ['latents'], pag_scale: float = 3.0, pag_adaptive_scale: float = 0.0)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_controlnet_sd_xl.py#L1003)

**المعاملات:**

prompt (`str` أو `list[str]`، *اختياري*) : الأمر أو الأوامر التي تُوجّه توليد الصورة. إذا لم تُعرَّف، يجب عليك تمرير `prompt_embeds`.

prompt_2 (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات المرسل إلى `tokenizer_2` و`text_encoder_2`. إذا لم يُعرَّف، يُستخدم `prompt` في كلا مشفّري النص.

image (`torch.Tensor`، `PIL.Image.Image`، `np.ndarray`، `list[torch.Tensor]`، `list[PIL.Image.Image]`، `list[np.ndarray]`، : `list[list[torch.Tensor]]`، `list[list[np.ndarray]]` أو `list[list[PIL.Image.Image]]`): شرط الإدخال الخاص بـ ControlNet لتقديم التوجيه إلى `unet` للتوليد. إذا تم تحديد النوع على أنه `torch.Tensor`، فإنه يُمرَّر إلى ControlNet كما هو. يمكن أيضًا قبول `PIL.Image.Image` كصورة. الأبعاد الافتراضية للصورة الناتجة هي أبعاد `image`. إذا تم تمرير الارتفاع و/أو العرض، يتم تغيير حجم `image` وفقًا لذلك. إذا تم تحديد عدة وحدات ControlNet في `init`، يجب تمرير الصور كقائمة بحيث يمكن تجميع كل عنصر من عناصر القائمة بشكل صحيح للإدخال إلى وحدة ControlNet واحدة.

height (`int`، *اختياري*، القيمة الافتراضية هي `self.unet.config.sample_size * self.vae_scale_factor`) : ارتفاع الصورة المولّدة بالبكسل. أي قيمة أقل من 512 بكسل لن تعمل بشكل جيد مع [stabilityai/stable-diffusion-xl-base-1.0](https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0) والنقاط المحفوظة التي لم تُضبط بدقة على دقات منخفضة.

width (`int`، *اختياري*، القيمة الافتراضية هي `self.unet.config.sample_size * self.vae_scale_factor`) : عرض الصورة المولدة بالبكسل. أي قيمة أقل من 512 بكسل لن تعمل بشكل جيد مع [stabilityai/stable-diffusion-xl-base-1.0](https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0) والنقاط المرجعية التي لم يتم ضبطها بدقة على الدقات المنخفضة.

num_inference_steps (`int`، *اختياري*، القيمة الافتراضية 50) : عدد خطوات إزالة الضوضاء. تؤدي زيادة عدد خطوات إزالة الضوضاء عادةً إلى صورة ذات جودة أعلى على حساب بطء الاستدلال.

timesteps (`list[int]`، *اختياري*) : خطوات زمنية مخصصة لاستخدامها في عملية إزالة الضوضاء مع المجدولين الذين يدعمون معامل `timesteps` في طريقة `set_timesteps` الخاصة بهم. إذا لم يُعرَّف، فسيتم استخدام السلوك الافتراضي عند تمرير `num_inference_steps`. يجب أن تكون بترتيب تنازلي.

sigmas (`list[float]`، *اختياري*) : قيم `sigmas` مخصصة لاستخدامها في عملية إزالة الضوضاء مع المجدولين الذين يدعمون معامل `sigmas` في طريقة `set_timesteps` الخاصة بهم. إذا لم تُعرَّف، فسيتم استخدام السلوك الافتراضي عند تمرير `num_inference_steps`.

denoising_end (`float`، *اختياري*) : عند تحديده، يحدد نسبة (بين 0.0 و 1.0) من إجمالي عملية إزالة الضوضاء التي يجب إكمالها قبل إنهائها مبكرًا عمدًا. ونتيجةً لذلك، سيحتفظ العينة المُعاد بها بكمية كبيرة من الضوضاء كما تحددها الخطوات الزمنية المنفصلة التي يختارها المجدول. ينبغي استخدام معامل denoising_end بشكل مثالي عندما يشكل هذا الخط الأنابيب جزءًا من إعداد متعدد الخطوط الأنابيب "خليط من مُزيلات الضوضاء"، كما هو موضح في [**تحسين مخرجات الصورة**](https://huggingface.co/docs/diffusers/api/pipelines/stable_diffusion/stable_diffusion_xl#refining-the-image-output)

guidance_scale (`float`، *اختياري*، القيمة الافتراضية 5.0) : كلما زادت قيمة مقياس التوجيه، شجّع النموذج على توليد صور مرتبطة ارتباطًا وثيقًا بنص `prompt` على حساب انخفاض جودة الصورة. يتم تفعيل مقياس التوجيه عندما يكون `guidance_scale > 1`.

negative_prompt (`str` أو `list[str]`، *اختياري*) : الأمر أو الأوامر التي توجّه ما يجب عدم تضمينه في توليد الصورة. إذا لم يُعرَّف، يجب عليك تمرير `negative_prompt_embeds` بدلاً من ذلك. يتم تجاهله عند عدم استخدام التوجيه (`guidance_scale < 1`).

negative_prompt_2 (`str` أو `list[str]`، *اختياري*) : الأمر أو الأوامر التي توجّه ما يجب عدم تضمينه في توليد الصورة. يُرسل هذا إلى `tokenizer_2` و`text_encoder_2`. إذا لم يُعرَّف، يُستخدم `negative_prompt` في كلا مشفّري النص.

num_images_per_prompt (`int`، *اختياري*، القيمة الافتراضية 1) : عدد الصور التي سيتم توليدها لكل موجه.

eta (`float`، *اختياري*، القيمة الافتراضية 0.0) : يتوافق مع المعامل eta (η) من ورقة [DDIM](https://huggingface.co/papers/2010.02502). ينطبق فقط على [DDIMScheduler](/docs/diffusers/main/ar/api/schedulers/ddim#diffusers.DDIMScheduler)، ويُتجاهل في جدولة أخرى.

generator (`torch.Generator` أو `list[torch.Generator]`، *اختياري*) : [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html) لجعل التوليد حتميًا.

latents (`torch.Tensor`، *اختياري*) : كامنات ضجيج مُولّدة مسبقًا، مُستخرجة من توزيع غاوسي، تُستخدم كمدخلات لتوليد الصور. يمكن استخدامها لتعديل نفس التوليد باستخدام أوامر مختلفة. إذا لم تُقدَّم، يتم توليد كامنات من خلال الاستخراج باستخدام `generator` العشوائي المُقدَّم.

prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة (وزن الأوامر). إذا لم تُقدَّم، يتم توليد تمثيلات النص من معامل الإدخال `prompt`.

negative_prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية سالبة مُولّدة مسبقًا. يمكن استخدامها لضبط مدخلات النص بسهولة (وزن الموجه). إذا لم تُقدَّم، يتم توليد `negative_prompt_embeds` من معامل الإدخال `negative_prompt`.

pooled_prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مجمعة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة (وزن الأوامر). إذا لم تُقدَّم، يتم توليد التمثيلات النصية المجمعة من معامل الإدخال `prompt`.

negative_pooled_prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مجمعة سالبة مُولّدة مسبقًا. يمكن استخدامها لضبط مدخلات النص بسهولة (وزن الأوامر). إذا لم تُقدَّم، يتم توليد `negative_prompt_embeds` المجمعة من معامل الإدخال `negative_prompt`.

ip_adapter_image : (`PipelineImageInput`، *اختياري*): إدخال صورة اختياري للعمل مع IP Adapters.

ip_adapter_image_embeds (`list[torch.Tensor]`, *اختياري*) : تمثيلات صور مُولّدة مسبقًا لـ IP-Adapter. يجب أن يكون قائمة بطول يساوي عدد وحدات IP-adapter. يجب أن يكون كل عنصر منها متجهًا (tensor) بشكل `(batch_size, num_images, emb_dim)`. يجب أن يحتوي على تمثيل الصورة السلبية إذا كان `do_classifier_free_guidance` مضبوطًا على `True`. إذا لم يُقدَّم، تُحسب التمثيلات من معامل الإدخال `ip_adapter_image`.

output_type (`str`، *اختياري*، الافتراضي `"pil"`) : صيغة الصورة المولّدة. اختر بين `PIL.Image` أو `np.array`.

return_dict (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان يجب إرجاع [StableDiffusionPipelineOutput](/docs/diffusers/main/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).

controlnet_conditioning_scale (`float` أو `list[float]`، *اختياري*، القيمة الافتراضية 1.0) : تُضرب مخرجات ControlNet في `controlnet_conditioning_scale` قبل إضافتها إلى الباقي في `unet` الأصلية. إذا تم تحديد عدة ControlNets في `init`، يمكنك تعيين المقياس المقابل كقائمة.

control_guidance_start (`float` أو `list[float]`، *اختياري*، القيمة الافتراضية 0.0) : النسبة المئوية من إجمالي الخطوات التي يبدأ عندها ControlNet في التطبيق.

control_guidance_end (`float` أو `list[float]`، *اختياري*، القيمة الافتراضية 1.0) : النسبة المئوية من إجمالي الخطوات التي يتوقف عندها ControlNet عن التطبيق.

original_size (`tuple[int]`، *اختياري*، القيمة الافتراضية (1024, 1024)) : إذا لم تكن `original_size` مطابقة لـ `target_size`، فسيبدو أن الصورة قد خضعت لتقليل أو زيادة حجمها. القيمة الافتراضية لـ `original_size` هي `(height, width)` إذا لم تُحدد. جزء من التكييف الدقيق (micro-conditioning) الخاص بـ SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952).

crops_coords_top_left (`tuple[int]`، *اختياري*، القيمة الافتراضية (0, 0)) : يمكن استخدام `crops_coords_top_left` لتوليد صورة تبدو وكأنها "مقتطعة" من الموضع `crops_coords_top_left` إلى الأسفل. عادةً ما يتم تحقيق صور مفضلة ومركزة جيدًا عن طريق تعيين `crops_coords_top_left` إلى (0, 0). جزء من micro-conditioning الخاص بـ SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952).

target_size (`tuple[int]`، *اختياري*، القيمة الافتراضية (1024, 1024)) : في معظم الحالات، يجب ضبط `target_size` على الارتفاع والعرض المطلوبين للصورة المولّدة. إذا لم يُحدد، فسيكون الافتراضي `(height, width)`. جزء من التكييف الدقيق (micro-conditioning) في SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952).

negative_original_size (`tuple[int]`، *اختياري*، القيمة الافتراضية (1024, 1024)) : يُستخدم لتقييد عملية التوليد سلبياً بناءً على دقة صورة محددة. وهو جزء من التكييف الدقيق (micro-conditioning) في SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952). لمزيد من المعلومات، راجع موضوع هذا المسألة: https://github.com/huggingface/diffusers/issues/4208.

negative_crops_coords_top_left (`tuple[int]`، *اختياري*، القيمة الافتراضية (0, 0)) : يُستخدم لتوجيه عملية التوليد سلبياً بناءً على إحداثيات قصّ محددة. وهو جزء من التكييف الدقيق (micro-conditioning) في SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952). لمزيد من المعلومات، راجع موضوع هذا الإشكال: https://github.com/huggingface/diffusers/issues/4208.

negative_target_size (`tuple[int]`، *اختياري*، القيمة الافتراضية (1024, 1024)) : يُستخدم لتقييد عملية التوليد سلبياً بناءً على دقة الصورة المستهدفة. يجب أن تكون مطابقة لـ `target_size` في معظم الحالات. وهو جزء من التكييف الدقيق (micro-conditioning) في SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952). لمزيد من المعلومات، راجع موضوع هذا الإشكال: https://github.com/huggingface/diffusers/issues/4208.

clip_skip (`int`, *اختياري*) : عدد الطبقات التي سيتم تجاوزها من CLIP أثناء حساب تمثيلات الموجه. القيمة 1 تعني أنه سيتم استخدام مخرجات الطبقة قبل الأخيرة لحساب تمثيلات الموجه.

callback_on_step_end (`Callable`، `PipelineCallback`، `MultiPipelineCallbacks`، *اختياري*) : دالة أو فئة فرعية من `PipelineCallback` أو `MultiPipelineCallbacks` تُستدعى في نهاية كل خطوة إزالة ضوضاء أثناء الاستدلال، مع الحُجج التالية: `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) الخاص بك.

pag_scale (`float`، *اختياري*، القيمة الافتراضية 3.0) : معامل المقياس للتوجيه الانتباه المُعطَّل. إذا تم ضبطه على 0.0، فلن يُستخدم التوجيه الانتباه المُعطَّل.

pag_adaptive_scale (`float`، *اختياري*، القيمة الافتراضية 0.0) : معامل المقياس التكيفي لمرشد الانتباه المُعطَّل. إذا تم ضبطه على 0.0، يُستخدم `pag_scale`.

**يعيد:** [StableDiffusionPipelineOutput](/docs/diffusers/main/ar/api/pipelines/stable_diffusion/img2img#diffusers.pipelines.stable_diffusion.StableDiffusionPipelineOutput) أو `tuple`

إذا كان `return_dict` هو `True`، يُعاد [StableDiffusionPipelineOutput](/docs/diffusers/main/ar/api/pipelines/stable_diffusion/img2img#diffusers.pipelines.stable_diffusion.StableDiffusionPipelineOutput)، وإلا يُعاد `tuple` يحتوي على الصور الناتجة.

دالة الاستدعاء call لخط الأنابيب pipeline الخاص بالتوليد.

أمثلة:
```py
>>> # !pip install opencv-python transformers accelerate
>>> from diffusers import AutoPipelineForText2Image, ControlNetModel, AutoencoderKL
>>> from diffusers.utils import load_image
>>> import numpy as np
>>> import torch

>>> import cv2
>>> from PIL import Image

>>> prompt = "aerial view, a futuristic research complex in a bright foggy jungle, hard lighting"
>>> negative_prompt = "low quality, bad quality, sketches"

>>> # download an image
>>> image = load_image(
...     "https://hf.co/datasets/hf-internal-testing/diffusers-images/resolve/main/sd_controlnet/hf-logo.png"
... )

>>> # initialize the models and pipeline
>>> controlnet_conditioning_scale = 0.5  # recommended for good generalization
>>> controlnet = ControlNetModel.from_pretrained(
...     "diffusers/controlnet-canny-sdxl-1.0", torch_dtype=torch.float16
... )
>>> vae = AutoencoderKL.from_pretrained("madebyollin/sdxl-vae-fp16-fix", torch_dtype=torch.float16)
>>> pipe = AutoPipelineForText2Image.from_pretrained(
...     "stabilityai/stable-diffusion-xl-base-1.0",
...     controlnet=controlnet,
...     vae=vae,
...     torch_dtype=torch.float16,
...     enable_pag=True,
... )
>>> pipe.enable_model_cpu_offload()

>>> # get canny image
>>> image = np.array(image)
>>> image = cv2.Canny(image, 100, 200)
>>> image = image[:, :, None]
>>> image = np.concatenate([image, image, image], axis=2)
>>> canny_image = Image.fromarray(image)

>>> # generate image
>>> image = pipe(
...     prompt, controlnet_conditioning_scale=controlnet_conditioning_scale, image=canny_image, pag_scale=0.3
... ).images[0]
```

#### encode_prompt[[diffusers.StableDiffusionXLControlNetPAGPipeline.encode_prompt]]

```python
encode_prompt(prompt: str, prompt_2: str | None = None, device: typing.Optional[torch.device] = None, num_images_per_prompt: int = 1, do_classifier_free_guidance: bool = True, negative_prompt: str | None = None, negative_prompt_2: str | None = None, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, lora_scale: float | None = None, clip_skip: int | None = None)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_controlnet_sd_xl.py#L306)

**المعاملات:**

prompt (`str` أو `list[str]`، *اختياري*) : النص الذي سيتم ترميزه

prompt_2 (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات المرسل إلى `tokenizer_2` و`text_encoder_2`. إذا لم يُعرَّف، يُستخدم `prompt` في كلا مشفّري النص

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`).

negative_prompt_2 (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات التي لا ينبغي توجيه توليد الصورة إليها، والتي سيتم إرسالها إلى `tokenizer_2` و`text_encoder_2`. إذا لم يُعرَّف، يُستخدم `negative_prompt` في كلا مشفري النص

prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد تمثيلات النص من معامل الإدخال `prompt`.

negative_prompt_embeds (`torch.Tensor`, *اختياري*) : تمثيلات نصية سالبة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد negative_prompt_embeds من معامل الإدخال `negative_prompt`.

pooled_prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مجمّعة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد تمثيلات نصية مجمّعة من معامل الإدخال `prompt`.

negative_pooled_prompt_embeds (`torch.Tensor`, *اختياري*) : تمثيلات نصية مجمعة سالبة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد pooled negative_prompt_embeds من معامل الإدخال `negative_prompt`.

lora_scale (`float`، *اختياري*) : مقياس lora سيُطبَّق على جميع طبقات LoRA في مُشفِّر النص إذا كانت طبقات LoRA محمَّلة.

clip_skip (`int`, *اختياري*) : عدد الطبقات التي سيتم تجاوزها من CLIP أثناء حساب تمثيلات الموجه. القيمة 1 تعني أنه سيتم استخدام مخرجات الطبقة قبل الأخيرة لحساب تمثيلات الموجه.

يقوم بتشفير الموجه إلى حالات مخفية لمشفّر النص.

#### get_guidance_scale_embedding[[diffusers.StableDiffusionXLControlNetPAGPipeline.get_guidance_scale_embedding]]

```python
get_guidance_scale_embedding(w: Tensor, embedding_dim: int = 512, dtype: dtype = torch.float32)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_controlnet_sd_xl.py#L946)

**المعاملات:**

w (`torch.Tensor`) : توليد متجهات تضمين بمقياس توجيه محدد لتُثري متضمينات خطوات الزمن اللاحقة.

embedding_dim (`int`، *اختياري*، القيمة الافتراضية 512) : بُعد التضمينات (embeddings) التي سيتم توليدها.

dtype (`torch.dtype`، *اختياري*، الافتراضي `torch.float32`) : نوع البيانات للتضمينات المولّدة.

**يعيد:** `torch.Tensor`

متجهات تضمين بشكل `(len(w), embedding_dim)`.

انظر إلى https://github.com/google-research/vdm/blob/dc27b98a554f65cdc654b800da5aa1846545d41b/model_vdm.py#L298

## StableDiffusionXLControlNetPAGImg2ImgPipeline[[diffusers.StableDiffusionXLControlNetPAGImg2ImgPipeline]]

#### diffusers.StableDiffusionXLControlNetPAGImg2ImgPipeline[[diffusers.StableDiffusionXLControlNetPAGImg2ImgPipeline]]

```python
diffusers.StableDiffusionXLControlNetPAGImg2ImgPipeline(vae: AutoencoderKL, text_encoder: CLIPTextModel, text_encoder_2: CLIPTextModelWithProjection, tokenizer: CLIPTokenizer, tokenizer_2: CLIPTokenizer, unet: UNet2DConditionModel, controlnet: diffusers.models.controlnets.controlnet.ControlNetModel | list[diffusers.models.controlnets.controlnet.ControlNetModel] | tuple[diffusers.models.controlnets.controlnet.ControlNetModel] | diffusers.models.controlnets.multicontrolnet.MultiControlNetModel, scheduler: KarrasDiffusionSchedulers, requires_aesthetics_score: bool = False, force_zeros_for_empty_prompt: bool = True, add_watermarker: bool | None = None, feature_extractor: CLIPImageProcessorPil = None, image_encoder: CLIPVisionModelWithProjection = None, pag_applied_layers: str | list[str] = 'mid')
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_controlnet_sd_xl_img2img.py#L164)

**المعاملات:**

vae ([AutoencoderKL](/docs/diffusers/main/ar/api/models/autoencoderkl#diffusers.AutoencoderKL)) : نموذج الترميز التحويلي التبايني (VAE) لتشفير وفك تشفير الصور إلى تمثيلات كامنة ومنها.

text_encoder (`CLIPTextModel`) : مُشفِّر نصي مجمّد. يستخدم Stable Diffusion الجزء النصي من [CLIP](https://huggingface.co/docs/transformers/model_doc/clip#transformers.CLIPTextModel)، وتحديداً النسخة [clip-vit-large-patch14](https://huggingface.co/openai/clip-vit-large-patch14).

text_encoder_2 (` CLIPTextModelWithProjection`) : مُشفِّر نصي مجمّد ثانٍ. يستخدم Stable Diffusion XL جزء النص والجزء المُجمَّع (pool) من [CLIP](https://huggingface.co/docs/transformers/model_doc/clip#transformers.CLIPTextModelWithProjection)، وتحديداً النسخة [laion/CLIP-ViT-bigG-14-laion2B-39B-b160k](https://huggingface.co/laion/CLIP-ViT-bigG-14-laion2B-39B-b160k).

tokenizer (`CLIPTokenizer`) : مُقسِّم من الفئة [CLIPTokenizer](https://huggingface.co/docs/transformers/v4.21.0/en/model_doc/clip#transformers.CLIPTokenizer).

tokenizer_2 (`CLIPTokenizer`) : مُقسِّم ثانٍ من الفئة [CLIPTokenizer](https://huggingface.co/docs/transformers/v4.21.0/en/model_doc/clip#transformers.CLIPTokenizer).

unet ([UNet2DConditionModel](/docs/diffusers/main/ar/api/models/unet2d-cond#diffusers.UNet2DConditionModel)) : بنية U-Net الشرطية لفك تشويش كامن الصورة المُرمّزة.

controlnet ([ControlNetModel](/docs/diffusers/main/ar/api/models/controlnet#diffusers.ControlNetModel) أو `list[ControlNetModel]`) : يوفر شروطًا إضافية إلى unet أثناء عملية إزالة الضوضاء. إذا قمت بتعيين عدة ControlNets كقائمة، فإن المخرجات من كل ControlNet تُجمع معًا لإنشاء شرط إضافي واحد موحّد.

scheduler ([SchedulerMixin](/docs/diffusers/main/ar/api/schedulers/overview#diffusers.SchedulerMixin)) : مُجدول يُستخدم بالاقتران مع `unet` لإزالة الضوضاء من كائنات الصورة المُرمّزة. يمكن أن يكون أحد [DDIMScheduler](/docs/diffusers/main/ar/api/schedulers/ddim#diffusers.DDIMScheduler) أو [LMSDiscreteScheduler](/docs/diffusers/main/ar/api/schedulers/lms_discrete#diffusers.LMSDiscreteScheduler) أو [PNDMScheduler](/docs/diffusers/main/ar/api/schedulers/pndm#diffusers.PNDMScheduler).

requires_aesthetics_score (`bool`، *اختياري*، القيمة الافتراضية `"False"`) : ما إذا كان `unet` يتطلب تمرير شرط `aesthetic_score` أثناء الاستدلال. راجع أيضًا إعدادات `stabilityai/stable-diffusion-xl-refiner-1-0`.

force_zeros_for_empty_prompt (`bool`، *اختياري*، القيمة الافتراضية `"True"`) : ما إذا كان يجب إجبار تضمينات الموجه السلبي على أن تكون دائمًا 0. راجع أيضًا إعدادات `stabilityai/stable-diffusion-xl-base-1-0`.

add_watermarker (`bool`, *اختياري*) : ما إذا كان سيتم استخدام مكتبة [invisible_watermark](https://github.com/ShieldMnt/invisible-watermark/) لإضافة علامة مائية إلى الصور المُخرَجة. إذا لم يُعرَّف، فسيكون الافتراضي True إذا كانت الحزمة مثبّتة، وإلا فلن تُستخدم أي أداة لإضافة علامة مائية.

feature_extractor ([CLIPImageProcessor](https://huggingface.co/docs/transformers/main/en/model_doc/clip#transformers.CLIPImageProcessor)) : مُعالج صور `CLIPImageProcessor` لاستخراج الميزات من الصور المولّدة؛ يُستخدم كمدخلات لـ `safety_checker`.

خط أنابيب لتوليد صورة من صورة باستخدام Stable Diffusion XL مع توجيه ControlNet.

يرث هذا النموذج من [DiffusionPipeline](/docs/diffusers/main/ar/api/pipelines/overview#diffusers.DiffusionPipeline). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع خطوط الأنابيب (مثل التنزيل أو الحفظ، أو التشغيل على جهاز معين، وما إلى ذلك).

تورث خط الأنابيب أيضًا طرق التحميل التالية:
- [load_textual_inversion()](/docs/diffusers/main/ar/api/loaders/textual_inversion#diffusers.loaders.TextualInversionLoaderMixin.load_textual_inversion) لتحميل تضمينات الانعكاس النصي
- [load_lora_weights()](/docs/diffusers/main/ar/api/loaders/lora#diffusers.loaders.StableDiffusionXLLoraLoaderMixin.load_lora_weights) لتحميل أوزان LoRA
- [save_lora_weights()](/docs/diffusers/main/ar/api/loaders/lora#diffusers.loaders.StableDiffusionXLLoraLoaderMixin.save_lora_weights) لحفظ أوزان LoRA
- [load_ip_adapter()](/docs/diffusers/main/ar/api/loaders/ip_adapter#diffusers.loaders.IPAdapterMixin.load_ip_adapter) لتحميل وحدات IP Adapter

#### __call__[[diffusers.StableDiffusionXLControlNetPAGImg2ImgPipeline.__call__]]

```python
__call__(prompt: str | list[str] = None, prompt_2: str | list[str] | None = None, image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = None, control_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = None, height: int | None = None, width: int | None = None, strength: float = 0.8, num_inference_steps: int = 50, guidance_scale: float = 5.0, negative_prompt: str | list[str] | None = None, negative_prompt_2: str | list[str] | None = None, num_images_per_prompt: int | None = 1, eta: float = 0.0, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, ip_adapter_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = None, ip_adapter_image_embeds: list[torch.Tensor] | None = None, output_type: str | None = 'pil', return_dict: bool = True, cross_attention_kwargs: dict[str, typing.Any] | None = None, controlnet_conditioning_scale: float | list[float] = 0.8, guess_mode: bool = False, control_guidance_start: float | list[float] = 0.0, control_guidance_end: float | list[float] = 1.0, original_size: tuple = None, crops_coords_top_left: tuple = (0, 0), target_size: tuple = None, negative_original_size: tuple[int, int] | None = None, negative_crops_coords_top_left: tuple = (0, 0), negative_target_size: tuple[int, int] | None = None, aesthetic_score: float = 6.0, negative_aesthetic_score: float = 2.5, clip_skip: int | None = None, callback_on_step_end: typing.Union[typing.Callable[[int, int], NoneType], diffusers.callbacks.PipelineCallback, diffusers.callbacks.MultiPipelineCallbacks, NoneType] = None, callback_on_step_end_tensor_inputs: list = ['latents'], pag_scale: float = 3.0, pag_adaptive_scale: float = 0.0)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_controlnet_sd_xl_img2img.py#L1080)

**المعاملات:**

prompt (`str` أو `list[str]`، *اختياري*) : الأمر أو الأوامر التي تُوجّه توليد الصورة. إذا لم يُعرَّف، يجب تمرير `prompt_embeds` بدلاً من ذلك.

prompt_2 (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات المرسل إلى `tokenizer_2` و`text_encoder_2`. إذا لم يُعرَّف، يُستخدم `prompt` في كلا مشفّري النص

image (`torch.Tensor`، `PIL.Image.Image`، `np.ndarray`، `list[torch.Tensor]`، `list[PIL.Image.Image]`، `list[np.ndarray]`، : `list[list[torch.Tensor]]`، `list[list[np.ndarray]]` أو `list[list[PIL.Image.Image]]`): ستُستخدم الصورة الأولية كنقطة انطلاق لعملية توليد الصور. يمكن أيضًا قبول كامنات الصورة (image latents) كـ`image`، فإذا تم تمرير الكامنات مباشرةً، فلن يتم ترميزها مرة أخرى.

control_image (`torch.Tensor`، `PIL.Image.Image`، `np.ndarray`، `list[torch.Tensor]`، `list[PIL.Image.Image]`، `list[np.ndarray]`، : `list[list[torch.Tensor]]`، `list[list[np.ndarray]]` أو `list[list[PIL.Image.Image]]`): شرط الإدخال الخاص بـ ControlNet. يستخدم ControlNet هذا الشرط لتوليد إرشادات تُمرَّر إلى Unet. إذا كان النوع محددًا على أنه `torch.Tensor`، فإنه يُمرَّر إلى ControlNet كما هو. يمكن أيضًا قبول `PIL.Image.Image` كصورة. تكون أبعاد الصورة الناتجة افتراضيًا مطابقة لأبعاد `image`. إذا تم تمرير الارتفاع و/أو العرض، يتم تغيير حجم `image` وفقًا لهما. إذا تم تحديد عدة وحدات ControlNet في التهيئة، يجب تمرير الصور كقائمة بحيث يمكن تجميع كل عنصر من عناصر القائمة بشكل صحيح للإدخال إلى وحدة controlnet واحدة.

height (`int`، *اختياري*، الافتراضي هو حجم control_image) : ارتفاع الصورة المولّدة بالبكسل. أي قيمة أقل من 512 بكسل لن تعمل بشكل جيد مع [stabilityai/stable-diffusion-xl-base-1.0](https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0) ونقاط التفتيش التي لم تُضبط بدقة على دقات منخفضة.

width (`int`، *اختياري*، الافتراضي هو حجم control_image) : عرض الصورة المولدة بالبكسل. أي قيمة أقل من 512 بكسل لن تعمل بشكل جيد مع [stabilityai/stable-diffusion-xl-base-1.0](https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0) والنقاط المرجعية التي لم يتم ضبطها بدقة على الدقات المنخفضة بشكل خاص.

strength (`float`، *اختياري*، القيمة الافتراضية 0.8) : يحدد مدى تحويل الصورة المرجعية `image`. يجب أن يكون بين 0 و 1. تُستخدم `image` كنقطة انطلاق، وكلما ارتفعت قيمة `strength` زاد مقدار الضوضاء المضافة. يعتمد عدد خطوات إزالة الضوضاء على كمية الضوضاء المضافة في البداية. عندما تكون `strength` تساوي 1، تكون الضوضاء المضافة في أقصى حد، وتعمل عملية إزالة الضوضاء لعدد التكرارات الكامل المحدد في `num_inference_steps`. القيمة 1 تتجاهل `image` بشكل أساسي.

num_inference_steps (`int`، *اختياري*، القيمة الافتراضية 50) : عدد خطوات إزالة الضوضاء. تؤدي زيادة عدد خطوات إزالة الضوضاء عادةً إلى صورة ذات جودة أعلى على حساب بطء الاستدلال.

guidance_scale (`float`, *اختياري*, القيمة الافتراضية 7.5) : مقياس التوجيه كما هو مُعرَّف في [Classifier-Free Diffusion Guidance](https://huggingface.co/papers/2207.12598). يُعرَّف `guidance_scale` على أنه `w` من المعادلة 2. في [Imagen Paper](https://huggingface.co/papers/2205.11487). يتم تفعيل مقياس التوجيه عن طريق تعيين `guidance_scale > 1`. يشجع مقياس التوجيه الأعلى على توليد صور مرتبطة ارتباطًا وثيقًا بنص `prompt`، وعادةً على حساب انخفاض جودة الصورة.

negative_prompt (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات التي لا ينبغي توجيه توليد الصورة بها. إذا لم يُعرَّف، يجب تمرير `negative_prompt_embeds` بدلاً من ذلك. يتم تجاهله عند عدم استخدام التوجيه (أي يتم تجاهله إذا كان `guidance_scale` أقل من `1`).

negative_prompt_2 (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات التي لا ينبغي توجيه توليد الصورة إليها، والتي سيتم إرسالها إلى `tokenizer_2` و`text_encoder_2`. إذا لم يُعرَّف، يُستخدم `negative_prompt` في كلا مشفري النص

num_images_per_prompt (`int`، *اختياري*، القيمة الافتراضية 1) : عدد الصور التي سيتم توليدها لكل موجه.

eta (`float`، *اختياري*، القيمة الافتراضية 0.0) : يتوافق مع المعامل eta (η) في ورقة DDIM: https://huggingface.co/papers/2010.02502. ينطبق فقط على [schedulers.DDIMScheduler](/docs/diffusers/main/ar/api/schedulers/ddim#diffusers.DDIMScheduler)، وسيتم تجاهله في الحالات الأخرى.

generator (`torch.Generator` أو `list[torch.Generator]`، *اختياري*) : مولّد واحد أو قائمة من [مولّدات torch](https://pytorch.org/docs/stable/generated/torch.Generator.html) لجعل التوليد حتميًا.

latents (`torch.Tensor`، *اختياري*) : كامنات ضجيج مُولّدة مسبقًا، مُستخرجة من توزيع غاوسي، تُستخدم كمدخلات لتوليد الصور. يمكن استخدامها لتعديل نفس التوليد باستخدام أوامر مختلفة. إذا لم تُقدَّم، سيتم توليد كامنات من خلال الاستخراج باستخدام `generator` العشوائي المُقدَّم.

prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد تمثيلات النص من معامل الإدخال `prompt`.

negative_prompt_embeds (`torch.Tensor`, *اختياري*) : تمثيلات نصية سالبة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد negative_prompt_embeds من معامل الإدخال `negative_prompt`.

pooled_prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مجمّعة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد تمثيلات نصية مجمّعة من معامل الإدخال `prompt`.

negative_pooled_prompt_embeds (`torch.Tensor`, *اختياري*) : تمثيلات نصية مجمعة سالبة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد pooled negative_prompt_embeds من معامل الإدخال `negative_prompt`.

ip_adapter_image : (`PipelineImageInput`، *اختياري*): إدخال صورة اختياري للعمل مع IP Adapters.

ip_adapter_image_embeds (`list[torch.Tensor]`, *اختياري*) : تمثيلات صور مُولّدة مسبقًا لـ IP-Adapter. يجب أن يكون قائمة بطول يساوي عدد وحدات IP-adapter. يجب أن يكون كل عنصر منها متجهًا (tensor) بشكل `(batch_size, num_images, emb_dim)`. يجب أن يحتوي على تمثيل الصورة السلبية إذا كان `do_classifier_free_guidance` مضبوطًا على `True`. إذا لم يُقدَّم، تُحسب التمثيلات من معامل الإدخال `ip_adapter_image`.

output_type (`str`، *اختياري*، القيمة الافتراضية `"pil"`) : صيغة الصورة الناتجة عن عملية التوليد. اختر بين [PIL](https://pillow.readthedocs.io/en/stable/): `PIL.Image.Image` أو `np.array`.

return_dict (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان يجب إرجاع [StableDiffusionPipelineOutput](/docs/diffusers/main/ar/api/pipelines/stable_diffusion/img2img#diffusers.pipelines.stable_diffusion.StableDiffusionPipelineOutput) بدلاً من tuple عادي.

cross_attention_kwargs (`dict`، *اختياري*) : قاموس kwargs يُمرَّر إلى `AttentionProcessor` إذا تم تحديده، كما هو معرَّف تحت `self.processor` في [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py).

controlnet_conditioning_scale (`float` أو `list[float]`، *اختياري*، القيمة الافتراضية 1.0) : تُضرب مخرجات controlnet في `controlnet_conditioning_scale` قبل إضافتها إلى الباقي في unet الأصلية. إذا تم تحديد عدة ControlNets في init، يمكنك تعيين المقياس المقابل كقائمة.

guess_mode (`bool`، *اختياري*، القيمة الافتراضية `False`) : في هذا الوضع، سيحاول مُشفِّر ControlNet التعرف على محتوى الصورة المُدخلة بأفضل ما يمكن حتى إذا قمت بإزالة جميع الأوامر النصية. يُوصى بأن تكون قيمة `guidance_scale` بين 3.0 و5.0.

control_guidance_start (`float` أو `list[float]`، *اختياري*، القيمة الافتراضية 0.0) : النسبة المئوية من إجمالي الخطوات التي يبدأ عندها تطبيق controlnet.

control_guidance_end (`float` أو `list[float]`، *اختياري*، القيمة الافتراضية 1.0) : النسبة المئوية من إجمالي الخطوات التي يتوقف عندها controlnet عن التطبيق.

original_size (`tuple[int]`، *اختياري*، القيمة الافتراضية (1024, 1024)) : إذا لم تكن `original_size` مطابقة لـ `target_size`، فسيبدو أن الصورة قد خضعت لتقليل أو زيادة حجمها. القيمة الافتراضية لـ `original_size` هي `(height, width)` إذا لم تُحدد. جزء من التكييف الدقيق (micro-conditioning) الخاص بـ SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952).

crops_coords_top_left (`tuple[int]`، *اختياري*، القيمة الافتراضية (0, 0)) : يمكن استخدام `crops_coords_top_left` لتوليد صورة تبدو وكأنها "مقتطعة" من الموضع `crops_coords_top_left` إلى الأسفل. عادةً ما يتم تحقيق صور مفضلة ومركزة جيدًا عن طريق تعيين `crops_coords_top_left` إلى (0, 0). جزء من micro-conditioning الخاص بـ SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952).

target_size (`tuple[int]`، *اختياري*، القيمة الافتراضية (1024, 1024)) : في معظم الحالات، يجب ضبط `target_size` على الارتفاع والعرض المطلوبين للصورة المولّدة. إذا لم يُحدد، فسيكون الافتراضي `(height, width)`. جزء من التكييف الدقيق (micro-conditioning) في SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952).

negative_original_size (`tuple[int]`، *اختياري*، القيمة الافتراضية (1024, 1024)) : يُستخدم لتقييد عملية التوليد سلبياً بناءً على دقة صورة محددة. وهو جزء من التكييف الدقيق (micro-conditioning) في SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952). لمزيد من المعلومات، راجع موضوع هذا المسألة: https://github.com/huggingface/diffusers/issues/4208.

negative_crops_coords_top_left (`tuple[int]`، *اختياري*، القيمة الافتراضية (0, 0)) : يُستخدم لتوجيه عملية التوليد سلبياً بناءً على إحداثيات قصّ محددة. وهو جزء من التكييف الدقيق (micro-conditioning) في SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952). لمزيد من المعلومات، راجع موضوع هذا الإشكال: https://github.com/huggingface/diffusers/issues/4208.

negative_target_size (`tuple[int]`، *اختياري*، القيمة الافتراضية (1024, 1024)) : يُستخدم لتقييد عملية التوليد سلبياً بناءً على دقة الصورة المستهدفة. يجب أن تكون مطابقة لـ `target_size` في معظم الحالات. وهو جزء من التكييف الدقيق (micro-conditioning) في SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952). لمزيد من المعلومات، راجع موضوع هذا الإشكال: https://github.com/huggingface/diffusers/issues/4208.

aesthetic_score (`float`، *اختياري*، القيمة الافتراضية 6.0) : يُستخدم لمحاكاة درجة جمالية للصورة المولّدة من خلال التأثير على شرط النص الإيجابي. وهو جزء من التكييف الدقيق (micro-conditioning) في SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952).

negative_aesthetic_score (`float`، *اختياري*، القيمة الافتراضية 2.5) : جزء من التكييف الدقيق (micro-conditioning) في SDXL كما هو موضح في القسم 2.2 من [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952). يمكن استخدامه لمحاكاة درجة جمالية للصورة المولّدة من خلال التأثير على شرط النص السلبي.

clip_skip (`int`, *اختياري*) : عدد الطبقات التي سيتم تجاوزها من CLIP أثناء حساب تمثيلات الموجه. القيمة 1 تعني أنه سيتم استخدام مخرجات الطبقة قبل الأخيرة لحساب تمثيلات الموجه.

callback_on_step_end (`Callable`، `PipelineCallback`، `MultiPipelineCallbacks`، *اختياري*) : دالة أو فئة فرعية من `PipelineCallback` أو `MultiPipelineCallbacks` تُستدعى في نهاية كل خطوة إزالة ضوضاء أثناء الاستدلال، مع الحُجج التالية: `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) الخاص بك.

pag_scale (`float`، *اختياري*، القيمة الافتراضية 3.0) : معامل المقياس للتوجيه الانتباه المُعطَّل. إذا تم ضبطه على 0.0، فلن يُستخدم التوجيه الانتباه المُعطَّل.

pag_adaptive_scale (`float`، *اختياري*، القيمة الافتراضية 0.0) : معامل المقياس التكيفي لمرشد الانتباه المُعطَّل. إذا تم ضبطه على 0.0، يُستخدم `pag_scale`.

**يعيد:** `~pipelines.stable_diffusion.StableDiffusionXLPipelineOutput` أو `tuple`

`~pipelines.stable_diffusion.StableDiffusionXLPipelineOutput` إذا كان `return_dict` هو True، وإلا فسيكون `tuple` يحتوي على الصور الناتجة.

الدالة التي تُستدعى عند استدعاء خط الأنابيب للتوليد.

أمثلة:
```py
>>> # pip install accelerate transformers safetensors diffusers

>>> import torch
>>> import numpy as np
>>> from PIL import Image

>>> from transformers import DPTFeatureExtractor, DPTForDepthEstimation
>>> from diffusers import ControlNetModel, StableDiffusionXLControlNetPAGImg2ImgPipeline, AutoencoderKL
>>> from diffusers.utils import load_image

>>> depth_estimator = DPTForDepthEstimation.from_pretrained("Intel/dpt-hybrid-midas").to("cuda")
>>> feature_extractor = DPTFeatureExtractor.from_pretrained("Intel/dpt-hybrid-midas")
>>> controlnet = ControlNetModel.from_pretrained(
...     "diffusers/controlnet-depth-sdxl-1.0-small",
...     variant="fp16",
...     use_safetensors="True",
...     torch_dtype=torch.float16,
... )
>>> vae = AutoencoderKL.from_pretrained("madebyollin/sdxl-vae-fp16-fix", torch_dtype=torch.float16)
>>> pipe = StableDiffusionXLControlNetPAGImg2ImgPipeline.from_pretrained(
...     "stabilityai/stable-diffusion-xl-base-1.0",
...     controlnet=controlnet,
...     vae=vae,
...     variant="fp16",
...     use_safetensors=True,
...     torch_dtype=torch.float16,
...     enable_pag=True,
... )
>>> pipe.enable_model_cpu_offload()

>>> def get_depth_map(image):
...     image = feature_extractor(images=image, return_tensors="pt").pixel_values.to("cuda")
...     with torch.no_grad(), torch.autocast("cuda"):
...         depth_map = depth_estimator(image).predicted_depth

...     depth_map = torch.nn.functional.interpolate(
...         depth_map.unsqueeze(1),
...         size=(1024, 1024),
...         mode="bicubic",
...         align_corners=False,
...     )
...     depth_min = torch.amin(depth_map, dim=[1, 2, 3], keepdim=True)
...     depth_max = torch.amax(depth_map, dim=[1, 2, 3], keepdim=True)
...     depth_map = (depth_map - depth_min) / (depth_max - depth_min)
...     image = torch.cat([depth_map] * 3, dim=1)
...     image = image.permute(0, 2, 3, 1).cpu().numpy()[0]
...     image = Image.fromarray((image * 255.0).clip(0, 255).astype(np.uint8))
...     return image

>>> prompt = "A robot, 4k photo"
>>> image = load_image(
...     "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main"
...     "/kandinsky/cat.png"
... ).resize((1024, 1024))
>>> controlnet_conditioning_scale = 0.5  # recommended for good generalization
>>> depth_image = get_depth_map(image)

>>> images = pipe(
...     prompt,
...     image=image,
...     control_image=depth_image,
...     strength=0.99,
...     num_inference_steps=50,
...     controlnet_conditioning_scale=controlnet_conditioning_scale,
... ).images
>>> images[0].save(f"robot_cat.png")
```

#### encode_prompt[[diffusers.StableDiffusionXLControlNetPAGImg2ImgPipeline.encode_prompt]]

```python
encode_prompt(prompt: str, prompt_2: str | None = None, device: typing.Optional[torch.device] = None, num_images_per_prompt: int = 1, do_classifier_free_guidance: bool = True, negative_prompt: str | None = None, negative_prompt_2: str | None = None, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, lora_scale: float | None = None, clip_skip: int | None = None)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_controlnet_sd_xl_img2img.py#L297)

**المعاملات:**

prompt (`str` أو `list[str]`، *اختياري*) : النص الذي سيتم ترميزه

prompt_2 (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات المرسل إلى `tokenizer_2` و`text_encoder_2`. إذا لم يُعرَّف، يُستخدم `prompt` في كلا مشفّري النص

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`).

negative_prompt_2 (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات التي لا ينبغي توجيه توليد الصورة إليها، والتي سيتم إرسالها إلى `tokenizer_2` و`text_encoder_2`. إذا لم يُعرَّف، يُستخدم `negative_prompt` في كلا مشفري النص

prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد تمثيلات النص من معامل الإدخال `prompt`.

negative_prompt_embeds (`torch.Tensor`, *اختياري*) : تمثيلات نصية سالبة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد negative_prompt_embeds من معامل الإدخال `negative_prompt`.

pooled_prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مجمّعة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد تمثيلات نصية مجمّعة من معامل الإدخال `prompt`.

negative_pooled_prompt_embeds (`torch.Tensor`, *اختياري*) : تمثيلات نصية مجمعة سالبة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد pooled negative_prompt_embeds من معامل الإدخال `negative_prompt`.

lora_scale (`float`، *اختياري*) : مقياس lora سيُطبَّق على جميع طبقات LoRA في مُشفِّر النص إذا كانت طبقات LoRA محمَّلة.

clip_skip (`int`, *اختياري*) : عدد الطبقات التي سيتم تجاوزها من CLIP أثناء حساب تمثيلات الموجه. القيمة 1 تعني أنه سيتم استخدام مخرجات الطبقة قبل الأخيرة لحساب تمثيلات الموجه.

يقوم بتشفير الموجه إلى حالات مخفية لمشفّر النص.

## StableDiffusion3PAGPipeline[[diffusers.StableDiffusion3PAGPipeline]]

#### diffusers.StableDiffusion3PAGPipeline[[diffusers.StableDiffusion3PAGPipeline]]

```python
diffusers.StableDiffusion3PAGPipeline(transformer: SD3Transformer2DModel, scheduler: FlowMatchEulerDiscreteScheduler, vae: AutoencoderKL, text_encoder: CLIPTextModelWithProjection, tokenizer: CLIPTokenizer, text_encoder_2: CLIPTextModelWithProjection, tokenizer_2: CLIPTokenizer, text_encoder_3: T5EncoderModel, tokenizer_3: T5Tokenizer, pag_applied_layers: str | list[str] = 'blocks.1')
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_sd_3.py#L136)

**المعاملات:**

transformer ([SD3Transformer2DModel](/docs/diffusers/main/ar/api/models/sd3_transformer2d#diffusers.SD3Transformer2DModel)) : معمارية Transformer الشرطية (MMDiT) لإزالة الضوضاء من الكامنات المُرمّزة للصورة.

scheduler ([FlowMatchEulerDiscreteScheduler](/docs/diffusers/main/ar/api/schedulers/flow_match_euler_discrete#diffusers.FlowMatchEulerDiscreteScheduler)) : مُجدوِل يُستخدم بالاقتران مع `transformer` لإزالة الضوضاء من كامنات الصورة المُرمَّزة.

vae ([AutoencoderKL](/docs/diffusers/main/ar/api/models/autoencoderkl#diffusers.AutoencoderKL)) : نموذج الترميز التحويلي التبايني (VAE) لتشفير وفك تشفير الصور إلى تمثيلات كامنة ومنها.

text_encoder (`CLIPTextModelWithProjection`) : [CLIP](https://huggingface.co/docs/transformers/model_doc/clip#transformers.CLIPTextModelWithProjection)، وتحديداً النسخة [clip-vit-large-patch14](https://huggingface.co/openai/clip-vit-large-patch14)، مع إضافة طبقة إسقاط إضافية يتم تهيئتها بمصفوفة قطرية بعدد أبعاد `hidden_size`.

text_encoder_2 (`CLIPTextModelWithProjection`) : [CLIP](https://huggingface.co/docs/transformers/model_doc/clip#transformers.CLIPTextModelWithProjection)، وتحديداً النسخة [laion/CLIP-ViT-bigG-14-laion2B-39B-b160k](https://huggingface.co/laion/CLIP-ViT-bigG-14-laion2B-39B-b160k).

text_encoder_3 (`T5EncoderModel`) : مُشفِّر نص ثابت. يستخدم Stable Diffusion 3 [T5](https://huggingface.co/docs/transformers/model_doc/t5#transformers.T5EncoderModel)، وتحديداً النسخة [t5-v1_1-xxl](https://huggingface.co/google/t5-v1_1-xxl).

tokenizer (`CLIPTokenizer`) : مُقسِّم من الفئة [CLIPTokenizer](https://huggingface.co/docs/transformers/v4.21.0/en/model_doc/clip#transformers.CLIPTokenizer).

tokenizer_2 (`CLIPTokenizer`) : مُقسِّم ثانٍ من الفئة [CLIPTokenizer](https://huggingface.co/docs/transformers/v4.21.0/en/model_doc/clip#transformers.CLIPTokenizer).

tokenizer_3 (`T5TokenizerFast`) : مُجزِّئ من الفئة [T5Tokenizer](https://huggingface.co/docs/transformers/model_doc/t5#transformers.T5Tokenizer).

[خط أنابيب PAG](https://huggingface.co/docs/diffusers/main/en/using-diffusers/pag) لتوليد الصور من النص باستخدام Stable Diffusion 3.

#### __call__[[diffusers.StableDiffusion3PAGPipeline.__call__]]

```python
__call__(prompt: str | list[str] = None, prompt_2: str | list[str] | None = None, prompt_3: str | list[str] | None = None, height: int | None = None, width: int | None = None, num_inference_steps: int = 28, sigmas: list[float] | None = None, guidance_scale: float = 7.0, negative_prompt: str | list[str] | None = None, negative_prompt_2: str | list[str] | None = None, negative_prompt_3: str | list[str] | None = None, num_images_per_prompt: int | None = 1, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.FloatTensor] = None, prompt_embeds: typing.Optional[torch.FloatTensor] = None, negative_prompt_embeds: typing.Optional[torch.FloatTensor] = None, pooled_prompt_embeds: typing.Optional[torch.FloatTensor] = None, negative_pooled_prompt_embeds: typing.Optional[torch.FloatTensor] = None, output_type: str | None = 'pil', return_dict: bool = True, joint_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 = ['latents'], max_sequence_length: int = 256, pag_scale: float = 3.0, pag_adaptive_scale: float = 0.0)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_sd_3.py#L684)

**المعاملات:**

prompt (`str` أو `list[str]`، *اختياري*) : الأمر أو الأوامر التي تُوجّه توليد الصورة. إذا لم يُعرَّف، يجب تمرير `prompt_embeds` بدلاً من ذلك.

prompt_2 (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات المرسل إلى `tokenizer_2` و`text_encoder_2`. إذا لم يُعرَّف، فسيتم استخدام `prompt` بدلاً منه

prompt_3 (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات المرسل إلى `tokenizer_3` و`text_encoder_3`. إذا لم يُعرَّف، فسيتم استخدام `prompt` بدلاً منه

height (`int`، *اختياري*، الافتراضي هو self.unet.config.sample_size * self.vae_scale_factor) : ارتفاع الصورة المولّدة بالبكسلات. يتم ضبطه على 1024 افتراضيًا للحصول على أفضل النتائج.

width (`int`، *اختياري*، القيمة الافتراضية هي self.unet.config.sample_size * self.vae_scale_factor) : عرض الصورة المولدة بالبكسلات. يتم ضبطه على 1024 افتراضيًا للحصول على أفضل النتائج.

num_inference_steps (`int`، *اختياري*، القيمة الافتراضية 50) : عدد خطوات إزالة الضوضاء. تؤدي زيادة عدد خطوات إزالة الضوضاء عادةً إلى صورة ذات جودة أعلى على حساب بطء الاستدلال.

sigmas (`list[float]`، *اختياري*) : قيم `sigmas` مخصصة لاستخدامها في عملية إزالة الضوضاء مع المجدولين الذين يدعمون معامل `sigmas` في طريقة `set_timesteps` الخاصة بهم. إذا لم تُعرَّف، فسيتم استخدام السلوك الافتراضي عند تمرير `num_inference_steps`.

guidance_scale (`float`، *اختياري*، القيمة الافتراضية 7.0) : مقياس التوجيه كما هو مُعرَّف في [Classifier-Free Diffusion Guidance](https://huggingface.co/papers/2207.12598). يُعرَّف `guidance_scale` على أنه `w` من المعادلة 2. في [Imagen Paper](https://huggingface.co/papers/2205.11487). يتم تفعيل مقياس التوجيه عن طريق تعيين `guidance_scale > 1`. يشجع مقياس التوجيه الأعلى على توليد صور مرتبطة ارتباطًا وثيقًا بنص `prompt`، وعادةً على حساب انخفاض جودة الصورة.

negative_prompt (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات التي لا ينبغي توجيه توليد الصورة بها. إذا لم يُعرَّف، يجب تمرير `negative_prompt_embeds` بدلاً من ذلك. يتم تجاهله عند عدم استخدام التوجيه (أي يتم تجاهله إذا كان `guidance_scale` أقل من `1`).

negative_prompt_2 (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات التي لا ينبغي توجيه توليد الصورة إليها، والتي سيتم إرسالها إلى `tokenizer_2` و`text_encoder_2`. إذا لم يُعرَّف، يُستخدم `negative_prompt` بدلاً منه

negative_prompt_3 (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات التي لا ينبغي توجيه توليد الصورة إليها، والتي سيتم إرسالها إلى `tokenizer_3` و`text_encoder_3`. إذا لم يُعرَّف، يُستخدم `negative_prompt` بدلاً منه

num_images_per_prompt (`int`، *اختياري*، القيمة الافتراضية 1) : عدد الصور التي سيتم توليدها لكل موجه.

generator (`torch.Generator` أو `list[torch.Generator]`، *اختياري*) : مولّد واحد أو قائمة من [مولّدات torch](https://pytorch.org/docs/stable/generated/torch.Generator.html) لجعل التوليد حتميًا.

latents (`torch.FloatTensor`، *اختياري*) : كامنات ضجيج مُولّدة مسبقًا، مُستخرجة من توزيع غاوسي، تُستخدم كمدخلات لتوليد الصور. يمكن استخدامها لتعديل نفس التوليد باستخدام أوامر مختلفة. إذا لم تُقدَّم، فسيتم إنشاء كامنات من خلال الاستخراج باستخدام `generator` العشوائي المُقدَّم.

prompt_embeds (`torch.FloatTensor`، *اختياري*) : تمثيلات نصية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد تمثيلات النص من معامل الإدخال `prompt`.

negative_prompt_embeds (`torch.FloatTensor`، *اختياري*) : تمثيلات نصية سالبة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد negative_prompt_embeds من معامل الإدخال `negative_prompt`.

pooled_prompt_embeds (`torch.FloatTensor`، *اختياري*) : تمثيلات نصية مجمّعة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد التمثيلات النصية المجمّعة من معامل الإدخال `prompt`.

negative_pooled_prompt_embeds (`torch.FloatTensor`، *اختياري*) : تمثيلات نصية مجمعة سالبة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد pooled negative_prompt_embeds من معامل الإدخال `negative_prompt`.

output_type (`str`، *اختياري*، القيمة الافتراضية `"pil"`) : صيغة الصورة الناتجة عن عملية التوليد. اختر بين [PIL](https://pillow.readthedocs.io/en/stable/): `PIL.Image.Image` أو `np.array`.

return_dict (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان يجب إرجاع `~pipelines.stable_diffusion_xl.StableDiffusionXLPipelineOutput` بدلاً من tuple عادي.

joint_attention_kwargs (`dict`، *اختياري*) : قاموس kwargs يُمرَّر إلى `AttentionProcessor` إذا تم تحديده، كما هو معرَّف تحت `self.processor` في [diffusers.models.attention_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) الخاص بك.

max_sequence_length (`int` الافتراضي 256) : أقصى طول تسلسل يُستخدم مع `prompt`.

pag_scale (`float`، *اختياري*، القيمة الافتراضية 3.0) : معامل المقياس للتوجيه الانتباه المُعطَّل. إذا تم ضبطه على 0.0، فلن يُستخدم التوجيه الانتباه المُعطَّل.

pag_adaptive_scale (`float`، *اختياري*، القيمة الافتراضية 0.0) : معامل المقياس التكيفي لمرشد الانتباه المُعطَّل. إذا تم ضبطه على 0.0، يُستخدم `pag_scale`.

**يعيد:** `~pipelines.stable_diffusion_3.StableDiffusion3PipelineOutput` أو `tuple`

`~pipelines.stable_diffusion_3.StableDiffusion3PipelineOutput` إذا كان `return_dict` هو True، وإلا `tuple`. عند إرجاع tuple، يكون العنصر الأول قائمة تحتوي على الصور المولّدة.

الدالة التي تُستدعى عند استدعاء خط الأنابيب للتوليد.

أمثلة:
```py
>>> import torch
>>> from diffusers import AutoPipelineForText2Image

>>> pipe = AutoPipelineForText2Image.from_pretrained(
...     "stabilityai/stable-diffusion-3-medium-diffusers",
...     torch_dtype=torch.float16,
...     enable_pag=True,
...     pag_applied_layers=["blocks.13"],
... )
>>> pipe.to("cuda")
>>> prompt = "A cat holding a sign that says hello world"
>>> image = pipe(prompt, guidance_scale=5.0, pag_scale=0.7).images[0]
>>> image.save("sd3_pag.png")
```

#### encode_prompt[[diffusers.StableDiffusion3PAGPipeline.encode_prompt]]

```python
encode_prompt(prompt: str | list[str], prompt_2: str | list[str], prompt_3: str | list[str], device: typing.Optional[torch.device] = None, num_images_per_prompt: int = 1, do_classifier_free_guidance: bool = True, negative_prompt: str | list[str] | None = None, negative_prompt_2: str | list[str] | None = None, negative_prompt_3: str | list[str] | None = None, prompt_embeds: typing.Optional[torch.FloatTensor] = None, negative_prompt_embeds: typing.Optional[torch.FloatTensor] = None, pooled_prompt_embeds: typing.Optional[torch.FloatTensor] = None, negative_pooled_prompt_embeds: typing.Optional[torch.FloatTensor] = None, clip_skip: int | None = None, max_sequence_length: int = 256, lora_scale: float | None = None)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_sd_3.py#L335)

**المعاملات:**

prompt (`str` أو `list[str]`، *اختياري*) : النص الذي سيتم ترميزه

prompt_2 (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات المرسل إلى `tokenizer_2` و`text_encoder_2`. إذا لم يُعرَّف، يُستخدم `prompt` في جميع مُشفِّرات النص

prompt_3 (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات المرسل إلى `tokenizer_3` و`text_encoder_3`. إذا لم يُعرَّف، يُستخدم `prompt` في جميع مُشفِّرات النص

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`).

negative_prompt_2 (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات التي لا ينبغي توجيه توليد الصورة إليها، والتي سيتم إرسالها إلى `tokenizer_2` و`text_encoder_2`. إذا لم يُعرَّف، يُستخدم `negative_prompt` في جميع مشفّرات النص.

negative_prompt_3 (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات التي لا ينبغي توجيه توليد الصورة إليها، والتي سيتم إرسالها إلى `tokenizer_3` و`text_encoder_3`. إذا لم يُعرَّف، يُستخدم `negative_prompt` في جميع مُشفِّرات النص.

prompt_embeds (`torch.FloatTensor`، *اختياري*) : تمثيلات نصية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد تمثيلات النص من معامل الإدخال `prompt`.

negative_prompt_embeds (`torch.FloatTensor`، *اختياري*) : تمثيلات نصية سالبة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد negative_prompt_embeds من معامل الإدخال `negative_prompt`.

pooled_prompt_embeds (`torch.FloatTensor`، *اختياري*) : تمثيلات نصية مجمّعة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد التمثيلات النصية المجمّعة من معامل الإدخال `prompt`.

negative_pooled_prompt_embeds (`torch.FloatTensor`، *اختياري*) : تمثيلات نصية مجمعة سالبة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد pooled negative_prompt_embeds من معامل الإدخال `negative_prompt`.

clip_skip (`int`, *اختياري*) : عدد الطبقات التي سيتم تجاوزها من CLIP أثناء حساب تمثيلات الموجه. القيمة 1 تعني أنه سيتم استخدام مخرجات الطبقة قبل الأخيرة لحساب تمثيلات الموجه.

lora_scale (`float`، *اختياري*) : مقياس lora سيُطبَّق على جميع طبقات LoRA في مُشفِّر النص إذا كانت طبقات LoRA محمَّلة.

## StableDiffusion3PAGImg2ImgPipeline[[diffusers.StableDiffusion3PAGImg2ImgPipeline]]

#### diffusers.StableDiffusion3PAGImg2ImgPipeline[[diffusers.StableDiffusion3PAGImg2ImgPipeline]]

```python
diffusers.StableDiffusion3PAGImg2ImgPipeline(transformer: SD3Transformer2DModel, scheduler: FlowMatchEulerDiscreteScheduler, vae: AutoencoderKL, text_encoder: CLIPTextModelWithProjection, tokenizer: CLIPTokenizer, text_encoder_2: CLIPTextModelWithProjection, tokenizer_2: CLIPTokenizer, text_encoder_3: T5EncoderModel, tokenizer_3: T5Tokenizer, pag_applied_layers: str | list[str] = 'blocks.1')
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_sd_3_img2img.py#L152)

**المعاملات:**

transformer ([SD3Transformer2DModel](/docs/diffusers/main/ar/api/models/sd3_transformer2d#diffusers.SD3Transformer2DModel)) : معمارية Transformer الشرطية (MMDiT) لإزالة الضوضاء من الكامنات المُرمّزة للصورة.

scheduler ([FlowMatchEulerDiscreteScheduler](/docs/diffusers/main/ar/api/schedulers/flow_match_euler_discrete#diffusers.FlowMatchEulerDiscreteScheduler)) : مُجدوِل يُستخدم بالاقتران مع `transformer` لإزالة الضوضاء من كامنات الصورة المُرمَّزة.

vae ([AutoencoderKL](/docs/diffusers/main/ar/api/models/autoencoderkl#diffusers.AutoencoderKL)) : نموذج الترميز التحويلي التبايني (VAE) لتشفير وفك تشفير الصور إلى تمثيلات كامنة ومنها.

text_encoder (`CLIPTextModelWithProjection`) : [CLIP](https://huggingface.co/docs/transformers/model_doc/clip#transformers.CLIPTextModelWithProjection)، وتحديداً النسخة [clip-vit-large-patch14](https://huggingface.co/openai/clip-vit-large-patch14)، مع إضافة طبقة إسقاط إضافية يتم تهيئتها بمصفوفة قطرية بعدد أبعاد `hidden_size`.

text_encoder_2 (`CLIPTextModelWithProjection`) : [CLIP](https://huggingface.co/docs/transformers/model_doc/clip#transformers.CLIPTextModelWithProjection)، وتحديداً النسخة [laion/CLIP-ViT-bigG-14-laion2B-39B-b160k](https://huggingface.co/laion/CLIP-ViT-bigG-14-laion2B-39B-b160k).

text_encoder_3 (`T5EncoderModel`) : مُشفِّر نص ثابت. يستخدم Stable Diffusion 3 [T5](https://huggingface.co/docs/transformers/model_doc/t5#transformers.T5EncoderModel)، وتحديداً النسخة [t5-v1_1-xxl](https://huggingface.co/google/t5-v1_1-xxl).

tokenizer (`CLIPTokenizer`) : مُقسِّم من الفئة [CLIPTokenizer](https://huggingface.co/docs/transformers/v4.21.0/en/model_doc/clip#transformers.CLIPTokenizer).

tokenizer_2 (`CLIPTokenizer`) : مُقسِّم ثانٍ من الفئة [CLIPTokenizer](https://huggingface.co/docs/transformers/v4.21.0/en/model_doc/clip#transformers.CLIPTokenizer).

tokenizer_3 (`T5TokenizerFast`) : مُجزِّئ من الفئة [T5Tokenizer](https://huggingface.co/docs/transformers/model_doc/t5#transformers.T5Tokenizer).

[خط أنابيب PAG](https://huggingface.co/docs/diffusers/main/en/using-diffusers/pag) لتوليد الصور من الصور باستخدام Stable Diffusion 3.

#### __call__[[diffusers.StableDiffusion3PAGImg2ImgPipeline.__call__]]

```python
__call__(prompt: str | list[str] = None, prompt_2: str | list[str] | None = None, prompt_3: str | list[str] | None = None, height: int | None = None, width: int | None = None, image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = None, strength: float = 0.6, num_inference_steps: int = 50, sigmas: list[float] | None = None, guidance_scale: float = 7.0, negative_prompt: str | list[str] | None = None, negative_prompt_2: str | list[str] | None = None, negative_prompt_3: str | list[str] | None = None, num_images_per_prompt: int | None = 1, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.FloatTensor] = None, prompt_embeds: typing.Optional[torch.FloatTensor] = None, negative_prompt_embeds: typing.Optional[torch.FloatTensor] = None, pooled_prompt_embeds: typing.Optional[torch.FloatTensor] = None, negative_pooled_prompt_embeds: typing.Optional[torch.FloatTensor] = None, output_type: str | None = 'pil', return_dict: bool = True, joint_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 = ['latents'], max_sequence_length: int = 256, pag_scale: float = 3.0, pag_adaptive_scale: float = 0.0)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_sd_3_img2img.py#L735)

**المعاملات:**

prompt (`str` أو `list[str]`، *اختياري*) : الأمر أو الأوامر التي تُوجّه توليد الصورة. إذا لم يُعرَّف، يجب تمرير `prompt_embeds` بدلاً من ذلك.

prompt_2 (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات المرسل إلى `tokenizer_2` و`text_encoder_2`. إذا لم يُعرَّف، فسيتم استخدام `prompt` بدلاً منه

prompt_3 (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات المرسل إلى `tokenizer_3` و`text_encoder_3`. إذا لم يُعرَّف، فسيتم استخدام `prompt` بدلاً منه

height (`int`، *اختياري*، القيمة الافتراضية هي `self.default_sample_size * self.vae_scale_factor`) : ارتفاع الصورة المولّدة بالبكسلات. يتم ضبطه على 1024 افتراضيًا للحصول على أفضل النتائج.

width (`int`، *اختياري*، القيمة الافتراضية هي `self.default_sample_size * self.vae_scale_factor`) : عرض الصورة المولدة بالبكسلات. يتم ضبطه على 1024 افتراضيًا للحصول على أفضل النتائج.

image (`torch.Tensor`، `PIL.Image.Image`، `np.ndarray`، `list[torch.Tensor]`، `list[PIL.Image.Image]`، أو `list[np.ndarray]`) : `Image`، مصفوفة numpy أو tensor تمثل دفعة من الصور (image batch) لاستخدامها كنقطة انطلاق. لكل من مصفوفة numpy وtensor الخاص بـ pytorch، النطاق المتوقع للقيم هو بين `[0, 1]` إذا كان tensor أو قائمة من tensors، فيجب أن يكون الشكل المتوقع `(B, C, H, W)` أو `(C, H, W)`. إذا كانت مصفوفة numpy أو قائمة من المصفوفات، فيجب أن يكون الشكل المتوقع `(B, H, W, C)` أو `(H, W, C)` كما يمكنه قبول كامنات الصور (image latents) كـ `image`، ولكن إذا تم تمرير الكامنات مباشرةً فلن يتم ترميزها مرة أخرى.

strength (`float`، *اختياري*، القيمة الافتراضية 0.8) : يحدد مدى تحويل الصورة المرجعية `image`. يجب أن يكون بين 0 و 1. تُستخدم `image` كنقطة انطلاق، وكلما ارتفعت قيمة `strength` زاد مقدار الضوضاء المضافة. يعتمد عدد خطوات إزالة الضوضاء على كمية الضوضاء المضافة في البداية. عندما تكون `strength` تساوي 1، تكون الضوضاء المضافة في أقصى حد، وتعمل عملية إزالة الضوضاء لعدد التكرارات الكامل المحدد في `num_inference_steps`. القيمة 1 تتجاهل `image` بشكل أساسي.

num_inference_steps (`int`، *اختياري*، القيمة الافتراضية 50) : عدد خطوات إزالة الضوضاء. تؤدي زيادة عدد خطوات إزالة الضوضاء عادةً إلى صورة ذات جودة أعلى على حساب بطء الاستدلال.

sigmas (`list[float]`، *اختياري*) : قيم `sigmas` مخصصة لاستخدامها في عملية إزالة الضوضاء مع المجدولين الذين يدعمون معامل `sigmas` في طريقة `set_timesteps` الخاصة بهم. إذا لم تُعرَّف، فسيتم استخدام السلوك الافتراضي عند تمرير `num_inference_steps`.

guidance_scale (`float`، *اختياري*، القيمة الافتراضية 7.0) : مقياس التوجيه كما هو مُعرَّف في [Classifier-Free Diffusion Guidance](https://huggingface.co/papers/2207.12598). يُعرَّف `guidance_scale` على أنه `w` من المعادلة 2. في [Imagen Paper](https://huggingface.co/papers/2205.11487). يتم تفعيل مقياس التوجيه عن طريق تعيين `guidance_scale > 1`. يشجع مقياس التوجيه الأعلى على توليد صور مرتبطة ارتباطًا وثيقًا بنص `prompt`، وعادةً على حساب انخفاض جودة الصورة.

negative_prompt (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات التي لا ينبغي توجيه توليد الصورة بها. إذا لم يُعرَّف، يجب تمرير `negative_prompt_embeds` بدلاً من ذلك. يتم تجاهله عند عدم استخدام التوجيه (أي يتم تجاهله إذا كان `guidance_scale` أقل من `1`).

negative_prompt_2 (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات التي لا ينبغي توجيه توليد الصورة إليها، والتي سيتم إرسالها إلى `tokenizer_2` و`text_encoder_2`. إذا لم يُعرَّف، يُستخدم `negative_prompt` بدلاً منه

negative_prompt_3 (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات التي لا ينبغي توجيه توليد الصورة إليها، والتي سيتم إرسالها إلى `tokenizer_3` و`text_encoder_3`. إذا لم يُعرَّف، يُستخدم `negative_prompt` بدلاً منه

num_images_per_prompt (`int`، *اختياري*، القيمة الافتراضية 1) : عدد الصور التي سيتم توليدها لكل موجه.

generator (`torch.Generator` أو `list[torch.Generator]`، *اختياري*) : مولّد واحد أو قائمة من [مولّدات torch](https://pytorch.org/docs/stable/generated/torch.Generator.html) لجعل التوليد حتميًا.

latents (`torch.FloatTensor`، *اختياري*) : كامنات ضجيج مُولّدة مسبقًا، مُستخرجة من توزيع غاوسي، تُستخدم كمدخلات لتوليد الصور. يمكن استخدامها لتعديل نفس التوليد باستخدام أوامر مختلفة. إذا لم تُقدَّم، فسيتم إنشاء كامنات من خلال الاستخراج باستخدام `generator` العشوائي المُقدَّم.

prompt_embeds (`torch.FloatTensor`، *اختياري*) : تمثيلات نصية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد تمثيلات النص من معامل الإدخال `prompt`.

negative_prompt_embeds (`torch.FloatTensor`، *اختياري*) : تمثيلات نصية سالبة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد negative_prompt_embeds من معامل الإدخال `negative_prompt`.

pooled_prompt_embeds (`torch.FloatTensor`، *اختياري*) : تمثيلات نصية مجمّعة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد التمثيلات النصية المجمّعة من معامل الإدخال `prompt`.

negative_pooled_prompt_embeds (`torch.FloatTensor`، *اختياري*) : تمثيلات نصية مجمعة سالبة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد pooled negative_prompt_embeds من معامل الإدخال `negative_prompt`.

output_type (`str`، *اختياري*، القيمة الافتراضية `"pil"`) : صيغة الصورة الناتجة عن عملية التوليد. اختر بين [PIL](https://pillow.readthedocs.io/en/stable/): `PIL.Image.Image` أو `np.array`.

return_dict (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان يجب إرجاع `~pipelines.stable_diffusion_xl.StableDiffusionXLPipelineOutput` بدلاً من tuple عادي.

joint_attention_kwargs (`dict`، *اختياري*) : قاموس kwargs يُمرَّر إلى `AttentionProcessor` إذا تم تحديده، كما هو معرَّف تحت `self.processor` في [diffusers.models.attention_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) الخاص بك.

max_sequence_length (`int` الافتراضي 256) : أقصى طول تسلسل يُستخدم مع `prompt`.

pag_scale (`float`، *اختياري*، القيمة الافتراضية 3.0) : معامل المقياس للتوجيه الانتباه المُعطَّل. إذا تم ضبطه على 0.0، فلن يُستخدم التوجيه الانتباه المُعطَّل.

pag_adaptive_scale (`float`، *اختياري*، القيمة الافتراضية 0.0) : معامل المقياس التكيفي لمرشد الانتباه المُعطَّل. إذا تم ضبطه على 0.0، يُستخدم `pag_scale`.

**يعيد:** `~pipelines.stable_diffusion_3.StableDiffusion3PipelineOutput` أو `tuple`

`~pipelines.stable_diffusion_3.StableDiffusion3PipelineOutput` إذا كان `return_dict` هو True، وإلا `tuple`. عند إرجاع tuple، يكون العنصر الأول قائمة تحتوي على الصور المولّدة.

الدالة التي تُستدعى عند استدعاء خط الأنابيب للتوليد.

أمثلة:
```py
>>> import torch
>>> from diffusers import StableDiffusion3PAGImg2ImgPipeline
>>> from diffusers.utils import load_image

>>> pipe = StableDiffusion3PAGImg2ImgPipeline.from_pretrained(
...     "stabilityai/stable-diffusion-3-medium-diffusers",
...     torch_dtype=torch.float16,
...     pag_applied_layers=["blocks.13"],
... )
>>> pipe.to("cuda")
>>> prompt = "a photo of an astronaut riding a horse on mars"
>>> url = "https://huggingface.co/datasets/patrickvonplaten/images/resolve/main/aa_xl/000000009.png"
>>> init_image = load_image(url).convert("RGB")
>>> image = pipe(prompt, image=init_image, guidance_scale=5.0, pag_scale=0.7).images[0]
```

#### encode_prompt[[diffusers.StableDiffusion3PAGImg2ImgPipeline.encode_prompt]]

```python
encode_prompt(prompt: str | list[str], prompt_2: str | list[str], prompt_3: str | list[str], device: typing.Optional[torch.device] = None, num_images_per_prompt: int = 1, do_classifier_free_guidance: bool = True, negative_prompt: str | list[str] | None = None, negative_prompt_2: str | list[str] | None = None, negative_prompt_3: str | list[str] | None = None, prompt_embeds: typing.Optional[torch.FloatTensor] = None, negative_prompt_embeds: typing.Optional[torch.FloatTensor] = None, pooled_prompt_embeds: typing.Optional[torch.FloatTensor] = None, negative_pooled_prompt_embeds: typing.Optional[torch.FloatTensor] = None, clip_skip: int | None = None, max_sequence_length: int = 256, lora_scale: float | None = None)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_sd_3_img2img.py#L351)

**المعاملات:**

prompt (`str` أو `list[str]`، *اختياري*) : النص الذي سيتم ترميزه

prompt_2 (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات المرسل إلى `tokenizer_2` و`text_encoder_2`. إذا لم يُعرَّف، يُستخدم `prompt` في جميع مُشفِّرات النص

prompt_3 (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات المرسل إلى `tokenizer_3` و`text_encoder_3`. إذا لم يُعرَّف، يُستخدم `prompt` في جميع مُشفِّرات النص

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`).

negative_prompt_2 (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات التي لا ينبغي توجيه توليد الصورة إليها، والتي سيتم إرسالها إلى `tokenizer_2` و`text_encoder_2`. إذا لم يُعرَّف، يُستخدم `negative_prompt` في جميع مشفّرات النص.

negative_prompt_3 (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات التي لا ينبغي توجيه توليد الصورة إليها، والتي سيتم إرسالها إلى `tokenizer_3` و`text_encoder_3`. إذا لم يُعرَّف، يُستخدم `negative_prompt` في جميع مُشفِّرات النص.

prompt_embeds (`torch.FloatTensor`، *اختياري*) : تمثيلات نصية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد تمثيلات النص من معامل الإدخال `prompt`.

negative_prompt_embeds (`torch.FloatTensor`، *اختياري*) : تمثيلات نصية سالبة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد negative_prompt_embeds من معامل الإدخال `negative_prompt`.

pooled_prompt_embeds (`torch.FloatTensor`، *اختياري*) : تمثيلات نصية مجمّعة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد التمثيلات النصية المجمّعة من معامل الإدخال `prompt`.

negative_pooled_prompt_embeds (`torch.FloatTensor`، *اختياري*) : تمثيلات نصية مجمعة سالبة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد pooled negative_prompt_embeds من معامل الإدخال `negative_prompt`.

clip_skip (`int`, *اختياري*) : عدد الطبقات التي سيتم تجاوزها من CLIP أثناء حساب تمثيلات الموجه. القيمة 1 تعني أنه سيتم استخدام مخرجات الطبقة قبل الأخيرة لحساب تمثيلات الموجه.

lora_scale (`float`، *اختياري*) : مقياس lora سيُطبَّق على جميع طبقات LoRA في مُشفِّر النص إذا كانت طبقات LoRA محمَّلة.

## PixArtSigmaPAGPipeline[[diffusers.PixArtSigmaPAGPipeline]]

#### diffusers.PixArtSigmaPAGPipeline[[diffusers.PixArtSigmaPAGPipeline]]

```python
diffusers.PixArtSigmaPAGPipeline(tokenizer: T5Tokenizer, text_encoder: T5EncoderModel, vae: AutoencoderKL, transformer: PixArtTransformer2DModel, scheduler: KarrasDiffusionSchedulers, pag_applied_layers: str | list[str] = 'blocks.1')
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_pixart_sigma.py#L144)

[خط أنابيب PAG](https://huggingface.co/docs/diffusers/main/en/using-diffusers/pag) لتوليد الصور من النص باستخدام PixArt-Sigma.

#### __call__[[diffusers.PixArtSigmaPAGPipeline.__call__]]

```python
__call__(prompt: str | list[str] = None, negative_prompt: str = '', num_inference_steps: int = 20, timesteps: list = None, sigmas: list = None, guidance_scale: float = 4.5, num_images_per_prompt: int | None = 1, height: int | None = None, width: int | None = None, eta: float = 0.0, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, prompt_attention_mask: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_attention_mask: typing.Optional[torch.Tensor] = None, output_type: str | None = 'pil', return_dict: bool = True, callback: typing.Optional[typing.Callable[[int, int, torch.Tensor], NoneType]] = None, callback_steps: int = 1, clean_caption: bool = True, use_resolution_binning: bool = True, max_sequence_length: int = 300, pag_scale: float = 3.0, pag_adaptive_scale: float = 0.0)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_pixart_sigma.py#L574)

**المعاملات:**

prompt (`str` أو `list[str]`، *اختياري*) : الأمر أو الأوامر التي تُوجّه توليد الصورة. إذا لم يُعرَّف، يجب تمرير `prompt_embeds` بدلاً من ذلك.

negative_prompt (`str` أو `list[str]`، *اختياري*) : الموجه أو الموجهات التي لا ينبغي توجيه توليد الصورة بها. إذا لم يُعرَّف، يجب تمرير `negative_prompt_embeds` بدلاً من ذلك. يتم تجاهله عند عدم استخدام التوجيه (أي يتم تجاهله إذا كان `guidance_scale` أقل من `1`).

num_inference_steps (`int`، *اختياري*، القيمة الافتراضية 100) : عدد خطوات إزالة الضوضاء. تؤدي زيادة عدد خطوات إزالة الضوضاء عادةً إلى صورة ذات جودة أعلى على حساب بطء الاستدلال.

timesteps (`list[int]`، *اختياري*) : خطوات زمنية مخصصة لاستخدامها في عملية إزالة الضوضاء مع المجدولين الذين يدعمون معامل `timesteps` في طريقة `set_timesteps` الخاصة بهم. إذا لم يُعرَّف، فسيتم استخدام السلوك الافتراضي عند تمرير `num_inference_steps`. يجب أن تكون بترتيب تنازلي.

sigmas (`list[float]`، *اختياري*) : قيم `sigmas` مخصصة لاستخدامها في عملية إزالة الضوضاء مع المجدولين الذين يدعمون معامل `sigmas` في طريقة `set_timesteps` الخاصة بهم. إذا لم تُعرَّف، فسيتم استخدام السلوك الافتراضي عند تمرير `num_inference_steps`.

guidance_scale (`float`، *اختياري*، القيمة الافتراضية 4.5) : مقياس التوجيه كما هو مُعرَّف في [Classifier-Free Diffusion Guidance](https://huggingface.co/papers/2207.12598). يُعرَّف `guidance_scale` على أنه `w` من المعادلة 2. في [Imagen Paper](https://huggingface.co/papers/2205.11487). يتم تفعيل مقياس التوجيه عن طريق تعيين `guidance_scale > 1`. يشجع مقياس التوجيه الأعلى على توليد صور مرتبطة ارتباطًا وثيقًا بنص `prompt`، وعادةً على حساب انخفاض جودة الصورة.

num_images_per_prompt (`int`، *اختياري*، القيمة الافتراضية 1) : عدد الصور التي سيتم توليدها لكل موجه.

height (`int`، *اختياري*، الافتراضي هو self.unet.config.sample_size) : ارتفاع الصورة المولّدة بالبكسل.

width (`int`، *اختياري*، الافتراضي هو self.unet.config.sample_size) : عرض الصورة المولدة بالبكسل.

eta (`float`، *اختياري*، القيمة الافتراضية 0.0) : يتوافق مع المعامل eta (η) في ورقة DDIM: https://huggingface.co/papers/2010.02502. ينطبق فقط على [schedulers.DDIMScheduler](/docs/diffusers/main/ar/api/schedulers/ddim#diffusers.DDIMScheduler)، وسيتم تجاهله في الحالات الأخرى.

generator (`torch.Generator` أو `list[torch.Generator]`، *اختياري*) : مولّد واحد أو قائمة من [مولّدات torch](https://pytorch.org/docs/stable/generated/torch.Generator.html) لجعل التوليد حتميًا.

latents (`torch.Tensor`، *اختياري*) : كامنات ضجيج مُولّدة مسبقًا، مُستخرجة من توزيع غاوسي، تُستخدم كمدخلات لتوليد الصور. يمكن استخدامها لتعديل نفس التوليد باستخدام أوامر مختلفة. إذا لم تُقدَّم، سيتم توليد كامنات من خلال الاستخراج باستخدام `generator` العشوائي المُقدَّم.

prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد تمثيلات النص من معامل الإدخال `prompt`.

prompt_attention_mask (`torch.Tensor`، *اختياري*) : قناع انتباه مُولّد مسبقًا لتضمينات النص.

negative_prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية سالبة مُولّدة مسبقًا. بالنسبة إلى PixArt-Sigma، يجب أن يكون هذا الموجه السلبي "". إذا لم يُقدَّم، فسيتم توليد negative_prompt_embeds من معامل الإدخال `negative_prompt`.

negative_prompt_attention_mask (`torch.Tensor`، *اختياري*) : قناع انتباه مُولّد مسبقًا لتضمينات النصوص السلبية.

output_type (`str`، *اختياري*، القيمة الافتراضية `"pil"`) : صيغة الصورة الناتجة عن عملية التوليد. اختر بين [PIL](https://pillow.readthedocs.io/en/stable/): `PIL.Image.Image` أو `np.array`.

return_dict (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان يجب إرجاع `~pipelines.stable_diffusion.IFPipelineOutput` بدلاً من tuple عادي.

callback (`Callable`، *اختياري*) : دالة ستُستدعى كل `callback_steps` خطوات أثناء الاستدلال. سيتم استدعاء الدالة مع الحُجج التالية: `callback(step: int, timestep: int, latents: torch.Tensor)`.

callback_steps (`int`، *اختياري*، القيمة الافتراضية 1) : التكرار الذي تُستدعى فيه دالة `callback`. إذا لم يتم تحديده، فستُستدعى الدالة في كل خطوة.

clean_caption (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان سيتم تنظيف الوصف قبل إنشاء التضمينات. يتطلب تثبيت `beautifulsoup4` و`ftfy`. إذا لم يتم تثبيت الاعتماديات، فسيتم إنشاء التضمينات من النص الخام.

use_resolution_binning (`bool` الافتراضي هو `True`) : إذا تم ضبطه على `True`، فإن الارتفاع والعرض المطلوبين يُخضعان أولاً للتحويل إلى أقرب دقة باستخدام `ASPECT_RATIO_1024_BIN`. بعد فك ترميز الكمّيات الناتجة إلى صور، يتم تغيير حجمها مرة أخرى إلى الدقة المطلوبة. مفيد لتوليد صور غير مربعة.

max_sequence_length (`int` الافتراضي 300) : أقصى طول تسلسل يُستخدم مع `prompt`.

pag_scale (`float`، *اختياري*، القيمة الافتراضية 3.0) : معامل المقياس للتوجيه الانتباه المُعطَّل. إذا تم ضبطه على 0.0، فلن يُستخدم التوجيه الانتباه المُعطَّل.

pag_adaptive_scale (`float`، *اختياري*، القيمة الافتراضية 0.0) : معامل المقياس التكيفي لمرشد الانتباه المُعطَّل. إذا تم ضبطه على 0.0، يُستخدم `pag_scale`.

**يعيد:** [ImagePipelineOutput](/docs/diffusers/main/ar/api/pipelines/consistency_models#diffusers.ImagePipelineOutput) أو `tuple`

إذا كان `return_dict` هو `True`، يُعاد [ImagePipelineOutput](/docs/diffusers/main/ar/api/pipelines/consistency_models#diffusers.ImagePipelineOutput)، وإلا يُعاد `tuple` يكون عنصره الأول قائمة بالصور المولّدة

الدالة التي تُستدعى عند استدعاء خط الأنابيب للتوليد.

أمثلة:
```py
>>> import torch
>>> from diffusers import AutoPipelineForText2Image

>>> pipe = AutoPipelineForText2Image.from_pretrained(
...     "PixArt-alpha/PixArt-Sigma-XL-2-1024-MS",
...     torch_dtype=torch.float16,
...     pag_applied_layers=["blocks.14"],
...     enable_pag=True,
... )
>>> pipe = pipe.to("cuda")

>>> prompt = "A small cactus with a happy face in the Sahara desert"
>>> image = pipe(prompt, pag_scale=4.0, guidance_scale=1.0).images[0]
```

#### encode_prompt[[diffusers.PixArtSigmaPAGPipeline.encode_prompt]]

```python
encode_prompt(prompt: str | list[str], do_classifier_free_guidance: bool = True, negative_prompt: str = '', num_images_per_prompt: int = 1, device: typing.Optional[torch.device] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, prompt_attention_mask: typing.Optional[torch.Tensor] = None, negative_prompt_attention_mask: typing.Optional[torch.Tensor] = None, clean_caption: bool = False, max_sequence_length: int = 300, **kwargs)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pag/pipeline_pag_pixart_sigma.py#L190)

**المعاملات:**

prompt (`str` أو `list[str]`، *اختياري*) : النص الذي سيتم ترميزه

negative_prompt (`str` أو `list[str]`، *اختياري*) : الأمر النصي الذي لا يوجّه توليد الصورة. إذا لم يُعرَّف، يجب تمرير `negative_prompt_embeds` بدلاً منه. يتم تجاهله عند عدم استخدام التوجيه (أي يتم تجاهله إذا كان `guidance_scale` أقل من `1`). بالنسبة إلى PixArt-Alpha، يجب أن يكون "".

do_classifier_free_guidance (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان سيتم استخدام classifier free guidance أم لا

num_images_per_prompt (`int`، *اختياري*، القيمة الافتراضية 1) : عدد الصور التي يجب توليدها لكل موجه

device : (`torch.device`, *اختياري*): جهاز torch لوضع التضمينات الناتجة عليه

prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد تمثيلات النص من معامل الإدخال `prompt`.

negative_prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية سالبة مُولّدة مسبقًا. بالنسبة إلى PixArt-Alpha، يجب أن تكون تمثيلات السلسلة "".

clean_caption (`bool`، القيمة الافتراضية `False`) : إذا كانت `True`، سيقوم الدالة بمعالجة الوصف المقدم وتنظيفه قبل الترميز.

max_sequence_length (`int`، القيمة الافتراضية 300) : أقصى طول تسلسل يُستخدم للموجّه.

يقوم بتشفير الموجه إلى حالات مخفية لمشفّر النص.

