Diffusers documentation

Kandinsky 3

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Kandinsky 3

LoRA

تم إنشاء Kandinsky 3 بواسطة Vladimir Arkhipkin،Anastasia Maltseva،Igor Pavlov،Andrei Filatov،Arseniy Shakhmatov،Andrey Kuznetsov،Denis Dimitrov، Zein Shaheen

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

نموذج Kandinsky 3.0 هو نموذج انتشار مفتوح المصدر لتحويل النص إلى صورة، مبني على عائلة نماذج Kandinsky2-x. مقارنةً بأجياله السابقة، تم إجراء تحسينات على فهم النص والجودة البصرية للنموذج، وذلك من خلال زيادة حجم نموذج مشفّر النص ونموذج Diffusion U-Net على التوالي.

تشمل بنيتها 3 مكونات رئيسية:

  1. FLAN-UL2، وهو نموذج مُشفِّر-مُفكِّك يعتمد على بنية T5.
  2. معمارية جديدة لشبكة U-Net تتميز بكتل BigGAN-deep، تضاعف العمق مع الحفاظ على نفس عدد المعلمات.
  3. Sber-MoVQGAN هو مُفكّك (decoder) أثبتت نتائجه المتفوقة في استعادة الصور.

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

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

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

Kandinsky3Pipeline

فئة diffusers.Kandinsky3Pipeline

< >

( tokenizer: T5Tokenizertext_encoder: T5EncoderModelunet: Kandinsky3UNetscheduler: DDPMSchedulermovq: VQModel )

__call__

< >

