Diffusers documentation

Chroma

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

Chroma

LoRA MPS

Chroma هو نموذج لتوليد الصور من النص مبني على Flux.

يمكن العثور على نقاط التفتيش الأصلية للنماذج الخاصة بـ Chroma هنا:

  • ضبط دقيق عالي الدقة: lodestones/Chroma1-HD
  • النموذج الأساسي: lodestones/Chroma1-Base
  • المستودع الأصلي مع نقاط التفتيش للتقدم: lodestones/Chroma (تحميل هذا المستودع باستخدام from_pretrained سيؤدي إلى تحميل نسخة متوافقة مع Diffusers من نقطة التفتيش unlocked-v37)

يمكن لـ Chroma استخدام جميع التحسينات نفسها التي يستخدمها Flux.

الاستدلال

import torch
from diffusers import ChromaPipeline

pipe = ChromaPipeline.from_pretrained("lodestones/Chroma1-HD", dtype=torch.bfloat16)
pipe.enable_model_cpu_offload()

prompt = [
    "A high-fashion close-up portrait of a blonde woman in clear sunglasses. The image uses a bold teal and red color split for dramatic lighting. The background is a simple teal-green. The photo is sharp and well-composed, and is designed for viewing with anaglyph 3D glasses for optimal effect. It looks professionally done."
]
negative_prompt =  ["low quality, ugly, unfinished, out of focus, deformed, disfigure, blurry, smudged, restricted palette, flat colors"]

image = pipe(
    prompt=prompt,
    negative_prompt=negative_prompt,
    generator=torch.Generator("cpu").manual_seed(433),
    num_inference_steps=40,
    guidance_scale=3.0,
    num_images_per_prompt=1,
).images[0]
image.save("chroma.png")

التحميل من ملف واحد

للاستخدام نقاط تحقق محدثة للنماذج غير الموجودة بتنسيق Diffusers، يمكنك استخدام فئة ChromaTransformer2DModel لتحميل النموذج من ملف واحد بالتنسيق الأصلي. كما أن هذا مفيد عند محاولة تحميل النسخ المُحسَّنة أو المُكمَّمة من النماذج التي نشرها المجتمع.

يُظهر المثال التالي كيفية تشغيل Chroma من ملف واحد.

ثم شغّل المثال التالي

import torch
from diffusers import ChromaTransformer2DModel, ChromaPipeline

model_id = "lodestones/Chroma1-HD"
dtype = torch.bfloat16

transformer = ChromaTransformer2DModel.from_single_file("https://huggingface.co/lodestones/Chroma1-HD/blob/main/Chroma1-HD.safetensors", dtype=dtype)

pipe = ChromaPipeline.from_pretrained(model_id, transformer=transformer, dtype=dtype)
pipe.enable_model_cpu_offload()

prompt = [
    "A high-fashion close-up portrait of a blonde woman in clear sunglasses. The image uses a bold teal and red color split for dramatic lighting. The background is a simple teal-green. The photo is sharp and well-composed, and is designed for viewing with anaglyph 3D glasses for optimal effect. It looks professionally done."
]
negative_prompt =  ["low quality, ugly, unfinished, out of focus, deformed, disfigure, blurry, smudged, restricted palette, flat colors"]

image = pipe(
    prompt=prompt,
    negative_prompt=negative_prompt,
    generator=torch.Generator("cpu").manual_seed(433),
    num_inference_steps=40,
    guidance_scale=3.0,
).images[0]

image.save("chroma-single-file.png")

ChromaPipeline

فئة diffusers.ChromaPipeline

< >

( scheduler: FlowMatchEulerDiscreteSchedulervae: AutoencoderKLtext_encoder: T5EncoderModeltokenizer: T5Tokenizertransformer: ChromaTransformer2DModelimage_encoder: CLIPVisionModelWithProjection = Nonefeature_extractor: CLIPImageProcessorPil = None )

المعاملات

  • transformer (ChromaTransformer2DModel) — بنية Transformer الشرطية (MMDiT) لإزالة الضوضاء من كامنات الصورة المُرمّزة.
  • scheduler (FlowMatchEulerDiscreteScheduler) — جدول زمني يُستخدم بالاقتران مع transformer لإزالة الضوضاء من كائنات الصورة المُرمّزة.
  • vae (AutoencoderKL) — نموذج الترميز التبايني (VAE) لتشفير وفك تشفير الصور إلى التمثيل الكامن ومنه
  • text_encoder (T5EncoderModel) — T5، وتحديداً النسخة google/t5-v1_1-xxl.
  • tokenizer (T5TokenizerFast) — المُرمِّز الثاني من الفئة T5TokenizerFast.

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

