Buckets:
| import{s as it,n as pt,o as rt}from"../chunks/scheduler.32f3c0d7.js";import{S as mt,i as dt,e as n,s as l,c as r,h as ut,a as i,d as s,b as o,f as nt,j as m,g as p,k as $,l as ct,m as t,n as d,t as u,o as c,p as f}from"../chunks/index.a3055d2a.js";import{C as ft,H as Ie,E as gt}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.8f0014d3.js";import{C as g}from"../chunks/CodeBlock.1b5b7d20.js";import{D as ht}from"../chunks/DocNotebookDropdown.03988dd0.js";function bt(us){let h,Be,Pe,Ne,T,Xe,U,De,_,Re,x,cs="Modelos de difusão são treinados para remover o ruído Gaussiano aleatório passo a passo para gerar uma amostra de interesse, como uma imagem ou áudio. Isso despertou um tremendo interesse em IA generativa, e você provavelmente já viu exemplos de imagens geradas por difusão na internet. 🧨 Diffusers é uma biblioteca que visa tornar os modelos de difusão amplamente acessíveis a todos.",Ee,C,fs="Seja você um desenvolvedor ou um usuário, esse tour rápido irá introduzir você ao 🧨 Diffusers e ajudar você a começar a gerar rapidamente! Há três componentes principais da biblioteca para conhecer:",Ye,q,gs='<li>O <code>DiffusionPipeline</code> é uma classe de alto nível de ponta a ponta desenhada para gerar rapidamente amostras de modelos de difusão pré-treinados para inferência.</li> <li><a href="./api/models">Modelos</a> pré-treinados populares e módulos que podem ser usados como blocos de construção para criar sistemas de difusão.</li> <li>Vários <a href="./api/schedulers/overview">Agendadores</a> diferentes - algoritmos que controlam como o ruído é adicionado para treinamento, e como gerar imagens sem o ruído durante a inferência.</li>',Ae,J,hs="Esse tour rápido mostrará como usar o <code>DiffusionPipeline</code> para inferência, e então mostrará como combinar um modelo e um agendador para replicar o que está acontecendo dentro do <code>DiffusionPipeline</code>.",Qe,b,bs='<p>Esse tour rápido é uma versão simplificada da introdução 🧨 Diffusers <a href="https://colab.research.google.com/github/huggingface/notebooks/blob/main/diffusers/diffusers_intro.ipynb" rel="nofollow">notebook</a> para ajudar você a começar rápido. Se você quer aprender mais sobre o objetivo do 🧨 Diffusers, filosofia de design, e detalhes adicionais sobre a API principal, veja o notebook!</p>',Fe,Z,Ms="Antes de começar, certifique-se de ter todas as bibliotecas necessárias instaladas:",Ke,k,Oe,G,ys='<li><a href="https://huggingface.co/docs/accelerate/index" rel="nofollow">🤗 Accelerate</a> acelera o carregamento do modelo para geração e treinamento.</li> <li><a href="https://huggingface.co/docs/transformers/index" rel="nofollow">🤗 Transformers</a> é necessário para executar os modelos mais populares de difusão, como o <a href="https://huggingface.co/docs/diffusers/api/pipelines/stable_diffusion/overview" rel="nofollow">Stable Diffusion</a>.</li>',ea,W,aa,H,js='O <code>DiffusionPipeline</code> é a forma mais fácil de usar um sistema de difusão pré-treinado para geração. É um sistema de ponta a ponta contendo o modelo e o agendador. Você pode usar o <code>DiffusionPipeline</code> pronto para muitas tarefas. Dê uma olhada na tabela abaixo para algumas tarefas suportadas, e para uma lista completa de tarefas suportadas, veja a tabela <a href="./api/pipelines/overview#diffusers-summary">Resumo do 🧨 Diffusers</a>.',sa,L,vs='<thead><tr><th><strong>Tarefa</strong></th> <th><strong>Descrição</strong></th> <th><strong>Pipeline</strong></th></tr></thead> <tbody><tr><td>Unconditional Image Generation</td> <td>gera uma imagem a partir do ruído Gaussiano</td> <td><a href="./using-diffusers/unconditional_image_generation">unconditional_image_generation</a></td></tr> <tr><td>Text-Guided Image Generation</td> <td>gera uma imagem a partir de um prompt de texto</td> <td><a href="./using-diffusers/conditional_image_generation">conditional_image_generation</a></td></tr> <tr><td>Text-Guided Image-to-Image Translation</td> <td>adapta uma imagem guiada por um prompt de texto</td> <td><a href="./using-diffusers/img2img">img2img</a></td></tr> <tr><td>Text-Guided Image-Inpainting</td> <td>preenche a parte da máscara da imagem, dado a imagem, a máscara e o prompt de texto</td> <td><a href="./using-diffusers/inpaint">inpaint</a></td></tr> <tr><td>Text-Guided Depth-to-Image Translation</td> <td>adapta as partes de uma imagem guiada por um prompt de texto enquanto preserva a estrutura por estimativa de profundidade</td> <td><a href="./using-diffusers/depth2img">depth2img</a></td></tr></tbody>',ta,z,ws=`Comece criando uma instância do <code>DiffusionPipeline</code> e especifique qual checkpoint do pipeline você gostaria de baixar. | |
| Você pode usar o <code>DiffusionPipeline</code> para qualquer <a href="https://huggingface.co/models?library=diffusers&sort=downloads" rel="nofollow">checkpoint</a> armazenado no Hugging Face Hub. | |
| Nesse quicktour, você carregará o checkpoint <a href="https://huggingface.co/stable-diffusion-v1-5/stable-diffusion-v1-5" rel="nofollow"><code>stable-diffusion-v1-5</code></a> para geração de texto para imagem.`,la,M,$s='<p>Para os modelos de <a href="https://huggingface.co/CompVis/stable-diffusion" rel="nofollow">Stable Diffusion</a>, por favor leia cuidadosamente a <a href="https://huggingface.co/spaces/CompVis/stable-diffusion-license" rel="nofollow">licença</a> primeiro antes de rodar o modelo. 🧨 Diffusers implementa uma verificação de segurança: <a href="https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/stable_diffusion/safety_checker.py" rel="nofollow"><code>safety_checker</code></a> para prevenir conteúdo ofensivo ou nocivo, mas as capacidades de geração de imagem aprimorada do modelo podem ainda produzir conteúdo potencialmente nocivo.</p>',oa,V,Ts="Para carregar o modelo com o método <code>from_pretrained()</code>:",na,I,ia,P,Us="O <code>DiffusionPipeline</code> baixa e armazena em cache todos os componentes de modelagem, tokenização, e agendamento. Você verá que o pipeline do Stable Diffusion é composto pelo <code>UNet2DConditionModel</code> e <code>PNDMScheduler</code> entre outras coisas:",pa,S,ra,B,_s=`Nós fortemente recomendamos rodar o pipeline em uma placa de vídeo, pois o modelo consiste em aproximadamente 1.4 bilhões de parâmetros. | |
| Você pode mover o objeto gerador para uma placa de vídeo, assim como você faria no PyTorch:`,ma,N,da,X,xs='Agora você pode passar o prompt de texto para o <code>pipeline</code> para gerar uma imagem, e então acessar a imagem sem ruído. Por padrão, a saída da imagem é embrulhada em um objeto <a href="https://pillow.readthedocs.io/en/stable/reference/Image.html?highlight=image#the-image-class" rel="nofollow"><code>PIL.Image</code></a>.',ua,D,ca,y,Cs='<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/image_of_squirrel_painting.png"/>',fa,R,qs="Salve a imagem chamando o <code>save</code>:",ga,E,ha,Y,ba,A,Js="Você também pode utilizar o pipeline localmente. A única diferença é que você precisa baixar os pesos primeiro:",Ma,Q,ya,F,Zs="Assim carregue os pesos salvos no pipeline:",ja,K,va,O,ks="Agora você pode rodar o pipeline como você faria na seção acima.",wa,ee,$a,ae,Gs="Agendadores diferentes tem diferentes velocidades de retirar o ruído e compensações de qualidade. A melhor forma de descobrir qual funciona melhor para você é testar eles! Uma das principais características do 🧨 Diffusers é permitir que você troque facilmente entre agendadores. Por exemplo, para substituir o <code>PNDMScheduler</code> padrão com o <code>EulerDiscreteScheduler</code>, carregue ele com o método <code>from_config()</code>:",Ta,se,Ua,te,Ws="Tente gerar uma imagem com o novo agendador e veja se você nota alguma diferença!",_a,le,Hs="Na próxima seção, você irá dar uma olhada mais de perto nos componentes - o modelo e o agendador - que compõe o <code>DiffusionPipeline</code> e aprender como usar esses componentes para gerar uma imagem de um gato.",xa,oe,Ca,ne,Ls='A maioria dos modelos recebe uma amostra de ruído, e em cada <em>timestep</em> ele prevê o <em>noise residual</em> (outros modelos aprendem a prever a amostra anterior diretamente ou a velocidade ou <a href="https://github.com/huggingface/diffusers/blob/5e5ce13e2f89ac45a0066cb3f369462a3cf1d9ef/src/diffusers/schedulers/scheduling_ddim.py#L110" rel="nofollow"><code>v-prediction</code></a>), a diferença entre uma imagem menos com ruído e a imagem de entrada. Você pode misturar e combinar modelos para criar outros sistemas de difusão.',qa,ie,zs="Modelos são inicializados com o método <code>from_pretrained()</code> que também armazena em cache localmente os pesos do modelo para que seja mais rápido na próxima vez que você carregar o modelo. Para o tour rápido, você irá carregar o <code>UNet2DModel</code>, um modelo básico de geração de imagem incondicional com um checkpoint treinado em imagens de gato:",Ja,pe,Za,re,Vs="Para acessar os parâmetros do modelo, chame <code>model.config</code>:",ka,me,Ga,de,Is="A configuração do modelo é um dicionário 🧊 congelado 🧊, o que significa que esses parâmetros não podem ser mudados depois que o modelo é criado. Isso é intencional e garante que os parâmetros usados para definir a arquitetura do modelo no início permaneçam os mesmos, enquanto outros parâmetros ainda podem ser ajustados durante a geração.",Wa,ue,Ps="Um dos parâmetros mais importantes são:",Ha,ce,Ss="<li><code>sample_size</code>: a dimensão da altura e largura da amostra de entrada.</li> <li><code>in_channels</code>: o número de canais de entrada da amostra de entrada.</li> <li><code>down_block_types</code> e <code>up_block_types</code>: o tipo de blocos de downsampling e upsampling usados para criar a arquitetura UNet.</li> <li><code>block_out_channels</code>: o número de canais de saída dos blocos de downsampling; também utilizado como uma order reversa do número de canais de entrada dos blocos de upsampling.</li> <li><code>layers_per_block</code>: o número de blocks ResNet presentes em cada block UNet.</li>",La,fe,Bs="Para usar o modelo para geração, crie a forma da imagem com ruído Gaussiano aleatório. Deve ter um eixo <code>batch</code> porque o modelo pode receber múltiplos ruídos aleatórios, um eixo <code>channel</code> correspondente ao número de canais de entrada, e um eixo <code>sample_size</code> para a altura e largura da imagem:",za,ge,Va,he,Ns="Para geração, passe a imagem com ruído para o modelo e um <code>timestep</code>. O <code>timestep</code> indica o quão ruidosa a imagem de entrada é, com mais ruído no início e menos no final. Isso ajuda o modelo a determinar sua posição no processo de difusão, se está mais perto do início ou do final. Use o método <code>sample</code> para obter a saída do modelo:",Ia,be,Pa,Me,Xs="Para geração de exemplos reais, você precisará de um agendador para guiar o processo de retirada do ruído. Na próxima seção, você irá aprender como acoplar um modelo com um agendador.",Sa,ye,Ba,je,Ds="Agendadores gerenciam a retirada do ruído de uma amostra ruidosa para uma amostra menos ruidosa dado a saída do modelo - nesse caso, é o <code>noisy_residual</code>.",Na,j,Rs="<p>🧨 Diffusers é uma caixa de ferramentas para construir sistemas de difusão. Enquanto o <code>DiffusionPipeline</code> é uma forma conveniente de começar com um sistema de difusão pré-construído, você também pode escolher seus próprios modelos e agendadores separadamente para construir um sistema de difusão personalizado.</p>",Xa,ve,Es="Para o tour rápido, você irá instanciar o <code>DDPMScheduler</code> com o método <code>from_config()</code>:",Da,we,Ra,v,Ys="<p>💡 Perceba como o agendador é instanciado de uma configuração. Diferentemente de um modelo, um agendador não tem pesos treináveis e é livre de parâmetros!</p>",Ea,$e,As="Um dos parâmetros mais importante são:",Ya,Te,Qs="<li><code>num_train_timesteps</code>: o tamanho do processo de retirar ruído ou em outras palavras, o número de <em>timesteps</em> necessários para o processo de ruídos Gausianos aleatórios dentro de uma amostra de dados.</li> <li><code>beta_schedule</code>: o tipo de agendados de ruído para o uso de geração e treinamento.</li> <li><code>beta_start</code> e <code>beta_end</code>: para começar e terminar os valores de ruído para o agendador de ruído.</li>",Aa,Ue,Fs="Para predizer uma imagem com um pouco menos de ruído, passe o seguinte para o método do agendador <code>step()</code>: saída do modelo, <code>timestep</code>, e a atual <code>amostra</code>.",Qa,_e,Fa,xe,Ks="O <code>less_noisy_sample</code> pode ser passado para o próximo <code>timestep</code> onde ele ficará ainda com menos ruído! Vamos juntar tudo agora e visualizar o processo inteiro de retirada de ruído.",Ka,Ce,Os="Comece, criando a função que faça o pós-processamento e mostre a imagem sem ruído como uma <code>PIL.Image</code>:",Oa,qe,es,Je,et="Para acelerar o processo de retirada de ruído, mova a entrada e o modelo para uma GPU:",as,Ze,ss,ke,at="Agora, crie um loop de retirada de ruído que prediz o residual da amostra menos ruidosa, e computa a amostra menos ruidosa com o agendador:",ts,Ge,ls,We,st="Sente-se e assista o gato ser gerado do nada além de ruído! 😻",os,w,tt='<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/diffusion-quicktour.png"/>',ns,He,is,Le,lt="Esperamos que você tenha gerado algumas imagens legais com o 🧨 Diffusers neste tour rápido! Para suas próximas etapas, você pode",ps,ze,ot='<li>Treine ou faça a configuração fina de um modelo para gerar suas próprias imagens no tutorial de <a href="./tutorials/basic_training">treinamento</a>.</li> <li>Veja exemplos oficiais e da comunidade de <a href="https://github.com/huggingface/diffusers/tree/main/examples#-diffusers-examples" rel="nofollow">scripts de treinamento ou configuração fina</a> para os mais variados casos de uso.</li> <li>Aprenda sobre como carregar, acessar, mudar e comparar agendadores no guia <a href="./using-diffusers/schedulers">Usando diferentes agendadores</a>.</li> <li>Explore engenharia de prompt, otimizações de velocidade e memória, e dicas e truques para gerar imagens de maior qualidade com o guia <a href="./stable_diffusion">Stable Diffusion</a>.</li> <li>Se aprofunde em acelerar 🧨 Diffusers com guias sobre <a href="./optimization/fp16">PyTorch otimizado em uma GPU</a>, e guias de inferência para rodar <a href="./optimization/mps">Stable Diffusion em Apple Silicon (M1/M2)</a> e <a href="./optimization/onnx">ONNX Runtime</a>.</li>',rs,Ve,ms,Se,ds;return T=new ft({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),U=new ht({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;",options:[{label:"Mixed",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/main/diffusers_doc/pt/quicktour.ipynb"},{label:"PyTorch",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/main/diffusers_doc/pt/pytorch/quicktour.ipynb"},{label:"TensorFlow",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/main/diffusers_doc/pt/tensorflow/quicktour.ipynb"},{label:"Mixed",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/diffusers_doc/pt/quicktour.ipynb"},{label:"PyTorch",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/diffusers_doc/pt/pytorch/quicktour.ipynb"},{label:"TensorFlow",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/diffusers_doc/pt/tensorflow/quicktour.ipynb"}]}}),_=new Ie({props:{title:"Tour rápido",local:"tour-rápido",headingTag:"h1"}}),k=new g({props:{code:"JTIzJTIwdW5jb21tZW50JTIwdG8lMjBpbnN0YWxsJTIwdGhlJTIwbmVjZXNzYXJ5JTIwbGlicmFyaWVzJTIwaW4lMjBDb2xhYiUwQSUyMyFwaXAlMjBpbnN0YWxsJTIwLS11cGdyYWRlJTIwZGlmZnVzZXJzJTIwYWNjZWxlcmF0ZSUyMHRyYW5zZm9ybWVycw==",highlighted:`<span class="hljs-comment"># uncomment to install the necessary libraries in Colab</span> | |
| <span class="hljs-comment">#!pip install --upgrade diffusers accelerate transformers</span>`,lang:"py",wrap:!1}}),W=new Ie({props:{title:"DiffusionPipeline",local:"diffusionpipeline",headingTag:"h2"}}),I=new g({props:{code:"ZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMERpZmZ1c2lvblBpcGVsaW5lJTBBJTBBcGlwZWxpbmUlMjAlM0QlMjBEaWZmdXNpb25QaXBlbGluZS5mcm9tX3ByZXRyYWluZWQoJTIyc3RhYmxlLWRpZmZ1c2lvbi12MS01JTJGc3RhYmxlLWRpZmZ1c2lvbi12MS01JTIyJTJDJTIwdXNlX3NhZmV0ZW5zb3JzJTNEVHJ1ZSk=",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>pipeline = DiffusionPipeline.from_pretrained(<span class="hljs-string">"stable-diffusion-v1-5/stable-diffusion-v1-5"</span>, use_safetensors=<span class="hljs-literal">True</span>)`,lang:"python",wrap:!1}}),S=new g({props:{code:"cGlwZWxpbmU=",highlighted:`<span class="hljs-meta">>>> </span>pipeline | |
| StableDiffusionPipeline { | |
| <span class="hljs-string">"_class_name"</span>: <span class="hljs-string">"StableDiffusionPipeline"</span>, | |
| <span class="hljs-string">"_diffusers_version"</span>: <span class="hljs-string">"0.13.1"</span>, | |
| ..., | |
| <span class="hljs-string">"scheduler"</span>: [ | |
| <span class="hljs-string">"diffusers"</span>, | |
| <span class="hljs-string">"PNDMScheduler"</span> | |
| ], | |
| ..., | |
| <span class="hljs-string">"unet"</span>: [ | |
| <span class="hljs-string">"diffusers"</span>, | |
| <span class="hljs-string">"UNet2DConditionModel"</span> | |
| ], | |
| <span class="hljs-string">"vae"</span>: [ | |
| <span class="hljs-string">"diffusers"</span>, | |
| <span class="hljs-string">"AutoencoderKL"</span> | |
| ] | |
| }`,lang:"py",wrap:!1}}),N=new g({props:{code:"cGlwZWxpbmUudG8oJTIyY3VkYSUyMik=",highlighted:'<span class="hljs-meta">>>> </span>pipeline.to(<span class="hljs-string">"cuda"</span>)',lang:"python",wrap:!1}}),D=new g({props:{code:"aW1hZ2UlMjAlM0QlMjBwaXBlbGluZSglMjJBbiUyMGltYWdlJTIwb2YlMjBhJTIwc3F1aXJyZWwlMjBpbiUyMFBpY2Fzc28lMjBzdHlsZSUyMikuaW1hZ2VzJTVCMCU1RCUwQWltYWdl",highlighted:`<span class="hljs-meta">>>> </span>image = pipeline(<span class="hljs-string">"An image of a squirrel in Picasso style"</span>).images[<span class="hljs-number">0</span>] | |
| <span class="hljs-meta">>>> </span>image`,lang:"python",wrap:!1}}),E=new g({props:{code:"aW1hZ2Uuc2F2ZSglMjJpbWFnZV9vZl9zcXVpcnJlbF9wYWludGluZy5wbmclMjIp",highlighted:'<span class="hljs-meta">>>> </span>image.save(<span class="hljs-string">"image_of_squirrel_painting.png"</span>)',lang:"python",wrap:!1}}),Y=new Ie({props:{title:"Pipeline local",local:"pipeline-local",headingTag:"h3"}}),Q=new g({props:{code:"IWdpdCUyMGxmcyUyMGluc3RhbGwlMEEhZ2l0JTIwY2xvbmUlMjBodHRwcyUzQSUyRiUyRmh1Z2dpbmdmYWNlLmNvJTJGc3RhYmxlLWRpZmZ1c2lvbi12MS01JTJGc3RhYmxlLWRpZmZ1c2lvbi12MS01",highlighted:`!git lfs install | |
| !git <span class="hljs-built_in">clone</span> https://huggingface.co/stable-diffusion-v1-5/stable-diffusion-v1-5`,lang:"bash",wrap:!1}}),K=new g({props:{code:"cGlwZWxpbmUlMjAlM0QlMjBEaWZmdXNpb25QaXBlbGluZS5mcm9tX3ByZXRyYWluZWQoJTIyLiUyRnN0YWJsZS1kaWZmdXNpb24tdjEtNSUyMiUyQyUyMHVzZV9zYWZldGVuc29ycyUzRFRydWUp",highlighted:'<span class="hljs-meta">>>> </span>pipeline = DiffusionPipeline.from_pretrained(<span class="hljs-string">"./stable-diffusion-v1-5"</span>, use_safetensors=<span class="hljs-literal">True</span>)',lang:"python",wrap:!1}}),ee=new Ie({props:{title:"Troca dos agendadores",local:"troca-dos-agendadores",headingTag:"h3"}}),se=new g({props:{code:"ZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMEV1bGVyRGlzY3JldGVTY2hlZHVsZXIlMEElMEFwaXBlbGluZSUyMCUzRCUyMERpZmZ1c2lvblBpcGVsaW5lLmZyb21fcHJldHJhaW5lZCglMjJzdGFibGUtZGlmZnVzaW9uLXYxLTUlMkZzdGFibGUtZGlmZnVzaW9uLXYxLTUlMjIlMkMlMjB1c2Vfc2FmZXRlbnNvcnMlM0RUcnVlKSUwQXBpcGVsaW5lLnNjaGVkdWxlciUyMCUzRCUyMEV1bGVyRGlzY3JldGVTY2hlZHVsZXIuZnJvbV9jb25maWcocGlwZWxpbmUuc2NoZWR1bGVyLmNvbmZpZyk=",highlighted:`<span class="hljs-meta">>>> </span><span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> EulerDiscreteScheduler | |
| <span class="hljs-meta">>>> </span>pipeline = DiffusionPipeline.from_pretrained(<span class="hljs-string">"stable-diffusion-v1-5/stable-diffusion-v1-5"</span>, use_safetensors=<span class="hljs-literal">True</span>) | |
| <span class="hljs-meta">>>> </span>pipeline.scheduler = EulerDiscreteScheduler.from_config(pipeline.scheduler.config)`,lang:"py",wrap:!1}}),oe=new Ie({props:{title:"Modelos",local:"modelos",headingTag:"h2"}}),pe=new g({props:{code:"ZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMFVOZXQyRE1vZGVsJTBBJTBBcmVwb19pZCUyMCUzRCUyMCUyMmdvb2dsZSUyRmRkcG0tY2F0LTI1NiUyMiUwQW1vZGVsJTIwJTNEJTIwVU5ldDJETW9kZWwuZnJvbV9wcmV0cmFpbmVkKHJlcG9faWQlMkMlMjB1c2Vfc2FmZXRlbnNvcnMlM0RUcnVlKQ==",highlighted:`<span class="hljs-meta">>>> </span><span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> UNet2DModel | |
| <span class="hljs-meta">>>> </span>repo_id = <span class="hljs-string">"google/ddpm-cat-256"</span> | |
| <span class="hljs-meta">>>> </span>model = UNet2DModel.from_pretrained(repo_id, use_safetensors=<span class="hljs-literal">True</span>)`,lang:"py",wrap:!1}}),me=new g({props:{code:"bW9kZWwuY29uZmln",highlighted:'<span class="hljs-meta">>>> </span>model.config',lang:"py",wrap:!1}}),ge=new g({props:{code:"aW1wb3J0JTIwdG9yY2glMEElMEF0b3JjaC5tYW51YWxfc2VlZCgwKSUwQSUwQW5vaXN5X3NhbXBsZSUyMCUzRCUyMHRvcmNoLnJhbmRuKDElMkMlMjBtb2RlbC5jb25maWcuaW5fY2hhbm5lbHMlMkMlMjBtb2RlbC5jb25maWcuc2FtcGxlX3NpemUlMkMlMjBtb2RlbC5jb25maWcuc2FtcGxlX3NpemUpJTBBbm9pc3lfc2FtcGxlLnNoYXBl",highlighted:`<span class="hljs-meta">>>> </span><span class="hljs-keyword">import</span> torch | |
| <span class="hljs-meta">>>> </span>torch.manual_seed(<span class="hljs-number">0</span>) | |
| <span class="hljs-meta">>>> </span>noisy_sample = torch.randn(<span class="hljs-number">1</span>, model.config.in_channels, model.config.sample_size, model.config.sample_size) | |
| <span class="hljs-meta">>>> </span>noisy_sample.shape | |
| torch.Size([<span class="hljs-number">1</span>, <span class="hljs-number">3</span>, <span class="hljs-number">256</span>, <span class="hljs-number">256</span>])`,lang:"py",wrap:!1}}),be=new g({props:{code:"d2l0aCUyMHRvcmNoLm5vX2dyYWQoKSUzQSUwQSUyMCUyMCUyMCUyMG5vaXN5X3Jlc2lkdWFsJTIwJTNEJTIwbW9kZWwoc2FtcGxlJTNEbm9pc3lfc2FtcGxlJTJDJTIwdGltZXN0ZXAlM0QyKS5zYW1wbGU=",highlighted:`<span class="hljs-meta">>>> </span><span class="hljs-keyword">with</span> torch.no_grad(): | |
| <span class="hljs-meta">... </span> noisy_residual = model(sample=noisy_sample, timestep=<span class="hljs-number">2</span>).sample`,lang:"py",wrap:!1}}),ye=new Ie({props:{title:"Agendadores",local:"agendadores",headingTag:"h2"}}),we=new g({props:{code:"ZnJvbSUyMGRpZmZ1c2VycyUyMGltcG9ydCUyMEREUE1TY2hlZHVsZXIlMEElMEFzY2hlZHVsZXIlMjAlM0QlMjBERFBNU2NoZWR1bGVyLmZyb21fY29uZmlnKHJlcG9faWQpJTBBc2NoZWR1bGVy",highlighted:`<span class="hljs-meta">>>> </span><span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> DDPMScheduler | |
| <span class="hljs-meta">>>> </span>scheduler = DDPMScheduler.from_config(repo_id) | |
| <span class="hljs-meta">>>> </span>scheduler | |
| DDPMScheduler { | |
| <span class="hljs-string">"_class_name"</span>: <span class="hljs-string">"DDPMScheduler"</span>, | |
| <span class="hljs-string">"_diffusers_version"</span>: <span class="hljs-string">"0.13.1"</span>, | |
| <span class="hljs-string">"beta_end"</span>: <span class="hljs-number">0.02</span>, | |
| <span class="hljs-string">"beta_schedule"</span>: <span class="hljs-string">"linear"</span>, | |
| <span class="hljs-string">"beta_start"</span>: <span class="hljs-number">0.0001</span>, | |
| <span class="hljs-string">"clip_sample"</span>: true, | |
| <span class="hljs-string">"clip_sample_range"</span>: <span class="hljs-number">1.0</span>, | |
| <span class="hljs-string">"num_train_timesteps"</span>: <span class="hljs-number">1000</span>, | |
| <span class="hljs-string">"prediction_type"</span>: <span class="hljs-string">"epsilon"</span>, | |
| <span class="hljs-string">"trained_betas"</span>: null, | |
| <span class="hljs-string">"variance_type"</span>: <span class="hljs-string">"fixed_small"</span> | |
| }`,lang:"py",wrap:!1}}),_e=new g({props:{code:"bGVzc19ub2lzeV9zYW1wbGUlMjAlM0QlMjBzY2hlZHVsZXIuc3RlcChtb2RlbF9vdXRwdXQlM0Rub2lzeV9yZXNpZHVhbCUyQyUyMHRpbWVzdGVwJTNEMiUyQyUyMHNhbXBsZSUzRG5vaXN5X3NhbXBsZSkucHJldl9zYW1wbGUlMEFsZXNzX25vaXN5X3NhbXBsZS5zaGFwZQ==",highlighted:`<span class="hljs-meta">>>> </span>less_noisy_sample = scheduler.step(model_output=noisy_residual, timestep=<span class="hljs-number">2</span>, sample=noisy_sample).prev_sample | |
| <span class="hljs-meta">>>> </span>less_noisy_sample.shape`,lang:"py",wrap:!1}}),qe=new g({props:{code:"aW1wb3J0JTIwUElMLkltYWdlJTBBaW1wb3J0JTIwbnVtcHklMjBhcyUyMG5wJTBBJTBBJTBBZGVmJTIwZGlzcGxheV9zYW1wbGUoc2FtcGxlJTJDJTIwaSklM0ElMEElMjAlMjAlMjAlMjBpbWFnZV9wcm9jZXNzZWQlMjAlM0QlMjBzYW1wbGUuY3B1KCkucGVybXV0ZSgwJTJDJTIwMiUyQyUyMDMlMkMlMjAxKSUwQSUyMCUyMCUyMCUyMGltYWdlX3Byb2Nlc3NlZCUyMCUzRCUyMChpbWFnZV9wcm9jZXNzZWQlMjAlMkIlMjAxLjApJTIwKiUyMDEyNy41JTBBJTIwJTIwJTIwJTIwaW1hZ2VfcHJvY2Vzc2VkJTIwJTNEJTIwaW1hZ2VfcHJvY2Vzc2VkLm51bXB5KCkuYXN0eXBlKG5wLnVpbnQ4KSUwQSUwQSUyMCUyMCUyMCUyMGltYWdlX3BpbCUyMCUzRCUyMFBJTC5JbWFnZS5mcm9tYXJyYXkoaW1hZ2VfcHJvY2Vzc2VkJTVCMCU1RCklMEElMjAlMjAlMjAlMjBkaXNwbGF5KGYlMjJJbWFnZSUyMGF0JTIwc3RlcCUyMCU3QmklN0QlMjIpJTBBJTIwJTIwJTIwJTIwZGlzcGxheShpbWFnZV9waWwp",highlighted:`<span class="hljs-meta">>>> </span><span class="hljs-keyword">import</span> PIL.Image | |
| <span class="hljs-meta">>>> </span><span class="hljs-keyword">import</span> numpy <span class="hljs-keyword">as</span> np | |
| <span class="hljs-meta">>>> </span><span class="hljs-keyword">def</span> <span class="hljs-title function_">display_sample</span>(<span class="hljs-params">sample, i</span>): | |
| <span class="hljs-meta">... </span> image_processed = sample.cpu().permute(<span class="hljs-number">0</span>, <span class="hljs-number">2</span>, <span class="hljs-number">3</span>, <span class="hljs-number">1</span>) | |
| <span class="hljs-meta">... </span> image_processed = (image_processed + <span class="hljs-number">1.0</span>) * <span class="hljs-number">127.5</span> | |
| <span class="hljs-meta">... </span> image_processed = image_processed.numpy().astype(np.uint8) | |
| <span class="hljs-meta">... </span> image_pil = PIL.Image.fromarray(image_processed[<span class="hljs-number">0</span>]) | |
| <span class="hljs-meta">... </span> display(<span class="hljs-string">f"Image at step <span class="hljs-subst">{i}</span>"</span>) | |
| <span class="hljs-meta">... </span> display(image_pil)`,lang:"py",wrap:!1}}),Ze=new g({props:{code:"bW9kZWwudG8oJTIyY3VkYSUyMiklMEFub2lzeV9zYW1wbGUlMjAlM0QlMjBub2lzeV9zYW1wbGUudG8oJTIyY3VkYSUyMik=",highlighted:`<span class="hljs-meta">>>> </span>model.to(<span class="hljs-string">"cuda"</span>) | |
| <span class="hljs-meta">>>> </span>noisy_sample = noisy_sample.to(<span class="hljs-string">"cuda"</span>)`,lang:"py",wrap:!1}}),Ge=new g({props:{code:"aW1wb3J0JTIwdHFkbSUwQSUwQXNhbXBsZSUyMCUzRCUyMG5vaXN5X3NhbXBsZSUwQSUwQWZvciUyMGklMkMlMjB0JTIwaW4lMjBlbnVtZXJhdGUodHFkbS50cWRtKHNjaGVkdWxlci50aW1lc3RlcHMpKSUzQSUwQSUyMCUyMCUyMCUyMCUyMyUyMDEuJTIwcHJlZGljdCUyMG5vaXNlJTIwcmVzaWR1YWwlMEElMjAlMjAlMjAlMjB3aXRoJTIwdG9yY2gubm9fZ3JhZCgpJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmVzaWR1YWwlMjAlM0QlMjBtb2RlbChzYW1wbGUlMkMlMjB0KS5zYW1wbGUlMEElMEElMjAlMjAlMjAlMjAlMjMlMjAyLiUyMGNvbXB1dGUlMjBsZXNzJTIwbm9pc3klMjBpbWFnZSUyMGFuZCUyMHNldCUyMHhfdCUyMC0lM0UlMjB4X3QtMSUwQSUyMCUyMCUyMCUyMHNhbXBsZSUyMCUzRCUyMHNjaGVkdWxlci5zdGVwKHJlc2lkdWFsJTJDJTIwdCUyQyUyMHNhbXBsZSkucHJldl9zYW1wbGUlMEElMEElMjAlMjAlMjAlMjAlMjMlMjAzLiUyMG9wdGlvbmFsbHklMjBsb29rJTIwYXQlMjBpbWFnZSUwQSUyMCUyMCUyMCUyMGlmJTIwKGklMjAlMkIlMjAxKSUyMCUyNSUyMDUwJTIwJTNEJTNEJTIwMCUzQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGRpc3BsYXlfc2FtcGxlKHNhbXBsZSUyQyUyMGklMjAlMkIlMjAxKQ==",highlighted:`<span class="hljs-meta">>>> </span><span class="hljs-keyword">import</span> tqdm | |
| <span class="hljs-meta">>>> </span>sample = noisy_sample | |
| <span class="hljs-meta">>>> </span><span class="hljs-keyword">for</span> i, t <span class="hljs-keyword">in</span> <span class="hljs-built_in">enumerate</span>(tqdm.tqdm(scheduler.timesteps)): | |
| <span class="hljs-meta">... </span> <span class="hljs-comment"># 1. predict noise residual</span> | |
| <span class="hljs-meta">... </span> <span class="hljs-keyword">with</span> torch.no_grad(): | |
| <span class="hljs-meta">... </span> residual = model(sample, t).sample | |
| <span class="hljs-meta">... </span> <span class="hljs-comment"># 2. compute less noisy image and set x_t -> x_t-1</span> | |
| <span class="hljs-meta">... </span> sample = scheduler.step(residual, t, sample).prev_sample | |
| <span class="hljs-meta">... </span> <span class="hljs-comment"># 3. optionally look at image</span> | |
| <span class="hljs-meta">... </span> <span class="hljs-keyword">if</span> (i + <span class="hljs-number">1</span>) % <span class="hljs-number">50</span> == <span class="hljs-number">0</span>: | |
| <span class="hljs-meta">... </span> display_sample(sample, i + <span class="hljs-number">1</span>)`,lang:"py",wrap:!1}}),He=new Ie({props:{title:"Próximos passos",local:"próximos-passos",headingTag:"h2"}}),Ve=new gt({props:{source:"https://github.com/huggingface/diffusers/blob/main/docs/source/pt/quicktour.md"}}),{c(){h=n("meta"),Be=l(),Pe=n("p"),Ne=l(),r(T.$$.fragment),Xe=l(),r(U.$$.fragment),De=l(),r(_.$$.fragment),Re=l(),x=n("p"),x.textContent=cs,Ee=l(),C=n("p"),C.textContent=fs,Ye=l(),q=n("ul"),q.innerHTML=gs,Ae=l(),J=n("p"),J.innerHTML=hs,Qe=l(),b=n("blockquote"),b.innerHTML=bs,Fe=l(),Z=n("p"),Z.textContent=Ms,Ke=l(),r(k.$$.fragment),Oe=l(),G=n("ul"),G.innerHTML=ys,ea=l(),r(W.$$.fragment),aa=l(),H=n("p"),H.innerHTML=js,sa=l(),L=n("table"),L.innerHTML=vs,ta=l(),z=n("p"),z.innerHTML=ws,la=l(),M=n("blockquote"),M.innerHTML=$s,oa=l(),V=n("p"),V.innerHTML=Ts,na=l(),r(I.$$.fragment),ia=l(),P=n("p"),P.innerHTML=Us,pa=l(),r(S.$$.fragment),ra=l(),B=n("p"),B.textContent=_s,ma=l(),r(N.$$.fragment),da=l(),X=n("p"),X.innerHTML=xs,ua=l(),r(D.$$.fragment),ca=l(),y=n("div"),y.innerHTML=Cs,fa=l(),R=n("p"),R.innerHTML=qs,ga=l(),r(E.$$.fragment),ha=l(),r(Y.$$.fragment),ba=l(),A=n("p"),A.textContent=Js,Ma=l(),r(Q.$$.fragment),ya=l(),F=n("p"),F.textContent=Zs,ja=l(),r(K.$$.fragment),va=l(),O=n("p"),O.textContent=ks,wa=l(),r(ee.$$.fragment),$a=l(),ae=n("p"),ae.innerHTML=Gs,Ta=l(),r(se.$$.fragment),Ua=l(),te=n("p"),te.textContent=Ws,_a=l(),le=n("p"),le.innerHTML=Hs,xa=l(),r(oe.$$.fragment),Ca=l(),ne=n("p"),ne.innerHTML=Ls,qa=l(),ie=n("p"),ie.innerHTML=zs,Ja=l(),r(pe.$$.fragment),Za=l(),re=n("p"),re.innerHTML=Vs,ka=l(),r(me.$$.fragment),Ga=l(),de=n("p"),de.textContent=Is,Wa=l(),ue=n("p"),ue.textContent=Ps,Ha=l(),ce=n("ul"),ce.innerHTML=Ss,La=l(),fe=n("p"),fe.innerHTML=Bs,za=l(),r(ge.$$.fragment),Va=l(),he=n("p"),he.innerHTML=Ns,Ia=l(),r(be.$$.fragment),Pa=l(),Me=n("p"),Me.textContent=Xs,Sa=l(),r(ye.$$.fragment),Ba=l(),je=n("p"),je.innerHTML=Ds,Na=l(),j=n("blockquote"),j.innerHTML=Rs,Xa=l(),ve=n("p"),ve.innerHTML=Es,Da=l(),r(we.$$.fragment),Ra=l(),v=n("blockquote"),v.innerHTML=Ys,Ea=l(),$e=n("p"),$e.textContent=As,Ya=l(),Te=n("ul"),Te.innerHTML=Qs,Aa=l(),Ue=n("p"),Ue.innerHTML=Fs,Qa=l(),r(_e.$$.fragment),Fa=l(),xe=n("p"),xe.innerHTML=Ks,Ka=l(),Ce=n("p"),Ce.innerHTML=Os,Oa=l(),r(qe.$$.fragment),es=l(),Je=n("p"),Je.textContent=et,as=l(),r(Ze.$$.fragment),ss=l(),ke=n("p"),ke.textContent=at,ts=l(),r(Ge.$$.fragment),ls=l(),We=n("p"),We.textContent=st,os=l(),w=n("div"),w.innerHTML=tt,ns=l(),r(He.$$.fragment),is=l(),Le=n("p"),Le.textContent=lt,ps=l(),ze=n("ul"),ze.innerHTML=ot,rs=l(),r(Ve.$$.fragment),ms=l(),Se=n("p"),this.h()},l(e){const a=ut("svelte-u9bgzb",document.head);h=i(a,"META",{name:!0,content:!0}),a.forEach(s),Be=o(e),Pe=i(e,"P",{}),nt(Pe).forEach(s),Ne=o(e),m(T.$$.fragment,e),Xe=o(e),m(U.$$.fragment,e),De=o(e),m(_.$$.fragment,e),Re=o(e),x=i(e,"P",{"data-svelte-h":!0}),p(x)!=="svelte-5d3hlg"&&(x.textContent=cs),Ee=o(e),C=i(e,"P",{"data-svelte-h":!0}),p(C)!=="svelte-tkfmfk"&&(C.textContent=fs),Ye=o(e),q=i(e,"UL",{"data-svelte-h":!0}),p(q)!=="svelte-1bp7yfw"&&(q.innerHTML=gs),Ae=o(e),J=i(e,"P",{"data-svelte-h":!0}),p(J)!=="svelte-sqpmf8"&&(J.innerHTML=hs),Qe=o(e),b=i(e,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),p(b)!=="svelte-mhj3h4"&&(b.innerHTML=bs),Fe=o(e),Z=i(e,"P",{"data-svelte-h":!0}),p(Z)!=="svelte-16jlltr"&&(Z.textContent=Ms),Ke=o(e),m(k.$$.fragment,e),Oe=o(e),G=i(e,"UL",{"data-svelte-h":!0}),p(G)!=="svelte-l49o4a"&&(G.innerHTML=ys),ea=o(e),m(W.$$.fragment,e),aa=o(e),H=i(e,"P",{"data-svelte-h":!0}),p(H)!=="svelte-1fm3zhc"&&(H.innerHTML=js),sa=o(e),L=i(e,"TABLE",{"data-svelte-h":!0}),p(L)!=="svelte-1wldcuj"&&(L.innerHTML=vs),ta=o(e),z=i(e,"P",{"data-svelte-h":!0}),p(z)!=="svelte-1ywycy7"&&(z.innerHTML=ws),la=o(e),M=i(e,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),p(M)!=="svelte-eq1ac4"&&(M.innerHTML=$s),oa=o(e),V=i(e,"P",{"data-svelte-h":!0}),p(V)!=="svelte-14st4zt"&&(V.innerHTML=Ts),na=o(e),m(I.$$.fragment,e),ia=o(e),P=i(e,"P",{"data-svelte-h":!0}),p(P)!=="svelte-15d6klf"&&(P.innerHTML=Us),pa=o(e),m(S.$$.fragment,e),ra=o(e),B=i(e,"P",{"data-svelte-h":!0}),p(B)!=="svelte-1lh10u2"&&(B.textContent=_s),ma=o(e),m(N.$$.fragment,e),da=o(e),X=i(e,"P",{"data-svelte-h":!0}),p(X)!=="svelte-1fzeyvx"&&(X.innerHTML=xs),ua=o(e),m(D.$$.fragment,e),ca=o(e),y=i(e,"DIV",{class:!0,"data-svelte-h":!0}),p(y)!=="svelte-6cjtp1"&&(y.innerHTML=Cs),fa=o(e),R=i(e,"P",{"data-svelte-h":!0}),p(R)!=="svelte-1qpz3ys"&&(R.innerHTML=qs),ga=o(e),m(E.$$.fragment,e),ha=o(e),m(Y.$$.fragment,e),ba=o(e),A=i(e,"P",{"data-svelte-h":!0}),p(A)!=="svelte-11z96s9"&&(A.textContent=Js),Ma=o(e),m(Q.$$.fragment,e),ya=o(e),F=i(e,"P",{"data-svelte-h":!0}),p(F)!=="svelte-nca5xy"&&(F.textContent=Zs),ja=o(e),m(K.$$.fragment,e),va=o(e),O=i(e,"P",{"data-svelte-h":!0}),p(O)!=="svelte-18fxe39"&&(O.textContent=ks),wa=o(e),m(ee.$$.fragment,e),$a=o(e),ae=i(e,"P",{"data-svelte-h":!0}),p(ae)!=="svelte-1bdwzfu"&&(ae.innerHTML=Gs),Ta=o(e),m(se.$$.fragment,e),Ua=o(e),te=i(e,"P",{"data-svelte-h":!0}),p(te)!=="svelte-rjqaf3"&&(te.textContent=Ws),_a=o(e),le=i(e,"P",{"data-svelte-h":!0}),p(le)!=="svelte-yp9if5"&&(le.innerHTML=Hs),xa=o(e),m(oe.$$.fragment,e),Ca=o(e),ne=i(e,"P",{"data-svelte-h":!0}),p(ne)!=="svelte-cl1ldd"&&(ne.innerHTML=Ls),qa=o(e),ie=i(e,"P",{"data-svelte-h":!0}),p(ie)!=="svelte-onulph"&&(ie.innerHTML=zs),Ja=o(e),m(pe.$$.fragment,e),Za=o(e),re=i(e,"P",{"data-svelte-h":!0}),p(re)!=="svelte-qcoyrg"&&(re.innerHTML=Vs),ka=o(e),m(me.$$.fragment,e),Ga=o(e),de=i(e,"P",{"data-svelte-h":!0}),p(de)!=="svelte-i890oq"&&(de.textContent=Is),Wa=o(e),ue=i(e,"P",{"data-svelte-h":!0}),p(ue)!=="svelte-1wzn7ma"&&(ue.textContent=Ps),Ha=o(e),ce=i(e,"UL",{"data-svelte-h":!0}),p(ce)!=="svelte-o5msyb"&&(ce.innerHTML=Ss),La=o(e),fe=i(e,"P",{"data-svelte-h":!0}),p(fe)!=="svelte-obxecp"&&(fe.innerHTML=Bs),za=o(e),m(ge.$$.fragment,e),Va=o(e),he=i(e,"P",{"data-svelte-h":!0}),p(he)!=="svelte-1qo9t3f"&&(he.innerHTML=Ns),Ia=o(e),m(be.$$.fragment,e),Pa=o(e),Me=i(e,"P",{"data-svelte-h":!0}),p(Me)!=="svelte-1ljqqs3"&&(Me.textContent=Xs),Sa=o(e),m(ye.$$.fragment,e),Ba=o(e),je=i(e,"P",{"data-svelte-h":!0}),p(je)!=="svelte-1c3rc74"&&(je.innerHTML=Ds),Na=o(e),j=i(e,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),p(j)!=="svelte-kw0jm4"&&(j.innerHTML=Rs),Xa=o(e),ve=i(e,"P",{"data-svelte-h":!0}),p(ve)!=="svelte-7pekzf"&&(ve.innerHTML=Es),Da=o(e),m(we.$$.fragment,e),Ra=o(e),v=i(e,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),p(v)!=="svelte-1o3oicu"&&(v.innerHTML=Ys),Ea=o(e),$e=i(e,"P",{"data-svelte-h":!0}),p($e)!=="svelte-kydn7r"&&($e.textContent=As),Ya=o(e),Te=i(e,"UL",{"data-svelte-h":!0}),p(Te)!=="svelte-1xnw77s"&&(Te.innerHTML=Qs),Aa=o(e),Ue=i(e,"P",{"data-svelte-h":!0}),p(Ue)!=="svelte-3wttzd"&&(Ue.innerHTML=Fs),Qa=o(e),m(_e.$$.fragment,e),Fa=o(e),xe=i(e,"P",{"data-svelte-h":!0}),p(xe)!=="svelte-1tpggdq"&&(xe.innerHTML=Ks),Ka=o(e),Ce=i(e,"P",{"data-svelte-h":!0}),p(Ce)!=="svelte-1xrm0cs"&&(Ce.innerHTML=Os),Oa=o(e),m(qe.$$.fragment,e),es=o(e),Je=i(e,"P",{"data-svelte-h":!0}),p(Je)!=="svelte-19fphdr"&&(Je.textContent=et),as=o(e),m(Ze.$$.fragment,e),ss=o(e),ke=i(e,"P",{"data-svelte-h":!0}),p(ke)!=="svelte-1ff49gu"&&(ke.textContent=at),ts=o(e),m(Ge.$$.fragment,e),ls=o(e),We=i(e,"P",{"data-svelte-h":!0}),p(We)!=="svelte-1tdl2pq"&&(We.textContent=st),os=o(e),w=i(e,"DIV",{class:!0,"data-svelte-h":!0}),p(w)!=="svelte-1yzsrw6"&&(w.innerHTML=tt),ns=o(e),m(He.$$.fragment,e),is=o(e),Le=i(e,"P",{"data-svelte-h":!0}),p(Le)!=="svelte-tfhhyg"&&(Le.textContent=lt),ps=o(e),ze=i(e,"UL",{"data-svelte-h":!0}),p(ze)!=="svelte-1r1xmc2"&&(ze.innerHTML=ot),rs=o(e),m(Ve.$$.fragment,e),ms=o(e),Se=i(e,"P",{}),nt(Se).forEach(s),this.h()},h(){$(h,"name","hf:doc:metadata"),$(h,"content",Mt),$(b,"class","tip"),$(M,"class","warning"),$(y,"class","flex justify-center"),$(j,"class","tip"),$(v,"class","tip"),$(w,"class","flex justify-center")},m(e,a){ct(document.head,h),t(e,Be,a),t(e,Pe,a),t(e,Ne,a),d(T,e,a),t(e,Xe,a),d(U,e,a),t(e,De,a),d(_,e,a),t(e,Re,a),t(e,x,a),t(e,Ee,a),t(e,C,a),t(e,Ye,a),t(e,q,a),t(e,Ae,a),t(e,J,a),t(e,Qe,a),t(e,b,a),t(e,Fe,a),t(e,Z,a),t(e,Ke,a),d(k,e,a),t(e,Oe,a),t(e,G,a),t(e,ea,a),d(W,e,a),t(e,aa,a),t(e,H,a),t(e,sa,a),t(e,L,a),t(e,ta,a),t(e,z,a),t(e,la,a),t(e,M,a),t(e,oa,a),t(e,V,a),t(e,na,a),d(I,e,a),t(e,ia,a),t(e,P,a),t(e,pa,a),d(S,e,a),t(e,ra,a),t(e,B,a),t(e,ma,a),d(N,e,a),t(e,da,a),t(e,X,a),t(e,ua,a),d(D,e,a),t(e,ca,a),t(e,y,a),t(e,fa,a),t(e,R,a),t(e,ga,a),d(E,e,a),t(e,ha,a),d(Y,e,a),t(e,ba,a),t(e,A,a),t(e,Ma,a),d(Q,e,a),t(e,ya,a),t(e,F,a),t(e,ja,a),d(K,e,a),t(e,va,a),t(e,O,a),t(e,wa,a),d(ee,e,a),t(e,$a,a),t(e,ae,a),t(e,Ta,a),d(se,e,a),t(e,Ua,a),t(e,te,a),t(e,_a,a),t(e,le,a),t(e,xa,a),d(oe,e,a),t(e,Ca,a),t(e,ne,a),t(e,qa,a),t(e,ie,a),t(e,Ja,a),d(pe,e,a),t(e,Za,a),t(e,re,a),t(e,ka,a),d(me,e,a),t(e,Ga,a),t(e,de,a),t(e,Wa,a),t(e,ue,a),t(e,Ha,a),t(e,ce,a),t(e,La,a),t(e,fe,a),t(e,za,a),d(ge,e,a),t(e,Va,a),t(e,he,a),t(e,Ia,a),d(be,e,a),t(e,Pa,a),t(e,Me,a),t(e,Sa,a),d(ye,e,a),t(e,Ba,a),t(e,je,a),t(e,Na,a),t(e,j,a),t(e,Xa,a),t(e,ve,a),t(e,Da,a),d(we,e,a),t(e,Ra,a),t(e,v,a),t(e,Ea,a),t(e,$e,a),t(e,Ya,a),t(e,Te,a),t(e,Aa,a),t(e,Ue,a),t(e,Qa,a),d(_e,e,a),t(e,Fa,a),t(e,xe,a),t(e,Ka,a),t(e,Ce,a),t(e,Oa,a),d(qe,e,a),t(e,es,a),t(e,Je,a),t(e,as,a),d(Ze,e,a),t(e,ss,a),t(e,ke,a),t(e,ts,a),d(Ge,e,a),t(e,ls,a),t(e,We,a),t(e,os,a),t(e,w,a),t(e,ns,a),d(He,e,a),t(e,is,a),t(e,Le,a),t(e,ps,a),t(e,ze,a),t(e,rs,a),d(Ve,e,a),t(e,ms,a),t(e,Se,a),ds=!0},p:pt,i(e){ds||(u(T.$$.fragment,e),u(U.$$.fragment,e),u(_.$$.fragment,e),u(k.$$.fragment,e),u(W.$$.fragment,e),u(I.$$.fragment,e),u(S.$$.fragment,e),u(N.$$.fragment,e),u(D.$$.fragment,e),u(E.$$.fragment,e),u(Y.$$.fragment,e),u(Q.$$.fragment,e),u(K.$$.fragment,e),u(ee.$$.fragment,e),u(se.$$.fragment,e),u(oe.$$.fragment,e),u(pe.$$.fragment,e),u(me.$$.fragment,e),u(ge.$$.fragment,e),u(be.$$.fragment,e),u(ye.$$.fragment,e),u(we.$$.fragment,e),u(_e.$$.fragment,e),u(qe.$$.fragment,e),u(Ze.$$.fragment,e),u(Ge.$$.fragment,e),u(He.$$.fragment,e),u(Ve.$$.fragment,e),ds=!0)},o(e){c(T.$$.fragment,e),c(U.$$.fragment,e),c(_.$$.fragment,e),c(k.$$.fragment,e),c(W.$$.fragment,e),c(I.$$.fragment,e),c(S.$$.fragment,e),c(N.$$.fragment,e),c(D.$$.fragment,e),c(E.$$.fragment,e),c(Y.$$.fragment,e),c(Q.$$.fragment,e),c(K.$$.fragment,e),c(ee.$$.fragment,e),c(se.$$.fragment,e),c(oe.$$.fragment,e),c(pe.$$.fragment,e),c(me.$$.fragment,e),c(ge.$$.fragment,e),c(be.$$.fragment,e),c(ye.$$.fragment,e),c(we.$$.fragment,e),c(_e.$$.fragment,e),c(qe.$$.fragment,e),c(Ze.$$.fragment,e),c(Ge.$$.fragment,e),c(He.$$.fragment,e),c(Ve.$$.fragment,e),ds=!1},d(e){e&&(s(Be),s(Pe),s(Ne),s(Xe),s(De),s(Re),s(x),s(Ee),s(C),s(Ye),s(q),s(Ae),s(J),s(Qe),s(b),s(Fe),s(Z),s(Ke),s(Oe),s(G),s(ea),s(aa),s(H),s(sa),s(L),s(ta),s(z),s(la),s(M),s(oa),s(V),s(na),s(ia),s(P),s(pa),s(ra),s(B),s(ma),s(da),s(X),s(ua),s(ca),s(y),s(fa),s(R),s(ga),s(ha),s(ba),s(A),s(Ma),s(ya),s(F),s(ja),s(va),s(O),s(wa),s($a),s(ae),s(Ta),s(Ua),s(te),s(_a),s(le),s(xa),s(Ca),s(ne),s(qa),s(ie),s(Ja),s(Za),s(re),s(ka),s(Ga),s(de),s(Wa),s(ue),s(Ha),s(ce),s(La),s(fe),s(za),s(Va),s(he),s(Ia),s(Pa),s(Me),s(Sa),s(Ba),s(je),s(Na),s(j),s(Xa),s(ve),s(Da),s(Ra),s(v),s(Ea),s($e),s(Ya),s(Te),s(Aa),s(Ue),s(Qa),s(Fa),s(xe),s(Ka),s(Ce),s(Oa),s(es),s(Je),s(as),s(ss),s(ke),s(ts),s(ls),s(We),s(os),s(w),s(ns),s(is),s(Le),s(ps),s(ze),s(rs),s(ms),s(Se)),s(h),f(T,e),f(U,e),f(_,e),f(k,e),f(W,e),f(I,e),f(S,e),f(N,e),f(D,e),f(E,e),f(Y,e),f(Q,e),f(K,e),f(ee,e),f(se,e),f(oe,e),f(pe,e),f(me,e),f(ge,e),f(be,e),f(ye,e),f(we,e),f(_e,e),f(qe,e),f(Ze,e),f(Ge,e),f(He,e),f(Ve,e)}}}const Mt='{"title":"Tour rápido","local":"tour-rápido","sections":[{"title":"DiffusionPipeline","local":"diffusionpipeline","sections":[{"title":"Pipeline local","local":"pipeline-local","sections":[],"depth":3},{"title":"Troca dos agendadores","local":"troca-dos-agendadores","sections":[],"depth":3}],"depth":2},{"title":"Modelos","local":"modelos","sections":[],"depth":2},{"title":"Agendadores","local":"agendadores","sections":[],"depth":2},{"title":"Próximos passos","local":"próximos-passos","sections":[],"depth":2}],"depth":1}';function yt(us){return rt(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Ut extends mt{constructor(h){super(),dt(this,h,yt,bt,it,{})}}export{Ut as component}; | |
Xet Storage Details
- Size:
- 42.1 kB
- Xet hash:
- 01015f13fea4c20fda35708e4cb74f6722feda1a1de7bb79ea219d50844a161c
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.