Buckets:

hf-doc-build/doc / diffusers /main /ar /api /pipelines /kandinsky_v22.md
mishig's picture
|
download
raw
98.5 kB

Kandinsky 2.2

تم إنشاء Kandinsky 2.2 بواسطة Arseniy Shakhmatov وAnton Razzhigaev وAleksandr Nikolich وVladimir Arkhipkin وIgor Pavlov وAndrey Kuznetsov وDenis Dimitrov.

الوصف من صفحتها على GitHub هو:

تُقدّم Kandinsky 2.2 تحسينات جوهرية مقارنةً بسابقتها Kandinsky 2.1، من خلال إدخال مُشفِّر صور جديد وأكثر قوة وهو CLIP-ViT-G، ودعم ControlNet. يؤدي التحوّل إلى CLIP-ViT-G كمُشفِّر للصور إلى زيادة كبيرة في قدرة النموذج على توليد صور أكثر جمالية وفهم النص بشكل أفضل، مما يعزز الأداء العام للنموذج. كما يتيح إضافة آلية ControlNet للنموذج التحكم الفعّال في عملية توليد الصور. وهذا يؤدي إلى مخرجات أكثر دقة وجاذبية بصرية، ويفتح آفاقًا جديدة للتلاعب بالصور الموجَّهة بالنص.

يمكن العثور على قاعدة الكود الأصلية في ai-forever/Kandinsky-2.

اطّلع على منظمة Kandinsky Community على Hub للحصول على نقاط التفتيش الرسمية للنماذج لمهام مثل النص إلى صورة، والصورة إلى صورة، والتعبئة (inpainting).

تأكد من الاطلاع على دليل المجدولين لمعرفة كيفية استكشاف التوازن بين سرعة المجدول وجودة النتائج، واطّلع على قسم إعادة استخدام المكونات عبر خطوط الأنابيب لمعرفة كيفية تحميل نفس المكونات بكفاءة في خطوط أنابيب متعددة.

KandinskyV22PriorPipeline[[diffusers.KandinskyV22PriorPipeline]]

diffusers.KandinskyV22PriorPipeline[[diffusers.KandinskyV22PriorPipeline]]

diffusers.KandinskyV22PriorPipeline(prior: PriorTransformer, image_encoder: CLIPVisionModelWithProjection, text_encoder: CLIPTextModelWithProjection, tokenizer: CLIPTokenizer, scheduler: UnCLIPScheduler, image_processor: CLIPImageProcessorPil)

المصدر

المعاملات:

prior (PriorTransformer) : النموذج المسبق القياسي لـ unCLIP لتقريب تضمين الصورة من تضمين النص.

image_encoder (CLIPVisionModelWithProjection) : مُشفِّر صور مجمَّد.

text_encoder (CLIPTextModelWithProjection) : مُشفِّر نص ثابت.

tokenizer (CLIPTokenizer) : مُقسِّم من الفئة CLIPTokenizer.

scheduler (UnCLIPScheduler) : مُجدول يُستخدم بالاقتران مع prior لتوليد تضمين الصورة.

image_processor (CLIPImageProcessor) : image_processor يُستخدم لمعالجة الصور الأولية من clip.

خط أنابيب لتوليد المسبق (prior) للصور في Kandinsky

يرث هذا النموذج من DiffusionPipeline. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع خطوط الأنابيب (مثل التنزيل أو الحفظ، أو التشغيل على جهاز معين، وما إلى ذلك).

call[[diffusers.KandinskyV22PriorPipeline.call]]

__call__(prompt: str | list[str], negative_prompt: str | list[str] | None = None, num_images_per_prompt: int = 1, num_inference_steps: int = 25, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, guidance_scale: float = 4.0, output_type: str | None = 'pt', return_dict: bool = True, callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = None, callback_on_step_end_tensor_inputs: list[str] = ['latents'])

المصدر

المعاملات:

prompt (str أو list[str]) : الأمر أو الأوامر التي تُوجّه توليد الصورة.

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

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

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

generator (torch.Generator أو list[torch.Generator]، اختياري) : مولّد واحد أو قائمة من مولّدات torch لجعل التوليد حتميًا.

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

guidance_scale (float، اختياري، القيمة الافتراضية 4.0) : مقياس التوجيه كما هو مُعرَّف في Classifier-Free Diffusion Guidance. يُعرَّف guidance_scale على أنه w من المعادلة 2. في Imagen Paper. يتم تفعيل مقياس التوجيه عن طريق تعيين guidance_scale > 1. يشجع مقياس التوجيه الأعلى على توليد صور مرتبطة ارتباطًا وثيقًا بنص prompt، وعادةً على حساب انخفاض جودة الصورة.

output_type (str، اختياري، القيمة الافتراضية "pt") : صيغة مخرجات توليد الصورة. اختر بين: "np" (np.array) أو "pt" (torch.Tensor).

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

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

يعيد: KandinskyPriorPipelineOutput أو tuple

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

أمثلة:

>>> from diffusers import KandinskyV22Pipeline, KandinskyV22PriorPipeline
>>> import torch

>>> pipe_prior = KandinskyV22PriorPipeline.from_pretrained("kandinsky-community/kandinsky-2-2-prior")
>>> pipe_prior.to("cuda")
>>> prompt = "red cat, 4k photo"
>>> image_emb, negative_image_emb = pipe_prior(prompt).to_tuple()

>>> pipe = KandinskyV22Pipeline.from_pretrained("kandinsky-community/kandinsky-2-2-decoder")
>>> pipe.to("cuda")
>>> image = pipe(
...     image_embeds=image_emb,
...     negative_image_embeds=negative_image_emb,
...     height=768,
...     width=768,
...     num_inference_steps=50,
... ).images
>>> image[0].save("cat.png")

interpolate[[diffusers.KandinskyV22PriorPipeline.interpolate]]

interpolate(images_and_prompts: list[typing.Union[str, PIL.Image.Image, torch.Tensor]], weights: list[float], num_images_per_prompt: int = 1, num_inference_steps: int = 25, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, negative_prior_prompt: str | None = None, negative_prompt: str = '', guidance_scale: float = 4.0, device = None)

المصدر

المعاملات:

images_and_prompts (list[str | PIL.Image.Image | torch.Tensor]) : قائمة بالأوامر النصية والصور لتوجيه توليد الصورة.

weights : (list[float]): قائمة بالأوزان لكل حالة في images_and_prompts

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

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

generator (torch.Generator أو list[torch.Generator]، اختياري) : مولّد واحد أو قائمة من مولّدات torch لجعل التوليد حتميًا.

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

negative_prior_prompt (str, اختياري) : الأمر الذي لا يوجّه عملية الانتشار السابقة. يتم تجاهله عند عدم استخدام التوجيه (أي يتم تجاهله إذا كان guidance_scale أقل من 1).

negative_prompt (str أو list[str]، اختياري) : الموجه الذي لا يوجّه توليد الصورة. يتم تجاهله عند عدم استخدام التوجيه (أي يتم تجاهله إذا كان guidance_scale أقل من 1).

