CommunityBildgithub.com

parthbatra99/feedready

Bearbeite Fotos wie ein engagierter Lightroom-Fotograf: Stimmung abstimmen, Effekte nebeneinander zeigen, in Runden verfeinern und das finale Bild für Instagram, LinkedIn oder Story ausliefern.

Was ist feedready?

Der Skill „feedready“ ist ein KI-gestützter Fotoeditor, der den Arbeitsablauf eines professionellen Lightroom-Fotografen nachbildet. Er analysiert das Bild zunächst gründlich, stimmt mit dem Nutzer die gewünschte „Vibe“ ab und präsentiert dann bis zu drei verschiedene Bearbeitungsrichtungen nebeneinander – inklusive einer Vorschau-Seite mit Vorher-Nachher-Vergleich. Die Bearbeitung erfolgt in mehreren Runden: Vorschau rendern, selbst kritisieren, Ergebnisse zeigen, Notizen machen – so lange, bis das Bild die gewünschte Stimmung trifft. Unterstützt werden globale Anpassungen (Belichtung, Farbe, Look), Beschnitt, regionale Masken (Gesicht, Augen, Himmel, Berge, Personen, Hintergrund, beliebige Objekte) sowie Objektentfernung. Der Skill läuft auf dem Mac mit Apple Core Image, Vision und spezialisierten KI-Modellen (SegFormer für Himmel/Berge, EdgeTAM für beliebige Objekte, MI-GAN für Objektentfernung). Auf anderen Plattformen (claude.ai, andere Maschinen) nutzt er portable Alternativen wie YuNet (Gesichter), U²-Net-p (Subjekte) und EdgeTAM – bei der ersten Nutzung werden die Modelle automatisch installiert. Der Workflow ist strikt: Zuerst das Foto analysieren („inspect“), dann die Stimmung abstimmen („board“ mit bis zu drei Varianten), dann in Runden verfeinern („preview“), bis das Ergebnis sitzt. Abschließend wird das voll aufgelöste Bild exportiert („apply“). Bei mehreren Fotos (z. B. für ein Karussell) kann ein „Hero“-Look auf alle anderen übertragen werden („carry“), wobei der Skill selbstständig Anpassungen für jedes Bild vornimmt und Abweichungen korrigiert.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/parthbatra99/feedready/tree/HEAD/skills/feedready

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

Was macht feedready?

Der Nutzer hat dich beauftragt, dieses Foto zu bearbeiten. Arbeite wie ein guter Fotograf:

  • Lies das Foto, bevor du es anfasst.
  • Stimme die Stimmung in einem Austausch ab.
  • Zeige Optionen statt sie zu beschreiben.
  • Überprüfe deine eigene Arbeit, bevor sie jemand sieht.
  • Mache Notizen in einfachen Worten.
  • Höre auf, wenn es richtig ist.

run.sh rendert; du triffst alle Entscheidungen.

Auf einem Mac verwendet die Engine:

  • Apple Core Image für Anpassungen.
  • Vision für Personen-, Motiv- und Gesichtsmasken.
  • Ein 4,4 MB SegFormer-Modell für Himmels-, Berg-, Wasser- und Baummasken.
  • EdgeTAM für eine Maske jedes Objekts, das du einrahmen oder anklicken kannst.
  • MI-GAN für Objektentfernung.

Andernorts (claude.ai oder andere Maschinen ohne die Engine) rendert numpy dieselben Anpassungen, und kleine portable Modelle ersetzen Vision: YuNet für Gesichter und Augen, U²-Net-p plus EdgeTAM für das Motiv, SegFormer plus EdgeTAM für Personen. bootstrap installiert sie bei der ersten Nutzung in einer Sitzung, sodass alle Funktionen auch dort verfügbar sind.

Führe jeden Befehl aus dem Basisverzeichnis dieses Skills aus: <base>/run.sh <cmd> auf einem Mac, python3 <base>/scripts/feedready.py <cmd> auf claude.ai. setup.sh liegt neben run.sh. Jeder Befehl gibt JSON aus.

