import{s as pt,o as mt,n as lt}from"../chunks/scheduler.8c3d61f6.js";import{S as dt,i as ct,g as r,s as i,r as u,A as ut,h as l,f as n,c as a,j as k,u as g,x as w,k as $,y as o,a as s,v as f,d as h,t as _,w as b}from"../chunks/index.da70eac4.js";import{T as gt}from"../chunks/Tip.1d9b8c37.js";import{D as ee}from"../chunks/Docstring.dcbc19b1.js";import{C as Se}from"../chunks/CodeBlock.a9c4becf.js";import{E as ft}from"../chunks/ExampleCodeBlock.da4c0768.js";import{H as Ge,E as ht}from"../chunks/getInferenceSnippets.86beaec3.js";function _t(te){let p,x='Make sure to check out the Schedulers <a href="../../using-diffusers/schedulers">guide</a> to learn how to explore the tradeoff between scheduler speed and quality, and see the <a href="../../using-diffusers/loading#reuse-a-pipeline">reuse components across pipelines</a> section to learn how to efficiently load the same components into multiple pipelines.';return{c(){p=r("p"),p.innerHTML=x},l(y){p=l(y,"P",{"data-svelte-h":!0}),w(p)!=="svelte-1qn15hi"&&(p.innerHTML=x)},m(y,v){s(y,p,v)},p:lt,d(y){y&&n(p)}}}function bt(te){let p,x="Examples:",y,v,T;return v=new Se({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwTHVtaW5hMlBpcGVsaW5lJTBBJTBBcGlwZSUyMCUzRCUyMEx1bWluYTJQaXBlbGluZS5mcm9tX3ByZXRyYWluZWQoJTIyQWxwaGEtVkxMTSUyRkx1bWluYS1JbWFnZS0yLjAlMjIlMkMlMjB0b3JjaF9kdHlwZSUzRHRvcmNoLmJmbG9hdDE2KSUwQSUyMyUyMEVuYWJsZSUyMG1lbW9yeSUyMG9wdGltaXphdGlvbnMuJTBBcGlwZS5lbmFibGVfbW9kZWxfY3B1X29mZmxvYWQoKSUwQSUwQXByb21wdCUyMCUzRCUyMCUyMlVwcGVyJTIwYm9keSUyMG9mJTIwYSUyMHlvdW5nJTIwd29tYW4lMjBpbiUyMGElMjBWaWN0b3JpYW4tZXJhJTIwb3V0Zml0JTIwd2l0aCUyMGJyYXNzJTIwZ29nZ2xlcyUyMGFuZCUyMGxlYXRoZXIlMjBzdHJhcHMuJTIwQmFja2dyb3VuZCUyMHNob3dzJTIwYW4lMjBpbmR1c3RyaWFsJTIwcmV2b2x1dGlvbiUyMGNpdHlzY2FwZSUyMHdpdGglMjBzbW9reSUyMHNraWVzJTIwYW5kJTIwdGFsbCUyQyUyMG1ldGFsJTIwc3RydWN0dXJlcyUyMiUwQWltYWdlJTIwJTNEJTIwcGlwZShwcm9tcHQpLmltYWdlcyU1QjAlNUQ=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">import</span> torch
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> Lumina2Pipeline

<span class="hljs-meta">&gt;&gt;&gt; </span>pipe = Lumina2Pipeline.from_pretrained(<span class="hljs-string">&quot;Alpha-VLLM/Lumina-Image-2.0&quot;</span>, torch_dtype=torch.bfloat16)
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># Enable memory optimizations.</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>pipe.enable_model_cpu_offload()

<span class="hljs-meta">&gt;&gt;&gt; </span>prompt = <span class="hljs-string">&quot;Upper body of a young woman in a Victorian-era outfit with brass goggles and leather straps. Background shows an industrial revolution cityscape with smoky skies and tall, metal structures&quot;</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>image = pipe(prompt).images[<span class="hljs-number">0</span>]`,wrap:!1}}),{c(){p=r("p"),p.textContent=x,y=i(),u(v.$$.fragment)},l(c){p=l(c,"P",{"data-svelte-h":!0}),w(p)!=="svelte-kvfsh7"&&(p.textContent=x),y=a(c),g(v.$$.fragment,c)},m(c,M){s(c,p,M),s(c,y,M),f(v,c,M),T=!0},p:lt,i(c){T||(h(v.$$.fragment,c),T=!0)},o(c){_(v.$$.fragment,c),T=!1},d(c){c&&(n(p),n(y)),b(v,c)}}}function yt(te){let p,x,y,v,T,c,M,Qe='<img alt="LoRA" src="https://img.shields.io/badge/LoRA-d8b4fe?style=flat"/>',de,j,Ae='<a href="https://huggingface.co/Alpha-VLLM/Lumina-Image-2.0" rel="nofollow">Lumina Image 2.0: A Unified and Efficient Image Generative Model</a> is a 2 billion parameter flow-based diffusion transformer capable of generating diverse images from text descriptions.',ce,E,Xe="The abstract from the paper is:",ue,B,De="<em>We introduce Lumina-Image 2.0, an advanced text-to-image model that surpasses previous state-of-the-art methods across multiple benchmarks, while also shedding light on its potential to evolve into a generalist vision intelligence model. Lumina-Image 2.0 exhibits three key properties: (1) Unification – it adopts a unified architecture that treats text and image tokens as a joint sequence, enabling natural cross-modal interactions and facilitating task expansion. Besides, since high-quality captioners can provide semantically better-aligned text-image training pairs, we introduce a unified captioning system, UniCaptioner, which generates comprehensive and precise captions for the model. This not only accelerates model convergence but also enhances prompt adherence, variable-length prompt handling, and task generalization via prompt templates. (2) Efficiency – to improve the efficiency of the unified architecture, we develop a set of optimization techniques that improve semantic learning and fine-grained texture generation during training while incorporating inference-time acceleration strategies without compromising image quality. (3) Transparency – we open-source all training details, code, and models to ensure full reproducibility, aiming to bridge the gap between well-resourced closed-source research teams and independent developers.</em>",ge,U,fe,Y,he,V,Oe="Single file loading for Lumina Image 2.0 is available for the <code>Lumina2Transformer2DModel</code>",_e,z,be,N,ye,H,Ke="GGUF Quantized checkpoints for the <code>Lumina2Transformer2DModel</code> can be loaded via <code>from_single_file</code> with the <code>GGUFQuantizationConfig</code>",we,F,ve,R,Te,m,q,We,ne,et="Pipeline for text-to-image generation using Lumina-T2I.",Ce,ie,tt=`This model inherits from <a href="/docs/diffusers/main/en/api/pipelines/overview#diffusers.DiffusionPipeline">DiffusionPipeline</a>. Check the superclass documentation for the generic methods the
library implements for all the pipelines (such as downloading or saving, running on a particular device, etc.)`,Pe,L,S,Ze,ae,nt="Function invoked when calling the pipeline for generation.",je,I,Ee,G,Q,Be,oe,it=`Disable sliced VAE decoding. If <code>enable_vae_slicing</code> was previously enabled, this method will go back to
computing decoding in one step.`,Ye,W,A,Ve,se,at=`Disable tiled VAE decoding. If <code>enable_vae_tiling</code> was previously enabled, this method will go back to
computing decoding in one step.`,ze,C,X,Ne,re,ot=`Enable sliced VAE decoding. When this option is enabled, the VAE will split the input tensor in slices to
compute decoding in several steps. This is useful to save some memory and allow larger batch sizes.`,He,P,D,Fe,le,st=`Enable tiled VAE decoding. When this option is enabled, the VAE will split the input tensor into tiles to
compute decoding and encoding in several steps. This is useful for saving a large amount of memory and to allow
processing larger images.`,Re,Z,O,qe,pe,rt="Encodes the prompt into text encoder hidden states.",Me,K,xe,me,Le;return T=new Ge({props:{title:"Lumina2",local:"lumina2",headingTag:"h1"}}),U=new gt({props:{$$slots:{default:[_t]},$$scope:{ctx:te}}}),Y=new Ge({props:{title:"Using Single File loading with Lumina Image 2.0",local:"using-single-file-loading-with-lumina-image-20",headingTag:"h2"}}),z=new Se({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwTHVtaW5hMlRyYW5zZm9ybWVyMkRNb2RlbCUyQyUyMEx1bWluYTJQaXBlbGluZSUwQSUwQWNrcHRfcGF0aCUyMCUzRCUyMCUyMmh0dHBzJTNBJTJGJTJGaHVnZ2luZ2ZhY2UuY28lMkZBbHBoYS1WTExNJTJGTHVtaW5hLUltYWdlLTIuMCUyRmJsb2IlMkZtYWluJTJGY29uc29saWRhdGVkLjAwLW9mLTAxLnB0aCUyMiUwQXRyYW5zZm9ybWVyJTIwJTNEJTIwTHVtaW5hMlRyYW5zZm9ybWVyMkRNb2RlbC5mcm9tX3NpbmdsZV9maWxlKCUwQSUyMCUyMCUyMCUyMGNrcHRfcGF0aCUyQyUyMHRvcmNoX2R0eXBlJTNEdG9yY2guYmZsb2F0MTYlMEEpJTBBJTBBcGlwZSUyMCUzRCUyMEx1bWluYTJQaXBlbGluZS5mcm9tX3ByZXRyYWluZWQoJTBBJTIwJTIwJTIwJTIwJTIyQWxwaGEtVkxMTSUyRkx1bWluYS1JbWFnZS0yLjAlMjIlMkMlMjB0cmFuc2Zvcm1lciUzRHRyYW5zZm9ybWVyJTJDJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5iZmxvYXQxNiUwQSklMEFwaXBlLmVuYWJsZV9tb2RlbF9jcHVfb2ZmbG9hZCgpJTBBaW1hZ2UlMjAlM0QlMjBwaXBlKCUwQSUyMCUyMCUyMCUyMCUyMmElMjBjYXQlMjBob2xkaW5nJTIwYSUyMHNpZ24lMjB0aGF0JTIwc2F5cyUyMGhlbGxvJTIyJTJDJTBBJTIwJTIwJTIwJTIwZ2VuZXJhdG9yJTNEdG9yY2guR2VuZXJhdG9yKCUyMmNwdSUyMikubWFudWFsX3NlZWQoMCklMkMlMEEpLmltYWdlcyU1QjAlNUQlMEFpbWFnZS5zYXZlKCUyMmx1bWluYS1zaW5nbGUtZmlsZS5wbmclMjIpJTBB",highlighted:`<span class="hljs-keyword">import</span> torch
<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> Lumina2Transformer2DModel, Lumina2Pipeline

ckpt_path = <span class="hljs-string">&quot;https://huggingface.co/Alpha-VLLM/Lumina-Image-2.0/blob/main/consolidated.00-of-01.pth&quot;</span>
transformer = Lumina2Transformer2DModel.from_single_file(
    ckpt_path, torch_dtype=torch.bfloat16
)

pipe = Lumina2Pipeline.from_pretrained(
    <span class="hljs-string">&quot;Alpha-VLLM/Lumina-Image-2.0&quot;</span>, transformer=transformer, torch_dtype=torch.bfloat16
)
pipe.enable_model_cpu_offload()
image = pipe(
    <span class="hljs-string">&quot;a cat holding a sign that says hello&quot;</span>,
    generator=torch.Generator(<span class="hljs-string">&quot;cpu&quot;</span>).manual_seed(<span class="hljs-number">0</span>),
).images[<span class="hljs-number">0</span>]
image.save(<span class="hljs-string">&quot;lumina-single-file.png&quot;</span>)
`,wrap:!1}}),N=new Ge({props:{title:"Using GGUF Quantized Checkpoints with Lumina Image 2.0",local:"using-gguf-quantized-checkpoints-with-lumina-image-20",headingTag:"h2"}}),F=new Se({props:{code:"ZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMEx1bWluYTJUcmFuc2Zvcm1lcjJETW9kZWwlMkMlMjBMdW1pbmEyUGlwZWxpbmUlMkMlMjBHR1VGUXVhbnRpemF0aW9uQ29uZmlnJTIwJTBBJTBBY2twdF9wYXRoJTIwJTNEJTIwJTIyaHR0cHMlM0ElMkYlMkZodWdnaW5nZmFjZS5jbyUyRmNhbGN1aXMlMkZsdW1pbmEtZ2d1ZiUyRmJsb2IlMkZtYWluJTJGbHVtaW5hMi1xNF8wLmdndWYlMjIlMEF0cmFuc2Zvcm1lciUyMCUzRCUyMEx1bWluYTJUcmFuc2Zvcm1lcjJETW9kZWwuZnJvbV9zaW5nbGVfZmlsZSglMEElMjAlMjAlMjAlMjBja3B0X3BhdGglMkMlMEElMjAlMjAlMjAlMjBxdWFudGl6YXRpb25fY29uZmlnJTNER0dVRlF1YW50aXphdGlvbkNvbmZpZyhjb21wdXRlX2R0eXBlJTNEdG9yY2guYmZsb2F0MTYpJTJDJTBBJTIwJTIwJTIwJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5iZmxvYXQxNiUyQyUwQSklMEElMEFwaXBlJTIwJTNEJTIwTHVtaW5hMlBpcGVsaW5lLmZyb21fcHJldHJhaW5lZCglMEElMjAlMjAlMjAlMjAlMjJBbHBoYS1WTExNJTJGTHVtaW5hLUltYWdlLTIuMCUyMiUyQyUyMHRyYW5zZm9ybWVyJTNEdHJhbnNmb3JtZXIlMkMlMjB0b3JjaF9kdHlwZSUzRHRvcmNoLmJmbG9hdDE2JTBBKSUwQXBpcGUuZW5hYmxlX21vZGVsX2NwdV9vZmZsb2FkKCklMEFpbWFnZSUyMCUzRCUyMHBpcGUoJTBBJTIwJTIwJTIwJTIwJTIyYSUyMGNhdCUyMGhvbGRpbmclMjBhJTIwc2lnbiUyMHRoYXQlMjBzYXlzJTIwaGVsbG8lMjIlMkMlMEElMjAlMjAlMjAlMjBnZW5lcmF0b3IlM0R0b3JjaC5HZW5lcmF0b3IoJTIyY3B1JTIyKS5tYW51YWxfc2VlZCgwKSUyQyUwQSkuaW1hZ2VzJTVCMCU1RCUwQWltYWdlLnNhdmUoJTIybHVtaW5hLWdndWYucG5nJTIyKQ==",highlighted:`<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> Lumina2Transformer2DModel, Lumina2Pipeline, GGUFQuantizationConfig 

ckpt_path = <span class="hljs-string">&quot;https://huggingface.co/calcuis/lumina-gguf/blob/main/lumina2-q4_0.gguf&quot;</span>
transformer = Lumina2Transformer2DModel.from_single_file(
    ckpt_path,
    quantization_config=GGUFQuantizationConfig(compute_dtype=torch.bfloat16),
    torch_dtype=torch.bfloat16,
)

pipe = Lumina2Pipeline.from_pretrained(
    <span class="hljs-string">&quot;Alpha-VLLM/Lumina-Image-2.0&quot;</span>, transformer=transformer, torch_dtype=torch.bfloat16
)
pipe.enable_model_cpu_offload()
image = pipe(
    <span class="hljs-string">&quot;a cat holding a sign that says hello&quot;</span>,
    generator=torch.Generator(<span class="hljs-string">&quot;cpu&quot;</span>).manual_seed(<span class="hljs-number">0</span>),
).images[<span class="hljs-number">0</span>]
image.save(<span class="hljs-string">&quot;lumina-gguf.png&quot;</span>)`,wrap:!1}}),R=new Ge({props:{title:"Lumina2Pipeline",local:"diffusers.Lumina2Pipeline",headingTag:"h2"}}),q=new ee({props:{name:"class diffusers.Lumina2Pipeline",anchor:"diffusers.Lumina2Pipeline",parameters:[{name:"transformer",val:": Lumina2Transformer2DModel"},{name:"scheduler",val:": FlowMatchEulerDiscreteScheduler"},{name:"vae",val:": AutoencoderKL"},{name:"text_encoder",val:": Gemma2PreTrainedModel"},{name:"tokenizer",val:": typing.Union[transformers.models.gemma.tokenization_gemma.GemmaTokenizer, transformers.models.gemma.tokenization_gemma_fast.GemmaTokenizerFast]"}],parametersDescription:[{anchor:"diffusers.Lumina2Pipeline.vae",description:`<strong>vae</strong> (<a href="/docs/diffusers/main/en/api/models/autoencoderkl#diffusers.AutoencoderKL">AutoencoderKL</a>) &#x2014;
Variational Auto-Encoder (VAE) Model to encode and decode images to and from latent representations.`,name:"vae"},{anchor:"diffusers.Lumina2Pipeline.text_encoder",description:`<strong>text_encoder</strong> (<code>Gemma2PreTrainedModel</code>) &#x2014;
Frozen Gemma2 text-encoder.`,name:"text_encoder"},{anchor:"diffusers.Lumina2Pipeline.tokenizer",description:`<strong>tokenizer</strong> (<code>GemmaTokenizer</code> or <code>GemmaTokenizerFast</code>) &#x2014;
Gemma tokenizer.`,name:"tokenizer"},{anchor:"diffusers.Lumina2Pipeline.transformer",description:`<strong>transformer</strong> (<a href="/docs/diffusers/main/en/api/models/transformer2d#diffusers.Transformer2DModel">Transformer2DModel</a>) &#x2014;
A text conditioned <code>Transformer2DModel</code> to denoise the encoded image latents.`,name:"transformer"},{anchor:"diffusers.Lumina2Pipeline.scheduler",description:`<strong>scheduler</strong> (<a href="/docs/diffusers/main/en/api/schedulers/overview#diffusers.SchedulerMixin">SchedulerMixin</a>) &#x2014;
A scheduler to be used in combination with <code>transformer</code> to denoise the encoded image latents.`,name:"scheduler"}],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/lumina2/pipeline_lumina2.py#L137"}}),S=new ee({props:{name:"__call__",anchor:"diffusers.Lumina2Pipeline.__call__",parameters:[{name:"prompt",val:": typing.Union[str, typing.List[str]] = None"},{name:"width",val:": typing.Optional[int] = None"},{name:"height",val:": typing.Optional[int] = None"},{name:"num_inference_steps",val:": int = 30"},{name:"guidance_scale",val:": float = 4.0"},{name:"negative_prompt",val:": typing.Union[str, typing.List[str]] = None"},{name:"sigmas",val:": typing.List[float] = None"},{name:"num_images_per_prompt",val:": typing.Optional[int] = 1"},{name:"generator",val:": typing.Union[torch._C.Generator, typing.List[torch._C.Generator], NoneType] = None"},{name:"latents",val:": typing.Optional[torch.Tensor] = None"},{name:"prompt_embeds",val:": typing.Optional[torch.Tensor] = None"},{name:"negative_prompt_embeds",val:": typing.Optional[torch.Tensor] = None"},{name:"prompt_attention_mask",val:": typing.Optional[torch.Tensor] = None"},{name:"negative_prompt_attention_mask",val:": typing.Optional[torch.Tensor] = None"},{name:"output_type",val:": typing.Optional[str] = 'pil'"},{name:"return_dict",val:": bool = True"},{name:"attention_kwargs",val:": typing.Optional[typing.Dict[str, typing.Any]] = None"},{name:"callback_on_step_end",val:": typing.Optional[typing.Callable[[int, int, typing.Dict], NoneType]] = None"},{name:"callback_on_step_end_tensor_inputs",val:": typing.List[str] = ['latents']"},{name:"system_prompt",val:": typing.Optional[str] = None"},{name:"cfg_trunc_ratio",val:": float = 1.0"},{name:"cfg_normalization",val:": bool = True"},{name:"max_sequence_length",val:": int = 256"}],parametersDescription:[{anchor:"diffusers.Lumina2Pipeline.__call__.prompt",description:`<strong>prompt</strong> (<code>str</code> or <code>List[str]</code>, <em>optional</em>) &#x2014;
The prompt or prompts to guide the image generation. If not defined, one has to pass <code>prompt_embeds</code>.
instead.`,name:"prompt"},{anchor:"diffusers.Lumina2Pipeline.__call__.negative_prompt",description:`<strong>negative_prompt</strong> (<code>str</code> or <code>List[str]</code>, <em>optional</em>) &#x2014;
The prompt or prompts not to guide the image generation. If not defined, one has to pass
<code>negative_prompt_embeds</code> instead. Ignored when not using guidance (i.e., ignored if <code>guidance_scale</code> is
less than <code>1</code>).`,name:"negative_prompt"},{anchor:"diffusers.Lumina2Pipeline.__call__.num_inference_steps",description:`<strong>num_inference_steps</strong> (<code>int</code>, <em>optional</em>, defaults to 30) &#x2014;
The number of denoising steps. More denoising steps usually lead to a higher quality image at the
expense of slower inference.`,name:"num_inference_steps"},{anchor:"diffusers.Lumina2Pipeline.__call__.sigmas",description:`<strong>sigmas</strong> (<code>List[float]</code>, <em>optional</em>) &#x2014;
Custom sigmas to use for the denoising process with schedulers which support a <code>sigmas</code> argument in
their <code>set_timesteps</code> method. If not defined, the default behavior when <code>num_inference_steps</code> is passed
will be used.`,name:"sigmas"},{anchor:"diffusers.Lumina2Pipeline.__call__.guidance_scale",description:`<strong>guidance_scale</strong> (<code>float</code>, <em>optional</em>, defaults to 4.0) &#x2014;
Guidance scale as defined in <a href="https://huggingface.co/papers/2207.12598" rel="nofollow">Classifier-Free Diffusion
Guidance</a>. <code>guidance_scale</code> is defined as <code>w</code> of equation 2.
of <a href="https://huggingface.co/papers/2205.11487" rel="nofollow">Imagen Paper</a>. Guidance scale is enabled by setting
<code>guidance_scale &gt; 1</code>. Higher guidance scale encourages to generate images that are closely linked to
the text <code>prompt</code>, usually at the expense of lower image quality.`,name:"guidance_scale"},{anchor:"diffusers.Lumina2Pipeline.__call__.num_images_per_prompt",description:`<strong>num_images_per_prompt</strong> (<code>int</code>, <em>optional</em>, defaults to 1) &#x2014;
The number of images to generate per prompt.`,name:"num_images_per_prompt"},{anchor:"diffusers.Lumina2Pipeline.__call__.height",description:`<strong>height</strong> (<code>int</code>, <em>optional</em>, defaults to self.unet.config.sample_size) &#x2014;
The height in pixels of the generated image.`,name:"height"},{anchor:"diffusers.Lumina2Pipeline.__call__.width",description:`<strong>width</strong> (<code>int</code>, <em>optional</em>, defaults to self.unet.config.sample_size) &#x2014;
The width in pixels of the generated image.`,name:"width"},{anchor:"diffusers.Lumina2Pipeline.__call__.eta",description:`<strong>eta</strong> (<code>float</code>, <em>optional</em>, defaults to 0.0) &#x2014;
Corresponds to parameter eta (&#x3B7;) in the DDIM paper: <a href="https://huggingface.co/papers/2010.02502" rel="nofollow">https://huggingface.co/papers/2010.02502</a>. Only
applies to <a href="/docs/diffusers/main/en/api/schedulers/ddim#diffusers.DDIMScheduler">schedulers.DDIMScheduler</a>, will be ignored for others.`,name:"eta"},{anchor:"diffusers.Lumina2Pipeline.__call__.generator",description:`<strong>generator</strong> (<code>torch.Generator</code> or <code>List[torch.Generator]</code>, <em>optional</em>) &#x2014;
One or a list of <a href="https://pytorch.org/docs/stable/generated/torch.Generator.html" rel="nofollow">torch generator(s)</a>
to make generation deterministic.`,name:"generator"},{anchor:"diffusers.Lumina2Pipeline.__call__.latents",description:`<strong>latents</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Pre-generated noisy latents, sampled from a Gaussian distribution, to be used as inputs for image
generation. Can be used to tweak the same generation with different prompts. If not provided, a latents
tensor will ge generated by sampling using the supplied random <code>generator</code>.`,name:"latents"},{anchor:"diffusers.Lumina2Pipeline.__call__.prompt_embeds",description:`<strong>prompt_embeds</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Pre-generated text embeddings. Can be used to easily tweak text inputs, <em>e.g.</em> prompt weighting. If not
provided, text embeddings will be generated from <code>prompt</code> input argument.`,name:"prompt_embeds"},{anchor:"diffusers.Lumina2Pipeline.__call__.prompt_attention_mask",description:"<strong>prompt_attention_mask</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014; Pre-generated attention mask for text embeddings.",name:"prompt_attention_mask"},{anchor:"diffusers.Lumina2Pipeline.__call__.negative_prompt_embeds",description:`<strong>negative_prompt_embeds</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Pre-generated negative text embeddings. For Lumina-T2I this negative prompt should be &quot;&quot;. If not
provided, negative_prompt_embeds will be generated from <code>negative_prompt</code> input argument.`,name:"negative_prompt_embeds"},{anchor:"diffusers.Lumina2Pipeline.__call__.negative_prompt_attention_mask",description:`<strong>negative_prompt_attention_mask</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Pre-generated attention mask for negative text embeddings.`,name:"negative_prompt_attention_mask"},{anchor:"diffusers.Lumina2Pipeline.__call__.output_type",description:`<strong>output_type</strong> (<code>str</code>, <em>optional</em>, defaults to <code>&quot;pil&quot;</code>) &#x2014;
The output format of the generate image. Choose between
<a href="https://pillow.readthedocs.io/en/stable/" rel="nofollow">PIL</a>: <code>PIL.Image.Image</code> or <code>np.array</code>.`,name:"output_type"},{anchor:"diffusers.Lumina2Pipeline.__call__.return_dict",description:`<strong>return_dict</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) &#x2014;
Whether or not to return a <code>~pipelines.stable_diffusion.IFPipelineOutput</code> instead of a plain tuple.`,name:"return_dict"},{anchor:"diffusers.Lumina2Pipeline.__call__.attention_kwargs",description:`<strong>attention_kwargs</strong> &#x2014;
A kwargs dictionary that if specified is passed along to the <code>AttentionProcessor</code> as defined under
<code>self.processor</code> in
<a href="https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py" rel="nofollow">diffusers.models.attention_processor</a>.`,name:"attention_kwargs"},{anchor:"diffusers.Lumina2Pipeline.__call__.callback_on_step_end",description:`<strong>callback_on_step_end</strong> (<code>Callable</code>, <em>optional</em>) &#x2014;
A function that calls at the end of each denoising steps during the inference. The function is called
with the following arguments: <code>callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict)</code>. <code>callback_kwargs</code> will include a list of all tensors as specified by
<code>callback_on_step_end_tensor_inputs</code>.`,name:"callback_on_step_end"},{anchor:"diffusers.Lumina2Pipeline.__call__.callback_on_step_end_tensor_inputs",description:`<strong>callback_on_step_end_tensor_inputs</strong> (<code>List</code>, <em>optional</em>) &#x2014;
The list of tensor inputs for the <code>callback_on_step_end</code> function. The tensors specified in the list
will be passed as <code>callback_kwargs</code> argument. You will only be able to include variables listed in the
<code>._callback_tensor_inputs</code> attribute of your pipeline class.`,name:"callback_on_step_end_tensor_inputs"},{anchor:"diffusers.Lumina2Pipeline.__call__.system_prompt",description:`<strong>system_prompt</strong> (<code>str</code>, <em>optional</em>) &#x2014;
The system prompt to use for the image generation.`,name:"system_prompt"},{anchor:"diffusers.Lumina2Pipeline.__call__.cfg_trunc_ratio",description:`<strong>cfg_trunc_ratio</strong> (<code>float</code>, <em>optional</em>, defaults to <code>1.0</code>) &#x2014;
The ratio of the timestep interval to apply normalization-based guidance scale.`,name:"cfg_trunc_ratio"},{anchor:"diffusers.Lumina2Pipeline.__call__.cfg_normalization",description:`<strong>cfg_normalization</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) &#x2014;
Whether to apply normalization-based guidance scale.`,name:"cfg_normalization"},{anchor:"diffusers.Lumina2Pipeline.__call__.max_sequence_length",description:`<strong>max_sequence_length</strong> (<code>int</code>, defaults to <code>256</code>) &#x2014;
Maximum sequence length to use with the <code>prompt</code>.`,name:"max_sequence_length"}],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/lumina2/pipeline_lumina2.py#L500",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script>


<p>If <code>return_dict</code> is <code>True</code>, <a
  href="/docs/diffusers/main/en/api/pipelines/unclip#diffusers.ImagePipelineOutput"
>ImagePipelineOutput</a> is returned, otherwise a <code>tuple</code> is
returned where the first element is a list with the generated images</p>
`,returnType:`<script context="module">export const metadata = 'undefined';<\/script>


<p><a
  href="/docs/diffusers/main/en/api/pipelines/unclip#diffusers.ImagePipelineOutput"
>ImagePipelineOutput</a> or <code>tuple</code></p>
`}}),I=new ft({props:{anchor:"diffusers.Lumina2Pipeline.__call__.example",$$slots:{default:[bt]},$$scope:{ctx:te}}}),Q=new ee({props:{name:"disable_vae_slicing",anchor:"diffusers.Lumina2Pipeline.disable_vae_slicing",parameters:[],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/lumina2/pipeline_lumina2.py#L438"}}),A=new ee({props:{name:"disable_vae_tiling",anchor:"diffusers.Lumina2Pipeline.disable_vae_tiling",parameters:[],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/lumina2/pipeline_lumina2.py#L453"}}),X=new ee({props:{name:"enable_vae_slicing",anchor:"diffusers.Lumina2Pipeline.enable_vae_slicing",parameters:[],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/lumina2/pipeline_lumina2.py#L431"}}),D=new ee({props:{name:"enable_vae_tiling",anchor:"diffusers.Lumina2Pipeline.enable_vae_tiling",parameters:[],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/lumina2/pipeline_lumina2.py#L445"}}),O=new ee({props:{name:"encode_prompt",anchor:"diffusers.Lumina2Pipeline.encode_prompt",parameters:[{name:"prompt",val:": typing.Union[str, typing.List[str]]"},{name:"do_classifier_free_guidance",val:": bool = True"},{name:"negative_prompt",val:": typing.Union[str, typing.List[str]] = None"},{name:"num_images_per_prompt",val:": int = 1"},{name:"device",val:": typing.Optional[torch.device] = None"},{name:"prompt_embeds",val:": typing.Optional[torch.Tensor] = None"},{name:"negative_prompt_embeds",val:": typing.Optional[torch.Tensor] = None"},{name:"prompt_attention_mask",val:": typing.Optional[torch.Tensor] = None"},{name:"negative_prompt_attention_mask",val:": typing.Optional[torch.Tensor] = None"},{name:"system_prompt",val:": typing.Optional[str] = None"},{name:"max_sequence_length",val:": int = 256"}],parametersDescription:[{anchor:"diffusers.Lumina2Pipeline.encode_prompt.prompt",description:`<strong>prompt</strong> (<code>str</code> or <code>List[str]</code>, <em>optional</em>) &#x2014;
prompt to be encoded`,name:"prompt"},{anchor:"diffusers.Lumina2Pipeline.encode_prompt.negative_prompt",description:`<strong>negative_prompt</strong> (<code>str</code> or <code>List[str]</code>, <em>optional</em>) &#x2014;
The prompt not to guide the image generation. If not defined, one has to pass <code>negative_prompt_embeds</code>
instead. Ignored when not using guidance (i.e., ignored if <code>guidance_scale</code> is less than <code>1</code>). For
Lumina-T2I, this should be &quot;&quot;.`,name:"negative_prompt"},{anchor:"diffusers.Lumina2Pipeline.encode_prompt.do_classifier_free_guidance",description:`<strong>do_classifier_free_guidance</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) &#x2014;
whether to use classifier free guidance or not`,name:"do_classifier_free_guidance"},{anchor:"diffusers.Lumina2Pipeline.encode_prompt.num_images_per_prompt",description:`<strong>num_images_per_prompt</strong> (<code>int</code>, <em>optional</em>, defaults to 1) &#x2014;
number of images that should be generated per prompt`,name:"num_images_per_prompt"},{anchor:"diffusers.Lumina2Pipeline.encode_prompt.device",description:`<strong>device</strong> &#x2014; (<code>torch.device</code>, <em>optional</em>):
torch device to place the resulting embeddings on`,name:"device"},{anchor:"diffusers.Lumina2Pipeline.encode_prompt.prompt_embeds",description:`<strong>prompt_embeds</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Pre-generated text embeddings. Can be used to easily tweak text inputs, <em>e.g.</em> prompt weighting. If not
provided, text embeddings will be generated from <code>prompt</code> input argument.`,name:"prompt_embeds"},{anchor:"diffusers.Lumina2Pipeline.encode_prompt.negative_prompt_embeds",description:`<strong>negative_prompt_embeds</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Pre-generated negative text embeddings. For Lumina-T2I, it&#x2019;s should be the embeddings of the &quot;&quot; string.`,name:"negative_prompt_embeds"},{anchor:"diffusers.Lumina2Pipeline.encode_prompt.max_sequence_length",description:`<strong>max_sequence_length</strong> (<code>int</code>, defaults to <code>256</code>) &#x2014;
Maximum sequence length to use for the prompt.`,name:"max_sequence_length"}],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/lumina2/pipeline_lumina2.py#L238"}}),K=new ht({props:{source:"https://github.com/huggingface/diffusers/blob/main/docs/source/en/api/pipelines/lumina2.md"}}),{c(){p=r("meta"),x=i(),y=r("p"),v=i(),u(T.$$.fragment),c=i(),M=r("div"),M.innerHTML=Qe,de=i(),j=r("p"),j.innerHTML=Ae,ce=i(),E=r("p"),E.textContent=Xe,ue=i(),B=r("p"),B.innerHTML=De,ge=i(),u(U.$$.fragment),fe=i(),u(Y.$$.fragment),he=i(),V=r("p"),V.innerHTML=Oe,_e=i(),u(z.$$.fragment),be=i(),u(N.$$.fragment),ye=i(),H=r("p"),H.innerHTML=Ke,we=i(),u(F.$$.fragment),ve=i(),u(R.$$.fragment),Te=i(),m=r("div"),u(q.$$.fragment),We=i(),ne=r("p"),ne.textContent=et,Ce=i(),ie=r("p"),ie.innerHTML=tt,Pe=i(),L=r("div"),u(S.$$.fragment),Ze=i(),ae=r("p"),ae.textContent=nt,je=i(),u(I.$$.fragment),Ee=i(),G=r("div"),u(Q.$$.fragment),Be=i(),oe=r("p"),oe.innerHTML=it,Ye=i(),W=r("div"),u(A.$$.fragment),Ve=i(),se=r("p"),se.innerHTML=at,ze=i(),C=r("div"),u(X.$$.fragment),Ne=i(),re=r("p"),re.textContent=ot,He=i(),P=r("div"),u(D.$$.fragment),Fe=i(),le=r("p"),le.textContent=st,Re=i(),Z=r("div"),u(O.$$.fragment),qe=i(),pe=r("p"),pe.textContent=rt,Me=i(),u(K.$$.fragment),xe=i(),me=r("p"),this.h()},l(e){const t=ut("svelte-u9bgzb",document.head);p=l(t,"META",{name:!0,content:!0}),t.forEach(n),x=a(e),y=l(e,"P",{}),k(y).forEach(n),v=a(e),g(T.$$.fragment,e),c=a(e),M=l(e,"DIV",{class:!0,"data-svelte-h":!0}),w(M)!=="svelte-si9ct8"&&(M.innerHTML=Qe),de=a(e),j=l(e,"P",{"data-svelte-h":!0}),w(j)!=="svelte-1yt6rrf"&&(j.innerHTML=Ae),ce=a(e),E=l(e,"P",{"data-svelte-h":!0}),w(E)!=="svelte-1cwsb16"&&(E.textContent=Xe),ue=a(e),B=l(e,"P",{"data-svelte-h":!0}),w(B)!=="svelte-14hqiub"&&(B.innerHTML=De),ge=a(e),g(U.$$.fragment,e),fe=a(e),g(Y.$$.fragment,e),he=a(e),V=l(e,"P",{"data-svelte-h":!0}),w(V)!=="svelte-k5cnxs"&&(V.innerHTML=Oe),_e=a(e),g(z.$$.fragment,e),be=a(e),g(N.$$.fragment,e),ye=a(e),H=l(e,"P",{"data-svelte-h":!0}),w(H)!=="svelte-1sse30f"&&(H.innerHTML=Ke),we=a(e),g(F.$$.fragment,e),ve=a(e),g(R.$$.fragment,e),Te=a(e),m=l(e,"DIV",{class:!0});var d=k(m);g(q.$$.fragment,d),We=a(d),ne=l(d,"P",{"data-svelte-h":!0}),w(ne)!=="svelte-1ennvvi"&&(ne.textContent=et),Ce=a(d),ie=l(d,"P",{"data-svelte-h":!0}),w(ie)!=="svelte-wu1jmh"&&(ie.innerHTML=tt),Pe=a(d),L=l(d,"DIV",{class:!0});var J=k(L);g(S.$$.fragment,J),Ze=a(J),ae=l(J,"P",{"data-svelte-h":!0}),w(ae)!=="svelte-v78lg8"&&(ae.textContent=nt),je=a(J),g(I.$$.fragment,J),J.forEach(n),Ee=a(d),G=l(d,"DIV",{class:!0});var $e=k(G);g(Q.$$.fragment,$e),Be=a($e),oe=l($e,"P",{"data-svelte-h":!0}),w(oe)!=="svelte-1s3c06i"&&(oe.innerHTML=it),$e.forEach(n),Ye=a(d),W=l(d,"DIV",{class:!0});var Je=k(W);g(A.$$.fragment,Je),Ve=a(Je),se=l(Je,"P",{"data-svelte-h":!0}),w(se)!=="svelte-pkn4ui"&&(se.innerHTML=at),Je.forEach(n),ze=a(d),C=l(d,"DIV",{class:!0});var ke=k(C);g(X.$$.fragment,ke),Ne=a(ke),re=l(ke,"P",{"data-svelte-h":!0}),w(re)!=="svelte-14bnrb6"&&(re.textContent=ot),ke.forEach(n),He=a(d),P=l(d,"DIV",{class:!0});var Ue=k(P);g(D.$$.fragment,Ue),Fe=a(Ue),le=l(Ue,"P",{"data-svelte-h":!0}),w(le)!=="svelte-1xwrf7t"&&(le.textContent=st),Ue.forEach(n),Re=a(d),Z=l(d,"DIV",{class:!0});var Ie=k(Z);g(O.$$.fragment,Ie),qe=a(Ie),pe=l(Ie,"P",{"data-svelte-h":!0}),w(pe)!=="svelte-16q0ax1"&&(pe.textContent=rt),Ie.forEach(n),d.forEach(n),Me=a(e),g(K.$$.fragment,e),xe=a(e),me=l(e,"P",{}),k(me).forEach(n),this.h()},h(){$(p,"name","hf:doc:metadata"),$(p,"content",wt),$(M,"class","flex flex-wrap space-x-1"),$(L,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(G,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(W,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(C,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(P,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(Z,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(m,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8")},m(e,t){o(document.head,p),s(e,x,t),s(e,y,t),s(e,v,t),f(T,e,t),s(e,c,t),s(e,M,t),s(e,de,t),s(e,j,t),s(e,ce,t),s(e,E,t),s(e,ue,t),s(e,B,t),s(e,ge,t),f(U,e,t),s(e,fe,t),f(Y,e,t),s(e,he,t),s(e,V,t),s(e,_e,t),f(z,e,t),s(e,be,t),f(N,e,t),s(e,ye,t),s(e,H,t),s(e,we,t),f(F,e,t),s(e,ve,t),f(R,e,t),s(e,Te,t),s(e,m,t),f(q,m,null),o(m,We),o(m,ne),o(m,Ce),o(m,ie),o(m,Pe),o(m,L),f(S,L,null),o(L,Ze),o(L,ae),o(L,je),f(I,L,null),o(m,Ee),o(m,G),f(Q,G,null),o(G,Be),o(G,oe),o(m,Ye),o(m,W),f(A,W,null),o(W,Ve),o(W,se),o(m,ze),o(m,C),f(X,C,null),o(C,Ne),o(C,re),o(m,He),o(m,P),f(D,P,null),o(P,Fe),o(P,le),o(m,Re),o(m,Z),f(O,Z,null),o(Z,qe),o(Z,pe),s(e,Me,t),f(K,e,t),s(e,xe,t),s(e,me,t),Le=!0},p(e,[t]){const d={};t&2&&(d.$$scope={dirty:t,ctx:e}),U.$set(d);const J={};t&2&&(J.$$scope={dirty:t,ctx:e}),I.$set(J)},i(e){Le||(h(T.$$.fragment,e),h(U.$$.fragment,e),h(Y.$$.fragment,e),h(z.$$.fragment,e),h(N.$$.fragment,e),h(F.$$.fragment,e),h(R.$$.fragment,e),h(q.$$.fragment,e),h(S.$$.fragment,e),h(I.$$.fragment,e),h(Q.$$.fragment,e),h(A.$$.fragment,e),h(X.$$.fragment,e),h(D.$$.fragment,e),h(O.$$.fragment,e),h(K.$$.fragment,e),Le=!0)},o(e){_(T.$$.fragment,e),_(U.$$.fragment,e),_(Y.$$.fragment,e),_(z.$$.fragment,e),_(N.$$.fragment,e),_(F.$$.fragment,e),_(R.$$.fragment,e),_(q.$$.fragment,e),_(S.$$.fragment,e),_(I.$$.fragment,e),_(Q.$$.fragment,e),_(A.$$.fragment,e),_(X.$$.fragment,e),_(D.$$.fragment,e),_(O.$$.fragment,e),_(K.$$.fragment,e),Le=!1},d(e){e&&(n(x),n(y),n(v),n(c),n(M),n(de),n(j),n(ce),n(E),n(ue),n(B),n(ge),n(fe),n(he),n(V),n(_e),n(be),n(ye),n(H),n(we),n(ve),n(Te),n(m),n(Me),n(xe),n(me)),n(p),b(T,e),b(U,e),b(Y,e),b(z,e),b(N,e),b(F,e),b(R,e),b(q),b(S),b(I),b(Q),b(A),b(X),b(D),b(O),b(K,e)}}}const wt='{"title":"Lumina2","local":"lumina2","sections":[{"title":"Using Single File loading with Lumina Image 2.0","local":"using-single-file-loading-with-lumina-image-20","sections":[],"depth":2},{"title":"Using GGUF Quantized Checkpoints with Lumina Image 2.0","local":"using-gguf-quantized-checkpoints-with-lumina-image-20","sections":[],"depth":2},{"title":"Lumina2Pipeline","local":"diffusers.Lumina2Pipeline","sections":[],"depth":2}],"depth":1}';function vt(te){return mt(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Ut extends dt{constructor(p){super(),ct(this,p,vt,yt,pt,{})}}export{Ut as component};