guidance_scale (float، اختياري، القيمة الافتراضية 4.0) : مقياس التوجيه كما هو مُعرَّف في Classifier-Free Diffusion Guidance. يُعرَّف guidance_scale على أنه w من المعادلة 2. في Imagen Paper. يتم تفعيل مقياس التوجيه عن طريق تعيين guidance_scale > 1. يشجع مقياس التوجيه الأعلى على توليد صور مرتبطة ارتباطًا وثيقًا بنص prompt، وعادةً على حساب انخفاض جودة الصورة.

يعيد: KandinskyPriorPipelineOutput أو tuple

الدالة التي يتم استدعاؤها عند استخدام خط الأنابيب السابق للاستيفاء.

أمثلة:

>>> from diffusers import KandinskyV22PriorPipeline, KandinskyV22Pipeline
>>> from diffusers.utils import load_image
>>> import PIL
>>> import torch
>>> from torchvision import transforms

>>> pipe_prior = KandinskyV22PriorPipeline.from_pretrained(
...     "kandinsky-community/kandinsky-2-2-prior", torch_dtype=torch.float16
... )
>>> pipe_prior.to("cuda")
>>> img1 = load_image(
...     "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/kandinsky/cat.png"
... )
>>> img2 = load_image(
...     "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main"
...     "/kandinsky/starry_night.jpeg"
... )
>>> images_texts = ["a cat", img1, img2]
>>> weights = [0.3, 0.3, 0.4]
>>> out = pipe_prior.interpolate(images_texts, weights)
>>> pipe = KandinskyV22Pipeline.from_pretrained(
...     "kandinsky-community/kandinsky-2-2-decoder", torch_dtype=torch.float16
... )
>>> pipe.to("cuda")
>>> image = pipe(
...     image_embeds=out.image_embeds,
...     negative_image_embeds=out.negative_image_embeds,
...     height=768,
...     width=768,
...     num_inference_steps=50,
... ).images[0]
>>> image.save("starry_cat.png")

KandinskyV22Pipeline[[diffusers.KandinskyV22Pipeline]]

diffusers.KandinskyV22Pipeline[[diffusers.KandinskyV22Pipeline]]

diffusers.KandinskyV22Pipeline(unet: UNet2DConditionModel, scheduler: DDPMScheduler, movq: VQModel)

المصدر

المعاملات:

scheduler (DDIMScheduler | DDPMScheduler) : مُجدوِل يُستخدم بالاقتران مع unet لتوليد كامنات الصور.

unet (UNet2DConditionModel) : بنية U-Net الشرطية لفك تشويش تضمين الصورة.

movq (VQModel) : مُفكِّك MoVQ لتوليد الصورة من الكمّات الكامنة.

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

يرث هذا النموذج من DiffusionPipeline. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع خطوط الأنابيب (مثل التنزيل أو الحفظ، أو التشغيل على جهاز معين، وما إلى ذلك).

call[[diffusers.KandinskyV22Pipeline.call]]

__call__(image_embeds: typing.Union[torch.Tensor, list[torch.Tensor]], negative_image_embeds: typing.Union[torch.Tensor, list[torch.Tensor]], height: int = 512, width: int = 512, num_inference_steps: int = 100, guidance_scale: float = 4.0, num_images_per_prompt: int = 1, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, output_type: str | None = 'pil', return_dict: bool = True, callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = None, callback_on_step_end_tensor_inputs: list[str] = ['latents'], **kwargs)

المصدر

المعاملات:

image_embeds (torch.Tensor أو list[torch.Tensor]) : تمثيلات الصور المقطعية (embeddings) الخاصة بنص الأمر، والتي ستُستخدم لتوجيه توليد الصورة.

negative_image_embeds (torch.Tensor أو list[torch.Tensor]) : تمثيلات الصور المقطعية (embeddings) الخاصة بـ prompt النصي السلبي، وسيتم استخدامها لتوجيه توليد الصورة.

height (int، اختياري، القيمة الافتراضية 512) : ارتفاع الصورة المولّدة بالبكسل.

width (int، اختياري، القيمة الافتراضية 512) : عرض الصورة المولدة بالبكسل.

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

guidance_scale (float، اختياري، القيمة الافتراضية 4.0) : مقياس التوجيه كما هو مُعرَّف في Classifier-Free Diffusion Guidance. يُعرَّف guidance_scale على أنه w من المعادلة 2. في Imagen Paper. يتم تفعيل مقياس التوجيه عن طريق تعيين guidance_scale > 1. يشجع مقياس التوجيه الأعلى على توليد صور مرتبطة ارتباطًا وثيقًا بنص prompt، وعادةً على حساب انخفاض جودة الصورة.

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

generator (torch.Generator أو list[torch.Generator]، اختياري) : مولّد واحد أو قائمة من مولّدات torch لجعل التوليد حتميًا.

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

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

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

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

يعيد: ImagePipelineOutput أو tuple

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

أمثلة:

>>> from diffusers import KandinskyV22Pipeline, KandinskyV22PriorPipeline
>>> import torch

>>> pipe_prior = KandinskyV22PriorPipeline.from_pretrained("kandinsky-community/kandinsky-2-2-prior")
>>> pipe_prior.to("cuda")
>>> prompt = "red cat, 4k photo"
>>> out = pipe_prior(prompt)
>>> image_emb = out.image_embeds
>>> zero_image_emb = out.negative_image_embeds
>>> pipe = KandinskyV22Pipeline.from_pretrained("kandinsky-community/kandinsky-2-2-decoder")
>>> pipe.to("cuda")
>>> image = pipe(
...     image_embeds=image_emb,
...     negative_image_embeds=zero_image_emb,
...     height=768,
...     width=768,
...     num_inference_steps=50,
... ).images
>>> image[0].save("cat.png")

KandinskyV22CombinedPipeline[[diffusers.KandinskyV22CombinedPipeline]]

diffusers.KandinskyV22CombinedPipeline[[diffusers.KandinskyV22CombinedPipeline]]

diffusers.KandinskyV22CombinedPipeline(unet: UNet2DConditionModel, scheduler: DDPMScheduler, movq: VQModel, prior_prior: PriorTransformer, prior_image_encoder: CLIPVisionModelWithProjection, prior_text_encoder: CLIPTextModelWithProjection, prior_tokenizer: CLIPTokenizer, prior_scheduler: UnCLIPScheduler, prior_image_processor: CLIPImageProcessorPil)

المصدر

المعاملات:

scheduler (DDIMScheduler | DDPMScheduler) : مُجدوِل يُستخدم بالاقتران مع unet لتوليد كامنات الصور.

unet (UNet2DConditionModel) : بنية U-Net الشرطية لفك تشويش تضمين الصورة.

movq (VQModel) : مُفكِّك MoVQ لتوليد الصورة من الكمّات الكامنة.

prior_prior (PriorTransformer) : النموذج المسبق القياسي لـ unCLIP لتقريب تضمين الصورة من تضمين النص.

prior_image_encoder (CLIPVisionModelWithProjection) : مُشفِّر صور مجمَّد.

prior_text_encoder (CLIPTextModelWithProjection) : مُشفِّر نص ثابت.

prior_tokenizer (CLIPTokenizer) : مُقسِّم من الفئة CLIPTokenizer.

prior_scheduler (UnCLIPScheduler) : مُجدول يُستخدم بالاقتران مع prior لتوليد تضمين الصورة.

