Buckets:

hf-doc-build/doc / diffusers /main /tr /api /pipelines /wan_animate_2.md
mishig's picture
|
download
raw
11.7 kB

Apache Lisansı, 2.0 Sürümü ("Lisans") altında lisanslanmıştır;

bu dosyayı, Lisansa uygun olarak kullanabilirsiniz.

Lisansın bir kopyasını şu adresten edinebilirsiniz

http://www.apache.org/licenses/LICENSE-2.0

Uygulanabilir yasa gerektirmedikçe veya yazılı olarak anlaşılmadıkça, yazılım

Lisans kapsamında dağıtılan, "OLDUĞU GİBİ" esasına göre dağıtılır,

HİÇBİR TÜR AÇIK VEYA ZIMMİ GARANTİ VEYA ŞART İÇERMEZ.

İzinleri ve

lisans kapsamındaki kısıtlamalar. -->

Wan-Animate-2

Alibaba Wan Team tarafından geliştirilen Wan-Animate-2, referans karakter görselini, sürücü videonun hareketiyle canlandırır. Sürücü video, sabit uzunlukta segmentler halinde işlenir: her segment, her transformer katmanında sürücü segmentinin K/V'sini önbelleğe alan bir referans çıkarma geçişi çalıştırır, bu önbelleğe karşı gürültü giderme yapar ve bir sonraki segmentin önceki segmentin çözümlenmiş kuyruk karelerine bağlı olması nedeniyle döngü içinde çözümlenir.

İki hazır ayar mevcuttur: temel kontrol noktası, sınıflandırıcı-ücretsiz yönlendirme ile örneklerken, damıtılmış kontrol noktası yönlendirme olmadan birkaç adımda örnekler (yönlendiricisi guidance_scale=1.0 olarak sabitlenmiştir).

import torch
from diffusers import ModularPipeline
from diffusers.utils import export_to_video, load_image, load_video

pipe = ModularPipeline.from_pretrained("Wan-AI/Wan2.2-Animate-2-14B-Diffusers")
pipe.load_components(dtype=torch.bfloat16)

# The transformer weights and the per-segment reference KV cache do not co-reside on one 80 GB
# card at the default resolution, so stream the transformer's blocks. Compiling the blocks is
# required as the in-context attention runs on the flex backend
pipe.transformer.enable_group_offload(
    onload_device=torch.device("cuda"),
    offload_device=torch.device("cpu"),
    offload_type="block_level",
    use_stream=True,
)
pipe.text_encoder.to("cuda")  # or "mps", "xpu", "cpu"
pipe.image_encoder.to("cuda")
pipe.vae.to("cuda")
pipe.transformer.compile_repeated_blocks(fullgraph=False)

# The first demo from the official repository: https://github.com/Wan-Video/Wan-Animate-2
demo = "https://raw.githubusercontent.com/Wan-Video/Wan-Animate-2/main/examples/demo1"
image = load_image(f"{demo}/reference.png")
driving_video, driving_video_fps = load_video(f"{demo}/template.mp4", return_fps=True)
prompt = "人物外观描述:一只银灰色虎斑纹的小猫,拥有圆润的脸庞、竖立的耳朵和巨大的圆形眼睛。它身穿一套深蓝色的制服套装,包括一件带有金色纽扣的西装外套和一条百褶裙。外套里面搭配着白色衬衫,领口处系着一个红色的蝴蝶结,袖口露出白色的衬衫边缘。背景描述:背景为纯白色,光线均匀明亮,无其他杂物或装饰。"

videos = pipe(
    image=image,
    driving_video=driving_video,
    driving_video_fps=driving_video_fps,
    prompt=prompt,
    output="videos",
)
export_to_video(videos[0], "output.mp4", fps=24)

Distilled checkpoint için Wan-AI/Wan2.2-Animate-2-14B-Distilled-Diffusers modelini aynı şekilde yükleyin — başka hiçbir değişiklik yoktur. Her preset kendi örneklem varsayılanlarını taşır (temel checkpoint için 40 adım, distilled olan için 10 adım) ve hiçbir yerde guidance_scale argümanı bulunmaz: guidance, pipeline'ın guider bileşenine aittir (temel preset için 3.0 değerinde classifier-free guidance, distilled olan için devre dışı).