مرجع: https://huggingface.co/lodestones/Chroma1-HD/

__call__

< >

( prompt: str | list[str] = Nonenegative_prompt: str | list[str] = Noneheight: int | None = Nonewidth: int | None = Nonenum_inference_steps: int = 35sigmas: list[float] | None = Noneguidance_scale: float = 5.0num_images_per_prompt: int | None = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Noneip_adapter_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = Noneip_adapter_image_embeds: list[torch.Tensor] | None = Nonenegative_ip_adapter_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = Nonenegative_ip_adapter_image_embeds: list[torch.Tensor] | None = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_attention_mask: typing.Optional[torch.Tensor] = Nonenegative_prompt_attention_mask: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Truejoint_attention_kwargs: dict[str, typing.Any] | None = Nonecallback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents']max_sequence_length: int = 512 ) → ~pipelines.chroma.ChromaPipelineOutput or tuple

المعاملات

  • prompt (str أو list[str]، اختياري) — الموجّه أو الموجّهات التي توجّه توليد الصورة. إذا لم يُعرَّف، يجب تمرير prompt_embeds بدلاً من ذلك.
  • negative_prompt (str أو list[str]، اختياري) — الموجّه أو الموجّهات التي لا ينبغي استخدامها لتوجيه توليد الصورة. إذا لم يُعرَّف، يجب تمرير negative_prompt_embeds بدلاً من ذلك. يتم تجاهله عند عدم استخدام التوجيه (أي يتم تجاهله إذا لم يكن guidance_scale أكبر من 1).
  • 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، اختياري، القيمة الافتراضية 35) — عدد خطوات إزالة الضوضاء. تؤدي زيادة عدد خطوات إزالة الضوضاء عادةً إلى صورة بجودة أعلى على حساب بطء الاستدلال.
  • sigmas (list[float]، اختياري) — قيم sigmas مخصصة لاستخدامها في عملية إزالة الضوضاء مع المجدولين الذين يدعمون معامل sigmas في طريقة set_timesteps الخاصة بهم. إذا لم يُعرَّف، فسيتم استخدام السلوك الافتراضي عند تمرير num_inference_steps.
  • guidance_scale (float، اختياري، القيمة الافتراضية 5.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، اختياري) — كائنات latents ضجيجية مُولّدة مسبقًا، مُستخرجة من توزيع غاوسي، تُستخدم كمدخلات لتوليد الصور. يمكن استخدامها لتعديل نفس التوليد باستخدام أوامر مختلفة. إذا لم تُقدَّم، سيتم توليد كائن latents عن طريق الاستخراج باستخدام generator العشوائي المُقدَّم.
  • prompt_embeds (torch.Tensor، اختياري) — تضمينات نصية مُولَّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، مثلًا وزن الموجه. إذا لم تُقدَّم، فسيتم توليد تضمينات النص من معامل الإدخال 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). إذا لم يُقدَّم، تُحسب التضمينات من معامل الإدخال ip_adapter_image.
  • negative_ip_adapter_image — (PipelineImageInput، اختياري): مدخل صورة اختياري للعمل مع IP Adapters.
  • negative_ip_adapter_image_embeds (list[torch.Tensor]، اختياري) — تضمينات صور مُولّدة مسبقًا لـ IP-Adapter. يجب أن يكون قائمة بطول يساوي عدد وحدات IP-Adapter. يجب أن يكون كل عنصر منها متجهًا (tensor) بشكل (batch_size, num_images, emb_dim). إذا لم يُقدَّم، تُحسب التضمينات من معامل الإدخال ip_adapter_image.
  • negative_prompt_embeds (torch.Tensor، اختياري) — تضمينات نصية سلبية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، مثلًا وزن الموجه. إذا لم تُقدَّم، فسيتم توليد negative_prompt_embeds من معامل الإدخال negative_prompt.
  • prompt_attention_mask (torch.Tensor، اختياري) — قناع الانتباه لتضمينات الموجه. يُستخدم لإخفاء رموز الحشو في تسلسل الموجه. يتطلب Chroma بقاء رمز حشو واحد غير مخفي. يُرجى الرجوع إلى https://huggingface.co/lodestones/Chroma#tldr-masking-t5-padding-tokens-enhanced-fidelity-and-increased-stability-during-training
  • negative_prompt_attention_mask (torch.Tensor، اختياري) — قناع الانتباه (Attention mask) لتضمينات الموجه السلبي. يُستخدم لإخفاء رموز الحشو (padding tokens) في تسلسل الموجه السلبي. يتطلب Chroma بقاء رمز حشو واحد غير مخفي. يُرجى الرجوع إلى https://huggingface.co/lodestones/Chroma#tldr-masking-t5-padding-tokens-enhanced-fidelity-and-increased-stability-during-training
  • output_type (str، اختياري، القيمة الافتراضية "pil") — صيغة مخرجات توليد الصورة. اختر بين PIL: PIL.Image.Image أو np.array.
  • return_dict (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب إرجاع ~pipelines.flux.ChromaPipelineOutput بدلاً من tuple عادي.
  • joint_attention_kwargs (dict، اختياري) — قاموس kwargs يُمرَّر إلى AttentionProcessor كما هو معرَّف تحت self.processor في diffusers.models.attention_processor إذا تمَّ تحديده.
  • 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 الافتراضي 512) — أقصى طول تسلسل يُستخدم مع prompt.