prior_image_processor (CLIPImageProcessor) : image_processor يُستخدم لمعالجة الصور الأولية من clip.

خط أنابيب مجمّع لتوليد الصور من النص باستخدام Kandinsky

يرث هذا النموذج من DiffusionPipeline. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع خطوط الأنابيب (مثل التنزيل أو الحفظ، أو التشغيل على جهاز معين، وما إلى ذلك).

call[[diffusers.KandinskyV22CombinedPipeline.call]]

__call__(prompt: str | list[str], negative_prompt: str | list[str] | None = None, num_inference_steps: int = 100, guidance_scale: float = 4.0, num_images_per_prompt: int = 1, height: int = 512, width: int = 512, prior_guidance_scale: float = 4.0, prior_num_inference_steps: int = 25, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, output_type: str | None = 'pil', callback: typing.Optional[typing.Callable[[int, int, torch.Tensor], NoneType]] = None, callback_steps: int = 1, return_dict: bool = True, prior_callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = None, prior_callback_on_step_end_tensor_inputs: list[str] = ['latents'], callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = None, callback_on_step_end_tensor_inputs: list[str] = ['latents'])

المصدر

المعاملات:

prompt (str أو list[str]) : الأمر أو الأوامر التي تُوجّه توليد الصورة.

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

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

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

height (int، اختياري، القيمة الافتراضية 512) : ارتفاع الصورة المولّدة بالبكسل.

width (int، اختياري، القيمة الافتراضية 512) : عرض الصورة المولدة بالبكسل.

prior_guidance_scale (float، اختياري، القيمة الافتراضية 4.0) : مقياس التوجيه كما هو مُعرَّف في Classifier-Free Diffusion Guidance. يُعرَّف guidance_scale على أنه w من المعادلة 2. في Imagen Paper. يتم تفعيل مقياس التوجيه عن طريق تعيين guidance_scale > 1. يشجع مقياس التوجيه الأعلى على توليد صور مرتبطة ارتباطًا وثيقًا بنص prompt، وعادةً على حساب انخفاض جودة الصورة.

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

guidance_scale (float، اختياري، القيمة الافتراضية 4.0) : مقياس التوجيه كما هو مُعرَّف في Classifier-Free Diffusion Guidance. يُعرَّف guidance_scale على أنه w من المعادلة 2. في Imagen Paper. يتم تفعيل مقياس التوجيه عن طريق تعيين guidance_scale > 1. يشجع مقياس التوجيه الأعلى على توليد صور مرتبطة ارتباطًا وثيقًا بنص prompt، وعادةً على حساب انخفاض جودة الصورة.

generator (torch.Generator أو list[torch.Generator]، اختياري) : مولّد واحد أو قائمة من مولّدات torch لجعل التوليد حتميًا.

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

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

callback (Callable، اختياري) : دالة تُستدعى كل callback_steps خطوات أثناء الاستدلال. تُستدعى الدالة بالحجج التالية: callback(step: int, timestep: int, latents: torch.Tensor).

callback_steps (int، اختياري، القيمة الافتراضية 1) : التكرار الذي تُستدعى فيه دالة callback. إذا لم يُحدد، تُستدعى الدالة في كل خطوة.

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

prior_callback_on_step_end (Callable، اختياري) : دالة تُستدعى في نهاية كل خطوة إزالة ضوضاء أثناء استنتاج خط أنابيب المسبق. تُستدعى الدالة بالحجج التالية: prior_callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict).

prior_callback_on_step_end_tensor_inputs (list، اختياري) : قائمة مدخلات المصفوفات (tensors) لدالة prior_callback_on_step_end. سيتم تمرير المصفوفات المحددة في القائمة كحجة callback_kwargs. لن تتمكن من تضمين متغيرات غير مدرجة في خاصية ._callback_tensor_inputs لفئة خط أنابيب المسبق (prior pipeline) الخاص بك.

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

يعيد: ImagePipelineOutput أو tuple

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

أمثلة:

from diffusers import AutoPipelineForText2Image
import torch

pipe = AutoPipelineForText2Image.from_pretrained(
    "kandinsky-community/kandinsky-2-2-decoder", torch_dtype=torch.float16
)
pipe.enable_model_cpu_offload()

prompt = "A lion in galaxies, spirals, nebulae, stars, smoke, iridescent, intricate detail, octane render, 8k"

image = pipe(prompt=prompt, num_inference_steps=25).images[0]

enable_sequential_cpu_offload[[diffusers.KandinskyV22CombinedPipeline.enable_sequential_cpu_offload]]

enable_sequential_cpu_offload(gpu_id: int | None = None, device: typing.Union[torch.device, str] = None)

المصدر