height ve width (varsayılanlar 800 ve 640), üretilen videonun hedef alanını belirler; gerçek kare boyutu, referans görüntünün en-boy oranını korur ve sürücü kareleri buna göre letterbox (siyah şeritli) olarak ayarlanır. Zaten hedef letterbox boyutunda olan girdiler, ön işlemeden dokunulmadan geçer; bu nedenle ön işleme tamamen pipeline dışında da yapılabilir.

WanAnimate2ModularPipeline[[diffusers.WanAnimate2ModularPipeline]]

diffusers.WanAnimate2ModularPipeline[[diffusers.WanAnimate2ModularPipeline]]

diffusers.WanAnimate2ModularPipeline(blocks: diffusers.modular_pipelines.modular_pipeline.ModularPipelineBlocks | None = None, pretrained_model_name_or_path: str | os.PathLike | None = None, components_manager: diffusers.modular_pipelines.components_manager.ComponentsManager | None = None, collection: str | None = None, workflow: str | None = None, modular_config_dict: dict[str, typing.Any] | None = None, config_dict: dict[str, typing.Any] | None = None, **kwargs)

Kaynak

Wan-Animate-2 karakter animasyonu için bir ModularPipeline.

WanAnimate2DistilledModularPipeline[[diffusers.WanAnimate2DistilledModularPipeline]]

diffusers.WanAnimate2DistilledModularPipeline[[diffusers.WanAnimate2DistilledModularPipeline]]

diffusers.WanAnimate2DistilledModularPipeline(blocks: diffusers.modular_pipelines.modular_pipeline.ModularPipelineBlocks | None = None, pretrained_model_name_or_path: str | os.PathLike | None = None, components_manager: diffusers.modular_pipelines.components_manager.ComponentsManager | None = None, collection: str | None = None, workflow: str | None = None, modular_config_dict: dict[str, typing.Any] | None = None, config_dict: dict[str, typing.Any] | None = None, **kwargs)

Kaynak

Sınıflandırıcı-özgür yönlendirme olmadan az sayıda adımda örnekleyen distile Wan-Animate-2 modeli için bir ModularPipeline.

WanAnimate2Blocks[[diffusers.WanAnimate2Blocks]]

diffusers.WanAnimate2Blocks[[diffusers.WanAnimate2Blocks]]

diffusers.WanAnimate2Blocks()

Kaynak

Wan-Animate-2 karakter animasyonu için modüler pipeline blokları: bir referans karakter görseli ve bir sürücü video, karakterin sürücü hareketini takip ettiği bir video üretir.

Bileşenler: text_encoder (UMT5EncoderModel) tokenizer (AutoTokenizer) image_processor (WanAnimate2VideoProcessor) image_encoder (CLIPVisionModel) video_processor (WanAnimate2VideoProcessor) vae (AutoencoderKLWan) transformer (WanAnimate2Transformer3DModel) scheduler (SchedulerMixin) guider (ClassifierFreeGuidance)

Girdiler: prompt (str): Görsel üretimi yönlendirmek için istem veya istemler. negative_prompt (str, isteğe bağlı): Görsel üretimini yönlendirmemesi gereken istem veya istemler. prompt_ref (str, isteğe bağlı, varsayılan: 人物动作的参考视频): Sürücü video bağlamı için referans istem. max_sequence_length (int, isteğe bağlı, varsayılan: 512): İstem kodlaması için maksimum dizi uzunluğu. image (Image | list): Animasyonu yapılacak karakteri içeren referans görsel. height (int, isteğe bağlı, varsayılan: 800): width ile birlikte, üretilen videonun hedef alanı; en-boy oranı image'dan gelir. Çözümlenen kare yüksekliği ile değiştirilir. width (int, isteğe bağlı, varsayılan: 640): height parametresine bakınız. Çözümlenen kare genişliği ile değiştirilir. driving_video (list): Hareketi sağlayan sürücü video; VideoProcessor.preprocess_video tarafından kabul edilen herhangi bir formatta olabilir. driving_video_fps (float, isteğe bağlı): driving_video'nun çekildiği kare hızı — load_video(..., return_fps=True) bunu raporlar. Ayarlandığında, sürücü kareleri buradan fps'ye yeniden örneklenir; None olduğunda olduğu gibi kullanılır. fps (int, isteğe bağlı, varsayılan: 24): Modelin üretim yaptığı kare hızı. segment_frame_length (int, isteğe bağlı, varsayılan: 81): Her çıkarım segmentindeki kare sayısı. prev_segment_conditioning_frames (int, isteğe bağlı, varsayılan: 1): Önceki segmentten devralınan koşullandırma karelerinin sayısı. generator (Generator, isteğe bağlı): Belirlenebilir üretim için Torch üreteci. num_inference_steps (int, isteğe bağlı, varsayılan: 40): Gürültü azaltma adım sayısı. **denoiser_input_fields (None, isteğe bağlı): Gürültü azaltıcı için koşullu model girdileri: örn. prompt_embeds, negative_prompt_embeds vb. output_type (str, isteğe bağlı, varsayılan: np): Çözümlenen videoların çıktı türü

