Buckets:
| import{s as jl,o as vl,n as D}from"../chunks/scheduler.8c3d61f6.js";import{S as Wl,i as Gl,g as f,s as i,r as M,A as _l,h as u,f as l,c as o,j as Tl,u as y,x as Z,k as C,y as $l,a as s,v as h,d as b,t as J,w as g}from"../chunks/index.589a98e8.js";import{T as St}from"../chunks/Tip.42aa8582.js";import{C as X}from"../chunks/CodeBlock.36627b28.js";import{H as I,E as Vl}from"../chunks/EditOnGithub.e5a8d9cb.js";import{H as Ul,a as Qe}from"../chunks/HfOption.9804ab8b.js";function Xl($){let n,T='Discover other cool and trending video generation models on the Hub <a href="https://huggingface.co/models?pipeline_tag=text-to-video&sort=trending" rel="nofollow">here</a>!';return{c(){n=f("p"),n.innerHTML=T},l(p){n=u(p,"P",{"data-svelte-h":!0}),Z(n)!=="svelte-af52q"&&(n.innerHTML=T)},m(p,m){s(p,n,m)},p:D,d(p){p&&l(n)}}}function Il($){let n,T='ModelScopeT2V generates watermarked videos due to the datasets it was trained on. To use a watermark-free model, try the <a href="https://huggingface.co/cerspense/zeroscope_v2_576w" rel="nofollow">cerspense/zeroscope_v2_76w</a> model with the <a href="/docs/diffusers/pr_7976/en/api/pipelines/text_to_video#diffusers.TextToVideoSDPipeline">TextToVideoSDPipeline</a> first, and then upscale it’s output with the <a href="https://huggingface.co/cerspense/zeroscope_v2_XL" rel="nofollow">cerspense/zeroscope_v2_XL</a> checkpoint using the <a href="/docs/diffusers/pr_7976/en/api/pipelines/text_to_video#diffusers.VideoToVideoSDPipeline">VideoToVideoSDPipeline</a>.';return{c(){n=f("p"),n.innerHTML=T},l(p){n=u(p,"P",{"data-svelte-h":!0}),Z(n)!=="svelte-18dwnkg"&&(n.innerHTML=T)},m(p,m){s(p,n,m)},p:D,d(p){p&&l(n)}}}function Bl($){let n,T="SVD uses the <code>min_guidance_scale</code> and <code>max_guidance_scale</code> parameters for applying guidance to the first and last frames respectively.";return{c(){n=f("p"),n.innerHTML=T},l(p){n=u(p,"P",{"data-svelte-h":!0}),Z(n)!=="svelte-1i6okx6"&&(n.innerHTML=T)},m(p,m){s(p,n,m)},p:D,d(p){p&&l(n)}}}function Cl($){let n,T="Stable Video Diffusion provides additional micro-conditioning for the frame rate with the <code>fps</code> parameter and for motion with the <code>motion_bucket_id</code> parameter. Together, these parameters allow for adjusting the amount of motion in the generated video.",p,m,r='There is also a <code>noise_aug_strength</code> parameter that increases the amount of noise added to the initial image. Varying this parameter affects how similar the generated video and initial image are. A higher <code>noise_aug_strength</code> also increases the amount of motion. To learn more, read the <a href="../using-diffusers/svd#micro-conditioning">Micro-conditioning</a> guide.';return{c(){n=f("p"),n.innerHTML=T,p=i(),m=f("p"),m.innerHTML=r},l(d){n=u(d,"P",{"data-svelte-h":!0}),Z(n)!=="svelte-17vrdx1"&&(n.innerHTML=T),p=o(d),m=u(d,"P",{"data-svelte-h":!0}),Z(m)!=="svelte-1rvhfxn"&&(m.innerHTML=r)},m(d,c){s(d,n,c),s(d,p,c),s(d,m,c)},p:D,d(d){d&&(l(n),l(p),l(m))}}}function Rl($){let n,T="Text2Video-Zero computes the amount of motion to apply to each frame from randomly sampled latents. You can use the <code>motion_field_strength_x</code> and <code>motion_field_strength_y</code> parameters to control the amount of motion to apply to the x and y-axes of the video. The parameters <code>t0</code> and <code>t1</code> are the timesteps to apply motion to the latents.";return{c(){n=f("p"),n.innerHTML=T},l(p){n=u(p,"P",{"data-svelte-h":!0}),Z(n)!=="svelte-mpt4pt"&&(n.innerHTML=T)},m(p,m){s(p,n,m)},p:D,d(p){p&&l(n)}}}function xl($){let n,T,p,m;return n=new Qe({props:{id:"special-parameters",option:"Stable Video Diffusion",$$slots:{default:[Cl]},$$scope:{ctx:$}}}),p=new Qe({props:{id:"special-parameters",option:"Text2Video-Zero",$$slots:{default:[Rl]},$$scope:{ctx:$}}}),{c(){M(n.$$.fragment),T=i(),M(p.$$.fragment)},l(r){y(n.$$.fragment,r),T=o(r),y(p.$$.fragment,r)},m(r,d){h(n,r,d),s(r,T,d),h(p,r,d),m=!0},p(r,d){const c={};d&2&&(c.$$scope={dirty:d,ctx:r}),n.$set(c);const U={};d&2&&(U.$$scope={dirty:d,ctx:r}),p.$set(U)},i(r){m||(b(n.$$.fragment,r),b(p.$$.fragment,r),m=!0)},o(r){J(n.$$.fragment,r),J(p.$$.fragment,r),m=!1},d(r){r&&l(T),g(n,r),g(p,r)}}}function kl($){let n,T="Start by downloading a video and extracting the pose images from it.",p,m,r,d,c='Load a <a href="/docs/diffusers/pr_7976/en/api/models/controlnet#diffusers.ControlNetModel">ControlNetModel</a> for pose estimation and a checkpoint into the <a href="/docs/diffusers/pr_7976/en/api/pipelines/controlnet#diffusers.StableDiffusionControlNetPipeline">StableDiffusionControlNetPipeline</a>. Then you’ll use the <a href="/docs/diffusers/pr_7976/en/api/attnprocessor#diffusers.pipelines.text_to_video_synthesis.pipeline_text_to_video_zero.CrossFrameAttnProcessor">CrossFrameAttnProcessor</a> for the UNet and ControlNet.',U,j,G,v,B="Fix the latents for all the frames, and then pass your prompt and extracted pose images to the model to generate a video.",V,W,_;return m=new X({props:{code:"ZnJvbSUyMGh1Z2dpbmdmYWNlX2h1YiUyMGltcG9ydCUyMGhmX2h1Yl9kb3dubG9hZCUwQWZyb20lMjBQSUwlMjBpbXBvcnQlMjBJbWFnZSUwQWltcG9ydCUyMGltYWdlaW8lMEElMEFmaWxlbmFtZSUyMCUzRCUyMCUyMl9fYXNzZXRzX18lMkZwb3Nlc19za2VsZXRvbl9naWZzJTJGZGFuY2UxX2NvcnIubXA0JTIyJTBBcmVwb19pZCUyMCUzRCUyMCUyMlBBSVIlMkZUZXh0MlZpZGVvLVplcm8lMjIlMEF2aWRlb19wYXRoJTIwJTNEJTIwaGZfaHViX2Rvd25sb2FkKHJlcG9fdHlwZSUzRCUyMnNwYWNlJTIyJTJDJTIwcmVwb19pZCUzRHJlcG9faWQlMkMlMjBmaWxlbmFtZSUzRGZpbGVuYW1lKSUwQSUwQXJlYWRlciUyMCUzRCUyMGltYWdlaW8uZ2V0X3JlYWRlcih2aWRlb19wYXRoJTJDJTIwJTIyZmZtcGVnJTIyKSUwQWZyYW1lX2NvdW50JTIwJTNEJTIwOCUwQXBvc2VfaW1hZ2VzJTIwJTNEJTIwJTVCSW1hZ2UuZnJvbWFycmF5KHJlYWRlci5nZXRfZGF0YShpKSklMjBmb3IlMjBpJTIwaW4lMjByYW5nZShmcmFtZV9jb3VudCklNUQ=",highlighted:`<span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> hf_hub_download | |
| <span class="hljs-keyword">from</span> PIL <span class="hljs-keyword">import</span> Image | |
| <span class="hljs-keyword">import</span> imageio | |
| filename = <span class="hljs-string">"__assets__/poses_skeleton_gifs/dance1_corr.mp4"</span> | |
| repo_id = <span class="hljs-string">"PAIR/Text2Video-Zero"</span> | |
| video_path = hf_hub_download(repo_type=<span class="hljs-string">"space"</span>, repo_id=repo_id, filename=filename) | |
| reader = imageio.get_reader(video_path, <span class="hljs-string">"ffmpeg"</span>) | |
| frame_count = <span class="hljs-number">8</span> | |
| pose_images = [Image.fromarray(reader.get_data(i)) <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(frame_count)]`,wrap:!1}}),j=new X({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwU3RhYmxlRGlmZnVzaW9uQ29udHJvbE5ldFBpcGVsaW5lJTJDJTIwQ29udHJvbE5ldE1vZGVsJTBBZnJvbSUyMGRpZmZ1c2Vycy5waXBlbGluZXMudGV4dF90b192aWRlb19zeW50aGVzaXMucGlwZWxpbmVfdGV4dF90b192aWRlb196ZXJvJTIwaW1wb3J0JTIwQ3Jvc3NGcmFtZUF0dG5Qcm9jZXNzb3IlMEElMEFtb2RlbF9pZCUyMCUzRCUyMCUyMnJ1bndheW1sJTJGc3RhYmxlLWRpZmZ1c2lvbi12MS01JTIyJTBBY29udHJvbG5ldCUyMCUzRCUyMENvbnRyb2xOZXRNb2RlbC5mcm9tX3ByZXRyYWluZWQoJTIybGxseWFzdmllbCUyRnNkLWNvbnRyb2xuZXQtb3BlbnBvc2UlMjIlMkMlMjB0b3JjaF9kdHlwZSUzRHRvcmNoLmZsb2F0MTYpJTBBcGlwZWxpbmUlMjAlM0QlMjBTdGFibGVEaWZmdXNpb25Db250cm9sTmV0UGlwZWxpbmUuZnJvbV9wcmV0cmFpbmVkKCUwQSUyMCUyMCUyMCUyMG1vZGVsX2lkJTJDJTIwY29udHJvbG5ldCUzRGNvbnRyb2xuZXQlMkMlMjB0b3JjaF9kdHlwZSUzRHRvcmNoLmZsb2F0MTYlMEEpLnRvKCUyMmN1ZGElMjIpJTBBJTBBcGlwZWxpbmUudW5ldC5zZXRfYXR0bl9wcm9jZXNzb3IoQ3Jvc3NGcmFtZUF0dG5Qcm9jZXNzb3IoYmF0Y2hfc2l6ZSUzRDIpKSUwQXBpcGVsaW5lLmNvbnRyb2xuZXQuc2V0X2F0dG5fcHJvY2Vzc29yKENyb3NzRnJhbWVBdHRuUHJvY2Vzc29yKGJhdGNoX3NpemUlM0QyKSk=",highlighted:`<span class="hljs-keyword">import</span> torch | |
| <span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> StableDiffusionControlNetPipeline, ControlNetModel | |
| <span class="hljs-keyword">from</span> diffusers.pipelines.text_to_video_synthesis.pipeline_text_to_video_zero <span class="hljs-keyword">import</span> CrossFrameAttnProcessor | |
| model_id = <span class="hljs-string">"runwayml/stable-diffusion-v1-5"</span> | |
| controlnet = ControlNetModel.from_pretrained(<span class="hljs-string">"lllyasviel/sd-controlnet-openpose"</span>, torch_dtype=torch.float16) | |
| pipeline = StableDiffusionControlNetPipeline.from_pretrained( | |
| model_id, controlnet=controlnet, torch_dtype=torch.float16 | |
| ).to(<span class="hljs-string">"cuda"</span>) | |
| pipeline.unet.set_attn_processor(CrossFrameAttnProcessor(batch_size=<span class="hljs-number">2</span>)) | |
| pipeline.controlnet.set_attn_processor(CrossFrameAttnProcessor(batch_size=<span class="hljs-number">2</span>))`,wrap:!1}}),W=new X({props:{code:"bGF0ZW50cyUyMCUzRCUyMHRvcmNoLnJhbmRuKCgxJTJDJTIwNCUyQyUyMDY0JTJDJTIwNjQpJTJDJTIwZGV2aWNlJTNEJTIyY3VkYSUyMiUyQyUyMGR0eXBlJTNEdG9yY2guZmxvYXQxNikucmVwZWF0KGxlbihwb3NlX2ltYWdlcyklMkMlMjAxJTJDJTIwMSUyQyUyMDEpJTBBJTBBcHJvbXB0JTIwJTNEJTIwJTIyRGFydGglMjBWYWRlciUyMGRhbmNpbmclMjBpbiUyMGElMjBkZXNlcnQlMjIlMEFyZXN1bHQlMjAlM0QlMjBwaXBlbGluZShwcm9tcHQlM0QlNUJwcm9tcHQlNUQlMjAqJTIwbGVuKHBvc2VfaW1hZ2VzKSUyQyUyMGltYWdlJTNEcG9zZV9pbWFnZXMlMkMlMjBsYXRlbnRzJTNEbGF0ZW50cykuaW1hZ2VzJTBBaW1hZ2Vpby5taW1zYXZlKCUyMnZpZGVvLm1wNCUyMiUyQyUyMHJlc3VsdCUyQyUyMGZwcyUzRDQp",highlighted:`latents = torch.randn((<span class="hljs-number">1</span>, <span class="hljs-number">4</span>, <span class="hljs-number">64</span>, <span class="hljs-number">64</span>), device=<span class="hljs-string">"cuda"</span>, dtype=torch.float16).repeat(<span class="hljs-built_in">len</span>(pose_images), <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>) | |
| prompt = <span class="hljs-string">"Darth Vader dancing in a desert"</span> | |
| result = pipeline(prompt=[prompt] * <span class="hljs-built_in">len</span>(pose_images), image=pose_images, latents=latents).images | |
| imageio.mimsave(<span class="hljs-string">"video.mp4"</span>, result, fps=<span class="hljs-number">4</span>)`,wrap:!1}}),{c(){n=f("p"),n.textContent=T,p=i(),M(m.$$.fragment),r=i(),d=f("p"),d.innerHTML=c,U=i(),M(j.$$.fragment),G=i(),v=f("p"),v.textContent=B,V=i(),M(W.$$.fragment)},l(a){n=u(a,"P",{"data-svelte-h":!0}),Z(n)!=="svelte-iz4nwy"&&(n.textContent=T),p=o(a),y(m.$$.fragment,a),r=o(a),d=u(a,"P",{"data-svelte-h":!0}),Z(d)!=="svelte-1bmekx1"&&(d.innerHTML=c),U=o(a),y(j.$$.fragment,a),G=o(a),v=u(a,"P",{"data-svelte-h":!0}),Z(v)!=="svelte-se6rgz"&&(v.textContent=B),V=o(a),y(W.$$.fragment,a)},m(a,w){s(a,n,w),s(a,p,w),h(m,a,w),s(a,r,w),s(a,d,w),s(a,U,w),h(j,a,w),s(a,G,w),s(a,v,w),s(a,V,w),h(W,a,w),_=!0},p:D,i(a){_||(b(m.$$.fragment,a),b(j.$$.fragment,a),b(W.$$.fragment,a),_=!0)},o(a){J(m.$$.fragment,a),J(j.$$.fragment,a),J(W.$$.fragment,a),_=!1},d(a){a&&(l(n),l(p),l(r),l(d),l(U),l(G),l(v),l(V)),g(m,a),g(j,a),g(W,a)}}}function Ql($){let n,T="Download a video and extract the edges from it.",p,m,r,d,c='Load a <a href="/docs/diffusers/pr_7976/en/api/models/controlnet#diffusers.ControlNetModel">ControlNetModel</a> for canny edge and a checkpoint into the <a href="/docs/diffusers/pr_7976/en/api/pipelines/controlnet#diffusers.StableDiffusionControlNetPipeline">StableDiffusionControlNetPipeline</a>. Then you’ll use the <a href="/docs/diffusers/pr_7976/en/api/attnprocessor#diffusers.pipelines.text_to_video_synthesis.pipeline_text_to_video_zero.CrossFrameAttnProcessor">CrossFrameAttnProcessor</a> for the UNet and ControlNet.',U,j,G,v,B="Fix the latents for all the frames, and then pass your prompt and extracted edge images to the model to generate a video.",V,W,_;return m=new X({props:{code:"ZnJvbSUyMGh1Z2dpbmdmYWNlX2h1YiUyMGltcG9ydCUyMGhmX2h1Yl9kb3dubG9hZCUwQWZyb20lMjBQSUwlMjBpbXBvcnQlMjBJbWFnZSUwQWltcG9ydCUyMGltYWdlaW8lMEElMEFmaWxlbmFtZSUyMCUzRCUyMCUyMl9fYXNzZXRzX18lMkZwb3Nlc19za2VsZXRvbl9naWZzJTJGZGFuY2UxX2NvcnIubXA0JTIyJTBBcmVwb19pZCUyMCUzRCUyMCUyMlBBSVIlMkZUZXh0MlZpZGVvLVplcm8lMjIlMEF2aWRlb19wYXRoJTIwJTNEJTIwaGZfaHViX2Rvd25sb2FkKHJlcG9fdHlwZSUzRCUyMnNwYWNlJTIyJTJDJTIwcmVwb19pZCUzRHJlcG9faWQlMkMlMjBmaWxlbmFtZSUzRGZpbGVuYW1lKSUwQSUwQXJlYWRlciUyMCUzRCUyMGltYWdlaW8uZ2V0X3JlYWRlcih2aWRlb19wYXRoJTJDJTIwJTIyZmZtcGVnJTIyKSUwQWZyYW1lX2NvdW50JTIwJTNEJTIwOCUwQXBvc2VfaW1hZ2VzJTIwJTNEJTIwJTVCSW1hZ2UuZnJvbWFycmF5KHJlYWRlci5nZXRfZGF0YShpKSklMjBmb3IlMjBpJTIwaW4lMjByYW5nZShmcmFtZV9jb3VudCklNUQ=",highlighted:`<span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> hf_hub_download | |
| <span class="hljs-keyword">from</span> PIL <span class="hljs-keyword">import</span> Image | |
| <span class="hljs-keyword">import</span> imageio | |
| filename = <span class="hljs-string">"__assets__/poses_skeleton_gifs/dance1_corr.mp4"</span> | |
| repo_id = <span class="hljs-string">"PAIR/Text2Video-Zero"</span> | |
| video_path = hf_hub_download(repo_type=<span class="hljs-string">"space"</span>, repo_id=repo_id, filename=filename) | |
| reader = imageio.get_reader(video_path, <span class="hljs-string">"ffmpeg"</span>) | |
| frame_count = <span class="hljs-number">8</span> | |
| pose_images = [Image.fromarray(reader.get_data(i)) <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(frame_count)]`,wrap:!1}}),j=new X({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwU3RhYmxlRGlmZnVzaW9uQ29udHJvbE5ldFBpcGVsaW5lJTJDJTIwQ29udHJvbE5ldE1vZGVsJTBBZnJvbSUyMGRpZmZ1c2Vycy5waXBlbGluZXMudGV4dF90b192aWRlb19zeW50aGVzaXMucGlwZWxpbmVfdGV4dF90b192aWRlb196ZXJvJTIwaW1wb3J0JTIwQ3Jvc3NGcmFtZUF0dG5Qcm9jZXNzb3IlMEElMEFtb2RlbF9pZCUyMCUzRCUyMCUyMnJ1bndheW1sJTJGc3RhYmxlLWRpZmZ1c2lvbi12MS01JTIyJTBBY29udHJvbG5ldCUyMCUzRCUyMENvbnRyb2xOZXRNb2RlbC5mcm9tX3ByZXRyYWluZWQoJTIybGxseWFzdmllbCUyRnNkLWNvbnRyb2xuZXQtY2FubnklMjIlMkMlMjB0b3JjaF9kdHlwZSUzRHRvcmNoLmZsb2F0MTYpJTBBcGlwZWxpbmUlMjAlM0QlMjBTdGFibGVEaWZmdXNpb25Db250cm9sTmV0UGlwZWxpbmUuZnJvbV9wcmV0cmFpbmVkKCUwQSUyMCUyMCUyMCUyMG1vZGVsX2lkJTJDJTIwY29udHJvbG5ldCUzRGNvbnRyb2xuZXQlMkMlMjB0b3JjaF9kdHlwZSUzRHRvcmNoLmZsb2F0MTYlMEEpLnRvKCUyMmN1ZGElMjIpJTBBJTBBcGlwZWxpbmUudW5ldC5zZXRfYXR0bl9wcm9jZXNzb3IoQ3Jvc3NGcmFtZUF0dG5Qcm9jZXNzb3IoYmF0Y2hfc2l6ZSUzRDIpKSUwQXBpcGVsaW5lLmNvbnRyb2xuZXQuc2V0X2F0dG5fcHJvY2Vzc29yKENyb3NzRnJhbWVBdHRuUHJvY2Vzc29yKGJhdGNoX3NpemUlM0QyKSk=",highlighted:`<span class="hljs-keyword">import</span> torch | |
| <span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> StableDiffusionControlNetPipeline, ControlNetModel | |
| <span class="hljs-keyword">from</span> diffusers.pipelines.text_to_video_synthesis.pipeline_text_to_video_zero <span class="hljs-keyword">import</span> CrossFrameAttnProcessor | |
| model_id = <span class="hljs-string">"runwayml/stable-diffusion-v1-5"</span> | |
| controlnet = ControlNetModel.from_pretrained(<span class="hljs-string">"lllyasviel/sd-controlnet-canny"</span>, torch_dtype=torch.float16) | |
| pipeline = StableDiffusionControlNetPipeline.from_pretrained( | |
| model_id, controlnet=controlnet, torch_dtype=torch.float16 | |
| ).to(<span class="hljs-string">"cuda"</span>) | |
| pipeline.unet.set_attn_processor(CrossFrameAttnProcessor(batch_size=<span class="hljs-number">2</span>)) | |
| pipeline.controlnet.set_attn_processor(CrossFrameAttnProcessor(batch_size=<span class="hljs-number">2</span>))`,wrap:!1}}),W=new X({props:{code:"bGF0ZW50cyUyMCUzRCUyMHRvcmNoLnJhbmRuKCgxJTJDJTIwNCUyQyUyMDY0JTJDJTIwNjQpJTJDJTIwZGV2aWNlJTNEJTIyY3VkYSUyMiUyQyUyMGR0eXBlJTNEdG9yY2guZmxvYXQxNikucmVwZWF0KGxlbihwb3NlX2ltYWdlcyklMkMlMjAxJTJDJTIwMSUyQyUyMDEpJTBBJTBBcHJvbXB0JTIwJTNEJTIwJTIyRGFydGglMjBWYWRlciUyMGRhbmNpbmclMjBpbiUyMGElMjBkZXNlcnQlMjIlMEFyZXN1bHQlMjAlM0QlMjBwaXBlbGluZShwcm9tcHQlM0QlNUJwcm9tcHQlNUQlMjAqJTIwbGVuKHBvc2VfaW1hZ2VzKSUyQyUyMGltYWdlJTNEcG9zZV9pbWFnZXMlMkMlMjBsYXRlbnRzJTNEbGF0ZW50cykuaW1hZ2VzJTBBaW1hZ2Vpby5taW1zYXZlKCUyMnZpZGVvLm1wNCUyMiUyQyUyMHJlc3VsdCUyQyUyMGZwcyUzRDQp",highlighted:`latents = torch.randn((<span class="hljs-number">1</span>, <span class="hljs-number">4</span>, <span class="hljs-number">64</span>, <span class="hljs-number">64</span>), device=<span class="hljs-string">"cuda"</span>, dtype=torch.float16).repeat(<span class="hljs-built_in">len</span>(pose_images), <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>) | |
| prompt = <span class="hljs-string">"Darth Vader dancing in a desert"</span> | |
| result = pipeline(prompt=[prompt] * <span class="hljs-built_in">len</span>(pose_images), image=pose_images, latents=latents).images | |
| imageio.mimsave(<span class="hljs-string">"video.mp4"</span>, result, fps=<span class="hljs-number">4</span>)`,wrap:!1}}),{c(){n=f("p"),n.textContent=T,p=i(),M(m.$$.fragment),r=i(),d=f("p"),d.innerHTML=c,U=i(),M(j.$$.fragment),G=i(),v=f("p"),v.textContent=B,V=i(),M(W.$$.fragment)},l(a){n=u(a,"P",{"data-svelte-h":!0}),Z(n)!=="svelte-17hae8i"&&(n.textContent=T),p=o(a),y(m.$$.fragment,a),r=o(a),d=u(a,"P",{"data-svelte-h":!0}),Z(d)!=="svelte-c1fr69"&&(d.innerHTML=c),U=o(a),y(j.$$.fragment,a),G=o(a),v=u(a,"P",{"data-svelte-h":!0}),Z(v)!=="svelte-bmckdz"&&(v.textContent=B),V=o(a),y(W.$$.fragment,a)},m(a,w){s(a,n,w),s(a,p,w),h(m,a,w),s(a,r,w),s(a,d,w),s(a,U,w),h(j,a,w),s(a,G,w),s(a,v,w),s(a,V,w),h(W,a,w),_=!0},p:D,i(a){_||(b(m.$$.fragment,a),b(j.$$.fragment,a),b(W.$$.fragment,a),_=!0)},o(a){J(m.$$.fragment,a),J(j.$$.fragment,a),J(W.$$.fragment,a),_=!1},d(a){a&&(l(n),l(p),l(r),l(d),l(U),l(G),l(v),l(V)),g(m,a),g(j,a),g(W,a)}}}function Nl($){let n,T="InstructPix2Pix allows you to use text to describe the changes you want to make to the video. Start by downloading and reading a video.",p,m,r,d,c='Load the <a href="/docs/diffusers/pr_7976/en/api/pipelines/pix2pix#diffusers.StableDiffusionInstructPix2PixPipeline">StableDiffusionInstructPix2PixPipeline</a> and set the <a href="/docs/diffusers/pr_7976/en/api/attnprocessor#diffusers.pipelines.text_to_video_synthesis.pipeline_text_to_video_zero.CrossFrameAttnProcessor">CrossFrameAttnProcessor</a> for the UNet.',U,j,G,v,B="Pass a prompt describing the change you want to apply to the video.",V,W,_;return m=new X({props:{code:"ZnJvbSUyMGh1Z2dpbmdmYWNlX2h1YiUyMGltcG9ydCUyMGhmX2h1Yl9kb3dubG9hZCUwQWZyb20lMjBQSUwlMjBpbXBvcnQlMjBJbWFnZSUwQWltcG9ydCUyMGltYWdlaW8lMEElMEFmaWxlbmFtZSUyMCUzRCUyMCUyMl9fYXNzZXRzX18lMkZwaXgycGl4JTIwdmlkZW8lMkZjYW1lbC5tcDQlMjIlMEFyZXBvX2lkJTIwJTNEJTIwJTIyUEFJUiUyRlRleHQyVmlkZW8tWmVybyUyMiUwQXZpZGVvX3BhdGglMjAlM0QlMjBoZl9odWJfZG93bmxvYWQocmVwb190eXBlJTNEJTIyc3BhY2UlMjIlMkMlMjByZXBvX2lkJTNEcmVwb19pZCUyQyUyMGZpbGVuYW1lJTNEZmlsZW5hbWUpJTBBJTBBcmVhZGVyJTIwJTNEJTIwaW1hZ2Vpby5nZXRfcmVhZGVyKHZpZGVvX3BhdGglMkMlMjAlMjJmZm1wZWclMjIpJTBBZnJhbWVfY291bnQlMjAlM0QlMjA4JTBBdmlkZW8lMjAlM0QlMjAlNUJJbWFnZS5mcm9tYXJyYXkocmVhZGVyLmdldF9kYXRhKGkpKSUyMGZvciUyMGklMjBpbiUyMHJhbmdlKGZyYW1lX2NvdW50KSU1RA==",highlighted:`<span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> hf_hub_download | |
| <span class="hljs-keyword">from</span> PIL <span class="hljs-keyword">import</span> Image | |
| <span class="hljs-keyword">import</span> imageio | |
| filename = <span class="hljs-string">"__assets__/pix2pix video/camel.mp4"</span> | |
| repo_id = <span class="hljs-string">"PAIR/Text2Video-Zero"</span> | |
| video_path = hf_hub_download(repo_type=<span class="hljs-string">"space"</span>, repo_id=repo_id, filename=filename) | |
| reader = imageio.get_reader(video_path, <span class="hljs-string">"ffmpeg"</span>) | |
| frame_count = <span class="hljs-number">8</span> | |
| video = [Image.fromarray(reader.get_data(i)) <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(frame_count)]`,wrap:!1}}),j=new X({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwU3RhYmxlRGlmZnVzaW9uSW5zdHJ1Y3RQaXgyUGl4UGlwZWxpbmUlMEFmcm9tJTIwZGlmZnVzZXJzLnBpcGVsaW5lcy50ZXh0X3RvX3ZpZGVvX3N5bnRoZXNpcy5waXBlbGluZV90ZXh0X3RvX3ZpZGVvX3plcm8lMjBpbXBvcnQlMjBDcm9zc0ZyYW1lQXR0blByb2Nlc3NvciUwQSUwQXBpcGVsaW5lJTIwJTNEJTIwU3RhYmxlRGlmZnVzaW9uSW5zdHJ1Y3RQaXgyUGl4UGlwZWxpbmUuZnJvbV9wcmV0cmFpbmVkKCUyMnRpbWJyb29rcyUyRmluc3RydWN0LXBpeDJwaXglMjIlMkMlMjB0b3JjaF9kdHlwZSUzRHRvcmNoLmZsb2F0MTYpLnRvKCUyMmN1ZGElMjIpJTBBcGlwZWxpbmUudW5ldC5zZXRfYXR0bl9wcm9jZXNzb3IoQ3Jvc3NGcmFtZUF0dG5Qcm9jZXNzb3IoYmF0Y2hfc2l6ZSUzRDMpKQ==",highlighted:`<span class="hljs-keyword">import</span> torch | |
| <span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> StableDiffusionInstructPix2PixPipeline | |
| <span class="hljs-keyword">from</span> diffusers.pipelines.text_to_video_synthesis.pipeline_text_to_video_zero <span class="hljs-keyword">import</span> CrossFrameAttnProcessor | |
| pipeline = StableDiffusionInstructPix2PixPipeline.from_pretrained(<span class="hljs-string">"timbrooks/instruct-pix2pix"</span>, torch_dtype=torch.float16).to(<span class="hljs-string">"cuda"</span>) | |
| pipeline.unet.set_attn_processor(CrossFrameAttnProcessor(batch_size=<span class="hljs-number">3</span>))`,wrap:!1}}),W=new X({props:{code:"cHJvbXB0JTIwJTNEJTIwJTIybWFrZSUyMGl0JTIwVmFuJTIwR29naCUyMFN0YXJyeSUyME5pZ2h0JTIwc3R5bGUlMjIlMEFyZXN1bHQlMjAlM0QlMjBwaXBlbGluZShwcm9tcHQlM0QlNUJwcm9tcHQlNUQlMjAqJTIwbGVuKHZpZGVvKSUyQyUyMGltYWdlJTNEdmlkZW8pLmltYWdlcyUwQWltYWdlaW8ubWltc2F2ZSglMjJlZGl0ZWRfdmlkZW8ubXA0JTIyJTJDJTIwcmVzdWx0JTJDJTIwZnBzJTNENCk=",highlighted:`prompt = <span class="hljs-string">"make it Van Gogh Starry Night style"</span> | |
| result = pipeline(prompt=[prompt] * <span class="hljs-built_in">len</span>(video), image=video).images | |
| imageio.mimsave(<span class="hljs-string">"edited_video.mp4"</span>, result, fps=<span class="hljs-number">4</span>)`,wrap:!1}}),{c(){n=f("p"),n.textContent=T,p=i(),M(m.$$.fragment),r=i(),d=f("p"),d.innerHTML=c,U=i(),M(j.$$.fragment),G=i(),v=f("p"),v.textContent=B,V=i(),M(W.$$.fragment)},l(a){n=u(a,"P",{"data-svelte-h":!0}),Z(n)!=="svelte-189mnmt"&&(n.textContent=T),p=o(a),y(m.$$.fragment,a),r=o(a),d=u(a,"P",{"data-svelte-h":!0}),Z(d)!=="svelte-xlf1z8"&&(d.innerHTML=c),U=o(a),y(j.$$.fragment,a),G=o(a),v=u(a,"P",{"data-svelte-h":!0}),Z(v)!=="svelte-1iedrpu"&&(v.textContent=B),V=o(a),y(W.$$.fragment,a)},m(a,w){s(a,n,w),s(a,p,w),h(m,a,w),s(a,r,w),s(a,d,w),s(a,U,w),h(j,a,w),s(a,G,w),s(a,v,w),s(a,V,w),h(W,a,w),_=!0},p:D,i(a){_||(b(m.$$.fragment,a),b(j.$$.fragment,a),b(W.$$.fragment,a),_=!0)},o(a){J(m.$$.fragment,a),J(j.$$.fragment,a),J(W.$$.fragment,a),_=!1},d(a){a&&(l(n),l(p),l(r),l(d),l(U),l(G),l(v),l(V)),g(m,a),g(j,a),g(W,a)}}}function Yl($){let n,T,p,m,r,d;return n=new Qe({props:{id:"t2v-zero",option:"pose control",$$slots:{default:[kl]},$$scope:{ctx:$}}}),p=new Qe({props:{id:"t2v-zero",option:"edge control",$$slots:{default:[Ql]},$$scope:{ctx:$}}}),r=new Qe({props:{id:"t2v-zero",option:"InstructPix2Pix",$$slots:{default:[Nl]},$$scope:{ctx:$}}}),{c(){M(n.$$.fragment),T=i(),M(p.$$.fragment),m=i(),M(r.$$.fragment)},l(c){y(n.$$.fragment,c),T=o(c),y(p.$$.fragment,c),m=o(c),y(r.$$.fragment,c)},m(c,U){h(n,c,U),s(c,T,U),h(p,c,U),s(c,m,U),h(r,c,U),d=!0},p(c,U){const j={};U&2&&(j.$$scope={dirty:U,ctx:c}),n.$set(j);const G={};U&2&&(G.$$scope={dirty:U,ctx:c}),p.$set(G);const v={};U&2&&(v.$$scope={dirty:U,ctx:c}),r.$set(v)},i(c){d||(b(n.$$.fragment,c),b(p.$$.fragment,c),b(r.$$.fragment,c),d=!0)},o(c){J(n.$$.fragment,c),J(p.$$.fragment,c),J(r.$$.fragment,c),d=!1},d(c){c&&(l(T),l(m)),g(n,c),g(p,c),g(r,c)}}}function Hl($){let n,T,p,m,r,d,c,U="Driven by the success of text-to-image diffusion models, generative video models are able to generate short clips of video from a text prompt or an initial image. These models extend a pretrained diffusion model to generate videos by adding some type of temporal and/or spatial convolution layer to the architecture. A mixed dataset of images and videos are used to train the model which learns to output a series of video frames based on the text or image conditioning.",j,G,v="This guide will show you how to generate videos, how to configure video model parameters, and how to control video generation.",B,V,W,_,a,w,zt='<a href="https://huggingface.co/stabilityai/stable-video-diffusion-img2vid" rel="nofollow">Stable Video Diffusions (SVD)</a>, <a href="https://huggingface.co/ali-vilab/i2vgen-xl/" rel="nofollow">I2VGen-XL</a>, <a href="https://huggingface.co/guoyww/animatediff" rel="nofollow">AnimateDiff</a>, and <a href="https://huggingface.co/ali-vilab/text-to-video-ms-1.7b" rel="nofollow">ModelScopeT2V</a> are popular models used for video diffusion. Each model is distinct. For example, AnimateDiff inserts a motion modeling module into a frozen text-to-image model to generate personalized animated images, whereas SVD is entirely pretrained from scratch with a three-stage training process to generate short high-quality videos.',Ne,q,Ye,L,Ft='<a href="../api/pipelines/svd">SVD</a> is based on the Stable Diffusion 2.1 model and it is trained on images, then low-resolution videos, and finally a smaller dataset of high-resolution videos. This model generates a short 2-4 second video from an initial image. You can learn more details about model, like micro-conditioning, in the <a href="../using-diffusers/svd">Stable Video Diffusion</a> guide.',He,A,Et='Begin by loading the <a href="/docs/diffusers/pr_7976/en/api/pipelines/stable_diffusion/svd#diffusers.StableVideoDiffusionPipeline">StableVideoDiffusionPipeline</a> and passing an initial image to generate a video from.',Se,P,ze,R,Dt='<div><img class="rounded-xl" src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/svd/rocket.png"/> <figcaption class="mt-2 text-center text-sm text-gray-500">initial image</figcaption></div> <div><img class="rounded-xl" src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/svd/output_rocket.gif"/> <figcaption class="mt-2 text-center text-sm text-gray-500">generated video</figcaption></div>',Fe,K,Ee,O,qt='<a href="../api/pipelines/i2vgenxl">I2VGen-XL</a> is a diffusion model that can generate higher resolution videos than SVD and it is also capable of accepting text prompts in addition to images. The model is trained with two hierarchical encoders (detail and global encoder) to better capture low and high-level details in images. These learned details are used to train a video diffusion model which refines the video resolution and details in the generated video.',De,ee,Lt='You can use I2VGen-XL by loading the <a href="/docs/diffusers/pr_7976/en/api/pipelines/i2vgenxl#diffusers.I2VGenXLPipeline">I2VGenXLPipeline</a>, and passing a text and image prompt to generate a video.',qe,te,Le,x,At='<div><img class="rounded-xl" src="https://huggingface.co/datasets/diffusers/docs-images/resolve/main/i2vgen_xl_images/img_0009.png"/> <figcaption class="mt-2 text-center text-sm text-gray-500">initial image</figcaption></div> <div><img class="rounded-xl" src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/i2vgen-xl-example.gif"/> <figcaption class="mt-2 text-center text-sm text-gray-500">generated video</figcaption></div>',Ae,le,Pe,se,Pt='<a href="../api/pipelines/animatediff">AnimateDiff</a> is an adapter model that inserts a motion module into a pretrained diffusion model to animate an image. The adapter is trained on video clips to learn motion which is used to condition the generation process to create a video. It is faster and easier to only train the adapter and it can be loaded into most diffusion models, effectively turning them into “video models”.',Ke,ae,Kt="Start by loading a <code>MotionAdapter</code>.",Oe,ne,et,ie,Ot='Then load a finetuned Stable Diffusion model with the <a href="/docs/diffusers/pr_7976/en/api/pipelines/animatediff#diffusers.AnimateDiffPipeline">AnimateDiffPipeline</a>.',tt,oe,lt,pe,el="Create a prompt and generate the video.",st,re,at,k,tl='<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/animatediff.gif"/>',nt,me,it,de,ll='<a href="../api/pipelines/text_to_video">ModelscopeT2V</a> adds spatial and temporal convolutions and attention to a UNet, and it is trained on image-text and video-text datasets to enhance what it learns during training. The model takes a prompt, encodes it and creates text embeddings which are denoised by the UNet, and then decoded by a VQGAN into a video.',ot,Q,pt,ce,sl='Load a ModelScopeT2V checkpoint into the <a href="/docs/diffusers/pr_7976/en/api/pipelines/overview#diffusers.DiffusionPipeline">DiffusionPipeline</a> along with a prompt to generate a video.',rt,fe,mt,N,al='<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/modelscopet2v.gif"/>',dt,ue,ct,Me,nl="There are a few important parameters you can configure in the pipeline that’ll affect the video generation process and quality. Let’s take a closer look at what these parameters do and how changing them affects the output.",ft,ye,ut,he,il="The <code>num_frames</code> parameter determines how many video frames are generated per second. A frame is an image that is played in a sequence of other frames to create motion or a video. This affects video length because the pipeline generates a certain number of frames per second (check a pipeline’s API reference for the default value). To increase the video duration, you’ll need to increase the <code>num_frames</code> parameter.",Mt,be,yt,Y,ol='<div><img class="rounded-xl" src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/num_frames_14.gif"/> <figcaption class="mt-2 text-center text-sm text-gray-500">num_frames=14</figcaption></div> <div><img class="rounded-xl" src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/num_frames_25.gif"/> <figcaption class="mt-2 text-center text-sm text-gray-500">num_frames=25</figcaption></div>',ht,Je,bt,ge,pl="The <code>guidance_scale</code> parameter controls how closely aligned the generated video and text prompt or initial image is. A higher <code>guidance_scale</code> value means your generated video is more aligned with the text prompt or initial image, while a lower <code>guidance_scale</code> value means your generated video is less aligned which could give the model more “creativity” to interpret the conditioning input.",Jt,H,gt,Ze,Zt,S,rl='<div><img class="rounded-xl" src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/i2vgen-xl-example.gif"/> <figcaption class="mt-2 text-center text-sm text-gray-500">guidance_scale=9.0</figcaption></div> <div><img class="rounded-xl" src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/guidance_scale_1.0.gif"/> <figcaption class="mt-2 text-center text-sm text-gray-500">guidance_scale=1.0</figcaption></div>',wt,we,Tt,Te,ml="A negative prompt deters the model from generating things you don’t want it to. This parameter is commonly used to improve overall generation quality by removing poor or bad features such as “low resolution” or “bad details”.",Ut,Ue,jt,z,dl='<div><img class="rounded-xl" src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/animatediff_no_neg.gif"/> <figcaption class="mt-2 text-center text-sm text-gray-500">no negative prompt</figcaption></div> <div><img class="rounded-xl" src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/animatediff_neg.gif"/> <figcaption class="mt-2 text-center text-sm text-gray-500">negative prompt applied</figcaption></div>',vt,je,Wt,ve,cl="There are some pipeline parameters that are unique to each model such as adjusting the motion in a video or adding noise to the initial image.",Gt,F,_t,We,$t,Ge,fl='Video generation can be controlled similar to how text-to-image, image-to-image, and inpainting can be controlled with a <a href="/docs/diffusers/pr_7976/en/api/models/controlnet#diffusers.ControlNetModel">ControlNetModel</a>. The only difference is you need to use the <a href="/docs/diffusers/pr_7976/en/api/attnprocessor#diffusers.pipelines.text_to_video_synthesis.pipeline_text_to_video_zero.CrossFrameAttnProcessor">CrossFrameAttnProcessor</a> so each frame attends to the first frame.',Vt,_e,Xt,$e,ul='Text2Video-Zero video generation can be conditioned on pose and edge images for even greater control over a subject’s motion in the generated video or to preserve the identity of a subject/object in the video. You can also use Text2Video-Zero with <a href="../api/pipelines/pix2pix">InstructPix2Pix</a> for editing videos with text.',It,E,Bt,Ve,Ct,Xe,Ml="Video generation requires a lot of memory because you’re generating many video frames at once. You can reduce your memory requirements at the expense of some inference speed. Try:",Rt,Ie,yl="<li>offloading pipeline components that are no longer needed to the CPU</li> <li>feed-forward chunking runs the feed-forward layer in a loop instead of all at once</li> <li>break up the number of frames the VAE has to decode into chunks instead of decoding them all at once</li>",xt,Be,kt,Ce,hl='If memory is not an issue and you want to optimize for speed, try wrapping the UNet with <a href="../optimization/torch2.0#torchcompile"><code>torch.compile</code></a>.',Qt,Re,Nt,xe,Yt,ke,Ht;return r=new I({props:{title:"Text or image-to-video",local:"text-or-image-to-video",headingTag:"h1"}}),V=new I({props:{title:"Popular models",local:"popular-models",headingTag:"h2"}}),_=new St({props:{warning:!1,$$slots:{default:[Xl]},$$scope:{ctx:$}}}),q=new I({props:{title:"Stable Video Diffusion",local:"stable-video-diffusion",headingTag:"h3"}}),P=new X({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwU3RhYmxlVmlkZW9EaWZmdXNpb25QaXBlbGluZSUwQWZyb20lMjBkaWZmdXNlcnMudXRpbHMlMjBpbXBvcnQlMjBsb2FkX2ltYWdlJTJDJTIwZXhwb3J0X3RvX3ZpZGVvJTBBJTBBcGlwZWxpbmUlMjAlM0QlMjBTdGFibGVWaWRlb0RpZmZ1c2lvblBpcGVsaW5lLmZyb21fcHJldHJhaW5lZCglMEElMjAlMjAlMjAlMjAlMjJzdGFiaWxpdHlhaSUyRnN0YWJsZS12aWRlby1kaWZmdXNpb24taW1nMnZpZC14dCUyMiUyQyUyMHRvcmNoX2R0eXBlJTNEdG9yY2guZmxvYXQxNiUyQyUyMHZhcmlhbnQlM0QlMjJmcDE2JTIyJTBBKSUwQXBpcGVsaW5lLmVuYWJsZV9tb2RlbF9jcHVfb2ZmbG9hZCgpJTBBJTBBaW1hZ2UlMjAlM0QlMjBsb2FkX2ltYWdlKCUyMmh0dHBzJTNBJTJGJTJGaHVnZ2luZ2ZhY2UuY28lMkZkYXRhc2V0cyUyRmh1Z2dpbmdmYWNlJTJGZG9jdW1lbnRhdGlvbi1pbWFnZXMlMkZyZXNvbHZlJTJGbWFpbiUyRmRpZmZ1c2VycyUyRnN2ZCUyRnJvY2tldC5wbmclMjIpJTBBaW1hZ2UlMjAlM0QlMjBpbWFnZS5yZXNpemUoKDEwMjQlMkMlMjA1NzYpKSUwQSUwQWdlbmVyYXRvciUyMCUzRCUyMHRvcmNoLm1hbnVhbF9zZWVkKDQyKSUwQWZyYW1lcyUyMCUzRCUyMHBpcGVsaW5lKGltYWdlJTJDJTIwZGVjb2RlX2NodW5rX3NpemUlM0Q4JTJDJTIwZ2VuZXJhdG9yJTNEZ2VuZXJhdG9yKS5mcmFtZXMlNUIwJTVEJTBBZXhwb3J0X3RvX3ZpZGVvKGZyYW1lcyUyQyUyMCUyMmdlbmVyYXRlZC5tcDQlMjIlMkMlMjBmcHMlM0Q3KQ==",highlighted:`<span class="hljs-keyword">import</span> torch | |
| <span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> StableVideoDiffusionPipeline | |
| <span class="hljs-keyword">from</span> diffusers.utils <span class="hljs-keyword">import</span> load_image, export_to_video | |
| pipeline = StableVideoDiffusionPipeline.from_pretrained( | |
| <span class="hljs-string">"stabilityai/stable-video-diffusion-img2vid-xt"</span>, torch_dtype=torch.float16, variant=<span class="hljs-string">"fp16"</span> | |
| ) | |
| pipeline.enable_model_cpu_offload() | |
| image = load_image(<span class="hljs-string">"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/svd/rocket.png"</span>) | |
| image = image.resize((<span class="hljs-number">1024</span>, <span class="hljs-number">576</span>)) | |
| generator = torch.manual_seed(<span class="hljs-number">42</span>) | |
| frames = pipeline(image, decode_chunk_size=<span class="hljs-number">8</span>, generator=generator).frames[<span class="hljs-number">0</span>] | |
| export_to_video(frames, <span class="hljs-string">"generated.mp4"</span>, fps=<span class="hljs-number">7</span>)`,wrap:!1}}),K=new I({props:{title:"I2VGen-XL",local:"i2vgen-xl",headingTag:"h3"}}),te=new X({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwSTJWR2VuWExQaXBlbGluZSUwQWZyb20lMjBkaWZmdXNlcnMudXRpbHMlMjBpbXBvcnQlMjBleHBvcnRfdG9fZ2lmJTJDJTIwbG9hZF9pbWFnZSUwQSUwQXBpcGVsaW5lJTIwJTNEJTIwSTJWR2VuWExQaXBlbGluZS5mcm9tX3ByZXRyYWluZWQoJTIyYWxpLXZpbGFiJTJGaTJ2Z2VuLXhsJTIyJTJDJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5mbG9hdDE2JTJDJTIwdmFyaWFudCUzRCUyMmZwMTYlMjIpJTBBcGlwZWxpbmUuZW5hYmxlX21vZGVsX2NwdV9vZmZsb2FkKCklMEElMEFpbWFnZV91cmwlMjAlM0QlMjAlMjJodHRwcyUzQSUyRiUyRmh1Z2dpbmdmYWNlLmNvJTJGZGF0YXNldHMlMkZkaWZmdXNlcnMlMkZkb2NzLWltYWdlcyUyRnJlc29sdmUlMkZtYWluJTJGaTJ2Z2VuX3hsX2ltYWdlcyUyRmltZ18wMDA5LnBuZyUyMiUwQWltYWdlJTIwJTNEJTIwbG9hZF9pbWFnZShpbWFnZV91cmwpLmNvbnZlcnQoJTIyUkdCJTIyKSUwQSUwQXByb21wdCUyMCUzRCUyMCUyMlBhcGVycyUyMHdlcmUlMjBmbG9hdGluZyUyMGluJTIwdGhlJTIwYWlyJTIwb24lMjBhJTIwdGFibGUlMjBpbiUyMHRoZSUyMGxpYnJhcnklMjIlMEFuZWdhdGl2ZV9wcm9tcHQlMjAlM0QlMjAlMjJEaXN0b3J0ZWQlMkMlMjBkaXNjb250aW51b3VzJTJDJTIwVWdseSUyQyUyMGJsdXJyeSUyQyUyMGxvdyUyMHJlc29sdXRpb24lMkMlMjBtb3Rpb25sZXNzJTJDJTIwc3RhdGljJTJDJTIwZGlzZmlndXJlZCUyQyUyMGRpc2Nvbm5lY3RlZCUyMGxpbWJzJTJDJTIwVWdseSUyMGZhY2VzJTJDJTIwaW5jb21wbGV0ZSUyMGFybXMlMjIlMEFnZW5lcmF0b3IlMjAlM0QlMjB0b3JjaC5tYW51YWxfc2VlZCg4ODg4KSUwQSUwQWZyYW1lcyUyMCUzRCUyMHBpcGVsaW5lKCUwQSUyMCUyMCUyMCUyMHByb21wdCUzRHByb21wdCUyQyUwQSUyMCUyMCUyMCUyMGltYWdlJTNEaW1hZ2UlMkMlMEElMjAlMjAlMjAlMjBudW1faW5mZXJlbmNlX3N0ZXBzJTNENTAlMkMlMEElMjAlMjAlMjAlMjBuZWdhdGl2ZV9wcm9tcHQlM0RuZWdhdGl2ZV9wcm9tcHQlMkMlMEElMjAlMjAlMjAlMjBndWlkYW5jZV9zY2FsZSUzRDkuMCUyQyUwQSUyMCUyMCUyMCUyMGdlbmVyYXRvciUzRGdlbmVyYXRvciUwQSkuZnJhbWVzJTVCMCU1RCUwQWV4cG9ydF90b19naWYoZnJhbWVzJTJDJTIwJTIyaTJ2LmdpZiUyMik=",highlighted:`<span class="hljs-keyword">import</span> torch | |
| <span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> I2VGenXLPipeline | |
| <span class="hljs-keyword">from</span> diffusers.utils <span class="hljs-keyword">import</span> export_to_gif, load_image | |
| pipeline = I2VGenXLPipeline.from_pretrained(<span class="hljs-string">"ali-vilab/i2vgen-xl"</span>, torch_dtype=torch.float16, variant=<span class="hljs-string">"fp16"</span>) | |
| pipeline.enable_model_cpu_offload() | |
| image_url = <span class="hljs-string">"https://huggingface.co/datasets/diffusers/docs-images/resolve/main/i2vgen_xl_images/img_0009.png"</span> | |
| image = load_image(image_url).convert(<span class="hljs-string">"RGB"</span>) | |
| prompt = <span class="hljs-string">"Papers were floating in the air on a table in the library"</span> | |
| negative_prompt = <span class="hljs-string">"Distorted, discontinuous, Ugly, blurry, low resolution, motionless, static, disfigured, disconnected limbs, Ugly faces, incomplete arms"</span> | |
| generator = torch.manual_seed(<span class="hljs-number">8888</span>) | |
| frames = pipeline( | |
| prompt=prompt, | |
| image=image, | |
| num_inference_steps=<span class="hljs-number">50</span>, | |
| negative_prompt=negative_prompt, | |
| guidance_scale=<span class="hljs-number">9.0</span>, | |
| generator=generator | |
| ).frames[<span class="hljs-number">0</span>] | |
| export_to_gif(frames, <span class="hljs-string">"i2v.gif"</span>)`,wrap:!1}}),le=new I({props:{title:"AnimateDiff",local:"animatediff",headingTag:"h3"}}),ne=new X({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwQW5pbWF0ZURpZmZQaXBlbGluZSUyQyUyMERESU1TY2hlZHVsZXIlMkMlMjBNb3Rpb25BZGFwdGVyJTBBZnJvbSUyMGRpZmZ1c2Vycy51dGlscyUyMGltcG9ydCUyMGV4cG9ydF90b19naWYlMEElMEFhZGFwdGVyJTIwJTNEJTIwTW90aW9uQWRhcHRlci5mcm9tX3ByZXRyYWluZWQoJTIyZ3VveXd3JTJGYW5pbWF0ZWRpZmYtbW90aW9uLWFkYXB0ZXItdjEtNS0yJTIyJTJDJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5mbG9hdDE2KQ==",highlighted:`<span class="hljs-keyword">import</span> torch | |
| <span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> AnimateDiffPipeline, DDIMScheduler, MotionAdapter | |
| <span class="hljs-keyword">from</span> diffusers.utils <span class="hljs-keyword">import</span> export_to_gif | |
| adapter = MotionAdapter.from_pretrained(<span class="hljs-string">"guoyww/animatediff-motion-adapter-v1-5-2"</span>, torch_dtype=torch.float16)`,wrap:!1}}),oe=new X({props:{code:"cGlwZWxpbmUlMjAlM0QlMjBBbmltYXRlRGlmZlBpcGVsaW5lLmZyb21fcHJldHJhaW5lZCglMjJlbWlsaWFuSlIlMkZlcGlDUmVhbGlzbSUyMiUyQyUyMG1vdGlvbl9hZGFwdGVyJTNEYWRhcHRlciUyQyUyMHRvcmNoX2R0eXBlJTNEdG9yY2guZmxvYXQxNiklMEFzY2hlZHVsZXIlMjAlM0QlMjBERElNU2NoZWR1bGVyLmZyb21fcHJldHJhaW5lZCglMEElMjAlMjAlMjAlMjAlMjJlbWlsaWFuSlIlMkZlcGlDUmVhbGlzbSUyMiUyQyUwQSUyMCUyMCUyMCUyMHN1YmZvbGRlciUzRCUyMnNjaGVkdWxlciUyMiUyQyUwQSUyMCUyMCUyMCUyMGNsaXBfc2FtcGxlJTNERmFsc2UlMkMlMEElMjAlMjAlMjAlMjB0aW1lc3RlcF9zcGFjaW5nJTNEJTIybGluc3BhY2UlMjIlMkMlMEElMjAlMjAlMjAlMjBiZXRhX3NjaGVkdWxlJTNEJTIybGluZWFyJTIyJTJDJTBBJTIwJTIwJTIwJTIwc3RlcHNfb2Zmc2V0JTNEMSUyQyUwQSklMEFwaXBlbGluZS5zY2hlZHVsZXIlMjAlM0QlMjBzY2hlZHVsZXIlMEFwaXBlbGluZS5lbmFibGVfdmFlX3NsaWNpbmcoKSUwQXBpcGVsaW5lLmVuYWJsZV9tb2RlbF9jcHVfb2ZmbG9hZCgp",highlighted:`pipeline = AnimateDiffPipeline.from_pretrained(<span class="hljs-string">"emilianJR/epiCRealism"</span>, motion_adapter=adapter, torch_dtype=torch.float16) | |
| scheduler = DDIMScheduler.from_pretrained( | |
| <span class="hljs-string">"emilianJR/epiCRealism"</span>, | |
| subfolder=<span class="hljs-string">"scheduler"</span>, | |
| clip_sample=<span class="hljs-literal">False</span>, | |
| timestep_spacing=<span class="hljs-string">"linspace"</span>, | |
| beta_schedule=<span class="hljs-string">"linear"</span>, | |
| steps_offset=<span class="hljs-number">1</span>, | |
| ) | |
| pipeline.scheduler = scheduler | |
| pipeline.enable_vae_slicing() | |
| pipeline.enable_model_cpu_offload()`,wrap:!1}}),re=new X({props:{code:"b3V0cHV0JTIwJTNEJTIwcGlwZWxpbmUoJTBBJTIwJTIwJTIwJTIwcHJvbXB0JTNEJTIyQSUyMHNwYWNlJTIwcm9ja2V0JTIwd2l0aCUyMHRyYWlscyUyMG9mJTIwc21va2UlMjBiZWhpbmQlMjBpdCUyMGxhdW5jaGluZyUyMGludG8lMjBzcGFjZSUyMGZyb20lMjB0aGUlMjBkZXNlcnQlMkMlMjA0ayUyQyUyMGhpZ2glMjByZXNvbHV0aW9uJTIyJTJDJTBBJTIwJTIwJTIwJTIwbmVnYXRpdmVfcHJvbXB0JTNEJTIyYmFkJTIwcXVhbGl0eSUyQyUyMHdvcnNlJTIwcXVhbGl0eSUyQyUyMGxvdyUyMHJlc29sdXRpb24lMjIlMkMlMEElMjAlMjAlMjAlMjBudW1fZnJhbWVzJTNEMTYlMkMlMEElMjAlMjAlMjAlMjBndWlkYW5jZV9zY2FsZSUzRDcuNSUyQyUwQSUyMCUyMCUyMCUyMG51bV9pbmZlcmVuY2Vfc3RlcHMlM0Q1MCUyQyUwQSUyMCUyMCUyMCUyMGdlbmVyYXRvciUzRHRvcmNoLkdlbmVyYXRvciglMjJjcHUlMjIpLm1hbnVhbF9zZWVkKDQ5KSUyQyUwQSklMEFmcmFtZXMlMjAlM0QlMjBvdXRwdXQuZnJhbWVzJTVCMCU1RCUwQWV4cG9ydF90b19naWYoZnJhbWVzJTJDJTIwJTIyYW5pbWF0aW9uLmdpZiUyMik=",highlighted:`output = pipeline( | |
| prompt=<span class="hljs-string">"A space rocket with trails of smoke behind it launching into space from the desert, 4k, high resolution"</span>, | |
| negative_prompt=<span class="hljs-string">"bad quality, worse quality, low resolution"</span>, | |
| num_frames=<span class="hljs-number">16</span>, | |
| guidance_scale=<span class="hljs-number">7.5</span>, | |
| num_inference_steps=<span class="hljs-number">50</span>, | |
| generator=torch.Generator(<span class="hljs-string">"cpu"</span>).manual_seed(<span class="hljs-number">49</span>), | |
| ) | |
| frames = output.frames[<span class="hljs-number">0</span>] | |
| export_to_gif(frames, <span class="hljs-string">"animation.gif"</span>)`,wrap:!1}}),me=new I({props:{title:"ModelscopeT2V",local:"modelscopet2v",headingTag:"h3"}}),Q=new St({props:{$$slots:{default:[Il]},$$scope:{ctx:$}}}),fe=new X({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwRGlmZnVzaW9uUGlwZWxpbmUlMEFmcm9tJTIwZGlmZnVzZXJzLnV0aWxzJTIwaW1wb3J0JTIwZXhwb3J0X3RvX3ZpZGVvJTBBJTBBcGlwZWxpbmUlMjAlM0QlMjBEaWZmdXNpb25QaXBlbGluZS5mcm9tX3ByZXRyYWluZWQoJTIyZGFtby12aWxhYiUyRnRleHQtdG8tdmlkZW8tbXMtMS43YiUyMiUyQyUyMHRvcmNoX2R0eXBlJTNEdG9yY2guZmxvYXQxNiUyQyUyMHZhcmlhbnQlM0QlMjJmcDE2JTIyKSUwQXBpcGVsaW5lLmVuYWJsZV9tb2RlbF9jcHVfb2ZmbG9hZCgpJTBBcGlwZWxpbmUuZW5hYmxlX3ZhZV9zbGljaW5nKCklMEElMEFwcm9tcHQlMjAlM0QlMjAlMjJDb25maWRlbnQlMjB0ZWRkeSUyMGJlYXIlMjBzdXJmZXIlMjByaWRlcyUyMHRoZSUyMHdhdmUlMjBpbiUyMHRoZSUyMHRyb3BpY3MlMjIlMEF2aWRlb19mcmFtZXMlMjAlM0QlMjBwaXBlbGluZShwcm9tcHQpLmZyYW1lcyU1QjAlNUQlMEFleHBvcnRfdG9fdmlkZW8odmlkZW9fZnJhbWVzJTJDJTIwJTIybW9kZWxzY29wZXQydi5tcDQlMjIlMkMlMjBmcHMlM0QxMCk=",highlighted:`<span class="hljs-keyword">import</span> torch | |
| <span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> DiffusionPipeline | |
| <span class="hljs-keyword">from</span> diffusers.utils <span class="hljs-keyword">import</span> export_to_video | |
| pipeline = DiffusionPipeline.from_pretrained(<span class="hljs-string">"damo-vilab/text-to-video-ms-1.7b"</span>, torch_dtype=torch.float16, variant=<span class="hljs-string">"fp16"</span>) | |
| pipeline.enable_model_cpu_offload() | |
| pipeline.enable_vae_slicing() | |
| prompt = <span class="hljs-string">"Confident teddy bear surfer rides the wave in the tropics"</span> | |
| video_frames = pipeline(prompt).frames[<span class="hljs-number">0</span>] | |
| export_to_video(video_frames, <span class="hljs-string">"modelscopet2v.mp4"</span>, fps=<span class="hljs-number">10</span>)`,wrap:!1}}),ue=new I({props:{title:"Configure model parameters",local:"configure-model-parameters",headingTag:"h2"}}),ye=new I({props:{title:"Number of frames",local:"number-of-frames",headingTag:"h3"}}),be=new X({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwU3RhYmxlVmlkZW9EaWZmdXNpb25QaXBlbGluZSUwQWZyb20lMjBkaWZmdXNlcnMudXRpbHMlMjBpbXBvcnQlMjBsb2FkX2ltYWdlJTJDJTIwZXhwb3J0X3RvX3ZpZGVvJTBBJTBBcGlwZWxpbmUlMjAlM0QlMjBTdGFibGVWaWRlb0RpZmZ1c2lvblBpcGVsaW5lLmZyb21fcHJldHJhaW5lZCglMEElMjAlMjAlMjAlMjAlMjJzdGFiaWxpdHlhaSUyRnN0YWJsZS12aWRlby1kaWZmdXNpb24taW1nMnZpZCUyMiUyQyUyMHRvcmNoX2R0eXBlJTNEdG9yY2guZmxvYXQxNiUyQyUyMHZhcmlhbnQlM0QlMjJmcDE2JTIyJTBBKSUwQXBpcGVsaW5lLmVuYWJsZV9tb2RlbF9jcHVfb2ZmbG9hZCgpJTBBJTBBaW1hZ2UlMjAlM0QlMjBsb2FkX2ltYWdlKCUyMmh0dHBzJTNBJTJGJTJGaHVnZ2luZ2ZhY2UuY28lMkZkYXRhc2V0cyUyRmh1Z2dpbmdmYWNlJTJGZG9jdW1lbnRhdGlvbi1pbWFnZXMlMkZyZXNvbHZlJTJGbWFpbiUyRmRpZmZ1c2VycyUyRnN2ZCUyRnJvY2tldC5wbmclMjIpJTBBaW1hZ2UlMjAlM0QlMjBpbWFnZS5yZXNpemUoKDEwMjQlMkMlMjA1NzYpKSUwQSUwQWdlbmVyYXRvciUyMCUzRCUyMHRvcmNoLm1hbnVhbF9zZWVkKDQyKSUwQWZyYW1lcyUyMCUzRCUyMHBpcGVsaW5lKGltYWdlJTJDJTIwZGVjb2RlX2NodW5rX3NpemUlM0Q4JTJDJTIwZ2VuZXJhdG9yJTNEZ2VuZXJhdG9yJTJDJTIwbnVtX2ZyYW1lcyUzRDI1KS5mcmFtZXMlNUIwJTVEJTBBZXhwb3J0X3RvX3ZpZGVvKGZyYW1lcyUyQyUyMCUyMmdlbmVyYXRlZC5tcDQlMjIlMkMlMjBmcHMlM0Q3KQ==",highlighted:`<span class="hljs-keyword">import</span> torch | |
| <span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> StableVideoDiffusionPipeline | |
| <span class="hljs-keyword">from</span> diffusers.utils <span class="hljs-keyword">import</span> load_image, export_to_video | |
| pipeline = StableVideoDiffusionPipeline.from_pretrained( | |
| <span class="hljs-string">"stabilityai/stable-video-diffusion-img2vid"</span>, torch_dtype=torch.float16, variant=<span class="hljs-string">"fp16"</span> | |
| ) | |
| pipeline.enable_model_cpu_offload() | |
| image = load_image(<span class="hljs-string">"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/svd/rocket.png"</span>) | |
| image = image.resize((<span class="hljs-number">1024</span>, <span class="hljs-number">576</span>)) | |
| generator = torch.manual_seed(<span class="hljs-number">42</span>) | |
| frames = pipeline(image, decode_chunk_size=<span class="hljs-number">8</span>, generator=generator, num_frames=<span class="hljs-number">25</span>).frames[<span class="hljs-number">0</span>] | |
| export_to_video(frames, <span class="hljs-string">"generated.mp4"</span>, fps=<span class="hljs-number">7</span>)`,wrap:!1}}),Je=new I({props:{title:"Guidance scale",local:"guidance-scale",headingTag:"h3"}}),H=new St({props:{$$slots:{default:[Bl]},$$scope:{ctx:$}}}),Ze=new X({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwSTJWR2VuWExQaXBlbGluZSUwQWZyb20lMjBkaWZmdXNlcnMudXRpbHMlMjBpbXBvcnQlMjBleHBvcnRfdG9fZ2lmJTJDJTIwbG9hZF9pbWFnZSUwQSUwQXBpcGVsaW5lJTIwJTNEJTIwSTJWR2VuWExQaXBlbGluZS5mcm9tX3ByZXRyYWluZWQoJTIyYWxpLXZpbGFiJTJGaTJ2Z2VuLXhsJTIyJTJDJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5mbG9hdDE2JTJDJTIwdmFyaWFudCUzRCUyMmZwMTYlMjIpJTBBcGlwZWxpbmUuZW5hYmxlX21vZGVsX2NwdV9vZmZsb2FkKCklMEElMEFpbWFnZV91cmwlMjAlM0QlMjAlMjJodHRwcyUzQSUyRiUyRmh1Z2dpbmdmYWNlLmNvJTJGZGF0YXNldHMlMkZkaWZmdXNlcnMlMkZkb2NzLWltYWdlcyUyRnJlc29sdmUlMkZtYWluJTJGaTJ2Z2VuX3hsX2ltYWdlcyUyRmltZ18wMDA5LnBuZyUyMiUwQWltYWdlJTIwJTNEJTIwbG9hZF9pbWFnZShpbWFnZV91cmwpLmNvbnZlcnQoJTIyUkdCJTIyKSUwQSUwQXByb21wdCUyMCUzRCUyMCUyMlBhcGVycyUyMHdlcmUlMjBmbG9hdGluZyUyMGluJTIwdGhlJTIwYWlyJTIwb24lMjBhJTIwdGFibGUlMjBpbiUyMHRoZSUyMGxpYnJhcnklMjIlMEFuZWdhdGl2ZV9wcm9tcHQlMjAlM0QlMjAlMjJEaXN0b3J0ZWQlMkMlMjBkaXNjb250aW51b3VzJTJDJTIwVWdseSUyQyUyMGJsdXJyeSUyQyUyMGxvdyUyMHJlc29sdXRpb24lMkMlMjBtb3Rpb25sZXNzJTJDJTIwc3RhdGljJTJDJTIwZGlzZmlndXJlZCUyQyUyMGRpc2Nvbm5lY3RlZCUyMGxpbWJzJTJDJTIwVWdseSUyMGZhY2VzJTJDJTIwaW5jb21wbGV0ZSUyMGFybXMlMjIlMEFnZW5lcmF0b3IlMjAlM0QlMjB0b3JjaC5tYW51YWxfc2VlZCgwKSUwQSUwQWZyYW1lcyUyMCUzRCUyMHBpcGVsaW5lKCUwQSUyMCUyMCUyMCUyMHByb21wdCUzRHByb21wdCUyQyUwQSUyMCUyMCUyMCUyMGltYWdlJTNEaW1hZ2UlMkMlMEElMjAlMjAlMjAlMjBudW1faW5mZXJlbmNlX3N0ZXBzJTNENTAlMkMlMEElMjAlMjAlMjAlMjBuZWdhdGl2ZV9wcm9tcHQlM0RuZWdhdGl2ZV9wcm9tcHQlMkMlMEElMjAlMjAlMjAlMjBndWlkYW5jZV9zY2FsZSUzRDEuMCUyQyUwQSUyMCUyMCUyMCUyMGdlbmVyYXRvciUzRGdlbmVyYXRvciUwQSkuZnJhbWVzJTVCMCU1RCUwQWV4cG9ydF90b19naWYoZnJhbWVzJTJDJTIwJTIyaTJ2LmdpZiUyMik=",highlighted:`<span class="hljs-keyword">import</span> torch | |
| <span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> I2VGenXLPipeline | |
| <span class="hljs-keyword">from</span> diffusers.utils <span class="hljs-keyword">import</span> export_to_gif, load_image | |
| pipeline = I2VGenXLPipeline.from_pretrained(<span class="hljs-string">"ali-vilab/i2vgen-xl"</span>, torch_dtype=torch.float16, variant=<span class="hljs-string">"fp16"</span>) | |
| pipeline.enable_model_cpu_offload() | |
| image_url = <span class="hljs-string">"https://huggingface.co/datasets/diffusers/docs-images/resolve/main/i2vgen_xl_images/img_0009.png"</span> | |
| image = load_image(image_url).convert(<span class="hljs-string">"RGB"</span>) | |
| prompt = <span class="hljs-string">"Papers were floating in the air on a table in the library"</span> | |
| negative_prompt = <span class="hljs-string">"Distorted, discontinuous, Ugly, blurry, low resolution, motionless, static, disfigured, disconnected limbs, Ugly faces, incomplete arms"</span> | |
| generator = torch.manual_seed(<span class="hljs-number">0</span>) | |
| frames = pipeline( | |
| prompt=prompt, | |
| image=image, | |
| num_inference_steps=<span class="hljs-number">50</span>, | |
| negative_prompt=negative_prompt, | |
| guidance_scale=<span class="hljs-number">1.0</span>, | |
| generator=generator | |
| ).frames[<span class="hljs-number">0</span>] | |
| export_to_gif(frames, <span class="hljs-string">"i2v.gif"</span>)`,wrap:!1}}),we=new I({props:{title:"Negative prompt",local:"negative-prompt",headingTag:"h3"}}),Ue=new X({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwQW5pbWF0ZURpZmZQaXBlbGluZSUyQyUyMERESU1TY2hlZHVsZXIlMkMlMjBNb3Rpb25BZGFwdGVyJTBBZnJvbSUyMGRpZmZ1c2Vycy51dGlscyUyMGltcG9ydCUyMGV4cG9ydF90b19naWYlMEElMEFhZGFwdGVyJTIwJTNEJTIwTW90aW9uQWRhcHRlci5mcm9tX3ByZXRyYWluZWQoJTIyZ3VveXd3JTJGYW5pbWF0ZWRpZmYtbW90aW9uLWFkYXB0ZXItdjEtNS0yJTIyJTJDJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5mbG9hdDE2KSUwQSUwQXBpcGVsaW5lJTIwJTNEJTIwQW5pbWF0ZURpZmZQaXBlbGluZS5mcm9tX3ByZXRyYWluZWQoJTIyZW1pbGlhbkpSJTJGZXBpQ1JlYWxpc20lMjIlMkMlMjBtb3Rpb25fYWRhcHRlciUzRGFkYXB0ZXIlMkMlMjB0b3JjaF9kdHlwZSUzRHRvcmNoLmZsb2F0MTYpJTBBc2NoZWR1bGVyJTIwJTNEJTIwRERJTVNjaGVkdWxlci5mcm9tX3ByZXRyYWluZWQoJTBBJTIwJTIwJTIwJTIwJTIyZW1pbGlhbkpSJTJGZXBpQ1JlYWxpc20lMjIlMkMlMEElMjAlMjAlMjAlMjBzdWJmb2xkZXIlM0QlMjJzY2hlZHVsZXIlMjIlMkMlMEElMjAlMjAlMjAlMjBjbGlwX3NhbXBsZSUzREZhbHNlJTJDJTBBJTIwJTIwJTIwJTIwdGltZXN0ZXBfc3BhY2luZyUzRCUyMmxpbnNwYWNlJTIyJTJDJTBBJTIwJTIwJTIwJTIwYmV0YV9zY2hlZHVsZSUzRCUyMmxpbmVhciUyMiUyQyUwQSUyMCUyMCUyMCUyMHN0ZXBzX29mZnNldCUzRDElMkMlMEEpJTBBcGlwZWxpbmUuc2NoZWR1bGVyJTIwJTNEJTIwc2NoZWR1bGVyJTBBcGlwZWxpbmUuZW5hYmxlX3ZhZV9zbGljaW5nKCklMEFwaXBlbGluZS5lbmFibGVfbW9kZWxfY3B1X29mZmxvYWQoKSUwQSUwQW91dHB1dCUyMCUzRCUyMHBpcGVsaW5lKCUwQSUyMCUyMCUyMCUyMHByb21wdCUzRCUyMjM2MCUyMGNhbWVyYSUyMHNob3QlMjBvZiUyMGElMjBzdXNoaSUyMHJvbGwlMjBpbiUyMGElMjByZXN0YXVyYW50JTIyJTJDJTBBJTIwJTIwJTIwJTIwbmVnYXRpdmVfcHJvbXB0JTNEJTIyRGlzdG9ydGVkJTJDJTIwZGlzY29udGludW91cyUyQyUyMHVnbHklMkMlMjBibHVycnklMkMlMjBsb3clMjByZXNvbHV0aW9uJTJDJTIwbW90aW9ubGVzcyUyQyUyMHN0YXRpYyUyMiUyQyUwQSUyMCUyMCUyMCUyMG51bV9mcmFtZXMlM0QxNiUyQyUwQSUyMCUyMCUyMCUyMGd1aWRhbmNlX3NjYWxlJTNENy41JTJDJTBBJTIwJTIwJTIwJTIwbnVtX2luZmVyZW5jZV9zdGVwcyUzRDUwJTJDJTBBJTIwJTIwJTIwJTIwZ2VuZXJhdG9yJTNEdG9yY2guR2VuZXJhdG9yKCUyMmNwdSUyMikubWFudWFsX3NlZWQoMCklMkMlMEEpJTBBZnJhbWVzJTIwJTNEJTIwb3V0cHV0LmZyYW1lcyU1QjAlNUQlMEFleHBvcnRfdG9fZ2lmKGZyYW1lcyUyQyUyMCUyMmFuaW1hdGlvbi5naWYlMjIp",highlighted:`<span class="hljs-keyword">import</span> torch | |
| <span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> AnimateDiffPipeline, DDIMScheduler, MotionAdapter | |
| <span class="hljs-keyword">from</span> diffusers.utils <span class="hljs-keyword">import</span> export_to_gif | |
| adapter = MotionAdapter.from_pretrained(<span class="hljs-string">"guoyww/animatediff-motion-adapter-v1-5-2"</span>, torch_dtype=torch.float16) | |
| pipeline = AnimateDiffPipeline.from_pretrained(<span class="hljs-string">"emilianJR/epiCRealism"</span>, motion_adapter=adapter, torch_dtype=torch.float16) | |
| scheduler = DDIMScheduler.from_pretrained( | |
| <span class="hljs-string">"emilianJR/epiCRealism"</span>, | |
| subfolder=<span class="hljs-string">"scheduler"</span>, | |
| clip_sample=<span class="hljs-literal">False</span>, | |
| timestep_spacing=<span class="hljs-string">"linspace"</span>, | |
| beta_schedule=<span class="hljs-string">"linear"</span>, | |
| steps_offset=<span class="hljs-number">1</span>, | |
| ) | |
| pipeline.scheduler = scheduler | |
| pipeline.enable_vae_slicing() | |
| pipeline.enable_model_cpu_offload() | |
| output = pipeline( | |
| prompt=<span class="hljs-string">"360 camera shot of a sushi roll in a restaurant"</span>, | |
| negative_prompt=<span class="hljs-string">"Distorted, discontinuous, ugly, blurry, low resolution, motionless, static"</span>, | |
| num_frames=<span class="hljs-number">16</span>, | |
| guidance_scale=<span class="hljs-number">7.5</span>, | |
| num_inference_steps=<span class="hljs-number">50</span>, | |
| generator=torch.Generator(<span class="hljs-string">"cpu"</span>).manual_seed(<span class="hljs-number">0</span>), | |
| ) | |
| frames = output.frames[<span class="hljs-number">0</span>] | |
| export_to_gif(frames, <span class="hljs-string">"animation.gif"</span>)`,wrap:!1}}),je=new I({props:{title:"Model-specific parameters",local:"model-specific-parameters",headingTag:"h3"}}),F=new Ul({props:{id:"special-parameters",options:["Stable Video Diffusion","Text2Video-Zero"],$$slots:{default:[xl]},$$scope:{ctx:$}}}),We=new I({props:{title:"Control video generation",local:"control-video-generation",headingTag:"h2"}}),_e=new I({props:{title:"Text2Video-Zero",local:"text2video-zero",headingTag:"h3"}}),E=new Ul({props:{id:"t2v-zero",options:["pose control","edge control","InstructPix2Pix"],$$slots:{default:[Yl]},$$scope:{ctx:$}}}),Ve=new I({props:{title:"Optimize",local:"optimize",headingTag:"h2"}}),Be=new X({props:{code:"LSUyMHBpcGVsaW5lLmVuYWJsZV9tb2RlbF9jcHVfb2ZmbG9hZCgpJTBBLSUyMGZyYW1lcyUyMCUzRCUyMHBpcGVsaW5lKGltYWdlJTJDJTIwZGVjb2RlX2NodW5rX3NpemUlM0Q4JTJDJTIwZ2VuZXJhdG9yJTNEZ2VuZXJhdG9yKS5mcmFtZXMlNUIwJTVEJTBBJTJCJTIwcGlwZWxpbmUuZW5hYmxlX21vZGVsX2NwdV9vZmZsb2FkKCklMEElMkIlMjBwaXBlbGluZS51bmV0LmVuYWJsZV9mb3J3YXJkX2NodW5raW5nKCklMEElMkIlMjBmcmFtZXMlMjAlM0QlMjBwaXBlbGluZShpbWFnZSUyQyUyMGRlY29kZV9jaHVua19zaXplJTNEMiUyQyUyMGdlbmVyYXRvciUzRGdlbmVyYXRvciUyQyUyMG51bV9mcmFtZXMlM0QyNSkuZnJhbWVzJTVCMCU1RA==",highlighted:`<span class="hljs-deletion">- pipeline.enable_model_cpu_offload()</span> | |
| <span class="hljs-deletion">- frames = pipeline(image, decode_chunk_size=8, generator=generator).frames[0]</span> | |
| <span class="hljs-addition">+ pipeline.enable_model_cpu_offload()</span> | |
| <span class="hljs-addition">+ pipeline.unet.enable_forward_chunking()</span> | |
| <span class="hljs-addition">+ frames = pipeline(image, decode_chunk_size=2, generator=generator, num_frames=25).frames[0]</span>`,wrap:!1}}),Re=new X({props:{code:"LSUyMHBpcGVsaW5lLmVuYWJsZV9tb2RlbF9jcHVfb2ZmbG9hZCgpJTBBJTJCJTIwcGlwZWxpbmUudG8oJTIyY3VkYSUyMiklMEElMkIlMjBwaXBlbGluZS51bmV0JTIwJTNEJTIwdG9yY2guY29tcGlsZShwaXBlbGluZS51bmV0JTJDJTIwbW9kZSUzRCUyMnJlZHVjZS1vdmVyaGVhZCUyMiUyQyUyMGZ1bGxncmFwaCUzRFRydWUp",highlighted:`<span class="hljs-deletion">- pipeline.enable_model_cpu_offload()</span> | |
| <span class="hljs-addition">+ pipeline.to("cuda")</span> | |
| <span class="hljs-addition">+ pipeline.unet = torch.compile(pipeline.unet, mode="reduce-overhead", fullgraph=True)</span>`,wrap:!1}}),xe=new Vl({props:{source:"https://github.com/huggingface/diffusers/blob/main/docs/source/en/using-diffusers/text-img2vid.md"}}),{c(){n=f("meta"),T=i(),p=f("p"),m=i(),M(r.$$.fragment),d=i(),c=f("p"),c.textContent=U,j=i(),G=f("p"),G.textContent=v,B=i(),M(V.$$.fragment),W=i(),M(_.$$.fragment),a=i(),w=f("p"),w.innerHTML=zt,Ne=i(),M(q.$$.fragment),Ye=i(),L=f("p"),L.innerHTML=Ft,He=i(),A=f("p"),A.innerHTML=Et,Se=i(),M(P.$$.fragment),ze=i(),R=f("div"),R.innerHTML=Dt,Fe=i(),M(K.$$.fragment),Ee=i(),O=f("p"),O.innerHTML=qt,De=i(),ee=f("p"),ee.innerHTML=Lt,qe=i(),M(te.$$.fragment),Le=i(),x=f("div"),x.innerHTML=At,Ae=i(),M(le.$$.fragment),Pe=i(),se=f("p"),se.innerHTML=Pt,Ke=i(),ae=f("p"),ae.innerHTML=Kt,Oe=i(),M(ne.$$.fragment),et=i(),ie=f("p"),ie.innerHTML=Ot,tt=i(),M(oe.$$.fragment),lt=i(),pe=f("p"),pe.textContent=el,st=i(),M(re.$$.fragment),at=i(),k=f("div"),k.innerHTML=tl,nt=i(),M(me.$$.fragment),it=i(),de=f("p"),de.innerHTML=ll,ot=i(),M(Q.$$.fragment),pt=i(),ce=f("p"),ce.innerHTML=sl,rt=i(),M(fe.$$.fragment),mt=i(),N=f("div"),N.innerHTML=al,dt=i(),M(ue.$$.fragment),ct=i(),Me=f("p"),Me.textContent=nl,ft=i(),M(ye.$$.fragment),ut=i(),he=f("p"),he.innerHTML=il,Mt=i(),M(be.$$.fragment),yt=i(),Y=f("div"),Y.innerHTML=ol,ht=i(),M(Je.$$.fragment),bt=i(),ge=f("p"),ge.innerHTML=pl,Jt=i(),M(H.$$.fragment),gt=i(),M(Ze.$$.fragment),Zt=i(),S=f("div"),S.innerHTML=rl,wt=i(),M(we.$$.fragment),Tt=i(),Te=f("p"),Te.textContent=ml,Ut=i(),M(Ue.$$.fragment),jt=i(),z=f("div"),z.innerHTML=dl,vt=i(),M(je.$$.fragment),Wt=i(),ve=f("p"),ve.textContent=cl,Gt=i(),M(F.$$.fragment),_t=i(),M(We.$$.fragment),$t=i(),Ge=f("p"),Ge.innerHTML=fl,Vt=i(),M(_e.$$.fragment),Xt=i(),$e=f("p"),$e.innerHTML=ul,It=i(),M(E.$$.fragment),Bt=i(),M(Ve.$$.fragment),Ct=i(),Xe=f("p"),Xe.textContent=Ml,Rt=i(),Ie=f("ol"),Ie.innerHTML=yl,xt=i(),M(Be.$$.fragment),kt=i(),Ce=f("p"),Ce.innerHTML=hl,Qt=i(),M(Re.$$.fragment),Nt=i(),M(xe.$$.fragment),Yt=i(),ke=f("p"),this.h()},l(e){const t=_l("svelte-u9bgzb",document.head);n=u(t,"META",{name:!0,content:!0}),t.forEach(l),T=o(e),p=u(e,"P",{}),Tl(p).forEach(l),m=o(e),y(r.$$.fragment,e),d=o(e),c=u(e,"P",{"data-svelte-h":!0}),Z(c)!=="svelte-1gf6o60"&&(c.textContent=U),j=o(e),G=u(e,"P",{"data-svelte-h":!0}),Z(G)!=="svelte-483wvv"&&(G.textContent=v),B=o(e),y(V.$$.fragment,e),W=o(e),y(_.$$.fragment,e),a=o(e),w=u(e,"P",{"data-svelte-h":!0}),Z(w)!=="svelte-earwrk"&&(w.innerHTML=zt),Ne=o(e),y(q.$$.fragment,e),Ye=o(e),L=u(e,"P",{"data-svelte-h":!0}),Z(L)!=="svelte-1s1nsr3"&&(L.innerHTML=Ft),He=o(e),A=u(e,"P",{"data-svelte-h":!0}),Z(A)!=="svelte-lvcwlo"&&(A.innerHTML=Et),Se=o(e),y(P.$$.fragment,e),ze=o(e),R=u(e,"DIV",{class:!0,"data-svelte-h":!0}),Z(R)!=="svelte-1oxa21d"&&(R.innerHTML=Dt),Fe=o(e),y(K.$$.fragment,e),Ee=o(e),O=u(e,"P",{"data-svelte-h":!0}),Z(O)!=="svelte-1fectlj"&&(O.innerHTML=qt),De=o(e),ee=u(e,"P",{"data-svelte-h":!0}),Z(ee)!=="svelte-173vb6z"&&(ee.innerHTML=Lt),qe=o(e),y(te.$$.fragment,e),Le=o(e),x=u(e,"DIV",{class:!0,"data-svelte-h":!0}),Z(x)!=="svelte-1fffm0t"&&(x.innerHTML=At),Ae=o(e),y(le.$$.fragment,e),Pe=o(e),se=u(e,"P",{"data-svelte-h":!0}),Z(se)!=="svelte-nk5pmd"&&(se.innerHTML=Pt),Ke=o(e),ae=u(e,"P",{"data-svelte-h":!0}),Z(ae)!=="svelte-3rt1h8"&&(ae.innerHTML=Kt),Oe=o(e),y(ne.$$.fragment,e),et=o(e),ie=u(e,"P",{"data-svelte-h":!0}),Z(ie)!=="svelte-frpgc6"&&(ie.innerHTML=Ot),tt=o(e),y(oe.$$.fragment,e),lt=o(e),pe=u(e,"P",{"data-svelte-h":!0}),Z(pe)!=="svelte-y99twh"&&(pe.textContent=el),st=o(e),y(re.$$.fragment,e),at=o(e),k=u(e,"DIV",{class:!0,"data-svelte-h":!0}),Z(k)!=="svelte-1s0a8zo"&&(k.innerHTML=tl),nt=o(e),y(me.$$.fragment,e),it=o(e),de=u(e,"P",{"data-svelte-h":!0}),Z(de)!=="svelte-zsx8hb"&&(de.innerHTML=ll),ot=o(e),y(Q.$$.fragment,e),pt=o(e),ce=u(e,"P",{"data-svelte-h":!0}),Z(ce)!=="svelte-1j4oeu8"&&(ce.innerHTML=sl),rt=o(e),y(fe.$$.fragment,e),mt=o(e),N=u(e,"DIV",{class:!0,"data-svelte-h":!0}),Z(N)!=="svelte-a7bnxv"&&(N.innerHTML=al),dt=o(e),y(ue.$$.fragment,e),ct=o(e),Me=u(e,"P",{"data-svelte-h":!0}),Z(Me)!=="svelte-1bg8xrr"&&(Me.textContent=nl),ft=o(e),y(ye.$$.fragment,e),ut=o(e),he=u(e,"P",{"data-svelte-h":!0}),Z(he)!=="svelte-1he7va5"&&(he.innerHTML=il),Mt=o(e),y(be.$$.fragment,e),yt=o(e),Y=u(e,"DIV",{class:!0,"data-svelte-h":!0}),Z(Y)!=="svelte-1hb15b9"&&(Y.innerHTML=ol),ht=o(e),y(Je.$$.fragment,e),bt=o(e),ge=u(e,"P",{"data-svelte-h":!0}),Z(ge)!=="svelte-10ah3pm"&&(ge.innerHTML=pl),Jt=o(e),y(H.$$.fragment,e),gt=o(e),y(Ze.$$.fragment,e),Zt=o(e),S=u(e,"DIV",{class:!0,"data-svelte-h":!0}),Z(S)!=="svelte-1491ymz"&&(S.innerHTML=rl),wt=o(e),y(we.$$.fragment,e),Tt=o(e),Te=u(e,"P",{"data-svelte-h":!0}),Z(Te)!=="svelte-xdqe9k"&&(Te.textContent=ml),Ut=o(e),y(Ue.$$.fragment,e),jt=o(e),z=u(e,"DIV",{class:!0,"data-svelte-h":!0}),Z(z)!=="svelte-139sag9"&&(z.innerHTML=dl),vt=o(e),y(je.$$.fragment,e),Wt=o(e),ve=u(e,"P",{"data-svelte-h":!0}),Z(ve)!=="svelte-1d2wgj6"&&(ve.textContent=cl),Gt=o(e),y(F.$$.fragment,e),_t=o(e),y(We.$$.fragment,e),$t=o(e),Ge=u(e,"P",{"data-svelte-h":!0}),Z(Ge)!=="svelte-idjivk"&&(Ge.innerHTML=fl),Vt=o(e),y(_e.$$.fragment,e),Xt=o(e),$e=u(e,"P",{"data-svelte-h":!0}),Z($e)!=="svelte-w25jvx"&&($e.innerHTML=ul),It=o(e),y(E.$$.fragment,e),Bt=o(e),y(Ve.$$.fragment,e),Ct=o(e),Xe=u(e,"P",{"data-svelte-h":!0}),Z(Xe)!=="svelte-i4oodb"&&(Xe.textContent=Ml),Rt=o(e),Ie=u(e,"OL",{"data-svelte-h":!0}),Z(Ie)!=="svelte-4xypfn"&&(Ie.innerHTML=yl),xt=o(e),y(Be.$$.fragment,e),kt=o(e),Ce=u(e,"P",{"data-svelte-h":!0}),Z(Ce)!=="svelte-1dynxrt"&&(Ce.innerHTML=hl),Qt=o(e),y(Re.$$.fragment,e),Nt=o(e),y(xe.$$.fragment,e),Yt=o(e),ke=u(e,"P",{}),Tl(ke).forEach(l),this.h()},h(){C(n,"name","hf:doc:metadata"),C(n,"content",Sl),C(R,"class","flex gap-4"),C(x,"class","flex gap-4"),C(k,"class","flex justify-center"),C(N,"class","flex justify-center"),C(Y,"class","flex gap-4"),C(S,"class","flex gap-4"),C(z,"class","flex gap-4")},m(e,t){$l(document.head,n),s(e,T,t),s(e,p,t),s(e,m,t),h(r,e,t),s(e,d,t),s(e,c,t),s(e,j,t),s(e,G,t),s(e,B,t),h(V,e,t),s(e,W,t),h(_,e,t),s(e,a,t),s(e,w,t),s(e,Ne,t),h(q,e,t),s(e,Ye,t),s(e,L,t),s(e,He,t),s(e,A,t),s(e,Se,t),h(P,e,t),s(e,ze,t),s(e,R,t),s(e,Fe,t),h(K,e,t),s(e,Ee,t),s(e,O,t),s(e,De,t),s(e,ee,t),s(e,qe,t),h(te,e,t),s(e,Le,t),s(e,x,t),s(e,Ae,t),h(le,e,t),s(e,Pe,t),s(e,se,t),s(e,Ke,t),s(e,ae,t),s(e,Oe,t),h(ne,e,t),s(e,et,t),s(e,ie,t),s(e,tt,t),h(oe,e,t),s(e,lt,t),s(e,pe,t),s(e,st,t),h(re,e,t),s(e,at,t),s(e,k,t),s(e,nt,t),h(me,e,t),s(e,it,t),s(e,de,t),s(e,ot,t),h(Q,e,t),s(e,pt,t),s(e,ce,t),s(e,rt,t),h(fe,e,t),s(e,mt,t),s(e,N,t),s(e,dt,t),h(ue,e,t),s(e,ct,t),s(e,Me,t),s(e,ft,t),h(ye,e,t),s(e,ut,t),s(e,he,t),s(e,Mt,t),h(be,e,t),s(e,yt,t),s(e,Y,t),s(e,ht,t),h(Je,e,t),s(e,bt,t),s(e,ge,t),s(e,Jt,t),h(H,e,t),s(e,gt,t),h(Ze,e,t),s(e,Zt,t),s(e,S,t),s(e,wt,t),h(we,e,t),s(e,Tt,t),s(e,Te,t),s(e,Ut,t),h(Ue,e,t),s(e,jt,t),s(e,z,t),s(e,vt,t),h(je,e,t),s(e,Wt,t),s(e,ve,t),s(e,Gt,t),h(F,e,t),s(e,_t,t),h(We,e,t),s(e,$t,t),s(e,Ge,t),s(e,Vt,t),h(_e,e,t),s(e,Xt,t),s(e,$e,t),s(e,It,t),h(E,e,t),s(e,Bt,t),h(Ve,e,t),s(e,Ct,t),s(e,Xe,t),s(e,Rt,t),s(e,Ie,t),s(e,xt,t),h(Be,e,t),s(e,kt,t),s(e,Ce,t),s(e,Qt,t),h(Re,e,t),s(e,Nt,t),h(xe,e,t),s(e,Yt,t),s(e,ke,t),Ht=!0},p(e,[t]){const bl={};t&2&&(bl.$$scope={dirty:t,ctx:e}),_.$set(bl);const Jl={};t&2&&(Jl.$$scope={dirty:t,ctx:e}),Q.$set(Jl);const gl={};t&2&&(gl.$$scope={dirty:t,ctx:e}),H.$set(gl);const Zl={};t&2&&(Zl.$$scope={dirty:t,ctx:e}),F.$set(Zl);const wl={};t&2&&(wl.$$scope={dirty:t,ctx:e}),E.$set(wl)},i(e){Ht||(b(r.$$.fragment,e),b(V.$$.fragment,e),b(_.$$.fragment,e),b(q.$$.fragment,e),b(P.$$.fragment,e),b(K.$$.fragment,e),b(te.$$.fragment,e),b(le.$$.fragment,e),b(ne.$$.fragment,e),b(oe.$$.fragment,e),b(re.$$.fragment,e),b(me.$$.fragment,e),b(Q.$$.fragment,e),b(fe.$$.fragment,e),b(ue.$$.fragment,e),b(ye.$$.fragment,e),b(be.$$.fragment,e),b(Je.$$.fragment,e),b(H.$$.fragment,e),b(Ze.$$.fragment,e),b(we.$$.fragment,e),b(Ue.$$.fragment,e),b(je.$$.fragment,e),b(F.$$.fragment,e),b(We.$$.fragment,e),b(_e.$$.fragment,e),b(E.$$.fragment,e),b(Ve.$$.fragment,e),b(Be.$$.fragment,e),b(Re.$$.fragment,e),b(xe.$$.fragment,e),Ht=!0)},o(e){J(r.$$.fragment,e),J(V.$$.fragment,e),J(_.$$.fragment,e),J(q.$$.fragment,e),J(P.$$.fragment,e),J(K.$$.fragment,e),J(te.$$.fragment,e),J(le.$$.fragment,e),J(ne.$$.fragment,e),J(oe.$$.fragment,e),J(re.$$.fragment,e),J(me.$$.fragment,e),J(Q.$$.fragment,e),J(fe.$$.fragment,e),J(ue.$$.fragment,e),J(ye.$$.fragment,e),J(be.$$.fragment,e),J(Je.$$.fragment,e),J(H.$$.fragment,e),J(Ze.$$.fragment,e),J(we.$$.fragment,e),J(Ue.$$.fragment,e),J(je.$$.fragment,e),J(F.$$.fragment,e),J(We.$$.fragment,e),J(_e.$$.fragment,e),J(E.$$.fragment,e),J(Ve.$$.fragment,e),J(Be.$$.fragment,e),J(Re.$$.fragment,e),J(xe.$$.fragment,e),Ht=!1},d(e){e&&(l(T),l(p),l(m),l(d),l(c),l(j),l(G),l(B),l(W),l(a),l(w),l(Ne),l(Ye),l(L),l(He),l(A),l(Se),l(ze),l(R),l(Fe),l(Ee),l(O),l(De),l(ee),l(qe),l(Le),l(x),l(Ae),l(Pe),l(se),l(Ke),l(ae),l(Oe),l(et),l(ie),l(tt),l(lt),l(pe),l(st),l(at),l(k),l(nt),l(it),l(de),l(ot),l(pt),l(ce),l(rt),l(mt),l(N),l(dt),l(ct),l(Me),l(ft),l(ut),l(he),l(Mt),l(yt),l(Y),l(ht),l(bt),l(ge),l(Jt),l(gt),l(Zt),l(S),l(wt),l(Tt),l(Te),l(Ut),l(jt),l(z),l(vt),l(Wt),l(ve),l(Gt),l(_t),l($t),l(Ge),l(Vt),l(Xt),l($e),l(It),l(Bt),l(Ct),l(Xe),l(Rt),l(Ie),l(xt),l(kt),l(Ce),l(Qt),l(Nt),l(Yt),l(ke)),l(n),g(r,e),g(V,e),g(_,e),g(q,e),g(P,e),g(K,e),g(te,e),g(le,e),g(ne,e),g(oe,e),g(re,e),g(me,e),g(Q,e),g(fe,e),g(ue,e),g(ye,e),g(be,e),g(Je,e),g(H,e),g(Ze,e),g(we,e),g(Ue,e),g(je,e),g(F,e),g(We,e),g(_e,e),g(E,e),g(Ve,e),g(Be,e),g(Re,e),g(xe,e)}}}const Sl='{"title":"Text or image-to-video","local":"text-or-image-to-video","sections":[{"title":"Popular models","local":"popular-models","sections":[{"title":"Stable Video Diffusion","local":"stable-video-diffusion","sections":[],"depth":3},{"title":"I2VGen-XL","local":"i2vgen-xl","sections":[],"depth":3},{"title":"AnimateDiff","local":"animatediff","sections":[],"depth":3},{"title":"ModelscopeT2V","local":"modelscopet2v","sections":[],"depth":3}],"depth":2},{"title":"Configure model parameters","local":"configure-model-parameters","sections":[{"title":"Number of frames","local":"number-of-frames","sections":[],"depth":3},{"title":"Guidance scale","local":"guidance-scale","sections":[],"depth":3},{"title":"Negative prompt","local":"negative-prompt","sections":[],"depth":3},{"title":"Model-specific parameters","local":"model-specific-parameters","sections":[],"depth":3}],"depth":2},{"title":"Control video generation","local":"control-video-generation","sections":[{"title":"Text2Video-Zero","local":"text2video-zero","sections":[],"depth":3}],"depth":2},{"title":"Optimize","local":"optimize","sections":[],"depth":2}],"depth":1}';function zl($){return vl(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Pl extends Wl{constructor(n){super(),Gl(this,n,zl,Hl,jl,{})}}export{Pl as component}; | |
Xet Storage Details
- Size:
- 67.6 kB
- Xet hash:
- fe3247b06afedff5db8651015c7330aa447ac503224cb1f2bf244bfe1cadf05b
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.