Offloads all models to CPU using accelerate, significantly reducing memory usage. When called, unet, text_encoder, vae and safety checker have their state dicts saved to CPU and then are moved to a torch.device('meta') and loaded to GPU only when their specific submodule has its forwardmethod called. Note that offloading happens on a submodule basis. Memory savings are higher than withenable_model_cpu_offload`, but performance is lower.

KandinskyV22ControlnetPipeline[[diffusers.KandinskyV22ControlnetPipeline]]

diffusers.KandinskyV22ControlnetPipeline[[diffusers.KandinskyV22ControlnetPipeline]]

diffusers.KandinskyV22ControlnetPipeline(unet: UNet2DConditionModel, scheduler: DDPMScheduler, movq: VQModel)

المصدر

المعاملات:

scheduler (DDIMScheduler) : مُجدول يُستخدم بالاقتران مع unet لتوليد كامنات الصور.

unet (UNet2DConditionModel) : بنية U-Net الشرطية لفك تشويش تضمين الصورة.

movq (VQModel) : مُفكِّك MoVQ لتوليد الصورة من الكمّات الكامنة.

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

يرث هذا النموذج من DiffusionPipeline. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع خطوط الأنابيب (مثل التنزيل أو الحفظ، أو التشغيل على جهاز معين، وما إلى ذلك).

call[[diffusers.KandinskyV22ControlnetPipeline.call]]

__call__(image_embeds: typing.Union[torch.Tensor, list[torch.Tensor]], negative_image_embeds: typing.Union[torch.Tensor, list[torch.Tensor]], hint: Tensor, height: int = 512, width: int = 512, num_inference_steps: int = 100, guidance_scale: float = 4.0, num_images_per_prompt: int = 1, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, output_type: str | None = 'pil', callback: typing.Optional[typing.Callable[[int, int, torch.Tensor], NoneType]] = None, callback_steps: int = 1, return_dict: bool = True)

المصدر

المعاملات:

hint (torch.Tensor) : شرط التحكم في controlnet.

image_embeds (torch.Tensor أو list[torch.Tensor]) : تمثيلات الصور المقطعية (embeddings) الخاصة بنص الأمر، والتي ستُستخدم لتوجيه توليد الصورة.

negative_image_embeds (torch.Tensor أو list[torch.Tensor]) : تمثيلات الصور المقطعية (embeddings) الخاصة بـ prompt النصي السلبي، وسيتم استخدامها لتوجيه توليد الصورة.

height (int، اختياري، القيمة الافتراضية 512) : ارتفاع الصورة المولّدة بالبكسل.

width (int، اختياري، القيمة الافتراضية 512) : عرض الصورة المولدة بالبكسل.

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

guidance_scale (float، اختياري، القيمة الافتراضية 4.0) : مقياس التوجيه كما هو مُعرَّف في Classifier-Free Diffusion Guidance. يُعرَّف guidance_scale على أنه w من المعادلة 2. في Imagen Paper. يتم تفعيل مقياس التوجيه عن طريق تعيين guidance_scale > 1. يشجع مقياس التوجيه الأعلى على توليد صور مرتبطة ارتباطًا وثيقًا بنص prompt، وعادةً على حساب انخفاض جودة الصورة.

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

generator (torch.Generator أو list[torch.Generator]، اختياري) : مولّد واحد أو قائمة من مولّدات torch لجعل التوليد حتميًا.

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

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

callback (Callable، اختياري) : دالة تُستدعى كل callback_steps خطوات أثناء الاستدلال. تُستدعى الدالة بالحجج التالية: callback(step: int, timestep: int, latents: torch.Tensor).

callback_steps (int، اختياري، القيمة الافتراضية 1) : التكرار الذي تُستدعى فيه دالة callback. إذا لم يُحدد، تُستدعى الدالة في كل خطوة.

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

يعيد: ImagePipelineOutput أو tuple

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

أمثلة:

KandinskyV22PriorEmb2EmbPipeline[[diffusers.KandinskyV22PriorEmb2EmbPipeline]]

diffusers.KandinskyV22PriorEmb2EmbPipeline[[diffusers.KandinskyV22PriorEmb2EmbPipeline]]

diffusers.KandinskyV22PriorEmb2EmbPipeline(prior: PriorTransformer, image_encoder: CLIPVisionModelWithProjection, text_encoder: CLIPTextModelWithProjection, tokenizer: CLIPTokenizer, scheduler: UnCLIPScheduler, image_processor: CLIPImageProcessorPil)

المصدر

المعاملات:

prior (PriorTransformer) : النموذج المسبق القياسي لـ unCLIP لتقريب تضمين الصورة من تضمين النص.

image_encoder (CLIPVisionModelWithProjection) : مُشفِّر صور مجمَّد.

text_encoder (CLIPTextModelWithProjection) : مُشفِّر نص ثابت.

tokenizer (CLIPTokenizer) : مُقسِّم من الفئة CLIPTokenizer.

scheduler (UnCLIPScheduler) : مُجدول يُستخدم بالاقتران مع prior لتوليد تضمين الصورة.

خط أنابيب لتوليد المسبق (prior) للصور في Kandinsky

يرث هذا النموذج من DiffusionPipeline. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع خطوط الأنابيب (مثل التنزيل أو الحفظ، أو التشغيل على جهاز معين، وما إلى ذلك).

call[[diffusers.KandinskyV22PriorEmb2EmbPipeline.call]]

__call__(prompt: str | list[str], image: typing.Union[torch.Tensor, list[torch.Tensor], PIL.Image.Image, list[PIL.Image.Image]], strength: float = 0.3, negative_prompt: str | list[str] | None = None, num_images_per_prompt: int = 1, num_inference_steps: int = 25, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, guidance_scale: float = 4.0, output_type: str | None = 'pt', return_dict: bool = True)

المصدر

المعاملات:

prompt (str أو list[str]) : الأمر أو الأوامر التي تُوجّه توليد الصورة.

image (torch.Tensor، PIL.Image.Image، list[torch.Tensor] أو list[PIL.Image.Image]) : Image، أو tensor يمثل دفعة من الصور، وسيُستخدم كنقطة انطلاق لتضمين الصورة. يمكن أيضًا قبول كامنات الصور كـ image، فإذا تم تمرير الكامنات مباشرةً، فلن يتم ترميزها مرة أخرى.

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

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

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

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

generator (torch.Generator أو list[torch.Generator]، اختياري) : مولّد واحد أو قائمة من مولّدات torch لجعل التوليد حتميًا.

guidance_scale (float، اختياري، القيمة الافتراضية 4.0) : مقياس التوجيه كما هو مُعرَّف في Classifier-Free Diffusion Guidance. يُعرَّف guidance_scale على أنه w من المعادلة 2. في Imagen Paper. يتم تفعيل مقياس التوجيه عن طريق تعيين guidance_scale > 1. يشجع مقياس التوجيه الأعلى على توليد صور مرتبطة ارتباطًا وثيقًا بنص prompt، وعادةً على حساب انخفاض جودة الصورة.

output_type (str، اختياري، القيمة الافتراضية "pt") : صيغة مخرجات توليد الصورة. اختر بين: "np" (np.array) أو "pt" (torch.Tensor).

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

يعيد: KandinskyPriorPipelineOutput أو tuple

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

أمثلة:

>>> from diffusers import KandinskyV22Pipeline, KandinskyV22PriorEmb2EmbPipeline
>>> import torch

>>> pipe_prior = KandinskyPriorPipeline.from_pretrained(
...     "kandinsky-community/kandinsky-2-2-prior", torch_dtype=torch.float16
... )
>>> pipe_prior.to("cuda")

>>> prompt = "red cat, 4k photo"
>>> img = load_image(
...     "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/kandinsky/cat.png"
... )
>>> image_emb, nagative_image_emb = pipe_prior(prompt, image=img, strength=0.2).to_tuple()

>>> pipe = KandinskyPipeline.from_pretrained(
...     "kandinsky-community/kandinsky-2-2-decoder, torch_dtype=torch.float16"
... )
>>> pipe.to("cuda")

>>> image = pipe(
...     image_embeds=image_emb,
...     negative_image_embeds=negative_image_emb,
...     height=768,
...     width=768,
...     num_inference_steps=100,
... ).images

>>> image[0].save("cat.png")

interpolate[[diffusers.KandinskyV22PriorEmb2EmbPipeline.interpolate]]

interpolate(images_and_prompts: list[typing.Union[str, PIL.Image.Image, torch.Tensor]], weights: list[float], num_images_per_prompt: int = 1, num_inference_steps: int = 25, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, negative_prior_prompt: str | None = None, negative_prompt: str = '', guidance_scale: float = 4.0, device = None)

المصدر

المعاملات:

images_and_prompts (list[str | PIL.Image.Image | torch.Tensor]) : قائمة بالأوامر النصية والصور لتوجيه توليد الصورة.

weights : (list[float]): قائمة بالأوزان لكل حالة في images_and_prompts

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

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

generator (torch.Generator أو list[torch.Generator]، اختياري) : مولّد واحد أو قائمة من مولّدات torch لجعل التوليد حتميًا.

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

negative_prior_prompt (str, اختياري) : الأمر الذي لا يوجّه عملية الانتشار السابقة. يتم تجاهله عند عدم استخدام التوجيه (أي يتم تجاهله إذا كان guidance_scale أقل من 1).

negative_prompt (str أو list[str]، اختياري) : الموجه الذي لا يوجّه توليد الصورة. يتم تجاهله عند عدم استخدام التوجيه (أي يتم تجاهله إذا كان guidance_scale أقل من 1).

guidance_scale (float، اختياري، القيمة الافتراضية 4.0) : مقياس التوجيه كما هو مُعرَّف في Classifier-Free Diffusion Guidance. يُعرَّف guidance_scale على أنه w من المعادلة 2. في Imagen Paper. يتم تفعيل مقياس التوجيه عن طريق تعيين guidance_scale > 1. يشجع مقياس التوجيه الأعلى على توليد صور مرتبطة ارتباطًا وثيقًا بنص prompt، وعادةً على حساب انخفاض جودة الصورة.

يعيد: KandinskyPriorPipelineOutput أو tuple

الدالة التي يتم استدعاؤها عند استخدام خط الأنابيب السابق للاستيفاء.

أمثلة:

>>> from diffusers import KandinskyV22PriorEmb2EmbPipeline, KandinskyV22Pipeline
>>> from diffusers.utils import load_image
>>> import PIL

>>> import torch
>>> from torchvision import transforms

>>> pipe_prior = KandinskyV22PriorPipeline.from_pretrained(
...     "kandinsky-community/kandinsky-2-2-prior", torch_dtype=torch.float16
... )
>>> pipe_prior.to("cuda")

>>> img1 = load_image(
...     "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/kandinsky/cat.png"
... )

>>> img2 = load_image(
...     "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main"
...     "/kandinsky/starry_night.jpeg"
... )

>>> images_texts = ["a cat", img1, img2]
>>> weights = [0.3, 0.3, 0.4]
>>> image_emb, zero_image_emb = pipe_prior.interpolate(images_texts, weights)

>>> pipe = KandinskyV22Pipeline.from_pretrained(
...     "kandinsky-community/kandinsky-2-2-decoder", torch_dtype=torch.float16
... )
>>> pipe.to("cuda")

>>> image = pipe(
...     image_embeds=image_emb,
...     negative_image_embeds=zero_image_emb,
...     height=768,
...     width=768,
...     num_inference_steps=150,
... ).images[0]

>>> image.save("starry_cat.png")

KandinskyV22Img2ImgPipeline[[diffusers.KandinskyV22Img2ImgPipeline]]

diffusers.KandinskyV22Img2ImgPipeline[[diffusers.KandinskyV22Img2ImgPipeline]]

diffusers.KandinskyV22Img2ImgPipeline(unet: UNet2DConditionModel, scheduler: DDPMScheduler, movq: VQModel)

المصدر

المعاملات:

scheduler (DDIMScheduler) : مُجدول يُستخدم بالاقتران مع unet لتوليد كامنات الصور.

unet (UNet2DConditionModel) : بنية U-Net الشرطية لفك تشويش تضمين الصورة.

movq (VQModel) : مُفكِّك MoVQ لتوليد الصورة من الكمّات الكامنة.

خط أنابيب لتوليد الصور من صورة باستخدام Kandinsky

يرث هذا النموذج من DiffusionPipeline. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع خطوط الأنابيب (مثل التنزيل أو الحفظ، أو التشغيل على جهاز معين، وما إلى ذلك).

call[[diffusers.KandinskyV22Img2ImgPipeline.call]]

__call__(image_embeds: typing.Union[torch.Tensor, list[torch.Tensor]], image: typing.Union[torch.Tensor, list[torch.Tensor], PIL.Image.Image, list[PIL.Image.Image]], negative_image_embeds: typing.Union[torch.Tensor, list[torch.Tensor]], height: int = 512, width: int = 512, num_inference_steps: int = 100, guidance_scale: float = 4.0, strength: float = 0.3, num_images_per_prompt: int = 1, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, output_type: str | None = 'pil', return_dict: bool = True, callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = None, callback_on_step_end_tensor_inputs: list[str] = ['latents'], **kwargs)

المصدر

المعاملات:

image_embeds (torch.Tensor أو list[torch.Tensor]) : تمثيلات الصور المقطعية (embeddings) الخاصة بنص الأمر، والتي ستُستخدم لتوجيه توليد الصورة.

image (torch.Tensor، PIL.Image.Image، np.ndarray، list[torch.Tensor]، list[PIL.Image.Image]، أو list[np.ndarray]) : Image، أو tensor يمثل دفعة من الصور، وسيُستخدم كنقطة انطلاق للعملية. يمكن أيضًا قبول كامنات الصور (image latents) كـ image، فإذا تم تمرير الكامنات مباشرةً، فلن يتم ترميزها مرة أخرى.

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

negative_image_embeds (torch.Tensor أو list[torch.Tensor]) : تمثيلات الصور المقطعية (embeddings) الخاصة بـ prompt النصي السلبي، وسيتم استخدامها لتوجيه توليد الصورة.

height (int، اختياري، القيمة الافتراضية 512) : ارتفاع الصورة المولّدة بالبكسل.

width (int، اختياري، القيمة الافتراضية 512) : عرض الصورة المولدة بالبكسل.

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

guidance_scale (float، اختياري، القيمة الافتراضية 4.0) : مقياس التوجيه كما هو مُعرَّف في Classifier-Free Diffusion Guidance. يُعرَّف guidance_scale على أنه w من المعادلة 2. في Imagen Paper. يتم تفعيل مقياس التوجيه عن طريق تعيين guidance_scale > 1. يشجع مقياس التوجيه الأعلى على توليد صور مرتبطة ارتباطًا وثيقًا بنص prompt، وعادةً على حساب انخفاض جودة الصورة.

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

generator (torch.Generator أو list[torch.Generator]، اختياري) : مولّد واحد أو قائمة من مولّدات torch لجعل التوليد حتميًا.

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

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

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

يعيد: ImagePipelineOutput أو tuple

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

أمثلة:

KandinskyV22Img2ImgCombinedPipeline[[diffusers.KandinskyV22Img2ImgCombinedPipeline]]

diffusers.KandinskyV22Img2ImgCombinedPipeline[[diffusers.KandinskyV22Img2ImgCombinedPipeline]]

diffusers.KandinskyV22Img2ImgCombinedPipeline(unet: UNet2DConditionModel, scheduler: DDPMScheduler, movq: VQModel, prior_prior: PriorTransformer, prior_image_encoder: CLIPVisionModelWithProjection, prior_text_encoder: CLIPTextModelWithProjection, prior_tokenizer: CLIPTokenizer, prior_scheduler: UnCLIPScheduler, prior_image_processor: CLIPImageProcessorPil)

المصدر

المعاملات:

scheduler (DDIMScheduler | DDPMScheduler) : مُجدوِل يُستخدم بالاقتران مع unet لتوليد كامنات الصور.

unet (UNet2DConditionModel) : بنية U-Net الشرطية لفك تشويش تضمين الصورة.

movq (VQModel) : مُفكِّك MoVQ لتوليد الصورة من الكمّات الكامنة.

prior_prior (PriorTransformer) : النموذج المسبق القياسي لـ unCLIP لتقريب تضمين الصورة من تضمين النص.

prior_image_encoder (CLIPVisionModelWithProjection) : مُشفِّر صور مجمَّد.

prior_text_encoder (CLIPTextModelWithProjection) : مُشفِّر نص ثابت.

prior_tokenizer (CLIPTokenizer) : مُقسِّم من الفئة CLIPTokenizer.

prior_scheduler (UnCLIPScheduler) : مُجدول يُستخدم بالاقتران مع prior لتوليد تضمين الصورة.

prior_image_processor (CLIPImageProcessor) : image_processor يُستخدم لمعالجة الصور الأولية من clip.

خط أنابيب مجمّع لتوليد صورة من صورة باستخدام Kandinsky

يرث هذا النموذج من DiffusionPipeline. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع خطوط الأنابيب (مثل التنزيل أو الحفظ، أو التشغيل على جهاز معين، وما إلى ذلك).

call[[diffusers.KandinskyV22Img2ImgCombinedPipeline.call]]

__call__(prompt: str | list[str], image: typing.Union[torch.Tensor, list[torch.Tensor], PIL.Image.Image, list[PIL.Image.Image]], negative_prompt: str | list[str] | None = None, num_inference_steps: int = 100, guidance_scale: float = 4.0, strength: float = 0.3, num_images_per_prompt: int = 1, height: int = 512, width: int = 512, prior_guidance_scale: float = 4.0, prior_num_inference_steps: int = 25, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, output_type: str | None = 'pil', callback: typing.Optional[typing.Callable[[int, int, torch.Tensor], NoneType]] = None, callback_steps: int = 1, return_dict: bool = True, prior_callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = None, prior_callback_on_step_end_tensor_inputs: list[str] = ['latents'], callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = None, callback_on_step_end_tensor_inputs: list[str] = ['latents'])

المصدر

المعاملات:

prompt (str أو list[str]) : الأمر أو الأوامر التي تُوجّه توليد الصورة.

image (torch.Tensor، PIL.Image.Image، np.ndarray، list[torch.Tensor]، list[PIL.Image.Image]، أو list[np.ndarray]) : Image، أو tensor يمثل دفعة من الصور، وسيُستخدم كنقطة انطلاق للعملية. يمكن أيضًا قبول كامنات الصور (image latents) كـ image، فإذا تم تمرير الكامنات مباشرةً، فلن يتم ترميزها مرة أخرى.

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

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

guidance_scale (float، اختياري، القيمة الافتراضية 4.0) : مقياس التوجيه كما هو مُعرَّف في Classifier-Free Diffusion Guidance. يُعرَّف guidance_scale على أنه w من المعادلة 2. في Imagen Paper. يتم تفعيل مقياس التوجيه عن طريق تعيين guidance_scale > 1. يشجع مقياس التوجيه الأعلى على توليد صور مرتبطة ارتباطًا وثيقًا بنص prompt، وعادةً على حساب انخفاض جودة الصورة.

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

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

height (int، اختياري، القيمة الافتراضية 512) : ارتفاع الصورة المولّدة بالبكسل.

width (int، اختياري، القيمة الافتراضية 512) : عرض الصورة المولدة بالبكسل.

prior_guidance_scale (float، اختياري، القيمة الافتراضية 4.0) : مقياس التوجيه كما هو مُعرَّف في Classifier-Free Diffusion Guidance. يُعرَّف guidance_scale على أنه w من المعادلة 2. في Imagen Paper. يتم تفعيل مقياس التوجيه عن طريق تعيين guidance_scale > 1. يشجع مقياس التوجيه الأعلى على توليد صور مرتبطة ارتباطًا وثيقًا بنص prompt، وعادةً على حساب انخفاض جودة الصورة.

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

generator (torch.Generator أو list[torch.Generator]، اختياري) : مولّد واحد أو قائمة من مولّدات torch لجعل التوليد حتميًا.

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

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

callback (Callable، اختياري) : دالة تُستدعى كل callback_steps خطوات أثناء الاستدلال. تُستدعى الدالة بالحجج التالية: callback(step: int, timestep: int, latents: torch.Tensor).

callback_steps (int، اختياري، القيمة الافتراضية 1) : التكرار الذي تُستدعى فيه دالة callback. إذا لم يُحدد، تُستدعى الدالة في كل خطوة.

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

prior_callback_on_step_end (Callable، اختياري) : دالة تُستدعى في نهاية كل خطوة إزالة ضوضاء أثناء استنتاج خط أنابيب المسبق. تُستدعى الدالة بالحجج التالية: prior_callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict).

prior_callback_on_step_end_tensor_inputs (list، اختياري) : قائمة مدخلات المصفوفات (tensors) لدالة prior_callback_on_step_end. سيتم تمرير المصفوفات المحددة في القائمة كحجة callback_kwargs. لن تتمكن من تضمين متغيرات غير مدرجة في خاصية ._callback_tensor_inputs لفئة خط أنابيب المسبق (prior pipeline) الخاص بك.

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

يعيد: ImagePipelineOutput أو tuple

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

أمثلة:

from diffusers import AutoPipelineForImage2Image
import torch
import requests
from io import BytesIO
from PIL import Image
import os

pipe = AutoPipelineForImage2Image.from_pretrained(
    "kandinsky-community/kandinsky-2-2-decoder", torch_dtype=torch.float16
)
pipe.enable_model_cpu_offload()

prompt = "A fantasy landscape, Cinematic lighting"
negative_prompt = "low quality, bad quality"

url = "https://raw.githubusercontent.com/CompVis/stable-diffusion/main/assets/stable-samples/img2img/sketch-mountains-input.jpg"

response = requests.get(url)
image = Image.open(BytesIO(response.content)).convert("RGB")
image.thumbnail((768, 768))

image = pipe(prompt=prompt, image=original_image, num_inference_steps=25).images[0]

enable_model_cpu_offload[[diffusers.KandinskyV22Img2ImgCombinedPipeline.enable_model_cpu_offload]]

enable_model_cpu_offload(gpu_id: int | None = None, device: typing.Union[torch.device, str] = None)

المصدر

ينقل جميع النماذج إلى وحدة المعالجة المركزية (CPU) باستخدام accelerate، مما يقلل من استهلاك الذاكرة مع تأثير ضئيل على الأداء. مقارنةً بـ enable_sequential_cpu_offload، تنقل هذه الطريقة نموذجًا كاملًا واحدًا في كل مرة إلى وحدة معالجة الرسوميات (GPU) عند استدعاء طريقة forward الخاصة به، ويبقى النموذج في وحدة معالجة الرسوميات حتى تشغيل النموذج التالي. تكون وفورات الذاكرة أقل مما هي عليه مع enable_sequential_cpu_offload، لكن الأداء يكون أفضل بكثير بسبب التنفيذ التكراري لـ unet.

enable_sequential_cpu_offload[[diffusers.KandinskyV22Img2ImgCombinedPipeline.enable_sequential_cpu_offload]]

enable_sequential_cpu_offload(gpu_id: int | None = None, device: typing.Union[torch.device, str] = None)

المصدر

Offloads all models to CPU using accelerate, significantly reducing memory usage. When called, unet, text_encoder, vae and safety checker have their state dicts saved to CPU and then are moved to a torch.device('meta') and loaded to GPU only when their specific submodule has its forwardmethod called. Note that offloading happens on a submodule basis. Memory savings are higher than withenable_model_cpu_offload`, but performance is lower.