Çıktılar: videolar (list): Oluşturulan videolar.

WanAnimate2DistilledBlocks[[diffusers.WanAnimate2DistilledBlocks]]

diffusers.WanAnimate2DistilledBlocks[[diffusers.WanAnimate2DistilledBlocks]]

diffusers.WanAnimate2DistilledBlocks()

Kaynak

Damıtılmış Wan-Animate-2 karakter animasyonu için modüler pipeline blokları, classifier-free guidance olmadan birkaç adımda örneklem.

Bileşenler: text_encoder (UMT5EncoderModel) tokenizer (AutoTokenizer) image_processor (WanAnimate2VideoProcessor) image_encoder (CLIPVisionModel) video_processor (WanAnimate2VideoProcessor) vae (AutoencoderKLWan) transformer (WanAnimate2Transformer3DModel) scheduler (SchedulerMixin) guider (ClassifierFreeGuidance)

Girdiler: prompt (str): Görsel üretimi yönlendirmek için istem veya istemler. negative_prompt (str, isteğe bağlı): Görsel üretimini yönlendirmemesi gereken istem veya istemler. prompt_ref (str, isteğe bağlı, varsayılan: 人物动作的参考视频): Sürücü video bağlamı için referans istem. max_sequence_length (int, isteğe bağlı, varsayılan: 512): İstem kodlaması için maksimum dizi uzunluğu. image (Image | list): Animasyonu yapılacak karakteri içeren referans görsel. height (int, isteğe bağlı, varsayılan: 800): width ile birlikte, üretilen videonun hedef alanı; en-boy oranı image'dan gelir. Çözümlenen kare yüksekliği ile değiştirilir. width (int, isteğe bağlı, varsayılan: 640): height parametresine bakınız. Çözümlenen kare genişliği ile değiştirilir. driving_video (list): Hareketi sağlayan sürücü video; VideoProcessor.preprocess_video tarafından kabul edilen herhangi bir formatta olabilir. driving_video_fps (float, isteğe bağlı): driving_video'nun çekildiği kare hızı — load_video(..., return_fps=True) bunu raporlar. Ayarlandığında, sürücü kareleri buradan fps'ye yeniden örneklenir; None olduğunda olduğu gibi kullanılır. fps (int, isteğe bağlı, varsayılan: 24): Modelin üretim yaptığı kare hızı. segment_frame_length (int, isteğe bağlı, varsayılan: 81): Her çıkarım segmentindeki kare sayısı. prev_segment_conditioning_frames (int, isteğe bağlı, varsayılan: 1): Önceki segmentten devralınan koşullandırma karelerinin sayısı. generator (Generator, isteğe bağlı): Belirlenebilir üretim için Torch üreteci. num_inference_steps (int, isteğe bağlı, varsayılan: 10): Gürültü azaltma adım sayısı. **denoiser_input_fields (None, isteğe bağlı): Gürültü azaltıcı için koşullu model girdileri: örn. prompt_embeds, negative_prompt_embeds vb. output_type (str, isteğe bağlı, varsayılan: np): Çözümlenen videoların çıktı türü

Çıktılar: videolar (list): Oluşturulan videolar.

Xet Storage Details

Size:
11.7 kB
·
Xet hash:
18ffcd376ab5a8869514a8cd67c362bfda6561e71275274880974965c2129369

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