يعيد

~pipelines.chroma.ChromaPipelineOutput أو tuple

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

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

أمثلة:

>>> import torch
>>> from diffusers import ChromaPipeline

>>> model_id = "lodestones/Chroma1-HD"
>>> ckpt_path = "https://huggingface.co/lodestones/Chroma1-HD/blob/main/Chroma1-HD.safetensors"
>>> transformer = ChromaTransformer2DModel.from_single_file(ckpt_path, torch_dtype=torch.bfloat16)
>>> pipe = ChromaPipeline.from_pretrained(
...     model_id,
...     transformer=transformer,
...     torch_dtype=torch.bfloat16,
... )
>>> pipe.enable_model_cpu_offload()
>>> prompt = [
...     "A high-fashion close-up portrait of a blonde woman in clear sunglasses. The image uses a bold teal and red color split for dramatic lighting. The background is a simple teal-green. The photo is sharp and well-composed, and is designed for viewing with anaglyph 3D glasses for optimal effect. It looks professionally done."
... ]
>>> negative_prompt = [
...     "low quality, ugly, unfinished, out of focus, deformed, disfigure, blurry, smudged, restricted palette, flat colors"
... ]
>>> image = pipe(prompt, negative_prompt=negative_prompt).images[0]
>>> image.save("chroma.png")

encode_prompt

< >

( prompt: str | list[str]negative_prompt: str | list[str] = Nonedevice: typing.Optional[torch.device] = Nonenum_images_per_prompt: int = 1prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_attention_mask: typing.Optional[torch.Tensor] = Nonenegative_prompt_attention_mask: typing.Optional[torch.Tensor] = Nonedo_classifier_free_guidance: bool = Truemax_sequence_length: int = 512lora_scale: float | None = None )

المعاملات

  • prompt (str أو list[str]، اختياري) — الموجّه الذي سيتم ترميزه
  • negative_prompt (str أو list[str]، اختياري) — الموجّه الذي لا يُستخدم لتوجيه توليد الصورة. إذا لم يُعرَّف، يجب تمرير negative_prompt_embeds بدلاً منه. يتم تجاهله عند عدم استخدام التوجيه (أي يتم تجاهله إذا كان guidance_scale أقل من 1).
  • device — (torch.device): جهاز torch
  • num_images_per_prompt (int) — عدد الصور التي يجب توليدها لكل موجه
  • prompt_embeds (torch.Tensor، اختياري) — تضمينات نصية مُولَّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، مثلًا وزن الموجه. إذا لم تُقدَّم، فسيتم توليد تضمينات النص من معامل الإدخال prompt.
  • lora_scale (float، اختياري) — مقياس LoRA سيُطبَّق على جميع طبقات LoRA في مُشفِّر النص إذا كانت طبقات LoRA محمَّلة.

ChromaImg2ImgPipeline

فئة diffusers.ChromaImg2ImgPipeline

< >

( scheduler: FlowMatchEulerDiscreteSchedulervae: AutoencoderKLtext_encoder: T5EncoderModeltokenizer: T5Tokenizertransformer: ChromaTransformer2DModelimage_encoder: CLIPVisionModelWithProjection = Nonefeature_extractor: CLIPImageProcessorPil = None )

المعاملات

  • transformer (ChromaTransformer2DModel) — بنية Transformer الشرطية (MMDiT) لإزالة الضوضاء من كامنات الصورة المُرمّزة.
  • scheduler (FlowMatchEulerDiscreteScheduler) — جدول زمني يُستخدم بالاقتران مع transformer لإزالة الضوضاء من كائنات الصورة المُرمّزة.
  • vae (AutoencoderKL) — نموذج الترميز التبايني (VAE) لتشفير وفك تشفير الصور إلى التمثيل الكامن ومنه
  • text_encoder (T5EncoderModel) — T5، وتحديداً النسخة google/t5-v1_1-xxl.
  • tokenizer (T5TokenizerFast) — المُرمِّز الثاني من الفئة T5TokenizerFast.

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

