Buckets:
| import{s as pt,o as dt,n as lt}from"../chunks/scheduler.8c3d61f6.js";import{S as mt,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 v,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.567bc132.js";import{C as Se}from"../chunks/CodeBlock.a9c4becf.js";import{E as ft}from"../chunks/ExampleCodeBlock.15b54358.js";import{H as Ge,E as ht}from"../chunks/index.5d4ab994.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}),v(p)!=="svelte-1qn15hi"&&(p.innerHTML=x)},m(y,w){s(y,p,w)},p:lt,d(y){y&&n(p)}}}function bt(te){let p,x="Examples:",y,w,T;return w=new Se({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwTHVtaW5hMlBpcGVsaW5lJTBBJTBBcGlwZSUyMCUzRCUyMEx1bWluYTJQaXBlbGluZS5mcm9tX3ByZXRyYWluZWQoJTIyQWxwaGEtVkxMTSUyRkx1bWluYS1JbWFnZS0yLjAlMjIlMkMlMjB0b3JjaF9kdHlwZSUzRHRvcmNoLmJmbG9hdDE2KSUwQSUyMyUyMEVuYWJsZSUyMG1lbW9yeSUyMG9wdGltaXphdGlvbnMuJTBBcGlwZS5lbmFibGVfbW9kZWxfY3B1X29mZmxvYWQoKSUwQSUwQXByb21wdCUyMCUzRCUyMCUyMlVwcGVyJTIwYm9keSUyMG9mJTIwYSUyMHlvdW5nJTIwd29tYW4lMjBpbiUyMGElMjBWaWN0b3JpYW4tZXJhJTIwb3V0Zml0JTIwd2l0aCUyMGJyYXNzJTIwZ29nZ2xlcyUyMGFuZCUyMGxlYXRoZXIlMjBzdHJhcHMuJTIwQmFja2dyb3VuZCUyMHNob3dzJTIwYW4lMjBpbmR1c3RyaWFsJTIwcmV2b2x1dGlvbiUyMGNpdHlzY2FwZSUyMHdpdGglMjBzbW9reSUyMHNraWVzJTIwYW5kJTIwdGFsbCUyQyUyMG1ldGFsJTIwc3RydWN0dXJlcyUyMiUwQWltYWdlJTIwJTNEJTIwcGlwZShwcm9tcHQpLmltYWdlcyU1QjAlNUQ=",highlighted:`<span class="hljs-meta">>>> </span><span class="hljs-keyword">import</span> torch | |
| <span class="hljs-meta">>>> </span><span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> Lumina2Pipeline | |
| <span class="hljs-meta">>>> </span>pipe = Lumina2Pipeline.from_pretrained(<span class="hljs-string">"Alpha-VLLM/Lumina-Image-2.0"</span>, torch_dtype=torch.bfloat16) | |
| <span class="hljs-meta">>>> </span><span class="hljs-comment"># Enable memory optimizations.</span> | |
| <span class="hljs-meta">>>> </span>pipe.enable_model_cpu_offload() | |
| <span class="hljs-meta">>>> </span>prompt = <span class="hljs-string">"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"</span> | |
| <span class="hljs-meta">>>> </span>image = pipe(prompt).images[<span class="hljs-number">0</span>]`,wrap:!1}}),{c(){p=r("p"),p.textContent=x,y=i(),u(w.$$.fragment)},l(c){p=l(c,"P",{"data-svelte-h":!0}),v(p)!=="svelte-kvfsh7"&&(p.textContent=x),y=a(c),g(w.$$.fragment,c)},m(c,M){s(c,p,M),s(c,y,M),f(w,c,M),T=!0},p:lt,i(c){T||(h(w.$$.fragment,c),T=!0)},o(c){_(w.$$.fragment,c),T=!1},d(c){c&&(n(p),n(y)),b(w,c)}}}function yt(te){let p,x,y,w,T,c,M,Qe='<img alt="LoRA" src="https://img.shields.io/badge/LoRA-d8b4fe?style=flat"/>',me,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>",ve,F,we,R,Te,d,q,We,ne,et="Pipeline for text-to-image generation using Lumina-T2I.",Ce,ie,tt=`This model inherits from <a href="/docs/diffusers/pr_11234/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,de,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">"https://huggingface.co/Alpha-VLLM/Lumina-Image-2.0/blob/main/consolidated.00-of-01.pth"</span> | |
| transformer = Lumina2Transformer2DModel.from_single_file( | |
| ckpt_path, torch_dtype=torch.bfloat16 | |
| ) | |
| pipe = Lumina2Pipeline.from_pretrained( | |
| <span class="hljs-string">"Alpha-VLLM/Lumina-Image-2.0"</span>, transformer=transformer, torch_dtype=torch.bfloat16 | |
| ) | |
| pipe.enable_model_cpu_offload() | |
| image = pipe( | |
| <span class="hljs-string">"a cat holding a sign that says hello"</span>, | |
| generator=torch.Generator(<span class="hljs-string">"cpu"</span>).manual_seed(<span class="hljs-number">0</span>), | |
| ).images[<span class="hljs-number">0</span>] | |
| image.save(<span class="hljs-string">"lumina-single-file.png"</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">"https://huggingface.co/calcuis/lumina-gguf/blob/main/lumina2-q4_0.gguf"</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">"Alpha-VLLM/Lumina-Image-2.0"</span>, transformer=transformer, torch_dtype=torch.bfloat16 | |
| ) | |
| pipe.enable_model_cpu_offload() | |
| image = pipe( | |
| <span class="hljs-string">"a cat holding a sign that says hello"</span>, | |
| generator=torch.Generator(<span class="hljs-string">"cpu"</span>).manual_seed(<span class="hljs-number">0</span>), | |
| ).images[<span class="hljs-number">0</span>] | |
| image.save(<span class="hljs-string">"lumina-gguf.png"</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/pr_11234/en/api/models/autoencoderkl#diffusers.AutoencoderKL">AutoencoderKL</a>) — | |
| 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>) — | |
| Frozen Gemma2 text-encoder.`,name:"text_encoder"},{anchor:"diffusers.Lumina2Pipeline.tokenizer",description:`<strong>tokenizer</strong> (<code>GemmaTokenizer</code> or <code>GemmaTokenizerFast</code>) — | |
| Gemma tokenizer.`,name:"tokenizer"},{anchor:"diffusers.Lumina2Pipeline.transformer",description:`<strong>transformer</strong> (<a href="/docs/diffusers/pr_11234/en/api/models/transformer2d#diffusers.Transformer2DModel">Transformer2DModel</a>) — | |
| 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/pr_11234/en/api/schedulers/overview#diffusers.SchedulerMixin">SchedulerMixin</a>) — | |
| 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/vr_11234/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>) — | |
| 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>) — | |
| 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) — | |
| 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>) — | |
| 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) — | |
| Guidance scale as defined in <a href="https://arxiv.org/abs/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://arxiv.org/pdf/2205.11487.pdf" rel="nofollow">Imagen | |
| Paper</a>. Guidance scale is enabled by setting <code>guidance_scale > 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) — | |
| 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) — | |
| 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) — | |
| 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) — | |
| Corresponds to parameter eta (η) in the DDIM paper: <a href="https://arxiv.org/abs/2010.02502" rel="nofollow">https://arxiv.org/abs/2010.02502</a>. Only applies to | |
| <a href="/docs/diffusers/pr_11234/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>) — | |
| 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>) — | |
| 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>) — | |
| 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>) — 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>) — | |
| Pre-generated negative text embeddings. For Lumina-T2I this negative prompt should be "". 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>) — | |
| 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>"pil"</code>) — | |
| 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>) — | |
| 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> — | |
| 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>) — | |
| 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>) — | |
| 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>) — | |
| 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>) — | |
| 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>) — | |
| 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>) — | |
| Maximum sequence length to use with the <code>prompt</code>.`,name:"max_sequence_length"}],source:"https://github.com/huggingface/diffusers/blob/vr_11234/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/pr_11234/en/api/pipelines/stable_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/pr_11234/en/api/pipelines/stable_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/vr_11234/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/vr_11234/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/vr_11234/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/vr_11234/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>) — | |
| 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>) — | |
| 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 "".`,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>) — | |
| 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) — | |
| number of images that should be generated per prompt`,name:"num_images_per_prompt"},{anchor:"diffusers.Lumina2Pipeline.encode_prompt.device",description:`<strong>device</strong> — (<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>) — | |
| 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>) — | |
| Pre-generated negative text embeddings. For Lumina-T2I, it’s should be the embeddings of the "" 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>) — | |
| Maximum sequence length to use for the prompt.`,name:"max_sequence_length"}],source:"https://github.com/huggingface/diffusers/blob/vr_11234/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"),w=i(),u(T.$$.fragment),c=i(),M=r("div"),M.innerHTML=Qe,me=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,ve=i(),u(F.$$.fragment),we=i(),u(R.$$.fragment),Te=i(),d=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(),de=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),w=a(e),g(T.$$.fragment,e),c=a(e),M=l(e,"DIV",{class:!0,"data-svelte-h":!0}),v(M)!=="svelte-si9ct8"&&(M.innerHTML=Qe),me=a(e),j=l(e,"P",{"data-svelte-h":!0}),v(j)!=="svelte-1yt6rrf"&&(j.innerHTML=Ae),ce=a(e),E=l(e,"P",{"data-svelte-h":!0}),v(E)!=="svelte-1cwsb16"&&(E.textContent=Xe),ue=a(e),B=l(e,"P",{"data-svelte-h":!0}),v(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}),v(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}),v(H)!=="svelte-1sse30f"&&(H.innerHTML=Ke),ve=a(e),g(F.$$.fragment,e),we=a(e),g(R.$$.fragment,e),Te=a(e),d=l(e,"DIV",{class:!0});var m=k(d);g(q.$$.fragment,m),We=a(m),ne=l(m,"P",{"data-svelte-h":!0}),v(ne)!=="svelte-1ennvvi"&&(ne.textContent=et),Ce=a(m),ie=l(m,"P",{"data-svelte-h":!0}),v(ie)!=="svelte-j03few"&&(ie.innerHTML=tt),Pe=a(m),L=l(m,"DIV",{class:!0});var J=k(L);g(S.$$.fragment,J),Ze=a(J),ae=l(J,"P",{"data-svelte-h":!0}),v(ae)!=="svelte-v78lg8"&&(ae.textContent=nt),je=a(J),g(I.$$.fragment,J),J.forEach(n),Ee=a(m),G=l(m,"DIV",{class:!0});var $e=k(G);g(Q.$$.fragment,$e),Be=a($e),oe=l($e,"P",{"data-svelte-h":!0}),v(oe)!=="svelte-1s3c06i"&&(oe.innerHTML=it),$e.forEach(n),Ye=a(m),W=l(m,"DIV",{class:!0});var Je=k(W);g(A.$$.fragment,Je),Ve=a(Je),se=l(Je,"P",{"data-svelte-h":!0}),v(se)!=="svelte-pkn4ui"&&(se.innerHTML=at),Je.forEach(n),ze=a(m),C=l(m,"DIV",{class:!0});var ke=k(C);g(X.$$.fragment,ke),Ne=a(ke),re=l(ke,"P",{"data-svelte-h":!0}),v(re)!=="svelte-14bnrb6"&&(re.textContent=ot),ke.forEach(n),He=a(m),P=l(m,"DIV",{class:!0});var Ue=k(P);g(D.$$.fragment,Ue),Fe=a(Ue),le=l(Ue,"P",{"data-svelte-h":!0}),v(le)!=="svelte-1xwrf7t"&&(le.textContent=st),Ue.forEach(n),Re=a(m),Z=l(m,"DIV",{class:!0});var Ie=k(Z);g(O.$$.fragment,Ie),qe=a(Ie),pe=l(Ie,"P",{"data-svelte-h":!0}),v(pe)!=="svelte-16q0ax1"&&(pe.textContent=rt),Ie.forEach(n),m.forEach(n),Me=a(e),g(K.$$.fragment,e),xe=a(e),de=l(e,"P",{}),k(de).forEach(n),this.h()},h(){$(p,"name","hf:doc:metadata"),$(p,"content",vt),$(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"),$(d,"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,w,t),f(T,e,t),s(e,c,t),s(e,M,t),s(e,me,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,ve,t),f(F,e,t),s(e,we,t),f(R,e,t),s(e,Te,t),s(e,d,t),f(q,d,null),o(d,We),o(d,ne),o(d,Ce),o(d,ie),o(d,Pe),o(d,L),f(S,L,null),o(L,Ze),o(L,ae),o(L,je),f(I,L,null),o(d,Ee),o(d,G),f(Q,G,null),o(G,Be),o(G,oe),o(d,Ye),o(d,W),f(A,W,null),o(W,Ve),o(W,se),o(d,ze),o(d,C),f(X,C,null),o(C,Ne),o(C,re),o(d,He),o(d,P),f(D,P,null),o(P,Fe),o(P,le),o(d,Re),o(d,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,de,t),Le=!0},p(e,[t]){const m={};t&2&&(m.$$scope={dirty:t,ctx:e}),U.$set(m);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(w),n(c),n(M),n(me),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(ve),n(we),n(Te),n(d),n(Me),n(xe),n(de)),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 vt='{"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 wt(te){return dt(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Ut extends mt{constructor(p){super(),ct(this,p,wt,yt,pt,{})}}export{Ut as component}; | |
Xet Storage Details
- Size:
- 35.7 kB
- Xet hash:
- cab369c7b4ca119f378d35aa70542c626c81475406f972e3064964134df800f4
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.