Buckets:
| import"../chunks/DsnmJJEf.js";import{i as G,h as B,C as A,H as I,a as n,b as V,E as X,s as E}from"../chunks/DdZvggmf.js";import{p as g,o as R,s as l,f as M,a,b as W,c as d,n as S}from"../chunks/BbekZcyp.js";import{H as r}from"../chunks/BcnRgdDK.js";const _='{"title":"T-GATE","local":"t-gate","sections":[{"title":"基准测试","local":"基准测试","sections":[],"depth":2}],"depth":1}';var D=d('<meta name="hf:doc:metadata"/>'),k=d("<p>使用 T-GATE 加速 <code>PixArtAlphaPipeline</code>:</p> <!>",1),Q=d("<p>使用 T-GATE 加速 <code>StableDiffusionXLPipeline</code>:</p> <!>",1),Y=d('<p>使用 [DeepCache](<a href="https://github.co" rel="nofollow">https://github.co</a> 加速 <code>StableDiffusionXLPipeline</code> m/horseee/DeepCache) 和 T-GATE:</p> <!>',1),N=d("<p>使用 T-GATE 加速 <code>latent-consistency/lcm-sdxl</code>:</p> <!>",1),F=d("<!> <!> <!> <!>",1),L=d('<p></p> <!> <!> <p><a href="https://github.com/HaozheLiu-ST/T-GATE/tree/main" rel="nofollow">T-GATE</a> 通过跳过交叉注意力计算一旦收敛,加速了 <a href="../api/pipelines/stable_diffusion/overview">Stable Diffusion</a>、<a href="../api/pipelines/pixart">PixArt</a> 和 <a href="../api/pipelines/latent_consistency_models">Latency Consistency Model</a> 管道的推理。此方法不需要任何额外训练,可以将推理速度提高 10-50%。T-GATE 还与 <a href="./deepcache">DeepCache</a> 等其他优化方法兼容。</p> <p>开始之前,请确保安装 T-GATE。</p> <!> <p>要使用 T-GATE 与管道,您需要使用其对应的加载器。</p> <table><thead><tr><th>管道</th><th>T-GATE 加载器</th></tr></thead><tbody><tr><td>PixArt</td><td>TgatePixArtLoader</td></tr><tr><td>Stable Diffusion XL</td><td>TgateSDXLLoader</td></tr><tr><td>Stable Diffusion XL + DeepCache</td><td>TgateSDXLDeepCacheLoader</td></tr><tr><td>Stable Diffusion</td><td>TgateSDLoader</td></tr><tr><td>Stable Diffusion + DeepCache</td><td>TgateSDDeepCacheLoader</td></tr></tbody></table> <p>接下来,创建一个 <code>TgateLoader</code>,包含管道、门限步骤(停止计算交叉注意力的时间步)和推理步骤数。然后在管道上调用 <code>tgate</code> 方法,提供提示、门限步骤和推理步骤数。</p> <p>让我们看看如何为几个不同的管道启用此功能。</p> <!> <p>T-GATE 还支持 <code>StableDiffusionPipeline</code> 和 <a href="https://hf.co/PixArt-alpha/PixArt-LCM-XL-2-1024-MS" rel="nofollow">PixArt-alpha/PixArt-LCM-XL-2-1024-MS</a>。</p> <!> <table><thead><tr><th>模型</th><th>MACs</th><th>参数</th><th>延迟</th><th>零样本 10K-FID on MS-COCO</th></tr></thead><tbody><tr><td>SD-1.5</td><td>16.938T</td><td>859.520M</td><td>7.032s</td><td>23.927</td></tr><tr><td>SD-1.5 w/ T-GATE</td><td>9.875T</td><td>815.557M</td><td>4.313s</td><td>20.789</td></tr><tr><td>SD-2.1</td><td>38.041T</td><td>865.785M</td><td>16.121s</td><td>22.609</td></tr><tr><td>SD-2.1 w/ T-GATE</td><td>22.208T</td><td>815.433 M</td><td>9.878s</td><td>19.940</td></tr><tr><td>SD-XL</td><td>149.438T</td><td>2.570B</td><td>53.187s</td><td>24.628</td></tr><tr><td>SD-XL w/ T-GATE</td><td>84.438T</td><td>2.024B</td><td>27.932s</td><td>22.738</td></tr><tr><td>Pixart-Alpha</td><td>107.031T</td><td>611.350M</td><td>61.502s</td><td>38.669</td></tr><tr><td>Pixart-Alpha w/ T-GATE</td><td>65.318T</td><td>462.585M</td><td>37.867s</td><td>35.825</td></tr><tr><td>DeepCache (SD-XL)</td><td>57.888T</td><td>-</td><td>19.931s</td><td>23.755</td></tr><tr><td>DeepCache 配合 T-GATE</td><td>43.868T</td><td>-</td><td>14.666秒</td><td>23.999</td></tr><tr><td>LCM (SD-XL)</td><td>11.955T</td><td>2.570B</td><td>3.805秒</td><td>25.044</td></tr><tr><td>LCM 配合 T-GATE</td><td>11.171T</td><td>2.024B</td><td>3.533秒</td><td>25.028</td></tr><tr><td>LCM (Pixart-Alpha)</td><td>8.563T</td><td>611.350M</td><td>4.733秒</td><td>36.086</td></tr><tr><td>LCM 配合 T-GATE</td><td>7.623T</td><td>462.585M</td><td>4.543秒</td><td>37.048</td></tr></tbody></table> <p>延迟测试基于 NVIDIA 1080TI,MACs 和 Params 使用 <a href="https://github.com/MrYxJ/calculate-flops.pytorch" rel="nofollow">calflops</a> 计算,FID 使用 <a href="https://github.com/mseitzer/pytorch-fid" rel="nofollow">PytorchFID</a> 计算。</p> <!> <p></p>',1);function H(f,b){g(b,!1),R(()=>{new URLSearchParams(window.location.search).get("fw")}),G();var T=L();B("d3pgzm",p=>{var o=D();E(o,"content",_),a(p,o)});var i=l(M(T),2);A(i,{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"});var w=l(i,2);I(w,{title:"T-GATE",local:"t-gate",headingTag:"h1"});var J=l(w,6);n(J,{code:"cGlwJTIwaW5zdGFsbCUyMHRnYXRlJTBBcGlwJTIwaW5zdGFsbCUyMC1VJTIwdG9yY2glMjBkaWZmdXNlcnMlMjB0cmFuc2Zvcm1lcnMlMjBhY2NlbGVyYXRlJTIwRGVlcENhY2hl",highlighted:`pip install tgate | |
| pip install -U torch diffusers transformers accelerate DeepCache`,lang:"bash",wrap:!1});var y=l(J,10);V(y,{id:"pipelines",options:["PixArt","Stable Diffusion XL","StableDiffusionXL with DeepCache","Latent Consistency Model"],children:(p,o)=>{var U=F(),j=M(U);r(j,{id:"pipelines",option:"PixArt",children:(e,c)=>{var t=k(),s=l(M(t),2);n(s,{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwUGl4QXJ0QWxwaGFQaXBlbGluZSUwQWZyb20lMjB0Z2F0ZSUyMGltcG9ydCUyMFRnYXRlUGl4QXJ0TG9hZGVyJTBBJTBBcGlwZSUyMCUzRCUyMFBpeEFydEFscGhhUGlwZWxpbmUuZnJvbV9wcmV0cmFpbmVkKCUyMlBpeEFydC1hbHBoYSUyRlBpeEFydC1YTC0yLTEwMjQtTVMlMjIlMkMlMjB0b3JjaF9kdHlwZSUzRHRvcmNoLmZsb2F0MTYpJTBBJTBBZ2F0ZV9zdGVwJTIwJTNEJTIwOCUwQWluZmVyZW5jZV9zdGVwJTIwJTNEJTIwMjUlMEFwaXBlJTIwJTNEJTIwVGdhdGVQaXhBcnRMb2FkZXIoJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwcGlwZSUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMGdhdGVfc3RlcCUzRGdhdGVfc3RlcCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMG51bV9pbmZlcmVuY2Vfc3RlcHMlM0RpbmZlcmVuY2Vfc3RlcCUyQyUwQSkudG8oJTIyY3VkYSUyMiklMEElMEFpbWFnZSUyMCUzRCUyMHBpcGUudGdhdGUoJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIyQW4lMjBhbHBhY2ElMjBtYWRlJTIwb2YlMjBjb2xvcmZ1bCUyMGJ1aWxkaW5nJTIwYmxvY2tzJTJDJTIwY3liZXJwdW5rLiUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMGdhdGVfc3RlcCUzRGdhdGVfc3RlcCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMG51bV9pbmZlcmVuY2Vfc3RlcHMlM0RpbmZlcmVuY2Vfc3RlcCUyQyUwQSkuaW1hZ2VzJTVCMCU1RA==",highlighted:`<span class="hljs-keyword">import</span> torch | |
| <span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> PixArtAlphaPipeline | |
| <span class="hljs-keyword">from</span> tgate <span class="hljs-keyword">import</span> TgatePixArtLoader | |
| pipe = PixArtAlphaPipeline.from_pretrained(<span class="hljs-string">"PixArt-alpha/PixArt-XL-2-1024-MS"</span>, torch_dtype=torch.float16) | |
| gate_step = <span class="hljs-number">8</span> | |
| inference_step = <span class="hljs-number">25</span> | |
| pipe = TgatePixArtLoader( | |
| pipe, | |
| gate_step=gate_step, | |
| num_inference_steps=inference_step, | |
| ).to(<span class="hljs-string">"cuda"</span>) | |
| image = pipe.tgate( | |
| <span class="hljs-string">"An alpaca made of colorful building blocks, cyberpunk."</span>, | |
| gate_step=gate_step, | |
| num_inference_steps=inference_step, | |
| ).images[<span class="hljs-number">0</span>]`,lang:"py",wrap:!1}),a(e,t)},$$slots:{default:!0}});var m=l(j,2);r(m,{id:"pipelines",option:"Stable Diffusion XL",children:(e,c)=>{var t=Q(),s=l(M(t),2);n(s,{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwU3RhYmxlRGlmZnVzaW9uWExQaXBlbGluZSUwQWZyb20lMjBkaWZmdXNlcnMlMjBpbXBvcnQlMjBEUE1Tb2x2ZXJNdWx0aXN0ZXBTY2hlZHVsZXIlMEFmcm9tJTIwdGdhdGUlMjBpbXBvcnQlMjBUZ2F0ZVNEWExMb2FkZXIlMEElMEFwaXBlJTIwJTNEJTIwU3RhYmxlRGlmZnVzaW9uWExQaXBlbGluZS5mcm9tX3ByZXRyYWluZWQoJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIyc3RhYmlsaXR5YWklMkZzdGFibGUtZGlmZnVzaW9uLXhsLWJhc2UtMS4wJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5mbG9hdDE2JTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdmFyaWFudCUzRCUyMmZwMTYlMjIlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB1c2Vfc2FmZXRlbnNvcnMlM0RUcnVlJTJDJTBBKSUwQXBpcGUuc2NoZWR1bGVyJTIwJTNEJTIwRFBNU29sdmVyTXVsdGlzdGVwU2NoZWR1bGVyLmZyb21fY29uZmlnKHBpcGUuc2NoZWR1bGVyLmNvbmZpZyklMEElMEFnYXRlX3N0ZXAlMjAlM0QlMjAxMCUwQWluZmVyZW5jZV9zdGVwJTIwJTNEJTIwMjUlMEFwaXBlJTIwJTNEJTIwVGdhdGVTRFhMTG9hZGVyKCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMHBpcGUlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjBnYXRlX3N0ZXAlM0RnYXRlX3N0ZXAlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjBudW1faW5mZXJlbmNlX3N0ZXBzJTNEaW5mZXJlbmNlX3N0ZXAlMkMlMEEpLnRvKCUyMmN1ZGElMjIpJTBBJTBBaW1hZ2UlMjAlM0QlMjBwaXBlLnRnYXRlKCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMkFzdHJvbmF1dCUyMGluJTIwYSUyMGp1bmdsZSUyQyUyMGNvbGQlMjBjb2xvciUyMHBhbGV0dGUlMkMlMjBtdXRlZCUyMGNvbG9ycyUyQyUyMGRldGFpbGVkJTJDJTIwOGsuJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwZ2F0ZV9zdGVwJTNEZ2F0ZV9zdGVwJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwbnVtX2luZmVyZW5jZV9zdGVwcyUzRGluZmVyZW5jZV9zdGVwJTBBKS5pbWFnZXMlNUIwJTVE",highlighted:`<span class="hljs-keyword">import</span> torch | |
| <span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> StableDiffusionXLPipeline | |
| <span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> DPMSolverMultistepScheduler | |
| <span class="hljs-keyword">from</span> tgate <span class="hljs-keyword">import</span> TgateSDXLLoader | |
| pipe = StableDiffusionXLPipeline.from_pretrained( | |
| <span class="hljs-string">"stabilityai/stable-diffusion-xl-base-1.0"</span>, | |
| torch_dtype=torch.float16, | |
| variant=<span class="hljs-string">"fp16"</span>, | |
| use_safetensors=<span class="hljs-literal">True</span>, | |
| ) | |
| pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config) | |
| gate_step = <span class="hljs-number">10</span> | |
| inference_step = <span class="hljs-number">25</span> | |
| pipe = TgateSDXLLoader( | |
| pipe, | |
| gate_step=gate_step, | |
| num_inference_steps=inference_step, | |
| ).to(<span class="hljs-string">"cuda"</span>) | |
| image = pipe.tgate( | |
| <span class="hljs-string">"Astronaut in a jungle, cold color palette, muted colors, detailed, 8k."</span>, | |
| gate_step=gate_step, | |
| num_inference_steps=inference_step | |
| ).images[<span class="hljs-number">0</span>]`,lang:"py",wrap:!1}),a(e,t)},$$slots:{default:!0}});var u=l(m,2);r(u,{id:"pipelines",option:"StableDiffusionXL with DeepCache",children:(e,c)=>{var t=Y(),s=l(M(t),2);n(s,{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwU3RhYmxlRGlmZnVzaW9uWExQaXBlbGluZSUwQWZyb20lMjBkaWZmdXNlcnMlMjBpbXBvcnQlMjBEUE1Tb2x2ZXJNdWx0aXN0ZXBTY2hlZHVsZXIlMEFmcm9tJTIwdGdhdGUlMjBpbXBvcnQlMjBUZ2F0ZVNEWExEZWVwQ2FjaGVMb2FkZXIlMEElMEFwaXBlJTIwJTNEJTIwU3RhYmxlRGlmZnVzaW9uWExQaXBlbGluZS5mcm9tX3ByZXRyYWluZWQoJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIyc3RhYmlsaXR5YWklMkZzdGFibGUtZGlmZnVzaW9uLXhsLWJhc2UtMS4wJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5mbG9hdDE2JTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdmFyaWFudCUzRCUyMmZwMTYlMjIlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB1c2Vfc2FmZXRlbnNvcnMlM0RUcnVlJTJDJTBBKSUwQXBpcGUuc2NoZWR1bGVyJTIwJTNEJTIwRFBNU29sdmVyTXVsdGlzdGVwU2NoZWR1bGVyLmZyb21fY29uZmlnKHBpcGUuc2NoZWR1bGVyLmNvbmZpZyklMEElMEFnYXRlX3N0ZXAlMjAlM0QlMjAxMCUwQWluZmVyZW5jZV9zdGVwJTIwJTNEJTIwMjUlMEFwaXBlJTIwJTNEJTIwVGdhdGVTRFhMRGVlcENhY2hlTG9hZGVyKCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMHBpcGUlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjBjYWNoZV9pbnRlcnZhbCUzRDMlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjBjYWNoZV9icmFuY2hfaWQlM0QwJTJDJTBBKS50byglMjJjdWRhJTIyKSUwQSUwQWltYWdlJTIwJTNEJTIwcGlwZS50Z2F0ZSglMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJBc3Ryb25hdXQlMjBpbiUyMGElMjBqdW5nbGUlMkMlMjBjb2xkJTIwY29sb3IlMjBwYWxldHRlJTJDJTIwbXV0ZWQlMjBjb2xvcnMlMkMlMjBkZXRhaWxlZCUyQyUyMDhrLiUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMGdhdGVfc3RlcCUzRGdhdGVfc3RlcCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMG51bV9pbmZlcmVuY2Vfc3RlcHMlM0RpbmZlcmVuY2Vfc3RlcCUwQSkuaW1hZ2VzJTVCMCU1RA==",highlighted:`<span class="hljs-keyword">import</span> torch | |
| <span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> StableDiffusionXLPipeline | |
| <span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> DPMSolverMultistepScheduler | |
| <span class="hljs-keyword">from</span> tgate <span class="hljs-keyword">import</span> TgateSDXLDeepCacheLoader | |
| pipe = StableDiffusionXLPipeline.from_pretrained( | |
| <span class="hljs-string">"stabilityai/stable-diffusion-xl-base-1.0"</span>, | |
| torch_dtype=torch.float16, | |
| variant=<span class="hljs-string">"fp16"</span>, | |
| use_safetensors=<span class="hljs-literal">True</span>, | |
| ) | |
| pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config) | |
| gate_step = <span class="hljs-number">10</span> | |
| inference_step = <span class="hljs-number">25</span> | |
| pipe = TgateSDXLDeepCacheLoader( | |
| pipe, | |
| cache_interval=<span class="hljs-number">3</span>, | |
| cache_branch_id=<span class="hljs-number">0</span>, | |
| ).to(<span class="hljs-string">"cuda"</span>) | |
| image = pipe.tgate( | |
| <span class="hljs-string">"Astronaut in a jungle, cold color palette, muted colors, detailed, 8k."</span>, | |
| gate_step=gate_step, | |
| num_inference_steps=inference_step | |
| ).images[<span class="hljs-number">0</span>]`,lang:"py",wrap:!1}),a(e,t)},$$slots:{default:!0}});var C=l(u,2);r(C,{id:"pipelines",option:"Latent Consistency Model",children:(e,c)=>{var t=N(),s=l(M(t),2);n(s,{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwU3RhYmxlRGlmZnVzaW9uWExQaXBlbGluZSUwQWZyb20lMjBkaWZmdXNlcnMlMjBpbXBvcnQlMjBVTmV0MkRDb25kaXRpb25Nb2RlbCUyQyUyMExDTVNjaGVkdWxlciUwQWZyb20lMjBkaWZmdXNlcnMlMjBpbXBvcnQlMjBEUE1Tb2x2ZXJNdWx0aXN0ZXBTY2hlZHVsZXIlMEFmcm9tJTIwdGdhdGUlMjBpbXBvcnQlMjBUZ2F0ZVNEWExMb2FkZXIlMEElMEF1bmV0JTIwJTNEJTIwVU5ldDJEQ29uZGl0aW9uTW9kZWwuZnJvbV9wcmV0cmFpbmVkKCUwQSUyMCUyMCUyMCUyMCUyMmxhdGVudC1jb25zaXN0ZW5jeSUyRmxjbS1zZHhsJTIyJTJDJTBBJTIwJTIwJTIwJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5mbG9hdDE2JTJDJTBBJTIwJTIwJTIwJTIwdmFyaWFudCUzRCUyMmZwMTYlMjIlMkMlMEEpJTBBcGlwZSUyMCUzRCUyMFN0YWJsZURpZmZ1c2lvblhMUGlwZWxpbmUuZnJvbV9wcmV0cmFpbmVkKCUwQSUyMCUyMCUyMCUyMCUyMnN0YWJpbGl0eWFpJTJGc3RhYmxlLWRpZmZ1c2lvbi14bC1iYXNlLTEuMCUyMiUyQyUwQSUyMCUyMCUyMCUyMHVuZXQlM0R1bmV0JTJDJTBBJTIwJTIwJTIwJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5mbG9hdDE2JTJDJTBBJTIwJTIwJTIwJTIwdmFyaWFudCUzRCUyMmZwMTYlMjIlMkMlMEEpJTBBcGlwZS5zY2hlZHVsZXIlMjAlM0QlMjBMQ01TY2hlZHVsZXIuZnJvbV9jb25maWcocGlwZS5zY2hlZHVsZXIuY29uZmlnKSUwQSUwQWdhdGVfc3RlcCUyMCUzRCUyMDElMEFpbmZlcmVuY2Vfc3RlcCUyMCUzRCUyMDQlMEFwaXBlJTIwJTNEJTIwVGdhdGVTRFhMTG9hZGVyKCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMHBpcGUlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjBnYXRlX3N0ZXAlM0RnYXRlX3N0ZXAlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjBudW1faW5mZXJlbmNlX3N0ZXBzJTNEaW5mZXJlbmNlX3N0ZXAlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjBsY20lM0RUcnVlJTBBKS50byglMjJjdWRhJTIyKSUwQSUwQWltYWdlJTIwJTNEJTIwcGlwZS50Z2F0ZSglMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJBc3Ryb25hdXQlMjBpbiUyMGElMjBqdW5nbGUlMkMlMjBjb2xkJTIwY29sb3IlMjBwYWxldHRlJTJDJTIwbXV0ZWQlMjBjb2xvcnMlMkMlMjBkZXRhaWxlZCUyQyUyMDhrLiUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMGdhdGVfc3RlcCUzRGdhdGVfc3RlcCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMG51bV9pbmZlcmVuY2Vfc3RlcHMlM0RpbmZlcmVuY2Vfc3RlcCUwQSkuaW1hZ2VzJTVCMCU1RA==",highlighted:`<span class="hljs-keyword">import</span> torch | |
| <span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> StableDiffusionXLPipeline | |
| <span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> UNet2DConditionModel, LCMScheduler | |
| <span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> DPMSolverMultistepScheduler | |
| <span class="hljs-keyword">from</span> tgate <span class="hljs-keyword">import</span> TgateSDXLLoader | |
| unet = UNet2DConditionModel.from_pretrained( | |
| <span class="hljs-string">"latent-consistency/lcm-sdxl"</span>, | |
| torch_dtype=torch.float16, | |
| variant=<span class="hljs-string">"fp16"</span>, | |
| ) | |
| pipe = StableDiffusionXLPipeline.from_pretrained( | |
| <span class="hljs-string">"stabilityai/stable-diffusion-xl-base-1.0"</span>, | |
| unet=unet, | |
| torch_dtype=torch.float16, | |
| variant=<span class="hljs-string">"fp16"</span>, | |
| ) | |
| pipe.scheduler = LCMScheduler.from_config(pipe.scheduler.config) | |
| gate_step = <span class="hljs-number">1</span> | |
| inference_step = <span class="hljs-number">4</span> | |
| pipe = TgateSDXLLoader( | |
| pipe, | |
| gate_step=gate_step, | |
| num_inference_steps=inference_step, | |
| lcm=<span class="hljs-literal">True</span> | |
| ).to(<span class="hljs-string">"cuda"</span>) | |
| image = pipe.tgate( | |
| <span class="hljs-string">"Astronaut in a jungle, cold color palette, muted colors, detailed, 8k."</span>, | |
| gate_step=gate_step, | |
| num_inference_steps=inference_step | |
| ).images[<span class="hljs-number">0</span>]`,lang:"py",wrap:!1}),a(e,t)},$$slots:{default:!0}}),a(p,U)},$$slots:{default:!0}});var h=l(y,4);I(h,{title:"基准测试",local:"基准测试",headingTag:"h2"});var Z=l(h,6);X(Z,{source:"https://github.com/huggingface/diffusers/blob/main/docs/source/zh/optimization/tgate.md"}),S(2),a(f,T),W()}export{H as component}; | |
Xet Storage Details
- Size:
- 17.1 kB
- Xet hash:
- 0da0a4c63be4c380e60b0096b51332e38173e3960bff394a6be1c08f6c44f187
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.