Buckets:
| import"../chunks/DsnmJJEf.js";import{i as Be,h as Xe,C as Re,H as h,D as o,E as Ve,s as ze,a as p}from"../chunks/BtE7mKSK.js";import{p as He,o as qe,s as e,f as c,a as d,b as Le,c as t,d as m,n as s,r as i}from"../chunks/jDjavuwI.js";import{E as f}from"../chunks/SrSJA0zO.js";const Ye='{"title":"Pipelines","local":"pipelines","sections":[{"title":"DiffusionPipeline","local":"diffusers.DiffusionPipeline","sections":[],"depth":2},{"title":"PushToHubMixin","local":"diffusers.utils.PushToHubMixin","sections":[],"depth":2},{"title":"Callbacks","local":"diffusers.callbacks.PipelineCallback","sections":[],"depth":2}],"depth":1}';var Ee=m('<meta name="hf:doc:metadata"/>'),u=m("<p>Examples:</p> <!>",1),Ae=m("<p>Example:</p> <!>",1),Qe=m("<p>If you get the error message below, you need to finetune the weights for your downstream task:</p> <!>",1),$e=m(`<p></p> <!> <!> <p>Pipelines provide a simple way to run state-of-the-art diffusion models in inference by bundling all of the necessary components (multiple independently-trained models, schedulers, and processors) into a single end-to-end class. Pipelines are flexible and they can be adapted to use different schedulers or even model components.</p> <p>All pipelines are built from the base <a href="/docs/diffusers/pr_14218/en/api/pipelines/overview#diffusers.DiffusionPipeline">DiffusionPipeline</a> class which provides basic functionality for loading, downloading, and saving all the components. Specific pipeline types (for example <a href="/docs/diffusers/pr_14218/en/api/pipelines/stable_diffusion/text2img#diffusers.StableDiffusionPipeline">StableDiffusionPipeline</a>) loaded with <a href="/docs/diffusers/pr_14218/en/api/pipelines/overview#diffusers.DiffusionPipeline.from_pretrained">from_pretrained()</a> are automatically detected and the pipeline components are loaded and passed to the <code>__init__</code> function of the pipeline.</p> <blockquote class="warning"><p>You shouldn’t use the <a href="/docs/diffusers/pr_14218/en/api/pipelines/overview#diffusers.DiffusionPipeline">DiffusionPipeline</a> class for training. Individual components (for example, <a href="/docs/diffusers/pr_14218/en/api/models/unet2d#diffusers.UNet2DModel">UNet2DModel</a> and <a href="/docs/diffusers/pr_14218/en/api/models/unet2d-cond#diffusers.UNet2DConditionModel">UNet2DConditionModel</a>) of diffusion pipelines are usually trained individually, so we suggest directly working with them instead.</p> <br/> <p>Pipelines do not offer any training functionality. You’ll notice PyTorch’s autograd is disabled by decorating the <code>__call__()</code> method with a <a href="https://pytorch.org/docs/stable/generated/torch.no_grad.html" rel="nofollow"><code>torch.no_grad</code></a> decorator because pipelines should not be used for training. If you’re interested in training, please take a look at the <a href="../../training/overview">Training</a> guides instead!</p></blockquote> <p>The table below lists all the pipelines currently available in 🤗 Diffusers and the tasks they support. Click on a pipeline to view its abstract and published paper.</p> <table><thead><tr><th>Pipeline</th><th>Tasks</th></tr></thead><tbody><tr><td><a href="animatediff">AnimateDiff</a></td><td>text2video</td></tr><tr><td><a href="audioldm2">AudioLDM2</a></td><td>text2audio</td></tr><tr><td><a href="longcat_audio_dit">LongCat-AudioDiT</a></td><td>text2audio</td></tr><tr><td><a href="aura_flow">AuraFlow</a></td><td>text2image</td></tr><tr><td><a href="bria_3_2">Bria 3.2</a></td><td>text2image</td></tr><tr><td><a href="cogvideox">CogVideoX</a></td><td>text2video</td></tr><tr><td><a href="consistency_models">Consistency Models</a></td><td>unconditional image generation</td></tr><tr><td><a href="controlnet">ControlNet</a></td><td>text2image, image2image, inpainting</td></tr><tr><td><a href="controlnet_flux">ControlNet with Flux.1</a></td><td>text2image</td></tr><tr><td><a href="controlnet_hunyuandit">ControlNet with Hunyuan-DiT</a></td><td>text2image</td></tr><tr><td><a href="controlnet_sd3">ControlNet with Stable Diffusion 3</a></td><td>text2image</td></tr><tr><td><a href="controlnet_sdxl">ControlNet with Stable Diffusion XL</a></td><td>text2image</td></tr><tr><td><a href="ddim">DDIM</a></td><td>unconditional image generation</td></tr><tr><td><a href="ddpm">DDPM</a></td><td>unconditional image generation</td></tr><tr><td><a href="deepfloyd_if">DeepFloyd IF</a></td><td>text2image, image2image, inpainting, super-resolution</td></tr><tr><td><a href="dit">DiT</a></td><td>text2image</td></tr><tr><td><a href="flux">Flux</a></td><td>text2image</td></tr><tr><td><a href="hunyuandit">Hunyuan-DiT</a></td><td>text2image</td></tr><tr><td><a href="pix2pix">InstructPix2Pix</a></td><td>image editing</td></tr><tr><td><a href="kandinsky">Kandinsky 2.1</a></td><td>text2image, image2image, inpainting, interpolation</td></tr><tr><td><a href="kandinsky_v22">Kandinsky 2.2</a></td><td>text2image, image2image, inpainting</td></tr><tr><td><a href="kandinsky3">Kandinsky 3</a></td><td>text2image, image2image</td></tr><tr><td><a href="kolors">Kolors</a></td><td>text2image</td></tr><tr><td><a href="latent_consistency_models">Latent Consistency Models</a></td><td>text2image</td></tr><tr><td><a href="latent_diffusion">Latent Diffusion</a></td><td>text2image, super-resolution</td></tr><tr><td><a href="latte">Latte</a></td><td>text2image</td></tr><tr><td><a href="ledits_pp">LEDITS++</a></td><td>image editing</td></tr><tr><td><a href="llada2">LLaDA2</a></td><td>text2text</td></tr><tr><td><a href="lumina">Lumina-T2X</a></td><td>text2image</td></tr><tr><td><a href="marigold">Marigold</a></td><td>depth-estimation, normals-estimation, intrinsic-decomposition</td></tr><tr><td><a href="motif_video">Motif-Video</a></td><td>text2video, image2video</td></tr><tr><td><a href="pag">PAG</a></td><td>text2image</td></tr><tr><td><a href="pixart">PixArt-α</a></td><td>text2image</td></tr><tr><td><a href="pixart_sigma">PixArt-Σ</a></td><td>text2image</td></tr><tr><td><a href="shap_e">Shap-E</a></td><td>text-to-3D, image-to-3D</td></tr><tr><td><a href="stable_audio">Stable Audio</a></td><td>text2audio</td></tr><tr><td><a href="stable_cascade">Stable Cascade</a></td><td>text2image</td></tr><tr><td><a href="stable_diffusion/overview">Stable Diffusion</a></td><td>text2image, image2image, depth2image, inpainting, image variation, latent upscaler, super-resolution</td></tr><tr><td><a href="stable_diffusion/stable_diffusion_xl">Stable Diffusion XL</a></td><td>text2image, image2image, inpainting</td></tr><tr><td><a href="stable_diffusion/sdxl_turbo">Stable Diffusion XL Turbo</a></td><td>text2image, image2image, inpainting</td></tr><tr><td><a href="stable_unclip">Stable unCLIP</a></td><td>text2image, image variation</td></tr><tr><td><a href="stable_diffusion/adapter">T2I-Adapter</a></td><td>text2image</td></tr><tr><td><a href="value_guided_sampling">Value-guided planning</a></td><td>value guided sampling</td></tr><tr><td><a href="visualcloze">VisualCloze</a></td><td>text2image, image2image, subject driven generation, inpainting, style transfer, image restoration, image editing, [depth,normal,edge,pose]2image, [depth,normal,edge,pose]-estimation, virtual try-on, image relighting</td></tr></tbody></table> <!> <div class="docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"><!> <p>Base class for all pipelines.</p> <p><a href="/docs/diffusers/pr_14218/en/api/pipelines/overview#diffusers.DiffusionPipeline">DiffusionPipeline</a> stores all components (models, schedulers, and processors) for diffusion pipelines and | |
| provides methods for loading, downloading and saving models. It also includes methods to:</p> <ul><li>move all PyTorch modules to the device of your choice</li> <li>enable/disable the progress bar for the denoising iteration</li></ul> <p>Class attributes:</p> <ul><li><strong>config_name</strong> (<code>str</code>) — The configuration filename that stores the class and module names of all the | |
| diffusion pipeline’s components.</li> <li><strong>_optional_components</strong> (<code>List[str]</code>) — List of all optional components that don’t have to be passed to the | |
| pipeline to function (should be overridden by subclasses).</li></ul> <div class="docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"><!> <p>Call self as a function.</p></div> <div class="docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"><!></div> <div class="docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"><!> <p>Performs Pipeline dtype and/or device conversion. A torch.dtype and torch.device are inferred from the | |
| arguments of <code>self.to(*args, **kwargs).</code></p> <blockquote class="tip"><p>> If the pipeline already has the correct torch.dtype and torch.device, then it is returned as is. | |
| Otherwise, > the returned pipeline is a copy of self with the desired torch.dtype and torch.device.</p></blockquote> <p>Here are the ways to call <code>to</code>:</p> <ul><li><code>to(dtype, silence_dtype_warnings=False) → DiffusionPipeline</code> to return a pipeline with the specified <a href="https://pytorch.org/docs/stable/tensor_attributes.html#torch.dtype" rel="nofollow"><code>dtype</code></a></li> <li><code>to(device, silence_dtype_warnings=False) → DiffusionPipeline</code> to return a pipeline with the specified <a href="https://pytorch.org/docs/stable/tensor_attributes.html#torch.device" rel="nofollow"><code>device</code></a></li> <li><code>to(device=None, dtype=None, silence_dtype_warnings=False) → DiffusionPipeline</code> to return a pipeline with the | |
| specified <a href="https://pytorch.org/docs/stable/tensor_attributes.html#torch.device" rel="nofollow"><code>device</code></a> and <a href="https://pytorch.org/docs/stable/tensor_attributes.html#torch.dtype" rel="nofollow"><code>dtype</code></a></li></ul></div> <div class="docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"><!> <p>The <code>self.components</code> property can be useful to run different pipelines with the same weights and | |
| configurations without reallocating additional memory.</p> <p>Returns (<code>dict</code>): | |
| A dictionary containing all the modules needed to initialize the pipeline.</p> <!></div> <div class="docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"><!> <p>Disable sliced attention computation. If <code>enable_attention_slicing</code> was previously called, attention is | |
| computed in one step.</p></div> <div class="docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"><!> <p>Disable memory efficient attention from <a href="https://facebookresearch.github.io/xformers/" rel="nofollow">xFormers</a>.</p></div> <div class="docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"><!> <p>Download and cache a PyTorch diffusion pipeline from pretrained pipeline weights.</p> <blockquote class="tip"><p>> To use private or <a href="https://huggingface.co/docs/hub/models-gated#gated-models" rel="nofollow">gated models</a>, log-in | |
| with \`hf > auth login</p></blockquote></div> <div class="docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"><!> <p>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.</p> <blockquote class="warning"><p>> ⚠️ 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!</p></blockquote> <!></div> <div class="docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"><!> <p>Applies group offloading to the internal layers of a torch.nn.Module. To understand what group offloading is, | |
| and where it is beneficial, we need to first provide some context on how other supported offloading methods | |
| work.</p> <p>Typically, offloading is done at two levels:</p> <ul><li>Module-level: In Diffusers, this can be enabled using the <code>ModelMixin::enable_model_cpu_offload()</code> method. It | |
| works by offloading each component of a pipeline to the CPU for storage, and onloading to the accelerator | |
| device when needed for computation. This method is more memory-efficient than keeping all components on the | |
| accelerator, but the memory requirements are still quite high. For this method to work, one needs memory | |
| equivalent to size of the model in runtime dtype + size of largest intermediate activation tensors to be able | |
| to complete the forward pass.</li> <li>Leaf-level: In Diffusers, this can be enabled using the <code>ModelMixin::enable_sequential_cpu_offload()</code> method. | |
| It | |
| works by offloading the lowest leaf-level parameters of the computation graph to the CPU for storage, and | |
| onloading only the leafs to the accelerator device for computation. This uses the lowest amount of accelerator | |
| memory, but can be slower due to the excessive number of device synchronizations.</li></ul> <p>Group offloading is a middle ground between the two methods. It works by offloading groups of internal layers, | |
| (either <code>torch.nn.ModuleList</code> or <code>torch.nn.Sequential</code>). This method uses lower memory than module-level | |
| offloading. It is also faster than leaf-level/sequential offloading, as the number of device synchronizations | |
| is reduced.</p> <p>Another supported feature (for CUDA devices with support for asynchronous data transfer streams) is the ability | |
| to overlap data transfer and computation to reduce the overall execution time compared to sequential | |
| offloading. This is enabled using layer prefetching with streams, i.e., the layer that is to be executed next | |
| starts onloading to the accelerator device while the current layer is being executed - this increases the | |
| memory requirements slightly. Note that this implementation also supports leaf-level offloading but can be made | |
| much faster when using streams.</p> <!></div> <div class="docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"><!> <p>Offloads all models to CPU using accelerate, reducing memory usage with a low impact on performance. Compared | |
| to <code>enable_sequential_cpu_offload</code>, this method moves one whole model at a time to the accelerator when its <code>forward</code> method is called, and the model remains in accelerator until the next model runs. Memory savings are | |
| lower than with <code>enable_sequential_cpu_offload</code>, but performance is much better due to the iterative execution | |
| of the <code>unet</code>.</p></div> <div class="docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"><!> <p>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 accelerator 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.</p></div> <div class="docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"><!> <p>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.</p> <blockquote class="warning"><p>> ⚠️ When memory efficient attention and sliced attention are both enabled, memory efficient | |
| attention takes > precedent.</p></blockquote> <!></div> <div class="docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"><!> <p>Create a new pipeline from a given pipeline. This method is useful to create a new pipeline from the existing | |
| pipeline components without reallocating additional memory.</p> <!></div> <div class="docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"><!> <p>Instantiate a PyTorch diffusion pipeline from pretrained pipeline weights.</p> <p>The pipeline is set in evaluation mode (<code>model.eval()</code>) by default.</p> <!> <blockquote class="tip"><p>> To use private or <a href="https://huggingface.co/docs/hub/models-gated#gated-models" rel="nofollow">gated</a> models, log-in | |
| with <code>hf > auth login</code>.</p></blockquote> <!></div> <div class="docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"><!> <p>Method that performs the following:</p> <ul><li>Offloads all components.</li> <li>Removes all model hooks that were added when using <code>enable_model_cpu_offload</code>, and then applies them again. | |
| In case the model has not been offloaded, this function is a no-op.</li> <li>Resets stateful diffusers hooks of denoiser components if they were added with <code>register_hook()</code>.</li></ul> <p>Make sure to add this function to the end of the <code>__call__</code> function of your pipeline so that it functions | |
| correctly when applying <code>enable_model_cpu_offload</code>.</p></div> <div class="docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"><!> <p>Convert a NumPy image or a batch of images to a PIL image.</p></div> <div class="docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"><!> <p>Removes all hooks that were added when using <code>enable_sequential_cpu_offload</code> or <code>enable_model_cpu_offload</code>.</p></div> <div class="docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"><!> <p>Resets the device maps (if any) to None.</p></div> <div class="docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"><!> <p>Save all saveable variables of the pipeline to a directory. A pipeline variable can be saved and loaded if its | |
| class implements both a save and loading method. The pipeline is easily reloaded using the <a href="/docs/diffusers/pr_14218/en/api/pipelines/overview#diffusers.DiffusionPipeline.from_pretrained">from_pretrained()</a> class method.</p></div></div> <div class="docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"><!> <p>Enables the FreeU mechanism as in <a href="https://huggingface.co/papers/2309.11497" rel="nofollow">https://huggingface.co/papers/2309.11497</a>.</p> <p>The suffixes after the scaling factors represent the stages where they are being applied.</p> <p>Please refer to the <a href="https://github.com/ChenyangSi/FreeU" rel="nofollow">official repository</a> for combinations of the values | |
| that are known to work well for different pipelines such as Stable Diffusion v1, v2, and Stable Diffusion XL.</p></div> <div class="docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"><!> <p>Disables the FreeU mechanism if enabled.</p></div> <!> <div class="docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"><!> <p>A Mixin to push a model, scheduler, or pipeline to the Hugging Face Hub.</p> <div class="docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"><!> <p>Upload model, scheduler, or pipeline files to the 🤗 Hugging Face Hub.</p> <!></div></div> <!> <div class="docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"><!> <p>Base class for all the official callbacks used in a pipeline. This class provides a structure for implementing | |
| custom callbacks and ensures that all callbacks have a consistent interface.</p> <p>Please implement the following: <code>tensor_inputs</code>: This should return a list of tensor inputs specific to your callback. You will only be able to | |
| include | |
| variables listed in the <code>._callback_tensor_inputs</code> attribute of your pipeline class. <code>callback_fn</code>: This method defines the core functionality of your callback.</p></div> <div class="docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"><!> <p>Callback function for Stable Diffusion Pipelines. After certain number of steps (set by <code>cutoff_step_ratio</code> or <code>cutoff_step_index</code>), this callback will disable the CFG.</p> <p>Note: This callback mutates the pipeline by changing the <code>_guidance_scale</code> attribute to 0.0 after the cutoff step.</p></div> <div class="docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"><!> <p>Callback function for the base Stable Diffusion XL Pipelines. After certain number of steps (set by <code>cutoff_step_ratio</code> or <code>cutoff_step_index</code>), this callback will disable the CFG.</p> <p>Note: This callback mutates the pipeline by changing the <code>_guidance_scale</code> attribute to 0.0 after the cutoff step.</p></div> <div class="docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"><!> <p>Callback function for the Controlnet Stable Diffusion XL Pipelines. After certain number of steps (set by <code>cutoff_step_ratio</code> or <code>cutoff_step_index</code>), this callback will disable the CFG.</p> <p>Note: This callback mutates the pipeline by changing the <code>_guidance_scale</code> attribute to 0.0 after the cutoff step.</p></div> <div class="docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"><!> <p>Callback function for any pipeline that inherits <code>IPAdapterMixin</code>. After certain number of steps (set by <code>cutoff_step_ratio</code> or <code>cutoff_step_index</code>), this callback will set the IP Adapter scale to <code>0.0</code>.</p> <p>Note: This callback mutates the IP Adapter attention processors by setting the scale to 0.0 after the cutoff step.</p></div> <div class="docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"><!> <p>Callback function for Stable Diffusion 3 Pipelines. After certain number of steps (set by <code>cutoff_step_ratio</code> or <code>cutoff_step_index</code>), this callback will disable the CFG.</p> <p>Note: This callback mutates the pipeline by changing the <code>_guidance_scale</code> attribute to 0.0 after the cutoff step.</p></div> <!> <p></p>`,1);function to(le,de){He(de,!1),qe(()=>{new URLSearchParams(window.location.search).get("fw")}),Be();var H=$e();Xe("14t7xan",a=>{var l=Ee();ze(l,"content",Ye),d(a,l)});var q=e(c(H),2);Re(q,{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"});var L=e(q,2);h(L,{title:"Pipelines",local:"pipelines",headingTag:"h1"});var Y=e(L,12);h(Y,{title:"DiffusionPipeline",local:"diffusers.DiffusionPipeline",headingTag:"h2"});var g=e(Y,2),E=t(g);o(E,{name:"class diffusers.DiffusionPipeline",anchor:"diffusers.DiffusionPipeline",source:"https://github.com/huggingface/diffusers/blob/vr_14218/src/diffusers/pipelines/pipeline_utils.py#L197",parameters:[]});var b=e(E,12),ce=t(b);o(ce,{name:"__call__",anchor:"diffusers.DiffusionPipeline.__call__",parameters:[{name:"*args",val:""},{name:"**kwargs",val:""}]}),s(2),i(b);var _=e(b,2),pe=t(_);o(pe,{name:"device",anchor:"diffusers.DiffusionPipeline.device",source:"https://github.com/huggingface/diffusers/blob/vr_14218/src/diffusers/pipelines/pipeline_utils.py#L599",parameters:[],returnDescription:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p>The torch device on which the pipeline is located.</p> | |
| `,returnType:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p><code>torch.device</code></p> | |
| `}),i(_);var y=e(_,2),fe=t(y);o(fe,{name:"to",anchor:"diffusers.DiffusionPipeline.to",source:"https://github.com/huggingface/diffusers/blob/vr_14218/src/diffusers/pipelines/pipeline_utils.py#L396",parameters:[{name:"*args",val:""},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"diffusers.DiffusionPipeline.to.dtype",description:`<strong>dtype</strong> (<code>torch.dtype</code>, <em>optional</em>) — | |
| Returns a pipeline with the specified | |
| <a href="https://pytorch.org/docs/stable/tensor_attributes.html#torch.dtype" rel="nofollow"><code>dtype</code></a>`,name:"dtype"},{anchor:"diffusers.DiffusionPipeline.to.device",description:`<strong>device</strong> (<code>torch.Device</code>, <em>optional</em>) — | |
| Returns a pipeline with the specified | |
| <a href="https://pytorch.org/docs/stable/tensor_attributes.html#torch.device" rel="nofollow"><code>device</code></a>`,name:"device"},{anchor:"diffusers.DiffusionPipeline.to.silence_dtype_warnings",description:`<strong>silence_dtype_warnings</strong> (<code>str</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| Whether to omit warnings if the target <code>dtype</code> is not compatible with the target <code>device</code>.`,name:"silence_dtype_warnings"}],returnDescription:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p>The pipeline converted to specified <code>dtype</code> and/or <code>dtype</code>.</p> | |
| `,returnType:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p><a | |
| href="/docs/diffusers/pr_14218/en/api/pipelines/overview#diffusers.DiffusionPipeline" | |
| >DiffusionPipeline</a></p> | |
| `}),s(8),i(y);var v=e(y,2),A=t(v);o(A,{name:"components",anchor:"diffusers.DiffusionPipeline.components",source:"https://github.com/huggingface/diffusers/blob/vr_14218/src/diffusers/pipelines/pipeline_utils.py#L1968",parameters:[]});var ue=e(A,6);f(ue,{anchor:"diffusers.DiffusionPipeline.components.example",children:(a,l)=>{var n=u(),r=e(c(n),2);p(r,{code:"ZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMCglMEElMjAlMjAlMjAlMjBTdGFibGVEaWZmdXNpb25QaXBlbGluZSUyQyUwQSUyMCUyMCUyMCUyMFN0YWJsZURpZmZ1c2lvbkltZzJJbWdQaXBlbGluZSUyQyUwQSUyMCUyMCUyMCUyMFN0YWJsZURpZmZ1c2lvbklucGFpbnRQaXBlbGluZSUyQyUwQSklMEElMEF0ZXh0MmltZyUyMCUzRCUyMFN0YWJsZURpZmZ1c2lvblBpcGVsaW5lLmZyb21fcHJldHJhaW5lZCglMjJzdGFibGUtZGlmZnVzaW9uLXYxLTUlMkZzdGFibGUtZGlmZnVzaW9uLXYxLTUlMjIpJTBBaW1nMmltZyUyMCUzRCUyMFN0YWJsZURpZmZ1c2lvbkltZzJJbWdQaXBlbGluZSgqKnRleHQyaW1nLmNvbXBvbmVudHMpJTBBaW5wYWludCUyMCUzRCUyMFN0YWJsZURpZmZ1c2lvbklucGFpbnRQaXBlbGluZSgqKnRleHQyaW1nLmNvbXBvbmVudHMp",highlighted:`<span class="hljs-meta">>>> </span><span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> ( | |
| <span class="hljs-meta">... </span> StableDiffusionPipeline, | |
| <span class="hljs-meta">... </span> StableDiffusionImg2ImgPipeline, | |
| <span class="hljs-meta">... </span> StableDiffusionInpaintPipeline, | |
| <span class="hljs-meta">... </span>) | |
| <span class="hljs-meta">>>> </span>text2img = StableDiffusionPipeline.from_pretrained(<span class="hljs-string">"stable-diffusion-v1-5/stable-diffusion-v1-5"</span>) | |
| <span class="hljs-meta">>>> </span>img2img = StableDiffusionImg2ImgPipeline(**text2img.components) | |
| <span class="hljs-meta">>>> </span>inpaint = StableDiffusionInpaintPipeline(**text2img.components)`,lang:"py",wrap:!1}),d(a,n)},$$slots:{default:!0}}),i(v);var w=e(v,2),me=t(w);o(me,{name:"disable_attention_slicing",anchor:"diffusers.DiffusionPipeline.disable_attention_slicing",source:"https://github.com/huggingface/diffusers/blob/vr_14218/src/diffusers/pipelines/pipeline_utils.py#L2128",parameters:[]}),s(2),i(w);var x=e(w,2),he=t(x);o(he,{name:"disable_xformers_memory_efficient_attention",anchor:"diffusers.DiffusionPipeline.disable_xformers_memory_efficient_attention",source:"https://github.com/huggingface/diffusers/blob/vr_14218/src/diffusers/pipelines/pipeline_utils.py#L2067",parameters:[]}),s(2),i(x);var M=e(x,2),ge=t(M);o(ge,{name:"download",anchor:"diffusers.DiffusionPipeline.download",source:"https://github.com/huggingface/diffusers/blob/vr_14218/src/diffusers/pipelines/pipeline_utils.py#L1531",parameters:[{name:"pretrained_model_name",val:""},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"diffusers.DiffusionPipeline.download.pretrained_model_name",description:`<strong>pretrained_model_name</strong> (<code>str</code> or <code>os.PathLike</code>, <em>optional</em>) — | |
| A string, the <em>repository id</em> (for example <code>CompVis/ldm-text2im-large-256</code>) of a pretrained pipeline | |
| hosted on the Hub.`,name:"pretrained_model_name"},{anchor:"diffusers.DiffusionPipeline.download.custom_pipeline",description:`<strong>custom_pipeline</strong> (<code>str</code>, <em>optional</em>) — | |
| Can be either:</p> | |
| <ul> | |
| <li> | |
| <p>A string, the <em>repository id</em> (for example <code>CompVis/ldm-text2im-large-256</code>) of a pretrained | |
| pipeline hosted on the Hub. The repository must contain a file called <code>pipeline.py</code> that defines | |
| the custom pipeline.</p> | |
| </li> | |
| <li> | |
| <p>A string, the <em>file name</em> of a community pipeline hosted on GitHub under | |
| <a href="https://github.com/huggingface/diffusers/tree/main/examples/community" rel="nofollow">Community</a>. Valid file | |
| names must match the file name and not the pipeline script (<code>clip_guided_stable_diffusion</code> | |
| instead of <code>clip_guided_stable_diffusion.py</code>). Community pipelines are always loaded from the | |
| current <code>main</code> branch of GitHub.</p> | |
| </li> | |
| <li> | |
| <p>A path to a <em>directory</em> (<code>./my_pipeline_directory/</code>) containing a custom pipeline. The directory | |
| must contain a file called <code>pipeline.py</code> that defines the custom pipeline.</p> | |
| </li> | |
| </ul> | |
| <blockquote class="warning"> | |
| <p>> 🧪 This is an experimental feature and may change in the future.</p> | |
| </blockquote> | |
| <p>For more information on how to load and create custom pipelines, take a look at <a href="https://huggingface.co/docs/diffusers/main/en/using-diffusers/contribute_pipeline" rel="nofollow">How to contribute a | |
| community pipeline</a>.`,name:"custom_pipeline"},{anchor:"diffusers.DiffusionPipeline.download.force_download",description:`<strong>force_download</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| Whether or not to force the (re-)download of the model weights and configuration files, overriding the | |
| cached versions if they exist.`,name:"force_download"},{anchor:"diffusers.DiffusionPipeline.download.proxies",description:`<strong>proxies</strong> (<code>Dict[str, str]</code>, <em>optional</em>) — | |
| A dictionary of proxy servers to use by protocol or endpoint, for example, <code>{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}</code>. The proxies are used on each request.`,name:"proxies"},{anchor:"diffusers.DiffusionPipeline.download.output_loading_info(bool,",description:`<strong>output_loading_info(<code>bool</code>,</strong> <em>optional</em>, defaults to <code>False</code>) — | |
| Whether or not to also return a dictionary containing missing keys, unexpected keys and error messages.`,name:"output_loading_info(bool,"},{anchor:"diffusers.DiffusionPipeline.download.local_files_only",description:`<strong>local_files_only</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| Whether to only load local model weights and configuration files or not. If set to <code>True</code>, the model | |
| won’t be downloaded from the Hub.`,name:"local_files_only"},{anchor:"diffusers.DiffusionPipeline.download.token",description:`<strong>token</strong> (<code>str</code> or <em>bool</em>, <em>optional</em>) — | |
| The token to use as HTTP bearer authorization for remote files. If <code>True</code>, the token generated from | |
| <code>diffusers-cli login</code> (stored in <code>~/.huggingface</code>) is used.`,name:"token"},{anchor:"diffusers.DiffusionPipeline.download.revision",description:`<strong>revision</strong> (<code>str</code>, <em>optional</em>, defaults to <code>"main"</code>) — | |
| The specific model version to use. It can be a branch name, a tag name, a commit id, or any identifier | |
| allowed by Git.`,name:"revision"},{anchor:"diffusers.DiffusionPipeline.download.custom_revision",description:`<strong>custom_revision</strong> (<code>str</code>, <em>optional</em>, defaults to <code>"main"</code>) — | |
| The specific model version to use. It can be a branch name, a tag name, or a commit id similar to | |
| <code>revision</code> when loading a custom pipeline from the Hub. It can be a 🤗 Diffusers version when loading a | |
| custom pipeline from GitHub, otherwise it defaults to <code>"main"</code> when loading from the Hub.`,name:"custom_revision"},{anchor:"diffusers.DiffusionPipeline.download.mirror",description:`<strong>mirror</strong> (<code>str</code>, <em>optional</em>) — | |
| Mirror source to resolve accessibility issues if you’re downloading a model in China. We do not | |
| guarantee the timeliness or safety of the source, and you should refer to the mirror site for more | |
| information.`,name:"mirror"},{anchor:"diffusers.DiffusionPipeline.download.variant",description:`<strong>variant</strong> (<code>str</code>, <em>optional</em>) — | |
| Load weights from a specified variant filename such as <code>"fp16"</code> or <code>"ema"</code>. This is ignored when | |
| loading <code>from_flax</code>.`,name:"variant"},{anchor:"diffusers.DiffusionPipeline.download.dduf_file(str,",description:`<strong>dduf_file(<code>str</code>,</strong> <em>optional</em>) — | |
| Load weights from the specified DDUF file. <deprecated> This argument is deprecated and will be removed | |
| in version 0.41.0. </deprecated>`,name:"dduf_file(str,"},{anchor:"diffusers.DiffusionPipeline.download.use_safetensors",description:`<strong>use_safetensors</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>None</code>) — | |
| If set to <code>None</code>, the safetensors weights are downloaded if they’re available <strong>and</strong> if the | |
| safetensors library is installed. If set to <code>True</code>, the model is forcibly loaded from safetensors | |
| weights. If set to <code>False</code>, safetensors weights are not loaded.`,name:"use_safetensors"},{anchor:"diffusers.DiffusionPipeline.download.use_onnx",description:`<strong>use_onnx</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| If set to <code>True</code>, ONNX weights will always be downloaded if present. If set to <code>False</code>, ONNX weights | |
| will never be downloaded. By default <code>use_onnx</code> defaults to the <code>_is_onnx</code> class attribute which is | |
| <code>False</code> for non-ONNX pipelines and <code>True</code> for ONNX pipelines. ONNX weights include both files ending | |
| with <code>.onnx</code> and <code>.pb</code>.`,name:"use_onnx"},{anchor:"diffusers.DiffusionPipeline.download.trust_remote_code",description:`<strong>trust_remote_code</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| Whether or not to allow for custom pipelines and components defined on the Hub in their own files. This | |
| option should only be set to <code>True</code> for repositories you trust and in which you have read the code, as | |
| it will execute code present on the Hub on your local machine.`,name:"trust_remote_code"},{anchor:"diffusers.DiffusionPipeline.download.use_flashpack",description:`<strong>use_flashpack</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| If set to <code>True</code>, FlashPack weights will always be downloaded if present. If set to <code>False</code>, FlashPack | |
| weights will never be downloaded.`,name:"use_flashpack"}],returnDescription:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p>A path to the downloaded pipeline.</p> | |
| `,returnType:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p><code>os.PathLike</code></p> | |
| `}),s(4),i(M);var k=e(M,2),Q=t(k);o(Q,{name:"enable_attention_slicing",anchor:"diffusers.DiffusionPipeline.enable_attention_slicing",source:"https://github.com/huggingface/diffusers/blob/vr_14218/src/diffusers/pipelines/pipeline_utils.py#L2091",parameters:[{name:"slice_size",val:": str | int = 'auto'"}],parametersDescription:[{anchor:"diffusers.DiffusionPipeline.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"}]});var be=e(Q,6);f(be,{anchor:"diffusers.DiffusionPipeline.enable_attention_slicing.example",children:(a,l)=>{var n=u(),r=e(c(n),2);p(r,{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwU3RhYmxlRGlmZnVzaW9uUGlwZWxpbmUlMEElMEFwaXBlJTIwJTNEJTIwU3RhYmxlRGlmZnVzaW9uUGlwZWxpbmUuZnJvbV9wcmV0cmFpbmVkKCUwQSUyMCUyMCUyMCUyMCUyMnN0YWJsZS1kaWZmdXNpb24tdjEtNSUyRnN0YWJsZS1kaWZmdXNpb24tdjEtNSUyMiUyQyUwQSUyMCUyMCUyMCUyMHRvcmNoX2R0eXBlJTNEdG9yY2guZmxvYXQxNiUyQyUwQSUyMCUyMCUyMCUyMHVzZV9zYWZldGVuc29ycyUzRFRydWUlMkMlMEEpJTBBJTBBcHJvbXB0JTIwJTNEJTIwJTIyYSUyMHBob3RvJTIwb2YlMjBhbiUyMGFzdHJvbmF1dCUyMHJpZGluZyUyMGElMjBob3JzZSUyMG9uJTIwbWFycyUyMiUwQXBpcGUuZW5hYmxlX2F0dGVudGlvbl9zbGljaW5nKCklMEFpbWFnZSUyMCUzRCUyMHBpcGUocHJvbXB0KS5pbWFnZXMlNUIwJTVE",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">"stable-diffusion-v1-5/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>]`,lang:"py",wrap:!1}),d(a,n)},$$slots:{default:!0}}),i(k);var T=e(k,2),$=t(T);o($,{name:"enable_group_offload",anchor:"diffusers.DiffusionPipeline.enable_group_offload",source:"https://github.com/huggingface/diffusers/blob/vr_14218/src/diffusers/pipelines/pipeline_utils.py#L1391",parameters:[{name:"onload_device",val:": device"},{name:"offload_device",val:": device = torch.device()"},{name:"offload_type",val:": str = 'block_level'"},{name:"num_blocks_per_group",val:": int | None = None"},{name:"non_blocking",val:": bool = False"},{name:"use_stream",val:": bool = False"},{name:"record_stream",val:": bool = False"},{name:"low_cpu_mem_usage",val:" = False"},{name:"offload_to_disk_path",val:": str | None = None"},{name:"exclude_modules",val:": str | list[str] | None = None"}],parametersDescription:[{anchor:"diffusers.DiffusionPipeline.enable_group_offload.onload_device",description:`<strong>onload_device</strong> (<code>torch.device</code>) — | |
| The device to which the group of modules are onloaded.`,name:"onload_device"},{anchor:"diffusers.DiffusionPipeline.enable_group_offload.offload_device",description:`<strong>offload_device</strong> (<code>torch.device</code>, defaults to <code>torch.device("cpu")</code>) — | |
| The device to which the group of modules are offloaded. This should typically be the CPU. Default is | |
| CPU.`,name:"offload_device"},{anchor:"diffusers.DiffusionPipeline.enable_group_offload.offload_type",description:`<strong>offload_type</strong> (<code>str</code> or <code>GroupOffloadingType</code>, defaults to “block_level”) — | |
| The type of offloading to be applied. Can be one of “block_level” or “leaf_level”. Default is | |
| “block_level”.`,name:"offload_type"},{anchor:"diffusers.DiffusionPipeline.enable_group_offload.offload_to_disk_path",description:`<strong>offload_to_disk_path</strong> (<code>str</code>, <em>optional</em>, defaults to <code>None</code>) — | |
| The path to the directory where parameters will be offloaded. Setting this option can be useful in | |
| limited RAM environment settings where a reasonable speed-memory trade-off is desired.`,name:"offload_to_disk_path"},{anchor:"diffusers.DiffusionPipeline.enable_group_offload.num_blocks_per_group",description:`<strong>num_blocks_per_group</strong> (<code>int</code>, <em>optional</em>) — | |
| The number of blocks per group when using offload_type=“block_level”. This is required when using | |
| offload_type=“block_level”.`,name:"num_blocks_per_group"},{anchor:"diffusers.DiffusionPipeline.enable_group_offload.non_blocking",description:`<strong>non_blocking</strong> (<code>bool</code>, defaults to <code>False</code>) — | |
| If True, offloading and onloading is done with non-blocking data transfer.`,name:"non_blocking"},{anchor:"diffusers.DiffusionPipeline.enable_group_offload.use_stream",description:`<strong>use_stream</strong> (<code>bool</code>, defaults to <code>False</code>) — | |
| If True, offloading and onloading is done asynchronously using a CUDA stream. This can be useful for | |
| overlapping computation and data transfer.`,name:"use_stream"},{anchor:"diffusers.DiffusionPipeline.enable_group_offload.record_stream",description:`<strong>record_stream</strong> (<code>bool</code>, defaults to <code>False</code>) — When enabled with <code>use_stream</code>, it marks the current tensor | |
| as having been used by this stream. It is faster at the expense of slightly more memory usage. Refer to | |
| the <a href="https://pytorch.org/docs/stable/generated/torch.Tensor.record_stream.html" rel="nofollow">PyTorch official docs</a> | |
| more details.`,name:"record_stream"},{anchor:"diffusers.DiffusionPipeline.enable_group_offload.low_cpu_mem_usage",description:`<strong>low_cpu_mem_usage</strong> (<code>bool</code>, defaults to <code>False</code>) — | |
| If True, the CPU memory usage is minimized by pinning tensors on-the-fly instead of pre-pinning them. | |
| This option only matters when using streamed CPU offloading (i.e. <code>use_stream=True</code>). This can be | |
| useful when the CPU memory is a bottleneck but may counteract the benefits of using streams.`,name:"low_cpu_mem_usage"},{anchor:"diffusers.DiffusionPipeline.enable_group_offload.exclude_modules",description:"<strong>exclude_modules</strong> (<code>Union[str, List[str]]</code>, defaults to <code>None</code>) — List of modules to exclude from offloading.",name:"exclude_modules"}]});var _e=e($,12);f(_e,{anchor:"diffusers.DiffusionPipeline.enable_group_offload.example",children:(a,l)=>{var n=Ae(),r=e(c(n),2);p(r,{code:"ZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMERpZmZ1c2lvblBpcGVsaW5lJTBBaW1wb3J0JTIwdG9yY2glMEElMEFwaXBlJTIwJTNEJTIwRGlmZnVzaW9uUGlwZWxpbmUuZnJvbV9wcmV0cmFpbmVkKCUyMlF3ZW4lMkZRd2VuLUltYWdlJTIyJTJDJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5iZmxvYXQxNiklMEElMEFwaXBlLmVuYWJsZV9ncm91cF9vZmZsb2FkKCUwQSUyMCUyMCUyMCUyMG9ubG9hZF9kZXZpY2UlM0R0b3JjaC5kZXZpY2UoJTIyY3VkYSUyMiklMkMlMEElMjAlMjAlMjAlMjBvZmZsb2FkX2RldmljZSUzRHRvcmNoLmRldmljZSglMjJjcHUlMjIpJTJDJTBBJTIwJTIwJTIwJTIwb2ZmbG9hZF90eXBlJTNEJTIybGVhZl9sZXZlbCUyMiUyQyUwQSUyMCUyMCUyMCUyMHVzZV9zdHJlYW0lM0RUcnVlJTJDJTBBKSUwQWltYWdlJTIwJTNEJTIwcGlwZSglMjJhJTIwYmVhdXRpZnVsJTIwc3Vuc2V0JTIyKS5pbWFnZXMlNUIwJTVE",highlighted:`<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">import</span> torch | |
| <span class="hljs-meta">>>> </span>pipe = DiffusionPipeline.from_pretrained(<span class="hljs-string">"Qwen/Qwen-Image"</span>, torch_dtype=torch.bfloat16) | |
| <span class="hljs-meta">>>> </span>pipe.enable_group_offload( | |
| <span class="hljs-meta">... </span> onload_device=torch.device(<span class="hljs-string">"cuda"</span>), | |
| <span class="hljs-meta">... </span> offload_device=torch.device(<span class="hljs-string">"cpu"</span>), | |
| <span class="hljs-meta">... </span> offload_type=<span class="hljs-string">"leaf_level"</span>, | |
| <span class="hljs-meta">... </span> use_stream=<span class="hljs-literal">True</span>, | |
| <span class="hljs-meta">... </span>) | |
| <span class="hljs-meta">>>> </span>image = pipe(<span class="hljs-string">"a beautiful sunset"</span>).images[<span class="hljs-number">0</span>]`,lang:"python",wrap:!1}),d(a,n)},$$slots:{default:!0}}),i(T);var U=e(T,2),ye=t(U);o(ye,{name:"enable_model_cpu_offload",anchor:"diffusers.DiffusionPipeline.enable_model_cpu_offload",source:"https://github.com/huggingface/diffusers/blob/vr_14218/src/diffusers/pipelines/pipeline_utils.py#L1206",parameters:[{name:"gpu_id",val:": int | None = None"},{name:"device",val:": typing.Union[torch.device, str] = None"}],parametersDescription:[{anchor:"diffusers.DiffusionPipeline.enable_model_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.DiffusionPipeline.enable_model_cpu_offload.device",description:`<strong>device</strong> (<code>torch.Device</code> or <code>str</code>, <em>optional</em>, defaults to None) — | |
| The PyTorch device type of the accelerator that shall be used in inference. If not specified, it will | |
| automatically detect the available accelerator and use.`,name:"device"}]}),s(2),i(U);var Z=e(U,2),ve=t(Z);o(ve,{name:"enable_sequential_cpu_offload",anchor:"diffusers.DiffusionPipeline.enable_sequential_cpu_offload",source:"https://github.com/huggingface/diffusers/blob/vr_14218/src/diffusers/pipelines/pipeline_utils.py#L1324",parameters:[{name:"gpu_id",val:": int | None = None"},{name:"device",val:": typing.Union[torch.device, str] = None"}],parametersDescription:[{anchor:"diffusers.DiffusionPipeline.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.DiffusionPipeline.enable_sequential_cpu_offload.device",description:`<strong>device</strong> (<code>torch.Device</code> or <code>str</code>, <em>optional</em>, defaults to None) — | |
| The PyTorch device type of the accelerator that shall be used in inference. If not specified, it will | |
| automatically detect the available accelerator and use.`,name:"device"}]}),s(2),i(Z);var D=e(Z,2),O=t(D);o(O,{name:"enable_xformers_memory_efficient_attention",anchor:"diffusers.DiffusionPipeline.enable_xformers_memory_efficient_attention",source:"https://github.com/huggingface/diffusers/blob/vr_14218/src/diffusers/pipelines/pipeline_utils.py#L2036",parameters:[{name:"attention_op",val:": typing.Optional[typing.Callable] = None"}],parametersDescription:[{anchor:"diffusers.DiffusionPipeline.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"}]});var we=e(O,6);f(we,{anchor:"diffusers.DiffusionPipeline.enable_xformers_memory_efficient_attention.example",children:(a,l)=>{var n=u(),r=e(c(n),2);p(r,{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>)`,lang:"py",wrap:!1}),d(a,n)},$$slots:{default:!0}}),i(D);var P=e(D,2),K=t(P);o(K,{name:"from_pipe",anchor:"diffusers.DiffusionPipeline.from_pipe",source:"https://github.com/huggingface/diffusers/blob/vr_14218/src/diffusers/pipelines/pipeline_utils.py#L2144",parameters:[{name:"pipeline",val:""},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"diffusers.DiffusionPipeline.from_pipe.pipeline",description:`<strong>pipeline</strong> (<code>DiffusionPipeline</code>) — | |
| The pipeline from which to create a new pipeline.`,name:"pipeline"}],returnDescription:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p>A new pipeline with the same weights and configurations as <code>pipeline</code>.</p> | |
| `,returnType:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p><code>DiffusionPipeline</code></p> | |
| `});var xe=e(K,4);f(xe,{anchor:"diffusers.DiffusionPipeline.from_pipe.example",children:(a,l)=>{var n=u(),r=e(c(n),2);p(r,{code:"ZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMFN0YWJsZURpZmZ1c2lvblBpcGVsaW5lJTJDJTIwU3RhYmxlRGlmZnVzaW9uU0FHUGlwZWxpbmUlMEElMEFwaXBlJTIwJTNEJTIwU3RhYmxlRGlmZnVzaW9uUGlwZWxpbmUuZnJvbV9wcmV0cmFpbmVkKCUyMnN0YWJsZS1kaWZmdXNpb24tdjEtNSUyRnN0YWJsZS1kaWZmdXNpb24tdjEtNSUyMiklMEFuZXdfcGlwZSUyMCUzRCUyMFN0YWJsZURpZmZ1c2lvblNBR1BpcGVsaW5lLmZyb21fcGlwZShwaXBlKQ==",highlighted:`<span class="hljs-meta">>>> </span><span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> StableDiffusionPipeline, StableDiffusionSAGPipeline | |
| <span class="hljs-meta">>>> </span>pipe = StableDiffusionPipeline.from_pretrained(<span class="hljs-string">"stable-diffusion-v1-5/stable-diffusion-v1-5"</span>) | |
| <span class="hljs-meta">>>> </span>new_pipe = StableDiffusionSAGPipeline.from_pipe(pipe)`,lang:"py",wrap:!1}),d(a,n)},$$slots:{default:!0}}),i(P);var j=e(P,2),ee=t(j);o(ee,{name:"from_pretrained",anchor:"diffusers.DiffusionPipeline.from_pretrained",source:"https://github.com/huggingface/diffusers/blob/vr_14218/src/diffusers/pipelines/pipeline_utils.py#L629",parameters:[{name:"pretrained_model_name_or_path",val:": str | os.PathLike"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"diffusers.DiffusionPipeline.from_pretrained.pretrained_model_name_or_path",description:`<strong>pretrained_model_name_or_path</strong> (<code>str</code> or <code>os.PathLike</code>, <em>optional</em>) — | |
| Can be either:</p> | |
| <ul> | |
| <li>A string, the <em>repo id</em> (for example <code>CompVis/ldm-text2im-large-256</code>) of a pretrained pipeline | |
| hosted on the Hub.</li> | |
| <li>A path to a <em>directory</em> (for example <code>./my_pipeline_directory/</code>) containing pipeline weights | |
| saved using | |
| <a href="/docs/diffusers/pr_14218/en/api/pipelines/overview#diffusers.DiffusionPipeline.save_pretrained">save_pretrained()</a>.</li> | |
| <li>A path to a <em>directory</em> (for example <code>./my_pipeline_directory/</code>) containing a dduf file</li> | |
| </ul>`,name:"pretrained_model_name_or_path"},{anchor:"diffusers.DiffusionPipeline.from_pretrained.dtype",description:`<strong>dtype</strong> (<code>torch.dtype</code> or <code>dict[str, Union[str, torch.dtype]]</code>, <em>optional</em>) — | |
| Override the default <code>torch.dtype</code> and load the model with another dtype. To load submodels with | |
| different dtype pass a <code>dict</code> (for example <code>{'transformer': torch.bfloat16, 'vae': torch.float16}</code>). | |
| Set the default dtype for unspecified components with <code>default</code> (for example <code>{'transformer': torch.bfloat16, 'default': torch.float16}</code>). If a component is not specified and no default is set, | |
| <code>torch.float32</code> is used.`,name:"dtype"},{anchor:"diffusers.DiffusionPipeline.from_pretrained.custom_pipeline",description:`<strong>custom_pipeline</strong> (<code>str</code>, <em>optional</em>) —</p> | |
| <blockquote class="warning"> | |
| <p>> 🧪 This is an experimental feature and may change in the future.</p> | |
| </blockquote> | |
| <p>Can be either:</p> | |
| <ul> | |
| <li>A string, the <em>repo id</em> (for example <code>hf-internal-testing/diffusers-dummy-pipeline</code>) of a custom | |
| pipeline hosted on the Hub. The repository must contain a file called pipeline.py that defines | |
| the custom pipeline.</li> | |
| <li>A string, the <em>file name</em> of a community pipeline hosted on GitHub under | |
| <a href="https://github.com/huggingface/diffusers/tree/main/examples/community" rel="nofollow">Community</a>. Valid file | |
| names must match the file name and not the pipeline script (<code>clip_guided_stable_diffusion</code> | |
| instead of <code>clip_guided_stable_diffusion.py</code>). Community pipelines are always loaded from the | |
| current main branch of GitHub.</li> | |
| <li>A path to a directory (<code>./my_pipeline_directory/</code>) containing a custom pipeline. The directory | |
| must contain a file called <code>pipeline.py</code> that defines the custom pipeline.</li> | |
| </ul> | |
| <p>For more information on how to load and create custom pipelines, please have a look at <a href="https://huggingface.co/docs/diffusers/using-diffusers/custom_pipeline_overview" rel="nofollow">Loading and | |
| Adding Custom | |
| Pipelines</a>`,name:"custom_pipeline"},{anchor:"diffusers.DiffusionPipeline.from_pretrained.force_download",description:`<strong>force_download</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| Whether or not to force the (re-)download of the model weights and configuration files, overriding the | |
| cached versions if they exist.`,name:"force_download"},{anchor:"diffusers.DiffusionPipeline.from_pretrained.cache_dir",description:`<strong>cache_dir</strong> (<code>Union[str, os.PathLike]</code>, <em>optional</em>) — | |
| Path to a directory where a downloaded pretrained model configuration is cached if the standard cache | |
| is not used.`,name:"cache_dir"},{anchor:"diffusers.DiffusionPipeline.from_pretrained.proxies",description:`<strong>proxies</strong> (<code>Dict[str, str]</code>, <em>optional</em>) — | |
| A dictionary of proxy servers to use by protocol or endpoint, for example, <code>{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}</code>. The proxies are used on each request.`,name:"proxies"},{anchor:"diffusers.DiffusionPipeline.from_pretrained.output_loading_info(bool,",description:`<strong>output_loading_info(<code>bool</code>,</strong> <em>optional</em>, defaults to <code>False</code>) — | |
| Whether or not to also return a dictionary containing missing keys, unexpected keys and error messages.`,name:"output_loading_info(bool,"},{anchor:"diffusers.DiffusionPipeline.from_pretrained.local_files_only",description:`<strong>local_files_only</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| Whether to only load local model weights and configuration files or not. If set to <code>True</code>, the model | |
| won’t be downloaded from the Hub.`,name:"local_files_only"},{anchor:"diffusers.DiffusionPipeline.from_pretrained.token",description:`<strong>token</strong> (<code>str</code> or <em>bool</em>, <em>optional</em>) — | |
| The token to use as HTTP bearer authorization for remote files. If <code>True</code>, the token generated from | |
| <code>diffusers-cli login</code> (stored in <code>~/.huggingface</code>) is used.`,name:"token"},{anchor:"diffusers.DiffusionPipeline.from_pretrained.revision",description:`<strong>revision</strong> (<code>str</code>, <em>optional</em>, defaults to <code>"main"</code>) — | |
| The specific model version to use. It can be a branch name, a tag name, a commit id, or any identifier | |
| allowed by Git.`,name:"revision"},{anchor:"diffusers.DiffusionPipeline.from_pretrained.custom_revision",description:`<strong>custom_revision</strong> (<code>str</code>, <em>optional</em>) — | |
| The specific model version to use. It can be a branch name, a tag name, or a commit id similar to | |
| <code>revision</code> when loading a custom pipeline from the Hub. Defaults to the latest stable 🤗 Diffusers | |
| version.`,name:"custom_revision"},{anchor:"diffusers.DiffusionPipeline.from_pretrained.mirror",description:`<strong>mirror</strong> (<code>str</code>, <em>optional</em>) — | |
| Mirror source to resolve accessibility issues if you’re downloading a model in China. We do not | |
| guarantee the timeliness or safety of the source, and you should refer to the mirror site for more | |
| information.`,name:"mirror"},{anchor:"diffusers.DiffusionPipeline.from_pretrained.device_map",description:`<strong>device_map</strong> (<code>str</code>, <em>optional</em>) — | |
| Strategy that dictates how the different components of a pipeline should be placed on available | |
| devices. Currently, only “balanced” <code>device_map</code> is supported. Check out | |
| <a href="https://huggingface.co/docs/diffusers/main/en/tutorials/inference_with_big_models#device-placement" rel="nofollow">this</a> | |
| to know more.`,name:"device_map"},{anchor:"diffusers.DiffusionPipeline.from_pretrained.max_memory",description:`<strong>max_memory</strong> (<code>Dict</code>, <em>optional</em>) — | |
| A dictionary device identifier for the maximum memory. Will default to the maximum memory available for | |
| each GPU and the available CPU RAM if unset.`,name:"max_memory"},{anchor:"diffusers.DiffusionPipeline.from_pretrained.offload_folder",description:`<strong>offload_folder</strong> (<code>str</code> or <code>os.PathLike</code>, <em>optional</em>) — | |
| The path to offload weights if device_map contains the value <code>"disk"</code>.`,name:"offload_folder"},{anchor:"diffusers.DiffusionPipeline.from_pretrained.offload_state_dict",description:`<strong>offload_state_dict</strong> (<code>bool</code>, <em>optional</em>) — | |
| If <code>True</code>, temporarily offloads the CPU state dict to the hard drive to avoid running out of CPU RAM if | |
| the weight of the CPU state dict + the biggest shard of the checkpoint does not fit. Defaults to <code>True</code> | |
| when there is some disk offload.`,name:"offload_state_dict"},{anchor:"diffusers.DiffusionPipeline.from_pretrained.low_cpu_mem_usage",description:`<strong>low_cpu_mem_usage</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code> if torch version >= 1.9.0 else <code>False</code>) — | |
| Speed up model loading only loading the pretrained weights and not initializing the weights. This also | |
| tries to not use more than 1x model size in CPU memory (including peak memory) while loading the model. | |
| Only supported for PyTorch >= 1.9.0. If you are using an older version of PyTorch, setting this | |
| argument to <code>True</code> will raise an error.`,name:"low_cpu_mem_usage"},{anchor:"diffusers.DiffusionPipeline.from_pretrained.use_safetensors",description:`<strong>use_safetensors</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>None</code>) — | |
| If set to <code>None</code>, the safetensors weights are downloaded if they’re available <strong>and</strong> if the | |
| safetensors library is installed. If set to <code>True</code>, the model is forcibly loaded from safetensors | |
| weights. If set to <code>False</code>, safetensors weights are not loaded.`,name:"use_safetensors"},{anchor:"diffusers.DiffusionPipeline.from_pretrained.use_onnx",description:`<strong>use_onnx</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>None</code>) — | |
| If set to <code>True</code>, ONNX weights will always be downloaded if present. If set to <code>False</code>, ONNX weights | |
| will never be downloaded. By default <code>use_onnx</code> defaults to the <code>_is_onnx</code> class attribute which is | |
| <code>False</code> for non-ONNX pipelines and <code>True</code> for ONNX pipelines. ONNX weights include both files ending | |
| with <code>.onnx</code> and <code>.pb</code>.`,name:"use_onnx"},{anchor:"diffusers.DiffusionPipeline.from_pretrained.kwargs",description:`<strong>kwargs</strong> (remaining dictionary of keyword arguments, <em>optional</em>) — | |
| Can be used to overwrite load and saveable variables (the pipeline components of the specific pipeline | |
| class). The overwritten components are passed directly to the pipelines <code>__init__</code> method. See example | |
| below for more information.`,name:"kwargs"},{anchor:"diffusers.DiffusionPipeline.from_pretrained.variant",description:`<strong>variant</strong> (<code>str</code>, <em>optional</em>) — | |
| Load weights from a specified variant filename such as <code>"fp16"</code> or <code>"ema"</code>. This is ignored when | |
| loading <code>from_flax</code>.`,name:"variant"},{anchor:"diffusers.DiffusionPipeline.from_pretrained.dduf_file(str,",description:`<strong>dduf_file(<code>str</code>,</strong> <em>optional</em>) — | |
| Load weights from the specified dduf file. <deprecated> This argument is deprecated and will be removed | |
| in version 0.41.0. </deprecated>`,name:"dduf_file(str,"},{anchor:"diffusers.DiffusionPipeline.from_pretrained.disable_mmap",description:`<strong>disable_mmap</strong> (‘bool’, <em>optional</em>, defaults to ‘False’) — | |
| Whether to disable mmap when loading a Safetensors model. This option can perform better when the model | |
| is on a network mount or hard drive, which may not handle the seeky-ness of mmap very well.`,name:"disable_mmap"}]});var oe=e(ee,6);f(oe,{anchor:"diffusers.DiffusionPipeline.from_pretrained.example",children:(a,l)=>{var n=Qe(),r=e(c(n),2);p(r,{code:"U29tZSUyMHdlaWdodHMlMjBvZiUyMFVOZXQyRENvbmRpdGlvbk1vZGVsJTIwd2VyZSUyMG5vdCUyMGluaXRpYWxpemVkJTIwZnJvbSUyMHRoZSUyMG1vZGVsJTIwY2hlY2twb2ludCUyMGF0JTIwc3RhYmxlLWRpZmZ1c2lvbi12MS01JTJGc3RhYmxlLWRpZmZ1c2lvbi12MS01JTIwYW5kJTIwYXJlJTIwbmV3bHklMjBpbml0aWFsaXplZCUyMGJlY2F1c2UlMjB0aGUlMjBzaGFwZXMlMjBkaWQlMjBub3QlMjBtYXRjaCUzQSUwQS0lMjBjb252X2luLndlaWdodCUzQSUyMGZvdW5kJTIwc2hhcGUlMjB0b3JjaC5TaXplKCU1QjMyMCUyQyUyMDQlMkMlMjAzJTJDJTIwMyU1RCklMjBpbiUyMHRoZSUyMGNoZWNrcG9pbnQlMjBhbmQlMjB0b3JjaC5TaXplKCU1QjMyMCUyQyUyMDklMkMlMjAzJTJDJTIwMyU1RCklMjBpbiUyMHRoZSUyMG1vZGVsJTIwaW5zdGFudGlhdGVkJTBBWW91JTIwc2hvdWxkJTIwcHJvYmFibHklMjBUUkFJTiUyMHRoaXMlMjBtb2RlbCUyMG9uJTIwYSUyMGRvd24tc3RyZWFtJTIwdGFzayUyMHRvJTIwYmUlMjBhYmxlJTIwdG8lMjB1c2UlMjBpdCUyMGZvciUyMHByZWRpY3Rpb25zJTIwYW5kJTIwaW5mZXJlbmNlLg==",highlighted:`Some weights of UNet2DConditionModel were not initialized from the model checkpoint <span class="hljs-built_in">at</span> stable-<span class="hljs-keyword">diffusion-v1-5/stable-diffusion-v1-5 </span><span class="hljs-keyword">and </span>are newly initialized <span class="hljs-keyword">because </span>the <span class="hljs-keyword">shapes </span><span class="hljs-keyword">did </span>not match: | |
| - conv_in.weight: found <span class="hljs-keyword">shape </span>torch.Size([<span class="hljs-number">320</span>, <span class="hljs-number">4</span>, <span class="hljs-number">3</span>, <span class="hljs-number">3</span>]) in the checkpoint <span class="hljs-keyword">and </span>torch.Size([<span class="hljs-number">320</span>, <span class="hljs-number">9</span>, <span class="hljs-number">3</span>, <span class="hljs-number">3</span>]) in the model <span class="hljs-keyword">instantiated | |
| </span>You <span class="hljs-keyword">should </span>probably TRAIN this model on a down-stream task to <span class="hljs-keyword">be </span>able to use it for predictions <span class="hljs-keyword">and </span>inference.`,lang:"",wrap:!1}),d(a,n)},$$slots:{default:!0}});var Me=e(oe,4);f(Me,{anchor:"diffusers.DiffusionPipeline.from_pretrained.example-2",children:(a,l)=>{var n=u(),r=e(c(n),2);p(r,{code:"ZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMERpZmZ1c2lvblBpcGVsaW5lJTBBJTBBJTIzJTIwRG93bmxvYWQlMjBwaXBlbGluZSUyMGZyb20lMjBodWdnaW5nZmFjZS5jbyUyMGFuZCUyMGNhY2hlLiUwQXBpcGVsaW5lJTIwJTNEJTIwRGlmZnVzaW9uUGlwZWxpbmUuZnJvbV9wcmV0cmFpbmVkKCUyMkNvbXBWaXMlMkZsZG0tdGV4dDJpbS1sYXJnZS0yNTYlMjIpJTBBJTBBJTIzJTIwRG93bmxvYWQlMjBwaXBlbGluZSUyMHRoYXQlMjByZXF1aXJlcyUyMGFuJTIwYXV0aG9yaXphdGlvbiUyMHRva2VuJTBBJTIzJTIwRm9yJTIwbW9yZSUyMGluZm9ybWF0aW9uJTIwb24lMjBhY2Nlc3MlMjB0b2tlbnMlMkMlMjBwbGVhc2UlMjByZWZlciUyMHRvJTIwdGhpcyUyMHNlY3Rpb24lMEElMjMlMjBvZiUyMHRoZSUyMGRvY3VtZW50YXRpb24lNUQoaHR0cHMlM0ElMkYlMkZodWdnaW5nZmFjZS5jbyUyRmRvY3MlMkZodWIlMkZzZWN1cml0eS10b2tlbnMpJTBBcGlwZWxpbmUlMjAlM0QlMjBEaWZmdXNpb25QaXBlbGluZS5mcm9tX3ByZXRyYWluZWQoJTIyc3RhYmxlLWRpZmZ1c2lvbi12MS01JTJGc3RhYmxlLWRpZmZ1c2lvbi12MS01JTIyKSUwQSUwQSUyMyUyMFVzZSUyMGElMjBkaWZmZXJlbnQlMjBzY2hlZHVsZXIlMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwTE1TRGlzY3JldGVTY2hlZHVsZXIlMEElMEFzY2hlZHVsZXIlMjAlM0QlMjBMTVNEaXNjcmV0ZVNjaGVkdWxlci5mcm9tX2NvbmZpZyhwaXBlbGluZS5zY2hlZHVsZXIuY29uZmlnKSUwQXBpcGVsaW5lLnNjaGVkdWxlciUyMCUzRCUyMHNjaGVkdWxlcg==",highlighted:`<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-comment"># Download pipeline from huggingface.co and cache.</span> | |
| <span class="hljs-meta">>>> </span>pipeline = DiffusionPipeline.from_pretrained(<span class="hljs-string">"CompVis/ldm-text2im-large-256"</span>) | |
| <span class="hljs-meta">>>> </span><span class="hljs-comment"># Download pipeline that requires an authorization token</span> | |
| <span class="hljs-meta">>>> </span><span class="hljs-comment"># For more information on access tokens, please refer to this section</span> | |
| <span class="hljs-meta">>>> </span><span class="hljs-comment"># of the documentation](https://huggingface.co/docs/hub/security-tokens)</span> | |
| <span class="hljs-meta">>>> </span>pipeline = DiffusionPipeline.from_pretrained(<span class="hljs-string">"stable-diffusion-v1-5/stable-diffusion-v1-5"</span>) | |
| <span class="hljs-meta">>>> </span><span class="hljs-comment"># Use a different scheduler</span> | |
| <span class="hljs-meta">>>> </span><span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> LMSDiscreteScheduler | |
| <span class="hljs-meta">>>> </span>scheduler = LMSDiscreteScheduler.from_config(pipeline.scheduler.config) | |
| <span class="hljs-meta">>>> </span>pipeline.scheduler = scheduler`,lang:"py",wrap:!1}),d(a,n)},$$slots:{default:!0}}),i(j);var J=e(j,2),ke=t(J);o(ke,{name:"maybe_free_model_hooks",anchor:"diffusers.DiffusionPipeline.maybe_free_model_hooks",source:"https://github.com/huggingface/diffusers/blob/vr_14218/src/diffusers/pipelines/pipeline_utils.py#L1301",parameters:[]}),s(6),i(J);var C=e(J,2),Te=t(C);o(Te,{name:"numpy_to_pil",anchor:"diffusers.DiffusionPipeline.numpy_to_pil",source:"https://github.com/huggingface/diffusers/blob/vr_14218/src/diffusers/pipelines/pipeline_utils.py#L2006",parameters:[{name:"images",val:""}]}),s(2),i(C);var G=e(C,2),Ue=t(G);o(Ue,{name:"remove_all_hooks",anchor:"diffusers.DiffusionPipeline.remove_all_hooks",source:"https://github.com/huggingface/diffusers/blob/vr_14218/src/diffusers/pipelines/pipeline_utils.py#L1197",parameters:[]}),s(2),i(G);var I=e(G,2),Ze=t(I);o(Ze,{name:"reset_device_map",anchor:"diffusers.DiffusionPipeline.reset_device_map",source:"https://github.com/huggingface/diffusers/blob/vr_14218/src/diffusers/pipelines/pipeline_utils.py#L1518",parameters:[]}),s(2),i(I);var te=e(I,2),De=t(te);o(De,{name:"save_pretrained",anchor:"diffusers.DiffusionPipeline.save_pretrained",source:"https://github.com/huggingface/diffusers/blob/vr_14218/src/diffusers/pipelines/pipeline_utils.py#L253",parameters:[{name:"save_directory",val:": str | os.PathLike"},{name:"safe_serialization",val:": bool = True"},{name:"variant",val:": str | None = None"},{name:"max_shard_size",val:": int | str | None = None"},{name:"push_to_hub",val:": bool = False"},{name:"use_flashpack",val:": bool = False"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"diffusers.DiffusionPipeline.save_pretrained.save_directory",description:`<strong>save_directory</strong> (<code>str</code> or <code>os.PathLike</code>) — | |
| Directory to save a pipeline to. Will be created if it doesn’t exist.`,name:"save_directory"},{anchor:"diffusers.DiffusionPipeline.save_pretrained.safe_serialization",description:`<strong>safe_serialization</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) — | |
| Whether to save the model using <code>safetensors</code> or the traditional PyTorch way with <code>pickle</code>.`,name:"safe_serialization"},{anchor:"diffusers.DiffusionPipeline.save_pretrained.variant",description:`<strong>variant</strong> (<code>str</code>, <em>optional</em>) — | |
| If specified, weights are saved in the format <code>pytorch_model.<variant>.bin</code>.`,name:"variant"},{anchor:"diffusers.DiffusionPipeline.save_pretrained.max_shard_size",description:`<strong>max_shard_size</strong> (<code>int</code> or <code>str</code>, defaults to <code>None</code>) — | |
| The maximum size for a checkpoint before being sharded. Checkpoints shard will then be each of size | |
| lower than this size. If expressed as a string, needs to be digits followed by a unit (like <code>"5GB"</code>). | |
| If expressed as an integer, the unit is bytes. Note that this limit will be decreased after a certain | |
| period of time (starting from Oct 2024) to allow users to upgrade to the latest version of <code>diffusers</code>. | |
| This is to establish a common default size for this argument across different libraries in the Hugging | |
| Face ecosystem (<code>transformers</code>, and <code>accelerate</code>, for example).`,name:"max_shard_size"},{anchor:"diffusers.DiffusionPipeline.save_pretrained.push_to_hub",description:`<strong>push_to_hub</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| Whether or not to push your model to the Hugging Face model hub after saving it. You can specify the | |
| repository you want to push to with <code>repo_id</code> (will default to the name of <code>save_directory</code> in your | |
| namespace).`,name:"push_to_hub"},{anchor:"diffusers.DiffusionPipeline.save_pretrained.kwargs",description:`<strong>kwargs</strong> (<code>Dict[str, Any]</code>, <em>optional</em>) — | |
| Additional keyword arguments passed along to the <a href="/docs/diffusers/pr_14218/en/api/pipelines/overview#diffusers.utils.PushToHubMixin.push_to_hub">push_to_hub()</a> method.`,name:"kwargs"}]}),s(2),i(te),i(g);var W=e(g,2),Pe=t(W);o(Pe,{name:"diffusers.StableDiffusionMixin.enable_freeu",anchor:"diffusers.StableDiffusionMixin.enable_freeu",source:"https://github.com/huggingface/diffusers/blob/vr_14218/src/diffusers/pipelines/pipeline_utils.py#L2313",parameters:[{name:"s1",val:": float"},{name:"s2",val:": float"},{name:"b1",val:": float"},{name:"b2",val:": float"}],parametersDescription:[{anchor:"diffusers.StableDiffusionMixin.enable_freeu.s1",description:`<strong>s1</strong> (<code>float</code>) — | |
| Scaling factor for stage 1 to attenuate the contributions of the skip features. This is done to | |
| mitigate “oversmoothing effect” in the enhanced denoising process.`,name:"s1"},{anchor:"diffusers.StableDiffusionMixin.enable_freeu.s2",description:`<strong>s2</strong> (<code>float</code>) — | |
| Scaling factor for stage 2 to attenuate the contributions of the skip features. This is done to | |
| mitigate “oversmoothing effect” in the enhanced denoising process.`,name:"s2"},{anchor:"diffusers.StableDiffusionMixin.enable_freeu.b1",description:"<strong>b1</strong> (<code>float</code>) — Scaling factor for stage 1 to amplify the contributions of backbone features.",name:"b1"},{anchor:"diffusers.StableDiffusionMixin.enable_freeu.b2",description:"<strong>b2</strong> (<code>float</code>) — Scaling factor for stage 2 to amplify the contributions of backbone features.",name:"b2"}]}),s(6),i(W);var N=e(W,2),je=t(N);o(je,{name:"diffusers.StableDiffusionMixin.disable_freeu",anchor:"diffusers.StableDiffusionMixin.disable_freeu",source:"https://github.com/huggingface/diffusers/blob/vr_14218/src/diffusers/pipelines/pipeline_utils.py#L2335",parameters:[]}),s(2),i(N);var ie=e(N,2);h(ie,{title:"PushToHubMixin",local:"diffusers.utils.PushToHubMixin",headingTag:"h2"});var F=e(ie,2),ne=t(F);o(ne,{name:"class diffusers.utils.PushToHubMixin",anchor:"diffusers.utils.PushToHubMixin",source:"https://github.com/huggingface/diffusers/blob/vr_14218/src/diffusers/utils/hub_utils.py#L490",parameters:[]});var se=e(ne,4),ae=t(se);o(ae,{name:"push_to_hub",anchor:"diffusers.utils.PushToHubMixin.push_to_hub",source:"https://github.com/huggingface/diffusers/blob/vr_14218/src/diffusers/utils/hub_utils.py#L525",parameters:[{name:"repo_id",val:": str"},{name:"commit_message",val:": str | None = None"},{name:"private",val:": bool | None = None"},{name:"token",val:": str | None = None"},{name:"create_pr",val:": bool = False"},{name:"safe_serialization",val:": bool = True"},{name:"variant",val:": str | None = None"},{name:"subfolder",val:": str | None = None"}],parametersDescription:[{anchor:"diffusers.utils.PushToHubMixin.push_to_hub.repo_id",description:`<strong>repo_id</strong> (<code>str</code>) — | |
| The name of the repository you want to push your model, scheduler, or pipeline files to. It should | |
| contain your organization name when pushing to an organization. <code>repo_id</code> can also be a path to a local | |
| directory.`,name:"repo_id"},{anchor:"diffusers.utils.PushToHubMixin.push_to_hub.commit_message",description:`<strong>commit_message</strong> (<code>str</code>, <em>optional</em>) — | |
| Message to commit while pushing. Default to <code>"Upload {object}"</code>.`,name:"commit_message"},{anchor:"diffusers.utils.PushToHubMixin.push_to_hub.private",description:`<strong>private</strong> (<code>bool</code>, <em>optional</em>) — | |
| Whether to make the repo private. If <code>None</code> (default), the repo will be public unless the | |
| organization’s default is private. This value is ignored if the repo already exists.`,name:"private"},{anchor:"diffusers.utils.PushToHubMixin.push_to_hub.token",description:`<strong>token</strong> (<code>str</code>, <em>optional</em>) — | |
| The token to use as HTTP bearer authorization for remote files. The token generated when running <code>hf auth login</code> (stored in <code>~/.huggingface</code>).`,name:"token"},{anchor:"diffusers.utils.PushToHubMixin.push_to_hub.create_pr",description:`<strong>create_pr</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| Whether or not to create a PR with the uploaded files or directly commit.`,name:"create_pr"},{anchor:"diffusers.utils.PushToHubMixin.push_to_hub.safe_serialization",description:`<strong>safe_serialization</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) — | |
| Whether or not to convert the model weights to the <code>safetensors</code> format.`,name:"safe_serialization"},{anchor:"diffusers.utils.PushToHubMixin.push_to_hub.variant",description:`<strong>variant</strong> (<code>str</code>, <em>optional</em>) — | |
| If specified, weights are saved in the format <code>pytorch_model.<variant>.bin</code>.`,name:"variant"}]});var Je=e(ae,4);f(Je,{anchor:"diffusers.utils.PushToHubMixin.push_to_hub.example",children:(a,l)=>{var n=u(),r=e(c(n),2);p(r,{code:"ZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMFVOZXQyRENvbmRpdGlvbk1vZGVsJTBBJTBBdW5ldCUyMCUzRCUyMFVOZXQyRENvbmRpdGlvbk1vZGVsLmZyb21fcHJldHJhaW5lZCglMjJzdGFiaWxpdHlhaSUyRnN0YWJsZS1kaWZmdXNpb24tMiUyMiUyQyUyMHN1YmZvbGRlciUzRCUyMnVuZXQlMjIpJTBBJTBBJTIzJTIwUHVzaCUyMHRoZSUyMCU2MHVuZXQlNjAlMjB0byUyMHlvdXIlMjBuYW1lc3BhY2UlMjB3aXRoJTIwdGhlJTIwbmFtZSUyMCUyMm15LWZpbmV0dW5lZC11bmV0JTIyLiUwQXVuZXQucHVzaF90b19odWIoJTIybXktZmluZXR1bmVkLXVuZXQlMjIpJTBBJTBBJTIzJTIwUHVzaCUyMHRoZSUyMCU2MHVuZXQlNjAlMjB0byUyMGFuJTIwb3JnYW5pemF0aW9uJTIwd2l0aCUyMHRoZSUyMG5hbWUlMjAlMjJteS1maW5ldHVuZWQtdW5ldCUyMi4lMEF1bmV0LnB1c2hfdG9faHViKCUyMnlvdXItb3JnJTJGbXktZmluZXR1bmVkLXVuZXQlMjIp",highlighted:`<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> UNet2DConditionModel | |
| unet = UNet2DConditionModel.from_pretrained(<span class="hljs-string">"stabilityai/stable-diffusion-2"</span>, subfolder=<span class="hljs-string">"unet"</span>) | |
| <span class="hljs-comment"># Push the \`unet\` to your namespace with the name "my-finetuned-unet".</span> | |
| unet.push_to_hub(<span class="hljs-string">"my-finetuned-unet"</span>) | |
| <span class="hljs-comment"># Push the \`unet\` to an organization with the name "my-finetuned-unet".</span> | |
| unet.push_to_hub(<span class="hljs-string">"your-org/my-finetuned-unet"</span>)`,lang:"python",wrap:!1}),d(a,n)},$$slots:{default:!0}}),i(se),i(F);var re=e(F,2);h(re,{title:"Callbacks",local:"diffusers.callbacks.PipelineCallback",headingTag:"h2"});var S=e(re,2),Ce=t(S);o(Ce,{name:"class diffusers.callbacks.PipelineCallback",anchor:"diffusers.callbacks.PipelineCallback",source:"https://github.com/huggingface/diffusers/blob/vr_14218/src/diffusers/callbacks.py#L7",parameters:[{name:"cutoff_step_ratio",val:" = 1.0"},{name:"cutoff_step_index",val:" = None"}]}),s(4),i(S);var B=e(S,2),Ge=t(B);o(Ge,{name:"class diffusers.callbacks.SDCFGCutoffCallback",anchor:"diffusers.callbacks.SDCFGCutoffCallback",source:"https://github.com/huggingface/diffusers/blob/vr_14218/src/diffusers/callbacks.py#L69",parameters:[{name:"cutoff_step_ratio",val:" = 1.0"},{name:"cutoff_step_index",val:" = None"}]}),s(4),i(B);var X=e(B,2),Ie=t(X);o(Ie,{name:"class diffusers.callbacks.SDXLCFGCutoffCallback",anchor:"diffusers.callbacks.SDXLCFGCutoffCallback",source:"https://github.com/huggingface/diffusers/blob/vr_14218/src/diffusers/callbacks.py#L98",parameters:[{name:"cutoff_step_ratio",val:" = 1.0"},{name:"cutoff_step_index",val:" = None"}]}),s(4),i(X);var R=e(X,2),We=t(R);o(We,{name:"class diffusers.callbacks.SDXLControlnetCFGCutoffCallback",anchor:"diffusers.callbacks.SDXLControlnetCFGCutoffCallback",source:"https://github.com/huggingface/diffusers/blob/vr_14218/src/diffusers/callbacks.py#L140",parameters:[{name:"cutoff_step_ratio",val:" = 1.0"},{name:"cutoff_step_index",val:" = None"}]}),s(4),i(R);var V=e(R,2),Ne=t(V);o(Ne,{name:"class diffusers.callbacks.IPAdapterScaleCutoffCallback",anchor:"diffusers.callbacks.IPAdapterScaleCutoffCallback",source:"https://github.com/huggingface/diffusers/blob/vr_14218/src/diffusers/callbacks.py#L188",parameters:[{name:"cutoff_step_ratio",val:" = 1.0"},{name:"cutoff_step_index",val:" = None"}]}),s(4),i(V);var z=e(V,2),Fe=t(z);o(Fe,{name:"class diffusers.callbacks.SD3CFGCutoffCallback",anchor:"diffusers.callbacks.SD3CFGCutoffCallback",source:"https://github.com/huggingface/diffusers/blob/vr_14218/src/diffusers/callbacks.py#L212",parameters:[{name:"cutoff_step_ratio",val:" = 1.0"},{name:"cutoff_step_index",val:" = None"}]}),s(4),i(z);var Se=e(z,2);Ve(Se,{source:"https://github.com/huggingface/diffusers/blob/main/docs/source/en/api/pipelines/overview.md"}),s(2),d(le,H),Le()}export{to as component}; | |
Xet Storage Details
- Size:
- 81.6 kB
- Xet hash:
- 1b78d9b913ff9d43b93d2bb36ecd5fb374b6fd134e09010a930a8d7749cd3ebe
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.