Um dem Nutzer ein Bild zu zeigen, verwende dein Werkzeug zum Senden von Dateien (SendUserFile in der Claude Code App). Falls du keines hast, gib den absoluten Pfad der Datei an.

Zeige ein Ding pro Runde, und zwar das, was die nächste Entscheidung braucht. Die meisten Leute lesen dies auf einem Telefon. Die Rundenkarte (card) ist der Standard: ein 4:5 Bild, das auf einem Telefon-Chat in voller Breite angezeigt wird. Die Überprüfungsseite (review) ist dieselbe Runde mit Versionen, Halte-zum-Vergleichen und den darunter eingeklappten Bearbeitungen; zeige sie anstelle der Karte, wenn deine Oberfläche eine HTML-Seite anzeigen kann (ein Artefakt, eine HTML-Vorschau, ein Browser). Wo geteilte Dateien als Anhänge ankommen, die der Nutzer antippen muss (claude.ai und die Claude-Apps), veröffentliche ein Artefakt für die Sitzung und aktualisiere es fortlaufend: zuerst die page des Boards, dann review jede Runde, anstatt das Board oder die Karte als Dateien zu teilen. So veröffentlichte Seiten können nichts an den Chat senden, also bitten sie den Nutzer, seine Antwort einzutippen.

Mache das Antworten zu einem einzigen Tippen, wo die Oberfläche es erlaubt. board und preview geben auch replies zurück: ein kleines HTML-Fragment mit Antwortschaltflächen, ohne Bilder, deren Schaltflächen sendPrompt(text) aufrufen. Diese Funktion existiert nur in inline-interaktiven Bildern, die eine angetippte Antwort in den Chat einfügen (auf claude.ai Web und der Claude Desktop-App, das visuelle Werkzeug, z. B. show_widget). Pro Oberfläche:

OberflächeBilderAntwort
claude.ai Web, Claude Desktop-Appdie Artefaktseitenach deiner Nachricht replies wörtlich als inline-Visual rendern
Claude iOS- und Android-Appsdie Artefaktseitegetippt; inline-Visuals werden dort nicht gerendert
Claude Code, andere Agentenreview oder cardgetippt

Du kannst das Web nicht von der Telefon-App unterscheiden, also rendere auf claude.ai jedes Mal replies und beende deine Nachricht immer auch mit der getippten Antwortzeile: wo keine Visuals gerendert werden, trägt der Text sie trotzdem. Lege die Fotos niemals in ein inline-Visual; sein Code wird von dir geschrieben und kann die gerenderten Dateien nicht laden. Wo deine Oberfläche kein solches Visual hat, ignoriere replies. Übergib --note die Änderung, die der Nutzer bemerken würde, keine Selbstüberprüfungs-Korrektur („wärmer auf dem Grat“, nicht „ein Blatt abgedunkelt“); das label des Rezepts steht auf der Karte. Staple niemals die Karte, den Vergleich, die Karten und die Karte in einer Nachricht.

Befehle:

BefehlBeschreibung
doctorversion, Stufe, capabilities und wie man etwas missing bekommt
probewas diese Maschine hat: Python, Pakete, Netzwerk, Festplatte (zur Diagnose von bootstrap)
bootstrap FEATURE… [--from DIR]installiert Pakete und Modelle für people, segment, object, heal, heic, opencv oder all; --from installiert Modelldateien, die der Nutzer angehängt hat, anstatt sie herunterzuladen
inspect PHOTO --fetchlädt die für dieses Foto benötigten Modelle herunter, dann Raster, Statistiken, profile (Genre, Held), gemessene findings, previous_versions und fetched
board PHOTO R1 R2 …das Original plus jedes Rezept nebeneinander, mit too_similar-Warnungen, als Bild (board), eine Telefon-erste Seite (page) zur Auswahl und Ein-Tipp-Auswahlschaltflächen (replies)
masks RECIPE PHOTOKontaktabzug jeder Schrittmaske
preview RECIPE PHOTO --note "…"ein bildschirmfüllendes Rendering, gespeichert als nächste Version vN, plus Bilder und eine Kritik; --redo ersetzt die neueste Version (Selbstüberprüfungs-Korrekturen)
apply RECIPE PHOTOder Export in voller Auflösung, mit einem 100%-Ausschnitt als Nachweis
carry HERO vN PHOTOder Look des Helden als Rezept für ein weiteres Foto in einer Serie: platzierte Schritte und Schritte ohne Wirkung sind dropped, Bänder zum Augenprüfen sind in check, der Beschnitt folgt dem Motiv dieses Fotos, und ein match the set-Schritt passt Helligkeit und Weißabgleich an den Helden an
sheet PHOTO…die Serie in Karussell-Reihenfolge, jedes Foto in der neuesten Version, mit einem Flag pro Foto: noch nicht bearbeitet, andere Form, heller, dunkler, wärmer oder kühler als der Rest. Maximal 12 Fotos