KandinskyV22ControlnetImg2ImgPipeline[[diffusers.KandinskyV22ControlnetImg2ImgPipeline]]

diffusers.KandinskyV22ControlnetImg2ImgPipeline[[diffusers.KandinskyV22ControlnetImg2ImgPipeline]]

diffusers.KandinskyV22ControlnetImg2ImgPipeline(unet: UNet2DConditionModel, scheduler: DDPMScheduler, movq: VQModel)

المصدر

المعاملات:

scheduler (DDIMScheduler) : مُجدول يُستخدم بالاقتران مع unet لتوليد كامنات الصور.

unet (UNet2DConditionModel) : بنية U-Net الشرطية لفك تشويش تضمين الصورة.

movq (VQModel) : مُفكِّك MoVQ لتوليد الصورة من الكمّات الكامنة.

خط أنابيب لتوليد الصور من صورة باستخدام Kandinsky

يرث هذا النموذج من DiffusionPipeline. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع خطوط الأنابيب (مثل التنزيل أو الحفظ، أو التشغيل على جهاز معين، وما إلى ذلك).

call[[diffusers.KandinskyV22ControlnetImg2ImgPipeline.call]]

__call__(image_embeds: typing.Union[torch.Tensor, list[torch.Tensor]], image: typing.Union[torch.Tensor, list[torch.Tensor], PIL.Image.Image, list[PIL.Image.Image]], negative_image_embeds: typing.Union[torch.Tensor, list[torch.Tensor]], hint: Tensor, height: int = 512, width: int = 512, num_inference_steps: int = 100, guidance_scale: float = 4.0, strength: float = 0.3, num_images_per_prompt: int = 1, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, output_type: str | None = 'pil', callback: typing.Optional[typing.Callable[[int, int, torch.Tensor], NoneType]] = None, callback_steps: int = 1, return_dict: bool = True)

