Buckets:
| import{s as dt,o as ft,n as ge}from"../chunks/scheduler.8c3d61f6.js";import{S as ut,i as mt,g as c,s as r,r as _,A as gt,h as d,f as o,c as p,j as Z,u as y,x as U,k as C,y as a,a as u,v as w,d as $,t as v,w as T}from"../chunks/index.da70eac4.js";import{T as qe}from"../chunks/Tip.1d9b8c37.js";import{D as z}from"../chunks/Docstring.ee4b6913.js";import{C as Oe}from"../chunks/CodeBlock.00a903b3.js";import{E as Qe}from"../chunks/ExampleCodeBlock.f7bd2c1f.js";import{H as Ae,E as ht}from"../chunks/EditOnGithub.1e64e623.js";function bt(J){let n,b='Make sure to check out the Stable Diffusion <a href="overview#tips">Tips</a> section to learn how to explore the tradeoff between scheduler speed and quality, and how to reuse pipeline components efficiently!',i,s,m='If you’re interested in using one of the official checkpoints for a task, explore the <a href="https://huggingface.co/CompVis" rel="nofollow">CompVis</a>, <a href="https://huggingface.co/runwayml" rel="nofollow">Runway</a>, and <a href="https://huggingface.co/stabilityai" rel="nofollow">Stability AI</a> Hub organizations!';return{c(){n=c("p"),n.innerHTML=b,i=r(),s=c("p"),s.innerHTML=m},l(t){n=d(t,"P",{"data-svelte-h":!0}),U(n)!=="svelte-1j961ct"&&(n.innerHTML=b),i=p(t),s=d(t,"P",{"data-svelte-h":!0}),U(s)!=="svelte-z4pn9c"&&(s.innerHTML=m)},m(t,h){u(t,n,h),u(t,i,h),u(t,s,h)},p:ge,d(t){t&&(o(n),o(i),o(s))}}}function _t(J){let n,b="Examples:",i,s,m;return s=new Oe({props:{code:"ZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMFN0YWJsZURpZmZ1c2lvbkxhdGVudFVwc2NhbGVQaXBlbGluZSUyQyUyMFN0YWJsZURpZmZ1c2lvblBpcGVsaW5lJTBBaW1wb3J0JTIwdG9yY2glMEElMEElMEFwaXBlbGluZSUyMCUzRCUyMFN0YWJsZURpZmZ1c2lvblBpcGVsaW5lLmZyb21fcHJldHJhaW5lZCglMEElMjAlMjAlMjAlMjAlMjJDb21wVmlzJTJGc3RhYmxlLWRpZmZ1c2lvbi12MS00JTIyJTJDJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5mbG9hdDE2JTBBKSUwQXBpcGVsaW5lLnRvKCUyMmN1ZGElMjIpJTBBJTBBbW9kZWxfaWQlMjAlM0QlMjAlMjJzdGFiaWxpdHlhaSUyRnNkLXgyLWxhdGVudC11cHNjYWxlciUyMiUwQXVwc2NhbGVyJTIwJTNEJTIwU3RhYmxlRGlmZnVzaW9uTGF0ZW50VXBzY2FsZVBpcGVsaW5lLmZyb21fcHJldHJhaW5lZChtb2RlbF9pZCUyQyUyMHRvcmNoX2R0eXBlJTNEdG9yY2guZmxvYXQxNiklMEF1cHNjYWxlci50byglMjJjdWRhJTIyKSUwQSUwQXByb21wdCUyMCUzRCUyMCUyMmElMjBwaG90byUyMG9mJTIwYW4lMjBhc3Ryb25hdXQlMjBoaWdoJTIwcmVzb2x1dGlvbiUyQyUyMHVucmVhbCUyMGVuZ2luZSUyQyUyMHVsdHJhJTIwcmVhbGlzdGljJTIyJTBBZ2VuZXJhdG9yJTIwJTNEJTIwdG9yY2gubWFudWFsX3NlZWQoMzMpJTBBJTBBbG93X3Jlc19sYXRlbnRzJTIwJTNEJTIwcGlwZWxpbmUocHJvbXB0JTJDJTIwZ2VuZXJhdG9yJTNEZ2VuZXJhdG9yJTJDJTIwb3V0cHV0X3R5cGUlM0QlMjJsYXRlbnQlMjIpLmltYWdlcyUwQSUwQXdpdGglMjB0b3JjaC5ub19ncmFkKCklM0ElMEElMjAlMjAlMjAlMjBpbWFnZSUyMCUzRCUyMHBpcGVsaW5lLmRlY29kZV9sYXRlbnRzKGxvd19yZXNfbGF0ZW50cyklMEFpbWFnZSUyMCUzRCUyMHBpcGVsaW5lLm51bXB5X3RvX3BpbChpbWFnZSklNUIwJTVEJTBBJTBBaW1hZ2Uuc2F2ZSglMjIuLiUyRmltYWdlcyUyRmExLnBuZyUyMiklMEElMEF1cHNjYWxlZF9pbWFnZSUyMCUzRCUyMHVwc2NhbGVyKCUwQSUyMCUyMCUyMCUyMHByb21wdCUzRHByb21wdCUyQyUwQSUyMCUyMCUyMCUyMGltYWdlJTNEbG93X3Jlc19sYXRlbnRzJTJDJTBBJTIwJTIwJTIwJTIwbnVtX2luZmVyZW5jZV9zdGVwcyUzRDIwJTJDJTBBJTIwJTIwJTIwJTIwZ3VpZGFuY2Vfc2NhbGUlM0QwJTJDJTBBJTIwJTIwJTIwJTIwZ2VuZXJhdG9yJTNEZ2VuZXJhdG9yJTJDJTBBKS5pbWFnZXMlNUIwJTVEJTBBJTBBdXBzY2FsZWRfaW1hZ2Uuc2F2ZSglMjIuLiUyRmltYWdlcyUyRmEyLnBuZyUyMik=",highlighted:`<span class="hljs-meta">>>> </span><span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> StableDiffusionLatentUpscalePipeline, StableDiffusionPipeline | |
| <span class="hljs-meta">>>> </span><span class="hljs-keyword">import</span> torch | |
| <span class="hljs-meta">>>> </span>pipeline = StableDiffusionPipeline.from_pretrained( | |
| <span class="hljs-meta">... </span> <span class="hljs-string">"CompVis/stable-diffusion-v1-4"</span>, torch_dtype=torch.float16 | |
| <span class="hljs-meta">... </span>) | |
| <span class="hljs-meta">>>> </span>pipeline.to(<span class="hljs-string">"cuda"</span>) | |
| <span class="hljs-meta">>>> </span>model_id = <span class="hljs-string">"stabilityai/sd-x2-latent-upscaler"</span> | |
| <span class="hljs-meta">>>> </span>upscaler = StableDiffusionLatentUpscalePipeline.from_pretrained(model_id, torch_dtype=torch.float16) | |
| <span class="hljs-meta">>>> </span>upscaler.to(<span class="hljs-string">"cuda"</span>) | |
| <span class="hljs-meta">>>> </span>prompt = <span class="hljs-string">"a photo of an astronaut high resolution, unreal engine, ultra realistic"</span> | |
| <span class="hljs-meta">>>> </span>generator = torch.manual_seed(<span class="hljs-number">33</span>) | |
| <span class="hljs-meta">>>> </span>low_res_latents = pipeline(prompt, generator=generator, output_type=<span class="hljs-string">"latent"</span>).images | |
| <span class="hljs-meta">>>> </span><span class="hljs-keyword">with</span> torch.no_grad(): | |
| <span class="hljs-meta">... </span> image = pipeline.decode_latents(low_res_latents) | |
| <span class="hljs-meta">>>> </span>image = pipeline.numpy_to_pil(image)[<span class="hljs-number">0</span>] | |
| <span class="hljs-meta">>>> </span>image.save(<span class="hljs-string">"../images/a1.png"</span>) | |
| <span class="hljs-meta">>>> </span>upscaled_image = upscaler( | |
| <span class="hljs-meta">... </span> prompt=prompt, | |
| <span class="hljs-meta">... </span> image=low_res_latents, | |
| <span class="hljs-meta">... </span> num_inference_steps=<span class="hljs-number">20</span>, | |
| <span class="hljs-meta">... </span> guidance_scale=<span class="hljs-number">0</span>, | |
| <span class="hljs-meta">... </span> generator=generator, | |
| <span class="hljs-meta">... </span>).images[<span class="hljs-number">0</span>] | |
| <span class="hljs-meta">>>> </span>upscaled_image.save(<span class="hljs-string">"../images/a2.png"</span>)`,wrap:!1}}),{c(){n=c("p"),n.textContent=b,i=r(),_(s.$$.fragment)},l(t){n=d(t,"P",{"data-svelte-h":!0}),U(n)!=="svelte-kvfsh7"&&(n.textContent=b),i=p(t),y(s.$$.fragment,t)},m(t,h){u(t,n,h),u(t,i,h),w(s,t,h),m=!0},p:ge,i(t){m||($(s.$$.fragment,t),m=!0)},o(t){v(s.$$.fragment,t),m=!1},d(t){t&&(o(n),o(i)),T(s,t)}}}function yt(J){let n,b=`⚠️ Don’t enable attention slicing if you’re already using <code>scaled_dot_product_attention</code> (SDPA) from PyTorch | |
| 2.0 or xFormers. These attention computations are already very memory efficient so you won’t need to enable | |
| this function. If you enable attention slicing with SDPA or xFormers, it can lead to serious slow downs!`;return{c(){n=c("p"),n.innerHTML=b},l(i){n=d(i,"P",{"data-svelte-h":!0}),U(n)!=="svelte-ackzsn"&&(n.innerHTML=b)},m(i,s){u(i,n,s)},p:ge,d(i){i&&o(n)}}}function wt(J){let n,b="Examples:",i,s,m;return s=new Oe({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwU3RhYmxlRGlmZnVzaW9uUGlwZWxpbmUlMEElMEFwaXBlJTIwJTNEJTIwU3RhYmxlRGlmZnVzaW9uUGlwZWxpbmUuZnJvbV9wcmV0cmFpbmVkKCUwQSUyMCUyMCUyMCUyMCUyMnJ1bndheW1sJTJGc3RhYmxlLWRpZmZ1c2lvbi12MS01JTIyJTJDJTBBJTIwJTIwJTIwJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5mbG9hdDE2JTJDJTBBJTIwJTIwJTIwJTIwdXNlX3NhZmV0ZW5zb3JzJTNEVHJ1ZSUyQyUwQSklMEElMEFwcm9tcHQlMjAlM0QlMjAlMjJhJTIwcGhvdG8lMjBvZiUyMGFuJTIwYXN0cm9uYXV0JTIwcmlkaW5nJTIwYSUyMGhvcnNlJTIwb24lMjBtYXJzJTIyJTBBcGlwZS5lbmFibGVfYXR0ZW50aW9uX3NsaWNpbmcoKSUwQWltYWdlJTIwJTNEJTIwcGlwZShwcm9tcHQpLmltYWdlcyU1QjAlNUQ=",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> StableDiffusionPipeline | |
| <span class="hljs-meta">>>> </span>pipe = StableDiffusionPipeline.from_pretrained( | |
| <span class="hljs-meta">... </span> <span class="hljs-string">"runwayml/stable-diffusion-v1-5"</span>, | |
| <span class="hljs-meta">... </span> torch_dtype=torch.float16, | |
| <span class="hljs-meta">... </span> use_safetensors=<span class="hljs-literal">True</span>, | |
| <span class="hljs-meta">... </span>) | |
| <span class="hljs-meta">>>> </span>prompt = <span class="hljs-string">"a photo of an astronaut riding a horse on mars"</span> | |
| <span class="hljs-meta">>>> </span>pipe.enable_attention_slicing() | |
| <span class="hljs-meta">>>> </span>image = pipe(prompt).images[<span class="hljs-number">0</span>]`,wrap:!1}}),{c(){n=c("p"),n.textContent=b,i=r(),_(s.$$.fragment)},l(t){n=d(t,"P",{"data-svelte-h":!0}),U(n)!=="svelte-kvfsh7"&&(n.textContent=b),i=p(t),y(s.$$.fragment,t)},m(t,h){u(t,n,h),u(t,i,h),w(s,t,h),m=!0},p:ge,i(t){m||($(s.$$.fragment,t),m=!0)},o(t){v(s.$$.fragment,t),m=!1},d(t){t&&(o(n),o(i)),T(s,t)}}}function $t(J){let n,b=`⚠️ When memory efficient attention and sliced attention are both enabled, memory efficient attention takes | |
| precedent.`;return{c(){n=c("p"),n.textContent=b},l(i){n=d(i,"P",{"data-svelte-h":!0}),U(n)!=="svelte-17p1lpg"&&(n.textContent=b)},m(i,s){u(i,n,s)},p:ge,d(i){i&&o(n)}}}function vt(J){let n,b="Examples:",i,s,m;return s=new Oe({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwRGlmZnVzaW9uUGlwZWxpbmUlMEFmcm9tJTIweGZvcm1lcnMub3BzJTIwaW1wb3J0JTIwTWVtb3J5RWZmaWNpZW50QXR0ZW50aW9uRmxhc2hBdHRlbnRpb25PcCUwQSUwQXBpcGUlMjAlM0QlMjBEaWZmdXNpb25QaXBlbGluZS5mcm9tX3ByZXRyYWluZWQoJTIyc3RhYmlsaXR5YWklMkZzdGFibGUtZGlmZnVzaW9uLTItMSUyMiUyQyUyMHRvcmNoX2R0eXBlJTNEdG9yY2guZmxvYXQxNiklMEFwaXBlJTIwJTNEJTIwcGlwZS50byglMjJjdWRhJTIyKSUwQXBpcGUuZW5hYmxlX3hmb3JtZXJzX21lbW9yeV9lZmZpY2llbnRfYXR0ZW50aW9uKGF0dGVudGlvbl9vcCUzRE1lbW9yeUVmZmljaWVudEF0dGVudGlvbkZsYXNoQXR0ZW50aW9uT3ApJTBBJTIzJTIwV29ya2Fyb3VuZCUyMGZvciUyMG5vdCUyMGFjY2VwdGluZyUyMGF0dGVudGlvbiUyMHNoYXBlJTIwdXNpbmclMjBWQUUlMjBmb3IlMjBGbGFzaCUyMEF0dGVudGlvbiUwQXBpcGUudmFlLmVuYWJsZV94Zm9ybWVyc19tZW1vcnlfZWZmaWNpZW50X2F0dGVudGlvbihhdHRlbnRpb25fb3AlM0ROb25lKQ==",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> DiffusionPipeline | |
| <span class="hljs-meta">>>> </span><span class="hljs-keyword">from</span> xformers.ops <span class="hljs-keyword">import</span> MemoryEfficientAttentionFlashAttentionOp | |
| <span class="hljs-meta">>>> </span>pipe = DiffusionPipeline.from_pretrained(<span class="hljs-string">"stabilityai/stable-diffusion-2-1"</span>, torch_dtype=torch.float16) | |
| <span class="hljs-meta">>>> </span>pipe = pipe.to(<span class="hljs-string">"cuda"</span>) | |
| <span class="hljs-meta">>>> </span>pipe.enable_xformers_memory_efficient_attention(attention_op=MemoryEfficientAttentionFlashAttentionOp) | |
| <span class="hljs-meta">>>> </span><span class="hljs-comment"># Workaround for not accepting attention shape using VAE for Flash Attention</span> | |
| <span class="hljs-meta">>>> </span>pipe.vae.enable_xformers_memory_efficient_attention(attention_op=<span class="hljs-literal">None</span>)`,wrap:!1}}),{c(){n=c("p"),n.textContent=b,i=r(),_(s.$$.fragment)},l(t){n=d(t,"P",{"data-svelte-h":!0}),U(n)!=="svelte-kvfsh7"&&(n.textContent=b),i=p(t),y(s.$$.fragment,t)},m(t,h){u(t,n,h),u(t,i,h),w(s,t,h),m=!0},p:ge,i(t){m||($(s.$$.fragment,t),m=!0)},o(t){v(s.$$.fragment,t),m=!1},d(t){t&&(o(n),o(i)),T(s,t)}}}function Tt(J){let n,b,i,s,m,t,h,Ke='The Stable Diffusion latent upscaler model was created by <a href="https://github.com/crowsonkb/k-diffusion" rel="nofollow">Katherine Crowson</a> in collaboration with <a href="https://stability.ai/" rel="nofollow">Stability AI</a>. It is used to enhance the output image resolution by a factor of 2 (see this demo <a href="https://colab.research.google.com/drive/1o1qYJcFeywzCIdkfKJy7cTpgZTCM2EI4" rel="nofollow">notebook</a> for a demonstration of the original implementation).',be,P,_e,N,ye,f,F,Me,ae,et="Pipeline for upscaling Stable Diffusion output image resolution by a factor of 2.",je,oe,tt=`This model inherits from <a href="/docs/diffusers/v0.30.0/en/api/pipelines/overview#diffusers.DiffusionPipeline">DiffusionPipeline</a>. Check the superclass documentation for the generic methods | |
| implemented for all pipelines (downloading, saving, running on a particular device, etc.).`,Ie,ie,nt="The pipeline also inherits the following loading methods:",De,le,st='<li><a href="/docs/diffusers/v0.30.0/en/api/loaders/single_file#diffusers.loaders.FromSingleFileMixin.from_single_file">from_single_file()</a> for loading <code>.ckpt</code> files</li>',Ze,D,Y,Ce,re,at="The call function to the pipeline for generation.",Le,G,Se,W,H,Pe,pe,ot=`Offloads all models to CPU using 🤗 Accelerate, significantly reducing memory usage. When called, the state | |
| dicts of all <code>torch.nn.Module</code> components (except those in <code>self._exclude_from_cpu_offload</code>) are saved to CPU | |
| and then moved to <code>torch.device('meta')</code> and loaded to GPU only when their specific submodule has its <code>forward</code> | |
| method called. Offloading happens on a submodule basis. Memory savings are higher than with | |
| <code>enable_model_cpu_offload</code>, but performance is lower.`,Ge,x,q,We,ce,it=`Enable sliced attention computation. When this option is enabled, the attention module splits the input tensor | |
| in slices to compute attention in several steps. For more than one attention head, the computation is performed | |
| sequentially over each head. This is useful to save some memory in exchange for a small speed decrease.`,ke,k,Ve,V,Be,B,Q,Ee,de,lt=`Disable sliced attention computation. If <code>enable_attention_slicing</code> was previously called, attention is | |
| computed in one step.`,Re,M,A,Xe,fe,rt=`Enable memory efficient attention from <a href="https://facebookresearch.github.io/xformers/" rel="nofollow">xFormers</a>. When this | |
| option is enabled, you should observe lower GPU memory usage and a potential speed up during inference. Speed | |
| up during training is not guaranteed.`,ze,E,Ne,R,Fe,X,O,Ye,ue,pt='Disable memory efficient attention from <a href="https://facebookresearch.github.io/xformers/" rel="nofollow">xFormers</a>.',we,K,$e,L,ee,He,me,ct="Output class for Stable Diffusion pipelines.",ve,te,Te,he,Ue;return m=new Ae({props:{title:"Latent upscaler",local:"latent-upscaler",headingTag:"h1"}}),P=new qe({props:{$$slots:{default:[bt]},$$scope:{ctx:J}}}),N=new Ae({props:{title:"StableDiffusionLatentUpscalePipeline",local:"diffusers.StableDiffusionLatentUpscalePipeline",headingTag:"h2"}}),F=new z({props:{name:"class diffusers.StableDiffusionLatentUpscalePipeline",anchor:"diffusers.StableDiffusionLatentUpscalePipeline",parameters:[{name:"vae",val:": AutoencoderKL"},{name:"text_encoder",val:": CLIPTextModel"},{name:"tokenizer",val:": CLIPTokenizer"},{name:"unet",val:": UNet2DConditionModel"},{name:"scheduler",val:": EulerDiscreteScheduler"}],parametersDescription:[{anchor:"diffusers.StableDiffusionLatentUpscalePipeline.vae",description:`<strong>vae</strong> (<a href="/docs/diffusers/v0.30.0/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.StableDiffusionLatentUpscalePipeline.text_encoder",description:`<strong>text_encoder</strong> (<a href="https://huggingface.co/docs/transformers/v4.44.0/en/model_doc/clip#transformers.CLIPTextModel" rel="nofollow">CLIPTextModel</a>) — | |
| Frozen text-encoder (<a href="https://huggingface.co/openai/clip-vit-large-patch14" rel="nofollow">clip-vit-large-patch14</a>).`,name:"text_encoder"},{anchor:"diffusers.StableDiffusionLatentUpscalePipeline.tokenizer",description:`<strong>tokenizer</strong> (<a href="https://huggingface.co/docs/transformers/v4.44.0/en/model_doc/clip#transformers.CLIPTokenizer" rel="nofollow">CLIPTokenizer</a>) — | |
| A <code>CLIPTokenizer</code> to tokenize text.`,name:"tokenizer"},{anchor:"diffusers.StableDiffusionLatentUpscalePipeline.unet",description:`<strong>unet</strong> (<a href="/docs/diffusers/v0.30.0/en/api/models/unet2d-cond#diffusers.UNet2DConditionModel">UNet2DConditionModel</a>) — | |
| A <code>UNet2DConditionModel</code> to denoise the encoded image latents.`,name:"unet"},{anchor:"diffusers.StableDiffusionLatentUpscalePipeline.scheduler",description:`<strong>scheduler</strong> (<a href="/docs/diffusers/v0.30.0/en/api/schedulers/overview#diffusers.SchedulerMixin">SchedulerMixin</a>) — | |
| A <a href="/docs/diffusers/v0.30.0/en/api/schedulers/euler#diffusers.EulerDiscreteScheduler">EulerDiscreteScheduler</a> to be used in combination with <code>unet</code> to denoise the encoded image latents.`,name:"scheduler"}],source:"https://github.com/huggingface/diffusers/blob/v0.30.0/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_latent_upscale.py#L63"}}),Y=new z({props:{name:"__call__",anchor:"diffusers.StableDiffusionLatentUpscalePipeline.__call__",parameters:[{name:"prompt",val:": Union"},{name:"image",val:": Union = None"},{name:"num_inference_steps",val:": int = 75"},{name:"guidance_scale",val:": float = 9.0"},{name:"negative_prompt",val:": Union = None"},{name:"generator",val:": Union = None"},{name:"latents",val:": Optional = None"},{name:"output_type",val:": Optional = 'pil'"},{name:"return_dict",val:": bool = True"},{name:"callback",val:": Optional = None"},{name:"callback_steps",val:": int = 1"}],parametersDescription:[{anchor:"diffusers.StableDiffusionLatentUpscalePipeline.__call__.prompt",description:`<strong>prompt</strong> (<code>str</code> or <code>List[str]</code>) — | |
| The prompt or prompts to guide image upscaling.`,name:"prompt"},{anchor:"diffusers.StableDiffusionLatentUpscalePipeline.__call__.image",description:`<strong>image</strong> (<code>torch.Tensor</code>, <code>PIL.Image.Image</code>, <code>np.ndarray</code>, <code>List[torch.Tensor]</code>, <code>List[PIL.Image.Image]</code>, or <code>List[np.ndarray]</code>) — | |
| <code>Image</code> or tensor representing an image batch to be upscaled. If it’s a tensor, it can be either a | |
| latent output from a Stable Diffusion model or an image tensor in the range <code>[-1, 1]</code>. It is considered | |
| a <code>latent</code> if <code>image.shape[1]</code> is <code>4</code>; otherwise, it is considered to be an image representation and | |
| encoded using this pipeline’s <code>vae</code> encoder.`,name:"image"},{anchor:"diffusers.StableDiffusionLatentUpscalePipeline.__call__.num_inference_steps",description:`<strong>num_inference_steps</strong> (<code>int</code>, <em>optional</em>, defaults to 50) — | |
| 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.StableDiffusionLatentUpscalePipeline.__call__.guidance_scale",description:`<strong>guidance_scale</strong> (<code>float</code>, <em>optional</em>, defaults to 7.5) — | |
| A higher guidance scale value encourages the model to generate images closely linked to the text | |
| <code>prompt</code> at the expense of lower image quality. Guidance scale is enabled when <code>guidance_scale > 1</code>.`,name:"guidance_scale"},{anchor:"diffusers.StableDiffusionLatentUpscalePipeline.__call__.negative_prompt",description:`<strong>negative_prompt</strong> (<code>str</code> or <code>List[str]</code>, <em>optional</em>) — | |
| The prompt or prompts to guide what to not include in image generation. If not defined, you need to | |
| pass <code>negative_prompt_embeds</code> instead. Ignored when not using guidance (<code>guidance_scale < 1</code>).`,name:"negative_prompt"},{anchor:"diffusers.StableDiffusionLatentUpscalePipeline.__call__.eta",description:`<strong>eta</strong> (<code>float</code>, <em>optional</em>, defaults to 0.0) — | |
| Corresponds to parameter eta (η) from the <a href="https://arxiv.org/abs/2010.02502" rel="nofollow">DDIM</a> paper. Only applies | |
| to the <a href="/docs/diffusers/v0.30.0/en/api/schedulers/ddim#diffusers.DDIMScheduler">DDIMScheduler</a>, and is ignored in other schedulers.`,name:"eta"},{anchor:"diffusers.StableDiffusionLatentUpscalePipeline.__call__.generator",description:`<strong>generator</strong> (<code>torch.Generator</code> or <code>List[torch.Generator]</code>, <em>optional</em>) — | |
| A <a href="https://pytorch.org/docs/stable/generated/torch.Generator.html" rel="nofollow"><code>torch.Generator</code></a> to make | |
| generation deterministic.`,name:"generator"},{anchor:"diffusers.StableDiffusionLatentUpscalePipeline.__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 is generated by sampling using the supplied random <code>generator</code>.`,name:"latents"},{anchor:"diffusers.StableDiffusionLatentUpscalePipeline.__call__.output_type",description:`<strong>output_type</strong> (<code>str</code>, <em>optional</em>, defaults to <code>"pil"</code>) — | |
| The output format of the generated image. Choose between <code>PIL.Image</code> or <code>np.array</code>.`,name:"output_type"},{anchor:"diffusers.StableDiffusionLatentUpscalePipeline.__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 <a href="/docs/diffusers/v0.30.0/en/api/pipelines/stable_diffusion/image_variation#diffusers.pipelines.stable_diffusion.StableDiffusionPipelineOutput">StableDiffusionPipelineOutput</a> instead of a | |
| plain tuple.`,name:"return_dict"},{anchor:"diffusers.StableDiffusionLatentUpscalePipeline.__call__.callback",description:`<strong>callback</strong> (<code>Callable</code>, <em>optional</em>) — | |
| A function that calls every <code>callback_steps</code> steps during inference. The function is called with the | |
| following arguments: <code>callback(step: int, timestep: int, latents: torch.Tensor)</code>.`,name:"callback"},{anchor:"diffusers.StableDiffusionLatentUpscalePipeline.__call__.callback_steps",description:`<strong>callback_steps</strong> (<code>int</code>, <em>optional</em>, defaults to 1) — | |
| The frequency at which the <code>callback</code> function is called. If not specified, the callback is called at | |
| every step.`,name:"callback_steps"}],source:"https://github.com/huggingface/diffusers/blob/v0.30.0/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_latent_upscale.py#L261",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p>If <code>return_dict</code> is <code>True</code>, <a | |
| href="/docs/diffusers/v0.30.0/en/api/pipelines/stable_diffusion/image_variation#diffusers.pipelines.stable_diffusion.StableDiffusionPipelineOutput" | |
| >StableDiffusionPipelineOutput</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/v0.30.0/en/api/pipelines/stable_diffusion/image_variation#diffusers.pipelines.stable_diffusion.StableDiffusionPipelineOutput" | |
| >StableDiffusionPipelineOutput</a> or <code>tuple</code></p> | |
| `}}),G=new Qe({props:{anchor:"diffusers.StableDiffusionLatentUpscalePipeline.__call__.example",$$slots:{default:[_t]},$$scope:{ctx:J}}}),H=new z({props:{name:"enable_sequential_cpu_offload",anchor:"diffusers.StableDiffusionLatentUpscalePipeline.enable_sequential_cpu_offload",parameters:[{name:"gpu_id",val:": Optional = None"},{name:"device",val:": Union = 'cuda'"}],parametersDescription:[{anchor:"diffusers.StableDiffusionLatentUpscalePipeline.enable_sequential_cpu_offload.gpu_id",description:`<strong>gpu_id</strong> (<code>int</code>, <em>optional</em>) — | |
| The ID of the accelerator that shall be used in inference. If not specified, it will default to 0.`,name:"gpu_id"},{anchor:"diffusers.StableDiffusionLatentUpscalePipeline.enable_sequential_cpu_offload.device",description:`<strong>device</strong> (<code>torch.Device</code> or <code>str</code>, <em>optional</em>, defaults to “cuda”) — | |
| The PyTorch device type of the accelerator that shall be used in inference. If not specified, it will | |
| default to “cuda”.`,name:"device"}],source:"https://github.com/huggingface/diffusers/blob/v0.30.0/src/diffusers/pipelines/pipeline_utils.py#L1101"}}),q=new z({props:{name:"enable_attention_slicing",anchor:"diffusers.StableDiffusionLatentUpscalePipeline.enable_attention_slicing",parameters:[{name:"slice_size",val:": Union = 'auto'"}],parametersDescription:[{anchor:"diffusers.StableDiffusionLatentUpscalePipeline.enable_attention_slicing.slice_size",description:`<strong>slice_size</strong> (<code>str</code> or <code>int</code>, <em>optional</em>, defaults to <code>"auto"</code>) — | |
| When <code>"auto"</code>, halves the input to the attention heads, so attention will be computed in two steps. If | |
| <code>"max"</code>, maximum amount of memory will be saved by running only one slice at a time. If a number is | |
| provided, uses as many slices as <code>attention_head_dim // slice_size</code>. In this case, <code>attention_head_dim</code> | |
| must be a multiple of <code>slice_size</code>.`,name:"slice_size"}],source:"https://github.com/huggingface/diffusers/blob/v0.30.0/src/diffusers/pipelines/pipeline_utils.py#L1691"}}),k=new qe({props:{warning:!0,$$slots:{default:[yt]},$$scope:{ctx:J}}}),V=new Qe({props:{anchor:"diffusers.StableDiffusionLatentUpscalePipeline.enable_attention_slicing.example",$$slots:{default:[wt]},$$scope:{ctx:J}}}),Q=new z({props:{name:"disable_attention_slicing",anchor:"diffusers.StableDiffusionLatentUpscalePipeline.disable_attention_slicing",parameters:[],source:"https://github.com/huggingface/diffusers/blob/v0.30.0/src/diffusers/pipelines/pipeline_utils.py#L1731"}}),A=new z({props:{name:"enable_xformers_memory_efficient_attention",anchor:"diffusers.StableDiffusionLatentUpscalePipeline.enable_xformers_memory_efficient_attention",parameters:[{name:"attention_op",val:": Optional = None"}],parametersDescription:[{anchor:"diffusers.StableDiffusionLatentUpscalePipeline.enable_xformers_memory_efficient_attention.attention_op",description:`<strong>attention_op</strong> (<code>Callable</code>, <em>optional</em>) — | |
| Override the default <code>None</code> operator for use as <code>op</code> argument to the | |
| <a href="https://facebookresearch.github.io/xformers/components/ops.html#xformers.ops.memory_efficient_attention" rel="nofollow"><code>memory_efficient_attention()</code></a> | |
| function of xFormers.`,name:"attention_op"}],source:"https://github.com/huggingface/diffusers/blob/v0.30.0/src/diffusers/pipelines/pipeline_utils.py#L1630"}}),E=new qe({props:{warning:!0,$$slots:{default:[$t]},$$scope:{ctx:J}}}),R=new Qe({props:{anchor:"diffusers.StableDiffusionLatentUpscalePipeline.enable_xformers_memory_efficient_attention.example",$$slots:{default:[vt]},$$scope:{ctx:J}}}),O=new z({props:{name:"disable_xformers_memory_efficient_attention",anchor:"diffusers.StableDiffusionLatentUpscalePipeline.disable_xformers_memory_efficient_attention",parameters:[],source:"https://github.com/huggingface/diffusers/blob/v0.30.0/src/diffusers/pipelines/pipeline_utils.py#L1665"}}),K=new Ae({props:{title:"StableDiffusionPipelineOutput",local:"diffusers.pipelines.stable_diffusion.StableDiffusionPipelineOutput",headingTag:"h2"}}),ee=new z({props:{name:"class diffusers.pipelines.stable_diffusion.StableDiffusionPipelineOutput",anchor:"diffusers.pipelines.stable_diffusion.StableDiffusionPipelineOutput",parameters:[{name:"images",val:": Union"},{name:"nsfw_content_detected",val:": Optional"}],parametersDescription:[{anchor:"diffusers.pipelines.stable_diffusion.StableDiffusionPipelineOutput.images",description:`<strong>images</strong> (<code>List[PIL.Image.Image]</code> or <code>np.ndarray</code>) — | |
| List of denoised PIL images of length <code>batch_size</code> or NumPy array of shape <code>(batch_size, height, width, num_channels)</code>.`,name:"images"},{anchor:"diffusers.pipelines.stable_diffusion.StableDiffusionPipelineOutput.nsfw_content_detected",description:`<strong>nsfw_content_detected</strong> (<code>List[bool]</code>) — | |
| List indicating whether the corresponding generated image contains “not-safe-for-work” (nsfw) content or | |
| <code>None</code> if safety checking could not be performed.`,name:"nsfw_content_detected"}],source:"https://github.com/huggingface/diffusers/blob/v0.30.0/src/diffusers/pipelines/stable_diffusion/pipeline_output.py#L10"}}),te=new ht({props:{source:"https://github.com/huggingface/diffusers/blob/main/docs/source/en/api/pipelines/stable_diffusion/latent_upscale.md"}}),{c(){n=c("meta"),b=r(),i=c("p"),s=r(),_(m.$$.fragment),t=r(),h=c("p"),h.innerHTML=Ke,be=r(),_(P.$$.fragment),_e=r(),_(N.$$.fragment),ye=r(),f=c("div"),_(F.$$.fragment),Me=r(),ae=c("p"),ae.textContent=et,je=r(),oe=c("p"),oe.innerHTML=tt,Ie=r(),ie=c("p"),ie.textContent=nt,De=r(),le=c("ul"),le.innerHTML=st,Ze=r(),D=c("div"),_(Y.$$.fragment),Ce=r(),re=c("p"),re.textContent=at,Le=r(),_(G.$$.fragment),Se=r(),W=c("div"),_(H.$$.fragment),Pe=r(),pe=c("p"),pe.innerHTML=ot,Ge=r(),x=c("div"),_(q.$$.fragment),We=r(),ce=c("p"),ce.textContent=it,ke=r(),_(k.$$.fragment),Ve=r(),_(V.$$.fragment),Be=r(),B=c("div"),_(Q.$$.fragment),Ee=r(),de=c("p"),de.innerHTML=lt,Re=r(),M=c("div"),_(A.$$.fragment),Xe=r(),fe=c("p"),fe.innerHTML=rt,ze=r(),_(E.$$.fragment),Ne=r(),_(R.$$.fragment),Fe=r(),X=c("div"),_(O.$$.fragment),Ye=r(),ue=c("p"),ue.innerHTML=pt,we=r(),_(K.$$.fragment),$e=r(),L=c("div"),_(ee.$$.fragment),He=r(),me=c("p"),me.textContent=ct,ve=r(),_(te.$$.fragment),Te=r(),he=c("p"),this.h()},l(e){const l=gt("svelte-u9bgzb",document.head);n=d(l,"META",{name:!0,content:!0}),l.forEach(o),b=p(e),i=d(e,"P",{}),Z(i).forEach(o),s=p(e),y(m.$$.fragment,e),t=p(e),h=d(e,"P",{"data-svelte-h":!0}),U(h)!=="svelte-1gpdp46"&&(h.innerHTML=Ke),be=p(e),y(P.$$.fragment,e),_e=p(e),y(N.$$.fragment,e),ye=p(e),f=d(e,"DIV",{class:!0});var g=Z(f);y(F.$$.fragment,g),Me=p(g),ae=d(g,"P",{"data-svelte-h":!0}),U(ae)!=="svelte-s74qtl"&&(ae.textContent=et),je=p(g),oe=d(g,"P",{"data-svelte-h":!0}),U(oe)!=="svelte-1t7z7ym"&&(oe.innerHTML=tt),Ie=p(g),ie=d(g,"P",{"data-svelte-h":!0}),U(ie)!=="svelte-14s6m4u"&&(ie.textContent=nt),De=p(g),le=d(g,"UL",{"data-svelte-h":!0}),U(le)!=="svelte-1m20sfd"&&(le.innerHTML=st),Ze=p(g),D=d(g,"DIV",{class:!0});var S=Z(D);y(Y.$$.fragment,S),Ce=p(S),re=d(S,"P",{"data-svelte-h":!0}),U(re)!=="svelte-50j04k"&&(re.textContent=at),Le=p(S),y(G.$$.fragment,S),S.forEach(o),Se=p(g),W=d(g,"DIV",{class:!0});var ne=Z(W);y(H.$$.fragment,ne),Pe=p(ne),pe=d(ne,"P",{"data-svelte-h":!0}),U(pe)!=="svelte-n1oyuv"&&(pe.innerHTML=ot),ne.forEach(o),Ge=p(g),x=d(g,"DIV",{class:!0});var j=Z(x);y(q.$$.fragment,j),We=p(j),ce=d(j,"P",{"data-svelte-h":!0}),U(ce)!=="svelte-10jaql7"&&(ce.textContent=it),ke=p(j),y(k.$$.fragment,j),Ve=p(j),y(V.$$.fragment,j),j.forEach(o),Be=p(g),B=d(g,"DIV",{class:!0});var se=Z(B);y(Q.$$.fragment,se),Ee=p(se),de=d(se,"P",{"data-svelte-h":!0}),U(de)!=="svelte-1lh0nh5"&&(de.innerHTML=lt),se.forEach(o),Re=p(g),M=d(g,"DIV",{class:!0});var I=Z(M);y(A.$$.fragment,I),Xe=p(I),fe=d(I,"P",{"data-svelte-h":!0}),U(fe)!=="svelte-e03q3e"&&(fe.innerHTML=rt),ze=p(I),y(E.$$.fragment,I),Ne=p(I),y(R.$$.fragment,I),I.forEach(o),Fe=p(g),X=d(g,"DIV",{class:!0});var Je=Z(X);y(O.$$.fragment,Je),Ye=p(Je),ue=d(Je,"P",{"data-svelte-h":!0}),U(ue)!=="svelte-1vfte1e"&&(ue.innerHTML=pt),Je.forEach(o),g.forEach(o),we=p(e),y(K.$$.fragment,e),$e=p(e),L=d(e,"DIV",{class:!0});var xe=Z(L);y(ee.$$.fragment,xe),He=p(xe),me=d(xe,"P",{"data-svelte-h":!0}),U(me)!=="svelte-1qpjiuf"&&(me.textContent=ct),xe.forEach(o),ve=p(e),y(te.$$.fragment,e),Te=p(e),he=d(e,"P",{}),Z(he).forEach(o),this.h()},h(){C(n,"name","hf:doc:metadata"),C(n,"content",Ut),C(D,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),C(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(x,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),C(B,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),C(M,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),C(X,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),C(f,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),C(L,"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,l){a(document.head,n),u(e,b,l),u(e,i,l),u(e,s,l),w(m,e,l),u(e,t,l),u(e,h,l),u(e,be,l),w(P,e,l),u(e,_e,l),w(N,e,l),u(e,ye,l),u(e,f,l),w(F,f,null),a(f,Me),a(f,ae),a(f,je),a(f,oe),a(f,Ie),a(f,ie),a(f,De),a(f,le),a(f,Ze),a(f,D),w(Y,D,null),a(D,Ce),a(D,re),a(D,Le),w(G,D,null),a(f,Se),a(f,W),w(H,W,null),a(W,Pe),a(W,pe),a(f,Ge),a(f,x),w(q,x,null),a(x,We),a(x,ce),a(x,ke),w(k,x,null),a(x,Ve),w(V,x,null),a(f,Be),a(f,B),w(Q,B,null),a(B,Ee),a(B,de),a(f,Re),a(f,M),w(A,M,null),a(M,Xe),a(M,fe),a(M,ze),w(E,M,null),a(M,Ne),w(R,M,null),a(f,Fe),a(f,X),w(O,X,null),a(X,Ye),a(X,ue),u(e,we,l),w(K,e,l),u(e,$e,l),u(e,L,l),w(ee,L,null),a(L,He),a(L,me),u(e,ve,l),w(te,e,l),u(e,Te,l),u(e,he,l),Ue=!0},p(e,[l]){const g={};l&2&&(g.$$scope={dirty:l,ctx:e}),P.$set(g);const S={};l&2&&(S.$$scope={dirty:l,ctx:e}),G.$set(S);const ne={};l&2&&(ne.$$scope={dirty:l,ctx:e}),k.$set(ne);const j={};l&2&&(j.$$scope={dirty:l,ctx:e}),V.$set(j);const se={};l&2&&(se.$$scope={dirty:l,ctx:e}),E.$set(se);const I={};l&2&&(I.$$scope={dirty:l,ctx:e}),R.$set(I)},i(e){Ue||($(m.$$.fragment,e),$(P.$$.fragment,e),$(N.$$.fragment,e),$(F.$$.fragment,e),$(Y.$$.fragment,e),$(G.$$.fragment,e),$(H.$$.fragment,e),$(q.$$.fragment,e),$(k.$$.fragment,e),$(V.$$.fragment,e),$(Q.$$.fragment,e),$(A.$$.fragment,e),$(E.$$.fragment,e),$(R.$$.fragment,e),$(O.$$.fragment,e),$(K.$$.fragment,e),$(ee.$$.fragment,e),$(te.$$.fragment,e),Ue=!0)},o(e){v(m.$$.fragment,e),v(P.$$.fragment,e),v(N.$$.fragment,e),v(F.$$.fragment,e),v(Y.$$.fragment,e),v(G.$$.fragment,e),v(H.$$.fragment,e),v(q.$$.fragment,e),v(k.$$.fragment,e),v(V.$$.fragment,e),v(Q.$$.fragment,e),v(A.$$.fragment,e),v(E.$$.fragment,e),v(R.$$.fragment,e),v(O.$$.fragment,e),v(K.$$.fragment,e),v(ee.$$.fragment,e),v(te.$$.fragment,e),Ue=!1},d(e){e&&(o(b),o(i),o(s),o(t),o(h),o(be),o(_e),o(ye),o(f),o(we),o($e),o(L),o(ve),o(Te),o(he)),o(n),T(m,e),T(P,e),T(N,e),T(F),T(Y),T(G),T(H),T(q),T(k),T(V),T(Q),T(A),T(E),T(R),T(O),T(K,e),T(ee),T(te,e)}}}const Ut='{"title":"Latent upscaler","local":"latent-upscaler","sections":[{"title":"StableDiffusionLatentUpscalePipeline","local":"diffusers.StableDiffusionLatentUpscalePipeline","sections":[],"depth":2},{"title":"StableDiffusionPipelineOutput","local":"diffusers.pipelines.stable_diffusion.StableDiffusionPipelineOutput","sections":[],"depth":2}],"depth":1}';function Jt(J){return ft(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Lt extends ut{constructor(n){super(),mt(this,n,Jt,Tt,dt,{})}}export{Lt as component}; | |
Xet Storage Details
- Size:
- 35.2 kB
- Xet hash:
- 97c0945b3658e2d93d3ef833ce2ba79f47c521db0c1be94eee50e7aa2d3686dd
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.