مرجع: https://huggingface.co/lodestones/Chroma1-HD/

__call__

< >

( prompt: str | list[str] = Nonenegative_prompt: str | list[str] = Noneimage: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = Noneheight: int | None = Nonewidth: int | None = Nonenum_inference_steps: int = 35sigmas: list[float] | None = Noneguidance_scale: float = 5.0strength: float = 0.9num_images_per_prompt: int | None = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Noneip_adapter_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = Noneip_adapter_image_embeds: list[torch.Tensor] | None = Nonenegative_ip_adapter_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = Nonenegative_ip_adapter_image_embeds: list[torch.Tensor] | None = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_attention_mask: typing.Optional[torch.Tensor] = Nonenegative_prompt_attention_mask: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Truejoint_attention_kwargs: dict[str, typing.Any] | None = Nonecallback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents']max_sequence_length: int = 512 ) → ~pipelines.chroma.ChromaPipelineOutput or tuple

المعاملات

  • prompt (str أو list[str]، اختياري) — الموجّه أو الموجّهات التي توجّه توليد الصورة. إذا لم يُعرَّف، يجب تمرير prompt_embeds بدلاً من ذلك.
  • negative_prompt (str أو list[str]، اختياري) — الموجّه أو الموجّهات التي لا ينبغي استخدامها لتوجيه توليد الصورة. إذا لم يُعرَّف، يجب تمرير negative_prompt_embeds بدلاً من ذلك. يتم تجاهله عند عدم استخدام التوجيه (أي يتم تجاهله إذا لم يكن guidance_scale أكبر من 1).
  • image (PipelineImageInput) — مدخل الصورة للخطّ الأنابيب.
  • 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، اختياري، القيمة الافتراضية 35) — عدد خطوات إزالة الضوضاء. تؤدي زيادة عدد خطوات إزالة الضوضاء عادةً إلى صورة بجودة أعلى على حساب بطء الاستدلال.
  • sigmas (list[float]، اختياري) — قيم sigmas مخصصة لاستخدامها في عملية إزالة الضوضاء مع المجدولين الذين يدعمون معامل sigmas في طريقة set_timesteps الخاصة بهم. إذا لم يُعرَّف، فسيتم استخدام السلوك الافتراضي عند تمرير num_inference_steps.
  • guidance_scale (float، اختياري، القيمة الافتراضية 5.0) — مقياس التوجيه كما هو مُعرَّف في Classifier-Free Diffusion Guidance. يُعرَّف guidance_scale على أنه w من المعادلة 2 في Imagen Paper. يتم تفعيل مقياس التوجيه عن طريق تعيين guidance_scale > 1. يشجع مقياس التوجيه الأعلى على توليد صور مرتبطة ارتباطًا وثيقًا بـ prompt النصي، وعادةً على حساب انخفاض جودة الصورة.
  • strength (`float, اختياري، القيمة الافتراضية 0.9) — مفاهيمياً، يحدد مقدار تحويل الصورة المرجعية. يجب أن يكون بين 0 و 1. ستُستخدم الصورة كنقطة انطلاق، حيث يُضاف المزيد من الضوضاء إليها كلما زاد مقدار strength. يعتمد عدد خطوات إزالة الضوضاء على كمية الضوضاء المضافة في البداية. عندما يكون strength مساوياً لـ 1، تكون الضوضاء المضافة في أقصى حد، وستعمل عملية إزالة الضوضاء لعدد التكرارات الكامل المحدد في num_inference_steps. وبالتالي، فإن القيمة 1 تتجاهل الصورة بشكل أساسي.
  • num_images_per_prompt (int، اختياري، القيمة الافتراضية 1) — عدد الصور التي سيتم توليدها لكل موجه.
  • generator (torch.Generator أو list[torch.Generator]، اختياري) — مولّد واحد أو قائمة من مولّدات torch لجعل التوليد حتميًا.
  • latents (torch.Tensor، اختياري) — كائنات latents ضجيجية مُولّدة مسبقًا، مُستخرجة من توزيع غاوسي، تُستخدم كمدخلات لتوليد الصور. يمكن استخدامها لتعديل نفس التوليد باستخدام أوامر مختلفة. إذا لم تُقدَّم، سيتم توليد كائن latents عن طريق الاستخراج باستخدام generator العشوائي المُقدَّم.
  • prompt_embeds (torch.Tensor، اختياري) — تضمينات نصية مُولَّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، مثلًا وزن الموجه. إذا لم تُقدَّم، فسيتم توليد تضمينات النص من معامل الإدخال 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). إذا لم يُقدَّم، تُحسب التضمينات من معامل الإدخال ip_adapter_image.
  • negative_ip_adapter_image — (PipelineImageInput، اختياري): مدخل صورة اختياري للعمل مع IP Adapters.
  • negative_ip_adapter_image_embeds (list[torch.Tensor]، اختياري) — تضمينات صور مُولّدة مسبقًا لـ IP-Adapter. يجب أن يكون قائمة بطول يساوي عدد وحدات IP-Adapter. يجب أن يكون كل عنصر منها متجهًا (tensor) بشكل (batch_size, num_images, emb_dim). إذا لم يُقدَّم، تُحسب التضمينات من معامل الإدخال ip_adapter_image.
  • negative_prompt_embeds (torch.Tensor، اختياري) — تضمينات نصية سلبية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، مثلًا وزن الموجه. إذا لم تُقدَّم، فسيتم توليد negative_prompt_embeds من معامل الإدخال negative_prompt.
  • prompt_attention_mask (torch.Tensor، اختياري) — قناع الانتباه لتضمينات الموجه. يُستخدم لإخفاء رموز الحشو في تسلسل الموجه. يتطلب Chroma بقاء رمز حشو واحد غير مخفي. يُرجى الرجوع إلى https://huggingface.co/lodestones/Chroma#tldr-masking-t5-padding-tokens-enhanced-fidelity-and-increased-stability-during-training
  • negative_prompt_attention_mask (torch.Tensor، اختياري) — قناع الانتباه (Attention mask) لتضمينات الموجه السلبي. يُستخدم لإخفاء رموز الحشو (padding tokens) في تسلسل الموجه السلبي. يتطلب Chroma بقاء رمز حشو واحد غير مخفي. يُرجى الرجوع إلى https://huggingface.co/lodestones/Chroma#tldr-masking-t5-padding-tokens-enhanced-fidelity-and-increased-stability-during-training
  • output_type (str، اختياري، القيمة الافتراضية "pil") — صيغة مخرجات توليد الصورة. اختر بين PIL: PIL.Image.Image أو np.array.
  • return_dict (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب إرجاع ~pipelines.flux.ChromaPipelineOutput بدلاً من tuple عادي.
  • joint_attention_kwargs (dict، اختياري) — قاموس kwargs يُمرَّر إلى AttentionProcessor كما هو معرَّف تحت self.processor في diffusers.models.attention_processor إذا تمَّ تحديده.
  • 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 الافتراضي 512) — أقصى طول تسلسل يُستخدم مع prompt.

يعيد

~pipelines.chroma.ChromaPipelineOutput أو tuple

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

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

أمثلة:

>>> import torch
>>> from diffusers import ChromaTransformer2DModel, ChromaImg2ImgPipeline

>>> model_id = "lodestones/Chroma1-HD"
>>> ckpt_path = "https://huggingface.co/lodestones/Chroma1-HD/blob/main/Chroma1-HD.safetensors"
>>> pipe = ChromaImg2ImgPipeline.from_pretrained(
...     model_id,
...     transformer=transformer,
...     torch_dtype=torch.bfloat16,
... )
>>> pipe.enable_model_cpu_offload()
>>> init_image = load_image(
...     "https://raw.githubusercontent.com/CompVis/stable-diffusion/main/assets/stable-samples/img2img/sketch-mountains-input.jpg"
... )
>>> prompt = "a scenic fastasy landscape with a river and mountains in the background, vibrant colors, detailed, high resolution"
>>> negative_prompt = "low quality, ugly, unfinished, out of focus, deformed, disfigure, blurry, smudged, restricted palette, flat colors"
>>> image = pipe(prompt, image=init_image, negative_prompt=negative_prompt).images[0]
>>> image.save("chroma-img2img.png")

encode_prompt

< >

( prompt: str | list[str]negative_prompt: str | list[str] = Nonedevice: typing.Optional[torch.device] = Nonenum_images_per_prompt: int = 1prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_attention_mask: typing.Optional[torch.Tensor] = Nonenegative_prompt_attention_mask: typing.Optional[torch.Tensor] = Nonedo_classifier_free_guidance: bool = Truemax_sequence_length: int = 512lora_scale: float | None = None )

المعاملات

  • prompt (str أو list[str]، اختياري) — الموجّه الذي سيتم ترميزه
  • negative_prompt (str أو list[str]، اختياري) — الموجّه الذي لا يُستخدم لتوجيه توليد الصورة. إذا لم يُعرَّف، يجب تمرير negative_prompt_embeds بدلاً منه. يتم تجاهله عند عدم استخدام التوجيه (أي يتم تجاهله إذا كان guidance_scale أقل من 1).
  • device — (torch.device): جهاز torch
  • num_images_per_prompt (int) — عدد الصور التي يجب توليدها لكل موجه
  • prompt_embeds (torch.Tensor، اختياري) — تضمينات نصية مُولَّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، مثلًا وزن الموجه. إذا لم تُقدَّم، فسيتم توليد تضمينات النص من معامل الإدخال prompt.
  • lora_scale (float، اختياري) — مقياس LoRA سيُطبَّق على جميع طبقات LoRA في مُشفِّر النص إذا كانت طبقات LoRA محمَّلة.

ChromaInpaintPipeline

class diffusers.ChromaInpaintPipeline

< >

( scheduler: FlowMatchEulerDiscreteSchedulervae: AutoencoderKLtext_encoder: T5EncoderModeltokenizer: T5Tokenizertransformer: ChromaTransformer2DModelimage_encoder: CLIPVisionModelWithProjection = Nonefeature_extractor: CLIPImageProcessorPil = None )

المعاملات

  • transformer (ChromaTransformer2DModel) — بنية Transformer الشرطية (MMDiT) لإزالة الضوضاء من كامنات الصورة المُرمّزة.
  • scheduler (DDIMScheduler) — جدول زمني يُستخدم بالاقتران مع transformer لإزالة الضوضاء من كامنات الصورة المُرمّزة.
  • vae (AutoencoderKL) — نموذج الترميز التبايني التلقائي (VAE) لتشفير وفك تشفير الصور إلى تمثيلات كامنة ومنها.
  • text_encoder (CLIPTextModel) — CLIP، وتحديداً التنوع clip-vit-large-patch14.
  • text_encoder_2 (T5EncoderModel) — T5، وتحديداً النسخة google/t5-v1_1-xxl.
  • tokenizer (CLIPTokenizer) — مقسّم من الفئة CLIPTokenizer.
  • tokenizer_2 (T5TokenizerFast) — المُرمِّز الثاني من الفئة T5TokenizerFast.

خط أنابيب Flux لتعبئة الصور.

مرجع: https://blackforestlabs.ai/announcing-black-forest-labs/

__call__

< >

( prompt: typing.Union[str, typing.List[str]] = Nonenegative_prompt: typing.Union[str, typing.List[str]] = Nonetrue_cfg_scale: float = 1.0image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = Nonemask_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = Nonemasked_image_latents: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = Noneheight: int | None = Nonewidth: int | None = Nonepadding_mask_crop: int | None = Nonestrength: float = 0.6num_inference_steps: int = 28sigmas: list[float] | None = Noneguidance_scale: float = 7.0num_images_per_prompt: typing.Optional[int] = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.FloatTensor] = Noneprompt_embeds: typing.Optional[torch.FloatTensor] = Noneip_adapter_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = Noneip_adapter_image_embeds: typing.Optional[typing.List[torch.Tensor]] = Nonenegative_ip_adapter_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = Nonenegative_ip_adapter_image_embeds: typing.Optional[typing.List[torch.Tensor]] = Nonenegative_prompt_embeds: typing.Optional[torch.FloatTensor] = Noneoutput_type: str = 'pil'return_dict: bool = Truejoint_attention_kwargs: typing.Optional[typing.Dict[str, typing.Any]] = Nonecallback_on_step_end: typing.Optional[typing.Callable[[int, int, typing.Dict], NoneType]] = Nonecallback_on_step_end_tensor_inputs: typing.List[str] = ['latents']max_sequence_length: int = 256prompt_attention_mask: typing.Optional[torch.Tensor] = Nonenegative_prompt_attention_mask: typing.Optional[torch.Tensor] = None ) → ~pipelines.chroma.ChromaPipelineOutput or tuple

المعاملات

  • prompt (str أو List[str]، اختياري) — الموجّه أو الموجّهات التي توجّه توليد الصورة. إذا لم يُعرَّف، يجب تمرير prompt_embeds بدلاً من ذلك.
  • negative_prompt (str أو List[str]، اختياري) — الموجّه أو الموجّهات التي لا ينبغي استخدامها لتوجيه توليد الصورة. إذا لم يُعرَّف، يجب تمرير negative_prompt_embeds بدلاً من ذلك. يتم تجاهله عند عدم استخدام التوجيه (أي يتم تجاهله إذا لم يكن guidance_scale أكبر من 1).
  • true_cfg_scale (float، اختياري، القيمة الافتراضية 1.0) — يتم تفعيل التوجيه الحر من التصنيف (مقياس التوجيه) الحقيقي عندما يكون true_cfg_scale > 1 و يتم توفير negative_prompt.
  • image (PipelineImageInput) — مدخل الصورة للخطّ الأنابيب.
  • mask_image (PipelineImageInput) — Image أو مصفوفة numpy أو tensor يمثل دفعة من الصور لتطبيق القناع على image. يتم إعادة رسم البكسلات البيضاء في القناع بينما تُحفظ البكسلات السوداء.
  • masked_image_latents (torch.Tensor، اختياري) — تمثيل كامن مُرمَّز مسبقًا للصورة المقنَّعة. إذا لم يُقدَّم، فسيتم حسابه من mask_image وimage.
  • height (int، اختياري، القيمة الافتراضية هي self.unet.config.sample_size * self.vae_scale_factor) — ارتفاع الصورة المولّدة بالبكسلات. يتم ضبطه على 1024 افتراضيًا للحصول على أفضل النتائج.
  • width (int، اختياري، القيمة الافتراضية هي self.unet.config.sample_size * self.vae_scale_factor) — عرض الصورة المولدة بالبكسلات. يتم ضبطه على 1024 افتراضيًا للحصول على أفضل النتائج.
  • padding_mask_crop (int, اختياري، القيمة الافتراضية None) — حجم الهامش في الاقتصاص الذي سيُطبَّق على الصورة والقناع. إذا كانت None، فلن يُطبَّق أي اقتصاص على الصورة وmask_image. إذا لم تكن padding_mask_crop قيمة None، فسيتم أولاً تحديد منطقة مستطيلة بنفس نسبة أبعاد الصورة وتحتوي على كل المنطقة المقنَّعة، ثم يتم توسيع تلك المنطقة بناءً على padding_mask_crop. ثم ستُقتَص الصورة وmask_image بناءً على المنطقة الموسَّعة قبل إعادة تحجيمها إلى حجم الصورة الأصلي لأغراض إعادة التلوين.
  • num_inference_steps (int، اختياري، القيمة الافتراضية 28) — عدد خطوات إزالة الضوضاء. تؤدي زيادة عدد خطوات إزالة الضوضاء عادةً إلى صورة بجودة أعلى على حساب بطء الاستدلال.
  • sigmas (List[float]، اختياري) — قيم sigmas مخصصة لاستخدامها في عملية إزالة الضوضاء مع المجدولين الذين يدعمون معامل sigmas في طريقة set_timesteps الخاصة بهم. إذا لم يُعرَّف، فسيتم استخدام السلوك الافتراضي عند تمرير num_inference_steps.
  • guidance_scale (float، اختياري، القيمة الافتراضية 7.0) — مقياس التوجيه كما هو مُعرَّف في Classifier-Free Diffusion Guidance. يُعرَّف guidance_scale على أنه w من المعادلة 2 في Imagen Paper. يتم تفعيل مقياس التوجيه عن طريق تعيين guidance_scale > 1. يشجع مقياس التوجيه الأعلى على توليد صور مرتبطة ارتباطًا وثيقًا بـ prompt النصي، وعادةً على حساب انخفاض جودة الصورة.
  • strength (`float, اختياري, الافتراضي 0.6) — مفاهيمياً، يحدد مقدار تحويل الصورة المرجعية. يجب أن يكون بين 0 و 1. ستُستخدم الصورة كنقطة انطلاق، حيث يُضاف المزيد من الضوضاء إليها كلما زاد مقدار strength. يعتمد عدد خطوات إزالة الضوضاء على كمية الضوضاء المضافة في البداية. عندما يكون strength مساوياً لـ 1، تكون الضوضاء المضافة في أقصى حد، وستعمل عملية إزالة الضوضاء لعدد التكرارات الكامل المحدد في num_inference_steps. وبالتالي، فإن القيمة 1 تتجاهل الصورة بشكل أساسي.
  • num_images_per_prompt (int، اختياري، القيمة الافتراضية 1) — عدد الصور التي سيتم توليدها لكل موجه.
  • generator (torch.Generator أو List[torch.Generator]، اختياري) — مولّد واحد أو قائمة من مولّدات torch لجعل التوليد حتميًا.
  • latents (torch.Tensor، اختياري) — كائنات latents ضجيجية مُولّدة مسبقًا، مُستخرجة من توزيع غاوسي، تُستخدم كمدخلات لتوليد الصور. يمكن استخدامها لتعديل نفس التوليد باستخدام أوامر مختلفة. إذا لم تُقدَّم، سيتم توليد كائن latents عن طريق الاستخراج باستخدام generator العشوائي المُقدَّم.
  • prompt_embeds (torch.Tensor، اختياري) — تضمينات نصية مُولَّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، مثلًا وزن الموجه. إذا لم تُقدَّم، فسيتم توليد تضمينات النص من معامل الإدخال 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). إذا لم يُقدَّم، تُحسب التضمينات من معامل الإدخال ip_adapter_image.
  • negative_ip_adapter_image — (PipelineImageInput، اختياري): مدخل صورة اختياري للعمل مع IP Adapters.
  • negative_ip_adapter_image_embeds (List[torch.Tensor]، اختياري) — تضمينات صور مُولّدة مسبقًا لـ IP-Adapter. يجب أن يكون قائمة بطول يساوي عدد وحدات IP-Adapter. يجب أن يكون كل عنصر منها متجهًا (tensor) بشكل (batch_size, num_images, emb_dim). إذا لم يُقدَّم، تُحسب التضمينات من معامل الإدخال ip_adapter_image.
  • negative_prompt_embeds (torch.Tensor، اختياري) — تضمينات نصية سلبية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، مثلًا وزن الموجه. إذا لم تُقدَّم، فسيتم توليد negative_prompt_embeds من معامل الإدخال negative_prompt.
  • prompt_attention_mask (torch.Tensor، اختياري) — قناع الانتباه لتضمينات الموجه. يُستخدم لإخفاء رموز الحشو في تسلسل الموجه. يتطلب Chroma بقاء رمز حشو واحد غير مخفي. يُرجى الرجوع إلى https://huggingface.co/lodestones/Chroma#tldr-masking-t5-padding-tokens-enhanced-fidelity-and-increased-stability-during-training
  • negative_prompt_attention_mask (torch.Tensor، اختياري) — قناع الانتباه (Attention mask) لتضمينات الموجه السلبي. يُستخدم لإخفاء رموز الحشو (padding tokens) في تسلسل الموجه السلبي. يتطلب Chroma بقاء رمز حشو واحد غير مخفي. يُرجى الرجوع إلى https://huggingface.co/lodestones/Chroma#tldr-masking-t5-padding-tokens-enhanced-fidelity-and-increased-stability-during-training
  • output_type (str، اختياري، القيمة الافتراضية "pil") — صيغة مخرجات توليد الصورة. اختر بين PIL: PIL.Image.Image أو np.array.
  • return_dict (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب إرجاع ~pipelines.chroma.ChromaPipelineOutput بدلاً من tuple عادي.
  • joint_attention_kwargs (dict، اختياري) — قاموس kwargs يُمرَّر إلى AttentionProcessor كما هو معرَّف تحت self.processor في diffusers.models.attention_processor إذا تمَّ تحديده.
  • 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.

يعيد

~pipelines.chroma.ChromaPipelineOutput أو tuple

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

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

أمثلة:

>>> import torch
>>> from diffusers import ChromaInpaintPipeline
>>> from diffusers.utils import load_image

>>> pipe = ChromaInpaintPipeline.from_pretrained("lodestones/Chroma1-HD", torch_dtype=torch.bfloat16)
>>> pipe.to("cuda")
>>> prompt = "Face of a yellow cat, high resolution, sitting on a park bench"
>>> 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"
>>> source = load_image(img_url)
>>> mask = load_image(mask_url)
>>> image = pipe(prompt=prompt, image=source, mask_image=mask).images[0]
>>> image.save("chroma_inpainting.png")

encode_prompt

< >

( prompt: typing.Union[str, typing.List[str]]negative_prompt: typing.Union[str, typing.List[str], NoneType] = Nonedevice: typing.Optional[torch.device] = Nonenum_images_per_prompt: int = 1prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_attention_mask: typing.Optional[torch.Tensor] = Nonenegative_prompt_attention_mask: typing.Optional[torch.Tensor] = Nonedo_classifier_free_guidance: bool = Truemax_sequence_length: int = 256lora_scale: bool | None = None )

المعاملات

  • prompt (str أو List[str]، اختياري) — الموجّه الذي سيتم ترميزه
  • negative_prompt (str أو List[str]، اختياري) — الموجّه الذي لا يُستخدم لتوجيه توليد الصورة. إذا لم يُعرَّف، يجب تمرير negative_prompt_embeds بدلاً منه. يتم تجاهله عند عدم استخدام التوجيه (أي يتم تجاهله إذا كان guidance_scale أقل من 1).
  • device — (torch.device): جهاز torch
  • num_images_per_prompt (int) — عدد الصور التي يجب توليدها لكل موجه
  • prompt_embeds (torch.Tensor، اختياري) — تضمينات نصية مُولَّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، مثلًا وزن الموجه. إذا لم تُقدَّم، فسيتم توليد تضمينات النص من معامل الإدخال prompt.
  • lora_scale (float، اختياري) — مقياس LoRA سيُطبَّق على جميع طبقات LoRA في مُشفِّر النص إذا كانت طبقات LoRA محمَّلة.
Update on GitHub