Buckets:

download
raw
61 kB
import{s as Vt,o as Jt,n as Ut}from"../chunks/scheduler.53228c21.js";import{S as jt,i as xt,e as p,s as o,c as m,h as It,a as l,d as n,b as i,f as G,g as c,j as y,k as I,l as r,m as s,n as f,t as g,o as u,p as _}from"../chunks/index.cac5d66a.js";import{C as kt}from"../chunks/CopyLLMTxtMenu.efae84b2.js";import{D as re}from"../chunks/Docstring.494cc782.js";import{C as ve}from"../chunks/CodeBlock.606cbaf4.js";import{E as wt}from"../chunks/ExampleCodeBlock.3b7276d8.js";import{H as pe,E as Zt}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.de76e98b.js";function Gt(le){let d,V="Examples:",v,h,M;return h=new ve({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwTW90aWZWaWRlb1BpcGVsaW5lJTBBZnJvbSUyMGRpZmZ1c2Vycy51dGlscyUyMGltcG9ydCUyMGV4cG9ydF90b192aWRlbyUwQSUwQSUyMyUyMExvYWQlMjB0aGUlMjBNb3RpZi1WaWRlbyUyMHBpcGVsaW5lJTBBbW90aWZfdmlkZW9fbW9kZWxfaWQlMjAlM0QlMjAlMjJNb3RpZi1UZWNobm9sb2dpZXMlMkZNb3RpZi1WaWRlby0yQiUyMiUwQXBpcGUlMjAlM0QlMjBNb3RpZlZpZGVvUGlwZWxpbmUuZnJvbV9wcmV0cmFpbmVkKG1vdGlmX3ZpZGVvX21vZGVsX2lkJTJDJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5iZmxvYXQxNiklMEFwaXBlLnRvKCUyMmN1ZGElMjIpJTBBJTBBcHJvbXB0JTIwJTNEJTIwJTIyQSUyMHdvbWFuJTIwd2l0aCUyMGxvbmclMjBicm93biUyMGhhaXIlMjBhbmQlMjBsaWdodCUyMHNraW4lMjBzbWlsZXMlMjBhdCUyMGFub3RoZXIlMjB3b21hbiUyMHdpdGglMjBsb25nJTIwYmxvbmRlJTIwaGFpci4lMjBUaGUlMjB3b21hbiUyMHdpdGglMjBicm93biUyMGhhaXIlMjB3ZWFycyUyMGElMjBibGFjayUyMGphY2tldCUyMGFuZCUyMGhhcyUyMGElMjBzbWFsbCUyQyUyMGJhcmVseSUyMG5vdGljZWFibGUlMjBtb2xlJTIwb24lMjBoZXIlMjByaWdodCUyMGNoZWVrLiUyMFRoZSUyMGNhbWVyYSUyMGFuZ2xlJTIwaXMlMjBhJTIwY2xvc2UtdXAlMkMlMjBmb2N1c2VkJTIwb24lMjB0aGUlMjB3b21hbiUyMHdpdGglMjBicm93biUyMGhhaXIncyUyMGZhY2UuJTIwVGhlJTIwbGlnaHRpbmclMjBpcyUyMHdhcm0lMjBhbmQlMjBuYXR1cmFsJTJDJTIwbGlrZWx5JTIwZnJvbSUyMHRoZSUyMHNldHRpbmclMjBzdW4lMkMlMjBjYXN0aW5nJTIwYSUyMHNvZnQlMjBnbG93JTIwb24lMjB0aGUlMjBzY2VuZS4lMjBUaGUlMjBzY2VuZSUyMGFwcGVhcnMlMjB0byUyMGJlJTIwcmVhbC1saWZlJTIwZm9vdGFnZSUyMiUwQW5lZ2F0aXZlX3Byb21wdCUyMCUzRCUyMCUyMndvcnN0JTIwcXVhbGl0eSUyQyUyMGluY29uc2lzdGVudCUyMG1vdGlvbiUyQyUyMGJsdXJyeSUyQyUyMGppdHRlcnklMkMlMjBkaXN0b3J0ZWQlMjIlMEElMEF2aWRlbyUyMCUzRCUyMHBpcGUoJTBBJTIwJTIwJTIwJTIwcHJvbXB0JTNEcHJvbXB0JTJDJTBBJTIwJTIwJTIwJTIwbmVnYXRpdmVfcHJvbXB0JTNEbmVnYXRpdmVfcHJvbXB0JTJDJTBBJTIwJTIwJTIwJTIwd2lkdGglM0QxMjgwJTJDJTBBJTIwJTIwJTIwJTIwaGVpZ2h0JTNENzM2JTJDJTBBJTIwJTIwJTIwJTIwbnVtX2ZyYW1lcyUzRDEyMSUyQyUwQSUyMCUyMCUyMCUyMG51bV9pbmZlcmVuY2Vfc3RlcHMlM0Q1MCUyQyUwQSkuZnJhbWVzJTVCMCU1RCUwQWV4cG9ydF90b192aWRlbyh2aWRlbyUyQyUyMCUyMm91dHB1dC5tcDQlMjIlMkMlMjBmcHMlM0QyNCk=",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> MotifVideoPipeline
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> diffusers.utils <span class="hljs-keyword">import</span> export_to_video
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># Load the Motif-Video pipeline</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>motif_video_model_id = <span class="hljs-string">&quot;Motif-Technologies/Motif-Video-2B&quot;</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>pipe = MotifVideoPipeline.from_pretrained(motif_video_model_id, torch_dtype=torch.bfloat16)
<span class="hljs-meta">&gt;&gt;&gt; </span>pipe.to(<span class="hljs-string">&quot;cuda&quot;</span>)
<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>video = 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">1280</span>,
<span class="hljs-meta">... </span> height=<span class="hljs-number">736</span>,
<span class="hljs-meta">... </span> num_frames=<span class="hljs-number">121</span>,
<span class="hljs-meta">... </span> num_inference_steps=<span class="hljs-number">50</span>,
<span class="hljs-meta">... </span>).frames[<span class="hljs-number">0</span>]
<span class="hljs-meta">&gt;&gt;&gt; </span>export_to_video(video, <span class="hljs-string">&quot;output.mp4&quot;</span>, fps=<span class="hljs-number">24</span>)`,lang:"python",wrap:!1}}),{c(){d=p("p"),d.textContent=V,v=o(),m(h.$$.fragment)},l(a){d=l(a,"P",{"data-svelte-h":!0}),y(d)!=="svelte-kvfsh7"&&(d.textContent=V),v=i(a),c(h.$$.fragment,a)},m(a,b){s(a,d,b),s(a,v,b),f(h,a,b),M=!0},p:Ut,i(a){M||(g(h.$$.fragment,a),M=!0)},o(a){u(h.$$.fragment,a),M=!1},d(a){a&&(n(d),n(v)),_(h,a)}}}function Bt(le){let d,V="Examples:",v,h,M;return h=new ve({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwUElMJTIwaW1wb3J0JTIwSW1hZ2UlMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwTW90aWZWaWRlb0ltYWdlMlZpZGVvUGlwZWxpbmUlMEFmcm9tJTIwZGlmZnVzZXJzLnV0aWxzJTIwaW1wb3J0JTIwZXhwb3J0X3RvX3ZpZGVvJTJDJTIwbG9hZF9pbWFnZSUwQSUwQSUyMyUyMExvYWQlMjB0aGUlMjBNb3RpZi1WaWRlbyUyMGltYWdlLXRvLXZpZGVvJTIwcGlwZWxpbmUlMEFtb3RpZl92aWRlb19tb2RlbF9pZCUyMCUzRCUyMCUyMk1vdGlmLVRlY2hub2xvZ2llcyUyRk1vdGlmLVZpZGVvLTJCJTIyJTBBcGlwZSUyMCUzRCUyME1vdGlmVmlkZW9JbWFnZTJWaWRlb1BpcGVsaW5lLmZyb21fcHJldHJhaW5lZChtb3RpZl92aWRlb19tb2RlbF9pZCUyQyUyMHRvcmNoX2R0eXBlJTNEdG9yY2guYmZsb2F0MTYpJTBBcGlwZS50byglMjJjdWRhJTIyKSUwQSUwQSUyMyUyMExvYWQlMjBhbiUyMGltYWdlJTBBaW1hZ2UlMjAlM0QlMjBsb2FkX2ltYWdlKCUwQSUyMCUyMCUyMCUyMCUyMmh0dHBzJTNBJTJGJTJGaHVnZ2luZ2ZhY2UuY28lMkZkYXRhc2V0cyUyRmh1Z2dpbmdmYWNlJTJGZG9jdW1lbnRhdGlvbi1pbWFnZXMlMkZyZXNvbHZlJTJGbWFpbiUyRmRpZmZ1c2VycyUyRmFzdHJvbmF1dC5wbmclMjIlMEEpJTBBJTBBcHJvbXB0JTIwJTNEJTIwJTIyQW4lMjBhc3Ryb25hdXQlMjBpcyUyMHdhbGtpbmclMjBvbiUyMHRoZSUyMG1vb24lMjBzdXJmYWNlJTJDJTIwa2lja2luZyUyMHVwJTIwZHVzdCUyMHdpdGglMjBlYWNoJTIwc3RlcCUyMiUwQW5lZ2F0aXZlX3Byb21wdCUyMCUzRCUyMCUyMndvcnN0JTIwcXVhbGl0eSUyQyUyMGluY29uc2lzdGVudCUyMG1vdGlvbiUyQyUyMGJsdXJyeSUyQyUyMGppdHRlcnklMkMlMjBkaXN0b3J0ZWQlMjIlMEElMEF2aWRlbyUyMCUzRCUyMHBpcGUoJTBBJTIwJTIwJTIwJTIwaW1hZ2UlM0RpbWFnZSUyQyUwQSUyMCUyMCUyMCUyMHByb21wdCUzRHByb21wdCUyQyUwQSUyMCUyMCUyMCUyMG5lZ2F0aXZlX3Byb21wdCUzRG5lZ2F0aXZlX3Byb21wdCUyQyUwQSUyMCUyMCUyMCUyMHdpZHRoJTNEMTI4MCUyQyUwQSUyMCUyMCUyMCUyMGhlaWdodCUzRDczNiUyQyUwQSUyMCUyMCUyMCUyMG51bV9mcmFtZXMlM0QxMjElMkMlMEElMjAlMjAlMjAlMjBudW1faW5mZXJlbmNlX3N0ZXBzJTNENTAlMkMlMEEpLmZyYW1lcyU1QjAlNUQlMEFleHBvcnRfdG9fdmlkZW8odmlkZW8lMkMlMjAlMjJvdXRwdXQubXA0JTIyJTJDJTIwZnBzJTNEMjQp",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> PIL <span class="hljs-keyword">import</span> Image
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> MotifVideoImage2VideoPipeline
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> diffusers.utils <span class="hljs-keyword">import</span> export_to_video, load_image
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># Load the Motif-Video image-to-video pipeline</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>motif_video_model_id = <span class="hljs-string">&quot;Motif-Technologies/Motif-Video-2B&quot;</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>pipe = MotifVideoImage2VideoPipeline.from_pretrained(motif_video_model_id, torch_dtype=torch.bfloat16)
<span class="hljs-meta">&gt;&gt;&gt; </span>pipe.to(<span class="hljs-string">&quot;cuda&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># Load an image</span>
<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/huggingface/documentation-images/resolve/main/diffusers/astronaut.png&quot;</span>
<span class="hljs-meta">... </span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>prompt = <span class="hljs-string">&quot;An astronaut is walking on the moon surface, kicking up dust with each step&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>video = 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">1280</span>,
<span class="hljs-meta">... </span> height=<span class="hljs-number">736</span>,
<span class="hljs-meta">... </span> num_frames=<span class="hljs-number">121</span>,
<span class="hljs-meta">... </span> num_inference_steps=<span class="hljs-number">50</span>,
<span class="hljs-meta">... </span>).frames[<span class="hljs-number">0</span>]
<span class="hljs-meta">&gt;&gt;&gt; </span>export_to_video(video, <span class="hljs-string">&quot;output.mp4&quot;</span>, fps=<span class="hljs-number">24</span>)`,lang:"python",wrap:!1}}),{c(){d=p("p"),d.textContent=V,v=o(),m(h.$$.fragment)},l(a){d=l(a,"P",{"data-svelte-h":!0}),y(d)!=="svelte-kvfsh7"&&(d.textContent=V),v=i(a),c(h.$$.fragment,a)},m(a,b){s(a,d,b),s(a,v,b),f(h,a,b),M=!0},p:Ut,i(a){M||(g(h.$$.fragment,a),M=!0)},o(a){u(h.$$.fragment,a),M=!1},d(a){a&&(n(d),n(v)),_(h,a)}}}function Ct(le){let d,V,v,h,M,a,b,Te,N,pt='<a href="https://arxiv.org/abs/2604.16503" rel="nofollow">Technical Report</a>',we,Q,lt="Motif-Video is a 2B parameter diffusion transformer designed for text-to-video and image-to-video generation. It features a three-stage architecture with 12 dual-stream + 16 single-stream + 8 DDT decoder layers, Shared Cross-Attention for stable text-video alignment under long video sequences, T5Gemma2 text encoder, and rectified flow matching for velocity prediction.",Ue,B,dt='<img src="https://huggingface.co/Motif-Technologies/Motif-Video-2B/resolve/main/assets/architecture.png" width="90%" alt="Motif-Video architecture"/>',Ve,R,Je,X,mt="Use <code>MotifVideoPipeline</code> for text-to-video generation:",je,E,xe,S,Ie,H,ct="Use <code>MotifVideoImage2VideoPipeline</code> for image-to-video generation:",ke,z,Ze,q,Ge,L,ft="For GPUs with less than 30GB VRAM (e.g., RTX 4090), use model CPU offloading:",Be,F,Ce,A,Pe,D,$e,T,Y,Le,de,gt="Pipeline for text-to-video generation using Motif-Video.",Fe,me,ut=`This model inherits from <a href="/docs/diffusers/pr_13832/en/api/pipelines/overview#diffusers.DiffusionPipeline">DiffusionPipeline</a>. Check the superclass documentation for the generic methods
implemented for all pipelines (downloading, saving, running on a particular device, etc.).`,Ae,J,O,De,ce,_t="The call function to the pipeline for text-to-video generation.",Ye,C,Oe,P,K,Ke,fe,ht="Encodes the prompt into text encoder hidden states.",We,ee,Ne,w,te,et,ge,Mt="Pipeline for image-to-video generation using Motif-Video with first frame conditioning.",tt,ue,yt=`This model inherits from <a href="/docs/diffusers/pr_13832/en/api/pipelines/overview#diffusers.DiffusionPipeline">DiffusionPipeline</a>. Check the superclass documentation for the generic methods
implemented for all pipelines (downloading, saving, running on a particular device, etc.).`,nt,j,ne,ot,_e,vt="The call function to the pipeline for image-to-video generation.",it,$,st,W,oe,at,he,bt="Encodes the prompt into text encoder hidden states.",Qe,ie,Re,k,se,rt,Me,Tt="Output class for Motif-Video pipelines.",Xe,ae,Ee,be,Se;return M=new kt({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),b=new pe({props:{title:"Motif-Video",local:"motif-video",headingTag:"h1"}}),R=new pe({props:{title:"Text-to-Video Generation",local:"text-to-video-generation",headingTag:"h2"}}),E=new ve({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwTW90aWZWaWRlb1BpcGVsaW5lJTBBZnJvbSUyMGRpZmZ1c2Vycy51dGlscyUyMGltcG9ydCUyMGV4cG9ydF90b192aWRlbyUwQSUwQSUwQXBpcGUlMjAlM0QlMjBNb3RpZlZpZGVvUGlwZWxpbmUuZnJvbV9wcmV0cmFpbmVkKCUwQSUyMCUyMCUyMCUyMCUyMk1vdGlmLVRlY2hub2xvZ2llcyUyRk1vdGlmLVZpZGVvLTJCJTIyJTJDJTBBJTIwJTIwJTIwJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5iZmxvYXQxNiUyQyUwQSklMEFwaXBlLnRvKCUyMmN1ZGElMjIpJTBBJTBBcHJvbXB0JTIwJTNEJTIwJTIyQSUyMHdvbWFuJTIwd2l0aCUyMGxvbmclMjBicm93biUyMGhhaXIlMjBhbmQlMjBsaWdodCUyMHNraW4lMjBzbWlsZXMlMjBhdCUyMGFub3RoZXIlMjB3b21hbiUyMHdpdGglMjBsb25nJTIwYmxvbmRlJTIwaGFpci4lMjIlMEFuZWdhdGl2ZV9wcm9tcHQlMjAlM0QlMjAlMjJ3b3JzdCUyMHF1YWxpdHklMkMlMjBpbmNvbnNpc3RlbnQlMjBtb3Rpb24lMkMlMjBibHVycnklMkMlMjBqaXR0ZXJ5JTJDJTIwZGlzdG9ydGVkJTIyJTBBJTBBdmlkZW8lMjAlM0QlMjBwaXBlKCUwQSUyMCUyMCUyMCUyMHByb21wdCUzRHByb21wdCUyQyUwQSUyMCUyMCUyMCUyMG5lZ2F0aXZlX3Byb21wdCUzRG5lZ2F0aXZlX3Byb21wdCUyQyUwQSUyMCUyMCUyMCUyMHdpZHRoJTNEMTI4MCUyQyUwQSUyMCUyMCUyMCUyMGhlaWdodCUzRDczNiUyQyUwQSUyMCUyMCUyMCUyMG51bV9mcmFtZXMlM0QxMjElMkMlMEElMjAlMjAlMjAlMjBudW1faW5mZXJlbmNlX3N0ZXBzJTNENTAlMkMlMEEpLmZyYW1lcyU1QjAlNUQlMEFleHBvcnRfdG9fdmlkZW8odmlkZW8lMkMlMjAlMjJvdXRwdXQubXA0JTIyJTJDJTIwZnBzJTNEMjQp",highlighted:`<span class="hljs-keyword">import</span> torch
<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> MotifVideoPipeline
<span class="hljs-keyword">from</span> diffusers.utils <span class="hljs-keyword">import</span> export_to_video
pipe = MotifVideoPipeline.from_pretrained(
<span class="hljs-string">&quot;Motif-Technologies/Motif-Video-2B&quot;</span>,
torch_dtype=torch.bfloat16,
)
pipe.to(<span class="hljs-string">&quot;cuda&quot;</span>)
prompt = <span class="hljs-string">&quot;A woman with long brown hair and light skin smiles at another woman with long blonde hair.&quot;</span>
negative_prompt = <span class="hljs-string">&quot;worst quality, inconsistent motion, blurry, jittery, distorted&quot;</span>
video = pipe(
prompt=prompt,
negative_prompt=negative_prompt,
width=<span class="hljs-number">1280</span>,
height=<span class="hljs-number">736</span>,
num_frames=<span class="hljs-number">121</span>,
num_inference_steps=<span class="hljs-number">50</span>,
).frames[<span class="hljs-number">0</span>]
export_to_video(video, <span class="hljs-string">&quot;output.mp4&quot;</span>, fps=<span class="hljs-number">24</span>)`,lang:"python",wrap:!1}}),S=new pe({props:{title:"Image-to-Video Generation",local:"image-to-video-generation",headingTag:"h2"}}),z=new ve({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwTW90aWZWaWRlb0ltYWdlMlZpZGVvUGlwZWxpbmUlMEFmcm9tJTIwZGlmZnVzZXJzLnV0aWxzJTIwaW1wb3J0JTIwZXhwb3J0X3RvX3ZpZGVvJTJDJTIwbG9hZF9pbWFnZSUwQSUwQSUwQXBpcGUlMjAlM0QlMjBNb3RpZlZpZGVvSW1hZ2UyVmlkZW9QaXBlbGluZS5mcm9tX3ByZXRyYWluZWQoJTBBJTIwJTIwJTIwJTIwJTIyTW90aWYtVGVjaG5vbG9naWVzJTJGTW90aWYtVmlkZW8tMkIlMjIlMkMlMEElMjAlMjAlMjAlMjB0b3JjaF9kdHlwZSUzRHRvcmNoLmJmbG9hdDE2JTJDJTBBKSUwQXBpcGUudG8oJTIyY3VkYSUyMiklMEElMEFpbWFnZSUyMCUzRCUyMGxvYWRfaW1hZ2UoJTIyaW5wdXRfaW1hZ2UucG5nJTIyKSUwQXByb21wdCUyMCUzRCUyMCUyMkElMjBjaW5lbWF0aWMlMjBzY2VuZSUyMHdpdGglMjB2aXZpZCUyMGNvbG9ycy4lMjIlMEFuZWdhdGl2ZV9wcm9tcHQlMjAlM0QlMjAlMjJ3b3JzdCUyMHF1YWxpdHklMkMlMjBibHVycnklMkMlMjBqaXR0ZXJ5JTJDJTIwZGlzdG9ydGVkJTIyJTBBJTBBdmlkZW8lMjAlM0QlMjBwaXBlKCUwQSUyMCUyMCUyMCUyMGltYWdlJTNEaW1hZ2UlMkMlMEElMjAlMjAlMjAlMjBwcm9tcHQlM0Rwcm9tcHQlMkMlMEElMjAlMjAlMjAlMjBuZWdhdGl2ZV9wcm9tcHQlM0RuZWdhdGl2ZV9wcm9tcHQlMkMlMEElMjAlMjAlMjAlMjB3aWR0aCUzRDEyODAlMkMlMEElMjAlMjAlMjAlMjBoZWlnaHQlM0Q3MzYlMkMlMEElMjAlMjAlMjAlMjBudW1fZnJhbWVzJTNEMTIxJTJDJTBBJTIwJTIwJTIwJTIwbnVtX2luZmVyZW5jZV9zdGVwcyUzRDUwJTJDJTBBKS5mcmFtZXMlNUIwJTVEJTBBZXhwb3J0X3RvX3ZpZGVvKHZpZGVvJTJDJTIwJTIyaTJ2X291dHB1dC5tcDQlMjIlMkMlMjBmcHMlM0QyNCk=",highlighted:`<span class="hljs-keyword">import</span> torch
<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> MotifVideoImage2VideoPipeline
<span class="hljs-keyword">from</span> diffusers.utils <span class="hljs-keyword">import</span> export_to_video, load_image
pipe = MotifVideoImage2VideoPipeline.from_pretrained(
<span class="hljs-string">&quot;Motif-Technologies/Motif-Video-2B&quot;</span>,
torch_dtype=torch.bfloat16,
)
pipe.to(<span class="hljs-string">&quot;cuda&quot;</span>)
image = load_image(<span class="hljs-string">&quot;input_image.png&quot;</span>)
prompt = <span class="hljs-string">&quot;A cinematic scene with vivid colors.&quot;</span>
negative_prompt = <span class="hljs-string">&quot;worst quality, blurry, jittery, distorted&quot;</span>
video = pipe(
image=image,
prompt=prompt,
negative_prompt=negative_prompt,
width=<span class="hljs-number">1280</span>,
height=<span class="hljs-number">736</span>,
num_frames=<span class="hljs-number">121</span>,
num_inference_steps=<span class="hljs-number">50</span>,
).frames[<span class="hljs-number">0</span>]
export_to_video(video, <span class="hljs-string">&quot;i2v_output.mp4&quot;</span>, fps=<span class="hljs-number">24</span>)`,lang:"python",wrap:!1}}),q=new pe({props:{title:"Memory-efficient Inference",local:"memory-efficient-inference",headingTag:"h3"}}),F=new ve({props:{code:"ZXhwb3J0JTIwUFlUT1JDSF9DVURBX0FMTE9DX0NPTkYlM0RleHBhbmRhYmxlX3NlZ21lbnRzJTNBVHJ1ZQ==",highlighted:'<span class="hljs-built_in">export</span> PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True',lang:"bash",wrap:!1}}),A=new ve({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwTW90aWZWaWRlb1BpcGVsaW5lJTBBZnJvbSUyMGRpZmZ1c2Vycy51dGlscyUyMGltcG9ydCUyMGV4cG9ydF90b192aWRlbyUwQSUwQSUwQXBpcGUlMjAlM0QlMjBNb3RpZlZpZGVvUGlwZWxpbmUuZnJvbV9wcmV0cmFpbmVkKCUwQSUyMCUyMCUyMCUyMCUyMk1vdGlmLVRlY2hub2xvZ2llcyUyRk1vdGlmLVZpZGVvLTJCJTIyJTJDJTBBJTIwJTIwJTIwJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5iZmxvYXQxNiUyQyUwQSklMEFwaXBlLmVuYWJsZV9tb2RlbF9jcHVfb2ZmbG9hZCgpJTBBJTBBcHJvbXB0JTIwJTNEJTIwJTIyQSUyMHdvbWFuJTIwd2l0aCUyMGxvbmclMjBicm93biUyMGhhaXIlMjBhbmQlMjBsaWdodCUyMHNraW4lMjBzbWlsZXMlMjBhdCUyMGFub3RoZXIlMjB3b21hbiUyMHdpdGglMjBsb25nJTIwYmxvbmRlJTIwaGFpci4lMjIlMEFuZWdhdGl2ZV9wcm9tcHQlMjAlM0QlMjAlMjJ3b3JzdCUyMHF1YWxpdHklMkMlMjBpbmNvbnNpc3RlbnQlMjBtb3Rpb24lMkMlMjBibHVycnklMkMlMjBqaXR0ZXJ5JTJDJTIwZGlzdG9ydGVkJTIyJTBBJTBBdmlkZW8lMjAlM0QlMjBwaXBlKCUwQSUyMCUyMCUyMCUyMHByb21wdCUzRHByb21wdCUyQyUwQSUyMCUyMCUyMCUyMG5lZ2F0aXZlX3Byb21wdCUzRG5lZ2F0aXZlX3Byb21wdCUyQyUwQSUyMCUyMCUyMCUyMHdpZHRoJTNEMTI4MCUyQyUwQSUyMCUyMCUyMCUyMGhlaWdodCUzRDczNiUyQyUwQSUyMCUyMCUyMCUyMG51bV9mcmFtZXMlM0QxMjElMkMlMEElMjAlMjAlMjAlMjBudW1faW5mZXJlbmNlX3N0ZXBzJTNENTAlMkMlMEEpLmZyYW1lcyU1QjAlNUQlMEFleHBvcnRfdG9fdmlkZW8odmlkZW8lMkMlMjAlMjJvdXRwdXQubXA0JTIyJTJDJTIwZnBzJTNEMjQp",highlighted:`<span class="hljs-keyword">import</span> torch
<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> MotifVideoPipeline
<span class="hljs-keyword">from</span> diffusers.utils <span class="hljs-keyword">import</span> export_to_video
pipe = MotifVideoPipeline.from_pretrained(
<span class="hljs-string">&quot;Motif-Technologies/Motif-Video-2B&quot;</span>,
torch_dtype=torch.bfloat16,
)
pipe.enable_model_cpu_offload()
prompt = <span class="hljs-string">&quot;A woman with long brown hair and light skin smiles at another woman with long blonde hair.&quot;</span>
negative_prompt = <span class="hljs-string">&quot;worst quality, inconsistent motion, blurry, jittery, distorted&quot;</span>
video = pipe(
prompt=prompt,
negative_prompt=negative_prompt,
width=<span class="hljs-number">1280</span>,
height=<span class="hljs-number">736</span>,
num_frames=<span class="hljs-number">121</span>,
num_inference_steps=<span class="hljs-number">50</span>,
).frames[<span class="hljs-number">0</span>]
export_to_video(video, <span class="hljs-string">&quot;output.mp4&quot;</span>, fps=<span class="hljs-number">24</span>)`,lang:"python",wrap:!1}}),D=new pe({props:{title:"MotifVideoPipeline",local:"diffusers.MotifVideoPipeline",headingTag:"h2"}}),Y=new re({props:{name:"class diffusers.MotifVideoPipeline",anchor:"diffusers.MotifVideoPipeline",parameters:[{name:"scheduler",val:": SchedulerMixin"},{name:"vae",val:": AutoencoderKLWan"},{name:"text_encoder",val:": T5Gemma2Encoder"},{name:"tokenizer",val:": PreTrainedTokenizerBase"},{name:"transformer",val:": MotifVideoTransformer3DModel"},{name:"guider",val:": BaseGuidance"},{name:"feature_extractor",val:": typing.Optional[transformers.models.siglip.image_processing_siglip.SiglipImageProcessor] = None"}],parametersDescription:[{anchor:"diffusers.MotifVideoPipeline.transformer",description:`<strong>transformer</strong> (<a href="/docs/diffusers/pr_13832/en/api/models/motif_video_transformer_3d#diffusers.MotifVideoTransformer3DModel">MotifVideoTransformer3DModel</a>) &#x2014;
Conditional Transformer architecture to denoise the encoded video latents.`,name:"transformer"},{anchor:"diffusers.MotifVideoPipeline.scheduler",description:`<strong>scheduler</strong> (<a href="/docs/diffusers/pr_13832/en/api/schedulers/overview#diffusers.SchedulerMixin">SchedulerMixin</a>) &#x2014;
A scheduler to be used in combination with <code>transformer</code> to denoise the encoded video latents. Should be an
instance of a class inheriting from <code>SchedulerMixin</code>, such as <a href="/docs/diffusers/pr_13832/en/api/schedulers/multistep_dpm_solver#diffusers.DPMSolverMultistepScheduler">DPMSolverMultistepScheduler</a>. If not
provided, uses the scheduler attached to the pretrained model.`,name:"scheduler"},{anchor:"diffusers.MotifVideoPipeline.vae",description:`<strong>vae</strong> (<a href="/docs/diffusers/pr_13832/en/api/models/autoencoder_kl_wan#diffusers.AutoencoderKLWan">AutoencoderKLWan</a>) &#x2014;
Variational Auto-Encoder (VAE) Model to encode and decode videos to and from latent representations.`,name:"vae"},{anchor:"diffusers.MotifVideoPipeline.text_encoder",description:`<strong>text_encoder</strong> (<code>T5Gemma2Encoder</code>) &#x2014;
Primary text encoder for encoding text prompts into embeddings.`,name:"text_encoder"},{anchor:"diffusers.MotifVideoPipeline.tokenizer",description:`<strong>tokenizer</strong> (<code>PreTrainedTokenizerBase</code>) &#x2014;
Tokenizer corresponding to the primary text encoder.`,name:"tokenizer"},{anchor:"diffusers.MotifVideoPipeline.guider",description:`<strong>guider</strong> (<a href="/docs/diffusers/pr_13832/en/api/modular_diffusers/guiders#diffusers.BaseGuidance">BaseGuidance</a>) &#x2014;
The guidance method to use. Should be an instance of a class inheriting from <code>BaseGuidance</code>, such as
<a href="/docs/diffusers/pr_13832/en/api/modular_diffusers/guiders#diffusers.ClassifierFreeGuidance">ClassifierFreeGuidance</a>, <a href="/docs/diffusers/pr_13832/en/api/modular_diffusers/guiders#diffusers.AdaptiveProjectedGuidance">AdaptiveProjectedGuidance</a>, or <a href="/docs/diffusers/pr_13832/en/api/modular_diffusers/guiders#diffusers.SkipLayerGuidance">SkipLayerGuidance</a>. If not provided,
defaults to <code>ClassifierFreeGuidance</code>.`,name:"guider"}],source:"https://github.com/huggingface/diffusers/blob/vr_13832/src/diffusers/pipelines/motif_video/pipeline_motif_video.py#L148"}}),O=new re({props:{name:"__call__",anchor:"diffusers.MotifVideoPipeline.__call__",parameters:[{name:"prompt",val:": typing.Union[str, typing.List[str], NoneType] = None"},{name:"negative_prompt",val:": typing.Union[str, typing.List[str], NoneType] = None"},{name:"height",val:": int = 736"},{name:"width",val:": int = 1280"},{name:"num_frames",val:": int = 121"},{name:"num_inference_steps",val:": int = 50"},{name:"timesteps",val:": typing.Optional[typing.List[int]] = None"},{name:"num_videos_per_prompt",val:": typing.Optional[int] = 1"},{name:"generator",val:": typing.Union[torch._C.Generator, typing.List[torch._C.Generator], NoneType] = None"},{name:"latents",val:": typing.Optional[torch.Tensor] = None"},{name:"prompt_embeds",val:": typing.Optional[torch.Tensor] = None"},{name:"prompt_attention_mask",val:": typing.Optional[torch.Tensor] = None"},{name:"negative_prompt_embeds",val:": typing.Optional[torch.Tensor] = None"},{name:"negative_prompt_attention_mask",val:": typing.Optional[torch.Tensor] = None"},{name:"output_type",val:": typing.Optional[str] = 'pil'"},{name:"return_dict",val:": bool = True"},{name:"attention_kwargs",val:": typing.Optional[typing.Dict[str, typing.Any]] = None"},{name:"callback_on_step_end",val:": typing.Union[typing.Callable[[int, int, typing.Dict], NoneType], diffusers.callbacks.PipelineCallback, diffusers.callbacks.MultiPipelineCallbacks, NoneType] = None"},{name:"callback_on_step_end_tensor_inputs",val:": typing.List[str] = ['latents']"},{name:"max_sequence_length",val:": int = 512"},{name:"vae_batch_size",val:": int | None = None"}],parametersDescription:[{anchor:"diffusers.MotifVideoPipeline.__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 video generation. If not defined, one has to pass <code>prompt_embeds</code>.`,name:"prompt"},{anchor:"diffusers.MotifVideoPipeline.__call__.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 video generation. If not defined, one has to pass
<code>negative_prompt_embeds</code> instead. Ignored when not using guidance.`,name:"negative_prompt"},{anchor:"diffusers.MotifVideoPipeline.__call__.height",description:`<strong>height</strong> (<code>int</code>, defaults to <code>736</code>) &#x2014;
The height in pixels of the generated video.`,name:"height"},{anchor:"diffusers.MotifVideoPipeline.__call__.width",description:`<strong>width</strong> (<code>int</code>, defaults to <code>1280</code>) &#x2014;
The width in pixels of the generated video.`,name:"width"},{anchor:"diffusers.MotifVideoPipeline.__call__.num_frames",description:`<strong>num_frames</strong> (<code>int</code>, defaults to <code>121</code>) &#x2014;
The number of video frames to generate.`,name:"num_frames"},{anchor:"diffusers.MotifVideoPipeline.__call__.num_inference_steps",description:`<strong>num_inference_steps</strong> (<code>int</code>, <em>optional</em>, defaults to 50) &#x2014;
The number of denoising steps. More denoising steps usually lead to a higher quality video at the
expense of slower inference.`,name:"num_inference_steps"},{anchor:"diffusers.MotifVideoPipeline.__call__.timesteps",description:`<strong>timesteps</strong> (<code>List[int]</code>, <em>optional</em>) &#x2014;
Custom timesteps to use for the denoising process.`,name:"timesteps"},{anchor:"diffusers.MotifVideoPipeline.__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.MotifVideoPipeline.__call__.generator",description:`<strong>generator</strong> (<code>torch.Generator</code> or <code>List[torch.Generator]</code>, <em>optional</em>) &#x2014;
PyTorch Generator object(s) for deterministic generation.`,name:"generator"},{anchor:"diffusers.MotifVideoPipeline.__call__.latents",description:`<strong>latents</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Pre-generated noisy latents.`,name:"latents"},{anchor:"diffusers.MotifVideoPipeline.__call__.prompt_embeds",description:`<strong>prompt_embeds</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Pre-generated text embeddings.`,name:"prompt_embeds"},{anchor:"diffusers.MotifVideoPipeline.__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.MotifVideoPipeline.__call__.negative_prompt_embeds",description:`<strong>negative_prompt_embeds</strong> (<code>torch.FloatTensor</code>, <em>optional</em>) &#x2014;
Pre-generated negative text embeddings.`,name:"negative_prompt_embeds"},{anchor:"diffusers.MotifVideoPipeline.__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.MotifVideoPipeline.__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 generated video. Choose between <code>&quot;pil&quot;</code>, <code>&quot;np&quot;</code>, or <code>&quot;latent&quot;</code>.`,name:"output_type"},{anchor:"diffusers.MotifVideoPipeline.__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 <a href="/docs/diffusers/pr_13832/en/api/pipelines/motif_video#diffusers.MotifVideoPipelineOutput">~MotifVideoPipelineOutput</a> instead of a plain tuple.`,name:"return_dict"},{anchor:"diffusers.MotifVideoPipeline.__call__.attention_kwargs",description:`<strong>attention_kwargs</strong> (<code>dict</code>, <em>optional</em>) &#x2014;
Arguments passed to the attention processor.`,name:"attention_kwargs"},{anchor:"diffusers.MotifVideoPipeline.__call__.callback_on_step_end",description:`<strong>callback_on_step_end</strong> (<code>Callable</code>, <em>optional</em>) &#x2014;
A function or subclass of <code>PipelineCallback</code> or <code>MultiPipelineCallbacks</code> called at the end of each
denoising step.`,name:"callback_on_step_end"},{anchor:"diffusers.MotifVideoPipeline.__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.`,name:"callback_on_step_end_tensor_inputs"},{anchor:"diffusers.MotifVideoPipeline.__call__.max_sequence_length",description:`<strong>max_sequence_length</strong> (<code>int</code>, defaults to <code>512</code>) &#x2014;
Maximum sequence length for the tokenizer.`,name:"max_sequence_length"},{anchor:"diffusers.MotifVideoPipeline.__call__.vae_batch_size",description:`<strong>vae_batch_size</strong> (<code>int</code>, <em>optional</em>) &#x2014;
Batch size for VAE decoding. If provided and latents batch size is larger, VAE decoding will be done in
chunks.`,name:"vae_batch_size"}],source:"https://github.com/huggingface/diffusers/blob/vr_13832/src/diffusers/pipelines/motif_video/pipeline_motif_video.py#L492",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script>
<p>If <code>return_dict</code> is <code>True</code>, <a
href="/docs/diffusers/pr_13832/en/api/pipelines/motif_video#diffusers.MotifVideoPipelineOutput"
>~MotifVideoPipelineOutput</a> is returned, otherwise a <code>tuple</code> is returned
where the first element is a list of generated video frames.</p>
`,returnType:`<script context="module">export const metadata = 'undefined';<\/script>
<p><a
href="/docs/diffusers/pr_13832/en/api/pipelines/motif_video#diffusers.MotifVideoPipelineOutput"
>~MotifVideoPipelineOutput</a> or <code>tuple</code></p>
`}}),C=new wt({props:{anchor:"diffusers.MotifVideoPipeline.__call__.example",$$slots:{default:[Gt]},$$scope:{ctx:le}}}),K=new re({props:{name:"encode_prompt",anchor:"diffusers.MotifVideoPipeline.encode_prompt",parameters:[{name:"prompt",val:": typing.Union[str, typing.List[str]]"},{name:"negative_prompt",val:": typing.Union[str, typing.List[str], NoneType] = None"},{name:"num_videos_per_prompt",val:": int = 1"},{name:"prompt_embeds",val:": typing.Optional[torch.Tensor] = None"},{name:"negative_prompt_embeds",val:": typing.Optional[torch.Tensor] = None"},{name:"prompt_attention_mask",val:": typing.Optional[torch.Tensor] = None"},{name:"negative_prompt_attention_mask",val:": typing.Optional[torch.Tensor] = None"},{name:"max_sequence_length",val:": int = 512"},{name:"device",val:": typing.Optional[torch.device] = None"},{name:"dtype",val:": typing.Optional[torch.dtype] = None"}],parametersDescription:[{anchor:"diffusers.MotifVideoPipeline.encode_prompt.prompt",description:`<strong>prompt</strong> (<code>str</code> or <code>List[str]</code>, <em>optional</em>) &#x2014;
The prompt or prompts to be encoded.`,name:"prompt"},{anchor:"diffusers.MotifVideoPipeline.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.MotifVideoPipeline.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 to generate per prompt.`,name:"num_videos_per_prompt"},{anchor:"diffusers.MotifVideoPipeline.encode_prompt.prompt_embeds",description:`<strong>prompt_embeds</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Pre-generated text embeddings.`,name:"prompt_embeds"},{anchor:"diffusers.MotifVideoPipeline.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.MotifVideoPipeline.encode_prompt.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.MotifVideoPipeline.encode_prompt.negative_prompt_attention_mask",description:`<strong>negative_prompt_attention_mask</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Pre-generated attention mask for negative text embeddings.`,name:"negative_prompt_attention_mask"},{anchor:"diffusers.MotifVideoPipeline.encode_prompt.max_sequence_length",description:`<strong>max_sequence_length</strong> (<code>int</code>, defaults to 512) &#x2014;
Maximum sequence length for the tokenizer.`,name:"max_sequence_length"},{anchor:"diffusers.MotifVideoPipeline.encode_prompt.device",description:`<strong>device</strong> (<code>torch.device</code>, <em>optional</em>) &#x2014;
Device to place tensors on.`,name:"device"},{anchor:"diffusers.MotifVideoPipeline.encode_prompt.dtype",description:`<strong>dtype</strong> (<code>torch.dtype</code>, <em>optional</em>) &#x2014;
Data type for tensors.`,name:"dtype"}],source:"https://github.com/huggingface/diffusers/blob/vr_13832/src/diffusers/pipelines/motif_video/pipeline_motif_video.py#L247",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script>
<p>A tuple containing:</p>
<ul>
<li><code>prompt_embeds</code>: The text embeddings for the positive prompt</li>
<li><code>negative_prompt_embeds</code>: The text embeddings for the negative prompt (None if not using guidance)</li>
<li><code>prompt_attention_mask</code>: The attention mask for the positive prompt</li>
<li><code>negative_prompt_attention_mask</code>: The attention mask for the negative prompt (None if not using
guidance)</li>
</ul>
`,returnType:`<script context="module">export const metadata = 'undefined';<\/script>
<p><code>tuple[torch.Tensor, torch.Tensor, torch.Tensor, torch.Tensor]</code></p>
`}}),ee=new pe({props:{title:"MotifVideoImage2VideoPipeline",local:"diffusers.MotifVideoImage2VideoPipeline",headingTag:"h2"}}),te=new re({props:{name:"class diffusers.MotifVideoImage2VideoPipeline",anchor:"diffusers.MotifVideoImage2VideoPipeline",parameters:[{name:"scheduler",val:": SchedulerMixin"},{name:"vae",val:": AutoencoderKLWan"},{name:"text_encoder",val:": T5Gemma2Encoder"},{name:"tokenizer",val:": PreTrainedTokenizerBase"},{name:"transformer",val:": MotifVideoTransformer3DModel"},{name:"guider",val:": BaseGuidance"},{name:"feature_extractor",val:": SiglipImageProcessor"}],parametersDescription:[{anchor:"diffusers.MotifVideoImage2VideoPipeline.transformer",description:`<strong>transformer</strong> (<a href="/docs/diffusers/pr_13832/en/api/models/motif_video_transformer_3d#diffusers.MotifVideoTransformer3DModel">MotifVideoTransformer3DModel</a>) &#x2014;
Conditional Transformer architecture to denoise the encoded video latents.`,name:"transformer"},{anchor:"diffusers.MotifVideoImage2VideoPipeline.scheduler",description:`<strong>scheduler</strong> (<a href="/docs/diffusers/pr_13832/en/api/schedulers/overview#diffusers.SchedulerMixin">SchedulerMixin</a>) &#x2014;
A scheduler to be used in combination with <code>transformer</code> to denoise the encoded video latents. Should be an
instance of a class inheriting from <code>SchedulerMixin</code>, such as <a href="/docs/diffusers/pr_13832/en/api/schedulers/multistep_dpm_solver#diffusers.DPMSolverMultistepScheduler">DPMSolverMultistepScheduler</a>. If not
provided, uses the scheduler attached to the pretrained model.`,name:"scheduler"},{anchor:"diffusers.MotifVideoImage2VideoPipeline.vae",description:`<strong>vae</strong> (<a href="/docs/diffusers/pr_13832/en/api/models/autoencoder_kl_wan#diffusers.AutoencoderKLWan">AutoencoderKLWan</a>) &#x2014;
Variational Auto-Encoder (VAE) Model to encode and decode videos to and from latent representations.`,name:"vae"},{anchor:"diffusers.MotifVideoImage2VideoPipeline.text_encoder",description:`<strong>text_encoder</strong> (<code>T5Gemma2Encoder</code>) &#x2014;
Primary text encoder for encoding text prompts into embeddings.`,name:"text_encoder"},{anchor:"diffusers.MotifVideoImage2VideoPipeline.tokenizer",description:`<strong>tokenizer</strong> (<code>PreTrainedTokenizerBase</code>) &#x2014;
Tokenizer corresponding to the primary text encoder.`,name:"tokenizer"},{anchor:"diffusers.MotifVideoImage2VideoPipeline.feature_extractor",description:`<strong>feature_extractor</strong> (<code>SiglipImageProcessor</code>) &#x2014;
Image processor for the SigLIP vision encoder.`,name:"feature_extractor"},{anchor:"diffusers.MotifVideoImage2VideoPipeline.guider",description:`<strong>guider</strong> (<a href="/docs/diffusers/pr_13832/en/api/modular_diffusers/guiders#diffusers.BaseGuidance">BaseGuidance</a>) &#x2014;
The guidance method to use. Should be an instance of a class inheriting from <code>BaseGuidance</code>, such as
<a href="/docs/diffusers/pr_13832/en/api/modular_diffusers/guiders#diffusers.ClassifierFreeGuidance">ClassifierFreeGuidance</a>, <a href="/docs/diffusers/pr_13832/en/api/modular_diffusers/guiders#diffusers.AdaptiveProjectedGuidance">AdaptiveProjectedGuidance</a>, or <a href="/docs/diffusers/pr_13832/en/api/modular_diffusers/guiders#diffusers.SkipLayerGuidance">SkipLayerGuidance</a>. If not provided,
defaults to <code>ClassifierFreeGuidance</code>.`,name:"guider"}],source:"https://github.com/huggingface/diffusers/blob/vr_13832/src/diffusers/pipelines/motif_video/pipeline_motif_video_image2video.py#L157"}}),ne=new re({props:{name:"__call__",anchor:"diffusers.MotifVideoImage2VideoPipeline.__call__",parameters:[{name:"image",val:": PIL.Image.Image | numpy.ndarray | torch.Tensor | list[PIL.Image.Image] | list[numpy.ndarray] | list[torch.Tensor]"},{name:"prompt",val:": typing.Union[str, typing.List[str]]"},{name:"negative_prompt",val:": typing.Union[str, typing.List[str], NoneType] = None"},{name:"height",val:": int = 736"},{name:"width",val:": int = 1280"},{name:"num_frames",val:": int = 121"},{name:"num_inference_steps",val:": int = 50"},{name:"timesteps",val:": typing.Optional[typing.List[int]] = None"},{name:"num_videos_per_prompt",val:": typing.Optional[int] = 1"},{name:"generator",val:": typing.Union[torch._C.Generator, typing.List[torch._C.Generator], NoneType] = None"},{name:"latents",val:": typing.Optional[torch.Tensor] = None"},{name:"prompt_embeds",val:": typing.Optional[torch.Tensor] = None"},{name:"prompt_attention_mask",val:": typing.Optional[torch.Tensor] = None"},{name:"negative_prompt_embeds",val:": typing.Optional[torch.Tensor] = None"},{name:"negative_prompt_attention_mask",val:": typing.Optional[torch.Tensor] = None"},{name:"output_type",val:": typing.Optional[str] = 'pil'"},{name:"return_dict",val:": bool = True"},{name:"attention_kwargs",val:": typing.Optional[typing.Dict[str, typing.Any]] = None"},{name:"callback_on_step_end",val:": typing.Union[typing.Callable[[int, int, typing.Dict], NoneType], diffusers.callbacks.PipelineCallback, diffusers.callbacks.MultiPipelineCallbacks, NoneType] = None"},{name:"callback_on_step_end_tensor_inputs",val:": typing.List[str] = ['latents']"},{name:"max_sequence_length",val:": int = 512"}],parametersDescription:[{anchor:"diffusers.MotifVideoImage2VideoPipeline.__call__.image",description:`<strong>image</strong> (<code>PipelineImageInput</code>) &#x2014;
The input image to use as the first frame for video generation.`,name:"image"},{anchor:"diffusers.MotifVideoImage2VideoPipeline.__call__.prompt",description:`<strong>prompt</strong> (<code>str</code> or <code>List[str]</code>) &#x2014;
The prompt or prompts to guide the video generation.`,name:"prompt"},{anchor:"diffusers.MotifVideoImage2VideoPipeline.__call__.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 video generation.`,name:"negative_prompt"},{anchor:"diffusers.MotifVideoImage2VideoPipeline.__call__.height",description:`<strong>height</strong> (<code>int</code>, defaults to <code>736</code>) &#x2014;
The height in pixels of the generated video.`,name:"height"},{anchor:"diffusers.MotifVideoImage2VideoPipeline.__call__.width",description:`<strong>width</strong> (<code>int</code>, defaults to <code>1280</code>) &#x2014;
The width in pixels of the generated video.`,name:"width"},{anchor:"diffusers.MotifVideoImage2VideoPipeline.__call__.num_frames",description:`<strong>num_frames</strong> (<code>int</code>, defaults to <code>121</code>) &#x2014;
The number of video frames to generate.`,name:"num_frames"},{anchor:"diffusers.MotifVideoImage2VideoPipeline.__call__.num_inference_steps",description:`<strong>num_inference_steps</strong> (<code>int</code>, <em>optional</em>, defaults to 50) &#x2014;
The number of denoising steps.`,name:"num_inference_steps"},{anchor:"diffusers.MotifVideoImage2VideoPipeline.__call__.timesteps",description:`<strong>timesteps</strong> (<code>List[int]</code>, <em>optional</em>) &#x2014;
Custom timesteps to use for the denoising process.`,name:"timesteps"},{anchor:"diffusers.MotifVideoImage2VideoPipeline.__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.MotifVideoImage2VideoPipeline.__call__.generator",description:`<strong>generator</strong> (<code>torch.Generator</code> or <code>List[torch.Generator]</code>, <em>optional</em>) &#x2014;
PyTorch Generator object(s) for deterministic generation.`,name:"generator"},{anchor:"diffusers.MotifVideoImage2VideoPipeline.__call__.latents",description:`<strong>latents</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Pre-generated noisy latents.`,name:"latents"},{anchor:"diffusers.MotifVideoImage2VideoPipeline.__call__.prompt_embeds",description:`<strong>prompt_embeds</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Pre-generated text embeddings.`,name:"prompt_embeds"},{anchor:"diffusers.MotifVideoImage2VideoPipeline.__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.MotifVideoImage2VideoPipeline.__call__.negative_prompt_embeds",description:`<strong>negative_prompt_embeds</strong> (<code>torch.FloatTensor</code>, <em>optional</em>) &#x2014;
Pre-generated negative text embeddings.`,name:"negative_prompt_embeds"},{anchor:"diffusers.MotifVideoImage2VideoPipeline.__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.MotifVideoImage2VideoPipeline.__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 generated video.`,name:"output_type"},{anchor:"diffusers.MotifVideoImage2VideoPipeline.__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 <a href="/docs/diffusers/pr_13832/en/api/pipelines/motif_video#diffusers.MotifVideoPipelineOutput">~MotifVideoPipelineOutput</a> instead of a plain tuple.`,name:"return_dict"},{anchor:"diffusers.MotifVideoImage2VideoPipeline.__call__.attention_kwargs",description:`<strong>attention_kwargs</strong> (<code>dict</code>, <em>optional</em>) &#x2014;
Arguments passed to the attention processor.`,name:"attention_kwargs"},{anchor:"diffusers.MotifVideoImage2VideoPipeline.__call__.callback_on_step_end",description:`<strong>callback_on_step_end</strong> (<code>Callable</code>, <em>optional</em>) &#x2014;
A function or subclass of <code>PipelineCallback</code> called at the end of each denoising step.`,name:"callback_on_step_end"},{anchor:"diffusers.MotifVideoImage2VideoPipeline.__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.`,name:"callback_on_step_end_tensor_inputs"},{anchor:"diffusers.MotifVideoImage2VideoPipeline.__call__.max_sequence_length",description:`<strong>max_sequence_length</strong> (<code>int</code>, defaults to <code>512</code>) &#x2014;
Maximum sequence length for the tokenizer.`,name:"max_sequence_length"}],source:"https://github.com/huggingface/diffusers/blob/vr_13832/src/diffusers/pipelines/motif_video/pipeline_motif_video_image2video.py#L620",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script>
<p>If <code>return_dict</code> is <code>True</code>, <a
href="/docs/diffusers/pr_13832/en/api/pipelines/motif_video#diffusers.MotifVideoPipelineOutput"
>~MotifVideoPipelineOutput</a> is returned, otherwise a <code>tuple</code> is returned
where the first element is a list of generated video frames.</p>
`,returnType:`<script context="module">export const metadata = 'undefined';<\/script>
<p><a
href="/docs/diffusers/pr_13832/en/api/pipelines/motif_video#diffusers.MotifVideoPipelineOutput"
>~MotifVideoPipelineOutput</a> or <code>tuple</code></p>
`}}),$=new wt({props:{anchor:"diffusers.MotifVideoImage2VideoPipeline.__call__.example",$$slots:{default:[Bt]},$$scope:{ctx:le}}}),oe=new re({props:{name:"encode_prompt",anchor:"diffusers.MotifVideoImage2VideoPipeline.encode_prompt",parameters:[{name:"prompt",val:": typing.Union[str, typing.List[str]]"},{name:"negative_prompt",val:": typing.Union[str, typing.List[str], NoneType] = None"},{name:"num_videos_per_prompt",val:": int = 1"},{name:"prompt_embeds",val:": typing.Optional[torch.Tensor] = None"},{name:"negative_prompt_embeds",val:": typing.Optional[torch.Tensor] = None"},{name:"prompt_attention_mask",val:": typing.Optional[torch.Tensor] = None"},{name:"negative_prompt_attention_mask",val:": typing.Optional[torch.Tensor] = None"},{name:"max_sequence_length",val:": int = 512"},{name:"device",val:": typing.Optional[torch.device] = None"},{name:"dtype",val:": typing.Optional[torch.dtype] = None"}],parametersDescription:[{anchor:"diffusers.MotifVideoImage2VideoPipeline.encode_prompt.prompt",description:`<strong>prompt</strong> (<code>str</code> or <code>List[str]</code>, <em>optional</em>) &#x2014;
The prompt or prompts to be encoded.`,name:"prompt"},{anchor:"diffusers.MotifVideoImage2VideoPipeline.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.MotifVideoImage2VideoPipeline.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 to generate per prompt.`,name:"num_videos_per_prompt"},{anchor:"diffusers.MotifVideoImage2VideoPipeline.encode_prompt.prompt_embeds",description:`<strong>prompt_embeds</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Pre-generated text embeddings.`,name:"prompt_embeds"},{anchor:"diffusers.MotifVideoImage2VideoPipeline.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.MotifVideoImage2VideoPipeline.encode_prompt.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.MotifVideoImage2VideoPipeline.encode_prompt.negative_prompt_attention_mask",description:`<strong>negative_prompt_attention_mask</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Pre-generated attention mask for negative text embeddings.`,name:"negative_prompt_attention_mask"},{anchor:"diffusers.MotifVideoImage2VideoPipeline.encode_prompt.max_sequence_length",description:`<strong>max_sequence_length</strong> (<code>int</code>, defaults to 512) &#x2014;
Maximum sequence length for the tokenizer.`,name:"max_sequence_length"},{anchor:"diffusers.MotifVideoImage2VideoPipeline.encode_prompt.device",description:`<strong>device</strong> (<code>torch.device</code>, <em>optional</em>) &#x2014;
Device to place tensors on.`,name:"device"},{anchor:"diffusers.MotifVideoImage2VideoPipeline.encode_prompt.dtype",description:`<strong>dtype</strong> (<code>torch.dtype</code>, <em>optional</em>) &#x2014;
Data type for tensors.`,name:"dtype"}],source:"https://github.com/huggingface/diffusers/blob/vr_13832/src/diffusers/pipelines/motif_video/pipeline_motif_video_image2video.py#L259",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script>
<p>A tuple containing:</p>
<ul>
<li><code>prompt_embeds</code>: The text embeddings for the positive prompt</li>
<li><code>negative_prompt_embeds</code>: The text embeddings for the negative prompt (None if not using guidance)</li>
<li><code>prompt_attention_mask</code>: The attention mask for the positive prompt</li>
<li><code>negative_prompt_attention_mask</code>: The attention mask for the negative prompt (None if not using
guidance)</li>
</ul>
`,returnType:`<script context="module">export const metadata = 'undefined';<\/script>
<p><code>tuple[torch.Tensor, torch.Tensor, torch.Tensor, torch.Tensor]</code></p>
`}}),ie=new pe({props:{title:"MotifVideoPipelineOutput",local:"diffusers.MotifVideoPipelineOutput",headingTag:"h2"}}),se=new re({props:{name:"class diffusers.MotifVideoPipelineOutput",anchor:"diffusers.MotifVideoPipelineOutput",parameters:[{name:"frames",val:": Tensor"}],parametersDescription:[{anchor:"diffusers.MotifVideoPipelineOutput.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"}],source:"https://github.com/huggingface/diffusers/blob/vr_13832/src/diffusers/pipelines/motif_video/pipeline_output.py#L9"}}),ae=new Zt({props:{source:"https://github.com/huggingface/diffusers/blob/main/docs/source/en/api/pipelines/motif_video.md"}}),{c(){d=p("meta"),V=o(),v=p("p"),h=o(),m(M.$$.fragment),a=o(),m(b.$$.fragment),Te=o(),N=p("p"),N.innerHTML=pt,we=o(),Q=p("p"),Q.textContent=lt,Ue=o(),B=p("p"),B.innerHTML=dt,Ve=o(),m(R.$$.fragment),Je=o(),X=p("p"),X.innerHTML=mt,je=o(),m(E.$$.fragment),xe=o(),m(S.$$.fragment),Ie=o(),H=p("p"),H.innerHTML=ct,ke=o(),m(z.$$.fragment),Ze=o(),m(q.$$.fragment),Ge=o(),L=p("p"),L.textContent=ft,Be=o(),m(F.$$.fragment),Ce=o(),m(A.$$.fragment),Pe=o(),m(D.$$.fragment),$e=o(),T=p("div"),m(Y.$$.fragment),Le=o(),de=p("p"),de.textContent=gt,Fe=o(),me=p("p"),me.innerHTML=ut,Ae=o(),J=p("div"),m(O.$$.fragment),De=o(),ce=p("p"),ce.textContent=_t,Ye=o(),m(C.$$.fragment),Oe=o(),P=p("div"),m(K.$$.fragment),Ke=o(),fe=p("p"),fe.textContent=ht,We=o(),m(ee.$$.fragment),Ne=o(),w=p("div"),m(te.$$.fragment),et=o(),ge=p("p"),ge.textContent=Mt,tt=o(),ue=p("p"),ue.innerHTML=yt,nt=o(),j=p("div"),m(ne.$$.fragment),ot=o(),_e=p("p"),_e.textContent=vt,it=o(),m($.$$.fragment),st=o(),W=p("div"),m(oe.$$.fragment),at=o(),he=p("p"),he.textContent=bt,Qe=o(),m(ie.$$.fragment),Re=o(),k=p("div"),m(se.$$.fragment),rt=o(),Me=p("p"),Me.textContent=Tt,Xe=o(),m(ae.$$.fragment),Ee=o(),be=p("p"),this.h()},l(e){const t=It("svelte-u9bgzb",document.head);d=l(t,"META",{name:!0,content:!0}),t.forEach(n),V=i(e),v=l(e,"P",{}),G(v).forEach(n),h=i(e),c(M.$$.fragment,e),a=i(e),c(b.$$.fragment,e),Te=i(e),N=l(e,"P",{"data-svelte-h":!0}),y(N)!=="svelte-113pn08"&&(N.innerHTML=pt),we=i(e),Q=l(e,"P",{"data-svelte-h":!0}),y(Q)!=="svelte-dutxi3"&&(Q.textContent=lt),Ue=i(e),B=l(e,"P",{align:!0,"data-svelte-h":!0}),y(B)!=="svelte-ma93n1"&&(B.innerHTML=dt),Ve=i(e),c(R.$$.fragment,e),Je=i(e),X=l(e,"P",{"data-svelte-h":!0}),y(X)!=="svelte-1biqu5s"&&(X.innerHTML=mt),je=i(e),c(E.$$.fragment,e),xe=i(e),c(S.$$.fragment,e),Ie=i(e),H=l(e,"P",{"data-svelte-h":!0}),y(H)!=="svelte-1xly75w"&&(H.innerHTML=ct),ke=i(e),c(z.$$.fragment,e),Ze=i(e),c(q.$$.fragment,e),Ge=i(e),L=l(e,"P",{"data-svelte-h":!0}),y(L)!=="svelte-169grm5"&&(L.textContent=ft),Be=i(e),c(F.$$.fragment,e),Ce=i(e),c(A.$$.fragment,e),Pe=i(e),c(D.$$.fragment,e),$e=i(e),T=l(e,"DIV",{class:!0});var U=G(T);c(Y.$$.fragment,U),Le=i(U),de=l(U,"P",{"data-svelte-h":!0}),y(de)!=="svelte-duhyrt"&&(de.textContent=gt),Fe=i(U),me=l(U,"P",{"data-svelte-h":!0}),y(me)!=="svelte-7xsvt3"&&(me.innerHTML=ut),Ae=i(U),J=l(U,"DIV",{class:!0});var Z=G(J);c(O.$$.fragment,Z),De=i(Z),ce=l(Z,"P",{"data-svelte-h":!0}),y(ce)!=="svelte-am6x8d"&&(ce.textContent=_t),Ye=i(Z),c(C.$$.fragment,Z),Z.forEach(n),Oe=i(U),P=l(U,"DIV",{class:!0});var He=G(P);c(K.$$.fragment,He),Ke=i(He),fe=l(He,"P",{"data-svelte-h":!0}),y(fe)!=="svelte-16q0ax1"&&(fe.textContent=ht),He.forEach(n),U.forEach(n),We=i(e),c(ee.$$.fragment,e),Ne=i(e),w=l(e,"DIV",{class:!0});var x=G(w);c(te.$$.fragment,x),et=i(x),ge=l(x,"P",{"data-svelte-h":!0}),y(ge)!=="svelte-65w0nx"&&(ge.textContent=Mt),tt=i(x),ue=l(x,"P",{"data-svelte-h":!0}),y(ue)!=="svelte-7xsvt3"&&(ue.innerHTML=yt),nt=i(x),j=l(x,"DIV",{class:!0});var ye=G(j);c(ne.$$.fragment,ye),ot=i(ye),_e=l(ye,"P",{"data-svelte-h":!0}),y(_e)!=="svelte-en0orh"&&(_e.textContent=vt),it=i(ye),c($.$$.fragment,ye),ye.forEach(n),st=i(x),W=l(x,"DIV",{class:!0});var ze=G(W);c(oe.$$.fragment,ze),at=i(ze),he=l(ze,"P",{"data-svelte-h":!0}),y(he)!=="svelte-16q0ax1"&&(he.textContent=bt),ze.forEach(n),x.forEach(n),Qe=i(e),c(ie.$$.fragment,e),Re=i(e),k=l(e,"DIV",{class:!0});var qe=G(k);c(se.$$.fragment,qe),rt=i(qe),Me=l(qe,"P",{"data-svelte-h":!0}),y(Me)!=="svelte-ln11ti"&&(Me.textContent=Tt),qe.forEach(n),Xe=i(e),c(ae.$$.fragment,e),Ee=i(e),be=l(e,"P",{}),G(be).forEach(n),this.h()},h(){I(d,"name","hf:doc:metadata"),I(d,"content",Pt),I(B,"align","center"),I(J,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),I(P,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),I(T,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),I(j,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),I(W,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),I(w,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),I(k,"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,t){r(document.head,d),s(e,V,t),s(e,v,t),s(e,h,t),f(M,e,t),s(e,a,t),f(b,e,t),s(e,Te,t),s(e,N,t),s(e,we,t),s(e,Q,t),s(e,Ue,t),s(e,B,t),s(e,Ve,t),f(R,e,t),s(e,Je,t),s(e,X,t),s(e,je,t),f(E,e,t),s(e,xe,t),f(S,e,t),s(e,Ie,t),s(e,H,t),s(e,ke,t),f(z,e,t),s(e,Ze,t),f(q,e,t),s(e,Ge,t),s(e,L,t),s(e,Be,t),f(F,e,t),s(e,Ce,t),f(A,e,t),s(e,Pe,t),f(D,e,t),s(e,$e,t),s(e,T,t),f(Y,T,null),r(T,Le),r(T,de),r(T,Fe),r(T,me),r(T,Ae),r(T,J),f(O,J,null),r(J,De),r(J,ce),r(J,Ye),f(C,J,null),r(T,Oe),r(T,P),f(K,P,null),r(P,Ke),r(P,fe),s(e,We,t),f(ee,e,t),s(e,Ne,t),s(e,w,t),f(te,w,null),r(w,et),r(w,ge),r(w,tt),r(w,ue),r(w,nt),r(w,j),f(ne,j,null),r(j,ot),r(j,_e),r(j,it),f($,j,null),r(w,st),r(w,W),f(oe,W,null),r(W,at),r(W,he),s(e,Qe,t),f(ie,e,t),s(e,Re,t),s(e,k,t),f(se,k,null),r(k,rt),r(k,Me),s(e,Xe,t),f(ae,e,t),s(e,Ee,t),s(e,be,t),Se=!0},p(e,[t]){const U={};t&2&&(U.$$scope={dirty:t,ctx:e}),C.$set(U);const Z={};t&2&&(Z.$$scope={dirty:t,ctx:e}),$.$set(Z)},i(e){Se||(g(M.$$.fragment,e),g(b.$$.fragment,e),g(R.$$.fragment,e),g(E.$$.fragment,e),g(S.$$.fragment,e),g(z.$$.fragment,e),g(q.$$.fragment,e),g(F.$$.fragment,e),g(A.$$.fragment,e),g(D.$$.fragment,e),g(Y.$$.fragment,e),g(O.$$.fragment,e),g(C.$$.fragment,e),g(K.$$.fragment,e),g(ee.$$.fragment,e),g(te.$$.fragment,e),g(ne.$$.fragment,e),g($.$$.fragment,e),g(oe.$$.fragment,e),g(ie.$$.fragment,e),g(se.$$.fragment,e),g(ae.$$.fragment,e),Se=!0)},o(e){u(M.$$.fragment,e),u(b.$$.fragment,e),u(R.$$.fragment,e),u(E.$$.fragment,e),u(S.$$.fragment,e),u(z.$$.fragment,e),u(q.$$.fragment,e),u(F.$$.fragment,e),u(A.$$.fragment,e),u(D.$$.fragment,e),u(Y.$$.fragment,e),u(O.$$.fragment,e),u(C.$$.fragment,e),u(K.$$.fragment,e),u(ee.$$.fragment,e),u(te.$$.fragment,e),u(ne.$$.fragment,e),u($.$$.fragment,e),u(oe.$$.fragment,e),u(ie.$$.fragment,e),u(se.$$.fragment,e),u(ae.$$.fragment,e),Se=!1},d(e){e&&(n(V),n(v),n(h),n(a),n(Te),n(N),n(we),n(Q),n(Ue),n(B),n(Ve),n(Je),n(X),n(je),n(xe),n(Ie),n(H),n(ke),n(Ze),n(Ge),n(L),n(Be),n(Ce),n(Pe),n($e),n(T),n(We),n(Ne),n(w),n(Qe),n(Re),n(k),n(Xe),n(Ee),n(be)),n(d),_(M,e),_(b,e),_(R,e),_(E,e),_(S,e),_(z,e),_(q,e),_(F,e),_(A,e),_(D,e),_(Y),_(O),_(C),_(K),_(ee,e),_(te),_(ne),_($),_(oe),_(ie,e),_(se),_(ae,e)}}}const Pt='{"title":"Motif-Video","local":"motif-video","sections":[{"title":"Text-to-Video Generation","local":"text-to-video-generation","sections":[],"depth":2},{"title":"Image-to-Video Generation","local":"image-to-video-generation","sections":[{"title":"Memory-efficient Inference","local":"memory-efficient-inference","sections":[],"depth":3}],"depth":2},{"title":"MotifVideoPipeline","local":"diffusers.MotifVideoPipeline","sections":[],"depth":2},{"title":"MotifVideoImage2VideoPipeline","local":"diffusers.MotifVideoImage2VideoPipeline","sections":[],"depth":2},{"title":"MotifVideoPipelineOutput","local":"diffusers.MotifVideoPipelineOutput","sections":[],"depth":2}],"depth":1}';function $t(le){return Jt(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Ht extends jt{constructor(d){super(),xt(this,d,$t,Ct,Vt,{})}}export{Ht as component};

Xet Storage Details

Size:
61 kB
·
Xet hash:
c823b5e587a36580b11073bcc5db502e8141302316da8ab1888e43bc6b1b3f90

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