المصدر

المعاملات:

image_embeds (torch.Tensor أو list[torch.Tensor]) : تمثيلات الصور المقطعية (embeddings) الخاصة بنص الأمر، والتي ستُستخدم لتوجيه توليد الصورة.

image (torch.Tensor، PIL.Image.Image، np.ndarray، list[torch.Tensor]، list[PIL.Image.Image]، أو list[np.ndarray]) : Image، أو tensor يمثل دفعة من الصور، وسيُستخدم كنقطة انطلاق للعملية. يمكن أيضًا قبول كامنات الصور (image latents) كـ image، فإذا تم تمرير الكامنات مباشرةً، فلن يتم ترميزها مرة أخرى.

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

hint (torch.Tensor) : شرط التحكم في controlnet.

negative_image_embeds (torch.Tensor أو list[torch.Tensor]) : تمثيلات الصور المقطعية (embeddings) الخاصة بـ prompt النصي السلبي، وسيتم استخدامها لتوجيه توليد الصورة.

height (int، اختياري، القيمة الافتراضية 512) : ارتفاع الصورة المولّدة بالبكسل.

width (int، اختياري، القيمة الافتراضية 512) : عرض الصورة المولدة بالبكسل.

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

guidance_scale (float، اختياري، القيمة الافتراضية 4.0) : مقياس التوجيه كما هو مُعرَّف في Classifier-Free Diffusion Guidance. يُعرَّف guidance_scale على أنه w من المعادلة 2. في Imagen Paper. يتم تفعيل مقياس التوجيه عن طريق تعيين guidance_scale > 1. يشجع مقياس التوجيه الأعلى على توليد صور مرتبطة ارتباطًا وثيقًا بنص prompt، وعادةً على حساب انخفاض جودة الصورة.

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