Ein REZEPT ist eine JSON-Datei, eine inline-JSON-Zeichenfolge oder eine gespeicherte Version (v3). Schema: reference/recipe.md. Geschmack, Richtungen, Notizvokabular und die Überprüfungsliste: reference/vibes.md. Lese vibes.md vor deinem ersten Board.

0. Überprüfe die Stufe (erste Verwendung in einer Sitzung)

Führe doctor aus. capabilities sagt, was gerade funktioniert:

FähigkeitLiefert
peopleperson-, subject-, background-, face- und skin-Masken, plus gesichtsbewusste Erkenntnisse, Beschnitte und Kritik (apple auf einem Mac, portable anderswo)
segmentsegment- und sky-Masken, plus szenenbewusste Erkenntnisse
objectobject-Masken
healdie heal-Anpassung
heicHEIC-Fotos
opencvgrabcut-Verfeinerung, schärfere Maskenkanten, Ablenkungserkennung

Globale Schieberegler, Looks, Beschnitte und radiale, lineare, Pinsel-, Polygon-, Luminanz- und Farbmasken funktionieren immer.

Downloads benötigen keine Zustimmung. Lade herunter, was die Arbeit braucht, und erwähne dann, was du heruntergeladen hast, in einer Zeile deiner nächsten Nachricht. Frage nur vorher, wenn ein einzelner Download über 100 MB groß ist.

  • Engine (Mac): wenn missing die Engine auflistet, führe zuerst <base>/setup.sh aus. Es kompiliert die Swift-Engine (kein Download) und installiert ~90 MB Python-Pakete. Sage dies in einer Zeile.
  • Modelle: inspect --fetch (Schritt 1) lädt das Szenenmodell und, außerhalb des Mac, die Personenmodelle herunter, die auch subject- und object-Masken liefern, sodass sie für jedes Foto heruntergeladen werden, unabhängig davon, ob Personen darauf sind. Alles, was eine spätere Bearbeitung benötigt (heal, HEIC), kommt vom Befehl im MissingCapability-Fehler. Führe ihn aus, erwähne ihn in einer Zeile und fahre fort. Jede Sitzung auf claude.ai beginnt neu, daher passiert dies einmal pro Sitzung.
  • unlock in inspect bedeutet, dass eine Fähigkeit noch fehlt. Führe ihren Befehl aus, bevor du zu gezeichneten Formen greifst; ein radialer oder polygoner Ersatz für eine erkannte Maske ist der letzte Ausweg, und du sagst es, wenn du einen verwendest.
  • Wenn ein Download fehlschlägt (fetched[].ok ist false, oder bootstrap meldet fallback), führe probe aus und teile dem Nutzer mit, was blockiert ist. Meistens ist es die Netzwerkeinstellung der Sandbox: Sie können die Domain in ihren Einstellungen erlauben oder die in still_needed genannten Modelldateien an den Chat anhängen, und du führst es erneut mit --from dem Upload-Ordner (/mnt/user-data/uploads auf claude.ai) aus. Hashes werden überprüft, also sind umbenannte Dateien in Ordnung. Arbeite in der Zwischenzeit mit geometrischen Masken und sage dies. Tue nicht so, als ob es mit einer schlechten Näherung funktioniert.

Mehrere Fotos

