# Einrichtung — bitte dieser KI vorlegen

**An den Menschen, der das hier liest:** Sie müssen nichts davon selbst
ausführen. Geben Sie diese Datei zusammen mit dem entpackten Ordner an eine
KI, die auf Ihrem Rechner arbeiten darf, etwa Claude Code, und schreiben Sie
dazu einen Satz wie „Richte das bitte nach der beiliegenden Anleitung ein."
Alles Weitere steht unten und ist an die KI gerichtet.

Wenn dabei etwas nicht klappt, ist die häufigste Ursache eine fehlende
Python-Bibliothek. Der Abschnitt „Wenn etwas nicht läuft" nennt die drei Fälle,
die praktisch immer dahinterstecken.

---

## An die KI: Was einzurichten ist

Dieses Paket ist ein Skill für einen Arbeitsablauf namens Whiteboard-Animation.
Er erzeugt Filme, in denen eine Hand eine Zeichnung Strich für Strich malt.

Arbeite die folgenden fünf Schritte der Reihe nach ab und **melde nach jedem
Schritt kurz, ob er gelaufen ist**. Brich ab und frage nach, wenn ein Schritt
scheitert, statt ihn zu überspringen.

### Schritt 1 — Den Skill ablegen

Lege den entpackten Ordner `whiteboard/` dort ab, wo dein Werkzeug seine Skills
sucht. Bei Claude Code ist das `~/.claude/skills/`. Wenn du deine Skills aus
einem eigenen Repository verlinkst, lege ihn dort ab und setze den Verweis wie
bei deinen anderen Skills.

Prüfe danach, dass diese Dateien erreichbar sind:

```
whiteboard/SKILL.md
whiteboard/scripts/pfade.py
whiteboard/scripts/bauen.py
whiteboard/scripts/hand.py
whiteboard/vorlage/index.html
whiteboard/assets/haende.json
whiteboard/assets/hand-zeichnen.png
whiteboard/assets/hand-wischen.png
```

### Schritt 2 — Python-Umgebung anlegen

Das Gewinnen der Zeichenpfade braucht drei Bibliotheken, die selten schon
vorhanden sind. Lege dafür eine eigene Umgebung an, damit nichts am
System-Python verändert wird:

```bash
python3 -m venv ~/.claude/venvs/whiteboard
~/.claude/venvs/whiteboard/bin/pip install numpy scikit-image pillow
```

Prüfe:

```bash
~/.claude/venvs/whiteboard/bin/python -c "import numpy, skimage, PIL; print('bereit')"
```

**Merke dir diesen Pfad.** Alle Skripte des Skills werden mit genau diesem
Python aufgerufen, nicht mit `python3`.

### Schritt 3 — HyperFrames verfügbar machen

Die Animation wird mit HyperFrames gerendert. Es lädt sich beim ersten Aufruf
selbst, braucht aber Node.js ab Version 22. Prüfe:

```bash
node --version
npx --yes hyperframes@latest --help
```

Fehlt Node, weise den Nutzer darauf hin. Installiere es nicht ohne Rückfrage,
das ist ein Eingriff ins System.

### Schritt 4 — Die Probe ohne Kosten

Bevor irgendetwas erzeugt wird, prüfe die Kette an einem vorhandenen Bild. Nimm
irgendeine Strichzeichnung, notfalls eine der beiden mitgelieferten Hände:

```bash
~/.claude/venvs/whiteboard/bin/python whiteboard/scripts/pfade.py \
  <irgendeine-strichzeichnung.png> /tmp/probe.json --breite 900 --min 5
```

Kommt eine Zeile wie „Verwertbare Pfade: 384, Gesamtlänge 9120 px" zurück, ist
der schwierige Teil eingerichtet. Diese Probe kostet nichts.

### Schritt 5 — Zugang zu einem Bildmodell

Für eigene Motive wird ein Bildmodell gebraucht, das saubere Strichzeichnungen
liefert. Der Skill wurde mit `gpt-image-2` über den Anbieter kie.ai gebaut, wo
ein Bild in 2K zehn Credits kostet, also rund vier Cent. Jeder andere Zugang
geht ebenso, solange er Bilder in ausreichender Auflösung liefert.