generator (torch.Generator أو list[torch.Generator]، اختياري) : مولّد واحد أو قائمة من مولّدات torch لجعل التوليد حتميًا.

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

callback (Callable، اختياري) : دالة تُستدعى كل callback_steps خطوات أثناء الاستدلال. تُستدعى الدالة بالحجج التالية: callback(step: int, timestep: int, latents: torch.Tensor).

callback_steps (int، اختياري، القيمة الافتراضية 1) : التكرار الذي تُستدعى فيه دالة callback. إذا لم يُحدد، تُستدعى الدالة في كل خطوة.

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

يعيد: ImagePipelineOutput أو tuple

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

أمثلة:

KandinskyV22InpaintPipeline[[diffusers.KandinskyV22InpaintPipeline]]

diffusers.KandinskyV22InpaintPipeline[[diffusers.KandinskyV22InpaintPipeline]]

diffusers.KandinskyV22InpaintPipeline(unet: UNet2DConditionModel, scheduler: DDPMScheduler, movq: VQModel)

المصدر

المعاملات:

scheduler (DDIMScheduler) : مُجدول يُستخدم بالاقتران مع unet لتوليد كامنات الصور.

unet (UNet2DConditionModel) : بنية U-Net الشرطية لفك تشويش تضمين الصورة.

movq (VQModel) : مُفكِّك MoVQ لتوليد الصورة من الكمّات الكامنة.

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

يرث هذا النموذج من DiffusionPipeline. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع خطوط الأنابيب (مثل التنزيل أو الحفظ، أو التشغيل على جهاز معين، وما إلى ذلك).

call[[diffusers.KandinskyV22InpaintPipeline.call]]

__call__(image_embeds: typing.Union[torch.Tensor, list[torch.Tensor]], image: typing.Union[torch.Tensor, PIL.Image.Image], mask_image: typing.Union[PIL.Image.Image, torch.Tensor, numpy.ndarray], negative_image_embeds: typing.Union[torch.Tensor, list[torch.Tensor]], height: int = 512, width: int = 512, num_inference_steps: int = 100, guidance_scale: float = 4.0, num_images_per_prompt: int = 1, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, output_type: str | None = 'pil', return_dict: bool = True, callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = None, callback_on_step_end_tensor_inputs: list[str] = ['latents'], **kwargs)

المصدر

المعاملات:

image_embeds (torch.Tensor أو list[torch.Tensor]) : تمثيلات الصور المقطعية (embeddings) الخاصة بنص الأمر، والتي ستُستخدم لتوجيه توليد الصورة.

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

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

negative_image_embeds (torch.Tensor أو list[torch.Tensor]) : تمثيلات الصور المقطعية (embeddings) الخاصة بـ prompt النصي السلبي، وسيتم استخدامها لتوجيه توليد الصورة.

height (int، اختياري، القيمة الافتراضية 512) : ارتفاع الصورة المولّدة بالبكسل.

width (int، اختياري، القيمة الافتراضية 512) : عرض الصورة المولدة بالبكسل.

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

guidance_scale (float، اختياري، القيمة الافتراضية 4.0) : مقياس التوجيه كما هو مُعرَّف في Classifier-Free Diffusion Guidance. يُعرَّف guidance_scale على أنه w من المعادلة 2. في Imagen Paper. يتم تفعيل مقياس التوجيه عن طريق تعيين guidance_scale > 1. يشجع مقياس التوجيه الأعلى على توليد صور مرتبطة ارتباطًا وثيقًا بنص prompt، وعادةً على حساب انخفاض جودة الصورة.

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

generator (torch.Generator أو list[torch.Generator]، اختياري) : مولّد واحد أو قائمة من مولّدات torch لجعل التوليد حتميًا.

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

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

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

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

يعيد: ImagePipelineOutput أو tuple

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

أمثلة:

KandinskyV22InpaintCombinedPipeline[[diffusers.KandinskyV22InpaintCombinedPipeline]]