Bis zu 12 Fotos pro Chat. Bei 13 oder mehr sage: „Das sind mehr, als ich in einem Chat gut bearbeiten kann. In Claude Cowork kannst du den Ordner anhängen und ich bearbeite alle, oder wähle die 12 aus, die hier am wichtigsten sind.“

Lies, was der Nutzer möchte, bevor du bearbeitest. Wenn es unklar ist, frage einmal, in derselben Nachricht wie die Stimmung („Ein Look für alle sechs für ein Karussell, oder jedes einzeln?“):

  • Ein Look, eine Serie („Karussell“, „Foto-Dump“, „passend machen“): wähle das stärkste Bild als Helden und sage in einer Zeile, warum. Führe die Vorgabe und das Board nur für den Helden aus. Führe dann carry HERO vN PHOTO für jedes andere Foto aus und zeige eine Vorschau seines recipe. Es behält den Look, die globalen Schieberegler und die erkannten Masken, verwirft, was an die Koordinaten des Helden gebunden war, und fügt einen match the set-Schritt hinzu. Wiederhole jeden dropped Schritt, den dieses Foto auf seinem eigenen Raster benötigt, überprüfe jedes check-Band mit den Augen und lies notes: es sagt, wann es zu wenige Grautöne gab, um den Weißabgleich anzupassen. Führe dann sheet über die Serie aus und korrigiere jedes markierte Foto, bevor du es zeigst. Zeige das Sheet als Serienansicht. Ein Instagram-Karussell zeigt jede Folie im Format von Foto 1, also schlage 4:5 für alle vor und stelle jede crop_flag als Frage.
  • Jedes einzeln: ein Foto nach dem anderen, in der angegebenen Reihenfolge. Übertrage, was du über ihren Geschmack von Foto zu Foto gelernt hast, und sage, wo du bist („2 von 5“).
  • Welches? („Welches soll ich posten?“): reihe sie ein, eine Zeile Begründung pro Stück (Schärfe, Augen, das Licht), und bearbeite das, das sie auswählen. Lasse niemals ein Foto stillschweigend weg.
  • Wie dieses hier („Mach meines so wie dieses“): die Referenz ist kein Bearbeitungsziel. Gleiche ihren Ton und ihre Farbe an, exportiere sie niemals und behalte sie außerhalb der Serie.

1. Lese das Foto

Führe run.sh inspect PHOTO --fetch aus, sieh dir dann die original- und grid-Bilder an. Das Raster hat gelbe Linien alle 10%, beschriftet mit .1–.9, jedes erkannte Gesicht ist cyan umrandet und nach seinem index nummeriert. Lies jede Koordinate, die du verwendest, von diesem Raster ab, niemals nach Augenmaß.

inspect gibt zuerst summary aus: die Gesichter nach Index (main markiert die, die wichtig sind, nicht Hintergrundgesichter), die Masken, die gerade funktionieren, und die Erkenntnisse in je einer Zeile. Lies es vollständig. Leite inspect nicht durch deinen eigenen Filter: eine handverlesene Teilmenge ist, wie Gesichtsboxen verloren gehen und Gesichter erraten werden. Die vollständigen Felder folgen auf summary, wenn du die Beweise brauchst.

Bilde eine fotografische Einschätzung:

  • Worum es bei dem Foto geht.
  • Wohin das Auge gehen soll (profile.hero).
  • Was funktioniert.
  • Was es zurückhält. Verwende diagnostics.findings (jedes hat gemessene evidence und einen fertigen step) plus das, was Messungen nicht beurteilen können: Ablenkungen, Farbharmonie, der Beschnitt.
  • Was es besonders machen könnte. opportunities steht neben den Erkenntnissen: gemessene Stärken – der Charakter des Lichts (profile.light), wohin das Auge tatsächlich geht, Farbpaare, die sich lohnen, Trennung, die es zu nutzen gilt. Jedes hat evidence und einen move_hint. Hier kommt das Wow her.
  • Die anderen Fotos darin. recrops listet bis zu drei gemessene alternative Rahmungen auf – ein Quadrat auf dem Gesicht, ein Vertikales, ein engerer Ausschnitt auf der belebtesten Region – jeweils mit einer fertigen crop-Box und den Beweisen, warum es funktioniert.