**Frage den Nutzer, welchen Zugang er hat**, statt einen anzunehmen. Ohne
Bildmodell bleibt der Skill benutzbar, dann müssen die Zeichnungen von Hand
kommen oder aus einer vorhandenen Sammlung.

Die erprobten Bildprompts stehen in `whiteboard/references/prompts.md`. Der
Verbotsblock darin ist wichtig: keine gefüllten schwarzen Flächen, keine
Graustufen, alle Tonwerte aus offener Schraffur. Andernfalls entsteht beim
Skelettieren Astwerk statt Linien.

---

## Danach: der erste eigene Film

Lies `whiteboard/SKILL.md`, dort steht der ganze Ablauf. In Kürze:

1. Ein Bild je Szene erzeugen, als reine Strichzeichnung.
2. Den Sprechtext abschnittsweise vertonen und **jede Länge messen**. Die
   Szenendauern kommen aus dieser Messung, nicht aus einer Schätzung.
3. Eine Szenenliste schreiben:

```json
{
  "name": "mein-film",
  "szenen": [
    {"motiv": "bilder/01.png", "dauer": 12.4},
    {"motiv": "bilder/02.png", "dauer": 8.1}
  ]
}
```

4. Bauen und rendern:

```bash
~/.claude/venvs/whiteboard/bin/python whiteboard/scripts/bauen.py szenen.json projekt
cd projekt && npm run check && npm run render
```

Das Bauskript meldet je Szene das **sichtbare** Zeichentempo, also Strichlänge
mal Skalierung geteilt durch die Zeichenzeit. Über 2500 Pixel je Sekunde warnt
es, über 3000 rast die Hand. **Senke dann nicht das Tempo**, denn die
Szenendauer steht durch den Sprechtext fest. Nimm ein **einfacheres Motiv**:
„only the outer contour, no hatching, few elements" im Prompt.

**⚠ Die Arbeitsbreite zu senken ist kein Ersatz dafür.** Es fallen zwar Details
weg, gleichzeitig steigt aber die Skalierung, weil dasselbe Bild aus weniger
Pixeln aufgeblasen wird. Ein gemessener Rückgang um drei Viertel ergab sichtbar
nur ein Drittel.

---

## Wenn etwas nicht läuft

**„No module named 'skimage'"** — Du hast ein Skript mit dem falschen Python
aufgerufen. Es muss `~/.claude/venvs/whiteboard/bin/python` sein.

**Die Zeichnung steht sofort komplett da, statt zu entstehen** — Dann wurden die
Striche in einen einzigen Pfad gelegt. SVG startet das Strichmuster bei jedem
Teilstück neu, deshalb springt dabei alles gleichzeitig auf sichtbar. Die
mitgelieferte Vorlage macht es richtig, mit einem eigenen Element je Strich.
Baue das nicht um.

**Die Farbe scheint aus der Hand zu kommen statt aus dem Stift** — Der
Ankerpunkt der Hand sitzt falsch. Die Werte in `assets/haende.json` sind
gemessen und dürfen nicht geraten werden. Für eine eigene Hand nimm
`scripts/hand.py`, das misst den vordersten Punkt entlang der Stiftachse.

**Der Arm endet mitten im Bild** — Die Hand ist zu klein skaliert. In
`haende.json` steht je Hand eine `mindestskalierung`. Darunter reicht der Arm
nicht mehr bis zum Bildrand.

**Aus einer Zeichnung werden zehntausende Kurzsegmente** — Die Vorlage hat
gefüllte Flächen oder Graustufen. Beim Skelettieren wird daraus Astwerk. Erzeuge
das Motiv neu mit dem Verbotsblock aus `references/prompts.md`.

---

## Was dieser Skill nicht macht

Sprache, Musik, Schnitt und Untertitel. Er liefert die Animation als MP4, alles
Weitere gehört in den Ablauf, den du sonst für Filme verwendest.

**Ein Hinweis, der kein technischer ist:** Wenn im Film eine synthetische Stimme
spricht, gehört ein sichtbarer Hinweis „KI-generiert" ins Bild. In der EU ist
die Rechtslage dazu nicht abschließend geklärt, und die Kennzeichnung kostet
nichts. Auf hellem Bildgrund muss der Kasten dahinter kräftig genug sein, sonst
sieht ihn niemand.
