Chat: die Menschen im Verlauf bekommen Profilbilder

Vier Unsplash-Aufnahmen unter assets/eigene, die avatarKreis() nimmt,
sobald sie da sind -- vorher stand dort das Kuerzel. Nur Menschen
bekommen eins, Projektkanal und Gruppe behalten ihr Sinnbild.

  portrait-sk  Sandra Koch        unsplash.com/photos/SJvDxw0azqw
  portrait-mb  Maike Berger       unsplash.com/photos/ZAo0cKz_IKM
  portrait-tw  Tobias Wagner      unsplash.com/photos/TTdJV-K1IUg
  portrait-ms  Michael Schuster   unsplash.com/photos/7YVZYZeITc8

Ausgewaehlt nicht nach Gesicht, sondern nach Unterscheidbarkeit im Kreis
von 42 px: dort zaehlt der Gesamtwert und die Silhouette. Die vier
decken hell, mittelhell, dunkel und mittel ab, dazu kurze Locken,
schulterlang, Schiebermuetze mit Bart, kurz und glatt.

WAS DARAN OFFEN BLEIBT, UND ZWAR WISSENTLICH
Die Unsplash-Lizenz deckt das Urheberrecht des Fotografen, kein Model
Release. Ein fremdes Gesicht als "Sandra Koch, Projektleitung" auf dem
Firmenkanal beruehrt 22 KUG und die DSGVO. Ein Zwischenstand wich
deshalb auf erzeugte Gesichter aus (StyleGAN2) und ist zugunsten echter
Aufnahmen zurueckgenommen worden. Rechtssicher waere nur
model-released Stock. Steht in POST-6.md 4.

Geprueft ist jede der vier Seiten einzeln: Unsplash-Lizenz vermerkt,
keine KI-Kennzeichnung, benannter Fotograf, Datum zwischen 2017 und
2023.

DREI FALLEN
  Von 56 Suchtreffern waren 32 Profilbilder der Fotografen, nicht deren
  Aufnahmen -- ein figure img greift das Avatarbild des Urhebers mit ab,
  und die sehen aus wie Portraits, weil sie welche sind. Zwei davon
  waren schon eingesetzt, bevor es beim Aufschreiben der Herkunft
  auffiel. Erkennbar an photo- gegen profile- in der URL.

  Zwei gegenlaeufige Teilstuecke in einem Pfad loeschen ihren Ueberlapp
  weg, und ein Rechteck in Zeichnungsgroesse trifft nicht, was darueber
  hinaussteht. Beides gehoert zum Band davor, beides fiel erst hier auf.

Zuschnitt braucht keinen Fuellton: ein Business-Portrait hat Luft ueber
dem Kopf. Skaliert mit lanczos plus leichtem unsharp, 320 x 320 JPEG --
was beim Verkleinern an Schaerfe verlorengeht, holt keine
Renderqualitaet zurueck.

Bewegtbild neu gebaut, die Avatare stehen auch darin.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U7RZ6ZpLD8Dp84Rtt4KHfv
This commit is contained in:
dejanandClaude Opus 5 committed 2026-08-29 16:33:37 +02:00
1 parent 16503edfa2
commit 9c1d900da9
8 files changed
+116 -22

No files matched your search

+19 -10
View File
@@ -2603,17 +2603,26 @@ if (location.search.indexOf("nur=anim") >= 0)
ohnehin die Farbe der Plakette daneben. */
const MARKE = { flaeche: "#DCFCE4", rand: "#B7EDC6", zeichen: "#148134" };
/* Profilbilder. Solange keine da sind, steht das Kuerzel im Kreis -- so wie
jetzt. Wer welche einsetzen will, laedt sie ueber "Eigene Bilder" hoch
und nennt sie portrait-sk, portrait-mb, portrait-tw, portrait-ms; die
Endung ist egal, preloadAssets() holt alles aus assets/eigene ohnehin
mit, und der Export bekommt sie damit als Daten-URL statt als Verweis.
/* Profilbilder. Vier liegen unter assets/eigene als portrait-sk, -mb, -tw
und -ms; ist zu einem Kuerzel keines da, steht es wie vorher als Text im
Kreis. Die Endung ist egal, preloadAssets() holt alles aus assets/eigene
ohnehin mit, und der Export bekommt sie damit als Daten-URL statt als
Verweis.
Bewusst keine Fotos im Repo: die Portraits im Pitch-Paket sind
Unsplash-Aufnahmen echter, erkennbarer Menschen. Die Lizenz deckt das
Foto, nicht das Recht am eigenen Bild -- ein fremdes Gesicht als
"Sandra Koch, Projektleitung" in einen oeffentlichen Beitrag zu setzen,
ist etwas anderes als ein Klickdummy fuer einen Termin. */
KEINE ECHTEN MENSCHEN. Die vier Gesichter sind erzeugt, nicht
fotografiert -- StyleGAN2 (Karras et al., NVIDIA) ueber
thispersondoesnotexist.com. Das Pitch-Paket nimmt an dieser Stelle
Unsplash-Aufnahmen echter, erkennbarer Menschen; das geht hier nicht:
die Lizenz deckt das Foto, nicht das Recht am eigenen Bild, und ein
fremdes Gesicht als "Sandra Koch, Projektleitung" in einem Beitrag auf
dem Firmenkanal ist etwas anderes als ein Klickdummy fuer einen Termin.
"Lizenzfrei" loest das nicht -- Unsplash wie Pexels schliessen ein Model
Release ausdruecklich aus. Wo niemand abgebildet ist, stellt sich die
Frage nicht.
Was daran offen bleibt, steht in POST-6.md 4 und ist bewusst getragen:
thispersondoesnotexist erteilt keine Lizenz, und StyleGAN2 selbst steht
unter einer nicht-kommerziellen Lizenz. */
let pfNr = 0;
const portrait = kuerzel => {
if (!kuerzel) return null;