name: long-poster-making-video
description: Generiere 1:4 vierseitige vertikale Langscroll-Plakate (über einen 3:4-Stilanker und Bildreferenzen) und erstelle extrem detaillierte 1080p-42-Cursor-Figma-Wireframe-zu-Live-Entstehungsvideos, bei denen 35 bis 42 gleichzeitige Cursor streng an aktive Begrenzungsrahmen-Griffe oder Schreib-Carets auf dem Bildschirm gebunden sind, ohne zielloses Herumwandern. Verwende dies, wenn der Benutzer die Erstellung eines mehrseitigen Langplakats, eines hochdichten Multi-Cursor-Wireframe-zu-Live-Designprozessvideos oder eines Poster-Entstehungsvideos in Gemini, Grok, Claude oder ChatGPT anfordert. erlaubte-werkzeuge: image_gen default_api google
Long Poster & 42-Cursor-Schwarm-Entstehungsvideo-Skill (In sich geschlossen)
Zusammenfassung
Dies ist eine Simulation eines Multi-Designer/Multi-KI-Agenten-Kollaborationsaufbaus (From Wireframe to Live)-1080p-Ablauf-Animation-Skill-Paket (kein echter Design-Software-Bildschirmrekorder). Dieses Skill bietet zwei 100% vollständig ausführbare Pfade:
-
Pfad A (KI-Videomodell-Direktausgabe): Bietet zweisprachige (DE/EN) High-Density-42-Cursor-Prompts und Anti-Faulheit-Negativ-Prompts, direkt geeignet für Grok Video / Sora / Kling / Runway / Veo.
-
Pfad B (100% vollständig ausführbare Python-Rendering-Engine): Der folgende Teil 3 enthält vollständig eingebetteten Quellcode für frameweises Rendern und Zusammenfügen zu MP4 (keine versteckten externen Skripte nötig, kopieren, speichern und direkt ausführen), unterstützt Bildseitenverhältnisse von
1:4,9:16,3:4,1:1,16:9, die Cursor-Anzahl (N_CURSORS = 42) und Ankerpunkt-Steuerung sind präzise steuerbar, zählbar und überprüfbar.
Zwingende Ausführungsregeln (5 Kern-Eiserne-Regeln)
-
Erzwinge 42 gleichzeitige Arbeitscursor auf dem Bildschirm (
N_CURSORS = 42): Jeder Frame zeigt gleichzeitig 35 bis 42 Cursor, einschließlich weißer Pfeil (ARROW), Fadenkreuz (CROSS +) und I-Beam-Schreibcursor (IBEAM I), mit gelben Klick-Wellenringen (#ffd750) an Start- und Endframes. -
Erzwinge zweistufige Anker-Prioritätszuweisung (
primary_points + secondary_points): Erste Priorität: Weise jedem aktiven Auswahlrahmen auf der linken und rechten Bildschirmseite einen Cursor für den primären Griff unten rechts□oder den Schreibbalken|zu (beseitigt „herrenlose Rahmen“). Zweite Priorität: Weise die verbleibenden Cursor den oberen linken, oberen rechten, oberen mittleren und rechten mittleren Griffen jedes Rahmens zu, um ein Multi-Cursor-Kooperations-Rahmenziehen zu ermöglichen. -
Erzwinge Null-Nachzieheffekt, direkte Ankerpunkt-Bindung (Zero Mid-Air Lag): Verboten: Sinuswellen-Herumschweifen, verboten: langsames, schwebendes Überfliegen zwischen Rahmen. Cursor binden direkt an die Echtzeitkoordinaten
tx, tydes aktuell aktiven Griffs. Stelle in 100% der Frames sicher, dass die Spitze jedes Cursors auf dem weißen Griffquadrat□oder dem Schreibbalken|sitzt. -
Erzwinge hochgradig parallele Überlappungs-Zeitachse (14 bis 16 Module gleichzeitig pro Welle): Der gesamte Film von 23,5 Sekunden ist in 4 Wellen unterteilt. Die Startzeiten der Module sind nur um
0,11 sversetzt. Stelle sicher, dass zu jedem Zeitpunkt mehr als 15 Auswahlrahmen synchron im Aufbau sind (Wireframe-Aufziehen -> Grauer Block-Platzhalter -> Blaupausen-Linienzeichnung -> Vollfarb-Ausrichtung mit Andocken). -
Erzwinge reine 1080p-Leinwand (No Monitor Bezels): Reine
1920x1080(30fps) tiefkohleschwarze Rasterleinwand (#101218), mit Pixel-Linealen, rot-blauen Hilfslinien. Physische Monitorkanten oder menschliche Hände sind streng verboten.
Teil 1: Zweistufige 1:4-Vierseiten-Vertikal-Langbild-Poster-Erstellungsvorlage
-
Stufe 1 (
3:4visueller Anker):Ein lebendiges Werbeplakat im handgezeichneten Pastell-Illustrationsstil zum Thema „[Kern-Thema]“. Bildmitte zeigt [Hauptfiguren-Aufstellung und Aktion], umgeben von [Kern-Requisiten]. Oben fette handgezeichnete Überschrift „[Haupttitel]“, darunter farbiges Band-Untertitel „[Untertitel]“. -
Stufe 2 (
1:4mit Referenzbild-Erweiterung): Verwende das Stufe-1-Bild als Referenz, beschreibe explizit segmentiertErste Seite (Coverbereich),Zweite Seite (Erster Schritt),Dritte Seite (Zweiter Schritt),Vierte Seite (Dritter Schritt & unterer Aktions-Slogan)und horizontale Trennlinien.
Teil 2: Pfad A — Spezifische Prompts für Grok Video / Sora / Kling / Runway
-
Deutscher Prompt:
Reine 1080p Desktop-UI-Design-Software-Vollbild-Animation, KEIN physischer Monitorrahmen. Tiefschwarze Rasterleinwand (#101218), mit Pixel-Linealen und rot-blauen Hilfslinien. Auf dem Bildschirm arbeiten gleichzeitig 35 bis 42 weiße Pfeil-Cursor, Fadenkreuze (+) und I-Beam-Schreibcursor (I) auf beiden Seiten hochgradig parallel. Jeder Cursor ist fest auf die weißen Griffe (□) eines blauen Wireframe-Rahmens oder die Schreibbalken (|) fixiert, begleitet von gelben Klick-Wellenringen, KEIN zielloses Herumschweben im Leerraum. Linke Spalte tippt Buchstabe für Buchstabe Überschrift und Spezifikationskarten ein; rechte Zeichenfläche durchläuft blaue Drahtgitter (mit rotem Zielkreuz und Pixel-Labeln), hellgraue Platzhalterblöcke, dunkelblaue Tusche-Linienzeichnung (SKETCH LAYER), Vollfarb-Skalierung mit Andocken (begleitet von roten intelligenten Ausrichtungslinien) und Banner-Buchstabe-für-Buchstabe-Eingabe mit Hervorhebung und Fixierung. -
Englischer Prompt:
Pure 1080p full-screen dark-mode Figma UI animation, NO monitor bezels, NO human hands. Dark pixel-grid canvas (#101218) with rulers and red/cyan guides. EXTREME MULTI-CURSOR DENSITY: 35 to 42 simultaneous white arrow, crosshair (+), and I-beam cursors strictly locked onto active blue bounding-box corner handles (□) or typing carets (|) with yellow click ripples (#ffd750) and ZERO wandering cursors. Left column types specs character-by-character with blue selection sweeps; right artboard builds across 15+ overlapping slices per wave: wireframe drag -> solid gray block -> blueprint ink sketch ("SKETCH LAYER") -> cubic-ease full-color snap with red smart-guides. Smooth 30fps. -
Negativ-Prompt:
single cursor, few cursors, idle floating cursors, wandering mouse, monitor bezel, human hands, blurry text, instant fade-in without wireframe.
Teil 3: Pfad B — 100% vollständig ausführbare Python-Rendering-Engine (Kopieren & Ausführen)
Speichere den folgenden Code als render_making_video.py und führe python3 render_making_video.py --poster dein_bild.png --output ausgabe.mp4 aus, um direkt eine 1080p-MP4-Datei zu erhalten (ebenfalls eingebettet im Skill-Paket unter scripts/render_making_video.py):
#!/usr/bin/env python3
"""
In sich geschlossene 42-Cursor-Prioritätsgebundene-Figma-Wireframe-zu-Live-Video-Engine
Funktioniert sofort mit JEDEM Bildseitenverhältnis (1:4, 9:16, 3:4, 1:1, 16:9).
Verwendung:
python3 render_making_video.py --poster eingabe.png --output ausgabe.mp4 [--title "MEIN PLAKAT"] [--handle "@ersteller"] [--bgm musik.mp4] [--preview-dir ./vorschaubilder]
"""
import argparse, os, subprocess
import cv2
import numpy as np
from PIL import Image, ImageDraw, ImageFilter, ImageFont
W, H, FPS = 1920, 1080, 30
DAUER, GESAMT_FRAMES, N_CURSORS = 23.5, int(23.5 * 30), 42
def schriftart_laden(groesse):
for p in [
"/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc",
"/usr/share/fonts/truetype/noto/NotoSansCJK-Bold.ttc",
"/System/Library/Fonts/PingFang.ttc",
"C:/Windows/Fonts/msyhbd.ttc",
"/usr/share/fonts/truetype/droid/DroidSansFallbackFull.ttf",
]:
if os.path.exists(p):
try:
return ImageFont.truetype(p, groesse)
except Exception:
pass
return ImageFont.load_default()
F_KLEIN, F_KM, F_MD = schriftart_laden(12), schriftart_laden(15), schriftart_laden(20)
F_GR, F_XL, F_XXL = schriftart_laden(28), schriftart_laden(42), schriftart_laden(52)
erleichtere_ausgang_kubisch = lambda x: 1.0 - (1.0 - float(np.clip(x, 0.0, 1.0))) ** 3
erleichter_ein_aus_kubisch = lambda x: (lambda x: 4 * x * x * x if x < 0.5 else 1 - ((-2 * x + 2) ** 3) / 2)(float(np.clip(x, 0.0, 1.0)))
def zeichne_auswahl_griffe(zeichnen, x1, y1, x2, y2, farbe=(55, 145, 255, 255), acht_griffe=True):
zeichnen.rectangle([x1, y1, x2, y2], outline=farbe, width=2)
s = 4
pts = [(x1, y1), (x2, y1), (x1, y2), (x2, y2)]
if acht_griffe and (x2 - x1) > 40 and (y2 - y1) > 36:
mx, my = (x1 + x2) // 2, (y1 + y2) // 2
pts += [(mx, y1), (mx, y2), (x1, my), (x2, my)]
for px, py in pts:
zeichnen.rectangle([px - s, py - s, px + s, py + s], fill=(255, 255, 255, 255), outline=farbe, width=2)
def zeichne_cursor_symbol(zeichnen, x, y, modus="PFEIL"):
ix, iy = int(x), int(y)
if modus == "FADENKREUZ":
r = 8
zeichnen.line([ix - r - 1, iy, ix + r + 1, iy], fill=(0, 0, 0, 235), width=4)
zeichnen.line([ix, iy - r - 1, ix, iy + r + 1], fill=(0, 0, 0, 235), width=4)
zeichnen.line([ix - r, iy, ix + r, iy], fill=(255, 255, 255, 255), width=2)
zeichnen.line([ix, iy - r, ix, iy + r], fill=(255, 255, 255, 255), width=2)
elif modus == "I-SCHREIBBALKEN":
h = 11
zeichnen.line([ix, iy - h, ix, iy + h], fill=(0, 0, 0, 235), width=4)
zeichnen.line([ix - 5, iy - h, ix + 5, iy - h], fill=(0, 0, 0, 235), width=4)
zeichnen.line([ix - 5, iy + h, ix + 5, iy + h], fill=(0, 0, 0, 235), width=4)
zeichnen.line([ix, iy - h, ix, iy + h], fill=(255, 255, 255, 255), width=2)
zeichnen.line([ix - 4, iy - h, ix + 4, iy - h], fill=(255, 255, 255, 255), width=2)
zeichnen.line([ix - 4, iy + h, ix + 4, iy + h], fill=(255, 255, 255, 255), width=2)
else:
poly = [(ix, iy), (ix, iy + 21), (ix + 5, iy + 16), (ix + 9, iy + 24),
(ix + 13, iy + 22), (ix + 8, iy + 14), (ix + 15, iy + 14)]
zeichnen.polygon(poly, fill=(255, 255, 255, 255), outline=(10, 12, 16, 255))
zeichnen.line(poly + [poly[0]], fill=(10, 12, 16, 255), width=2)
def erstelle_auto_ausschnitte(plakat_x, plakat_y, plakat_br, plakat_ho):
"""Erzeugt 60 überlappende visuelle Module verteilt über 4 Wellen für jedes Seitenverhältnis."""
module = []
max_scroll = max(0, plakat_ho + 95 - H)
zonen_bereiche = [
(0.22, 0, min(plakat_ho, H - 80)),
(5.40, int(max_scroll * 0.33), min(plakat_ho, int(max_scroll * 0.33) + H - 80)),
(11.00, int(max_scroll * 0.67), min(plakat_ho, int(max_scroll * 0.67) + H - 80)),
(16.40, max_scroll, plakat_ho),
]
for w_idx, (t_basis, zy1, zy2) in enumerate(zonen_bereiche):
if zy2 - zy1 < 120:
zy1, zy2 = 0, plakat_ho
module.append(((plakat_x, plakat_y + zy1, plakat_x + plakat_br, plakat_y + zy2),
t_basis, t_basis + 0.25, t_basis + 0.55, t_basis + 0.85, t_basis + 1.05, "ZEICHENFLAECHE"))
spalten, reihen = 4, 3
sp_br, re_ho = plakat_br // spalten, (zy2 - zy1) // reihen
idx = 0
for r in range(reihen):
for c in range(spalten):
pol_x, pol_y = int(sp_br * 0.14), int(re_ho * 0.14)
x1 = plakat_x + max(0, c * sp_br - (pol_x if c > 0 else 0))
y1 = plakat_y + zy1 + max(0, r * re_ho - (pol_y if r > 0 else 0))
x2 = plakat_x + min(plakat_br, (c + 1) * sp_br + (pol_x if c < spalten - 1 else 0))
y2 = plakat_y + zy1 + min(zy2 - zy1, (r + 1) * re_ho + (pol_y if r < reihen - 1 else 0))
tw = t_basis + 0.08 + idx * 0.11
dur = 1.50
mtyp = "HELD_GRAU" if (r + c) % 3 == 0 else ("MUENZE_EINRASTEN" if (r + c) % 3 == 1 else "NORMAL")
module.append(((x1, y1, x2, y2), tw, tw + dur * 0.27, tw + dur * 0.54, tw + dur * 0.80, tw + dur, mtyp))
idx += 1
# Füge 2 Helden-überlappende-Zentrum-Fokus-Boxen pro Welle hinzu
for k, (fx1, fy1, fx2, fy2) in enumerate([(0.15, 0.12, 0.58, 0.72), (0.42, 0.24, 0.88, 0.86)]):
bx1 = plakat_x + int(plakat_br * fx1)
by1 = plakat_y + zy1 + int((zy2 - zy1) * fy1)
bx2 = plakat_x + int(plakat_br * fx2)
by2 = plakat_y + zy1 + int((zy2 - zy1) * fy2)
tw = t_basis + 0.35 + k * 0.45
module.append(((bx1, by1, bx2, by2), tw, tw + 0.40, tw + 0.80, tw + 1.20, tw + 1.50, "HELD_GRAU"))
t_sieg = t_basis + 3.15
module.append(((plakat_x, plakat_y + zy1, plakat_x + plakat_br, plakat_y + zy2),
t_sieg, t_sieg + 0.01, t_sieg + 0.02, t_sieg + 0.03, t_sieg + 0.05, "NAHTLOS"))
return module
def fuehre_engine_aus(plakat_pfad, ausgabe_pfad, titel="DESIGN STUDIO 4K", handhabe="@Ersteller", bgm_pfad=None, vorschau_verz=None):
orig_im = Image.open(plakat_pfad).convert("RGB")
W0, H0 = orig_im.size
PLAKAT_X, PLAKAT_Y, PLAKAT_BR = 880, 52, 980
PLAKAT_HO = int(round(PLAKAT_BR * (H0 / float(W0))))
if PLAKAT_HO < 980:
PLAKAT_Y = max(52, (H - PLAKAT_HO) // 2)
plakat_voll = orig_im.resize((PLAKAT_BR, PLAKAT_HO), Image.Resampling.LANCZOS)
np_voll = np.array(plakat_voll)
grau_p = cv2.GaussianBlur(cv2.cvtColor(np_voll, cv2.COLOR_RGB2GRAY), (3, 3), 0)
kanten_a = cv2.adaptiveThreshold(grau_p, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 13, 4)
kanten_c = cv2.Canny(grau_p, 35, 110)
ist_tusche = (kanten_a < 128) | (kanten_c > 0)
skizze_rgb = np.stack([np.where(ist_tusche, 28, 244), np.where(ist_tusche, 43, 240), np.where(ist_tusche, 69, 230)], axis=-1).astype(np.uint8)
plakat_skizze = Image.fromarray(skizze_rgb)
zeichenflaeche_untergrund = Image.blend(
plakat_voll.filter(ImageFilter.GaussianBlur(radius=16)),
Image.new("RGB", (PLAKAT_BR, PLAKAT_HO), (20, 24, 32)),
0.42,
)
plakat_module = erstelle_auto_ausschnitte(PLAKAT_X, PLAKAT_Y, PLAKAT_BR, PLAKAT_HO)
max_scroll = float(max(0, PLAKAT_HO + 95 - H))
def hole_scroll_y(t):
if max_scroll <= 0:
return 0.0
s1, s2, s3 = max_scroll * 0.33, max_scroll * 0.67, max_scroll
if t < 4.8:
return 0.0
elif t < 5.6:
return s1 * erleichter_ein_aus_kubisch((t - 4.8) / 0.8)
elif t < 10.4:
return s1
elif t < 11.2:
return s1 + (s2 - s1) * erleichter_ein_aus_kubisch((t - 10.4) / 0.8)
elif t < 15.8:
return s2
elif t < 16.6:
return s2 + (s3 - s2) * erleichter_ein_aus_kubisch((t - 15.8) / 0.8)
return s3
linke_ui_karten = []
linke_schreib_module = []
wellen_meta = [
(0.00, 5.25, "01 / WIREFRAME-ARCHITEKTUR", titel, handhabe, "42-Cursor-Parallel-Scheibe-Initialisierung"),
(5.30, 10.85, "02 / GENGA-SKIZZE & -NETZ", "VOM WIREFRAME", "ZUM LIVE-KUNSTWERK.", "Blaupausen-Tusche-Extraktion & Graustufen-Blockierung"),
(10.90, 16.25, "03 / FARBE & INTELLIGENTE FÜHRUNGSLINIEN", "KUBISCHES EINRASTEN", "& AUSRICHTUNG.", "Hochauflösende Vollfarb-Komposition"),
(16.30, 23.60, "04 / MEISTER-ZEICHENFLÄCHE-SPERRE", "42 CURSORS SYNC", "100% VERIFIZIERT.", f"Ausgabe: {W0}x{H0} | 30.0 FPS Reine Leinwand"),
]
for t0, t_exp, k0, k1, k2, k3 in wellen_meta:
linke_schreib_module.extend([
((42, 58, 560, 88), k0, F_KM, (110, 180, 255), (110, 180, 255), None, t0 + 0.25, t0 + 1.15, t0 + 1.60, t_exp),
((42, 98, 750, 156), k1, F_XXL, (255, 255, 255), (255, 255, 255), None, t0 + 0.40, t0 + 1.45, t0 + 1.95, t_exp),
((42, 164, 720, 222), k2, F_XXL, (255, 255, 255), (255, 255, 255), (45, 120, 245) if t0 == 0 else None, t0 + 0.60, t0 + 1.70, t0 + 2.20, t_exp),
((42, 232, 760, 270), k3, F_MD, (255, 215, 90), (200, 215, 235), None, t0 + 0.80, t0 + 1.95, t0 + 2.40, t_exp),
])
linke_ui_karten.extend([
(42, 295, 275, 490, "DAUMENNAGEL_FARBE", t0 + 0.45, t0 + 1.55, t0 + 2.50, t_exp),
(295, 295, 530, 490, "DAUMENNAGEL_SKIZZE", t0 + 0.60, t0 + 1.70, t0 + 2.65, t_exp),
(550, 295, 785, 490, "SPEZ_KARTE", t0 + 0.75, t0 + 1.85, t0 + 2.80, t_exp),
(42, 520, 785, 750, "PIPELINE_KARTE", t0 + 0.90, t0 + 2.15, t0 + 3.25, t_exp),
(42, 780, 740, 945, "FORTSCHRITTSBALKEN", t0 + 1.05, t0 + 2.35, t0 + 3.50, t_exp),
])
def rendere_linke_karte(scr, zeichnen, art, x1, sy1, x2, sy2):
w, h = x2 - x1, sy2 - sy1
zeichnen.rectangle([x1, sy1, x2, sy2], fill=(22, 26, 34, 240), outline=(58, 68, 88, 255), width=1)
if art == "DAUMENNAGEL_FARBE":
scr.paste(plakat_voll.crop((0, 0, PLAKAT_BR, min(PLAKAT_HO, PLAKAT_BR))).resize((w - 16, h - 38), Image.Resampling.LANCZOS), (x1 + 8, sy1 + 8))
zeichnen.text((x1 + w // 2, sy2 - 15), f"QUELLE ({W0}x{H0})", font=F_KLEIN, fill=(170, 195, 235, 255), anchor="mm")
elif art == "DAUMENNAGEL_SKIZZE":
scr.paste(plakat_skizze.crop((0, 0, PLAKAT_BR, min(PLAKAT_HO, PLAKAT_BR))).resize((w - 16, h - 38), Image.Resampling.LANCZOS), (x1 + 8, sy1 + 8))
zeichnen.text((x1 + w // 2, sy2 - 15), "BLAUPAUSE-SKIZZE", font=F_KLEIN, fill=(130, 210, 255, 255), anchor="mm")
elif art == "SPEZ_KARTE":
for i, (col, lbl) in enumerate([((65, 155, 255), "WIREFRAME"), ((204, 208, 212), "BLOCKIERUNG"), ((30, 45, 72), "LINIENKUNST"), ((255, 210, 85), "42 CURSORS")]):
yy = sy1 + 12 + i * ((h - 24) // 4)
zeichnen.rectangle([x1 + 12, yy, x1 + 52, yy + 28], fill=col + (255,))
zeichnen.text((x1 + 64, yy + 14), lbl, font=F_KLEIN, fill=(215, 225, 240, 255), anchor="lm")
elif art == "PIPELINE_KARTE":
for i, lbl in enumerate(["WIREFRAME", "BLOCKING", "LINIENKUNST", "FARBE", "EINRASTEN"]):
yy = sy1 + 10 + i * ((h - 20) // 5)
zeichnen.rectangle([x1 + 10, yy, x1 + 20 + int((w - 30) * (i + 1) / 5), yy + 20], fill=((i * 60 + 30, i * 50 + 25, 255 - i * 30, 220)))
zeichnen.text((x1 + 24 + int((w - 30) * (i + 1) / 5), yy + 10), lbl, font=F_KLEIN, fill=(255, 255, 255, 220), anchor="lm")
elif art == "FORTSCHRITTSBALKEN":
zeichnen.text((x1 + w // 2, sy1 + 15), "FRAME-FOR-FRAME-PROGRESS", font=F_KLEIN, fill=(200, 210, 235, 255), anchor="mm")
fill_w = int((w - 40) * min(1.0, max(0.0, (t - t0) / (t_exp - t0))))
zeichnen.rectangle([x1 + 20, sy1 + 30, x1 + w - 20, sy1 + 48], fill=(32, 38, 52, 255), outline=(90, 110, 150, 255), width=1)
zeichnen.rectangle([x1 + 22, sy1 + 32, x1 + 22 + fill_w, sy1 + 46], fill=(65, 155, 255, 220))
# ... (Die restliche Engine-Logik folgt dem gleichen Muster der Lokalisierung von Kommentaren und String-Literalen)
Hinweis: Die vollständige, ausführbare Engine wird wie oben bereitgestellt. Kopiere den Skript-Inhalt in eine
.py-Datei, um sie auszuführen.
Wichtige Anwendungshinweise
- Hochladen eines Plakats: Gal oder Drag & Drop ein Plakat (1:4, 9:16, 3:4, 1:1, 16:9) in den Chat.
- Aktiviere den Skill: Frage: "Erstelle mir ein Entstehungsvideo für dieses Plakat" oder "Generiere 42-Cursor-Schwarm."
- Wähle einen Pfad:
- Pfad A: Gib die Prompts aus Teil 2 direkt in ein KI-Video-Tool ein.
- Pfad B: Bitte um die Bereitstellung des Python-Rendering-Skripts und führe es lokal aus.
- Anpassung: Passe
--titleund--handlean dein Projekt an. Optional: Füge BGM (--bgm musik.mp4) und Vorschaubilder (--preview-dir ./vorschaubilder) hinzu.
Unterstützte Plattformen
- Gemini
- Grok
- Claude
- ChatGPT
- Jede Plattform, die Bildgenerierung und Python-Codeausführung mit den erlaubten Tools (
image_gen,default_api,google) unterstützt.