Wenn fetched vorhanden ist, beginne deine Antwort mit einer Zeile, die sagt, was du heruntergeladen hast und warum, in den Worten des Nutzers: „Habe das 4,4 MB Szenenmodell heruntergeladen, damit die Himmels- und Gratbearbeitungen der Skyline folgen.“ Wenn ein Eintrag einen licence-Hinweis trägt, füge ihn in derselben Zeile hinzu, z. B. „(es ist für Forschungs- oder Evaluierungszwecke lizenziert)“. Umgehe niemals stillschweigend eine fehlende Fähigkeit.

Wenn previous_versions vorhanden ist, hast du dieses Foto schon einmal bearbeitet. Biete an, mit der neuesten Version fortzufahren oder neu zu beginnen.

Wenn taste vorhanden ist, ist dies der gezeigte Geschmack des Nutzers aus früheren Sitzungen: bevorzugte Looks und deren Stärke, wie stark die Schieberegler laufen, Vignetten- und Zielgewohnheiten. Lenke das Board in diese Richtung – während du dennoch auf die eigenen Chancen dieses Fotos eingehst.

Wenn profile.signals.face_readable false ist, ist das Gesicht bedeckt oder zu dunkel, um als Haut gelesen zu werden. Die Gesichtserkenntnisse werden übersprungen, und die erkannten Gesichts- und Augenpunkte sind unzuverlässig, also platziere jede Gesichts- oder Augenmaske von einem vergrößerten Raster anstelle von type: face.

2. Briefing: Stimme die Stimmung ab

Du brauchst zwei Dinge:

  • Ziel: Instagram 4:5, LinkedIn quadratisch oder Profilkreis, Story 9:16 oder wie es ist.
  • Stimmung.

Wenn das Ziel unbekannt ist, frage im selben Austausch nach der Stimmung, oder bearbeite im ursprünglichen Seitenverhältnis und biete die Beschnittvarianten als Board-Richtungen an. Zwinge niemals einen Beschnitt auf, den der Nutzer nicht gewählt hat, und schneide niemals eine Person auf ein Seitenverhältnis zu: wenn der Beschnitt-Befund von inspect sagt, dass der Rahmen wählen muss, was behalten wird, frage – rate nicht.

Wenn beide bereits klar sind („mach es stimmungsvoll für Insta“), überspringe das Board und gehe zu Runde 1.

Ansonsten ist das Board deine Frage. Baue drei Richtungen, gemäß vibes.md:

  • Jede Richtung teilt die Basis-Korrekturen, die unabhängig von der Stimmung richtig sind: Erkenntnisse, Ablenkungsentfernung und den Zielbeschnitt nur wenn der Nutzer ein Ziel gewählt hat; ansonsten behalte das ursprüngliche Seitenverhältnis und biete Beschnittvarianten als eigene Richtungen an.
  • Jede Richtung fügt dann ihren eigenen look und die Bereichsanpassungen hinzu, die diese Stimmung bei diesem Foto zum Funktionieren bringen.
  • Die zweite und dritte Richtung beantworten jeweils eine gemessene Chance – das Licht, ein Farbpaar, den Augenpfad, die Trennung – anstatt nur Looks auszutauschen.
  • Wenn ein Recrop eindeutig besser ist als der Rahmen, den du hast („das Porträt in diesem Rahmen“), biete es als eigene Richtung an: seinen Beschnitt, die Basiskorrekturen, einen Look, der dazu passt, beschriftet mit dem, was es ist („C · Das Porträt darin“).
  • Eine Richtung ist die saubere, getreue. Eine ist gewagt: der lichtangepasste Look bei 130–160 Stärke (vibes.md, „Das Licht lesen“); die Kritikprüfungen sind das Netz, das es fängt. Die anderen beiden müssen sich sichtbar unterscheiden.
  • Gib jeder ein label und eine note.

Führe run.sh board PHOTO A.json B.json C.json aus. Wenn too_similar ein Paar auflistet, treibe sie auseinander und führe erneut aus.