( prompt: str | list[str] = Nonenum_inference_steps: int = 25guidance_scale: float = 3.0negative_prompt: str | list[str] | None = Nonenum_images_per_prompt: int | None = 1height: int | None = 1024width: int | None = 1024generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonenegative_attention_mask: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Truelatents = Nonecallback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents']**kwargs ) → ImagePipelineOutput or tuple

المعاملات

  • prompt (str أو list[str]، اختياري) — الموجّه أو الموجّهات التي توجّه توليد الصورة. إذا لم يُعرَّف، يجب تمرير prompt_embeds بدلاً من ذلك.
  • num_inference_steps (int، اختياري، القيمة الافتراضية 25) — عدد خطوات إزالة الضوضاء. تؤدي زيادة عدد خطوات إزالة الضوضاء عادةً إلى صورة بجودة أعلى على حساب بطء الاستدلال.
  • guidance_scale (float، اختياري، القيمة الافتراضية 3.0) — مقياس التوجيه كما هو مُعرَّف في Classifier-Free Diffusion Guidance. يُعرَّف guidance_scale على أنه w من المعادلة 2 في Imagen Paper. يتم تفعيل مقياس التوجيه عن طريق تعيين guidance_scale > 1. كلما زاد مقياس التوجيه، شجّع ذلك على توليد صور مرتبطة ارتباطًا وثيقًا بـ prompt النصي، وعادةً على حساب انخفاض جودة الصورة.
  • negative_prompt (str أو list[str]، اختياري) — الموجّه أو الموجّهات التي لا ينبغي استخدامها لتوجيه توليد الصورة. إذا لم يُعرَّف، يجب تمرير negative_prompt_embeds بدلاً من ذلك. يتم تجاهله عند عدم استخدام التوجيه (أي يتم تجاهله إذا كان guidance_scale أقل من 1).
  • num_images_per_prompt (int، اختياري، القيمة الافتراضية 1) — عدد الصور التي سيتم توليدها لكل موجه.
  • height (int، اختياري، الافتراضي هو self.unet.config.sample_size) — ارتفاع الصورة المولّدة بالبكسل.
  • width (int، اختياري، الافتراضي هو self.unet.config.sample_size) — عرض الصورة المولّدة بالبكسل.
  • generator (torch.Generator أو list[torch.Generator]، اختياري) — مولّد واحد أو قائمة من مولّدات torch لجعل التوليد حتميًا.
  • prompt_embeds (torch.Tensor، اختياري) — تضمينات نصية مُولَّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، مثلًا وزن الموجه. إذا لم تُقدَّم، فسيتم توليد تضمينات النص من معامل الإدخال prompt.
  • negative_prompt_embeds (torch.Tensor، اختياري) — تضمينات نصية سلبية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، مثلًا وزن الموجه. إذا لم تُقدَّم، فسيتم توليد negative_prompt_embeds من معامل الإدخال negative_prompt.
  • attention_mask (torch.Tensor، اختياري) — قناع الانتباه المُولَّد مسبقًا. يجب توفيره عند تمرير prompt_embeds مباشرة.
  • negative_attention_mask (torch.Tensor، اختياري) — قناع انتباه سلبي مُولّد مسبقًا. يجب توفيره عند تمرير negative_prompt_embeds مباشرةً.
  • output_type (str، اختياري، القيمة الافتراضية "pil") — صيغة مخرجات توليد الصورة. اختر بين PIL: PIL.Image.Image أو np.array.
  • return_dict (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب إرجاع ~pipelines.stable_diffusion.IFPipelineOutput بدلاً من tuple عادي.
  • latents (torch.Tensor، اختياري) — كائنات latents ضجيجية مُولّدة مسبقًا، مُستخرجة من توزيع غاوسي، تُستخدم كمدخلات لتوليد الصور. يمكن استخدامها لتعديل نفس التوليد باستخدام أوامر مختلفة. إذا لم تُقدَّم، سيتم توليد كائن latents عن طريق الاستخراج باستخدام generator العشوائي المُقدَّم.
  • 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-3", variant="fp16", torch_dtype=torch.float16
... )
>>> pipe.enable_model_cpu_offload()

>>> prompt = "A photograph of the inside of a subway train. There are raccoons sitting on the seats. One of them is reading a newspaper. The window shows the city in the background."

>>> generator = torch.Generator(device="cpu").manual_seed(0)
>>> image = pipe(prompt, num_inference_steps=25, generator=generator).images[0]

encode_prompt

< >

( promptdo_classifier_free_guidance = Truenum_images_per_prompt = 1device = Nonenegative_prompt = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = None_cut_context = Falseattention_mask: typing.Optional[torch.Tensor] = Nonenegative_attention_mask: typing.Optional[torch.Tensor] = None )

المعاملات

  • prompt (str أو list[str]، اختياري) — الموجّه الذي سيتم ترميزه
  • device — (torch.device، اختياري): جهاز torch لوضع التضمينات الناتجة عليه
  • num_images_per_prompt (int، اختياري، القيمة الافتراضية 1) — عدد الصور التي يجب توليدها لكل موجه
  • do_classifier_free_guidance (bool، اختياري، القيمة الافتراضية True) — ما إذا كان سيتم استخدام classifier free guidance أم لا
  • negative_prompt (str أو list[str]، اختياري) — الموجّه أو الموجّهات التي لا ينبغي استخدامها لتوجيه توليد الصورة. إذا لم يُعرَّف، يجب تمرير negative_prompt_embeds بدلاً من ذلك. إذا لم يُعرَّف، يجب تمرير negative_prompt_embeds بدلاً من ذلك. يتم تجاهله عند عدم استخدام التوجيه (أي يتم تجاهله إذا كان guidance_scale أقل من 1).
  • prompt_embeds (torch.Tensor، اختياري) — تضمينات نصية مُولَّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، مثلًا وزن الموجه. إذا لم تُقدَّم، فسيتم توليد تضمينات النص من معامل الإدخال prompt.
  • negative_prompt_embeds (torch.Tensor، اختياري) — تضمينات نصية سلبية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، مثلًا وزن الموجه. إذا لم تُقدَّم، فسيتم توليد negative_prompt_embeds من معامل الإدخال negative_prompt.
  • attention_mask (torch.Tensor، اختياري) — قناع الانتباه المُولَّد مسبقًا. يجب توفيره عند تمرير prompt_embeds مباشرة.
  • negative_attention_mask (torch.Tensor، اختياري) — قناع انتباه سلبي مُولّد مسبقًا. يجب توفيره عند تمرير negative_prompt_embeds مباشرةً.

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

Kandinsky3Img2ImgPipeline

فئة diffusers.Kandinsky3Img2ImgPipeline

< >

( tokenizer: T5Tokenizertext_encoder: T5EncoderModelunet: Kandinsky3UNetscheduler: DDPMSchedulermovq: VQModel )

__call__

< >

( prompt: str | list[str] = Noneimage: typing.Union[torch.Tensor, list[torch.Tensor], PIL.Image.Image, list[PIL.Image.Image]] = Nonestrength: float = 0.3num_inference_steps: int = 25guidance_scale: float = 3.0negative_prompt: str | list[str] | None = Nonenum_images_per_prompt: int | None = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonenegative_attention_mask: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Truecallback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents']**kwargs ) → ImagePipelineOutput or tuple

المعاملات

  • 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، أو متجه يمثل دفعة من الصور، سيُستخدم كنقطة انطلاق للعملية.
  • strength (float، اختياري، القيمة الافتراضية 0.8) — يشير إلى مدى تحويل الصورة المرجعية image. يجب أن يكون بين 0 و 1. تُستخدم image كنقطة انطلاق، وكلما ارتفعت قيمة strength زاد مقدار الضوضاء المضافة. يعتمد عدد خطوات إزالة الضوضاء على كمية الضوضاء المضافة في البداية. عندما تكون strength تساوي 1، تكون الضوضاء المضافة في أقصى حد، وتعمل عملية إزالة الضوضاء لعدد التكرارات الكامل المحدد في num_inference_steps. القيمة 1 تتجاهل image بشكل أساسي.
  • num_inference_steps (int، اختياري، القيمة الافتراضية 50) — عدد خطوات إزالة الضوضاء. تؤدي زيادة عدد خطوات إزالة الضوضاء عادةً إلى صورة بجودة أعلى على حساب بطء الاستدلال.
  • guidance_scale (float، اختياري، القيمة الافتراضية 3.0) — مقياس التوجيه كما هو مُعرَّف في Classifier-Free Diffusion Guidance. يُعرَّف guidance_scale على أنه w من المعادلة 2 في Imagen Paper. يتم تفعيل مقياس التوجيه عن طريق تعيين guidance_scale > 1. كلما زاد مقياس التوجيه، شجّع ذلك على توليد صور مرتبطة ارتباطًا وثيقًا بـ prompt النصي، وعادةً على حساب انخفاض جودة الصورة.
  • negative_prompt (str أو list[str]، اختياري) — الموجّه أو الموجّهات التي لا ينبغي استخدامها لتوجيه توليد الصورة. إذا لم يُعرَّف، يجب تمرير negative_prompt_embeds بدلاً من ذلك. يتم تجاهله عند عدم استخدام التوجيه (أي يتم تجاهله إذا كان guidance_scale أقل من 1).
  • num_images_per_prompt (int، اختياري، القيمة الافتراضية 1) — عدد الصور التي سيتم توليدها لكل موجه.
  • generator (torch.Generator أو list[torch.Generator]، اختياري) — مولّد واحد أو قائمة من مولّدات torch لجعل التوليد حتميًا.
  • prompt_embeds (torch.Tensor، اختياري) — تضمينات نصية مُولَّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، مثلًا وزن الموجه. إذا لم تُقدَّم، فسيتم توليد تضمينات النص من معامل الإدخال prompt.
  • negative_prompt_embeds (torch.Tensor، اختياري) — تضمينات نصية سلبية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، مثلًا وزن الموجه. إذا لم تُقدَّم، فسيتم توليد negative_prompt_embeds من معامل الإدخال negative_prompt.
  • attention_mask (torch.Tensor، اختياري) — قناع الانتباه المُولَّد مسبقًا. يجب توفيره عند تمرير prompt_embeds مباشرة.
  • negative_attention_mask (torch.Tensor، اختياري) — قناع انتباه سلبي مُولّد مسبقًا. يجب توفيره عند تمرير negative_prompt_embeds مباشرةً.
  • output_type (str، اختياري، القيمة الافتراضية "pil") — صيغة مخرجات توليد الصورة. اختر بين PIL: PIL.Image.Image أو np.array.
  • return_dict (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب إرجاع ~pipelines.stable_diffusion.IFPipelineOutput بدلاً من 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 AutoPipelineForImage2Image
>>> from diffusers.utils import load_image
>>> import torch

>>> pipe = AutoPipelineForImage2Image.from_pretrained(
...     "kandinsky-community/kandinsky-3", variant="fp16", torch_dtype=torch.float16
... )
>>> pipe.enable_model_cpu_offload()

>>> prompt = "A painting of the inside of a subway train with tiny raccoons."
>>> image = load_image(
...     "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/kandinsky3/t2i.png"
... )

>>> generator = torch.Generator(device="cpu").manual_seed(0)
>>> image = pipe(prompt, image=image, strength=0.75, num_inference_steps=25, generator=generator).images[0]

encode_prompt

< >

( promptdo_classifier_free_guidance = Truenum_images_per_prompt = 1device = Nonenegative_prompt = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = None_cut_context = Trueattention_mask: typing.Optional[torch.Tensor] = Nonenegative_attention_mask: typing.Optional[torch.Tensor] = None )

المعاملات

  • prompt (str أو list[str]، اختياري) — الموجّه الذي سيتم ترميزه

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

device: (torch.device, اختياري): جهاز torch الذي يجب وضع التضمينات الناتجة عليه num_images_per_prompt (int, اختياري, القيمة الافتراضية 1): عدد الصور التي يجب توليدها لكل موجه do_classifier_free_guidance (bool, اختياري, القيمة الافتراضية True): ما إذا كان يجب استخدام التوجيه الحر من المصنّف أم لا negative_prompt (str أو list[str], اختياري): الموجه أو الموجهات التي لا يجب أن توجه توليد الصورة. إذا لم يُعرَّف، يجب تمرير negative_prompt_embeds بدلاً من ذلك. إذا لم يُعرَّف، يجب تمرير negative_prompt_embeds بدلاً من ذلك. يتم تجاهله عند عدم استخدام التوجيه (أي يتم تجاهله إذا كان guidance_scale أقل من 1). prompt_embeds (torch.Tensor, اختياري): تضمينات نصية مُولَّدة مسبقاً. يمكن استخدامها لتعديل مدخلات النص بسهولة، مثلاً وزن الموجه. إذا لم تُقدَّم، سيتم توليد التضمينات النصية من معامل الإدخال prompt. negative_prompt_embeds (torch.Tensor, اختياري): تضمينات نصية سلبية مُولَّدة مسبقاً. يمكن استخدامها لتعديل مدخلات النص بسهولة، مثلاً وزن الموجه. إذا لم تُقدَّم، سيتم توليد negative_prompt_embeds من معامل الإدخال negative_prompt. attention_mask (torch.Tensor, اختياري): قناع انتباه مُولَّد مسبقاً. يجب تقديمه إذا تم تمرير prompt_embeds مباشرة. negative_attention_mask (torch.Tensor, اختياري): قناع انتباه سلبي مُولَّد مسبقاً. يجب تقديمه إذا تم تمرير negative_prompt_embeds مباشرة.

Update on GitHub