Generieren Sie Videos mit Alibabas Wan2.1-Modell auf Clore.ai GPUs
Erzeugen Sie hochwertige Videos mit Alibabas Wan2.1 Text-zu-Video- und Bild-zu-Video-Modellen auf CLORE.AI-GPUs.
Alle Beispiele können auf GPU-Servern ausgeführt werden, die über CLORE.AI Marketplace.
Warum Wan2.1?
Hohe Qualität - State-of-the-art Videoerzeugung
Mehrere Modi - Text-zu-Video, Bild-zu-Video
Verschiedene Größen - 1,3B bis 14B Parameter
Lange Videos - Bis zu 81 Bilder
Offene Gewichte - Apache-2.0-Lizenz
Modellvarianten
Modell
Parameter
VRAM
Auflösung
Frames
Wan2.1-T2V-1.3B
1,3B
8GB
480p
81
Wan2.1-T2V-14B
14B
24GB
720p
81
Wan2.1-I2V-14B
14B
24GB
720p
81
Schnelle Bereitstellung auf CLORE.AI
Docker-Image:
pytorch/pytorch:2.5.1-cuda12.4-cudnn9-devel
Ports:
Befehl:
Zugriff auf Ihren Dienst
Nach der Bereitstellung finden Sie Ihre http_pub URL in Meine Bestellungen:
Gehen Sie zur Meine Bestellungen Seite
Klicken Sie auf Ihre Bestellung
Finden Sie die http_pub URL (z. B., abc123.clorecloud.net)
Verwenden Sie https://IHRE_HTTP_PUB_URL anstelle von localhost in den Beispielen unten.
Hardware-Anforderungen
Modell
Minimale GPU
Empfohlen
Optimal
1,3B T2V
RTX 3070 8GB
RTX 3090 24GB
RTX 4090
14B T2V
RTX 4090 24GB
A100 40GB
A100 80GB
14B I2V
RTX 4090 24GB
A100 40GB
A100 80GB
Installation
Text-zu-Video
Grundlegende Nutzung (1,3B)
Hohe Qualität (14B)
Bild-zu-Video
Ein Bild animieren
Bild-zu-Video mit Wan2.1-I2V-14B
Wan2.1-I2V-14B animiert ein statisches Bild und verwendet dazu einen Textprompt, um die Bewegung zu steuern. Erfordert 24GB VRAM (RTX 4090 oder A100 40GB empfohlen).
Modelldetails
Eigenschaft
Wert
Modell-ID
Wan-AI/Wan2.1-I2V-14B-480P
Parameter
14 Milliarden
Benötigter VRAM
24GB
Maximale Auflösung
480p (854×480) oder 720p (1280×720)
Maximale Frames
81
Lizenz
Apache 2.0
Hardware-Anforderungen
GPU
VRAM
Status
RTX 4090
24GB
✅ Empfohlen
RTX 3090
24GB
✅ Unterstützt
A100 40GB
40GB
✅ Optimal
A100 80GB
80GB
✅ Beste Qualität
RTX 3080
10GB
❌ Unzureichend
Schnelles CLI-Skript
Speichern als generate_i2v.py und ausführen:
generate_i2v.py — vollständiges Skript
Erweiterte I2V-Pipeline (Python-API)
I2V Prompt-Tipps
Ziel
Prompt-Beispiel
Kamerabewegung
"camera slowly zooms out from the subject"
Parallaxeeffekt
"subtile Parallaxbewegung, Änderung der Schärfentiefe"
Charakteranimation
"die Figur dreht den Kopf und lächelt"
Naturanimation
"Blätter rascheln in einer sanften Brise, Licht verschiebt sich"
Abstrakte Bewegung
"Farben wirbeln und verschmelzen, fließende Bewegung"
# Auf 24GB-GPUs obligatorisch
pipe.enable_model_cpu_offload()
# Optional: reduziert den Spitzen-VRAM um ~10%
pipe.enable_vae_tiling()
pipe.enable_vae_slicing()
# Zwischen Durchläufen bereinigen
import gc
gc.collect()
torch.cuda.empty_cache()
prompts = [
"Zeitraffer von Wolken, die sich über Berggipfel bewegen, dramatische Beleuchtung",
"Ozeanwellen, die gegen Felsen schlagen, Zeitlupe, filmisch",
"Nordlichter, die am Nachthimmel tanzen, lebendige Farben",
"Wald im Herbst mit fallenden Blättern, friedliche Atmosphäre"
]
prompts = [
"Ein Golden Retriever, der durch ein Blumenfeld rennt",
"Ein Schmetterling, der aus seinem Kokon schlüpft, Makroaufnahme",
"Samurai-Krieger, der sein Schwert zieht, dramatische Beleuchtung",
"Roboter, der durch futuristische Stadtstraßen läuft"
]
prompts = [
"Bunte Farbe, die sich im Wasser wirbelt, abstrakte Kunst",
"Geometrische Formen, die sich verwandeln und morphen, Neonfarben",
"Tintentröpfchen, die sich in Milch ausbreiten, Makrofotografie"
]
import os
import torch
from diffusers import WanPipeline
from diffusers.utils import export_to_video
pipe = WanPipeline.from_pretrained("alibaba-pai/Wan2.1-T2V-1.3B", torch_dtype=torch.float16)
pipe.to("cuda")
pipe.enable_model_cpu_offload()
prompts = [
"Ein Raketenstart ins All",
"Fische, die im Korallenriff schwimmen",
"Regen, der nachts auf einer Stadtstraße fällt"
]
output_dir = "./videos"
os.makedirs(output_dir, exist_ok=True)
for i, prompt in enumerate(prompts):
print(f"Generiere {i+1}/{len(prompts)}: {prompt[:40]}...")
output = pipe(
prompt=prompt,
num_frames=49,
num_inference_steps=50
)
export_to_video(output.frames[0], f"{output_dir}/video_{i:03d}.mp4", fps=16)
torch.cuda.empty_cache()
import gradio as gr
import torch
from diffusers import WanPipeline
from diffusers.utils import export_to_video
import tempfile
pipe = WanPipeline.from_pretrained("alibaba-pai/Wan2.1-T2V-1.3B", torch_dtype=torch.float16)
pipe.to("cuda")
pipe.enable_model_cpu_offload()
def generate_video(prompt, negative_prompt, frames, steps, guidance, seed):
generator = torch.Generator("cuda").manual_seed(seed) if seed > 0 else None
output = pipe(
prompt=prompt,
negative_prompt=negative_prompt,
num_frames=frames,
num_inference_steps=steps,
guidance_scale=guidance,
generator=generator
)
with tempfile.NamedTemporaryFile(suffix=".mp4", delete=False) as f:
export_to_video(output.frames[0], f.name, fps=16)
return f.name
demo = gr.Interface(
fn=generate_video,
inputs=[
gr.Textbox(label="Prompt", lines=2),
gr.Textbox(label="Negativer Prompt", value="verschwommen, niedrige Qualität"),
gr.Slider(17, 81, value=49, step=8, label="Frames"),
gr.Slider(20, 100, value=50, step=5, label="Steps"),
gr.Slider(3, 12, value=7, step=0.5, label="Guidance"),
gr.Number(value=-1, label="Seed")
],
outputs=gr.Video(label="Generiertes Video"),
title="Wan2.1 - Text to Video Generation",
description="Erzeugen Sie Videos aus Text-Prompts. Läuft auf CLORE.AI."
)
demo.launch(server_name="0.0.0.0", server_port=7860)
# Aktivieren Sie alle Optimierungen
pipe.enable_model_cpu_offload()
pipe.enable_vae_tiling()
pipe.enable_vae_slicing()
# Für sehr wenig VRAM
pipe.enable_sequential_cpu_offload()
# Cache zwischen Generierungen leeren
torch.cuda.empty_cache()
# Kleineres Modell verwenden
pipe = WanPipeline.from_pretrained("alibaba-pai/Wan2.1-T2V-1.3B")
# Aktivieren Sie alle Optimierungen
pipe.enable_model_cpu_offload()
pipe.enable_vae_tiling()
# Frames reduzieren
output = pipe(prompt, num_frames=17)
# Auflösung reduzieren
output = pipe(prompt, height=480, width=854)