Zeige das Board (die page, wo deine Oberfläche Seiten anzeigen kann, ansonsten das board-Bild) und schreibe:

  • Deine Einschätzung des Fotos, in 1–2 Zeilen.
  • A, B und C, je eine Zeile: das Gefühl und was es mit diesem Foto macht.
  • Die Zielfrage, wenn sie unbekannt ist.
  • Wenn inspect large: true (über 30 MP) sagt, frage, ob es in voller Größe bleiben oder verkleinert werden soll:
    • Volle Größe behält jedes Pixel, aber die Datei kann zig MB groß werden.
    • Eine 4096 px lange Kante ist auf jedem Bildschirm noch scharf bei einem Bruchteil der Größe.
  • Beende mit: „Wähle A, B oder C, mische sie (‚B aber dunkler‘) oder beschreibe die Stimmung in eigenen Worten.“

Rendere dann replies, wo deine Oberfläche es kann (siehe „Mache das Antworten zu einem einzigen Tippen…“). Wenn deine Oberfläche keine Visuals rendert, lass die Schaltflächen weg. Gib die Tipp-Antwortzeile immer als Text, auch wenn du Visuals gerendert hast.

3. Erste Runde: Setze den Look um

Nachdem der Nutzer eine Richtung gewählt hat, führe preview RECIPE PHOTO --note "…" aus. Das Rezept ist A.json, B.json oder C.json (oder was immer der Nutzer beschrieben hat – baue ein neues Rezept für gemischte Wünsche, nicht mehr aus drei, und setze seinen label auf den Mix).

Schreibe eine Rundenkarte (card) oder eine Überprüfungsseite (review), die zeigt:

  • Das bearbeitete Foto.
  • Die note (was sich geändert hat).
  • Die critique (was noch nicht stimmt).

Frage dann: „Funktioniert das, oder was soll sich ändern? Sag es in einem Satz – wärmer, heller, ein engerer Beschnitt, weniger Ablenkung – und ich mache die nächste Version.“

4. Zweite Runde bis zum Treffer

Für jede weitere Runde:

  1. Mache Notizen aus der Antwort des Nutzers. Schreibe sie in einfache Worte, nicht in Schieberegler.
  2. Baue das Rezept neu – passe den look (Stärke, Variante) und die Bereichsanpassungen an, basierend auf den Notizen. Füge neue Masken hinzu, die die Notizen brauchen (Himmel, Gesicht, Hintergrund, jedes Objekt). Überspringe keine Ablenkung aus diag, die du noch nicht entfernt hast, es sei denn, der Nutzer hat Nein gesagt.
  3. Führe preview RECIPE PHOTO --note "…" --redo aus, wenn es die vorherige Version ersetzt (was den Fortschritt zeigt), oder ohne --redo, wenn es als neue Version vN+1 gilt (wenn sie das Bild neu ausgerichtet haben).
  4. Zeige die Überprüfungsseite (review, siehe Schritt 3) oder, wo deine Oberfläche keine HTML-Seiten anzeigen kann, die Karte (card).
  5. Wenn die Kritik sagt, dass es fertig ist, und der Nutzer nicht ablehnt: führe apply aus und übergebe das voll aufgelöste Bild mit der Zielbeschriftung („Instagram 4:5“, „LinkedIn-Profil“, „Story“). Das ist der Abschluss.

Manchmal sagt die Kritik „noch nicht fertig“ und der Nutzer sagt „sieht gut aus“. Dann ist es fertig. Vertraue Menschen, die zufrieden sind, und führe apply aus.

Arbeit beenden

Wenn die letzte Runde apply war:

  • Schreibe eine letzte Notiz darüber, was du gelernt hast, für die nächste Sitzung dieses Nutzers: ihren Geschmack, wie stark sie Bearbeitungen mögen, ob sie Vignetten mögen, ob sie die Gesichter heller mögen. Ein Satz.
  • Frage nicht, ob sie noch etwas brauchen. Frage nicht nach Feedback. Frage nicht, ob es ihnen gefällt. Warte.

Referenzen

Siehe reference/recipe.md für das Rezept-Schema. Siehe reference/vibes.md für Richtungen, Notizvokabular und die vollständige Überprüfungsliste – lies es vor deinem ersten Board.

Verwandte Skills