CommunityBildgithub.com

Blob-Porträt

Wandelt jedes Foto (Selfie, Porträt, Produktfoto) in Zehntausende weicher Farbblobs um, die durch Gradientenabstieg aus zufälligem Rauschen trainiert werden. Erzeugt das Gemälde, einen Foto-vs-Code-Vergleich, einen Zoom-Beleg sowie ein GIF vom Rauschen zum Bild.

Was ist Blob-Porträt?

Dieses Skill erstellt aus einem Foto ein künstlerisches Blob-Porträt, indem es tausende 2D-Gaußsche Blobs mittels Gradientenabstieg optimiert. Startend von 1.500 zufälligen Blobs wird bei jedem Schritt die Abweichung zum Originalfoto (L1 + SSIM) gemessen und die Blobs werden minimal verschoben (Adam). Neue kleine Blobs entstehen dort, wo der Fehler am größten ist. Das Ergebnis ist ein vollständig gelerntes Bild ohne Verwendung eines Bildgenerators. Das Skill unterstützt drei Presets (quick, default, full) mit unterschiedlicher Blob-Anzahl und Rechenzeit, wobei GPU oder CPU automatisch erkannt werden. Es eignet sich ideal für Demos, die zeigen, wie Code ein Bild „nachbauen“ kann, und erzeugt Vergleiche, Zoom-Details und ein Trainings-GIF. Entwickler können die Parameter wie Fokusbereich, Seitenverhältnis und Schritte flexibel anpassen.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/fluxpediawork/blob-portrait/tree/HEAD

Installed? Explore more Bild skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Blob-Porträt: Gradientenabstieg für ein Foto

Malt ein Foto mit 2D-Gaußschen Blobs. Es startet mit 1.500 zufälligen Blobs, rendert sie bei jedem Schritt, misst den Fehler im Vergleich zum Foto (L1 + SSIM) und bewegt jeden Blob ein wenig, um den Fehler zu reduzieren (Adam). Neue winzige Blobs entstehen dort, wo der Fehler am größten ist. Es ist kein Bildgenerator beteiligt: Das Bild wird gelernt.

Schritte

  1. Foto holen. Verwende die beigefügte Datei. Notiere die Position des Motivs, um --focus setzen zu können (der Bereich, der das meiste Nah-Training erhält, normalerweise das Gesicht).

  2. Installation. Python 3.10+.

    pip install -r requirements.txt   # torch, numpy, pillow
    

    Falls der PyTorch-Index blockiert ist, funktioniert auch einfaches pip install torch von PyPI.

  3. Wähle ein Preset je nach verfügbarer Hardware und Zeit:

    PresetSchrittemax. Blobs2-Kern CPUGPU
    quick30015.000~8 Min~1 Min
    default1.60045.000~35 Min~5 Min
    full6.000100.000Stunden~20-40 Min

    Auf einer CPU führe default im Hintergrund aus und überwache das Log; blockiere nicht darauf.

  4. Ausführen.

    python scripts/blobfit.py photo.jpg --out result/ --preset default \
        --aspect 4:5 --focus 0,5,0,4,0,45,0,5
    
    • --aspect schneidet auf w:h um die Mitte zu („none“ behält die eigene Form des Fotos).
    • --focus cx,cy,w,h ist in 0-1 des zugeschnittenen Bildes. Für ein zentriertes Selfie deckt 0,5,0,4,0,45,0,5 das Gesicht ab.
    • --steps / --blobs überschreiben das Preset.
    • Das Gerät wird automatisch erkannt: CUDA, dann Apple MPS, dann CPU.
  5. Überprüfe das Ergebnis vor der Auslieferung. Öffne compare.jpg und zoom.jpg und betrachte sie. stats.json enthält den PSNR: etwa 28-30 dB ist eine weiche Ähnlichkeit (quick), 38 dB+ ist bei normaler Größe kaum zu unterscheiden. Wenn das Gesicht unscharf ist, starte erneut mit mehr Schritten oder verschiebe --focus auf das Gesicht.

  6. Ausliefern. Sende compare.jpg, render.png und training.gif. Sage, wie viele Blobs und Schritte, den PSNR und dass es trainiert, nicht generiert wurde.

Ausgaben

DateiBeschreibung
render.pngdas Blob-Gemälde in voller angepasster Größe
compare.jpgechtes Foto neben der Code-Version
zoom.jpgNahaufnahme-Beweis um die Augen
training.gifRauschen zum Bild, ein Frame pro Meilenstein
blobs.npzjeder Blob: Position, Skalierung, Winkel, Farbe, Stärke (zum erneuten Rendern oder für Animationen)
stats.jsonSchritte, Blob-Anzahl, PSNR, Sekunden, Gerät

Ehrliche Grenzen

  • Es kopiert ein Foto. Es kann keine neue Ansicht oder ein neues Gesicht erfinden.
  • Die Qualität hängt von den Schritten ab: kurze CPU-Läufe werden unscharf; feine Hautkörnung benötigt das Preset full.
  • Die Hintergrundfarbe wird von den Rändern des Fotos übernommen, sodass Blobs nur malen müssen, was sich davon unterscheidet.

Verwandte Skills