Buckets:

download
raw
23 kB
<meta charset="utf-8" /><meta name="hf:doc:metadata" content="{&quot;title&quot;:&quot;Unit 1: An Introduction to Diffusion Models&quot;,&quot;local&quot;:&quot;unit-1-an-introduction-to-diffusion-models&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Start this Unit 🚀&quot;,&quot;local&quot;:&quot;start-this-unit-&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;What Are Diffusion Models?&quot;,&quot;local&quot;:&quot;what-are-diffusion-models&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Hands-On Notebooks&quot;,&quot;local&quot;:&quot;hands-on-notebooks&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Project Time&quot;,&quot;local&quot;:&quot;project-time&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Some Additional Resources&quot;,&quot;local&quot;:&quot;some-additional-resources&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2}],&quot;depth&quot;:1}">
<link href="/docs/diffusion-course/pr_113/en/_app/immutable/assets/0.e3b0c442.css" rel="modulepreload">
<link rel="modulepreload" href="/docs/diffusion-course/pr_113/en/_app/immutable/entry/start.d783b3e7.js">
<link rel="modulepreload" href="/docs/diffusion-course/pr_113/en/_app/immutable/chunks/scheduler.47c1f99a.js">
<link rel="modulepreload" href="/docs/diffusion-course/pr_113/en/_app/immutable/chunks/singletons.8d8f1267.js">
<link rel="modulepreload" href="/docs/diffusion-course/pr_113/en/_app/immutable/chunks/paths.82d718a6.js">
<link rel="modulepreload" href="/docs/diffusion-course/pr_113/en/_app/immutable/entry/app.21133b1e.js">
<link rel="modulepreload" href="/docs/diffusion-course/pr_113/en/_app/immutable/chunks/preload-helper.d7d11f96.js">
<link rel="modulepreload" href="/docs/diffusion-course/pr_113/en/_app/immutable/chunks/index.bcb71b6c.js">
<link rel="modulepreload" href="/docs/diffusion-course/pr_113/en/_app/immutable/nodes/0.c4a51760.js">
<link rel="modulepreload" href="/docs/diffusion-course/pr_113/en/_app/immutable/chunks/each.e59479a4.js">
<link rel="modulepreload" href="/docs/diffusion-course/pr_113/en/_app/immutable/nodes/6.e52aba84.js">
<link rel="modulepreload" href="/docs/diffusion-course/pr_113/en/_app/immutable/chunks/MermaidChart.svelte_svelte_type_style_lang.2aa9fd83.js"><!-- HEAD_svelte-u9bgzb_START --><meta name="hf:doc:metadata" content="{&quot;title&quot;:&quot;Unit 1: An Introduction to Diffusion Models&quot;,&quot;local&quot;:&quot;unit-1-an-introduction-to-diffusion-models&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Start this Unit 🚀&quot;,&quot;local&quot;:&quot;start-this-unit-&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;What Are Diffusion Models?&quot;,&quot;local&quot;:&quot;what-are-diffusion-models&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Hands-On Notebooks&quot;,&quot;local&quot;:&quot;hands-on-notebooks&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Project Time&quot;,&quot;local&quot;:&quot;project-time&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Some Additional Resources&quot;,&quot;local&quot;:&quot;some-additional-resources&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2}],&quot;depth&quot;:1}"><!-- HEAD_svelte-u9bgzb_END --> <p></p> <div class="items-center shrink-0 min-w-[100px] max-sm:min-w-[50px] justify-end ml-auto flex" style="float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"><div class="inline-flex rounded-md max-sm:rounded-sm"><button class="inline-flex items-center gap-1 h-7 max-sm:h-7 px-2 max-sm:px-1.5 text-sm font-medium text-gray-800 border border-r-0 rounded-l-md max-sm:rounded-l-sm border-gray-200 bg-white hover:shadow-inner dark:border-gray-850 dark:bg-gray-950 dark:text-gray-200 dark:hover:bg-gray-800" aria-live="polite"><span class="inline-flex items-center justify-center rounded-md p-0.5 max-sm:p-0 hover:text-gray-800 dark:hover:text-gray-200"><svg class="sm:size-3.5 size-3" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg></span> <span>Copy page</span></button> <button class="inline-flex items-center justify-center w-6 max-sm:w-5 h-7 max-sm:h-7 disabled:pointer-events-none text-sm text-gray-500 hover:text-gray-700 dark:hover:text-white rounded-r-md max-sm:rounded-r-sm border border-l transition border-gray-200 bg-white hover:shadow-inner dark:border-gray-850 dark:bg-gray-950 dark:text-gray-200 dark:hover:bg-gray-800" aria-haspopup="menu" aria-expanded="false" aria-label="Open copy menu"><svg class="transition-transform text-gray-400 overflow-visible sm:size-3.5 size-3 rotate-0" width="1em" height="1em" viewBox="0 0 12 7" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 1L6 6L11 1" stroke="currentColor"></path></svg></button></div> </div> <h1 class="relative group"><a id="unit-1-an-introduction-to-diffusion-models" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#unit-1-an-introduction-to-diffusion-models"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Unit 1: An Introduction to Diffusion Models</span></h1> <p data-svelte-h="svelte-1bkeb93">Welcome to Unit 1 of the Hugging Face Diffusion Models Course! In this unit, you will learn the basics of how diffusion
models work and how to create your own using the 🤗 Diffusers library.</p> <h2 class="relative group"><a id="start-this-unit-" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#start-this-unit-"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Start this Unit 🚀</span></h2> <p data-svelte-h="svelte-1hcxnu9">Here are the steps for this unit:</p> <ul data-svelte-h="svelte-1chf7fu"><li>Make sure you’ve <a href="https://huggingface.us17.list-manage.com/subscribe?u=7f57e683fa28b51bfc493d048&id=ef963b4162" rel="nofollow">signed up for this course</a> so that you can be notified when new material is released.</li> <li>Read through the introductory material below as well as any of the additional resources that sound interesting.</li> <li>Check out the <em><strong>Introduction to Diffusers</strong></em> notebook below to put theory into practice with the 🤗 Diffusers library.</li> <li>Train and share your own diffusion model using the notebook or the linked training script.</li> <li>(Optional) Dive deeper with the <em><strong>Diffusion Models from Scratch</strong></em> notebook if you’re interested in seeing a minimal from-scratch implementation and exploring the different design decisions involved.</li> <li>(Optional) Check out <a href="https://www.youtube.com/watch?v=09o5cv6u76c" rel="nofollow">this video</a> for an informal run-through the material for this unit.</li></ul> <p data-svelte-h="svelte-vvpwne">📢 Don’t forget to join the <a href="https://huggingface.co/join/discord" rel="nofollow">Discord</a>, where you can discuss the material and share what you’ve made in the <code>#diffusion-models-class</code> channel.</p> <h2 class="relative group"><a id="what-are-diffusion-models" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#what-are-diffusion-models"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>What Are Diffusion Models?</span></h2> <p data-svelte-h="svelte-xyibvp">Diffusion models are a relatively recent addition to a group of algorithms known as ‘generative models’. The goal of generative modeling is to learn to <strong>generate</strong> data, such as images or audio, given a number of training examples. A good generative model will create a <strong>diverse</strong> set of outputs that resemble the training data without being exact copies. How do diffusion models achieve this? Let’s focus on the image generation case for illustrative purposes.</p> <p align="center" data-svelte-h="svelte-zzx38x"><img src="https://user-images.githubusercontent.com/10695622/174349667-04e9e485-793b-429a-affe-096e8199ad5b.png" width="800"> <br> <em>Figure from DDPM paper (https://arxiv.org/abs/2006.11239).</em> </p><p data-svelte-h="svelte-b5f4e5"></p><p data-svelte-h="svelte-4ja3ad">The secret to diffusion models’ success is the iterative nature of the diffusion process. Generation begins with random noise, but this is gradually refined over a number of steps until an output image emerges. At each step, the model estimates how we could go from the current input to a completely denoised version. However, since we only make a small change at every step, any errors in this estimate at the early stages (where predicting the final output is extremely difficult) can be corrected in later updates.</p> <p data-svelte-h="svelte-19n5l9g">Training the model is relatively straightforward compared to some other types of generative model. We repeatedly
1) Load in some images from the training data
2) Add noise, in different amounts. Remember, we want the model to do a good job estimating how to ‘fix’ (denoise) both extremely noisy images and images that are close to perfect.
3) Feed the noisy versions of the inputs into the model
4) Evaluate how well the model does at denoising these inputs
5) Use this information to update the model weights</p> <p data-svelte-h="svelte-11xgppe">To generate new images with a trained model, we begin with a completely random input and repeatedly feed it through the model, updating it each time by a small amount based on the model prediction. As we’ll see, there are a number of sampling methods that try to streamline this process so that we can generate good images with as few steps as possible.</p> <p data-svelte-h="svelte-v7qqiy">We will show each of these steps in detail in the hands-on notebooks here in unit 1. In unit 2, we will look at how this process can be modified to add additional control over the model outputs through extra conditioning (such as a class label) or with techniques such as guidance. And units 3 and 4 will explore an extremely powerful diffusion model called Stable Diffusion, which can generate images given text descriptions.</p> <h2 class="relative group"><a id="hands-on-notebooks" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#hands-on-notebooks"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Hands-On Notebooks</span></h2> <p data-svelte-h="svelte-mzqiq8">At this point, you know enough to get started with the accompanying notebooks! The two notebooks here come at the same idea in different ways.</p> <table data-svelte-h="svelte-7mysoe"><thead><tr><th align="left">Chapter</th> <th align="left">Colab</th> <th align="left">Kaggle</th> <th align="left">Gradient</th> <th align="left">Studio Lab</th></tr></thead> <tbody><tr><td align="left">Introduction to Diffusers</td> <td align="left"><a href="https://colab.research.google.com/github/huggingface/diffusion-models-class/blob/main/unit1/01_introduction_to_diffusers.ipynb" rel="nofollow"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"></a></td> <td align="left"><a href="https://kaggle.com/kernels/welcome?src=https://github.com/huggingface/diffusion-models-class/blob/main/unit1/01_introduction_to_diffusers.ipynb" rel="nofollow"><img src="https://kaggle.com/static/images/open-in-kaggle.svg" alt="Kaggle"></a></td> <td align="left"><a href="https://console.paperspace.com/github/huggingface/diffusion-models-class/blob/main/unit1/01_introduction_to_diffusers.ipynb" rel="nofollow"><img src="https://assets.paperspace.io/img/gradient-badge.svg" alt="Gradient"></a></td> <td align="left"><a href="https://studiolab.sagemaker.aws/import/github/huggingface/diffusion-models-class/blob/main/unit1/01_introduction_to_diffusers.ipynb" rel="nofollow"><img src="https://studiolab.sagemaker.aws/studiolab.svg" alt="Open In SageMaker Studio Lab"></a></td></tr> <tr><td align="left">Diffusion Models from Scratch</td> <td align="left"><a href="https://colab.research.google.com/github/huggingface/diffusion-models-class/blob/main/unit1/02_diffusion_models_from_scratch.ipynb" rel="nofollow"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"></a></td> <td align="left"><a href="https://kaggle.com/kernels/welcome?src=https://github.com/huggingface/diffusion-models-class/blob/main/unit1/02_diffusion_models_from_scratch.ipynb" rel="nofollow"><img src="https://kaggle.com/static/images/open-in-kaggle.svg" alt="Kaggle"></a></td> <td align="left"><a href="https://console.paperspace.com/github/huggingface/diffusion-models-class/blob/main/unit1/02_diffusion_models_from_scratch.ipynb" rel="nofollow"><img src="https://assets.paperspace.io/img/gradient-badge.svg" alt="Gradient"></a></td> <td align="left"><a href="https://studiolab.sagemaker.aws/import/github/huggingface/diffusion-models-class/blob/main/unit1/02_diffusion_models_from_scratch.ipynb" rel="nofollow"><img src="https://studiolab.sagemaker.aws/studiolab.svg" alt="Open In SageMaker Studio Lab"></a></td></tr></tbody></table> <p data-svelte-h="svelte-14qrqf4">In <em><strong>Introduction to Diffusers</strong></em>, we show the different steps described above using building blocks from the diffusers library. You’ll quickly see how to create, train and sample your own diffusion models on whatever data you choose. By the end of the notebook, you’ll be able to read and modify the example training script to train diffusion models and share them with the world! This notebook also introduces the main exercise associated with this unit, where we will collectively attempt to figure out good ‘training recipes’ for diffusion models at different scales - see the next section for more info.</p> <p data-svelte-h="svelte-149sgh3">In <em><strong>Diffusion Models from Scratch</strong></em>, we show those same steps (adding noise to data, creating a model, training and sampling) but implemented from scratch in PyTorch as simply as possible. Then we compare this ‘toy example’ with the diffusers version, noting how the two differ and where improvements have been made. The goal here is to gain familiarity with the different components and the design decisions that go into them so that when you look at a new implementation you can quickly identify the key ideas.</p> <h2 class="relative group"><a id="project-time" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#project-time"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Project Time</span></h2> <p data-svelte-h="svelte-u0rdns">Now that you’ve got the basics down, have a go at training one or more diffusion models! Some suggestions are included at the end of the <em><strong>Introduction to Diffusers</strong></em> notebook. Make sure to share your results, training recipes and findings with the community so that we can collectively figure out the best ways to train these models.</p> <h2 class="relative group"><a id="some-additional-resources" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#some-additional-resources"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Some Additional Resources</span></h2> <p data-svelte-h="svelte-t200gn"><a href="https://huggingface.co/blog/annotated-diffusion" rel="nofollow">The Annotated Diffusion Model</a> is a very in-depth walk-through of the code and theory behind DDPMs with
maths and code showing all the different components. It also links to a number of papers for further reading.</p> <p data-svelte-h="svelte-d84ssd">Hugging Face documentation on <a href="https://huggingface.co/docs/diffusers/training/unconditional_training" rel="nofollow">Unconditional Image-Generation</a> for some examples of how to train diffusion models using the official training example script, including code showing how to create your own dataset.</p> <p data-svelte-h="svelte-2rmkz1">AI Coffee Break video on Diffusion Models: <a href="https://www.youtube.com/watch?v=344w5h24-h8" rel="nofollow">https://www.youtube.com/watch?v=344w5h24-h8</a></p> <p data-svelte-h="svelte-12yr97d">Yannic Kilcher Video on DDPMs: <a href="https://www.youtube.com/watch?v=W-O7AZNzbzQ" rel="nofollow">https://www.youtube.com/watch?v=W-O7AZNzbzQ</a></p> <p data-svelte-h="svelte-1wvf2ag">Found more great resources? Let us know and we’ll add them to this list.</p> <a class="!text-gray-400 !no-underline text-sm flex items-center not-prose mt-4" href="https://github.com/huggingface/diffusion-models-class/blob/main/unit1/README.md" target="_blank"><svg class="mr-1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M31,16l-7,7l-1.41-1.41L28.17,16l-5.58-5.59L24,9l7,7z"></path><path d="M1,16l7-7l1.41,1.41L3.83,16l5.58,5.59L8,23l-7-7z"></path><path d="M12.419,25.484L17.639,6.552l1.932,0.518L14.351,26.002z"></path></svg> <span data-svelte-h="svelte-zjs2n5"><span class="underline">Update</span> on GitHub</span></a> <p></p>
<script>
{
__sveltekit_x2iol1 = {
assets: "/docs/diffusion-course/pr_113/en",
base: "/docs/diffusion-course/pr_113/en",
env: {}
};
const element = document.currentScript.parentElement;
const data = [null,null];
Promise.all([
import("/docs/diffusion-course/pr_113/en/_app/immutable/entry/start.d783b3e7.js"),
import("/docs/diffusion-course/pr_113/en/_app/immutable/entry/app.21133b1e.js")
]).then(([kit, app]) => {
kit.start(app, element, {
node_ids: [0, 6],
data,
form: null,
error: null
});
});
}
</script>

Xet Storage Details

Size:
23 kB
·
Xet hash:
71b1e52f58caac3170a49b557bb3181ece6fa3ef0da0a3f800a46b2b8f748b72

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.