Buckets:

rtrm's picture
download
raw
157 kB
import{s as _s,o as Ts,n as Ot}from"../chunks/scheduler.53228c21.js";import{S as ys,i as Js,e as r,s,c,h as ws,a as d,d as t,b as a,f as U,g as m,j as f,k as b,l,m as i,n as u,t as h,o as M,p as g}from"../chunks/index.100fac89.js";import{D as v}from"../chunks/Docstring.28a82b9a.js";import{C as ee}from"../chunks/CodeBlock.d30a6509.js";import{E as Kt}from"../chunks/ExampleCodeBlock.5516e03a.js";import{H as F,E as bs}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.64a9334b.js";function Us(V){let p,I="Examples:",y,_,T;return _=new ee({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwTFRYMlBpcGVsaW5lJTBBZnJvbSUyMGRpZmZ1c2Vycy5waXBlbGluZXMubHR4Mi5leHBvcnRfdXRpbHMlMjBpbXBvcnQlMjBlbmNvZGVfdmlkZW8lMEElMEFwaXBlJTIwJTNEJTIwTFRYMlBpcGVsaW5lLmZyb21fcHJldHJhaW5lZCglMjJMaWdodHJpY2tzJTJGTFRYLTIlMjIlMkMlMjB0b3JjaF9kdHlwZSUzRHRvcmNoLmJmbG9hdDE2KSUwQXBpcGUuZW5hYmxlX21vZGVsX2NwdV9vZmZsb2FkKCklMEElMEFwcm9tcHQlMjAlM0QlMjAlMjJBJTIwd29tYW4lMjB3aXRoJTIwbG9uZyUyMGJyb3duJTIwaGFpciUyMGFuZCUyMGxpZ2h0JTIwc2tpbiUyMHNtaWxlcyUyMGF0JTIwYW5vdGhlciUyMHdvbWFuJTIwd2l0aCUyMGxvbmclMjBibG9uZGUlMjBoYWlyLiUyMFRoZSUyMHdvbWFuJTIwd2l0aCUyMGJyb3duJTIwaGFpciUyMHdlYXJzJTIwYSUyMGJsYWNrJTIwamFja2V0JTIwYW5kJTIwaGFzJTIwYSUyMHNtYWxsJTJDJTIwYmFyZWx5JTIwbm90aWNlYWJsZSUyMG1vbGUlMjBvbiUyMGhlciUyMHJpZ2h0JTIwY2hlZWsuJTIwVGhlJTIwY2FtZXJhJTIwYW5nbGUlMjBpcyUyMGElMjBjbG9zZS11cCUyQyUyMGZvY3VzZWQlMjBvbiUyMHRoZSUyMHdvbWFuJTIwd2l0aCUyMGJyb3duJTIwaGFpcidzJTIwZmFjZS4lMjBUaGUlMjBsaWdodGluZyUyMGlzJTIwd2FybSUyMGFuZCUyMG5hdHVyYWwlMkMlMjBsaWtlbHklMjBmcm9tJTIwdGhlJTIwc2V0dGluZyUyMHN1biUyQyUyMGNhc3RpbmclMjBhJTIwc29mdCUyMGdsb3clMjBvbiUyMHRoZSUyMHNjZW5lLiUyMFRoZSUyMHNjZW5lJTIwYXBwZWFycyUyMHRvJTIwYmUlMjByZWFsLWxpZmUlMjBmb290YWdlJTIyJTBBbmVnYXRpdmVfcHJvbXB0JTIwJTNEJTIwJTIyd29yc3QlMjBxdWFsaXR5JTJDJTIwaW5jb25zaXN0ZW50JTIwbW90aW9uJTJDJTIwYmx1cnJ5JTJDJTIwaml0dGVyeSUyQyUyMGRpc3RvcnRlZCUyMiUwQSUwQWZyYW1lX3JhdGUlMjAlM0QlMjAyNC4wJTBBdmlkZW8lMkMlMjBhdWRpbyUyMCUzRCUyMHBpcGUoJTBBJTIwJTIwJTIwJTIwcHJvbXB0JTNEcHJvbXB0JTJDJTBBJTIwJTIwJTIwJTIwbmVnYXRpdmVfcHJvbXB0JTNEbmVnYXRpdmVfcHJvbXB0JTJDJTBBJTIwJTIwJTIwJTIwd2lkdGglM0Q3NjglMkMlMEElMjAlMjAlMjAlMjBoZWlnaHQlM0Q1MTIlMkMlMEElMjAlMjAlMjAlMjBudW1fZnJhbWVzJTNEMTIxJTJDJTBBJTIwJTIwJTIwJTIwZnJhbWVfcmF0ZSUzRGZyYW1lX3JhdGUlMkMlMEElMjAlMjAlMjAlMjBudW1faW5mZXJlbmNlX3N0ZXBzJTNENDAlMkMlMEElMjAlMjAlMjAlMjBndWlkYW5jZV9zY2FsZSUzRDQuMCUyQyUwQSUyMCUyMCUyMCUyMG91dHB1dF90eXBlJTNEJTIybnAlMjIlMkMlMEElMjAlMjAlMjAlMjByZXR1cm5fZGljdCUzREZhbHNlJTJDJTBBKSUwQSUwQWVuY29kZV92aWRlbyglMEElMjAlMjAlMjAlMjB2aWRlbyU1QjAlNUQlMkMlMEElMjAlMjAlMjAlMjBmcHMlM0RmcmFtZV9yYXRlJTJDJTBBJTIwJTIwJTIwJTIwYXVkaW8lM0RhdWRpbyU1QjAlNUQuZmxvYXQoKS5jcHUoKSUyQyUwQSUyMCUyMCUyMCUyMGF1ZGlvX3NhbXBsZV9yYXRlJTNEcGlwZS52b2NvZGVyLmNvbmZpZy5vdXRwdXRfc2FtcGxpbmdfcmF0ZSUyQyUyMCUyMCUyMyUyMHNob3VsZCUyMGJlJTIwMjQwMDAlMEElMjAlMjAlMjAlMjBvdXRwdXRfcGF0aCUzRCUyMnZpZGVvLm1wNCUyMiUyQyUwQSk=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">import</span> torch
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> LTX2Pipeline
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> diffusers.pipelines.ltx2.export_utils <span class="hljs-keyword">import</span> encode_video
<span class="hljs-meta">&gt;&gt;&gt; </span>pipe = LTX2Pipeline.from_pretrained(<span class="hljs-string">&quot;Lightricks/LTX-2&quot;</span>, torch_dtype=torch.bfloat16)
<span class="hljs-meta">&gt;&gt;&gt; </span>pipe.enable_model_cpu_offload()
<span class="hljs-meta">&gt;&gt;&gt; </span>prompt = <span class="hljs-string">&quot;A woman with long brown hair and light skin smiles at another woman with long blonde hair. The woman with brown hair wears a black jacket and has a small, barely noticeable mole on her right cheek. The camera angle is a close-up, focused on the woman with brown hair&#x27;s face. The lighting is warm and natural, likely from the setting sun, casting a soft glow on the scene. The scene appears to be real-life footage&quot;</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>negative_prompt = <span class="hljs-string">&quot;worst quality, inconsistent motion, blurry, jittery, distorted&quot;</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>frame_rate = <span class="hljs-number">24.0</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>video, audio = pipe(
<span class="hljs-meta">... </span> prompt=prompt,
<span class="hljs-meta">... </span> negative_prompt=negative_prompt,
<span class="hljs-meta">... </span> width=<span class="hljs-number">768</span>,
<span class="hljs-meta">... </span> height=<span class="hljs-number">512</span>,
<span class="hljs-meta">... </span> num_frames=<span class="hljs-number">121</span>,
<span class="hljs-meta">... </span> frame_rate=frame_rate,
<span class="hljs-meta">... </span> num_inference_steps=<span class="hljs-number">40</span>,
<span class="hljs-meta">... </span> guidance_scale=<span class="hljs-number">4.0</span>,
<span class="hljs-meta">... </span> output_type=<span class="hljs-string">&quot;np&quot;</span>,
<span class="hljs-meta">... </span> return_dict=<span class="hljs-literal">False</span>,
<span class="hljs-meta">... </span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>encode_video(
<span class="hljs-meta">... </span> video[<span class="hljs-number">0</span>],
<span class="hljs-meta">... </span> fps=frame_rate,
<span class="hljs-meta">... </span> audio=audio[<span class="hljs-number">0</span>].<span class="hljs-built_in">float</span>().cpu(),
<span class="hljs-meta">... </span> audio_sample_rate=pipe.vocoder.config.output_sampling_rate, <span class="hljs-comment"># should be 24000</span>
<span class="hljs-meta">... </span> output_path=<span class="hljs-string">&quot;video.mp4&quot;</span>,
<span class="hljs-meta">... </span>)`,wrap:!1}}),{c(){p=r("p"),p.textContent=I,y=s(),c(_.$$.fragment)},l(o){p=d(o,"P",{"data-svelte-h":!0}),f(p)!=="svelte-kvfsh7"&&(p.textContent=I),y=a(o),m(_.$$.fragment,o)},m(o,J){i(o,p,J),i(o,y,J),u(_,o,J),T=!0},p:Ot,i(o){T||(h(_.$$.fragment,o),T=!0)},o(o){M(_.$$.fragment,o),T=!1},d(o){o&&(t(p),t(y)),g(_,o)}}}function js(V){let p,I="Examples:",y,_,T;return _=new ee({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwTFRYMkltYWdlVG9WaWRlb1BpcGVsaW5lJTBBZnJvbSUyMGRpZmZ1c2Vycy5waXBlbGluZXMubHR4Mi5leHBvcnRfdXRpbHMlMjBpbXBvcnQlMjBlbmNvZGVfdmlkZW8lMEFmcm9tJTIwZGlmZnVzZXJzLnV0aWxzJTIwaW1wb3J0JTIwbG9hZF9pbWFnZSUwQSUwQXBpcGUlMjAlM0QlMjBMVFgySW1hZ2VUb1ZpZGVvUGlwZWxpbmUuZnJvbV9wcmV0cmFpbmVkKCUyMkxpZ2h0cmlja3MlMkZMVFgtMiUyMiUyQyUyMHRvcmNoX2R0eXBlJTNEdG9yY2guYmZsb2F0MTYpJTBBcGlwZS5lbmFibGVfbW9kZWxfY3B1X29mZmxvYWQoKSUwQSUwQWltYWdlJTIwJTNEJTIwbG9hZF9pbWFnZSglMEElMjAlMjAlMjAlMjAlMjJodHRwcyUzQSUyRiUyRmh1Z2dpbmdmYWNlLmNvJTJGZGF0YXNldHMlMkZhLXItci1vLXclMkZ0aW55LW1lbWUtZGF0YXNldC1jYXB0aW9uZWQlMkZyZXNvbHZlJTJGbWFpbiUyRmltYWdlcyUyRjgucG5nJTIyJTBBKSUwQXByb21wdCUyMCUzRCUyMCUyMkElMjB5b3VuZyUyMGdpcmwlMjBzdGFuZHMlMjBjYWxtbHklMjBpbiUyMHRoZSUyMGZvcmVncm91bmQlMkMlMjBsb29raW5nJTIwZGlyZWN0bHklMjBhdCUyMHRoZSUyMGNhbWVyYSUyQyUyMGFzJTIwYSUyMGhvdXNlJTIwZmlyZSUyMHJhZ2VzJTIwaW4lMjB0aGUlMjBiYWNrZ3JvdW5kLiUyMiUwQW5lZ2F0aXZlX3Byb21wdCUyMCUzRCUyMCUyMndvcnN0JTIwcXVhbGl0eSUyQyUyMGluY29uc2lzdGVudCUyMG1vdGlvbiUyQyUyMGJsdXJyeSUyQyUyMGppdHRlcnklMkMlMjBkaXN0b3J0ZWQlMjIlMEElMEFmcmFtZV9yYXRlJTIwJTNEJTIwMjQuMCUwQXZpZGVvJTJDJTIwYXVkaW8lMjAlM0QlMjBwaXBlKCUwQSUyMCUyMCUyMCUyMGltYWdlJTNEaW1hZ2UlMkMlMEElMjAlMjAlMjAlMjBwcm9tcHQlM0Rwcm9tcHQlMkMlMEElMjAlMjAlMjAlMjBuZWdhdGl2ZV9wcm9tcHQlM0RuZWdhdGl2ZV9wcm9tcHQlMkMlMEElMjAlMjAlMjAlMjB3aWR0aCUzRDc2OCUyQyUwQSUyMCUyMCUyMCUyMGhlaWdodCUzRDUxMiUyQyUwQSUyMCUyMCUyMCUyMG51bV9mcmFtZXMlM0QxMjElMkMlMEElMjAlMjAlMjAlMjBmcmFtZV9yYXRlJTNEZnJhbWVfcmF0ZSUyQyUwQSUyMCUyMCUyMCUyMG51bV9pbmZlcmVuY2Vfc3RlcHMlM0Q0MCUyQyUwQSUyMCUyMCUyMCUyMGd1aWRhbmNlX3NjYWxlJTNENC4wJTJDJTBBJTIwJTIwJTIwJTIwb3V0cHV0X3R5cGUlM0QlMjJucCUyMiUyQyUwQSUyMCUyMCUyMCUyMHJldHVybl9kaWN0JTNERmFsc2UlMkMlMEEpJTBBJTBBZW5jb2RlX3ZpZGVvKCUwQSUyMCUyMCUyMCUyMHZpZGVvJTVCMCU1RCUyQyUwQSUyMCUyMCUyMCUyMGZwcyUzRGZyYW1lX3JhdGUlMkMlMEElMjAlMjAlMjAlMjBhdWRpbyUzRGF1ZGlvJTVCMCU1RC5mbG9hdCgpLmNwdSgpJTJDJTBBJTIwJTIwJTIwJTIwYXVkaW9fc2FtcGxlX3JhdGUlM0RwaXBlLnZvY29kZXIuY29uZmlnLm91dHB1dF9zYW1wbGluZ19yYXRlJTJDJTIwJTIwJTIzJTIwc2hvdWxkJTIwYmUlMjAyNDAwMCUwQSUyMCUyMCUyMCUyMG91dHB1dF9wYXRoJTNEJTIydmlkZW8ubXA0JTIyJTJDJTBBKQ==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">import</span> torch
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> LTX2ImageToVideoPipeline
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> diffusers.pipelines.ltx2.export_utils <span class="hljs-keyword">import</span> encode_video
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> diffusers.utils <span class="hljs-keyword">import</span> load_image
<span class="hljs-meta">&gt;&gt;&gt; </span>pipe = LTX2ImageToVideoPipeline.from_pretrained(<span class="hljs-string">&quot;Lightricks/LTX-2&quot;</span>, torch_dtype=torch.bfloat16)
<span class="hljs-meta">&gt;&gt;&gt; </span>pipe.enable_model_cpu_offload()
<span class="hljs-meta">&gt;&gt;&gt; </span>image = load_image(
<span class="hljs-meta">... </span> <span class="hljs-string">&quot;https://huggingface.co/datasets/a-r-r-o-w/tiny-meme-dataset-captioned/resolve/main/images/8.png&quot;</span>
<span class="hljs-meta">... </span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>prompt = <span class="hljs-string">&quot;A young girl stands calmly in the foreground, looking directly at the camera, as a house fire rages in the background.&quot;</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>negative_prompt = <span class="hljs-string">&quot;worst quality, inconsistent motion, blurry, jittery, distorted&quot;</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>frame_rate = <span class="hljs-number">24.0</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>video, audio = pipe(
<span class="hljs-meta">... </span> image=image,
<span class="hljs-meta">... </span> prompt=prompt,
<span class="hljs-meta">... </span> negative_prompt=negative_prompt,
<span class="hljs-meta">... </span> width=<span class="hljs-number">768</span>,
<span class="hljs-meta">... </span> height=<span class="hljs-number">512</span>,
<span class="hljs-meta">... </span> num_frames=<span class="hljs-number">121</span>,
<span class="hljs-meta">... </span> frame_rate=frame_rate,
<span class="hljs-meta">... </span> num_inference_steps=<span class="hljs-number">40</span>,
<span class="hljs-meta">... </span> guidance_scale=<span class="hljs-number">4.0</span>,
<span class="hljs-meta">... </span> output_type=<span class="hljs-string">&quot;np&quot;</span>,
<span class="hljs-meta">... </span> return_dict=<span class="hljs-literal">False</span>,
<span class="hljs-meta">... </span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>encode_video(
<span class="hljs-meta">... </span> video[<span class="hljs-number">0</span>],
<span class="hljs-meta">... </span> fps=frame_rate,
<span class="hljs-meta">... </span> audio=audio[<span class="hljs-number">0</span>].<span class="hljs-built_in">float</span>().cpu(),
<span class="hljs-meta">... </span> audio_sample_rate=pipe.vocoder.config.output_sampling_rate, <span class="hljs-comment"># should be 24000</span>
<span class="hljs-meta">... </span> output_path=<span class="hljs-string">&quot;video.mp4&quot;</span>,
<span class="hljs-meta">... </span>)`,wrap:!1}}),{c(){p=r("p"),p.textContent=I,y=s(),c(_.$$.fragment)},l(o){p=d(o,"P",{"data-svelte-h":!0}),f(p)!=="svelte-kvfsh7"&&(p.textContent=I),y=a(o),m(_.$$.fragment,o)},m(o,J){i(o,p,J),i(o,y,J),u(_,o,J),T=!0},p:Ot,i(o){T||(h(_.$$.fragment,o),T=!0)},o(o){M(_.$$.fragment,o),T=!1},d(o){o&&(t(p),t(y)),g(_,o)}}}function Zs(V){let p,I="Examples:",y,_,T;return _=new ee({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwTFRYMkNvbmRpdGlvblBpcGVsaW5lJTBBZnJvbSUyMGRpZmZ1c2Vycy5waXBlbGluZXMubHR4Mi5leHBvcnRfdXRpbHMlMjBpbXBvcnQlMjBlbmNvZGVfdmlkZW8lMEFmcm9tJTIwZGlmZnVzZXJzLnBpcGVsaW5lcy5sdHgyLnBpcGVsaW5lX2x0eDJfY29uZGl0aW9uJTIwaW1wb3J0JTIwTFRYMlZpZGVvQ29uZGl0aW9uJTBBZnJvbSUyMGRpZmZ1c2Vycy51dGlscyUyMGltcG9ydCUyMGxvYWRfaW1hZ2UlMEElMEFwaXBlJTIwJTNEJTIwTFRYMkNvbmRpdGlvblBpcGVsaW5lLmZyb21fcHJldHJhaW5lZCglMjJMaWdodHJpY2tzJTJGTFRYLTIlMjIlMkMlMjB0b3JjaF9kdHlwZSUzRHRvcmNoLmJmbG9hdDE2KSUwQXBpcGUuZW5hYmxlX21vZGVsX2NwdV9vZmZsb2FkKCklMEElMEFmaXJzdF9pbWFnZSUyMCUzRCUyMGxvYWRfaW1hZ2UoJTBBJTIwJTIwJTIwJTIwJTIyaHR0cHMlM0ElMkYlMkZodWdnaW5nZmFjZS5jbyUyRmRhdGFzZXRzJTJGaHVnZ2luZ2ZhY2UlMkZkb2N1bWVudGF0aW9uLWltYWdlcyUyRnJlc29sdmUlMkZtYWluJTJGZGlmZnVzZXJzJTJGZmxmMnZfaW5wdXRfZmlyc3RfZnJhbWUucG5nJTIyJTBBKSUwQWxhc3RfaW1hZ2UlMjAlM0QlMjBsb2FkX2ltYWdlKCUwQSUyMCUyMCUyMCUyMCUyMmh0dHBzJTNBJTJGJTJGaHVnZ2luZ2ZhY2UuY28lMkZkYXRhc2V0cyUyRmh1Z2dpbmdmYWNlJTJGZG9jdW1lbnRhdGlvbi1pbWFnZXMlMkZyZXNvbHZlJTJGbWFpbiUyRmRpZmZ1c2VycyUyRmZsZjJ2X2lucHV0X2xhc3RfZnJhbWUucG5nJTIyJTBBKSUwQWZpcnN0X2NvbmQlMjAlM0QlMjBMVFgyVmlkZW9Db25kaXRpb24oZnJhbWVzJTNEZmlyc3RfaW1hZ2UlMkMlMjBpbmRleCUzRDAlMkMlMjBzdHJlbmd0aCUzRDEuMCklMEFsYXN0X2NvbmQlMjAlM0QlMjBMVFgyVmlkZW9Db25kaXRpb24oZnJhbWVzJTNEbGFzdF9pbWFnZSUyQyUyMGluZGV4JTNELTElMkMlMjBzdHJlbmd0aCUzRDEuMCklMEFjb25kaXRpb25zJTIwJTNEJTIwJTVCZmlyc3RfY29uZCUyQyUyMGxhc3RfY29uZCU1RCUwQXByb21wdCUyMCUzRCUyMCUyMkNHJTIwYW5pbWF0aW9uJTIwc3R5bGUlMkMlMjBhJTIwc21hbGwlMjBibHVlJTIwYmlyZCUyMHRha2VzJTIwb2ZmJTIwZnJvbSUyMHRoZSUyMGdyb3VuZCUyQyUyMGZsYXBwaW5nJTIwaXRzJTIwd2luZ3MuJTIyJTBBbmVnYXRpdmVfcHJvbXB0JTIwJTNEJTIwJTIyd29yc3QlMjBxdWFsaXR5JTJDJTIwaW5jb25zaXN0ZW50JTIwbW90aW9uJTJDJTIwYmx1cnJ5JTJDJTIwaml0dGVyeSUyQyUyMGRpc3RvcnRlZCUyQyUyMHN0YXRpYyUyMiUwQSUwQWZyYW1lX3JhdGUlMjAlM0QlMjAyNC4wJTBBdmlkZW8lMjAlM0QlMjBwaXBlKCUwQSUyMCUyMCUyMCUyMGNvbmRpdGlvbnMlM0Rjb25kaXRpb25zJTJDJTBBJTIwJTIwJTIwJTIwcHJvbXB0JTNEcHJvbXB0JTJDJTBBJTIwJTIwJTIwJTIwbmVnYXRpdmVfcHJvbXB0JTNEbmVnYXRpdmVfcHJvbXB0JTJDJTBBJTIwJTIwJTIwJTIwd2lkdGglM0Q3NjglMkMlMEElMjAlMjAlMjAlMjBoZWlnaHQlM0Q1MTIlMkMlMEElMjAlMjAlMjAlMjBudW1fZnJhbWVzJTNEMTIxJTJDJTBBJTIwJTIwJTIwJTIwZnJhbWVfcmF0ZSUzRGZyYW1lX3JhdGUlMkMlMEElMjAlMjAlMjAlMjBudW1faW5mZXJlbmNlX3N0ZXBzJTNENDAlMkMlMEElMjAlMjAlMjAlMjBndWlkYW5jZV9zY2FsZSUzRDQuMCUyQyUwQSUyMCUyMCUyMCUyMG91dHB1dF90eXBlJTNEJTIybnAlMjIlMkMlMEElMjAlMjAlMjAlMjByZXR1cm5fZGljdCUzREZhbHNlJTJDJTBBKSUwQXZpZGVvJTIwJTNEJTIwKHZpZGVvJTIwKiUyMDI1NSkucm91bmQoKS5hc3R5cGUoJTIydWludDglMjIpJTBBdmlkZW8lMjAlM0QlMjB0b3JjaC5mcm9tX251bXB5KHZpZGVvKSUwQSUwQWVuY29kZV92aWRlbyglMEElMjAlMjAlMjAlMjB2aWRlbyU1QjAlNUQlMkMlMEElMjAlMjAlMjAlMjBmcHMlM0RmcmFtZV9yYXRlJTJDJTBBJTIwJTIwJTIwJTIwYXVkaW8lM0RhdWRpbyU1QjAlNUQuZmxvYXQoKS5jcHUoKSUyQyUwQSUyMCUyMCUyMCUyMGF1ZGlvX3NhbXBsZV9yYXRlJTNEcGlwZS52b2NvZGVyLmNvbmZpZy5vdXRwdXRfc2FtcGxpbmdfcmF0ZSUyQyUyMCUyMCUyMyUyMHNob3VsZCUyMGJlJTIwMjQwMDAlMEElMjAlMjAlMjAlMjBvdXRwdXRfcGF0aCUzRCUyMnZpZGVvLm1wNCUyMiUyQyUwQSk=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">import</span> torch
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> LTX2ConditionPipeline
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> diffusers.pipelines.ltx2.export_utils <span class="hljs-keyword">import</span> encode_video
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> diffusers.pipelines.ltx2.pipeline_ltx2_condition <span class="hljs-keyword">import</span> LTX2VideoCondition
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> diffusers.utils <span class="hljs-keyword">import</span> load_image
<span class="hljs-meta">&gt;&gt;&gt; </span>pipe = LTX2ConditionPipeline.from_pretrained(<span class="hljs-string">&quot;Lightricks/LTX-2&quot;</span>, torch_dtype=torch.bfloat16)
<span class="hljs-meta">&gt;&gt;&gt; </span>pipe.enable_model_cpu_offload()
<span class="hljs-meta">&gt;&gt;&gt; </span>first_image = load_image(
<span class="hljs-meta">... </span> <span class="hljs-string">&quot;https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/flf2v_input_first_frame.png&quot;</span>
<span class="hljs-meta">... </span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>last_image = load_image(
<span class="hljs-meta">... </span> <span class="hljs-string">&quot;https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/flf2v_input_last_frame.png&quot;</span>
<span class="hljs-meta">... </span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>first_cond = LTX2VideoCondition(frames=first_image, index=<span class="hljs-number">0</span>, strength=<span class="hljs-number">1.0</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>last_cond = LTX2VideoCondition(frames=last_image, index=-<span class="hljs-number">1</span>, strength=<span class="hljs-number">1.0</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>conditions = [first_cond, last_cond]
<span class="hljs-meta">&gt;&gt;&gt; </span>prompt = <span class="hljs-string">&quot;CG animation style, a small blue bird takes off from the ground, flapping its wings.&quot;</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>negative_prompt = <span class="hljs-string">&quot;worst quality, inconsistent motion, blurry, jittery, distorted, static&quot;</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>frame_rate = <span class="hljs-number">24.0</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>video = pipe(
<span class="hljs-meta">... </span> conditions=conditions,
<span class="hljs-meta">... </span> prompt=prompt,
<span class="hljs-meta">... </span> negative_prompt=negative_prompt,
<span class="hljs-meta">... </span> width=<span class="hljs-number">768</span>,
<span class="hljs-meta">... </span> height=<span class="hljs-number">512</span>,
<span class="hljs-meta">... </span> num_frames=<span class="hljs-number">121</span>,
<span class="hljs-meta">... </span> frame_rate=frame_rate,
<span class="hljs-meta">... </span> num_inference_steps=<span class="hljs-number">40</span>,
<span class="hljs-meta">... </span> guidance_scale=<span class="hljs-number">4.0</span>,
<span class="hljs-meta">... </span> output_type=<span class="hljs-string">&quot;np&quot;</span>,
<span class="hljs-meta">... </span> return_dict=<span class="hljs-literal">False</span>,
<span class="hljs-meta">... </span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>video = (video * <span class="hljs-number">255</span>).<span class="hljs-built_in">round</span>().astype(<span class="hljs-string">&quot;uint8&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>video = torch.from_numpy(video)
<span class="hljs-meta">&gt;&gt;&gt; </span>encode_video(
<span class="hljs-meta">... </span> video[<span class="hljs-number">0</span>],
<span class="hljs-meta">... </span> fps=frame_rate,
<span class="hljs-meta">... </span> audio=audio[<span class="hljs-number">0</span>].<span class="hljs-built_in">float</span>().cpu(),
<span class="hljs-meta">... </span> audio_sample_rate=pipe.vocoder.config.output_sampling_rate, <span class="hljs-comment"># should be 24000</span>
<span class="hljs-meta">... </span> output_path=<span class="hljs-string">&quot;video.mp4&quot;</span>,
<span class="hljs-meta">... </span>)`,wrap:!1}}),{c(){p=r("p"),p.textContent=I,y=s(),c(_.$$.fragment)},l(o){p=d(o,"P",{"data-svelte-h":!0}),f(p)!=="svelte-kvfsh7"&&(p.textContent=I),y=a(o),m(_.$$.fragment,o)},m(o,J){i(o,p,J),i(o,y,J),u(_,o,J),T=!0},p:Ot,i(o){T||(h(_.$$.fragment,o),T=!0)},o(o){M(_.$$.fragment,o),T=!1},d(o){o&&(t(p),t(y)),g(_,o)}}}function vs(V){let p,I="Examples:",y,_,T;return _=new ee({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwTFRYMkltYWdlVG9WaWRlb1BpcGVsaW5lJTJDJTIwTFRYMkxhdGVudFVwc2FtcGxlUGlwZWxpbmUlMEFmcm9tJTIwZGlmZnVzZXJzLnBpcGVsaW5lcy5sdHgyLmV4cG9ydF91dGlscyUyMGltcG9ydCUyMGVuY29kZV92aWRlbyUwQWZyb20lMjBkaWZmdXNlcnMucGlwZWxpbmVzLmx0eDIubGF0ZW50X3Vwc2FtcGxlciUyMGltcG9ydCUyMExUWDJMYXRlbnRVcHNhbXBsZXJNb2RlbCUwQWZyb20lMjBkaWZmdXNlcnMudXRpbHMlMjBpbXBvcnQlMjBsb2FkX2ltYWdlJTBBJTBBcGlwZSUyMCUzRCUyMExUWDJJbWFnZVRvVmlkZW9QaXBlbGluZS5mcm9tX3ByZXRyYWluZWQoJTIyTGlnaHRyaWNrcyUyRkxUWC0yJTIyJTJDJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5iZmxvYXQxNiklMEFwaXBlLmVuYWJsZV9tb2RlbF9jcHVfb2ZmbG9hZCgpJTBBJTBBaW1hZ2UlMjAlM0QlMjBsb2FkX2ltYWdlKCUwQSUyMCUyMCUyMCUyMCUyMmh0dHBzJTNBJTJGJTJGaHVnZ2luZ2ZhY2UuY28lMkZkYXRhc2V0cyUyRmEtci1yLW8tdyUyRnRpbnktbWVtZS1kYXRhc2V0LWNhcHRpb25lZCUyRnJlc29sdmUlMkZtYWluJTJGaW1hZ2VzJTJGOC5wbmclMjIlMEEpJTBBcHJvbXB0JTIwJTNEJTIwJTIyQSUyMHlvdW5nJTIwZ2lybCUyMHN0YW5kcyUyMGNhbG1seSUyMGluJTIwdGhlJTIwZm9yZWdyb3VuZCUyQyUyMGxvb2tpbmclMjBkaXJlY3RseSUyMGF0JTIwdGhlJTIwY2FtZXJhJTJDJTIwYXMlMjBhJTIwaG91c2UlMjBmaXJlJTIwcmFnZXMlMjBpbiUyMHRoZSUyMGJhY2tncm91bmQuJTIyJTBBbmVnYXRpdmVfcHJvbXB0JTIwJTNEJTIwJTIyd29yc3QlMjBxdWFsaXR5JTJDJTIwaW5jb25zaXN0ZW50JTIwbW90aW9uJTJDJTIwYmx1cnJ5JTJDJTIwaml0dGVyeSUyQyUyMGRpc3RvcnRlZCUyMiUwQSUwQWZyYW1lX3JhdGUlMjAlM0QlMjAyNC4wJTBBdmlkZW8lMkMlMjBhdWRpbyUyMCUzRCUyMHBpcGUoJTBBJTIwJTIwJTIwJTIwaW1hZ2UlM0RpbWFnZSUyQyUwQSUyMCUyMCUyMCUyMHByb21wdCUzRHByb21wdCUyQyUwQSUyMCUyMCUyMCUyMG5lZ2F0aXZlX3Byb21wdCUzRG5lZ2F0aXZlX3Byb21wdCUyQyUwQSUyMCUyMCUyMCUyMHdpZHRoJTNENzY4JTJDJTBBJTIwJTIwJTIwJTIwaGVpZ2h0JTNENTEyJTJDJTBBJTIwJTIwJTIwJTIwbnVtX2ZyYW1lcyUzRDEyMSUyQyUwQSUyMCUyMCUyMCUyMGZyYW1lX3JhdGUlM0RmcmFtZV9yYXRlJTJDJTBBJTIwJTIwJTIwJTIwbnVtX2luZmVyZW5jZV9zdGVwcyUzRDQwJTJDJTBBJTIwJTIwJTIwJTIwZ3VpZGFuY2Vfc2NhbGUlM0Q0LjAlMkMlMEElMjAlMjAlMjAlMjBvdXRwdXRfdHlwZSUzRCUyMnBpbCUyMiUyQyUwQSUyMCUyMCUyMCUyMHJldHVybl9kaWN0JTNERmFsc2UlMkMlMEEpJTBBJTBBbGF0ZW50X3Vwc2FtcGxlciUyMCUzRCUyMExUWDJMYXRlbnRVcHNhbXBsZXJNb2RlbC5mcm9tX3ByZXRyYWluZWQoJTBBJTIwJTIwJTIwJTIwJTIyTGlnaHRyaWNrcyUyRkxUWC0yJTIyJTJDJTIwc3ViZm9sZGVyJTNEJTIybGF0ZW50X3Vwc2FtcGxlciUyMiUyQyUyMHRvcmNoX2R0eXBlJTNEdG9yY2guYmZsb2F0MTYlMEEpJTBBdXBzYW1wbGVfcGlwZSUyMCUzRCUyMExUWDJMYXRlbnRVcHNhbXBsZVBpcGVsaW5lKHZhZSUzRHBpcGUudmFlJTJDJTIwbGF0ZW50X3Vwc2FtcGxlciUzRGxhdGVudF91cHNhbXBsZXIpJTBBdXBzYW1wbGVfcGlwZS52YWUuZW5hYmxlX3RpbGluZygpJTBBdXBzYW1wbGVfcGlwZS50byhkZXZpY2UlM0QlMjJjdWRhJTIyJTJDJTIwZHR5cGUlM0R0b3JjaC5iZmxvYXQxNiklMEElMEF2aWRlbyUyMCUzRCUyMHVwc2FtcGxlX3BpcGUoJTBBJTIwJTIwJTIwJTIwdmlkZW8lM0R2aWRlbyUyQyUwQSUyMCUyMCUyMCUyMHdpZHRoJTNENzY4JTJDJTBBJTIwJTIwJTIwJTIwaGVpZ2h0JTNENTEyJTJDJTBBJTIwJTIwJTIwJTIwb3V0cHV0X3R5cGUlM0QlMjJucCUyMiUyQyUwQSUyMCUyMCUyMCUyMHJldHVybl9kaWN0JTNERmFsc2UlMkMlMEEpJTVCMCU1RCUwQSUwQWVuY29kZV92aWRlbyglMEElMjAlMjAlMjAlMjB2aWRlbyU1QjAlNUQlMkMlMEElMjAlMjAlMjAlMjBmcHMlM0RmcmFtZV9yYXRlJTJDJTBBJTIwJTIwJTIwJTIwYXVkaW8lM0RhdWRpbyU1QjAlNUQuZmxvYXQoKS5jcHUoKSUyQyUwQSUyMCUyMCUyMCUyMGF1ZGlvX3NhbXBsZV9yYXRlJTNEcGlwZS52b2NvZGVyLmNvbmZpZy5vdXRwdXRfc2FtcGxpbmdfcmF0ZSUyQyUyMCUyMCUyMyUyMHNob3VsZCUyMGJlJTIwMjQwMDAlMEElMjAlMjAlMjAlMjBvdXRwdXRfcGF0aCUzRCUyMnZpZGVvLm1wNCUyMiUyQyUwQSk=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">import</span> torch
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> LTX2ImageToVideoPipeline, LTX2LatentUpsamplePipeline
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> diffusers.pipelines.ltx2.export_utils <span class="hljs-keyword">import</span> encode_video
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> diffusers.pipelines.ltx2.latent_upsampler <span class="hljs-keyword">import</span> LTX2LatentUpsamplerModel
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> diffusers.utils <span class="hljs-keyword">import</span> load_image
<span class="hljs-meta">&gt;&gt;&gt; </span>pipe = LTX2ImageToVideoPipeline.from_pretrained(<span class="hljs-string">&quot;Lightricks/LTX-2&quot;</span>, torch_dtype=torch.bfloat16)
<span class="hljs-meta">&gt;&gt;&gt; </span>pipe.enable_model_cpu_offload()
<span class="hljs-meta">&gt;&gt;&gt; </span>image = load_image(
<span class="hljs-meta">... </span> <span class="hljs-string">&quot;https://huggingface.co/datasets/a-r-r-o-w/tiny-meme-dataset-captioned/resolve/main/images/8.png&quot;</span>
<span class="hljs-meta">... </span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>prompt = <span class="hljs-string">&quot;A young girl stands calmly in the foreground, looking directly at the camera, as a house fire rages in the background.&quot;</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>negative_prompt = <span class="hljs-string">&quot;worst quality, inconsistent motion, blurry, jittery, distorted&quot;</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>frame_rate = <span class="hljs-number">24.0</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>video, audio = pipe(
<span class="hljs-meta">... </span> image=image,
<span class="hljs-meta">... </span> prompt=prompt,
<span class="hljs-meta">... </span> negative_prompt=negative_prompt,
<span class="hljs-meta">... </span> width=<span class="hljs-number">768</span>,
<span class="hljs-meta">... </span> height=<span class="hljs-number">512</span>,
<span class="hljs-meta">... </span> num_frames=<span class="hljs-number">121</span>,
<span class="hljs-meta">... </span> frame_rate=frame_rate,
<span class="hljs-meta">... </span> num_inference_steps=<span class="hljs-number">40</span>,
<span class="hljs-meta">... </span> guidance_scale=<span class="hljs-number">4.0</span>,
<span class="hljs-meta">... </span> output_type=<span class="hljs-string">&quot;pil&quot;</span>,
<span class="hljs-meta">... </span> return_dict=<span class="hljs-literal">False</span>,
<span class="hljs-meta">... </span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>latent_upsampler = LTX2LatentUpsamplerModel.from_pretrained(
<span class="hljs-meta">... </span> <span class="hljs-string">&quot;Lightricks/LTX-2&quot;</span>, subfolder=<span class="hljs-string">&quot;latent_upsampler&quot;</span>, torch_dtype=torch.bfloat16
<span class="hljs-meta">... </span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>upsample_pipe = LTX2LatentUpsamplePipeline(vae=pipe.vae, latent_upsampler=latent_upsampler)
<span class="hljs-meta">&gt;&gt;&gt; </span>upsample_pipe.vae.enable_tiling()
<span class="hljs-meta">&gt;&gt;&gt; </span>upsample_pipe.to(device=<span class="hljs-string">&quot;cuda&quot;</span>, dtype=torch.bfloat16)
<span class="hljs-meta">&gt;&gt;&gt; </span>video = upsample_pipe(
<span class="hljs-meta">... </span> video=video,
<span class="hljs-meta">... </span> width=<span class="hljs-number">768</span>,
<span class="hljs-meta">... </span> height=<span class="hljs-number">512</span>,
<span class="hljs-meta">... </span> output_type=<span class="hljs-string">&quot;np&quot;</span>,
<span class="hljs-meta">... </span> return_dict=<span class="hljs-literal">False</span>,
<span class="hljs-meta">... </span>)[<span class="hljs-number">0</span>]
<span class="hljs-meta">&gt;&gt;&gt; </span>encode_video(
<span class="hljs-meta">... </span> video[<span class="hljs-number">0</span>],
<span class="hljs-meta">... </span> fps=frame_rate,
<span class="hljs-meta">... </span> audio=audio[<span class="hljs-number">0</span>].<span class="hljs-built_in">float</span>().cpu(),
<span class="hljs-meta">... </span> audio_sample_rate=pipe.vocoder.config.output_sampling_rate, <span class="hljs-comment"># should be 24000</span>
<span class="hljs-meta">... </span> output_path=<span class="hljs-string">&quot;video.mp4&quot;</span>,
<span class="hljs-meta">... </span>)`,wrap:!1}}),{c(){p=r("p"),p.textContent=I,y=s(),c(_.$$.fragment)},l(o){p=d(o,"P",{"data-svelte-h":!0}),f(p)!=="svelte-kvfsh7"&&(p.textContent=I),y=a(o),m(_.$$.fragment,o)},m(o,J){i(o,p,J),i(o,y,J),u(_,o,J),T=!0},p:Ot,i(o){T||(h(_.$$.fragment,o),T=!0)},o(o){M(_.$$.fragment,o),T=!1},d(o){o&&(t(p),t(y)),g(_,o)}}}function Is(V){let p,I,y,_,T,o,J,Ln='<img alt="LoRA" src="https://img.shields.io/badge/LoRA-d8b4fe?style=flat"/>',Mt,te,En="LTX-2 is a DiT-based audio-video foundation model designed to generate synchronized video and audio within a single model. It brings together the core building blocks of modern video generation, with open weights and a focus on practical, local execution.",gt,ne,Fn='You can find all the original LTX-Video checkpoints under the <a href="https://huggingface.co/Lightricks" rel="nofollow">Lightricks</a> organization.',ft,se,Qn='The original codebase for LTX-2 can be found <a href="https://github.com/Lightricks/LTX-2" rel="nofollow">here</a>.',_t,ae,Tt,le,Yn="Recommended pipeline to achieve production quality generation, this pipeline is composed of two stages:",yt,oe,zn="<li>Stage 1: Generate a video at the target resolution using diffusion sampling with classifier-free guidance (CFG). This stage produces a coherent low-noise video sequence that respects the text/image conditioning.</li> <li>Stage 2: Upsample the Stage 1 output by 2 and refine details using a distilled LoRA model to improve fidelity and visual quality. Stage 2 may apply lighter CFG to preserve the structure from Stage 1 while enhancing texture and sharpness.</li>",Jt,ie,Sn="Sample usage of text-to-video two stages pipeline",wt,re,bt,de,Ut,pe,Hn="Fastest two-stages generation pipeline using a distilled checkpoint.",jt,ce,Zt,me,vt,ue,An="You can use <code>LTX2ConditionPipeline</code> to specify image and/or video conditions at arbitrary latent indices. For example, we can specify both a first-frame and last-frame condition to perform first-last-frame-to-video (FLF2V) generation:",It,he,Xt,Me,$n="You can use both image and video conditions:",Gt,ge,Bt,fe,Pn="Because the conditioning is done via latent frames, the 8 data space frames corresponding to the specified latent frame for an image condition will tend to be static.",Wt,_e,Vt,X,Te,en,Qe,Dn="Pipeline for text-to-video generation.",tn,Ye,qn='Reference: <a href="https://github.com/Lightricks/LTX-Video" rel="nofollow">https://github.com/Lightricks/LTX-Video</a>',nn,C,ye,sn,ze,Kn="Function invoked when calling the pipeline for generation.",an,Q,ln,Y,Je,on,Se,On="Encodes the prompt into text encoder hidden states.",Ct,we,xt,Z,be,rn,He,es="Pipeline for image-to-video generation.",dn,Ae,ts='Reference: <a href="https://github.com/Lightricks/LTX-Video" rel="nofollow">https://github.com/Lightricks/LTX-Video</a>',pn,$e,ns="TODO",cn,x,Ue,mn,Pe,ss="Function invoked when calling the pipeline for generation.",un,z,hn,S,je,Mn,De,as="Encodes the prompt into text encoder hidden states.",kt,Ze,Rt,w,ve,gn,qe,ls="Pipeline for video generation which allows image conditions to be inserted at arbitary parts of the video.",fn,Ke,os='Reference: <a href="https://github.com/Lightricks/LTX-Video" rel="nofollow">https://github.com/Lightricks/LTX-Video</a>',_n,Oe,is="TODO",Tn,k,Ie,yn,et,rs="Function invoked when calling the pipeline for generation.",Jn,H,wn,A,Xe,bn,tt,ds="Applies visual conditioning frames to an initial latent.",Un,$,Ge,jn,nt,ps="Encodes the prompt into text encoder hidden states.",Zn,P,Be,vn,st,cs="Preprocesses the condition images/videos to torch tensors.",In,D,We,Xn,at,ms="Trim a conditioning sequence to the allowed number of frames.",Nt,Ve,Lt,B,Ce,Gn,R,xe,Bn,lt,us="Function invoked when calling the pipeline for generation.",Wn,q,Vn,K,ke,Cn,ot,hs=`Applies Adaptive Instance Normalization (AdaIN) to a latent tensor based on statistics from a reference latent
tensor.`,xn,N,Re,kn,it,Ms=`Applies a non-linear tone-mapping function to latent values to reduce their dynamic range in a perceptually
smooth way using a sigmoid-based compression.`,Rn,rt,gs=`This is useful for regularizing high-variance latents or for conditioning outputs during generation, especially
when controlling dynamic behavior with a <code>compression</code> factor.`,Et,Ne,Ft,L,Le,Nn,dt,fs="Output class for LTX pipelines.",Qt,Ee,Yt,ht,zt;return T=new F({props:{title:"LTX-2",local:"ltx-2",headingTag:"h1"}}),ae=new F({props:{title:"Two-stages Generation",local:"two-stages-generation",headingTag:"h2"}}),re=new ee({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwRmxvd01hdGNoRXVsZXJEaXNjcmV0ZVNjaGVkdWxlciUwQWZyb20lMjBkaWZmdXNlcnMucGlwZWxpbmVzLmx0eDIlMjBpbXBvcnQlMjBMVFgyUGlwZWxpbmUlMkMlMjBMVFgyTGF0ZW50VXBzYW1wbGVQaXBlbGluZSUwQWZyb20lMjBkaWZmdXNlcnMucGlwZWxpbmVzLmx0eDIubGF0ZW50X3Vwc2FtcGxlciUyMGltcG9ydCUyMExUWDJMYXRlbnRVcHNhbXBsZXJNb2RlbCUwQWZyb20lMjBkaWZmdXNlcnMucGlwZWxpbmVzLmx0eDIudXRpbHMlMjBpbXBvcnQlMjBTVEFHRV8yX0RJU1RJTExFRF9TSUdNQV9WQUxVRVMlMEFmcm9tJTIwZGlmZnVzZXJzLnBpcGVsaW5lcy5sdHgyLmV4cG9ydF91dGlscyUyMGltcG9ydCUyMGVuY29kZV92aWRlbyUwQSUwQWRldmljZSUyMCUzRCUyMCUyMmN1ZGElM0EwJTIyJTBBd2lkdGglMjAlM0QlMjA3NjglMEFoZWlnaHQlMjAlM0QlMjA1MTIlMEElMEFwaXBlJTIwJTNEJTIwTFRYMlBpcGVsaW5lLmZyb21fcHJldHJhaW5lZCglMEElMjAlMjAlMjAlMjAlMjJMaWdodHJpY2tzJTJGTFRYLTIlMjIlMkMlMjB0b3JjaF9kdHlwZSUzRHRvcmNoLmJmbG9hdDE2JTBBKSUwQXBpcGUuZW5hYmxlX3NlcXVlbnRpYWxfY3B1X29mZmxvYWQoZGV2aWNlJTNEZGV2aWNlKSUwQSUwQXByb21wdCUyMCUzRCUyMCUyMkElMjBiZWF1dGlmdWwlMjBzdW5zZXQlMjBvdmVyJTIwdGhlJTIwb2NlYW4lMjIlMEFuZWdhdGl2ZV9wcm9tcHQlMjAlM0QlMjAlMjJzaGFreSUyQyUyMGdsaXRjaHklMkMlMjBsb3clMjBxdWFsaXR5JTJDJTIwd29yc3QlMjBxdWFsaXR5JTJDJTIwZGVmb3JtZWQlMkMlMjBkaXN0b3J0ZWQlMkMlMjBkaXNmaWd1cmVkJTJDJTIwbW90aW9uJTIwc21lYXIlMkMlMjBtb3Rpb24lMjBhcnRpZmFjdHMlMkMlMjBmdXNlZCUyMGZpbmdlcnMlMkMlMjBiYWQlMjBhbmF0b215JTJDJTIwd2VpcmQlMjBoYW5kJTJDJTIwdWdseSUyQyUyMHRyYW5zaXRpb24lMkMlMjBzdGF0aWMuJTIyJTBBJTBBJTIzJTIwU3RhZ2UlMjAxJTIwZGVmYXVsdCUyMChub24tZGlzdGlsbGVkKSUyMGluZmVyZW5jZSUwQWZyYW1lX3JhdGUlMjAlM0QlMjAyNC4wJTBBdmlkZW9fbGF0ZW50JTJDJTIwYXVkaW9fbGF0ZW50JTIwJTNEJTIwcGlwZSglMEElMjAlMjAlMjAlMjBwcm9tcHQlM0Rwcm9tcHQlMkMlMEElMjAlMjAlMjAlMjBuZWdhdGl2ZV9wcm9tcHQlM0RuZWdhdGl2ZV9wcm9tcHQlMkMlMEElMjAlMjAlMjAlMjB3aWR0aCUzRHdpZHRoJTJDJTBBJTIwJTIwJTIwJTIwaGVpZ2h0JTNEaGVpZ2h0JTJDJTBBJTIwJTIwJTIwJTIwbnVtX2ZyYW1lcyUzRDEyMSUyQyUwQSUyMCUyMCUyMCUyMGZyYW1lX3JhdGUlM0RmcmFtZV9yYXRlJTJDJTBBJTIwJTIwJTIwJTIwbnVtX2luZmVyZW5jZV9zdGVwcyUzRDQwJTJDJTBBJTIwJTIwJTIwJTIwc2lnbWFzJTNETm9uZSUyQyUwQSUyMCUyMCUyMCUyMGd1aWRhbmNlX3NjYWxlJTNENC4wJTJDJTBBJTIwJTIwJTIwJTIwb3V0cHV0X3R5cGUlM0QlMjJsYXRlbnQlMjIlMkMlMEElMjAlMjAlMjAlMjByZXR1cm5fZGljdCUzREZhbHNlJTJDJTBBKSUwQSUwQWxhdGVudF91cHNhbXBsZXIlMjAlM0QlMjBMVFgyTGF0ZW50VXBzYW1wbGVyTW9kZWwuZnJvbV9wcmV0cmFpbmVkKCUwQSUyMCUyMCUyMCUyMCUyMkxpZ2h0cmlja3MlMkZMVFgtMiUyMiUyQyUwQSUyMCUyMCUyMCUyMHN1YmZvbGRlciUzRCUyMmxhdGVudF91cHNhbXBsZXIlMjIlMkMlMEElMjAlMjAlMjAlMjB0b3JjaF9kdHlwZSUzRHRvcmNoLmJmbG9hdDE2JTJDJTBBKSUwQXVwc2FtcGxlX3BpcGUlMjAlM0QlMjBMVFgyTGF0ZW50VXBzYW1wbGVQaXBlbGluZSh2YWUlM0RwaXBlLnZhZSUyQyUyMGxhdGVudF91cHNhbXBsZXIlM0RsYXRlbnRfdXBzYW1wbGVyKSUwQXVwc2FtcGxlX3BpcGUuZW5hYmxlX21vZGVsX2NwdV9vZmZsb2FkKGRldmljZSUzRGRldmljZSklMEF1cHNjYWxlZF92aWRlb19sYXRlbnQlMjAlM0QlMjB1cHNhbXBsZV9waXBlKCUwQSUyMCUyMCUyMCUyMGxhdGVudHMlM0R2aWRlb19sYXRlbnQlMkMlMEElMjAlMjAlMjAlMjBvdXRwdXRfdHlwZSUzRCUyMmxhdGVudCUyMiUyQyUwQSUyMCUyMCUyMCUyMHJldHVybl9kaWN0JTNERmFsc2UlMkMlMEEpJTVCMCU1RCUwQSUwQSUyMyUyMExvYWQlMjBTdGFnZSUyMDIlMjBkaXN0aWxsZWQlMjBMb1JBJTBBcGlwZS5sb2FkX2xvcmFfd2VpZ2h0cyglMEElMjAlMjAlMjAlMjAlMjJMaWdodHJpY2tzJTJGTFRYLTIlMjIlMkMlMjBhZGFwdGVyX25hbWUlM0QlMjJzdGFnZV8yX2Rpc3RpbGxlZCUyMiUyQyUyMHdlaWdodF9uYW1lJTNEJTIybHR4LTItMTliLWRpc3RpbGxlZC1sb3JhLTM4NC5zYWZldGVuc29ycyUyMiUwQSklMEFwaXBlLnNldF9hZGFwdGVycyglMjJzdGFnZV8yX2Rpc3RpbGxlZCUyMiUyQyUyMDEuMCklMEElMjMlMjBWQUUlMjB0aWxpbmclMjBpcyUyMHVzdWFsbHklMjBuZWNlc3NhcnklMjB0byUyMGF2b2lkJTIwT09NJTIwZXJyb3IlMjB3aGVuJTIwVkFFJTIwZGVjb2RpbmclMEFwaXBlLnZhZS5lbmFibGVfdGlsaW5nKCklMEElMjMlMjBDaGFuZ2UlMjBzY2hlZHVsZXIlMjB0byUyMHVzZSUyMFN0YWdlJTIwMiUyMGRpc3RpbGxlZCUyMHNpZ21hcyUyMGFzJTIwaXMlMEFuZXdfc2NoZWR1bGVyJTIwJTNEJTIwRmxvd01hdGNoRXVsZXJEaXNjcmV0ZVNjaGVkdWxlci5mcm9tX2NvbmZpZyglMEElMjAlMjAlMjAlMjBwaXBlLnNjaGVkdWxlci5jb25maWclMkMlMjB1c2VfZHluYW1pY19zaGlmdGluZyUzREZhbHNlJTJDJTIwc2hpZnRfdGVybWluYWwlM0ROb25lJTBBKSUwQXBpcGUuc2NoZWR1bGVyJTIwJTNEJTIwbmV3X3NjaGVkdWxlciUwQSUyMyUyMFN0YWdlJTIwMiUyMGluZmVyZW5jZSUyMHdpdGglMjBkaXN0aWxsZWQlMjBMb1JBJTIwYW5kJTIwc2lnbWFzJTBBdmlkZW8lMkMlMjBhdWRpbyUyMCUzRCUyMHBpcGUoJTBBJTIwJTIwJTIwJTIwbGF0ZW50cyUzRHVwc2NhbGVkX3ZpZGVvX2xhdGVudCUyQyUwQSUyMCUyMCUyMCUyMGF1ZGlvX2xhdGVudHMlM0RhdWRpb19sYXRlbnQlMkMlMEElMjAlMjAlMjAlMjBwcm9tcHQlM0Rwcm9tcHQlMkMlMEElMjAlMjAlMjAlMjBuZWdhdGl2ZV9wcm9tcHQlM0RuZWdhdGl2ZV9wcm9tcHQlMkMlMEElMjAlMjAlMjAlMjBudW1faW5mZXJlbmNlX3N0ZXBzJTNEMyUyQyUwQSUyMCUyMCUyMCUyMG5vaXNlX3NjYWxlJTNEU1RBR0VfMl9ESVNUSUxMRURfU0lHTUFfVkFMVUVTJTVCMCU1RCUyQyUyMCUyMyUyMHJlbm9pc2UlMjB3aXRoJTIwZmlyc3QlMjBzaWdtYSUyMHZhbHVlJTIwaHR0cHMlM0ElMkYlMkZnaXRodWIuY29tJTJGTGlnaHRyaWNrcyUyRkxUWC0yJTJGYmxvYiUyRm1haW4lMkZwYWNrYWdlcyUyRmx0eC1waXBlbGluZXMlMkZzcmMlMkZsdHhfcGlwZWxpbmVzJTJGdGkydmlkX3R3b19zdGFnZXMucHklMjNMMjE4JTBBJTIwJTIwJTIwJTIwc2lnbWFzJTNEU1RBR0VfMl9ESVNUSUxMRURfU0lHTUFfVkFMVUVTJTJDJTBBJTIwJTIwJTIwJTIwZ3VpZGFuY2Vfc2NhbGUlM0QxLjAlMkMlMEElMjAlMjAlMjAlMjBvdXRwdXRfdHlwZSUzRCUyMm5wJTIyJTJDJTBBJTIwJTIwJTIwJTIwcmV0dXJuX2RpY3QlM0RGYWxzZSUyQyUwQSklMEElMEFlbmNvZGVfdmlkZW8oJTBBJTIwJTIwJTIwJTIwdmlkZW8lNUIwJTVEJTJDJTBBJTIwJTIwJTIwJTIwZnBzJTNEZnJhbWVfcmF0ZSUyQyUwQSUyMCUyMCUyMCUyMGF1ZGlvJTNEYXVkaW8lNUIwJTVELmZsb2F0KCkuY3B1KCklMkMlMEElMjAlMjAlMjAlMjBhdWRpb19zYW1wbGVfcmF0ZSUzRHBpcGUudm9jb2Rlci5jb25maWcub3V0cHV0X3NhbXBsaW5nX3JhdGUlMkMlMEElMjAlMjAlMjAlMjBvdXRwdXRfcGF0aCUzRCUyMmx0eDJfbG9yYV9kaXN0aWxsZWRfc2FtcGxlLm1wNCUyMiUyQyUwQSk=",highlighted:`<span class="hljs-keyword">import</span> torch
<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> FlowMatchEulerDiscreteScheduler
<span class="hljs-keyword">from</span> diffusers.pipelines.ltx2 <span class="hljs-keyword">import</span> LTX2Pipeline, LTX2LatentUpsamplePipeline
<span class="hljs-keyword">from</span> diffusers.pipelines.ltx2.latent_upsampler <span class="hljs-keyword">import</span> LTX2LatentUpsamplerModel
<span class="hljs-keyword">from</span> diffusers.pipelines.ltx2.utils <span class="hljs-keyword">import</span> STAGE_2_DISTILLED_SIGMA_VALUES
<span class="hljs-keyword">from</span> diffusers.pipelines.ltx2.export_utils <span class="hljs-keyword">import</span> encode_video
device = <span class="hljs-string">&quot;cuda:0&quot;</span>
width = <span class="hljs-number">768</span>
height = <span class="hljs-number">512</span>
pipe = LTX2Pipeline.from_pretrained(
<span class="hljs-string">&quot;Lightricks/LTX-2&quot;</span>, torch_dtype=torch.bfloat16
)
pipe.enable_sequential_cpu_offload(device=device)
prompt = <span class="hljs-string">&quot;A beautiful sunset over the ocean&quot;</span>
negative_prompt = <span class="hljs-string">&quot;shaky, glitchy, low quality, worst quality, deformed, distorted, disfigured, motion smear, motion artifacts, fused fingers, bad anatomy, weird hand, ugly, transition, static.&quot;</span>
<span class="hljs-comment"># Stage 1 default (non-distilled) inference</span>
frame_rate = <span class="hljs-number">24.0</span>
video_latent, audio_latent = pipe(
prompt=prompt,
negative_prompt=negative_prompt,
width=width,
height=height,
num_frames=<span class="hljs-number">121</span>,
frame_rate=frame_rate,
num_inference_steps=<span class="hljs-number">40</span>,
sigmas=<span class="hljs-literal">None</span>,
guidance_scale=<span class="hljs-number">4.0</span>,
output_type=<span class="hljs-string">&quot;latent&quot;</span>,
return_dict=<span class="hljs-literal">False</span>,
)
latent_upsampler = LTX2LatentUpsamplerModel.from_pretrained(
<span class="hljs-string">&quot;Lightricks/LTX-2&quot;</span>,
subfolder=<span class="hljs-string">&quot;latent_upsampler&quot;</span>,
torch_dtype=torch.bfloat16,
)
upsample_pipe = LTX2LatentUpsamplePipeline(vae=pipe.vae, latent_upsampler=latent_upsampler)
upsample_pipe.enable_model_cpu_offload(device=device)
upscaled_video_latent = upsample_pipe(
latents=video_latent,
output_type=<span class="hljs-string">&quot;latent&quot;</span>,
return_dict=<span class="hljs-literal">False</span>,
)[<span class="hljs-number">0</span>]
<span class="hljs-comment"># Load Stage 2 distilled LoRA</span>
pipe.load_lora_weights(
<span class="hljs-string">&quot;Lightricks/LTX-2&quot;</span>, adapter_name=<span class="hljs-string">&quot;stage_2_distilled&quot;</span>, weight_name=<span class="hljs-string">&quot;ltx-2-19b-distilled-lora-384.safetensors&quot;</span>
)
pipe.set_adapters(<span class="hljs-string">&quot;stage_2_distilled&quot;</span>, <span class="hljs-number">1.0</span>)
<span class="hljs-comment"># VAE tiling is usually necessary to avoid OOM error when VAE decoding</span>
pipe.vae.enable_tiling()
<span class="hljs-comment"># Change scheduler to use Stage 2 distilled sigmas as is</span>
new_scheduler = FlowMatchEulerDiscreteScheduler.from_config(
pipe.scheduler.config, use_dynamic_shifting=<span class="hljs-literal">False</span>, shift_terminal=<span class="hljs-literal">None</span>
)
pipe.scheduler = new_scheduler
<span class="hljs-comment"># Stage 2 inference with distilled LoRA and sigmas</span>
video, audio = pipe(
latents=upscaled_video_latent,
audio_latents=audio_latent,
prompt=prompt,
negative_prompt=negative_prompt,
num_inference_steps=<span class="hljs-number">3</span>,
noise_scale=STAGE_2_DISTILLED_SIGMA_VALUES[<span class="hljs-number">0</span>], <span class="hljs-comment"># renoise with first sigma value https://github.com/Lightricks/LTX-2/blob/main/packages/ltx-pipelines/src/ltx_pipelines/ti2vid_two_stages.py#L218</span>
sigmas=STAGE_2_DISTILLED_SIGMA_VALUES,
guidance_scale=<span class="hljs-number">1.0</span>,
output_type=<span class="hljs-string">&quot;np&quot;</span>,
return_dict=<span class="hljs-literal">False</span>,
)
encode_video(
video[<span class="hljs-number">0</span>],
fps=frame_rate,
audio=audio[<span class="hljs-number">0</span>].<span class="hljs-built_in">float</span>().cpu(),
audio_sample_rate=pipe.vocoder.config.output_sampling_rate,
output_path=<span class="hljs-string">&quot;ltx2_lora_distilled_sample.mp4&quot;</span>,
)`,wrap:!1}}),de=new F({props:{title:"Distilled checkpoint generation",local:"distilled-checkpoint-generation",headingTag:"h2"}}),ce=new ee({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzLnBpcGVsaW5lcy5sdHgyJTIwaW1wb3J0JTIwTFRYMlBpcGVsaW5lJTJDJTIwTFRYMkxhdGVudFVwc2FtcGxlUGlwZWxpbmUlMEFmcm9tJTIwZGlmZnVzZXJzLnBpcGVsaW5lcy5sdHgyLmxhdGVudF91cHNhbXBsZXIlMjBpbXBvcnQlMjBMVFgyTGF0ZW50VXBzYW1wbGVyTW9kZWwlMEFmcm9tJTIwZGlmZnVzZXJzLnBpcGVsaW5lcy5sdHgyLnV0aWxzJTIwaW1wb3J0JTIwRElTVElMTEVEX1NJR01BX1ZBTFVFUyUyQyUyMFNUQUdFXzJfRElTVElMTEVEX1NJR01BX1ZBTFVFUyUwQWZyb20lMjBkaWZmdXNlcnMucGlwZWxpbmVzLmx0eDIuZXhwb3J0X3V0aWxzJTIwaW1wb3J0JTIwZW5jb2RlX3ZpZGVvJTBBJTBBZGV2aWNlJTIwJTNEJTIwJTIyY3VkYSUyMiUwQXdpZHRoJTIwJTNEJTIwNzY4JTBBaGVpZ2h0JTIwJTNEJTIwNTEyJTBBcmFuZG9tX3NlZWQlMjAlM0QlMjA0MiUwQWdlbmVyYXRvciUyMCUzRCUyMHRvcmNoLkdlbmVyYXRvcihkZXZpY2UpLm1hbnVhbF9zZWVkKHJhbmRvbV9zZWVkKSUwQW1vZGVsX3BhdGglMjAlM0QlMjAlMjJyb290b25jaGFpciUyRkxUWC0yLTE5Yi1kaXN0aWxsZWQlMjIlMEElMEFwaXBlJTIwJTNEJTIwTFRYMlBpcGVsaW5lLmZyb21fcHJldHJhaW5lZCglMEElMjAlMjAlMjAlMjBtb2RlbF9wYXRoJTJDJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5iZmxvYXQxNiUwQSklMEFwaXBlLmVuYWJsZV9zZXF1ZW50aWFsX2NwdV9vZmZsb2FkKGRldmljZSUzRGRldmljZSklMEElMEFwcm9tcHQlMjAlM0QlMjAlMjJBJTIwYmVhdXRpZnVsJTIwc3Vuc2V0JTIwb3ZlciUyMHRoZSUyMG9jZWFuJTIyJTBBbmVnYXRpdmVfcHJvbXB0JTIwJTNEJTIwJTIyc2hha3klMkMlMjBnbGl0Y2h5JTJDJTIwbG93JTIwcXVhbGl0eSUyQyUyMHdvcnN0JTIwcXVhbGl0eSUyQyUyMGRlZm9ybWVkJTJDJTIwZGlzdG9ydGVkJTJDJTIwZGlzZmlndXJlZCUyQyUyMG1vdGlvbiUyMHNtZWFyJTJDJTIwbW90aW9uJTIwYXJ0aWZhY3RzJTJDJTIwZnVzZWQlMjBmaW5nZXJzJTJDJTIwYmFkJTIwYW5hdG9teSUyQyUyMHdlaXJkJTIwaGFuZCUyQyUyMHVnbHklMkMlMjB0cmFuc2l0aW9uJTJDJTIwc3RhdGljLiUyMiUwQSUwQWZyYW1lX3JhdGUlMjAlM0QlMjAyNC4wJTBBdmlkZW9fbGF0ZW50JTJDJTIwYXVkaW9fbGF0ZW50JTIwJTNEJTIwcGlwZSglMEElMjAlMjAlMjAlMjBwcm9tcHQlM0Rwcm9tcHQlMkMlMEElMjAlMjAlMjAlMjBuZWdhdGl2ZV9wcm9tcHQlM0RuZWdhdGl2ZV9wcm9tcHQlMkMlMEElMjAlMjAlMjAlMjB3aWR0aCUzRHdpZHRoJTJDJTBBJTIwJTIwJTIwJTIwaGVpZ2h0JTNEaGVpZ2h0JTJDJTBBJTIwJTIwJTIwJTIwbnVtX2ZyYW1lcyUzRDEyMSUyQyUwQSUyMCUyMCUyMCUyMGZyYW1lX3JhdGUlM0RmcmFtZV9yYXRlJTJDJTBBJTIwJTIwJTIwJTIwbnVtX2luZmVyZW5jZV9zdGVwcyUzRDglMkMlMEElMjAlMjAlMjAlMjBzaWdtYXMlM0RESVNUSUxMRURfU0lHTUFfVkFMVUVTJTJDJTBBJTIwJTIwJTIwJTIwZ3VpZGFuY2Vfc2NhbGUlM0QxLjAlMkMlMEElMjAlMjAlMjAlMjBnZW5lcmF0b3IlM0RnZW5lcmF0b3IlMkMlMEElMjAlMjAlMjAlMjBvdXRwdXRfdHlwZSUzRCUyMmxhdGVudCUyMiUyQyUwQSUyMCUyMCUyMCUyMHJldHVybl9kaWN0JTNERmFsc2UlMkMlMEEpJTBBJTBBbGF0ZW50X3Vwc2FtcGxlciUyMCUzRCUyMExUWDJMYXRlbnRVcHNhbXBsZXJNb2RlbC5mcm9tX3ByZXRyYWluZWQoJTBBJTIwJTIwJTIwJTIwbW9kZWxfcGF0aCUyQyUwQSUyMCUyMCUyMCUyMHN1YmZvbGRlciUzRCUyMmxhdGVudF91cHNhbXBsZXIlMjIlMkMlMEElMjAlMjAlMjAlMjB0b3JjaF9kdHlwZSUzRHRvcmNoLmJmbG9hdDE2JTJDJTBBKSUwQXVwc2FtcGxlX3BpcGUlMjAlM0QlMjBMVFgyTGF0ZW50VXBzYW1wbGVQaXBlbGluZSh2YWUlM0RwaXBlLnZhZSUyQyUyMGxhdGVudF91cHNhbXBsZXIlM0RsYXRlbnRfdXBzYW1wbGVyKSUwQXVwc2FtcGxlX3BpcGUuZW5hYmxlX21vZGVsX2NwdV9vZmZsb2FkKGRldmljZSUzRGRldmljZSklMEF1cHNjYWxlZF92aWRlb19sYXRlbnQlMjAlM0QlMjB1cHNhbXBsZV9waXBlKCUwQSUyMCUyMCUyMCUyMGxhdGVudHMlM0R2aWRlb19sYXRlbnQlMkMlMEElMjAlMjAlMjAlMjBvdXRwdXRfdHlwZSUzRCUyMmxhdGVudCUyMiUyQyUwQSUyMCUyMCUyMCUyMHJldHVybl9kaWN0JTNERmFsc2UlMkMlMEEpJTVCMCU1RCUwQSUwQXZpZGVvJTJDJTIwYXVkaW8lMjAlM0QlMjBwaXBlKCUwQSUyMCUyMCUyMCUyMGxhdGVudHMlM0R1cHNjYWxlZF92aWRlb19sYXRlbnQlMkMlMEElMjAlMjAlMjAlMjBhdWRpb19sYXRlbnRzJTNEYXVkaW9fbGF0ZW50JTJDJTBBJTIwJTIwJTIwJTIwcHJvbXB0JTNEcHJvbXB0JTJDJTBBJTIwJTIwJTIwJTIwbmVnYXRpdmVfcHJvbXB0JTNEbmVnYXRpdmVfcHJvbXB0JTJDJTBBJTIwJTIwJTIwJTIwbnVtX2luZmVyZW5jZV9zdGVwcyUzRDMlMkMlMEElMjAlMjAlMjAlMjBub2lzZV9zY2FsZSUzRFNUQUdFXzJfRElTVElMTEVEX1NJR01BX1ZBTFVFUyU1QjAlNUQlMkMlMjAlMjMlMjByZW5vaXNlJTIwd2l0aCUyMGZpcnN0JTIwc2lnbWElMjB2YWx1ZSUyMGh0dHBzJTNBJTJGJTJGZ2l0aHViLmNvbSUyRkxpZ2h0cmlja3MlMkZMVFgtMiUyRmJsb2IlMkZtYWluJTJGcGFja2FnZXMlMkZsdHgtcGlwZWxpbmVzJTJGc3JjJTJGbHR4X3BpcGVsaW5lcyUyRmRpc3RpbGxlZC5weSUyM0wxNzglMEElMjAlMjAlMjAlMjBzaWdtYXMlM0RTVEFHRV8yX0RJU1RJTExFRF9TSUdNQV9WQUxVRVMlMkMlMEElMjAlMjAlMjAlMjBnZW5lcmF0b3IlM0RnZW5lcmF0b3IlMkMlMEElMjAlMjAlMjAlMjBndWlkYW5jZV9zY2FsZSUzRDEuMCUyQyUwQSUyMCUyMCUyMCUyMG91dHB1dF90eXBlJTNEJTIybnAlMjIlMkMlMEElMjAlMjAlMjAlMjByZXR1cm5fZGljdCUzREZhbHNlJTJDJTBBKSUwQSUwQWVuY29kZV92aWRlbyglMEElMjAlMjAlMjAlMjB2aWRlbyU1QjAlNUQlMkMlMEElMjAlMjAlMjAlMjBmcHMlM0RmcmFtZV9yYXRlJTJDJTBBJTIwJTIwJTIwJTIwYXVkaW8lM0RhdWRpbyU1QjAlNUQuZmxvYXQoKS5jcHUoKSUyQyUwQSUyMCUyMCUyMCUyMGF1ZGlvX3NhbXBsZV9yYXRlJTNEcGlwZS52b2NvZGVyLmNvbmZpZy5vdXRwdXRfc2FtcGxpbmdfcmF0ZSUyQyUwQSUyMCUyMCUyMCUyMG91dHB1dF9wYXRoJTNEJTIybHR4Ml9kaXN0aWxsZWRfc2FtcGxlLm1wNCUyMiUyQyUwQSk=",highlighted:`<span class="hljs-keyword">import</span> torch
<span class="hljs-keyword">from</span> diffusers.pipelines.ltx2 <span class="hljs-keyword">import</span> LTX2Pipeline, LTX2LatentUpsamplePipeline
<span class="hljs-keyword">from</span> diffusers.pipelines.ltx2.latent_upsampler <span class="hljs-keyword">import</span> LTX2LatentUpsamplerModel
<span class="hljs-keyword">from</span> diffusers.pipelines.ltx2.utils <span class="hljs-keyword">import</span> DISTILLED_SIGMA_VALUES, STAGE_2_DISTILLED_SIGMA_VALUES
<span class="hljs-keyword">from</span> diffusers.pipelines.ltx2.export_utils <span class="hljs-keyword">import</span> encode_video
device = <span class="hljs-string">&quot;cuda&quot;</span>
width = <span class="hljs-number">768</span>
height = <span class="hljs-number">512</span>
random_seed = <span class="hljs-number">42</span>
generator = torch.Generator(device).manual_seed(random_seed)
model_path = <span class="hljs-string">&quot;rootonchair/LTX-2-19b-distilled&quot;</span>
pipe = LTX2Pipeline.from_pretrained(
model_path, torch_dtype=torch.bfloat16
)
pipe.enable_sequential_cpu_offload(device=device)
prompt = <span class="hljs-string">&quot;A beautiful sunset over the ocean&quot;</span>
negative_prompt = <span class="hljs-string">&quot;shaky, glitchy, low quality, worst quality, deformed, distorted, disfigured, motion smear, motion artifacts, fused fingers, bad anatomy, weird hand, ugly, transition, static.&quot;</span>
frame_rate = <span class="hljs-number">24.0</span>
video_latent, audio_latent = pipe(
prompt=prompt,
negative_prompt=negative_prompt,
width=width,
height=height,
num_frames=<span class="hljs-number">121</span>,
frame_rate=frame_rate,
num_inference_steps=<span class="hljs-number">8</span>,
sigmas=DISTILLED_SIGMA_VALUES,
guidance_scale=<span class="hljs-number">1.0</span>,
generator=generator,
output_type=<span class="hljs-string">&quot;latent&quot;</span>,
return_dict=<span class="hljs-literal">False</span>,
)
latent_upsampler = LTX2LatentUpsamplerModel.from_pretrained(
model_path,
subfolder=<span class="hljs-string">&quot;latent_upsampler&quot;</span>,
torch_dtype=torch.bfloat16,
)
upsample_pipe = LTX2LatentUpsamplePipeline(vae=pipe.vae, latent_upsampler=latent_upsampler)
upsample_pipe.enable_model_cpu_offload(device=device)
upscaled_video_latent = upsample_pipe(
latents=video_latent,
output_type=<span class="hljs-string">&quot;latent&quot;</span>,
return_dict=<span class="hljs-literal">False</span>,
)[<span class="hljs-number">0</span>]
video, audio = pipe(
latents=upscaled_video_latent,
audio_latents=audio_latent,
prompt=prompt,
negative_prompt=negative_prompt,
num_inference_steps=<span class="hljs-number">3</span>,
noise_scale=STAGE_2_DISTILLED_SIGMA_VALUES[<span class="hljs-number">0</span>], <span class="hljs-comment"># renoise with first sigma value https://github.com/Lightricks/LTX-2/blob/main/packages/ltx-pipelines/src/ltx_pipelines/distilled.py#L178</span>
sigmas=STAGE_2_DISTILLED_SIGMA_VALUES,
generator=generator,
guidance_scale=<span class="hljs-number">1.0</span>,
output_type=<span class="hljs-string">&quot;np&quot;</span>,
return_dict=<span class="hljs-literal">False</span>,
)
encode_video(
video[<span class="hljs-number">0</span>],
fps=frame_rate,
audio=audio[<span class="hljs-number">0</span>].<span class="hljs-built_in">float</span>().cpu(),
audio_sample_rate=pipe.vocoder.config.output_sampling_rate,
output_path=<span class="hljs-string">&quot;ltx2_distilled_sample.mp4&quot;</span>,
)`,wrap:!1}}),me=new F({props:{title:"Condition Pipeline Generation",local:"condition-pipeline-generation",headingTag:"h2"}}),he=new ee({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwTFRYMkNvbmRpdGlvblBpcGVsaW5lJTJDJTIwTFRYMkxhdGVudFVwc2FtcGxlUGlwZWxpbmUlMEFmcm9tJTIwZGlmZnVzZXJzLnBpcGVsaW5lcy5sdHgyLmxhdGVudF91cHNhbXBsZXIlMjBpbXBvcnQlMjBMVFgyTGF0ZW50VXBzYW1wbGVyTW9kZWwlMEFmcm9tJTIwZGlmZnVzZXJzLnBpcGVsaW5lcy5sdHgyLnBpcGVsaW5lX2x0eDJfY29uZGl0aW9uJTIwaW1wb3J0JTIwTFRYMlZpZGVvQ29uZGl0aW9uJTBBZnJvbSUyMGRpZmZ1c2Vycy5waXBlbGluZXMubHR4Mi51dGlscyUyMGltcG9ydCUyMERJU1RJTExFRF9TSUdNQV9WQUxVRVMlMkMlMjBTVEFHRV8yX0RJU1RJTExFRF9TSUdNQV9WQUxVRVMlMEFmcm9tJTIwZGlmZnVzZXJzLnBpcGVsaW5lcy5sdHgyLmV4cG9ydF91dGlscyUyMGltcG9ydCUyMGVuY29kZV92aWRlbyUwQWZyb20lMjBkaWZmdXNlcnMudXRpbHMlMjBpbXBvcnQlMjBsb2FkX2ltYWdlJTBBJTBBZGV2aWNlJTIwJTNEJTIwJTIyY3VkYSUyMiUwQXdpZHRoJTIwJTNEJTIwNzY4JTBBaGVpZ2h0JTIwJTNEJTIwNTEyJTBBcmFuZG9tX3NlZWQlMjAlM0QlMjA0MiUwQWdlbmVyYXRvciUyMCUzRCUyMHRvcmNoLkdlbmVyYXRvcihkZXZpY2UpLm1hbnVhbF9zZWVkKHJhbmRvbV9zZWVkKSUwQW1vZGVsX3BhdGglMjAlM0QlMjAlMjJyb290b25jaGFpciUyRkxUWC0yLTE5Yi1kaXN0aWxsZWQlMjIlMEElMEFwaXBlJTIwJTNEJTIwTFRYMkNvbmRpdGlvblBpcGVsaW5lLmZyb21fcHJldHJhaW5lZChtb2RlbF9wYXRoJTJDJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5iZmxvYXQxNiklMEFwaXBlLmVuYWJsZV9zZXF1ZW50aWFsX2NwdV9vZmZsb2FkKGRldmljZSUzRGRldmljZSklMEFwaXBlLnZhZS5lbmFibGVfdGlsaW5nKCklMEElMEFwcm9tcHQlMjAlM0QlMjAoJTBBJTIwJTIwJTIwJTIwJTIyQ0clMjBhbmltYXRpb24lMjBzdHlsZSUyQyUyMGElMjBzbWFsbCUyMGJsdWUlMjBiaXJkJTIwdGFrZXMlMjBvZmYlMjBmcm9tJTIwdGhlJTIwZ3JvdW5kJTJDJTIwZmxhcHBpbmclMjBpdHMlMjB3aW5ncy4lMjBUaGUlMjBiaXJkJ3MlMjBmZWF0aGVycyUyMGFyZSUyMCUyMiUwQSUyMCUyMCUyMCUyMCUyMmRlbGljYXRlJTJDJTIwd2l0aCUyMGElMjB1bmlxdWUlMjBwYXR0ZXJuJTIwb24lMjBpdHMlMjBjaGVzdC4lMjBUaGUlMjBiYWNrZ3JvdW5kJTIwc2hvd3MlMjBhJTIwYmx1ZSUyMHNreSUyMHdpdGglMjB3aGl0ZSUyMGNsb3VkcyUyMHVuZGVyJTIwYnJpZ2h0JTIwJTIyJTBBJTIwJTIwJTIwJTIwJTIyc3Vuc2hpbmUuJTIwVGhlJTIwY2FtZXJhJTIwZm9sbG93cyUyMHRoZSUyMGJpcmQlMjB1cHdhcmQlMkMlMjBjYXB0dXJpbmclMjBpdHMlMjBmbGlnaHQlMjBhbmQlMjB0aGUlMjB2YXN0bmVzcyUyMG9mJTIwdGhlJTIwc2t5JTIwZnJvbSUyMGElMjBjbG9zZS11cCUyQyUyMCUyMiUwQSUyMCUyMCUyMCUyMCUyMmxvdy1hbmdsZSUyMHBlcnNwZWN0aXZlLiUyMiUwQSklMEElMEFmaXJzdF9pbWFnZSUyMCUzRCUyMGxvYWRfaW1hZ2UoJTBBJTIwJTIwJTIwJTIwJTIyaHR0cHMlM0ElMkYlMkZodWdnaW5nZmFjZS5jbyUyRmRhdGFzZXRzJTJGaHVnZ2luZ2ZhY2UlMkZkb2N1bWVudGF0aW9uLWltYWdlcyUyRnJlc29sdmUlMkZtYWluJTJGZGlmZnVzZXJzJTJGZmxmMnZfaW5wdXRfZmlyc3RfZnJhbWUucG5nJTIyJTJDJTBBKSUwQWxhc3RfaW1hZ2UlMjAlM0QlMjBsb2FkX2ltYWdlKCUwQSUyMCUyMCUyMCUyMCUyMmh0dHBzJTNBJTJGJTJGaHVnZ2luZ2ZhY2UuY28lMkZkYXRhc2V0cyUyRmh1Z2dpbmdmYWNlJTJGZG9jdW1lbnRhdGlvbi1pbWFnZXMlMkZyZXNvbHZlJTJGbWFpbiUyRmRpZmZ1c2VycyUyRmZsZjJ2X2lucHV0X2xhc3RfZnJhbWUucG5nJTIyJTJDJTBBKSUwQWZpcnN0X2NvbmQlMjAlM0QlMjBMVFgyVmlkZW9Db25kaXRpb24oZnJhbWVzJTNEZmlyc3RfaW1hZ2UlMkMlMjBpbmRleCUzRDAlMkMlMjBzdHJlbmd0aCUzRDEuMCklMEFsYXN0X2NvbmQlMjAlM0QlMjBMVFgyVmlkZW9Db25kaXRpb24oZnJhbWVzJTNEbGFzdF9pbWFnZSUyQyUyMGluZGV4JTNELTElMkMlMjBzdHJlbmd0aCUzRDEuMCklMEFjb25kaXRpb25zJTIwJTNEJTIwJTVCZmlyc3RfY29uZCUyQyUyMGxhc3RfY29uZCU1RCUwQSUwQWZyYW1lX3JhdGUlMjAlM0QlMjAyNC4wJTBBdmlkZW9fbGF0ZW50JTJDJTIwYXVkaW9fbGF0ZW50JTIwJTNEJTIwcGlwZSglMEElMjAlMjAlMjAlMjBjb25kaXRpb25zJTNEY29uZGl0aW9ucyUyQyUwQSUyMCUyMCUyMCUyMHByb21wdCUzRHByb21wdCUyQyUwQSUyMCUyMCUyMCUyMHdpZHRoJTNEd2lkdGglMkMlMEElMjAlMjAlMjAlMjBoZWlnaHQlM0RoZWlnaHQlMkMlMEElMjAlMjAlMjAlMjBudW1fZnJhbWVzJTNEMTIxJTJDJTBBJTIwJTIwJTIwJTIwZnJhbWVfcmF0ZSUzRGZyYW1lX3JhdGUlMkMlMEElMjAlMjAlMjAlMjBudW1faW5mZXJlbmNlX3N0ZXBzJTNEOCUyQyUwQSUyMCUyMCUyMCUyMHNpZ21hcyUzRERJU1RJTExFRF9TSUdNQV9WQUxVRVMlMkMlMEElMjAlMjAlMjAlMjBndWlkYW5jZV9zY2FsZSUzRDEuMCUyQyUwQSUyMCUyMCUyMCUyMGdlbmVyYXRvciUzRGdlbmVyYXRvciUyQyUwQSUyMCUyMCUyMCUyMG91dHB1dF90eXBlJTNEJTIybGF0ZW50JTIyJTJDJTBBJTIwJTIwJTIwJTIwcmV0dXJuX2RpY3QlM0RGYWxzZSUyQyUwQSklMEElMEFsYXRlbnRfdXBzYW1wbGVyJTIwJTNEJTIwTFRYMkxhdGVudFVwc2FtcGxlck1vZGVsLmZyb21fcHJldHJhaW5lZCglMEElMjAlMjAlMjAlMjBtb2RlbF9wYXRoJTJDJTBBJTIwJTIwJTIwJTIwc3ViZm9sZGVyJTNEJTIybGF0ZW50X3Vwc2FtcGxlciUyMiUyQyUwQSUyMCUyMCUyMCUyMHRvcmNoX2R0eXBlJTNEdG9yY2guYmZsb2F0MTYlMkMlMEEpJTBBdXBzYW1wbGVfcGlwZSUyMCUzRCUyMExUWDJMYXRlbnRVcHNhbXBsZVBpcGVsaW5lKHZhZSUzRHBpcGUudmFlJTJDJTIwbGF0ZW50X3Vwc2FtcGxlciUzRGxhdGVudF91cHNhbXBsZXIpJTBBdXBzYW1wbGVfcGlwZS5lbmFibGVfbW9kZWxfY3B1X29mZmxvYWQoZGV2aWNlJTNEZGV2aWNlKSUwQXVwc2NhbGVkX3ZpZGVvX2xhdGVudCUyMCUzRCUyMHVwc2FtcGxlX3BpcGUoJTBBJTIwJTIwJTIwJTIwbGF0ZW50cyUzRHZpZGVvX2xhdGVudCUyQyUwQSUyMCUyMCUyMCUyMG91dHB1dF90eXBlJTNEJTIybGF0ZW50JTIyJTJDJTBBJTIwJTIwJTIwJTIwcmV0dXJuX2RpY3QlM0RGYWxzZSUyQyUwQSklNUIwJTVEJTBBJTBBdmlkZW8lMkMlMjBhdWRpbyUyMCUzRCUyMHBpcGUoJTBBJTIwJTIwJTIwJTIwbGF0ZW50cyUzRHVwc2NhbGVkX3ZpZGVvX2xhdGVudCUyQyUwQSUyMCUyMCUyMCUyMGF1ZGlvX2xhdGVudHMlM0RhdWRpb19sYXRlbnQlMkMlMEElMjAlMjAlMjAlMjBwcm9tcHQlM0Rwcm9tcHQlMkMlMEElMjAlMjAlMjAlMjB3aWR0aCUzRHdpZHRoJTIwKiUyMDIlMkMlMEElMjAlMjAlMjAlMjBoZWlnaHQlM0RoZWlnaHQlMjAqJTIwMiUyQyUwQSUyMCUyMCUyMCUyMG51bV9pbmZlcmVuY2Vfc3RlcHMlM0QzJTJDJTBBJTIwJTIwJTIwJTIwc2lnbWFzJTNEU1RBR0VfMl9ESVNUSUxMRURfU0lHTUFfVkFMVUVTJTJDJTBBJTIwJTIwJTIwJTIwZ2VuZXJhdG9yJTNEZ2VuZXJhdG9yJTJDJTBBJTIwJTIwJTIwJTIwZ3VpZGFuY2Vfc2NhbGUlM0QxLjAlMkMlMEElMjAlMjAlMjAlMjBvdXRwdXRfdHlwZSUzRCUyMm5wJTIyJTJDJTBBJTIwJTIwJTIwJTIwcmV0dXJuX2RpY3QlM0RGYWxzZSUyQyUwQSklMEElMEFlbmNvZGVfdmlkZW8oJTBBJTIwJTIwJTIwJTIwdmlkZW8lNUIwJTVEJTJDJTBBJTIwJTIwJTIwJTIwZnBzJTNEZnJhbWVfcmF0ZSUyQyUwQSUyMCUyMCUyMCUyMGF1ZGlvJTNEYXVkaW8lNUIwJTVELmZsb2F0KCkuY3B1KCklMkMlMEElMjAlMjAlMjAlMjBhdWRpb19zYW1wbGVfcmF0ZSUzRHBpcGUudm9jb2Rlci5jb25maWcub3V0cHV0X3NhbXBsaW5nX3JhdGUlMkMlMEElMjAlMjAlMjAlMjBvdXRwdXRfcGF0aCUzRCUyMmx0eDJfZGlzdGlsbGVkX2ZsZjJ2Lm1wNCUyMiUyQyUwQSk=",highlighted:`<span class="hljs-keyword">import</span> torch
<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> LTX2ConditionPipeline, LTX2LatentUpsamplePipeline
<span class="hljs-keyword">from</span> diffusers.pipelines.ltx2.latent_upsampler <span class="hljs-keyword">import</span> LTX2LatentUpsamplerModel
<span class="hljs-keyword">from</span> diffusers.pipelines.ltx2.pipeline_ltx2_condition <span class="hljs-keyword">import</span> LTX2VideoCondition
<span class="hljs-keyword">from</span> diffusers.pipelines.ltx2.utils <span class="hljs-keyword">import</span> DISTILLED_SIGMA_VALUES, STAGE_2_DISTILLED_SIGMA_VALUES
<span class="hljs-keyword">from</span> diffusers.pipelines.ltx2.export_utils <span class="hljs-keyword">import</span> encode_video
<span class="hljs-keyword">from</span> diffusers.utils <span class="hljs-keyword">import</span> load_image
device = <span class="hljs-string">&quot;cuda&quot;</span>
width = <span class="hljs-number">768</span>
height = <span class="hljs-number">512</span>
random_seed = <span class="hljs-number">42</span>
generator = torch.Generator(device).manual_seed(random_seed)
model_path = <span class="hljs-string">&quot;rootonchair/LTX-2-19b-distilled&quot;</span>
pipe = LTX2ConditionPipeline.from_pretrained(model_path, torch_dtype=torch.bfloat16)
pipe.enable_sequential_cpu_offload(device=device)
pipe.vae.enable_tiling()
prompt = (
<span class="hljs-string">&quot;CG animation style, a small blue bird takes off from the ground, flapping its wings. The bird&#x27;s feathers are &quot;</span>
<span class="hljs-string">&quot;delicate, with a unique pattern on its chest. The background shows a blue sky with white clouds under bright &quot;</span>
<span class="hljs-string">&quot;sunshine. The camera follows the bird upward, capturing its flight and the vastness of the sky from a close-up, &quot;</span>
<span class="hljs-string">&quot;low-angle perspective.&quot;</span>
)
first_image = load_image(
<span class="hljs-string">&quot;https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/flf2v_input_first_frame.png&quot;</span>,
)
last_image = load_image(
<span class="hljs-string">&quot;https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/flf2v_input_last_frame.png&quot;</span>,
)
first_cond = LTX2VideoCondition(frames=first_image, index=<span class="hljs-number">0</span>, strength=<span class="hljs-number">1.0</span>)
last_cond = LTX2VideoCondition(frames=last_image, index=-<span class="hljs-number">1</span>, strength=<span class="hljs-number">1.0</span>)
conditions = [first_cond, last_cond]
frame_rate = <span class="hljs-number">24.0</span>
video_latent, audio_latent = pipe(
conditions=conditions,
prompt=prompt,
width=width,
height=height,
num_frames=<span class="hljs-number">121</span>,
frame_rate=frame_rate,
num_inference_steps=<span class="hljs-number">8</span>,
sigmas=DISTILLED_SIGMA_VALUES,
guidance_scale=<span class="hljs-number">1.0</span>,
generator=generator,
output_type=<span class="hljs-string">&quot;latent&quot;</span>,
return_dict=<span class="hljs-literal">False</span>,
)
latent_upsampler = LTX2LatentUpsamplerModel.from_pretrained(
model_path,
subfolder=<span class="hljs-string">&quot;latent_upsampler&quot;</span>,
torch_dtype=torch.bfloat16,
)
upsample_pipe = LTX2LatentUpsamplePipeline(vae=pipe.vae, latent_upsampler=latent_upsampler)
upsample_pipe.enable_model_cpu_offload(device=device)
upscaled_video_latent = upsample_pipe(
latents=video_latent,
output_type=<span class="hljs-string">&quot;latent&quot;</span>,
return_dict=<span class="hljs-literal">False</span>,
)[<span class="hljs-number">0</span>]
video, audio = pipe(
latents=upscaled_video_latent,
audio_latents=audio_latent,
prompt=prompt,
width=width * <span class="hljs-number">2</span>,
height=height * <span class="hljs-number">2</span>,
num_inference_steps=<span class="hljs-number">3</span>,
sigmas=STAGE_2_DISTILLED_SIGMA_VALUES,
generator=generator,
guidance_scale=<span class="hljs-number">1.0</span>,
output_type=<span class="hljs-string">&quot;np&quot;</span>,
return_dict=<span class="hljs-literal">False</span>,
)
encode_video(
video[<span class="hljs-number">0</span>],
fps=frame_rate,
audio=audio[<span class="hljs-number">0</span>].<span class="hljs-built_in">float</span>().cpu(),
audio_sample_rate=pipe.vocoder.config.output_sampling_rate,
output_path=<span class="hljs-string">&quot;ltx2_distilled_flf2v.mp4&quot;</span>,
)`,wrap:!1}}),ge=new ee({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwTFRYMkNvbmRpdGlvblBpcGVsaW5lJTBBZnJvbSUyMGRpZmZ1c2Vycy5waXBlbGluZXMubHR4Mi5waXBlbGluZV9sdHgyX2NvbmRpdGlvbiUyMGltcG9ydCUyMExUWDJWaWRlb0NvbmRpdGlvbiUwQWZyb20lMjBkaWZmdXNlcnMucGlwZWxpbmVzLmx0eDIuZXhwb3J0X3V0aWxzJTIwaW1wb3J0JTIwZW5jb2RlX3ZpZGVvJTBBZnJvbSUyMGRpZmZ1c2Vycy51dGlscyUyMGltcG9ydCUyMGxvYWRfaW1hZ2UlMkMlMjBsb2FkX3ZpZGVvJTBBJTBBZGV2aWNlJTIwJTNEJTIwJTIyY3VkYSUyMiUwQXdpZHRoJTIwJTNEJTIwNzY4JTBBaGVpZ2h0JTIwJTNEJTIwNTEyJTBBcmFuZG9tX3NlZWQlMjAlM0QlMjA0MiUwQWdlbmVyYXRvciUyMCUzRCUyMHRvcmNoLkdlbmVyYXRvcihkZXZpY2UpLm1hbnVhbF9zZWVkKHJhbmRvbV9zZWVkKSUwQW1vZGVsX3BhdGglMjAlM0QlMjAlMjJyb290b25jaGFpciUyRkxUWC0yLTE5Yi1kaXN0aWxsZWQlMjIlMEElMEFwaXBlJTIwJTNEJTIwTFRYMkNvbmRpdGlvblBpcGVsaW5lLmZyb21fcHJldHJhaW5lZChtb2RlbF9wYXRoJTJDJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5iZmxvYXQxNiklMEFwaXBlLmVuYWJsZV9zZXF1ZW50aWFsX2NwdV9vZmZsb2FkKGRldmljZSUzRGRldmljZSklMEFwaXBlLnZhZS5lbmFibGVfdGlsaW5nKCklMEElMEFwcm9tcHQlMjAlM0QlMjAoJTBBJTIwJTIwJTIwJTIwJTIyVGhlJTIwdmlkZW8lMjBkZXBpY3RzJTIwYSUyMGxvbmclMkMlMjBzdHJhaWdodCUyMGhpZ2h3YXklMjBzdHJldGNoaW5nJTIwaW50byUyMHRoZSUyMGRpc3RhbmNlJTJDJTIwZmxhbmtlZCUyMGJ5JTIwbWV0YWwlMjBndWFyZHJhaWxzLiUyMFRoZSUyMHJvYWQlMjBpcyUyMCUyMiUwQSUyMCUyMCUyMCUyMCUyMmRpdmlkZWQlMjBpbnRvJTIwbXVsdGlwbGUlMjBsYW5lcyUyQyUyMHdpdGglMjBhJTIwZmV3JTIwdmVoaWNsZXMlMjB2aXNpYmxlJTIwaW4lMjB0aGUlMjBmYXIlMjBkaXN0YW5jZS4lMjBUaGUlMjBzdXJyb3VuZGluZyUyMGxhbmRzY2FwZSUyMGZlYXR1cmVzJTIwJTIyJTBBJTIwJTIwJTIwJTIwJTIyZHJ5JTJDJTIwZ3Jhc3N5JTIwZmllbGRzJTIwb24lMjBvbmUlMjBzaWRlJTIwYW5kJTIwcm9sbGluZyUyMGhpbGxzJTIwb24lMjB0aGUlMjBvdGhlci4lMjBUaGUlMjBza3klMjBpcyUyMG1vc3RseSUyMGNsZWFyJTIwd2l0aCUyMGElMjBmZXclMjBzY2F0dGVyZWQlMjAlMjIlMEElMjAlMjAlMjAlMjAlMjJjbG91ZHMlMkMlMjBzdWdnZXN0aW5nJTIwYSUyMGJyaWdodCUyQyUyMHN1bm55JTIwZGF5LiUyMEFuZCUyMHRoZW4lMjB0aGUlMjBjYW1lcmElMjBzd2l0Y2glMjB0byUyMGElMjB3aW5kaW5nJTIwbW91bnRhaW4lMjByb2FkJTIwY292ZXJlZCUyMGluJTIwc25vdyUyQyUyMCUyMiUwQSUyMCUyMCUyMCUyMCUyMndpdGglMjBhJTIwc2luZ2xlJTIwdmVoaWNsZSUyMHRyYXZlbGluZyUyMGFsb25nJTIwaXQuJTIwVGhlJTIwcm9hZCUyMGlzJTIwZmxhbmtlZCUyMGJ5JTIwc3RlZXAlMkMlMjByb2NreSUyMGNsaWZmcyUyMGFuZCUyMHNwYXJzZSUyMHZlZ2V0YXRpb24uJTIwVGhlJTIwJTIyJTBBJTIwJTIwJTIwJTIwJTIybGFuZHNjYXBlJTIwaXMlMjBjaGFyYWN0ZXJpemVkJTIwYnklMjBydWdnZWQlMjB0ZXJyYWluJTIwYW5kJTIwYSUyMHJpdmVyJTIwdmlzaWJsZSUyMGluJTIwdGhlJTIwZGlzdGFuY2UuJTIwVGhlJTIwc2NlbmUlMjBjYXB0dXJlcyUyMHRoZSUyMCUyMiUwQSUyMCUyMCUyMCUyMCUyMnNvbGl0dWRlJTIwYW5kJTIwYmVhdXR5JTIwb2YlMjBhJTIwd2ludGVyJTIwZHJpdmUlMjB0aHJvdWdoJTIwYSUyMG1vdW50YWlub3VzJTIwcmVnaW9uLiUyMiUwQSklMEFuZWdhdGl2ZV9wcm9tcHQlMjAlM0QlMjAoJTBBJTIwJTIwJTIwJTIwJTIyYmx1cnJ5JTJDJTIwb3V0JTIwb2YlMjBmb2N1cyUyQyUyMG92ZXJleHBvc2VkJTJDJTIwdW5kZXJleHBvc2VkJTJDJTIwbG93JTIwY29udHJhc3QlMkMlMjB3YXNoZWQlMjBvdXQlMjBjb2xvcnMlMkMlMjBleGNlc3NpdmUlMjBub2lzZSUyQyUyMCUyMiUwQSUyMCUyMCUyMCUyMCUyMmdyYWlueSUyMHRleHR1cmUlMkMlMjBwb29yJTIwbGlnaHRpbmclMkMlMjBmbGlja2VyaW5nJTJDJTIwbW90aW9uJTIwYmx1ciUyQyUyMGRpc3RvcnRlZCUyMHByb3BvcnRpb25zJTJDJTIwdW5uYXR1cmFsJTIwc2tpbiUyMHRvbmVzJTJDJTIwJTIyJTBBJTIwJTIwJTIwJTIwJTIyZGVmb3JtZWQlMjBmYWNpYWwlMjBmZWF0dXJlcyUyQyUyMGFzeW1tZXRyaWNhbCUyMGZhY2UlMkMlMjBtaXNzaW5nJTIwZmFjaWFsJTIwZmVhdHVyZXMlMkMlMjBleHRyYSUyMGxpbWJzJTJDJTIwZGlzZmlndXJlZCUyMGhhbmRzJTJDJTIwJTIyJTBBJTIwJTIwJTIwJTIwJTIyd3JvbmclMjBoYW5kJTIwY291bnQlMkMlMjBhcnRpZmFjdHMlMjBhcm91bmQlMjB0ZXh0JTJDJTIwaW5jb25zaXN0ZW50JTIwcGVyc3BlY3RpdmUlMkMlMjBjYW1lcmElMjBzaGFrZSUyQyUyMGluY29ycmVjdCUyMGRlcHRoJTIwb2YlMjAlMjIlMEElMjAlMjAlMjAlMjAlMjJmaWVsZCUyQyUyMGJhY2tncm91bmQlMjB0b28lMjBzaGFycCUyQyUyMGJhY2tncm91bmQlMjBjbHV0dGVyJTJDJTIwZGlzdHJhY3RpbmclMjByZWZsZWN0aW9ucyUyQyUyMGhhcnNoJTIwc2hhZG93cyUyQyUyMGluY29uc2lzdGVudCUyMCUyMiUwQSUyMCUyMCUyMCUyMCUyMmxpZ2h0aW5nJTIwZGlyZWN0aW9uJTJDJTIwY29sb3IlMjBiYW5kaW5nJTJDJTIwY2FydG9vbmlzaCUyMHJlbmRlcmluZyUyQyUyMDNEJTIwQ0dJJTIwbG9vayUyQyUyMHVucmVhbGlzdGljJTIwbWF0ZXJpYWxzJTJDJTIwdW5jYW5ueSUyMCUyMiUwQSUyMCUyMCUyMCUyMCUyMnZhbGxleSUyMGVmZmVjdCUyQyUyMGluY29ycmVjdCUyMGV0aG5pY2l0eSUyQyUyMHdyb25nJTIwZ2VuZGVyJTJDJTIwZXhhZ2dlcmF0ZWQlMjBleHByZXNzaW9ucyUyQyUyMHdyb25nJTIwZ2F6ZSUyMGRpcmVjdGlvbiUyQyUyMCUyMiUwQSUyMCUyMCUyMCUyMCUyMm1pc21hdGNoZWQlMjBsaXAlMjBzeW5jJTJDJTIwc2lsZW50JTIwb3IlMjBtdXRlZCUyMGF1ZGlvJTJDJTIwZGlzdG9ydGVkJTIwdm9pY2UlMkMlMjByb2JvdGljJTIwdm9pY2UlMkMlMjBlY2hvJTJDJTIwYmFja2dyb3VuZCUyMG5vaXNlJTJDJTIwJTIyJTBBJTIwJTIwJTIwJTIwJTIyb2ZmLXN5bmMlMjBhdWRpbyUyQyUyMGluY29ycmVjdCUyMGRpYWxvZ3VlJTJDJTIwYWRkZWQlMjBkaWFsb2d1ZSUyQyUyMHJlcGV0aXRpdmUlMjBzcGVlY2glMkMlMjBqaXR0ZXJ5JTIwbW92ZW1lbnQlMkMlMjBhd2t3YXJkJTIwJTIyJTBBJTIwJTIwJTIwJTIwJTIycGF1c2VzJTJDJTIwaW5jb3JyZWN0JTIwdGltaW5nJTJDJTIwdW5uYXR1cmFsJTIwdHJhbnNpdGlvbnMlMkMlMjBpbmNvbnNpc3RlbnQlMjBmcmFtaW5nJTJDJTIwdGlsdGVkJTIwY2FtZXJhJTJDJTIwZmxhdCUyMGxpZ2h0aW5nJTJDJTIwJTIyJTBBJTIwJTIwJTIwJTIwJTIyaW5jb25zaXN0ZW50JTIwdG9uZSUyQyUyMGNpbmVtYXRpYyUyMG92ZXJzYXR1cmF0aW9uJTJDJTIwc3R5bGl6ZWQlMjBmaWx0ZXJzJTJDJTIwb3IlMjBBSSUyMGFydGlmYWN0cy4lMjIlMEEpJTBBJTBBY29uZF92aWRlbyUyMCUzRCUyMGxvYWRfdmlkZW8oJTBBJTIwJTIwJTIwJTIwJTIyaHR0cHMlM0ElMkYlMkZodWdnaW5nZmFjZS5jbyUyRmRhdGFzZXRzJTJGaHVnZ2luZ2ZhY2UlMkZkb2N1bWVudGF0aW9uLWltYWdlcyUyRnJlc29sdmUlMkZtYWluJTJGZGlmZnVzZXJzJTJGY29zbW9zJTJGY29zbW9zLXZpZGVvMndvcmxkLWlucHV0LXZpZC5tcDQlMjIlMEEpJTBBY29uZF9pbWFnZSUyMCUzRCUyMGxvYWRfaW1hZ2UoJTBBJTIwJTIwJTIwJTIwJTIyaHR0cHMlM0ElMkYlMkZodWdnaW5nZmFjZS5jbyUyRmRhdGFzZXRzJTJGaHVnZ2luZ2ZhY2UlMkZkb2N1bWVudGF0aW9uLWltYWdlcyUyRnJlc29sdmUlMkZtYWluJTJGZGlmZnVzZXJzJTJGY29zbW9zJTJGY29zbW9zLXZpZGVvMndvcmxkLWlucHV0LmpwZyUyMiUwQSklMEF2aWRlb19jb25kJTIwJTNEJTIwTFRYMlZpZGVvQ29uZGl0aW9uKGZyYW1lcyUzRGNvbmRfdmlkZW8lMkMlMjBpbmRleCUzRDAlMkMlMjBzdHJlbmd0aCUzRDEuMCklMEFpbWFnZV9jb25kJTIwJTNEJTIwTFRYMlZpZGVvQ29uZGl0aW9uKGZyYW1lcyUzRGNvbmRfaW1hZ2UlMkMlMjBpbmRleCUzRDglMkMlMjBzdHJlbmd0aCUzRDEuMCklMEFjb25kaXRpb25zJTIwJTNEJTIwJTVCdmlkZW9fY29uZCUyQyUyMGltYWdlX2NvbmQlNUQlMEElMEFmcmFtZV9yYXRlJTIwJTNEJTIwMjQuMCUwQXZpZGVvJTJDJTIwYXVkaW8lMjAlM0QlMjBwaXBlKCUwQSUyMCUyMCUyMCUyMGNvbmRpdGlvbnMlM0Rjb25kaXRpb25zJTJDJTBBJTIwJTIwJTIwJTIwcHJvbXB0JTNEcHJvbXB0JTJDJTBBJTIwJTIwJTIwJTIwbmVnYXRpdmVfcHJvbXB0JTNEbmVnYXRpdmVfcHJvbXB0JTJDJTBBJTIwJTIwJTIwJTIwd2lkdGglM0R3aWR0aCUyQyUwQSUyMCUyMCUyMCUyMGhlaWdodCUzRGhlaWdodCUyQyUwQSUyMCUyMCUyMCUyMG51bV9mcmFtZXMlM0QxMjElMkMlMEElMjAlMjAlMjAlMjBmcmFtZV9yYXRlJTNEZnJhbWVfcmF0ZSUyQyUwQSUyMCUyMCUyMCUyMG51bV9pbmZlcmVuY2Vfc3RlcHMlM0Q0MCUyQyUwQSUyMCUyMCUyMCUyMGd1aWRhbmNlX3NjYWxlJTNENC4wJTJDJTBBJTIwJTIwJTIwJTIwZ2VuZXJhdG9yJTNEZ2VuZXJhdG9yJTJDJTBBJTIwJTIwJTIwJTIwb3V0cHV0X3R5cGUlM0QlMjJucCUyMiUyQyUwQSUyMCUyMCUyMCUyMHJldHVybl9kaWN0JTNERmFsc2UlMkMlMEEpJTBBJTBBZW5jb2RlX3ZpZGVvKCUwQSUyMCUyMCUyMCUyMHZpZGVvJTVCMCU1RCUyQyUwQSUyMCUyMCUyMCUyMGZwcyUzRGZyYW1lX3JhdGUlMkMlMEElMjAlMjAlMjAlMjBhdWRpbyUzRGF1ZGlvJTVCMCU1RC5mbG9hdCgpLmNwdSgpJTJDJTBBJTIwJTIwJTIwJTIwYXVkaW9fc2FtcGxlX3JhdGUlM0RwaXBlLnZvY29kZXIuY29uZmlnLm91dHB1dF9zYW1wbGluZ19yYXRlJTJDJTBBJTIwJTIwJTIwJTIwb3V0cHV0X3BhdGglM0QlMjJsdHgyX2NvbmRfdmlkZW8ubXA0JTIyJTJDJTBBKQ==",highlighted:`<span class="hljs-keyword">import</span> torch
<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> LTX2ConditionPipeline
<span class="hljs-keyword">from</span> diffusers.pipelines.ltx2.pipeline_ltx2_condition <span class="hljs-keyword">import</span> LTX2VideoCondition
<span class="hljs-keyword">from</span> diffusers.pipelines.ltx2.export_utils <span class="hljs-keyword">import</span> encode_video
<span class="hljs-keyword">from</span> diffusers.utils <span class="hljs-keyword">import</span> load_image, load_video
device = <span class="hljs-string">&quot;cuda&quot;</span>
width = <span class="hljs-number">768</span>
height = <span class="hljs-number">512</span>
random_seed = <span class="hljs-number">42</span>
generator = torch.Generator(device).manual_seed(random_seed)
model_path = <span class="hljs-string">&quot;rootonchair/LTX-2-19b-distilled&quot;</span>
pipe = LTX2ConditionPipeline.from_pretrained(model_path, torch_dtype=torch.bfloat16)
pipe.enable_sequential_cpu_offload(device=device)
pipe.vae.enable_tiling()
prompt = (
<span class="hljs-string">&quot;The video depicts a long, straight highway stretching into the distance, flanked by metal guardrails. The road is &quot;</span>
<span class="hljs-string">&quot;divided into multiple lanes, with a few vehicles visible in the far distance. The surrounding landscape features &quot;</span>
<span class="hljs-string">&quot;dry, grassy fields on one side and rolling hills on the other. The sky is mostly clear with a few scattered &quot;</span>
<span class="hljs-string">&quot;clouds, suggesting a bright, sunny day. And then the camera switch to a winding mountain road covered in snow, &quot;</span>
<span class="hljs-string">&quot;with a single vehicle traveling along it. The road is flanked by steep, rocky cliffs and sparse vegetation. The &quot;</span>
<span class="hljs-string">&quot;landscape is characterized by rugged terrain and a river visible in the distance. The scene captures the &quot;</span>
<span class="hljs-string">&quot;solitude and beauty of a winter drive through a mountainous region.&quot;</span>
)
negative_prompt = (
<span class="hljs-string">&quot;blurry, out of focus, overexposed, underexposed, low contrast, washed out colors, excessive noise, &quot;</span>
<span class="hljs-string">&quot;grainy texture, poor lighting, flickering, motion blur, distorted proportions, unnatural skin tones, &quot;</span>
<span class="hljs-string">&quot;deformed facial features, asymmetrical face, missing facial features, extra limbs, disfigured hands, &quot;</span>
<span class="hljs-string">&quot;wrong hand count, artifacts around text, inconsistent perspective, camera shake, incorrect depth of &quot;</span>
<span class="hljs-string">&quot;field, background too sharp, background clutter, distracting reflections, harsh shadows, inconsistent &quot;</span>
<span class="hljs-string">&quot;lighting direction, color banding, cartoonish rendering, 3D CGI look, unrealistic materials, uncanny &quot;</span>
<span class="hljs-string">&quot;valley effect, incorrect ethnicity, wrong gender, exaggerated expressions, wrong gaze direction, &quot;</span>
<span class="hljs-string">&quot;mismatched lip sync, silent or muted audio, distorted voice, robotic voice, echo, background noise, &quot;</span>
<span class="hljs-string">&quot;off-sync audio, incorrect dialogue, added dialogue, repetitive speech, jittery movement, awkward &quot;</span>
<span class="hljs-string">&quot;pauses, incorrect timing, unnatural transitions, inconsistent framing, tilted camera, flat lighting, &quot;</span>
<span class="hljs-string">&quot;inconsistent tone, cinematic oversaturation, stylized filters, or AI artifacts.&quot;</span>
)
cond_video = load_video(
<span class="hljs-string">&quot;https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/cosmos/cosmos-video2world-input-vid.mp4&quot;</span>
)
cond_image = load_image(
<span class="hljs-string">&quot;https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/cosmos/cosmos-video2world-input.jpg&quot;</span>
)
video_cond = LTX2VideoCondition(frames=cond_video, index=<span class="hljs-number">0</span>, strength=<span class="hljs-number">1.0</span>)
image_cond = LTX2VideoCondition(frames=cond_image, index=<span class="hljs-number">8</span>, strength=<span class="hljs-number">1.0</span>)
conditions = [video_cond, image_cond]
frame_rate = <span class="hljs-number">24.0</span>
video, audio = pipe(
conditions=conditions,
prompt=prompt,
negative_prompt=negative_prompt,
width=width,
height=height,
num_frames=<span class="hljs-number">121</span>,
frame_rate=frame_rate,
num_inference_steps=<span class="hljs-number">40</span>,
guidance_scale=<span class="hljs-number">4.0</span>,
generator=generator,
output_type=<span class="hljs-string">&quot;np&quot;</span>,
return_dict=<span class="hljs-literal">False</span>,
)
encode_video(
video[<span class="hljs-number">0</span>],
fps=frame_rate,
audio=audio[<span class="hljs-number">0</span>].<span class="hljs-built_in">float</span>().cpu(),
audio_sample_rate=pipe.vocoder.config.output_sampling_rate,
output_path=<span class="hljs-string">&quot;ltx2_cond_video.mp4&quot;</span>,
)`,wrap:!1}}),_e=new F({props:{title:"LTX2Pipeline",local:"diffusers.LTX2Pipeline",headingTag:"h2"}}),Te=new v({props:{name:"class diffusers.LTX2Pipeline",anchor:"diffusers.LTX2Pipeline",parameters:[{name:"scheduler",val:": FlowMatchEulerDiscreteScheduler"},{name:"vae",val:": AutoencoderKLLTX2Video"},{name:"audio_vae",val:": AutoencoderKLLTX2Audio"},{name:"text_encoder",val:": Gemma3ForConditionalGeneration"},{name:"tokenizer",val:": transformers.models.gemma.tokenization_gemma.GemmaTokenizer | transformers.models.gemma.tokenization_gemma_fast.GemmaTokenizerFast"},{name:"connectors",val:": LTX2TextConnectors"},{name:"transformer",val:": LTX2VideoTransformer3DModel"},{name:"vocoder",val:": LTX2Vocoder"}],parametersDescription:[{anchor:"diffusers.LTX2Pipeline.transformer",description:`<strong>transformer</strong> (<a href="/docs/diffusers/pr_13220/en/api/models/ltx_video_transformer3d#diffusers.LTXVideoTransformer3DModel">LTXVideoTransformer3DModel</a>) &#x2014;
Conditional Transformer architecture to denoise the encoded video latents.`,name:"transformer"},{anchor:"diffusers.LTX2Pipeline.scheduler",description:`<strong>scheduler</strong> (<a href="/docs/diffusers/pr_13220/en/api/schedulers/flow_match_euler_discrete#diffusers.FlowMatchEulerDiscreteScheduler">FlowMatchEulerDiscreteScheduler</a>) &#x2014;
A scheduler to be used in combination with <code>transformer</code> to denoise the encoded image latents.`,name:"scheduler"},{anchor:"diffusers.LTX2Pipeline.vae",description:`<strong>vae</strong> (<a href="/docs/diffusers/pr_13220/en/api/models/autoencoderkl_ltx_video#diffusers.AutoencoderKLLTXVideo">AutoencoderKLLTXVideo</a>) &#x2014;
Variational Auto-Encoder (VAE) Model to encode and decode images to and from latent representations.`,name:"vae"},{anchor:"diffusers.LTX2Pipeline.text_encoder",description:`<strong>text_encoder</strong> (<code>T5EncoderModel</code>) &#x2014;
<a href="https://huggingface.co/docs/transformers/en/model_doc/t5#transformers.T5EncoderModel" rel="nofollow">T5</a>, specifically
the <a href="https://huggingface.co/google/t5-v1_1-xxl" rel="nofollow">google/t5-v1_1-xxl</a> variant.`,name:"text_encoder"},{anchor:"diffusers.LTX2Pipeline.tokenizer",description:`<strong>tokenizer</strong> (<code>CLIPTokenizer</code>) &#x2014;
Tokenizer of class
<a href="https://huggingface.co/docs/transformers/en/model_doc/clip#transformers.CLIPTokenizer" rel="nofollow">CLIPTokenizer</a>.`,name:"tokenizer"},{anchor:"diffusers.LTX2Pipeline.tokenizer",description:`<strong>tokenizer</strong> (<code>T5TokenizerFast</code>) &#x2014;
Second Tokenizer of class
<a href="https://huggingface.co/docs/transformers/en/model_doc/t5#transformers.T5TokenizerFast" rel="nofollow">T5TokenizerFast</a>.`,name:"tokenizer"},{anchor:"diffusers.LTX2Pipeline.connectors",description:`<strong>connectors</strong> (<code>LTX2TextConnectors</code>) &#x2014;
Text connector stack used to adapt text encoder hidden states for the video and audio branches.`,name:"connectors"}],source:"https://github.com/huggingface/diffusers/blob/vr_13220/src/diffusers/pipelines/ltx2/pipeline_ltx2.py#L185"}}),ye=new v({props:{name:"__call__",anchor:"diffusers.LTX2Pipeline.__call__",parameters:[{name:"prompt",val:": str | list[str] = None"},{name:"negative_prompt",val:": str | list[str] | None = None"},{name:"height",val:": int = 512"},{name:"width",val:": int = 768"},{name:"num_frames",val:": int = 121"},{name:"frame_rate",val:": float = 24.0"},{name:"num_inference_steps",val:": int = 40"},{name:"sigmas",val:": list[float] | None = None"},{name:"timesteps",val:": list = None"},{name:"guidance_scale",val:": float = 4.0"},{name:"guidance_rescale",val:": float = 0.0"},{name:"noise_scale",val:": float = 0.0"},{name:"num_videos_per_prompt",val:": int = 1"},{name:"generator",val:": torch._C.Generator | list[torch._C.Generator] | None = None"},{name:"latents",val:": torch.Tensor | None = None"},{name:"audio_latents",val:": torch.Tensor | None = None"},{name:"prompt_embeds",val:": torch.Tensor | None = None"},{name:"prompt_attention_mask",val:": torch.Tensor | None = None"},{name:"negative_prompt_embeds",val:": torch.Tensor | None = None"},{name:"negative_prompt_attention_mask",val:": torch.Tensor | None = None"},{name:"decode_timestep",val:": float | list[float] = 0.0"},{name:"decode_noise_scale",val:": float | list[float] | None = None"},{name:"output_type",val:": str = 'pil'"},{name:"return_dict",val:": bool = True"},{name:"attention_kwargs",val:": dict[str, typing.Any] | None = None"},{name:"callback_on_step_end",val:": typing.Optional[typing.Callable[[int, int], NoneType]] = None"},{name:"callback_on_step_end_tensor_inputs",val:": list = ['latents']"},{name:"max_sequence_length",val:": int = 1024"}],parametersDescription:[{anchor:"diffusers.LTX2Pipeline.__call__.prompt",description:`<strong>prompt</strong> (<code>str</code> or <code>list[str]</code>, <em>optional</em>) &#x2014;
The prompt or prompts to guide the image generation. If not defined, one has to pass <code>prompt_embeds</code>.
instead.`,name:"prompt"},{anchor:"diffusers.LTX2Pipeline.__call__.height",description:`<strong>height</strong> (<code>int</code>, <em>optional</em>, defaults to <code>512</code>) &#x2014;
The height in pixels of the generated image. This is set to 480 by default for the best results.`,name:"height"},{anchor:"diffusers.LTX2Pipeline.__call__.width",description:`<strong>width</strong> (<code>int</code>, <em>optional</em>, defaults to <code>768</code>) &#x2014;
The width in pixels of the generated image. This is set to 848 by default for the best results.`,name:"width"},{anchor:"diffusers.LTX2Pipeline.__call__.num_frames",description:`<strong>num_frames</strong> (<code>int</code>, <em>optional</em>, defaults to <code>121</code>) &#x2014;
The number of video frames to generate`,name:"num_frames"},{anchor:"diffusers.LTX2Pipeline.__call__.frame_rate",description:`<strong>frame_rate</strong> (<code>float</code>, <em>optional</em>, defaults to <code>24.0</code>) &#x2014;
The frames per second (FPS) of the generated video.`,name:"frame_rate"},{anchor:"diffusers.LTX2Pipeline.__call__.num_inference_steps",description:`<strong>num_inference_steps</strong> (<code>int</code>, <em>optional</em>, defaults to 40) &#x2014;
The number of denoising steps. More denoising steps usually lead to a higher quality image at the
expense of slower inference.`,name:"num_inference_steps"},{anchor:"diffusers.LTX2Pipeline.__call__.sigmas",description:`<strong>sigmas</strong> (<code>List[float]</code>, <em>optional</em>) &#x2014;
Custom sigmas to use for the denoising process with schedulers which support a <code>sigmas</code> argument in
their <code>set_timesteps</code> method. If not defined, the default behavior when <code>num_inference_steps</code> is passed
will be used.`,name:"sigmas"},{anchor:"diffusers.LTX2Pipeline.__call__.timesteps",description:`<strong>timesteps</strong> (<code>list[int]</code>, <em>optional</em>) &#x2014;
Custom timesteps to use for the denoising process with schedulers which support a <code>timesteps</code> argument
in their <code>set_timesteps</code> method. If not defined, the default behavior when <code>num_inference_steps</code> is
passed will be used. Must be in descending order.`,name:"timesteps"},{anchor:"diffusers.LTX2Pipeline.__call__.guidance_scale",description:`<strong>guidance_scale</strong> (<code>float</code>, <em>optional</em>, defaults to <code>4.0</code>) &#x2014;
Guidance scale as defined in <a href="https://huggingface.co/papers/2207.12598" rel="nofollow">Classifier-Free Diffusion
Guidance</a>. <code>guidance_scale</code> is defined as <code>w</code> of equation 2.
of <a href="https://huggingface.co/papers/2205.11487" rel="nofollow">Imagen Paper</a>. Guidance scale is enabled by setting
<code>guidance_scale &gt; 1</code>. Higher guidance scale encourages to generate images that are closely linked to
the text <code>prompt</code>, usually at the expense of lower image quality.`,name:"guidance_scale"},{anchor:"diffusers.LTX2Pipeline.__call__.guidance_rescale",description:`<strong>guidance_rescale</strong> (<code>float</code>, <em>optional</em>, defaults to 0.0) &#x2014;
Guidance rescale factor proposed by <a href="https://huggingface.co/papers/2305.08891" rel="nofollow">Common Diffusion Noise Schedules and Sample Steps are
Flawed</a> <code>guidance_scale</code> is defined as <code>&#x3C6;</code> in equation 16. of
<a href="https://huggingface.co/papers/2305.08891" rel="nofollow">Common Diffusion Noise Schedules and Sample Steps are
Flawed</a>. Guidance rescale factor should fix overexposure when
using zero terminal SNR.`,name:"guidance_rescale"},{anchor:"diffusers.LTX2Pipeline.__call__.noise_scale",description:`<strong>noise_scale</strong> (<code>float</code>, <em>optional</em>, defaults to <code>0.0</code>) &#x2014;
The interpolation factor between random noise and denoised latents at each timestep. Applying noise to
the <code>latents</code> and <code>audio_latents</code> before continue denoising.`,name:"noise_scale"},{anchor:"diffusers.LTX2Pipeline.__call__.num_videos_per_prompt",description:`<strong>num_videos_per_prompt</strong> (<code>int</code>, <em>optional</em>, defaults to 1) &#x2014;
The number of videos to generate per prompt.`,name:"num_videos_per_prompt"},{anchor:"diffusers.LTX2Pipeline.__call__.generator",description:`<strong>generator</strong> (<code>torch.Generator</code> or <code>list[torch.Generator]</code>, <em>optional</em>) &#x2014;
One or a list of <a href="https://pytorch.org/docs/stable/generated/torch.Generator.html" rel="nofollow">torch generator(s)</a>
to make generation deterministic.`,name:"generator"},{anchor:"diffusers.LTX2Pipeline.__call__.latents",description:`<strong>latents</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Pre-generated noisy latents, sampled from a Gaussian distribution, to be used as inputs for video
generation. Can be used to tweak the same generation with different prompts. If not provided, a latents
tensor will be generated by sampling using the supplied random <code>generator</code>.`,name:"latents"},{anchor:"diffusers.LTX2Pipeline.__call__.audio_latents",description:`<strong>audio_latents</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Pre-generated noisy latents, sampled from a Gaussian distribution, to be used as inputs for audio
generation. Can be used to tweak the same generation with different prompts. If not provided, a latents
tensor will be generated by sampling using the supplied random <code>generator</code>.`,name:"audio_latents"},{anchor:"diffusers.LTX2Pipeline.__call__.prompt_embeds",description:`<strong>prompt_embeds</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Pre-generated text embeddings. Can be used to easily tweak text inputs, <em>e.g.</em> prompt weighting. If not
provided, text embeddings will be generated from <code>prompt</code> input argument.`,name:"prompt_embeds"},{anchor:"diffusers.LTX2Pipeline.__call__.prompt_attention_mask",description:`<strong>prompt_attention_mask</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Pre-generated attention mask for text embeddings.`,name:"prompt_attention_mask"},{anchor:"diffusers.LTX2Pipeline.__call__.negative_prompt_embeds",description:`<strong>negative_prompt_embeds</strong> (<code>torch.FloatTensor</code>, <em>optional</em>) &#x2014;
Pre-generated negative text embeddings. For PixArt-Sigma this negative prompt should be &quot;&quot;. If not
provided, negative_prompt_embeds will be generated from <code>negative_prompt</code> input argument.`,name:"negative_prompt_embeds"},{anchor:"diffusers.LTX2Pipeline.__call__.negative_prompt_attention_mask",description:`<strong>negative_prompt_attention_mask</strong> (<code>torch.FloatTensor</code>, <em>optional</em>) &#x2014;
Pre-generated attention mask for negative text embeddings.`,name:"negative_prompt_attention_mask"},{anchor:"diffusers.LTX2Pipeline.__call__.decode_timestep",description:`<strong>decode_timestep</strong> (<code>float</code>, defaults to <code>0.0</code>) &#x2014;
The timestep at which generated video is decoded.`,name:"decode_timestep"},{anchor:"diffusers.LTX2Pipeline.__call__.decode_noise_scale",description:`<strong>decode_noise_scale</strong> (<code>float</code>, defaults to <code>None</code>) &#x2014;
The interpolation factor between random noise and denoised latents at the decode timestep.`,name:"decode_noise_scale"},{anchor:"diffusers.LTX2Pipeline.__call__.output_type",description:`<strong>output_type</strong> (<code>str</code>, <em>optional</em>, defaults to <code>&quot;pil&quot;</code>) &#x2014;
The output format of the generate image. Choose between
<a href="https://pillow.readthedocs.io/en/stable/" rel="nofollow">PIL</a>: <code>PIL.Image.Image</code> or <code>np.array</code>.`,name:"output_type"},{anchor:"diffusers.LTX2Pipeline.__call__.return_dict",description:`<strong>return_dict</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) &#x2014;
Whether or not to return a <code>~pipelines.ltx.LTX2PipelineOutput</code> instead of a plain tuple.`,name:"return_dict"},{anchor:"diffusers.LTX2Pipeline.__call__.attention_kwargs",description:`<strong>attention_kwargs</strong> (<code>dict</code>, <em>optional</em>) &#x2014;
A kwargs dictionary that if specified is passed along to the <code>AttentionProcessor</code> as defined under
<code>self.processor</code> in
<a href="https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py" rel="nofollow">diffusers.models.attention_processor</a>.`,name:"attention_kwargs"},{anchor:"diffusers.LTX2Pipeline.__call__.callback_on_step_end",description:`<strong>callback_on_step_end</strong> (<code>Callable</code>, <em>optional</em>) &#x2014;
A function that calls at the end of each denoising steps during the inference. The function is called
with the following arguments: <code>callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict)</code>. <code>callback_kwargs</code> will include a list of all tensors as specified by
<code>callback_on_step_end_tensor_inputs</code>.`,name:"callback_on_step_end"},{anchor:"diffusers.LTX2Pipeline.__call__.callback_on_step_end_tensor_inputs",description:`<strong>callback_on_step_end_tensor_inputs</strong> (<code>List</code>, <em>optional</em>, defaults to <code>[&quot;latents&quot;]</code>) &#x2014;
The list of tensor inputs for the <code>callback_on_step_end</code> function. The tensors specified in the list
will be passed as <code>callback_kwargs</code> argument. You will only be able to include variables listed in the
<code>._callback_tensor_inputs</code> attribute of your pipeline class.`,name:"callback_on_step_end_tensor_inputs"},{anchor:"diffusers.LTX2Pipeline.__call__.max_sequence_length",description:`<strong>max_sequence_length</strong> (<code>int</code>, <em>optional</em>, defaults to <code>1024</code>) &#x2014;
Maximum sequence length to use with the <code>prompt</code>.`,name:"max_sequence_length"}],source:"https://github.com/huggingface/diffusers/blob/vr_13220/src/diffusers/pipelines/ltx2/pipeline_ltx2.py#L780",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script>
<p>If <code>return_dict</code> is <code>True</code>, <code>~pipelines.ltx.LTX2PipelineOutput</code> is returned, otherwise a <code>tuple</code> is
returned where the first element is a list with the generated images.</p>
`,returnType:`<script context="module">export const metadata = 'undefined';<\/script>
<p><code>~pipelines.ltx.LTX2PipelineOutput</code> or <code>tuple</code></p>
`}}),Q=new Kt({props:{anchor:"diffusers.LTX2Pipeline.__call__.example",$$slots:{default:[Us]},$$scope:{ctx:V}}}),Je=new v({props:{name:"encode_prompt",anchor:"diffusers.LTX2Pipeline.encode_prompt",parameters:[{name:"prompt",val:": str | list[str]"},{name:"negative_prompt",val:": str | list[str] | None = None"},{name:"do_classifier_free_guidance",val:": bool = True"},{name:"num_videos_per_prompt",val:": int = 1"},{name:"prompt_embeds",val:": torch.Tensor | None = None"},{name:"negative_prompt_embeds",val:": torch.Tensor | None = None"},{name:"prompt_attention_mask",val:": torch.Tensor | None = None"},{name:"negative_prompt_attention_mask",val:": torch.Tensor | None = None"},{name:"max_sequence_length",val:": int = 1024"},{name:"scale_factor",val:": int = 8"},{name:"device",val:": torch.device | None = None"},{name:"dtype",val:": torch.dtype | None = None"}],parametersDescription:[{anchor:"diffusers.LTX2Pipeline.encode_prompt.prompt",description:`<strong>prompt</strong> (<code>str</code> or <code>list[str]</code>, <em>optional</em>) &#x2014;
prompt to be encoded`,name:"prompt"},{anchor:"diffusers.LTX2Pipeline.encode_prompt.negative_prompt",description:`<strong>negative_prompt</strong> (<code>str</code> or <code>list[str]</code>, <em>optional</em>) &#x2014;
The prompt or prompts not to guide the image generation. If not defined, one has to pass
<code>negative_prompt_embeds</code> instead. Ignored when not using guidance (i.e., ignored if <code>guidance_scale</code> is
less than <code>1</code>).`,name:"negative_prompt"},{anchor:"diffusers.LTX2Pipeline.encode_prompt.do_classifier_free_guidance",description:`<strong>do_classifier_free_guidance</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) &#x2014;
Whether to use classifier free guidance or not.`,name:"do_classifier_free_guidance"},{anchor:"diffusers.LTX2Pipeline.encode_prompt.num_videos_per_prompt",description:`<strong>num_videos_per_prompt</strong> (<code>int</code>, <em>optional</em>, defaults to 1) &#x2014;
Number of videos that should be generated per prompt. torch device to place the resulting embeddings on`,name:"num_videos_per_prompt"},{anchor:"diffusers.LTX2Pipeline.encode_prompt.prompt_embeds",description:`<strong>prompt_embeds</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Pre-generated text embeddings. Can be used to easily tweak text inputs, <em>e.g.</em> prompt weighting. If not
provided, text embeddings will be generated from <code>prompt</code> input argument.`,name:"prompt_embeds"},{anchor:"diffusers.LTX2Pipeline.encode_prompt.negative_prompt_embeds",description:`<strong>negative_prompt_embeds</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Pre-generated negative text embeddings. Can be used to easily tweak text inputs, <em>e.g.</em> prompt
weighting. If not provided, negative_prompt_embeds will be generated from <code>negative_prompt</code> input
argument.`,name:"negative_prompt_embeds"},{anchor:"diffusers.LTX2Pipeline.encode_prompt.device",description:`<strong>device</strong> &#x2014; (<code>torch.device</code>, <em>optional</em>):
torch device`,name:"device"},{anchor:"diffusers.LTX2Pipeline.encode_prompt.dtype",description:`<strong>dtype</strong> &#x2014; (<code>torch.dtype</code>, <em>optional</em>):
torch dtype`,name:"dtype"}],source:"https://github.com/huggingface/diffusers/blob/vr_13220/src/diffusers/pipelines/ltx2/pipeline_ltx2.py#L411"}}),we=new F({props:{title:"LTX2ImageToVideoPipeline",local:"diffusers.LTX2ImageToVideoPipeline",headingTag:"h2"}}),be=new v({props:{name:"class diffusers.LTX2ImageToVideoPipeline",anchor:"diffusers.LTX2ImageToVideoPipeline",parameters:[{name:"scheduler",val:": FlowMatchEulerDiscreteScheduler"},{name:"vae",val:": AutoencoderKLLTX2Video"},{name:"audio_vae",val:": AutoencoderKLLTX2Audio"},{name:"text_encoder",val:": Gemma3ForConditionalGeneration"},{name:"tokenizer",val:": transformers.models.gemma.tokenization_gemma.GemmaTokenizer | transformers.models.gemma.tokenization_gemma_fast.GemmaTokenizerFast"},{name:"connectors",val:": LTX2TextConnectors"},{name:"transformer",val:": LTX2VideoTransformer3DModel"},{name:"vocoder",val:": LTX2Vocoder"}],source:"https://github.com/huggingface/diffusers/blob/vr_13220/src/diffusers/pipelines/ltx2/pipeline_ltx2_image2video.py#L205"}}),Ue=new v({props:{name:"__call__",anchor:"diffusers.LTX2ImageToVideoPipeline.__call__",parameters:[{name:"image",val:": PIL.Image.Image | numpy.ndarray | torch.Tensor | list[PIL.Image.Image] | list[numpy.ndarray] | list[torch.Tensor] = None"},{name:"prompt",val:": str | list[str] = None"},{name:"negative_prompt",val:": str | list[str] | None = None"},{name:"height",val:": int = 512"},{name:"width",val:": int = 768"},{name:"num_frames",val:": int = 121"},{name:"frame_rate",val:": float = 24.0"},{name:"num_inference_steps",val:": int = 40"},{name:"sigmas",val:": list[float] | None = None"},{name:"timesteps",val:": list[int] | None = None"},{name:"guidance_scale",val:": float = 4.0"},{name:"guidance_rescale",val:": float = 0.0"},{name:"noise_scale",val:": float = 0.0"},{name:"num_videos_per_prompt",val:": int = 1"},{name:"generator",val:": torch._C.Generator | list[torch._C.Generator] | None = None"},{name:"latents",val:": torch.Tensor | None = None"},{name:"audio_latents",val:": torch.Tensor | None = None"},{name:"prompt_embeds",val:": torch.Tensor | None = None"},{name:"prompt_attention_mask",val:": torch.Tensor | None = None"},{name:"negative_prompt_embeds",val:": torch.Tensor | None = None"},{name:"negative_prompt_attention_mask",val:": torch.Tensor | None = None"},{name:"decode_timestep",val:": float | list[float] = 0.0"},{name:"decode_noise_scale",val:": float | list[float] | None = None"},{name:"output_type",val:": str = 'pil'"},{name:"return_dict",val:": bool = True"},{name:"attention_kwargs",val:": dict[str, typing.Any] | None = None"},{name:"callback_on_step_end",val:": typing.Optional[typing.Callable[[int, int], NoneType]] = None"},{name:"callback_on_step_end_tensor_inputs",val:": list = ['latents']"},{name:"max_sequence_length",val:": int = 1024"}],parametersDescription:[{anchor:"diffusers.LTX2ImageToVideoPipeline.__call__.image",description:`<strong>image</strong> (<code>PipelineImageInput</code>) &#x2014;
The input image to condition the generation on. Must be an image, a list of images or a <code>torch.Tensor</code>.`,name:"image"},{anchor:"diffusers.LTX2ImageToVideoPipeline.__call__.prompt",description:`<strong>prompt</strong> (<code>str</code> or <code>list[str]</code>, <em>optional</em>) &#x2014;
The prompt or prompts to guide the image generation. If not defined, one has to pass <code>prompt_embeds</code>.
instead.`,name:"prompt"},{anchor:"diffusers.LTX2ImageToVideoPipeline.__call__.height",description:`<strong>height</strong> (<code>int</code>, <em>optional</em>, defaults to <code>512</code>) &#x2014;
The height in pixels of the generated image. This is set to 480 by default for the best results.`,name:"height"},{anchor:"diffusers.LTX2ImageToVideoPipeline.__call__.width",description:`<strong>width</strong> (<code>int</code>, <em>optional</em>, defaults to <code>768</code>) &#x2014;
The width in pixels of the generated image. This is set to 848 by default for the best results.`,name:"width"},{anchor:"diffusers.LTX2ImageToVideoPipeline.__call__.num_frames",description:`<strong>num_frames</strong> (<code>int</code>, <em>optional</em>, defaults to <code>121</code>) &#x2014;
The number of video frames to generate`,name:"num_frames"},{anchor:"diffusers.LTX2ImageToVideoPipeline.__call__.frame_rate",description:`<strong>frame_rate</strong> (<code>float</code>, <em>optional</em>, defaults to <code>24.0</code>) &#x2014;
The frames per second (FPS) of the generated video.`,name:"frame_rate"},{anchor:"diffusers.LTX2ImageToVideoPipeline.__call__.num_inference_steps",description:`<strong>num_inference_steps</strong> (<code>int</code>, <em>optional</em>, defaults to 40) &#x2014;
The number of denoising steps. More denoising steps usually lead to a higher quality image at the
expense of slower inference.`,name:"num_inference_steps"},{anchor:"diffusers.LTX2ImageToVideoPipeline.__call__.sigmas",description:`<strong>sigmas</strong> (<code>List[float]</code>, <em>optional</em>) &#x2014;
Custom sigmas to use for the denoising process with schedulers which support a <code>sigmas</code> argument in
their <code>set_timesteps</code> method. If not defined, the default behavior when <code>num_inference_steps</code> is passed
will be used.`,name:"sigmas"},{anchor:"diffusers.LTX2ImageToVideoPipeline.__call__.timesteps",description:`<strong>timesteps</strong> (<code>List[int]</code>, <em>optional</em>) &#x2014;
Custom timesteps to use for the denoising process with schedulers which support a <code>timesteps</code> argument
in their <code>set_timesteps</code> method. If not defined, the default behavior when <code>num_inference_steps</code> is
passed will be used. Must be in descending order.`,name:"timesteps"},{anchor:"diffusers.LTX2ImageToVideoPipeline.__call__.guidance_scale",description:`<strong>guidance_scale</strong> (<code>float</code>, <em>optional</em>, defaults to <code>4.0</code>) &#x2014;
Guidance scale as defined in <a href="https://huggingface.co/papers/2207.12598" rel="nofollow">Classifier-Free Diffusion
Guidance</a>. <code>guidance_scale</code> is defined as <code>w</code> of equation 2.
of <a href="https://huggingface.co/papers/2205.11487" rel="nofollow">Imagen Paper</a>. Guidance scale is enabled by setting
<code>guidance_scale &gt; 1</code>. Higher guidance scale encourages to generate images that are closely linked to
the text <code>prompt</code>, usually at the expense of lower image quality.`,name:"guidance_scale"},{anchor:"diffusers.LTX2ImageToVideoPipeline.__call__.guidance_rescale",description:`<strong>guidance_rescale</strong> (<code>float</code>, <em>optional</em>, defaults to 0.0) &#x2014;
Guidance rescale factor proposed by <a href="https://huggingface.co/papers/2305.08891" rel="nofollow">Common Diffusion Noise Schedules and Sample Steps are
Flawed</a> <code>guidance_scale</code> is defined as <code>&#x3C6;</code> in equation 16. of
<a href="https://huggingface.co/papers/2305.08891" rel="nofollow">Common Diffusion Noise Schedules and Sample Steps are
Flawed</a>. Guidance rescale factor should fix overexposure when
using zero terminal SNR.`,name:"guidance_rescale"},{anchor:"diffusers.LTX2ImageToVideoPipeline.__call__.noise_scale",description:`<strong>noise_scale</strong> (<code>float</code>, <em>optional</em>, defaults to <code>0.0</code>) &#x2014;
The interpolation factor between random noise and denoised latents at each timestep. Applying noise to
the <code>latents</code> and <code>audio_latents</code> before continue denoising.`,name:"noise_scale"},{anchor:"diffusers.LTX2ImageToVideoPipeline.__call__.num_videos_per_prompt",description:`<strong>num_videos_per_prompt</strong> (<code>int</code>, <em>optional</em>, defaults to 1) &#x2014;
The number of videos to generate per prompt.`,name:"num_videos_per_prompt"},{anchor:"diffusers.LTX2ImageToVideoPipeline.__call__.generator",description:`<strong>generator</strong> (<code>torch.Generator</code> or <code>list[torch.Generator]</code>, <em>optional</em>) &#x2014;
One or a list of <a href="https://pytorch.org/docs/stable/generated/torch.Generator.html" rel="nofollow">torch generator(s)</a>
to make generation deterministic.`,name:"generator"},{anchor:"diffusers.LTX2ImageToVideoPipeline.__call__.latents",description:`<strong>latents</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Pre-generated noisy latents, sampled from a Gaussian distribution, to be used as inputs for video
generation. Can be used to tweak the same generation with different prompts. If not provided, a latents
tensor will be generated by sampling using the supplied random <code>generator</code>.`,name:"latents"},{anchor:"diffusers.LTX2ImageToVideoPipeline.__call__.audio_latents",description:`<strong>audio_latents</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Pre-generated noisy latents, sampled from a Gaussian distribution, to be used as inputs for audio
generation. Can be used to tweak the same generation with different prompts. If not provided, a latents
tensor will be generated by sampling using the supplied random <code>generator</code>.`,name:"audio_latents"},{anchor:"diffusers.LTX2ImageToVideoPipeline.__call__.prompt_embeds",description:`<strong>prompt_embeds</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Pre-generated text embeddings. Can be used to easily tweak text inputs, <em>e.g.</em> prompt weighting. If not
provided, text embeddings will be generated from <code>prompt</code> input argument.`,name:"prompt_embeds"},{anchor:"diffusers.LTX2ImageToVideoPipeline.__call__.prompt_attention_mask",description:`<strong>prompt_attention_mask</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Pre-generated attention mask for text embeddings.`,name:"prompt_attention_mask"},{anchor:"diffusers.LTX2ImageToVideoPipeline.__call__.negative_prompt_embeds",description:`<strong>negative_prompt_embeds</strong> (<code>torch.FloatTensor</code>, <em>optional</em>) &#x2014;
Pre-generated negative text embeddings. For PixArt-Sigma this negative prompt should be &quot;&quot;. If not
provided, negative_prompt_embeds will be generated from <code>negative_prompt</code> input argument.`,name:"negative_prompt_embeds"},{anchor:"diffusers.LTX2ImageToVideoPipeline.__call__.negative_prompt_attention_mask",description:`<strong>negative_prompt_attention_mask</strong> (<code>torch.FloatTensor</code>, <em>optional</em>) &#x2014;
Pre-generated attention mask for negative text embeddings.`,name:"negative_prompt_attention_mask"},{anchor:"diffusers.LTX2ImageToVideoPipeline.__call__.decode_timestep",description:`<strong>decode_timestep</strong> (<code>float</code>, defaults to <code>0.0</code>) &#x2014;
The timestep at which generated video is decoded.`,name:"decode_timestep"},{anchor:"diffusers.LTX2ImageToVideoPipeline.__call__.decode_noise_scale",description:`<strong>decode_noise_scale</strong> (<code>float</code>, defaults to <code>None</code>) &#x2014;
The interpolation factor between random noise and denoised latents at the decode timestep.`,name:"decode_noise_scale"},{anchor:"diffusers.LTX2ImageToVideoPipeline.__call__.output_type",description:`<strong>output_type</strong> (<code>str</code>, <em>optional</em>, defaults to <code>&quot;pil&quot;</code>) &#x2014;
The output format of the generate image. Choose between
<a href="https://pillow.readthedocs.io/en/stable/" rel="nofollow">PIL</a>: <code>PIL.Image.Image</code> or <code>np.array</code>.`,name:"output_type"},{anchor:"diffusers.LTX2ImageToVideoPipeline.__call__.return_dict",description:`<strong>return_dict</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) &#x2014;
Whether or not to return a <code>~pipelines.ltx.LTX2PipelineOutput</code> instead of a plain tuple.`,name:"return_dict"},{anchor:"diffusers.LTX2ImageToVideoPipeline.__call__.attention_kwargs",description:`<strong>attention_kwargs</strong> (<code>dict</code>, <em>optional</em>) &#x2014;
A kwargs dictionary that if specified is passed along to the <code>AttentionProcessor</code> as defined under
<code>self.processor</code> in
<a href="https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py" rel="nofollow">diffusers.models.attention_processor</a>.`,name:"attention_kwargs"},{anchor:"diffusers.LTX2ImageToVideoPipeline.__call__.callback_on_step_end",description:`<strong>callback_on_step_end</strong> (<code>Callable</code>, <em>optional</em>) &#x2014;
A function that calls at the end of each denoising steps during the inference. The function is called
with the following arguments: <code>callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict)</code>. <code>callback_kwargs</code> will include a list of all tensors as specified by
<code>callback_on_step_end_tensor_inputs</code>.`,name:"callback_on_step_end"},{anchor:"diffusers.LTX2ImageToVideoPipeline.__call__.callback_on_step_end_tensor_inputs",description:`<strong>callback_on_step_end_tensor_inputs</strong> (<code>List</code>, <em>optional</em>) &#x2014;
The list of tensor inputs for the <code>callback_on_step_end</code> function. The tensors specified in the list
will be passed as <code>callback_kwargs</code> argument. You will only be able to include variables listed in the
<code>._callback_tensor_inputs</code> attribute of your pipeline class.`,name:"callback_on_step_end_tensor_inputs"},{anchor:"diffusers.LTX2ImageToVideoPipeline.__call__.max_sequence_length",description:`<strong>max_sequence_length</strong> (<code>int</code>, <em>optional</em>, defaults to <code>1024</code>) &#x2014;
Maximum sequence length to use with the <code>prompt</code>.`,name:"max_sequence_length"}],source:"https://github.com/huggingface/diffusers/blob/vr_13220/src/diffusers/pipelines/ltx2/pipeline_ltx2_image2video.py#L834",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script>
<p>If <code>return_dict</code> is <code>True</code>, <code>~pipelines.ltx.LTX2PipelineOutput</code> is returned, otherwise a <code>tuple</code> is
returned where the first element is a list with the generated images.</p>
`,returnType:`<script context="module">export const metadata = 'undefined';<\/script>
<p><code>~pipelines.ltx.LTX2PipelineOutput</code> or <code>tuple</code></p>
`}}),z=new Kt({props:{anchor:"diffusers.LTX2ImageToVideoPipeline.__call__.example",$$slots:{default:[js]},$$scope:{ctx:V}}}),je=new v({props:{name:"encode_prompt",anchor:"diffusers.LTX2ImageToVideoPipeline.encode_prompt",parameters:[{name:"prompt",val:": str | list[str]"},{name:"negative_prompt",val:": str | list[str] | None = None"},{name:"do_classifier_free_guidance",val:": bool = True"},{name:"num_videos_per_prompt",val:": int = 1"},{name:"prompt_embeds",val:": torch.Tensor | None = None"},{name:"negative_prompt_embeds",val:": torch.Tensor | None = None"},{name:"prompt_attention_mask",val:": torch.Tensor | None = None"},{name:"negative_prompt_attention_mask",val:": torch.Tensor | None = None"},{name:"max_sequence_length",val:": int = 1024"},{name:"scale_factor",val:": int = 8"},{name:"device",val:": torch.device | None = None"},{name:"dtype",val:": torch.dtype | None = None"}],parametersDescription:[{anchor:"diffusers.LTX2ImageToVideoPipeline.encode_prompt.prompt",description:`<strong>prompt</strong> (<code>str</code> or <code>list[str]</code>, <em>optional</em>) &#x2014;
prompt to be encoded`,name:"prompt"},{anchor:"diffusers.LTX2ImageToVideoPipeline.encode_prompt.negative_prompt",description:`<strong>negative_prompt</strong> (<code>str</code> or <code>list[str]</code>, <em>optional</em>) &#x2014;
The prompt or prompts not to guide the image generation. If not defined, one has to pass
<code>negative_prompt_embeds</code> instead. Ignored when not using guidance (i.e., ignored if <code>guidance_scale</code> is
less than <code>1</code>).`,name:"negative_prompt"},{anchor:"diffusers.LTX2ImageToVideoPipeline.encode_prompt.do_classifier_free_guidance",description:`<strong>do_classifier_free_guidance</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) &#x2014;
Whether to use classifier free guidance or not.`,name:"do_classifier_free_guidance"},{anchor:"diffusers.LTX2ImageToVideoPipeline.encode_prompt.num_videos_per_prompt",description:`<strong>num_videos_per_prompt</strong> (<code>int</code>, <em>optional</em>, defaults to 1) &#x2014;
Number of videos that should be generated per prompt. torch device to place the resulting embeddings on`,name:"num_videos_per_prompt"},{anchor:"diffusers.LTX2ImageToVideoPipeline.encode_prompt.prompt_embeds",description:`<strong>prompt_embeds</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Pre-generated text embeddings. Can be used to easily tweak text inputs, <em>e.g.</em> prompt weighting. If not
provided, text embeddings will be generated from <code>prompt</code> input argument.`,name:"prompt_embeds"},{anchor:"diffusers.LTX2ImageToVideoPipeline.encode_prompt.negative_prompt_embeds",description:`<strong>negative_prompt_embeds</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Pre-generated negative text embeddings. Can be used to easily tweak text inputs, <em>e.g.</em> prompt
weighting. If not provided, negative_prompt_embeds will be generated from <code>negative_prompt</code> input
argument.`,name:"negative_prompt_embeds"},{anchor:"diffusers.LTX2ImageToVideoPipeline.encode_prompt.device",description:`<strong>device</strong> &#x2014; (<code>torch.device</code>, <em>optional</em>):
torch device`,name:"device"},{anchor:"diffusers.LTX2ImageToVideoPipeline.encode_prompt.dtype",description:`<strong>dtype</strong> &#x2014; (<code>torch.dtype</code>, <em>optional</em>):
torch dtype`,name:"dtype"}],source:"https://github.com/huggingface/diffusers/blob/vr_13220/src/diffusers/pipelines/ltx2/pipeline_ltx2_image2video.py#L417"}}),Ze=new F({props:{title:"LTX2ConditionPipeline",local:"diffusers.LTX2ConditionPipeline",headingTag:"h2"}}),ve=new v({props:{name:"class diffusers.LTX2ConditionPipeline",anchor:"diffusers.LTX2ConditionPipeline",parameters:[{name:"scheduler",val:": FlowMatchEulerDiscreteScheduler"},{name:"vae",val:": AutoencoderKLLTX2Video"},{name:"audio_vae",val:": AutoencoderKLLTX2Audio"},{name:"text_encoder",val:": Gemma3ForConditionalGeneration"},{name:"tokenizer",val:": transformers.models.gemma.tokenization_gemma.GemmaTokenizer | transformers.models.gemma.tokenization_gemma_fast.GemmaTokenizerFast"},{name:"connectors",val:": LTX2TextConnectors"},{name:"transformer",val:": LTX2VideoTransformer3DModel"},{name:"vocoder",val:": LTX2Vocoder"}],source:"https://github.com/huggingface/diffusers/blob/vr_13220/src/diffusers/pipelines/ltx2/pipeline_ltx2_condition.py#L235"}}),Ie=new v({props:{name:"__call__",anchor:"diffusers.LTX2ConditionPipeline.__call__",parameters:[{name:"conditions",val:": diffusers.pipelines.ltx2.pipeline_ltx2_condition.LTX2VideoCondition | list[diffusers.pipelines.ltx2.pipeline_ltx2_condition.LTX2VideoCondition] | None = None"},{name:"prompt",val:": str | list[str] = None"},{name:"negative_prompt",val:": str | list[str] | None = None"},{name:"height",val:": int = 512"},{name:"width",val:": int = 768"},{name:"num_frames",val:": int = 121"},{name:"frame_rate",val:": float = 24.0"},{name:"num_inference_steps",val:": int = 40"},{name:"sigmas",val:": list[float] | None = None"},{name:"timesteps",val:": list[float] | None = None"},{name:"guidance_scale",val:": float = 4.0"},{name:"guidance_rescale",val:": float = 0.0"},{name:"noise_scale",val:": float | None = None"},{name:"num_videos_per_prompt",val:": int | None = 1"},{name:"generator",val:": torch._C.Generator | list[torch._C.Generator] | None = None"},{name:"latents",val:": torch.Tensor | None = None"},{name:"audio_latents",val:": torch.Tensor | None = None"},{name:"prompt_embeds",val:": torch.Tensor | None = None"},{name:"prompt_attention_mask",val:": torch.Tensor | None = None"},{name:"negative_prompt_embeds",val:": torch.Tensor | None = None"},{name:"negative_prompt_attention_mask",val:": torch.Tensor | None = None"},{name:"decode_timestep",val:": float | list[float] = 0.0"},{name:"decode_noise_scale",val:": float | list[float] | None = None"},{name:"output_type",val:": str = 'pil'"},{name:"return_dict",val:": bool = True"},{name:"attention_kwargs",val:": dict[str, typing.Any] | None = None"},{name:"callback_on_step_end",val:": typing.Optional[typing.Callable[[int, int], NoneType]] = None"},{name:"callback_on_step_end_tensor_inputs",val:": list = ['latents']"},{name:"max_sequence_length",val:": int = 1024"}],parametersDescription:[{anchor:"diffusers.LTX2ConditionPipeline.__call__.conditions",description:`<strong>conditions</strong> (<code>List[LTXVideoCondition], *optional*</code>) &#x2014;
The list of frame-conditioning items for the video generation.`,name:"conditions"},{anchor:"diffusers.LTX2ConditionPipeline.__call__.prompt",description:`<strong>prompt</strong> (<code>str</code> or <code>List[str]</code>, <em>optional</em>) &#x2014;
The prompt or prompts to guide the image generation. If not defined, one has to pass <code>prompt_embeds</code>.
instead.`,name:"prompt"},{anchor:"diffusers.LTX2ConditionPipeline.__call__.height",description:`<strong>height</strong> (<code>int</code>, <em>optional</em>, defaults to <code>512</code>) &#x2014;
The height in pixels of the generated image. This is set to 480 by default for the best results.`,name:"height"},{anchor:"diffusers.LTX2ConditionPipeline.__call__.width",description:`<strong>width</strong> (<code>int</code>, <em>optional</em>, defaults to <code>768</code>) &#x2014;
The width in pixels of the generated image. This is set to 848 by default for the best results.`,name:"width"},{anchor:"diffusers.LTX2ConditionPipeline.__call__.num_frames",description:`<strong>num_frames</strong> (<code>int</code>, <em>optional</em>, defaults to <code>121</code>) &#x2014;
The number of video frames to generate`,name:"num_frames"},{anchor:"diffusers.LTX2ConditionPipeline.__call__.frame_rate",description:`<strong>frame_rate</strong> (<code>float</code>, <em>optional</em>, defaults to <code>24.0</code>) &#x2014;
The frames per second (FPS) of the generated video.`,name:"frame_rate"},{anchor:"diffusers.LTX2ConditionPipeline.__call__.num_inference_steps",description:`<strong>num_inference_steps</strong> (<code>int</code>, <em>optional</em>, defaults to 40) &#x2014;
The number of denoising steps. More denoising steps usually lead to a higher quality image at the
expense of slower inference.`,name:"num_inference_steps"},{anchor:"diffusers.LTX2ConditionPipeline.__call__.sigmas",description:`<strong>sigmas</strong> (<code>List[float]</code>, <em>optional</em>) &#x2014;
Custom sigmas to use for the denoising process with schedulers which support a <code>sigmas</code> argument in
their <code>set_timesteps</code> method. If not defined, the default behavior when <code>num_inference_steps</code> is passed
will be used.`,name:"sigmas"},{anchor:"diffusers.LTX2ConditionPipeline.__call__.timesteps",description:`<strong>timesteps</strong> (<code>List[int]</code>, <em>optional</em>) &#x2014;
Custom timesteps to use for the denoising process with schedulers which support a <code>timesteps</code> argument
in their <code>set_timesteps</code> method. If not defined, the default behavior when <code>num_inference_steps</code> is
passed will be used. Must be in descending order.`,name:"timesteps"},{anchor:"diffusers.LTX2ConditionPipeline.__call__.guidance_scale",description:`<strong>guidance_scale</strong> (<code>float</code>, <em>optional</em>, defaults to <code>4.0</code>) &#x2014;
Guidance scale as defined in <a href="https://huggingface.co/papers/2207.12598" rel="nofollow">Classifier-Free Diffusion
Guidance</a>. <code>guidance_scale</code> is defined as <code>w</code> of equation 2.
of <a href="https://huggingface.co/papers/2205.11487" rel="nofollow">Imagen Paper</a>. Guidance scale is enabled by setting
<code>guidance_scale &gt; 1</code>. Higher guidance scale encourages to generate images that are closely linked to
the text <code>prompt</code>, usually at the expense of lower image quality.`,name:"guidance_scale"},{anchor:"diffusers.LTX2ConditionPipeline.__call__.guidance_rescale",description:`<strong>guidance_rescale</strong> (<code>float</code>, <em>optional</em>, defaults to 0.0) &#x2014;
Guidance rescale factor proposed by <a href="https://huggingface.co/papers/2305.08891" rel="nofollow">Common Diffusion Noise Schedules and Sample Steps are
Flawed</a> <code>guidance_scale</code> is defined as <code>&#x3C6;</code> in equation 16. of
<a href="https://huggingface.co/papers/2305.08891" rel="nofollow">Common Diffusion Noise Schedules and Sample Steps are
Flawed</a>. Guidance rescale factor should fix overexposure when
using zero terminal SNR.`,name:"guidance_rescale"},{anchor:"diffusers.LTX2ConditionPipeline.__call__.noise_scale",description:`<strong>noise_scale</strong> (<code>float</code>, <em>optional</em>, defaults to <code>None</code>) &#x2014;
The interpolation factor between random noise and denoised latents at each timestep. Applying noise to
the <code>latents</code> and <code>audio_latents</code> before continue denoising. If not set, will be inferred from the
sigma schedule.`,name:"noise_scale"},{anchor:"diffusers.LTX2ConditionPipeline.__call__.num_videos_per_prompt",description:`<strong>num_videos_per_prompt</strong> (<code>int</code>, <em>optional</em>, defaults to 1) &#x2014;
The number of videos to generate per prompt.`,name:"num_videos_per_prompt"},{anchor:"diffusers.LTX2ConditionPipeline.__call__.generator",description:`<strong>generator</strong> (<code>torch.Generator</code> or <code>List[torch.Generator]</code>, <em>optional</em>) &#x2014;
One or a list of <a href="https://pytorch.org/docs/stable/generated/torch.Generator.html" rel="nofollow">torch generator(s)</a>
to make generation deterministic.`,name:"generator"},{anchor:"diffusers.LTX2ConditionPipeline.__call__.latents",description:`<strong>latents</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Pre-generated noisy latents, sampled from a Gaussian distribution, to be used as inputs for video
generation. Can be used to tweak the same generation with different prompts. If not provided, a latents
tensor will be generated by sampling using the supplied random <code>generator</code>.`,name:"latents"},{anchor:"diffusers.LTX2ConditionPipeline.__call__.audio_latents",description:`<strong>audio_latents</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Pre-generated noisy latents, sampled from a Gaussian distribution, to be used as inputs for audio
generation. Can be used to tweak the same generation with different prompts. If not provided, a latents
tensor will be generated by sampling using the supplied random <code>generator</code>.`,name:"audio_latents"},{anchor:"diffusers.LTX2ConditionPipeline.__call__.prompt_embeds",description:`<strong>prompt_embeds</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Pre-generated text embeddings. Can be used to easily tweak text inputs, <em>e.g.</em> prompt weighting. If not
provided, text embeddings will be generated from <code>prompt</code> input argument.`,name:"prompt_embeds"},{anchor:"diffusers.LTX2ConditionPipeline.__call__.prompt_attention_mask",description:`<strong>prompt_attention_mask</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Pre-generated attention mask for text embeddings.`,name:"prompt_attention_mask"},{anchor:"diffusers.LTX2ConditionPipeline.__call__.negative_prompt_embeds",description:`<strong>negative_prompt_embeds</strong> (<code>torch.FloatTensor</code>, <em>optional</em>) &#x2014;
Pre-generated negative text embeddings. For PixArt-Sigma this negative prompt should be &quot;&quot;. If not
provided, negative_prompt_embeds will be generated from <code>negative_prompt</code> input argument.`,name:"negative_prompt_embeds"},{anchor:"diffusers.LTX2ConditionPipeline.__call__.negative_prompt_attention_mask",description:`<strong>negative_prompt_attention_mask</strong> (<code>torch.FloatTensor</code>, <em>optional</em>) &#x2014;
Pre-generated attention mask for negative text embeddings.`,name:"negative_prompt_attention_mask"},{anchor:"diffusers.LTX2ConditionPipeline.__call__.decode_timestep",description:`<strong>decode_timestep</strong> (<code>float</code>, defaults to <code>0.0</code>) &#x2014;
The timestep at which generated video is decoded.`,name:"decode_timestep"},{anchor:"diffusers.LTX2ConditionPipeline.__call__.decode_noise_scale",description:`<strong>decode_noise_scale</strong> (<code>float</code>, defaults to <code>None</code>) &#x2014;
The interpolation factor between random noise and denoised latents at the decode timestep.`,name:"decode_noise_scale"},{anchor:"diffusers.LTX2ConditionPipeline.__call__.output_type",description:`<strong>output_type</strong> (<code>str</code>, <em>optional</em>, defaults to <code>&quot;pil&quot;</code>) &#x2014;
The output format of the generate image. Choose between
<a href="https://pillow.readthedocs.io/en/stable/" rel="nofollow">PIL</a>: <code>PIL.Image.Image</code> or <code>np.array</code>.`,name:"output_type"},{anchor:"diffusers.LTX2ConditionPipeline.__call__.return_dict",description:`<strong>return_dict</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) &#x2014;
Whether or not to return a <code>~pipelines.ltx.LTX2PipelineOutput</code> instead of a plain tuple.`,name:"return_dict"},{anchor:"diffusers.LTX2ConditionPipeline.__call__.attention_kwargs",description:`<strong>attention_kwargs</strong> (<code>dict</code>, <em>optional</em>) &#x2014;
A kwargs dictionary that if specified is passed along to the <code>AttentionProcessor</code> as defined under
<code>self.processor</code> in
<a href="https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py" rel="nofollow">diffusers.models.attention_processor</a>.`,name:"attention_kwargs"},{anchor:"diffusers.LTX2ConditionPipeline.__call__.callback_on_step_end",description:`<strong>callback_on_step_end</strong> (<code>Callable</code>, <em>optional</em>) &#x2014;
A function that calls at the end of each denoising steps during the inference. The function is called
with the following arguments: <code>callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict)</code>. <code>callback_kwargs</code> will include a list of all tensors as specified by
<code>callback_on_step_end_tensor_inputs</code>.`,name:"callback_on_step_end"},{anchor:"diffusers.LTX2ConditionPipeline.__call__.callback_on_step_end_tensor_inputs",description:`<strong>callback_on_step_end_tensor_inputs</strong> (<code>List</code>, <em>optional</em>) &#x2014;
The list of tensor inputs for the <code>callback_on_step_end</code> function. The tensors specified in the list
will be passed as <code>callback_kwargs</code> argument. You will only be able to include variables listed in the
<code>._callback_tensor_inputs</code> attribute of your pipeline class.`,name:"callback_on_step_end_tensor_inputs"},{anchor:"diffusers.LTX2ConditionPipeline.__call__.max_sequence_length",description:`<strong>max_sequence_length</strong> (<code>int</code>, <em>optional</em>, defaults to <code>1024</code>) &#x2014;
Maximum sequence length to use with the <code>prompt</code>.`,name:"max_sequence_length"}],source:"https://github.com/huggingface/diffusers/blob/vr_13220/src/diffusers/pipelines/ltx2/pipeline_ltx2_condition.py#L1015",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script>
<p>If <code>return_dict</code> is <code>True</code>, <code>~pipelines.ltx.LTX2PipelineOutput</code> is returned, otherwise a <code>tuple</code> is
returned where the first element is a list with the generated images.</p>
`,returnType:`<script context="module">export const metadata = 'undefined';<\/script>
<p><code>~pipelines.ltx.LTX2PipelineOutput</code> or <code>tuple</code></p>
`}}),H=new Kt({props:{anchor:"diffusers.LTX2ConditionPipeline.__call__.example",$$slots:{default:[Zs]},$$scope:{ctx:V}}}),Xe=new v({props:{name:"apply_visual_conditioning",anchor:"diffusers.LTX2ConditionPipeline.apply_visual_conditioning",parameters:[{name:"latents",val:": Tensor"},{name:"conditioning_mask",val:": Tensor"},{name:"condition_latents",val:": list"},{name:"condition_strengths",val:": list"},{name:"condition_indices",val:": list"},{name:"latent_height",val:": int"},{name:"latent_width",val:": int"}],parametersDescription:[{anchor:"diffusers.LTX2ConditionPipeline.apply_visual_conditioning.latents",description:`<strong>latents</strong> (<code>torch.Tensor</code>) &#x2014;
Initial packed (patchified) latents of shape [batch_size, patch_seq_len, hidden_dim].`,name:"latents"},{anchor:"diffusers.LTX2ConditionPipeline.apply_visual_conditioning.conditioning_mask",description:`<strong>conditioning_mask</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Initial packed (patchified) conditioning mask of shape [batch_size, patch_seq_len, 1] with values in
[0, 1] where 0 means that the denoising model output will be fully used and 1 means that the condition
will be fully used (with intermediate values specifying a blend of the denoised and latent values).`,name:"conditioning_mask"}],source:"https://github.com/huggingface/diffusers/blob/vr_13220/src/diffusers/pipelines/ltx2/pipeline_ltx2_condition.py#L824",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script>
<p>Returns a 3-tuple of tensors where:</p>
<ol>
<li>The first element is the packed video latents (with unchanged shape [batch_size, patch_seq_len,
hidden_dim]) with the conditions applied</li>
<li>The second element is the packed conditioning mask with conditioning strengths applied</li>
<li>The third element holds the clean conditioning latents.</li>
</ol>
`,returnType:`<script context="module">export const metadata = 'undefined';<\/script>
<p><code>Tuple[torch.Tensor, torch.Tensor, torch.Tensor]</code></p>
`}}),Ge=new v({props:{name:"encode_prompt",anchor:"diffusers.LTX2ConditionPipeline.encode_prompt",parameters:[{name:"prompt",val:": str | list[str]"},{name:"negative_prompt",val:": str | list[str] | None = None"},{name:"do_classifier_free_guidance",val:": bool = True"},{name:"num_videos_per_prompt",val:": int = 1"},{name:"prompt_embeds",val:": torch.Tensor | None = None"},{name:"negative_prompt_embeds",val:": torch.Tensor | None = None"},{name:"prompt_attention_mask",val:": torch.Tensor | None = None"},{name:"negative_prompt_attention_mask",val:": torch.Tensor | None = None"},{name:"max_sequence_length",val:": int = 1024"},{name:"scale_factor",val:": int = 8"},{name:"device",val:": torch.device | None = None"},{name:"dtype",val:": torch.dtype | None = None"}],parametersDescription:[{anchor:"diffusers.LTX2ConditionPipeline.encode_prompt.prompt",description:`<strong>prompt</strong> (<code>str</code> or <code>list[str]</code>, <em>optional</em>) &#x2014;
prompt to be encoded`,name:"prompt"},{anchor:"diffusers.LTX2ConditionPipeline.encode_prompt.negative_prompt",description:`<strong>negative_prompt</strong> (<code>str</code> or <code>list[str]</code>, <em>optional</em>) &#x2014;
The prompt or prompts not to guide the image generation. If not defined, one has to pass
<code>negative_prompt_embeds</code> instead. Ignored when not using guidance (i.e., ignored if <code>guidance_scale</code> is
less than <code>1</code>).`,name:"negative_prompt"},{anchor:"diffusers.LTX2ConditionPipeline.encode_prompt.do_classifier_free_guidance",description:`<strong>do_classifier_free_guidance</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) &#x2014;
Whether to use classifier free guidance or not.`,name:"do_classifier_free_guidance"},{anchor:"diffusers.LTX2ConditionPipeline.encode_prompt.num_videos_per_prompt",description:`<strong>num_videos_per_prompt</strong> (<code>int</code>, <em>optional</em>, defaults to 1) &#x2014;
Number of videos that should be generated per prompt. torch device to place the resulting embeddings on`,name:"num_videos_per_prompt"},{anchor:"diffusers.LTX2ConditionPipeline.encode_prompt.prompt_embeds",description:`<strong>prompt_embeds</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Pre-generated text embeddings. Can be used to easily tweak text inputs, <em>e.g.</em> prompt weighting. If not
provided, text embeddings will be generated from <code>prompt</code> input argument.`,name:"prompt_embeds"},{anchor:"diffusers.LTX2ConditionPipeline.encode_prompt.negative_prompt_embeds",description:`<strong>negative_prompt_embeds</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Pre-generated negative text embeddings. Can be used to easily tweak text inputs, <em>e.g.</em> prompt
weighting. If not provided, negative_prompt_embeds will be generated from <code>negative_prompt</code> input
argument.`,name:"negative_prompt_embeds"},{anchor:"diffusers.LTX2ConditionPipeline.encode_prompt.device",description:`<strong>device</strong> &#x2014; (<code>torch.device</code>, <em>optional</em>):
torch device`,name:"device"},{anchor:"diffusers.LTX2ConditionPipeline.encode_prompt.dtype",description:`<strong>dtype</strong> &#x2014; (<code>torch.dtype</code>, <em>optional</em>):
torch dtype`,name:"dtype"}],source:"https://github.com/huggingface/diffusers/blob/vr_13220/src/diffusers/pipelines/ltx2/pipeline_ltx2_condition.py#L446"}}),Be=new v({props:{name:"preprocess_conditions",anchor:"diffusers.LTX2ConditionPipeline.preprocess_conditions",parameters:[{name:"conditions",val:": diffusers.pipelines.ltx2.pipeline_ltx2_condition.LTX2VideoCondition | list[diffusers.pipelines.ltx2.pipeline_ltx2_condition.LTX2VideoCondition] | None = None"},{name:"height",val:": int = 512"},{name:"width",val:": int = 768"},{name:"num_frames",val:": int = 121"},{name:"device",val:": torch.device | None = None"}],parametersDescription:[{anchor:"diffusers.LTX2ConditionPipeline.preprocess_conditions.conditions",description:`<strong>conditions</strong> (<code>LTX2VideoCondition</code> or <code>List[LTX2VideoCondition]</code>, <em>optional</em>, defaults to <code>None</code>) &#x2014;
A list of image/video condition instances.`,name:"conditions"},{anchor:"diffusers.LTX2ConditionPipeline.preprocess_conditions.height",description:`<strong>height</strong> (<code>int</code>, <em>optional</em>, defaults to <code>512</code>) &#x2014;
The desired height in pixels.`,name:"height"},{anchor:"diffusers.LTX2ConditionPipeline.preprocess_conditions.width",description:`<strong>width</strong> (<code>int</code>, <em>optional</em>, defaults to <code>768</code>) &#x2014;
The desired width in pixels.`,name:"width"},{anchor:"diffusers.LTX2ConditionPipeline.preprocess_conditions.num_frames",description:`<strong>num_frames</strong> (<code>int</code>, <em>optional</em>, defaults to <code>121</code>) &#x2014;
The desired number of frames in the generated video.`,name:"num_frames"},{anchor:"diffusers.LTX2ConditionPipeline.preprocess_conditions.device",description:`<strong>device</strong> (<code>torch.device</code>, <em>optional</em>, defaults to <code>None</code>) &#x2014;
The device on which to put the preprocessed image/video tensors.`,name:"device"}],source:"https://github.com/huggingface/diffusers/blob/vr_13220/src/diffusers/pipelines/ltx2/pipeline_ltx2_condition.py#L742",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script>
<p>Returns a 3-tuple of lists of length <code>len(conditions)</code> as follows:</p>
<ol>
<li>The first list is a list of preprocessed video tensors of shape [batch_size=1, num_channels,
num_frames, height, width].</li>
<li>The second list is a list of conditioning strengths.</li>
<li>The third list is a list of indices in latent space to insert the corresponding condition.</li>
</ol>
`,returnType:`<script context="module">export const metadata = 'undefined';<\/script>
<p><code>Tuple[List[torch.Tensor], List[float], List[int]]</code></p>
`}}),We=new v({props:{name:"trim_conditioning_sequence",anchor:"diffusers.LTX2ConditionPipeline.trim_conditioning_sequence",parameters:[{name:"start_frame",val:": int"},{name:"sequence_num_frames",val:": int"},{name:"target_num_frames",val:": int"}],parametersDescription:[{anchor:"diffusers.LTX2ConditionPipeline.trim_conditioning_sequence.start_frame",description:"<strong>start_frame</strong> (int) &#x2014; The target frame number of the first frame in the sequence.",name:"start_frame"},{anchor:"diffusers.LTX2ConditionPipeline.trim_conditioning_sequence.sequence_num_frames",description:"<strong>sequence_num_frames</strong> (int) &#x2014; The number of frames in the sequence.",name:"sequence_num_frames"},{anchor:"diffusers.LTX2ConditionPipeline.trim_conditioning_sequence.target_num_frames",description:"<strong>target_num_frames</strong> (int) &#x2014; The target number of frames in the generated video.",name:"target_num_frames"}],source:"https://github.com/huggingface/diffusers/blob/vr_13220/src/diffusers/pipelines/ltx2/pipeline_ltx2_condition.py#L725",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script>
<p>updated sequence length</p>
`,returnType:`<script context="module">export const metadata = 'undefined';<\/script>
<p>int</p>
`}}),Ve=new F({props:{title:"LTX2LatentUpsamplePipeline",local:"diffusers.LTX2LatentUpsamplePipeline",headingTag:"h2"}}),Ce=new v({props:{name:"class diffusers.LTX2LatentUpsamplePipeline",anchor:"diffusers.LTX2LatentUpsamplePipeline",parameters:[{name:"vae",val:": AutoencoderKLLTX2Video"},{name:"latent_upsampler",val:": LTX2LatentUpsamplerModel"}],source:"https://github.com/huggingface/diffusers/blob/vr_13220/src/diffusers/pipelines/ltx2/pipeline_ltx2_latent_upsample.py#L104"}}),xe=new v({props:{name:"__call__",anchor:"diffusers.LTX2LatentUpsamplePipeline.__call__",parameters:[{name:"video",val:": list[PIL.Image.Image | numpy.ndarray | torch.Tensor | list[PIL.Image.Image] | list[numpy.ndarray] | list[torch.Tensor]] | None = None"},{name:"height",val:": int = 512"},{name:"width",val:": int = 768"},{name:"num_frames",val:": int = 121"},{name:"spatial_patch_size",val:": int = 1"},{name:"temporal_patch_size",val:": int = 1"},{name:"latents",val:": torch.Tensor | None = None"},{name:"latents_normalized",val:": bool = False"},{name:"decode_timestep",val:": float | list[float] = 0.0"},{name:"decode_noise_scale",val:": float | list[float] | None = None"},{name:"adain_factor",val:": float = 0.0"},{name:"tone_map_compression_ratio",val:": float = 0.0"},{name:"generator",val:": torch._C.Generator | list[torch._C.Generator] | None = None"},{name:"output_type",val:": str | None = 'pil'"},{name:"return_dict",val:": bool = True"}],parametersDescription:[{anchor:"diffusers.LTX2LatentUpsamplePipeline.__call__.video",description:`<strong>video</strong> (<code>list[PipelineImageInput]</code>, <em>optional</em>) &#x2014;
The video to be upsampled (such as a LTX 2.0 first stage output). If not supplied, <code>latents</code> should be
supplied.`,name:"video"},{anchor:"diffusers.LTX2LatentUpsamplePipeline.__call__.height",description:`<strong>height</strong> (<code>int</code>, <em>optional</em>, defaults to <code>512</code>) &#x2014;
The height in pixels of the input video (not the generated video, which will have a larger resolution).`,name:"height"},{anchor:"diffusers.LTX2LatentUpsamplePipeline.__call__.width",description:`<strong>width</strong> (<code>int</code>, <em>optional</em>, defaults to <code>768</code>) &#x2014;
The width in pixels of the input video (not the generated video, which will have a larger resolution).`,name:"width"},{anchor:"diffusers.LTX2LatentUpsamplePipeline.__call__.num_frames",description:`<strong>num_frames</strong> (<code>int</code>, <em>optional</em>, defaults to <code>121</code>) &#x2014;
The number of frames in the input video.`,name:"num_frames"},{anchor:"diffusers.LTX2LatentUpsamplePipeline.__call__.spatial_patch_size",description:`<strong>spatial_patch_size</strong> (<code>int</code>, <em>optional</em>, defaults to <code>1</code>) &#x2014;
The spatial patch size of the video latents. Used when <code>latents</code> is supplied if unpacking is necessary.`,name:"spatial_patch_size"},{anchor:"diffusers.LTX2LatentUpsamplePipeline.__call__.temporal_patch_size",description:`<strong>temporal_patch_size</strong> (<code>int</code>, <em>optional</em>, defaults to <code>1</code>) &#x2014;
The temporal patch size of the video latents. Used when <code>latents</code> is supplied if unpacking is
necessary.`,name:"temporal_patch_size"},{anchor:"diffusers.LTX2LatentUpsamplePipeline.__call__.latents",description:`<strong>latents</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Pre-generated video latents. This can be supplied in place of the <code>video</code> argument. Can either be a
patch sequence of shape <code>(batch_size, seq_len, hidden_dim)</code> or a video latent of shape <code>(batch_size, latent_channels, latent_frames, latent_height, latent_width)</code>.`,name:"latents"},{anchor:"diffusers.LTX2LatentUpsamplePipeline.__call__.latents_normalized",description:`<strong>latents_normalized</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) &#x2014;
If <code>latents</code> are supplied, whether the <code>latents</code> are normalized using the VAE latent mean and std. If
<code>True</code>, the <code>latents</code> will be denormalized before being supplied to the latent upsampler.`,name:"latents_normalized"},{anchor:"diffusers.LTX2LatentUpsamplePipeline.__call__.decode_timestep",description:`<strong>decode_timestep</strong> (<code>float</code>, defaults to <code>0.0</code>) &#x2014;
The timestep at which generated video is decoded.`,name:"decode_timestep"},{anchor:"diffusers.LTX2LatentUpsamplePipeline.__call__.decode_noise_scale",description:`<strong>decode_noise_scale</strong> (<code>float</code>, defaults to <code>None</code>) &#x2014;
The interpolation factor between random noise and denoised latents at the decode timestep.`,name:"decode_noise_scale"},{anchor:"diffusers.LTX2LatentUpsamplePipeline.__call__.adain_factor",description:`<strong>adain_factor</strong> (<code>float</code>, <em>optional</em>, defaults to <code>0.0</code>) &#x2014;
Adaptive Instance Normalization (AdaIN) blending factor between the upsampled and original latents.
Should be in [-10.0, 10.0]; supplying 0.0 (the default) means that AdaIN is not performed.`,name:"adain_factor"},{anchor:"diffusers.LTX2LatentUpsamplePipeline.__call__.tone_map_compression_ratio",description:`<strong>tone_map_compression_ratio</strong> (<code>float</code>, <em>optional</em>, defaults to <code>0.0</code>) &#x2014;
The compression strength for tone mapping, which will reduce the dynamic range of the latent values.
This is useful for regularizing high-variance latents or for conditioning outputs during generation.
Should be in [0, 1], where 0.0 (the default) means tone mapping is not applied and 1.0 corresponds to
the full compression effect.`,name:"tone_map_compression_ratio"},{anchor:"diffusers.LTX2LatentUpsamplePipeline.__call__.generator",description:`<strong>generator</strong> (<code>torch.Generator</code> or <code>list[torch.Generator]</code>, <em>optional</em>) &#x2014;
One or a list of <a href="https://pytorch.org/docs/stable/generated/torch.Generator.html" rel="nofollow">torch generator(s)</a>
to make generation deterministic.`,name:"generator"},{anchor:"diffusers.LTX2LatentUpsamplePipeline.__call__.output_type",description:`<strong>output_type</strong> (<code>str</code>, <em>optional</em>, defaults to <code>&quot;pil&quot;</code>) &#x2014;
The output format of the generate image. Choose between
<a href="https://pillow.readthedocs.io/en/stable/" rel="nofollow">PIL</a>: <code>PIL.Image.Image</code> or <code>np.array</code>.`,name:"output_type"},{anchor:"diffusers.LTX2LatentUpsamplePipeline.__call__.return_dict",description:`<strong>return_dict</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) &#x2014;
Whether or not to return a <code>~pipelines.ltx.LTXPipelineOutput</code> instead of a plain tuple.`,name:"return_dict"}],source:"https://github.com/huggingface/diffusers/blob/vr_13220/src/diffusers/pipelines/ltx2/pipeline_ltx2_latent_upsample.py#L264",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script>
<p>If <code>return_dict</code> is <code>True</code>, <code>~pipelines.ltx.LTXPipelineOutput</code> is returned, otherwise a <code>tuple</code> is
returned where the first element is the upsampled video.</p>
`,returnType:`<script context="module">export const metadata = 'undefined';<\/script>
<p><code>~pipelines.ltx.LTXPipelineOutput</code> or <code>tuple</code></p>
`}}),q=new Kt({props:{anchor:"diffusers.LTX2LatentUpsamplePipeline.__call__.example",$$slots:{default:[vs]},$$scope:{ctx:V}}}),ke=new v({props:{name:"adain_filter_latent",anchor:"diffusers.LTX2LatentUpsamplePipeline.adain_filter_latent",parameters:[{name:"latents",val:": Tensor"},{name:"reference_latents",val:": Tensor"},{name:"factor",val:": float = 1.0"}],parametersDescription:[{anchor:"diffusers.LTX2LatentUpsamplePipeline.adain_filter_latent.latent",description:`<strong>latent</strong> (<code>torch.Tensor</code>) &#x2014;
Input latents to normalize`,name:"latent"},{anchor:"diffusers.LTX2LatentUpsamplePipeline.adain_filter_latent.reference_latents",description:`<strong>reference_latents</strong> (<code>torch.Tensor</code>) &#x2014;
The reference latents providing style statistics.`,name:"reference_latents"},{anchor:"diffusers.LTX2LatentUpsamplePipeline.adain_filter_latent.factor",description:`<strong>factor</strong> (<code>float</code>) &#x2014;
Blending factor between original and transformed latent. Range: -10.0 to 10.0, Default: 1.0`,name:"factor"}],source:"https://github.com/huggingface/diffusers/blob/vr_13220/src/diffusers/pipelines/ltx2/pipeline_ltx2_latent_upsample.py#L168",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script>
<p>The transformed latent tensor</p>
`,returnType:`<script context="module">export const metadata = 'undefined';<\/script>
<p>torch.Tensor</p>
`}}),Re=new v({props:{name:"tone_map_latents",anchor:"diffusers.LTX2LatentUpsamplePipeline.tone_map_latents",parameters:[{name:"latents",val:": Tensor"},{name:"compression",val:": float"}],parametersDescription:[{anchor:"diffusers.LTX2LatentUpsamplePipeline.tone_map_latents.latents",description:`<strong>latents</strong> &#x2014; torch.Tensor
Input latent tensor with arbitrary shape. Expected to be roughly in [-1, 1] or [0, 1] range.`,name:"latents"},{anchor:"diffusers.LTX2LatentUpsamplePipeline.tone_map_latents.compression",description:`<strong>compression</strong> &#x2014; float
Compression strength in the range [0, 1].
<ul>
<li>0.0: No tone-mapping (identity transform)</li>
<li>1.0: Full compression effect</li>
</ul>`,name:"compression"}],source:"https://github.com/huggingface/diffusers/blob/vr_13220/src/diffusers/pipelines/ltx2/pipeline_ltx2_latent_upsample.py#L196",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script>
<p>torch.Tensor
The tone-mapped latent tensor of the same shape as input.</p>
`}}),Ne=new F({props:{title:"LTX2PipelineOutput",local:"diffusers.pipelines.ltx2.pipeline_output.LTX2PipelineOutput",headingTag:"h2"}}),Le=new v({props:{name:"class diffusers.pipelines.ltx2.pipeline_output.LTX2PipelineOutput",anchor:"diffusers.pipelines.ltx2.pipeline_output.LTX2PipelineOutput",parameters:[{name:"frames",val:": Tensor"},{name:"audio",val:": Tensor"}],parametersDescription:[{anchor:"diffusers.pipelines.ltx2.pipeline_output.LTX2PipelineOutput.frames",description:`<strong>frames</strong> (<code>torch.Tensor</code>, <code>np.ndarray</code>, or list[list[PIL.Image.Image]]) &#x2014;
List of video outputs - It can be a nested list of length <code>batch_size,</code> with each sub-list containing
denoised PIL image sequences of length <code>num_frames.</code> It can also be a NumPy array or Torch tensor of shape
<code>(batch_size, num_frames, channels, height, width)</code>.`,name:"frames"},{anchor:"diffusers.pipelines.ltx2.pipeline_output.LTX2PipelineOutput.audio",description:`<strong>audio</strong> (<code>torch.Tensor</code>, <code>np.ndarray</code>) &#x2014;
TODO`,name:"audio"}],source:"https://github.com/huggingface/diffusers/blob/vr_13220/src/diffusers/pipelines/ltx2/pipeline_output.py#L9"}}),Ee=new bs({props:{source:"https://github.com/huggingface/diffusers/blob/main/docs/source/en/api/pipelines/ltx2.md"}}),{c(){p=r("meta"),I=s(),y=r("p"),_=s(),c(T.$$.fragment),o=s(),J=r("div"),J.innerHTML=Ln,Mt=s(),te=r("p"),te.textContent=En,gt=s(),ne=r("p"),ne.innerHTML=Fn,ft=s(),se=r("p"),se.innerHTML=Qn,_t=s(),c(ae.$$.fragment),Tt=s(),le=r("p"),le.textContent=Yn,yt=s(),oe=r("ul"),oe.innerHTML=zn,Jt=s(),ie=r("p"),ie.textContent=Sn,wt=s(),c(re.$$.fragment),bt=s(),c(de.$$.fragment),Ut=s(),pe=r("p"),pe.textContent=Hn,jt=s(),c(ce.$$.fragment),Zt=s(),c(me.$$.fragment),vt=s(),ue=r("p"),ue.innerHTML=An,It=s(),c(he.$$.fragment),Xt=s(),Me=r("p"),Me.textContent=$n,Gt=s(),c(ge.$$.fragment),Bt=s(),fe=r("p"),fe.textContent=Pn,Wt=s(),c(_e.$$.fragment),Vt=s(),X=r("div"),c(Te.$$.fragment),en=s(),Qe=r("p"),Qe.textContent=Dn,tn=s(),Ye=r("p"),Ye.innerHTML=qn,nn=s(),C=r("div"),c(ye.$$.fragment),sn=s(),ze=r("p"),ze.textContent=Kn,an=s(),c(Q.$$.fragment),ln=s(),Y=r("div"),c(Je.$$.fragment),on=s(),Se=r("p"),Se.textContent=On,Ct=s(),c(we.$$.fragment),xt=s(),Z=r("div"),c(be.$$.fragment),rn=s(),He=r("p"),He.textContent=es,dn=s(),Ae=r("p"),Ae.innerHTML=ts,pn=s(),$e=r("p"),$e.textContent=ns,cn=s(),x=r("div"),c(Ue.$$.fragment),mn=s(),Pe=r("p"),Pe.textContent=ss,un=s(),c(z.$$.fragment),hn=s(),S=r("div"),c(je.$$.fragment),Mn=s(),De=r("p"),De.textContent=as,kt=s(),c(Ze.$$.fragment),Rt=s(),w=r("div"),c(ve.$$.fragment),gn=s(),qe=r("p"),qe.textContent=ls,fn=s(),Ke=r("p"),Ke.innerHTML=os,_n=s(),Oe=r("p"),Oe.textContent=is,Tn=s(),k=r("div"),c(Ie.$$.fragment),yn=s(),et=r("p"),et.textContent=rs,Jn=s(),c(H.$$.fragment),wn=s(),A=r("div"),c(Xe.$$.fragment),bn=s(),tt=r("p"),tt.textContent=ds,Un=s(),$=r("div"),c(Ge.$$.fragment),jn=s(),nt=r("p"),nt.textContent=ps,Zn=s(),P=r("div"),c(Be.$$.fragment),vn=s(),st=r("p"),st.textContent=cs,In=s(),D=r("div"),c(We.$$.fragment),Xn=s(),at=r("p"),at.textContent=ms,Nt=s(),c(Ve.$$.fragment),Lt=s(),B=r("div"),c(Ce.$$.fragment),Gn=s(),R=r("div"),c(xe.$$.fragment),Bn=s(),lt=r("p"),lt.textContent=us,Wn=s(),c(q.$$.fragment),Vn=s(),K=r("div"),c(ke.$$.fragment),Cn=s(),ot=r("p"),ot.textContent=hs,xn=s(),N=r("div"),c(Re.$$.fragment),kn=s(),it=r("p"),it.textContent=Ms,Rn=s(),rt=r("p"),rt.innerHTML=gs,Et=s(),c(Ne.$$.fragment),Ft=s(),L=r("div"),c(Le.$$.fragment),Nn=s(),dt=r("p"),dt.textContent=fs,Qt=s(),c(Ee.$$.fragment),Yt=s(),ht=r("p"),this.h()},l(e){const n=ws("svelte-u9bgzb",document.head);p=d(n,"META",{name:!0,content:!0}),n.forEach(t),I=a(e),y=d(e,"P",{}),U(y).forEach(t),_=a(e),m(T.$$.fragment,e),o=a(e),J=d(e,"DIV",{class:!0,"data-svelte-h":!0}),f(J)!=="svelte-si9ct8"&&(J.innerHTML=Ln),Mt=a(e),te=d(e,"P",{"data-svelte-h":!0}),f(te)!=="svelte-1bue6ym"&&(te.textContent=En),gt=a(e),ne=d(e,"P",{"data-svelte-h":!0}),f(ne)!=="svelte-1134kk7"&&(ne.innerHTML=Fn),ft=a(e),se=d(e,"P",{"data-svelte-h":!0}),f(se)!=="svelte-qw2r3a"&&(se.innerHTML=Qn),_t=a(e),m(ae.$$.fragment,e),Tt=a(e),le=d(e,"P",{"data-svelte-h":!0}),f(le)!=="svelte-7k8pa1"&&(le.textContent=Yn),yt=a(e),oe=d(e,"UL",{"data-svelte-h":!0}),f(oe)!=="svelte-12js9fh"&&(oe.innerHTML=zn),Jt=a(e),ie=d(e,"P",{"data-svelte-h":!0}),f(ie)!=="svelte-v5oo8i"&&(ie.textContent=Sn),wt=a(e),m(re.$$.fragment,e),bt=a(e),m(de.$$.fragment,e),Ut=a(e),pe=d(e,"P",{"data-svelte-h":!0}),f(pe)!=="svelte-71u96j"&&(pe.textContent=Hn),jt=a(e),m(ce.$$.fragment,e),Zt=a(e),m(me.$$.fragment,e),vt=a(e),ue=d(e,"P",{"data-svelte-h":!0}),f(ue)!=="svelte-rabflj"&&(ue.innerHTML=An),It=a(e),m(he.$$.fragment,e),Xt=a(e),Me=d(e,"P",{"data-svelte-h":!0}),f(Me)!=="svelte-1nr79xi"&&(Me.textContent=$n),Gt=a(e),m(ge.$$.fragment,e),Bt=a(e),fe=d(e,"P",{"data-svelte-h":!0}),f(fe)!=="svelte-q9sktm"&&(fe.textContent=Pn),Wt=a(e),m(_e.$$.fragment,e),Vt=a(e),X=d(e,"DIV",{class:!0});var W=U(X);m(Te.$$.fragment,W),en=a(W),Qe=d(W,"P",{"data-svelte-h":!0}),f(Qe)!=="svelte-19ipoo4"&&(Qe.textContent=Dn),tn=a(W),Ye=d(W,"P",{"data-svelte-h":!0}),f(Ye)!=="svelte-1sr6eg8"&&(Ye.innerHTML=qn),nn=a(W),C=d(W,"DIV",{class:!0});var E=U(C);m(ye.$$.fragment,E),sn=a(E),ze=d(E,"P",{"data-svelte-h":!0}),f(ze)!=="svelte-v78lg8"&&(ze.textContent=Kn),an=a(E),m(Q.$$.fragment,E),E.forEach(t),ln=a(W),Y=d(W,"DIV",{class:!0});var Fe=U(Y);m(Je.$$.fragment,Fe),on=a(Fe),Se=d(Fe,"P",{"data-svelte-h":!0}),f(Se)!=="svelte-16q0ax1"&&(Se.textContent=On),Fe.forEach(t),W.forEach(t),Ct=a(e),m(we.$$.fragment,e),xt=a(e),Z=d(e,"DIV",{class:!0});var G=U(Z);m(be.$$.fragment,G),rn=a(G),He=d(G,"P",{"data-svelte-h":!0}),f(He)!=="svelte-10tczlw"&&(He.textContent=es),dn=a(G),Ae=d(G,"P",{"data-svelte-h":!0}),f(Ae)!=="svelte-1sr6eg8"&&(Ae.innerHTML=ts),pn=a(G),$e=d(G,"P",{"data-svelte-h":!0}),f($e)!=="svelte-1yyqpus"&&($e.textContent=ns),cn=a(G),x=d(G,"DIV",{class:!0});var pt=U(x);m(Ue.$$.fragment,pt),mn=a(pt),Pe=d(pt,"P",{"data-svelte-h":!0}),f(Pe)!=="svelte-v78lg8"&&(Pe.textContent=ss),un=a(pt),m(z.$$.fragment,pt),pt.forEach(t),hn=a(G),S=d(G,"DIV",{class:!0});var St=U(S);m(je.$$.fragment,St),Mn=a(St),De=d(St,"P",{"data-svelte-h":!0}),f(De)!=="svelte-16q0ax1"&&(De.textContent=as),St.forEach(t),G.forEach(t),kt=a(e),m(Ze.$$.fragment,e),Rt=a(e),w=d(e,"DIV",{class:!0});var j=U(w);m(ve.$$.fragment,j),gn=a(j),qe=d(j,"P",{"data-svelte-h":!0}),f(qe)!=="svelte-8bvrgw"&&(qe.textContent=ls),fn=a(j),Ke=d(j,"P",{"data-svelte-h":!0}),f(Ke)!=="svelte-1sr6eg8"&&(Ke.innerHTML=os),_n=a(j),Oe=d(j,"P",{"data-svelte-h":!0}),f(Oe)!=="svelte-1yyqpus"&&(Oe.textContent=is),Tn=a(j),k=d(j,"DIV",{class:!0});var ct=U(k);m(Ie.$$.fragment,ct),yn=a(ct),et=d(ct,"P",{"data-svelte-h":!0}),f(et)!=="svelte-v78lg8"&&(et.textContent=rs),Jn=a(ct),m(H.$$.fragment,ct),ct.forEach(t),wn=a(j),A=d(j,"DIV",{class:!0});var Ht=U(A);m(Xe.$$.fragment,Ht),bn=a(Ht),tt=d(Ht,"P",{"data-svelte-h":!0}),f(tt)!=="svelte-1l041al"&&(tt.textContent=ds),Ht.forEach(t),Un=a(j),$=d(j,"DIV",{class:!0});var At=U($);m(Ge.$$.fragment,At),jn=a(At),nt=d(At,"P",{"data-svelte-h":!0}),f(nt)!=="svelte-16q0ax1"&&(nt.textContent=ps),At.forEach(t),Zn=a(j),P=d(j,"DIV",{class:!0});var $t=U(P);m(Be.$$.fragment,$t),vn=a($t),st=d($t,"P",{"data-svelte-h":!0}),f(st)!=="svelte-176er7i"&&(st.textContent=cs),$t.forEach(t),In=a(j),D=d(j,"DIV",{class:!0});var Pt=U(D);m(We.$$.fragment,Pt),Xn=a(Pt),at=d(Pt,"P",{"data-svelte-h":!0}),f(at)!=="svelte-1eod455"&&(at.textContent=ms),Pt.forEach(t),j.forEach(t),Nt=a(e),m(Ve.$$.fragment,e),Lt=a(e),B=d(e,"DIV",{class:!0});var O=U(B);m(Ce.$$.fragment,O),Gn=a(O),R=d(O,"DIV",{class:!0});var mt=U(R);m(xe.$$.fragment,mt),Bn=a(mt),lt=d(mt,"P",{"data-svelte-h":!0}),f(lt)!=="svelte-v78lg8"&&(lt.textContent=us),Wn=a(mt),m(q.$$.fragment,mt),mt.forEach(t),Vn=a(O),K=d(O,"DIV",{class:!0});var Dt=U(K);m(ke.$$.fragment,Dt),Cn=a(Dt),ot=d(Dt,"P",{"data-svelte-h":!0}),f(ot)!=="svelte-tr32vd"&&(ot.textContent=hs),Dt.forEach(t),xn=a(O),N=d(O,"DIV",{class:!0});var ut=U(N);m(Re.$$.fragment,ut),kn=a(ut),it=d(ut,"P",{"data-svelte-h":!0}),f(it)!=="svelte-1p9wfz7"&&(it.textContent=Ms),Rn=a(ut),rt=d(ut,"P",{"data-svelte-h":!0}),f(rt)!=="svelte-7cxa61"&&(rt.innerHTML=gs),ut.forEach(t),O.forEach(t),Et=a(e),m(Ne.$$.fragment,e),Ft=a(e),L=d(e,"DIV",{class:!0});var qt=U(L);m(Le.$$.fragment,qt),Nn=a(qt),dt=d(qt,"P",{"data-svelte-h":!0}),f(dt)!=="svelte-ia4jjd"&&(dt.textContent=fs),qt.forEach(t),Qt=a(e),m(Ee.$$.fragment,e),Yt=a(e),ht=d(e,"P",{}),U(ht).forEach(t),this.h()},h(){b(p,"name","hf:doc:metadata"),b(p,"content",Xs),b(J,"class","flex flex-wrap space-x-1"),b(C,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),b(Y,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),b(X,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),b(x,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),b(S,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),b(Z,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),b(k,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),b(A,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),b($,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),b(P,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),b(D,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),b(w,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),b(R,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),b(K,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),b(N,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),b(B,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),b(L,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8")},m(e,n){l(document.head,p),i(e,I,n),i(e,y,n),i(e,_,n),u(T,e,n),i(e,o,n),i(e,J,n),i(e,Mt,n),i(e,te,n),i(e,gt,n),i(e,ne,n),i(e,ft,n),i(e,se,n),i(e,_t,n),u(ae,e,n),i(e,Tt,n),i(e,le,n),i(e,yt,n),i(e,oe,n),i(e,Jt,n),i(e,ie,n),i(e,wt,n),u(re,e,n),i(e,bt,n),u(de,e,n),i(e,Ut,n),i(e,pe,n),i(e,jt,n),u(ce,e,n),i(e,Zt,n),u(me,e,n),i(e,vt,n),i(e,ue,n),i(e,It,n),u(he,e,n),i(e,Xt,n),i(e,Me,n),i(e,Gt,n),u(ge,e,n),i(e,Bt,n),i(e,fe,n),i(e,Wt,n),u(_e,e,n),i(e,Vt,n),i(e,X,n),u(Te,X,null),l(X,en),l(X,Qe),l(X,tn),l(X,Ye),l(X,nn),l(X,C),u(ye,C,null),l(C,sn),l(C,ze),l(C,an),u(Q,C,null),l(X,ln),l(X,Y),u(Je,Y,null),l(Y,on),l(Y,Se),i(e,Ct,n),u(we,e,n),i(e,xt,n),i(e,Z,n),u(be,Z,null),l(Z,rn),l(Z,He),l(Z,dn),l(Z,Ae),l(Z,pn),l(Z,$e),l(Z,cn),l(Z,x),u(Ue,x,null),l(x,mn),l(x,Pe),l(x,un),u(z,x,null),l(Z,hn),l(Z,S),u(je,S,null),l(S,Mn),l(S,De),i(e,kt,n),u(Ze,e,n),i(e,Rt,n),i(e,w,n),u(ve,w,null),l(w,gn),l(w,qe),l(w,fn),l(w,Ke),l(w,_n),l(w,Oe),l(w,Tn),l(w,k),u(Ie,k,null),l(k,yn),l(k,et),l(k,Jn),u(H,k,null),l(w,wn),l(w,A),u(Xe,A,null),l(A,bn),l(A,tt),l(w,Un),l(w,$),u(Ge,$,null),l($,jn),l($,nt),l(w,Zn),l(w,P),u(Be,P,null),l(P,vn),l(P,st),l(w,In),l(w,D),u(We,D,null),l(D,Xn),l(D,at),i(e,Nt,n),u(Ve,e,n),i(e,Lt,n),i(e,B,n),u(Ce,B,null),l(B,Gn),l(B,R),u(xe,R,null),l(R,Bn),l(R,lt),l(R,Wn),u(q,R,null),l(B,Vn),l(B,K),u(ke,K,null),l(K,Cn),l(K,ot),l(B,xn),l(B,N),u(Re,N,null),l(N,kn),l(N,it),l(N,Rn),l(N,rt),i(e,Et,n),u(Ne,e,n),i(e,Ft,n),i(e,L,n),u(Le,L,null),l(L,Nn),l(L,dt),i(e,Qt,n),u(Ee,e,n),i(e,Yt,n),i(e,ht,n),zt=!0},p(e,[n]){const W={};n&2&&(W.$$scope={dirty:n,ctx:e}),Q.$set(W);const E={};n&2&&(E.$$scope={dirty:n,ctx:e}),z.$set(E);const Fe={};n&2&&(Fe.$$scope={dirty:n,ctx:e}),H.$set(Fe);const G={};n&2&&(G.$$scope={dirty:n,ctx:e}),q.$set(G)},i(e){zt||(h(T.$$.fragment,e),h(ae.$$.fragment,e),h(re.$$.fragment,e),h(de.$$.fragment,e),h(ce.$$.fragment,e),h(me.$$.fragment,e),h(he.$$.fragment,e),h(ge.$$.fragment,e),h(_e.$$.fragment,e),h(Te.$$.fragment,e),h(ye.$$.fragment,e),h(Q.$$.fragment,e),h(Je.$$.fragment,e),h(we.$$.fragment,e),h(be.$$.fragment,e),h(Ue.$$.fragment,e),h(z.$$.fragment,e),h(je.$$.fragment,e),h(Ze.$$.fragment,e),h(ve.$$.fragment,e),h(Ie.$$.fragment,e),h(H.$$.fragment,e),h(Xe.$$.fragment,e),h(Ge.$$.fragment,e),h(Be.$$.fragment,e),h(We.$$.fragment,e),h(Ve.$$.fragment,e),h(Ce.$$.fragment,e),h(xe.$$.fragment,e),h(q.$$.fragment,e),h(ke.$$.fragment,e),h(Re.$$.fragment,e),h(Ne.$$.fragment,e),h(Le.$$.fragment,e),h(Ee.$$.fragment,e),zt=!0)},o(e){M(T.$$.fragment,e),M(ae.$$.fragment,e),M(re.$$.fragment,e),M(de.$$.fragment,e),M(ce.$$.fragment,e),M(me.$$.fragment,e),M(he.$$.fragment,e),M(ge.$$.fragment,e),M(_e.$$.fragment,e),M(Te.$$.fragment,e),M(ye.$$.fragment,e),M(Q.$$.fragment,e),M(Je.$$.fragment,e),M(we.$$.fragment,e),M(be.$$.fragment,e),M(Ue.$$.fragment,e),M(z.$$.fragment,e),M(je.$$.fragment,e),M(Ze.$$.fragment,e),M(ve.$$.fragment,e),M(Ie.$$.fragment,e),M(H.$$.fragment,e),M(Xe.$$.fragment,e),M(Ge.$$.fragment,e),M(Be.$$.fragment,e),M(We.$$.fragment,e),M(Ve.$$.fragment,e),M(Ce.$$.fragment,e),M(xe.$$.fragment,e),M(q.$$.fragment,e),M(ke.$$.fragment,e),M(Re.$$.fragment,e),M(Ne.$$.fragment,e),M(Le.$$.fragment,e),M(Ee.$$.fragment,e),zt=!1},d(e){e&&(t(I),t(y),t(_),t(o),t(J),t(Mt),t(te),t(gt),t(ne),t(ft),t(se),t(_t),t(Tt),t(le),t(yt),t(oe),t(Jt),t(ie),t(wt),t(bt),t(Ut),t(pe),t(jt),t(Zt),t(vt),t(ue),t(It),t(Xt),t(Me),t(Gt),t(Bt),t(fe),t(Wt),t(Vt),t(X),t(Ct),t(xt),t(Z),t(kt),t(Rt),t(w),t(Nt),t(Lt),t(B),t(Et),t(Ft),t(L),t(Qt),t(Yt),t(ht)),t(p),g(T,e),g(ae,e),g(re,e),g(de,e),g(ce,e),g(me,e),g(he,e),g(ge,e),g(_e,e),g(Te),g(ye),g(Q),g(Je),g(we,e),g(be),g(Ue),g(z),g(je),g(Ze,e),g(ve),g(Ie),g(H),g(Xe),g(Ge),g(Be),g(We),g(Ve,e),g(Ce),g(xe),g(q),g(ke),g(Re),g(Ne,e),g(Le),g(Ee,e)}}}const Xs='{"title":"LTX-2","local":"ltx-2","sections":[{"title":"Two-stages Generation","local":"two-stages-generation","sections":[],"depth":2},{"title":"Distilled checkpoint generation","local":"distilled-checkpoint-generation","sections":[],"depth":2},{"title":"Condition Pipeline Generation","local":"condition-pipeline-generation","sections":[],"depth":2},{"title":"LTX2Pipeline","local":"diffusers.LTX2Pipeline","sections":[],"depth":2},{"title":"LTX2ImageToVideoPipeline","local":"diffusers.LTX2ImageToVideoPipeline","sections":[],"depth":2},{"title":"LTX2ConditionPipeline","local":"diffusers.LTX2ConditionPipeline","sections":[],"depth":2},{"title":"LTX2LatentUpsamplePipeline","local":"diffusers.LTX2LatentUpsamplePipeline","sections":[],"depth":2},{"title":"LTX2PipelineOutput","local":"diffusers.pipelines.ltx2.pipeline_output.LTX2PipelineOutput","sections":[],"depth":2}],"depth":1}';function Gs(V){return Ts(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Rs extends ys{constructor(p){super(),Js(this,p,Gs,Is,_s,{})}}export{Rs as component};

Xet Storage Details

Size:
157 kB
·
Xet hash:
d7aa98327984ce1b9bbc56fd4ad20f797168196455f38dc62b5f0ce465cec602

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