diffusers.KandinskyV22InpaintCombinedPipeline[[diffusers.KandinskyV22InpaintCombinedPipeline]]

diffusers.KandinskyV22InpaintCombinedPipeline(unet: UNet2DConditionModel, scheduler: DDPMScheduler, movq: VQModel, prior_prior: PriorTransformer, prior_image_encoder: CLIPVisionModelWithProjection, prior_text_encoder: CLIPTextModelWithProjection, prior_tokenizer: CLIPTokenizer, prior_scheduler: UnCLIPScheduler, prior_image_processor: CLIPImageProcessorPil)

المصدر

المعاملات:

scheduler (DDIMScheduler | DDPMScheduler) : مُجدوِل يُستخدم بالاقتران مع unet لتوليد كامنات الصور.

unet (UNet2DConditionModel) : بنية U-Net الشرطية لفك تشويش تضمين الصورة.

movq (VQModel) : مُفكِّك MoVQ لتوليد الصورة من الكمّات الكامنة.

prior_prior (PriorTransformer) : النموذج المسبق القياسي لـ unCLIP لتقريب تضمين الصورة من تضمين النص.

prior_image_encoder (CLIPVisionModelWithProjection) : مُشفِّر صور مجمَّد.

prior_text_encoder (CLIPTextModelWithProjection) : مُشفِّر نص ثابت.

prior_tokenizer (CLIPTokenizer) : مُقسِّم من الفئة CLIPTokenizer.

prior_scheduler (UnCLIPScheduler) : مُجدول يُستخدم بالاقتران مع prior لتوليد تضمين الصورة.

prior_image_processor (CLIPImageProcessor) : image_processor يُستخدم لمعالجة الصور الأولية من clip.

خط أنابيب مجمّع لتوليد إعادة الرسم باستخدام Kandinsky

يرث هذا النموذج من DiffusionPipeline. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع خطوط الأنابيب (مثل التنزيل أو الحفظ، أو التشغيل على جهاز معين، وما إلى ذلك).

call[[diffusers.KandinskyV22InpaintCombinedPipeline.call]]

__call__(prompt: str | list[str], image: typing.Union[torch.Tensor, list[torch.Tensor], PIL.Image.Image, list[PIL.Image.Image]], mask_image: typing.Union[torch.Tensor, list[torch.Tensor], PIL.Image.Image, list[PIL.Image.Image]], negative_prompt: str | list[str] | None = None, num_inference_steps: int = 100, guidance_scale: float = 4.0, num_images_per_prompt: int = 1, height: int = 512, width: int = 512, prior_guidance_scale: float = 4.0, prior_num_inference_steps: int = 25, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, output_type: str | None = 'pil', return_dict: bool = True, prior_callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = None, prior_callback_on_step_end_tensor_inputs: list[str] = ['latents'], callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = None, callback_on_step_end_tensor_inputs: list[str] = ['latents'], **kwargs)

المصدر

المعاملات:

prompt (str أو list[str]) : الأمر أو الأوامر التي تُوجّه توليد الصورة.

image (torch.Tensor، PIL.Image.Image، np.ndarray، list[torch.Tensor]، list[PIL.Image.Image]، أو list[np.ndarray]) : Image، أو tensor يمثل دفعة من الصور، وسيُستخدم كنقطة انطلاق للعملية. يمكن أيضًا قبول كامنات الصور (image latents) كـ image، فإذا تم تمرير الكامنات مباشرةً، فلن يتم ترميزها مرة أخرى.

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

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

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

guidance_scale (float، اختياري، القيمة الافتراضية 4.0) : مقياس التوجيه كما هو مُعرَّف في Classifier-Free Diffusion Guidance. يُعرَّف guidance_scale على أنه w من المعادلة 2. في Imagen Paper. يتم تفعيل مقياس التوجيه عن طريق تعيين guidance_scale > 1. يشجع مقياس التوجيه الأعلى على توليد صور مرتبطة ارتباطًا وثيقًا بنص prompt، وعادةً على حساب انخفاض جودة الصورة.

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

height (int، اختياري، القيمة الافتراضية 512) : ارتفاع الصورة المولّدة بالبكسل.

width (int، اختياري، القيمة الافتراضية 512) : عرض الصورة المولدة بالبكسل.

prior_guidance_scale (float، اختياري، القيمة الافتراضية 4.0) : مقياس التوجيه كما هو مُعرَّف في Classifier-Free Diffusion Guidance. يُعرَّف guidance_scale على أنه w من المعادلة 2. في Imagen Paper. يتم تفعيل مقياس التوجيه عن طريق تعيين guidance_scale > 1. يشجع مقياس التوجيه الأعلى على توليد صور مرتبطة ارتباطًا وثيقًا بنص prompt، وعادةً على حساب انخفاض جودة الصورة.

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

generator (torch.Generator أو list[torch.Generator]، اختياري) : مولّد واحد أو قائمة من مولّدات torch لجعل التوليد حتميًا.

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

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

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

prior_callback_on_step_end (Callable، اختياري) : دالة تُستدعى في نهاية كل خطوة إزالة ضوضاء أثناء الاستدلال. تُستدعى الدالة بالحجج التالية: prior_callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict).

prior_callback_on_step_end_tensor_inputs (list، اختياري) : قائمة مدخلات المصفوفات (tensors) لدالة prior_callback_on_step_end. سيتم تمرير المصفوفات المحددة في القائمة كحجة callback_kwargs. لن تتمكن من تضمين متغيرات غير مدرجة في خاصية ._callback_tensor_inputs لفئة خط الأنابيب (pipeline) الخاص بك.

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

يعيد: ImagePipelineOutput أو tuple

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

أمثلة:

from diffusers import AutoPipelineForInpainting
from diffusers.utils import load_image
import torch
import numpy as np

pipe = AutoPipelineForInpainting.from_pretrained(
    "kandinsky-community/kandinsky-2-2-decoder-inpaint", torch_dtype=torch.float16
)
pipe.enable_model_cpu_offload()

prompt = "A fantasy landscape, Cinematic lighting"
negative_prompt = "low quality, bad quality"

original_image = load_image(
    "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/kandinsky/cat.png"
)

mask = np.zeros((768, 768), dtype=np.float32)
# Let's mask out an area above the cat's head
mask[:250, 250:-250] = 1

image = pipe(prompt=prompt, image=original_image, mask_image=mask, num_inference_steps=25).images[0]

enable_sequential_cpu_offload[[diffusers.KandinskyV22InpaintCombinedPipeline.enable_sequential_cpu_offload]]

enable_sequential_cpu_offload(gpu_id: int | None = None, device: typing.Union[torch.device, str] = None)

المصدر

Offloads all models to CPU using accelerate, significantly reducing memory usage. When called, unet, text_encoder, vae and safety checker have their state dicts saved to CPU and then are moved to a torch.device('meta') and loaded to GPU only when their specific submodule has its forwardmethod called. Note that offloading happens on a submodule basis. Memory savings are higher than withenable_model_cpu_offload`, but performance is lower.

Xet Storage Details

Size:
98.5 kB
·
Xet hash:
f90d5e80ae41c5f65441f747ace972c912c11533a5ddb8b40768342c72e6ca17

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