bilder-finden: Bilder suchen, prüfen, herunterladen und zitieren
Das Skript ist scripts/imgs.py im Verzeichnis dieses Skills. Ersetzen Sie in den folgenden Befehlen <skill-dir> durch den vollständigen Pfad des Verzeichnisses, das diese SKILL.md enthält (z. B. C:/Users/<name>/.claude/skills/find-images).
Die Schlüssel stammen aus Umgebungsvariablen oder aus ~/.config/image-search/keys.env (SERPER_API_KEY, PIXABAY_API_KEY, optional EXA_API_KEY). Das Skript liest sie selbst; geben Sie sie niemals aus oder suchen Sie woanders danach. Wenn ein Schlüssel fehlt, gibt das Skript an, welche Quelle es übersprungen hat; fahren Sie mit den anderen Quellen fort und teilen Sie dem Benutzer mit, den Schlüssel wie in der README.md dieses Skills beschrieben einzurichten.
Skript-Meldungen, Blattbeschriftungen und credits.md folgen der Systemsprache (Chinesisch oder Englisch); FIND_IMAGES_LANG=zh|en überschreibt sie.
Die Ausgabe geht in images/ im aktuellen Projekt: _work/<tag>/ enthält Kandidaten und Kontaktbögen, assets/ die ausgewählten Bilder, manifest.json die Quellenaufzeichnung jedes Bildes und credits.md die Credits-Seite.
Zuerst entscheiden, ob die Folie ein gefundenes Bild benötigt
| Inhalt | Vorgehen |
|---|---|
| Daten, Vergleiche, Trends | Nicht suchen; native pptx-Diagramme oder matplotlib verwenden |
| Prozesse, Strukturen, Beziehungen | Nicht suchen; mit Formen oder SVG zeichnen |
| Konzepte, abstrakte Illustration | Zuerst Icons versuchen (icons); in Codex kann eines auch mit imagegen generiert werden |
| Spezifische Produkte, Orte, Personen, Events, Organisationen | Dieses Skill verwenden, um echte Fotos zu finden |
| Stimmungsbilder, Titelbildhintergründe | Dieses Skill mit Pixabay oder Commons als Quelle verwenden |
Quellen auswählen
Quelle (src / mode) | Geeignet für | Abfragesprache | Lizenz |
|---|---|---|---|
web (Serper, d. h. Google Images) | Spezifische Produkte, Nachrichtenereignisse, Personen, chinesischsprachige Themen | Beliebig. Für chinesische Themen hilft das Hinzufügen von 官方图 (offizielles Bild), 高清 (HD) oder 新闻图 (Nachrichtenfoto) | Unbekannte Rechte: nur für interne Präsentationen und Kursarbeiten mit Quellenangabe |
commons (Wikimedia Commons) | Wahrzeichen, Städte, Architektur, Geschichte, Wissenschaft, öffentliche Personen, Organisationslogos | Nur Englisch, 2–4 Wörter (chinesische Abfragen liefern fast keine Ergebnisse) | CC0 frei nutzbar; CC BY / BY-SA erfordern Namensnennung |
pixabay | Stimmungsaufnahmen und generische Szenen (Büro, Teamarbeit, Stadt, Natur, Industrie) | Chinesisch oder Englisch | Kostenlos nutzbar, Namensnennung optional; max. 1280px |
mode: site (offizielle Seite) | Offizielle Bilder von einer Produkt- oder Unternehmensseite | Seiten-URL angeben | Offizielles Seitenbild; Quelle angeben |
mode: icons (Iconify) | Icons aus Open-Source-Sets (MIT, Apache, …) | Nur Englisch, 1–2 Wörter (drone, battery). Bei weniger als 6 Ergebnissen durchsucht das Skript auch jedes Wort einzeln | Die Standardsets sind ohne Namensnennung nutzbar; color wird sowohl auf SVG als auch auf PNG angewendet |
Verwenden Sie für ein spezifisches Thema src web oder web,commons. Wenn die Bilder kostenlos nutzbar sein müssen, verwenden Sie commons,pixabay und lassen Sie web weg.
Arbeitsablauf
1. Den Bildplan schreiben (plan.json, UTF-8)
Ein Eintrag pro Folie; benennen Sie jedes tag nach der Foliennummer und dem Zweck:
[
{"tag": "s01_cover", "q": "Autotransporter Schiff im Hafen", "q_en": "car carrier ship",
"src": "commons,pixabay", "orient": "landscape", "min_side": 1600, "n": 12},
{"tag": "s04_product", "q": "比亚迪 海豹07 官方图", "src": "web", "orient": "landscape", "min_side": 1200, "n": 9},
{"tag": "s05_official", "mode": "site", "url": "https://www.byd.com/cn/", "n": 9},
{"tag": "s07_icon", "mode": "icons", "q": "battery", "color": "#1F4E79", "n": 16}
]
q: Hauptabfrage, verwendet vonwebundpixabay. Sie kann für chinesische Themen auf Chinesisch sein, wie ins04_product.q_en: Englische Abfrage, die voncommonsverwendet wird; Standard istq.orient:landscape/portrait/square/any.min_side: Mindestlänge der langen Seite in Pixeln. Vollbildhintergrund 1600, halbe Folie 1000, kleine Illustration 600. Pixabays kostenlose API liefert maximal 1280px, daher senkt das Skript die Anforderung für Pixabay auf 1280. Das reicht für einen Vollbildhintergrund auf einem Beamer oder einem normalen Monitor, ist auf einem 4K-Bildschirm etwas weich. Wenn ein Vollbild sehr scharf sein muss, bevorzugen Sie die Commons-Kandidaten.n: Anzahl der Kandidaten auf dem Blatt, maximal 16.
2. Suchen und Kontaktbögen erstellen
python <skill-dir>/scripts/imgs.py search --plan plan.json --out images
Einzelne Elemente funktionieren auch: search --tag s04_product --q "..." --src web, oder site --tag .. --url .., icons --tag .. --q ...
Wenn nicht-ASCII-Argumente in der Shell verstümmelt werden (z. B. Chinesisch in Git Bash unter Windows), setzen Sie sie stattdessen in plan.json.
Jedes Element erzeugt einen nummerierten Kontaktbogen images/_work/<tag>/sheet.jpg und eine Textliste mit einer Zeile pro Kandidat (Größe, Quelldomain, Lizenz).
Das erneute Suchen desselben Tags überschreibt dessen Kandidaten und Nummern, wählen Sie also von einem Blatt aus, bevor Sie dieses Tag erneut durchsuchen.
3. Das Blatt ansehen und auswählen
- Öffnen Sie das Blattbild: Lesen Sie in Claude Code, view_image in Codex. Ein Blatt kostet etwa 1.600 Tokens. Öffnen Sie Kandidaten nicht einzeln.
- Überprüfen Sie, ob das Motiv richtig ist (Modell, Ort), die Komposition Platz für Text lässt, kein Wasserzeichen oder großer Textblock vorhanden ist, der Stil zum Rest des Decks passt und die Auflösung ausreicht.
- Wenn nichts passt, erneut suchen. Suchen Sie nach der ersten Suche maximal zweimal erneut, jedes Mal aus einem anderen Blickwinkel statt mit Synonymen: ein spezifischeres oder allgemeineres Thema, eine andere Quelle oder die andere Sprache. Wenn auch das fehlschlägt, fallen Sie auf Icons oder ein reines Textlayout zurück oder informieren Sie den Benutzer.
- Bei Konflikt zwischen Themeneignung und Lizenz: Wenn die Anfrage besagt, dass kostenlose Bilder bevorzugt werden, suchen Sie zuerst
commons,pixabay; wenn das erneute Suchen immer noch nichts zum Thema findet, verwenden Sie einweb-Bild und kennzeichnen Sie es in Ihrem Bericht als "unbekannte Rechte". Wenn die Anfrage besagt, dass die Bilder kostenlos nutzbar sein müssen oder veröffentlicht werden sollen, verwenden Sie niemalsweb; fallen Sie stattdessen zurück. - Die Blattbeschriftungen zeigen Größe, Lizenz (Commons zeigt die genaue Lizenz, z. B. CC BY-SA 4.0) und Quelldomain; die Textliste zeigt dieselben Informationen.
4. Die ausgewählten Bilder herunterladen
python <skill-dir>/scripts/imgs.py pick --tag s04_product --ids 6 --out images
Das Skript lädt das Originalbild herunter (Commons über sein Standard-Thumbnail mit 1920px; lange Seiten über 2560px werden skaliert; webp/avif werden zu jpg/png) und zeichnet es in manifest.json auf.
Wenn pick einen degradierten Download meldet ("degraded": true im Manifest: Hotlink-Schutz hat das Original blockiert und nur ein Thumbnail kam durch), wählen Sie einen anderen Kandidaten.
5. Bilder einfügen und die Credits-Seite erstellen
- Beim Einfügen nach
file,widthundheightinmanifest.jsongehen; zuschneiden, um zum Layout zu passen, und niemals strecken. Icons kommen sowohl als PNG als auch als SVG (dassvg-Feld). - Führen Sie
credits --out imagesaus, umcredits.mdzu schreiben und seinen Folien-Credits-Abschnitt auf die letzte (Quellen-)Folie zu setzen. Wenn es einen Notizabschnitt gibt, geben Sie diesen an den Benutzer weiter. - Wenn das gesamte Deck fertig ist, rendern Sie es und überprüfen Sie wie üblich die Screenshots. Nur dann muss der Hauptagent Bilder ansehen.
Kontext sparen: Drei oder mehr Bilder an einen Unteragenten übergeben
Der Hauptagent schreibt nur plan.json und liest das Manifest. Das Anzeigen von Blättern, das Auswählen und Herunterladen gehen an einen Unteragenten, sodass Kandidatenbilder niemals in den Hauptkontext gelangen. Prompt-Vorlage für den Unteragenten:
Lesen Sie <skill-dir>/SKILL.md und befolgen Sie sie, um Bilder für das Deck in <Projektpfad> zu finden.
Bildplan: <Pfad zu plan.json> (Tag, Zweck und Folienkontext für jedes Element unten).
<Für jedes Element: was die Folie sagt, wo das Bild platziert wird, Quer- oder Hochformat, Stil>
Sehen Sie sich für jedes Element das Blatt einmal an und wählen Sie 1 Bild (höchstens 1 Ersatz); wählen Sie es in <Projekt>/images aus. Wenn nichts passt, suchen Sie mit anderen Wörtern erneut, höchstens zwei weitere Runden.
Geben Sie für jedes Tag zurück: die gewählte ID, den Dateipfad, die Größe, die Lizenzklasse und eine einzeilige Begründung; listen Sie Tags ohne passendes Bild und den Grund auf. Geben Sie nicht die Bilder selbst zurück.
Lizenzregeln
- Kostenlos nutzbar (CC0, Pixabay, Open-Source-Icons): jede Verwendung. Die Nennung von CC0- und Pixabay-Bildern ist eine Höflichkeit, keine Pflicht.
- Namensnennung erforderlich (CC BY / BY-SA): Autor und Lizenz auf der Quellenfolie angeben. Ein modifiziertes BY-SA-Bild muss unter derselben Lizenz geteilt werden.
- Offiziell / unbekannte Rechte (
site,web): nur für interne Präsentationen, Kursarbeiten und akademische Vorträge mit Quellenangabe. Vor einer Veröffentlichung oder kommerziellen Nutzung den Benutzer informieren und durch kostenlose Bilder ersetzen. - Fotos von Personen: öffentliche Personen im Nachrichtenkontext sind in Ordnung; verwenden Sie keine Fotos von Privatpersonen als Dekoration.
Kontingente und Grenzen
- Serper: 2.500 kostenlose Abfragen bei der Anmeldung. Eine Suche nach 20 Ergebnissen (wenn
n> 6) kostet 2 Abfragen, 10 Ergebnisse kosten 1. Danach wird aufgeladen, ab 50 $ für 50.000 Abfragen, Aufladungen verfallen nach 6 Monaten. Der verbleibende Saldo ist im serper.dev-Dashboard einsehbar. - Pixabay: 100 Anfragen pro Minute; Bilder dürfen nicht hotlinkiert werden (das Skript lädt sie herunter).
- Commons: nur Standard-Thumbnail-Breiten (960/1280/1920/3840) können abgerufen werden; Suche auf Englisch.
- Iconify: kostenlos, kein Schlüssel. Die Konvertierung von SVG in PNG benötigt Node.js mit sharp. Wenn es fehlt, teilt das Skript dies mit; verwenden Sie einen anderen Ansatz oder bitten Sie den Benutzer,
npm install -g sharpauszuführen. - Exa: wird nur verwendet, wenn der
site-Modus keine Bilder auf der Seite selbst finden kann; es verbraucht Exa-Guthaben.