Adobe – Fotos und Videos skalieren
Skaliert Bilder oder Videos auf benutzerdefinierte Abmessungen, Seitenverhältnisse oder benannte Größen.
Für soziale Medien-Formatsets (Instagram, TikTok usw.) → stattdessen den Skill adobe-create-social-variations verwenden.
Tool-Referenz
| Schritt | Tool | Hinweise |
|---|---|---|
| Dateiauswahl öffnen | asset_add_file | Gibt presignedAssetUrl, assetId und mediaType zurück |
| Asset in CC suchen | asset_search | Ergebnis über asset_add_file für Bilder neu bereitstellen; für Videos direkt id verwenden |
| PSD/AI rendern | document_render_vector | Konvertiert vor der Skalierung in JPEG |
| Bild skalieren | image_crop_and_resize | Ein Aufruf pro Dimension; standardmäßig reframe |
| Ausgaben in Vorschau anzeigen | asset_preview_file | Alle Ausgaben in einem einzigen Aufruf |
| In CC hochladen (Start) | asset_initialize_file_upload | Erster Aufruf im Block-Upload-Pipeline |
| In CC hochladen (Ende) | asset_finalize_file_upload | Zweiter Aufruf; gibt signierte CC-URL für das Board zurück |
| Firefly-Board erstellen | create_firefly_board | import_adobe_storage mit der finalen URL übergeben |
| Video skalieren | video_resize | Gibt statusId für Polling zurück |
| Video-Skalierung abfragen | resizeVideoPoll | Deferred Tool – vor dem Aufruf laden |
Workflow
Schritt 0 – Adobe-Tools initialisieren
Zuerst adobe_mandatory_init aufrufen. Dies gibt Dateibehandlungsregeln und Tool-Routing-Hinweise zurück, die für den restlichen Workflow erforderlich sind.
{ "skill_name": "adobe-resize-photos-and-videos", "skill_version": "1.0.1" }
Schritt 1 – Entitlement-Prüfung
Nachdem adobe_mandatory_init bestätigt hat, dass der „Adobe for Creativity“-Connector aktiv ist, prüfen Sie, welche Tools über den Connector verfügbar sind, indem Sie die Liste mit der obigen Tool-Referenz-Tabelle abgleichen.
SOFORTIGE MASSNAHMEN ERFORDERLICH
Schritt 1: Wenn Parameter fehlen oder mehrdeutig sind → den mehrstufigen Erfassungsprozess ausführen (Schritt 2 unten).
Schritt 2: Wenn keine Datei hochgeladen ist, Schritt 3 ausführen (asset_add_file({})).
Schritt 3: Bild vs. Video erkennen und zum richtigen Workflow leiten (Schritt 5 Bild/Video).
Schritt 2 – Mehrstufige Erfassung
Diesen Schritt ausführen, wenn der Benutzer keine vollständigen Parameter (Typ + Abmessungen + Fit-Modus) angegeben hat. Vollständig überspringen, wenn die Nachricht des Benutzers bereits alle drei enthält.
AskUserQuestion verwenden, um Parameter schrittweise zu erfassen.
Schritt 2a – Typ
AskUserQuestion([{
question: "Foto oder Video?",
type: "single_select",
options: ["Foto", "Video"]
}])
Schritt 2b – Abmessungen
Bei Foto (multi_select – Benutzer kann eine oder mehrere auswählen):
AskUserQuestion([{
question: "Abmessungen – wählen Sie alle, die Sie benötigen",
type: "multi_select",
options: [
"1080 × 1080 – Instagram Quadrat",
"1080 × 1350 – Instagram Hochformat",
"1080 × 1920 – Stories / Reels",
"1920 × 1080 – YouTube / Querformat",
"1280 × 720 – YouTube Thumbnail",
"1200 × 675 – X / Twitter Beitrag",
"1200 × 630 – Facebook / OG Bild",
"1080 × 566 – LinkedIn Beitrag",
"2560 × 1440 – YouTube Banner",
"3840 × 2160 – 4K / UHD",
"400 × 400 – Profil / Avatar",
"2480 × 3508 – A4 Druck (300 dpi)",
„Benutzerdefiniert – Ich gebe es ein“
]
}])
Wenn der Benutzer „Benutzerdefiniert“ auswählt → nachfragen: „Geben Sie Ihre benutzerdefinierten Abmessungen ein (z.B. 1500×800):“
Wenn der Benutzer mehrere Voreinstellungen auswählt → image_crop_and_resize einmal pro Dimension ausführen,
dabei dieselbe Quell-URI und dieselben Parameter verwenden. Alle Ausgaben am Ende zusammen in der Vorschau anzeigen.
Bei Video (multi_select – Benutzer kann eine oder mehrere auswählen):
AskUserQuestion([{
question: "Abmessungen – wählen Sie alle, die Sie benötigen",
type: "multi_select",
options: [
"1080 × 1920 – Reels / TikTok / Stories",
"1920 × 1080 – YouTube / Querformat",
"1080 × 1080 – Quadratischer Beitrag",
"1280 × 720 – YouTube 720p",
"3840 × 2160 – 4K / UHD",
"854 × 480 – SD / 480p",
„Benutzerdefiniert – Ich gebe es ein“
]
}])
Wenn der Benutzer mehrere Video-Voreinstellungen auswählt → einen separaten video_resize-Auftrag pro Dimension einreichen,
jeden bis zum Abschluss abfragen, alle Ausgaben zusammen in der Vorschau anzeigen.
Schritt 2c – Fit-Modus
Bei Foto (single_select):
AskUserQuestion([{
question: "Fit-Modus",
type: "single_select",
options: [
"Reframe – zuschneiden, um auszufüllen",
"Pad – Letterbox, kein Zuschnitt",
„Extract – Motiv isolieren“
]
}])
Bei Video (single_select):
AskUserQuestion([{
question: "Fit-Modus",
type: "single_select",
options: [
„Letterbox – Seitenverhältnis beibehalten“,
„Crop – ausfüllen, keine Balken“,
„Stretch – exakt erzwingen (verzerren)“
]
}])
Schritt 2d – Smart Focus (nur Foto)
AskUserQuestion([{
question: "Smart Focus – worauf soll der Zuschnitt zentriert werden?",
type: "single_select",
options: [
„Motiv“,
„Gesicht / Porträt“,
„Oberkörper“,
„Zentrum (geometrisch)“,
„Benanntes Objekt – Ich beschreibe es“
]
}])
Wenn der Benutzer „Benanntes Objekt“ auswählt → nachfragen: „Beschreiben Sie das Objekt (z.B. 'das rote Auto', 'das Logo'):“
Schritt 2e – Optionen (nur Foto)
AskUserQuestion([{
question: "Zusätzliche Optionen?",
type: "multi_select",
options: [
„Batch – mehrere Bilder“,
„Ausgabe: JPEG“,
„Ausgabe: PNG“
]
}])
Schritt 2f – Quelle (nur Video)
AskUserQuestion([{
question: "Wo befindet sich das Video?",
type: "single_select",
options: [
„Vom Gerät hochladen“,
„Aus Creative Cloud“
]
}])
Schritt 3 – Quelldatei abrufen
Wichtig – /mnt/user-data/uploads/-Pfade sind KEINE verwendbaren URLs.
Selbst wenn der Benutzer eine Datei angehängt hat und sie im Kontext unter einem /mnt/user-data/uploads/-Pfad erscheint,
können Sie diesen Pfad nicht an ein Adobe-Tool übergeben. Rufen Sie asset_add_file() auf, um die Datei bereitzustellen – /mnt/user-data/uploads/-Pfade können von Adobe-Tools nicht abgerufen werden.
FALSCH ❌ imageURI: "/mnt/user-data/uploads/photo.jpg"
FALSCH ❌ imageURI: "file:///mnt/user-data/uploads/photo.jpg"
RICHTIG ✅ asset_add_file() aufrufen → presignedAssetUrl aus dem Auswahlkontext verwenden
Noch keine Datei → die Auswahl sofort öffnen:
asset_add_file()
Typ aus dem zurückgegebenen mediaType erkennen:
image/*→ BILD-WORKFLOWvideo/*→ VIDEO-WORKFLOW
Schritt 4 – Zielabmessungen ermitteln
| Benutzer sagt | Auflösung zu |
|---|---|
1920×1080, 1920x1080 | width: 1920, height: 1080 |
4K | 3840 × 2160 |
HD, 1080p | 1920 × 1080 |
720p | 1280 × 720 |
480p | 854 × 480 |
A4 Druck | 2480 × 3508 (300 DPI Hochformat) |
Letter Druck | 2550 × 3300 (300 DPI Hochformat) |
16:9, 1:1, 4:5, 9:16 | Verhältnis-String → als output: "16:9" übergeben |
square | output: "1:1" |
Nur Breite (800px breit) | width: 800, Verhältnis-String verwenden, um Seitenverhältnis beizubehalten |
Wenn kein Ziel im Formular und auch keine Angabe in der Benutzernachricht vorhanden ist → nachfragen:
„Welche Abmessungen benötigen Sie? (z.B. 1920×1080, A4, 16:9)“
BILD-WORKFLOW
Schritt 5 (Bild) – Gültige URI-Quellen
Nur diese funktionieren als imageURI:
presignedAssetUrlvonasset_add_file()✅outputUrlvon einem vorherigen Tool-Aufruf ✅- Öffentliche HTTPS-URL vom Benutzer ✅
Nicht als imageURI verwendbar:
/mnt/user-data/uploads/-Pfade ❌renditionURLvonasset_searchdirekt ❌file://-URIs ❌
| Quelle | Auflösung |
|---|---|
| Hochgeladene Datei | asset_add_file() → presignedAssetUrl |
| CC-Speicher-Asset | asset_search → über asset_add_file() neu bereitstellen → presignedAssetUrl |
| Vorherige Tool-Ausgabe | Direkt outputUrl verwenden |
| PSD / AI-Datei | document_render_vector (JPEG, 300 DPI) → outputPresignedUrl |
Schritt 6 (Bild) – Fit-Modus
| Absicht | Modus | Hinweise |
|---|---|---|
| „Auf W×H skalieren“ / Standard | reframe | Größter Zuschnitt im Zielverhältnis, zentriert – keine Verzerrung |
| „Kein Zuschnitt“, „Letterbox“, „hineinpassen“ | pad | Leeren Raum mit Weiß füllen |
| „Motiv isolieren“, „enger Zuschnitt“ | extract | Enger Zuschnitt um erkannten Bereich |
Standard: reframe. Nur ändern, wenn der Benutzer explizit ist.
⛔
fit: "extract"ist nicht kompatibel mit expliziten{ width, height }-Angaben – es dehnt das Bild. Verwenden Sie einen Verhältnis-String oder lassen Sieoutputweg.
Schritt 7 (Bild) – image_crop_and_resize aufrufen
image_crop_and_resize({
imageURI: presignedAssetUrl,
options: {
output: { width: 1920, height: 1080 }, // oder "16:9"
fit: "reframe",
focus: "subject", // oder "face", "upper_body", { prompt: "the car" }, { x:0.5, y:0.5 }
quality: 7
},
outputFileType: "jpeg" // oder "png", wenn Transparenz benötigt wird
})
// result.outputUrl → für Vorschau oder Verkettung verwenden
Fokus-Leitfaden:
"subject"– Standard; Ganzkörpererkennung, Landschaften, Objekte"face"– Porträts, Kopfaufnahmen"upper_body"– Zuschnitte von der Brust aufwärts{ prompt: "the logo" }– benanntes Objekt aus der Benutzereingabe{ x: 0.5, y: 0.5 }– geometrischer Mittelpunkt (kein klares Motiv)
Schritt 8 (Bild) – Batch
Wenn Batch im Formular ausgewählt wurde ODER der Benutzer mehrere Dateien bereitgestellt hat:
asset_add_file()für jede Datei aufrufen, um einzelne signierte URLs zu erhaltenimage_crop_and_resizefür jede mit denselben Parametern aufrufen- Alle
outputUrl-Werte sammeln asset_preview_filemit allen Ausgaben in einem einzigen Aufruf aufrufen
Die Aufrufe werden in dieser Umgebung sequenziell ausgeführt. Bei mehr als 10 Bildern vor dem Start die Bestätigung des Benutzers einholen.
Seitenweise Verarbeitung über mehrere Turns hinweg (Batches >20): Bei großen Stapeln kann der Gesprächskontext gefüllt werden, bevor alle Bilder verarbeitet sind, wodurch Claude mitten im Batch pausiert. Dies ist zu erwarten – kein Fehler. Wenn es passiert:
- Angeben, wie viele abgeschlossen sind und wie viele noch übrig sind (z.B. „20 / 24 erledigt – sagen Sie 'weiter' für den Rest“)
- Warten, bis der Benutzer bestätigt, bevor fortgefahren wird
- Beim Fortsetzen mit dem nächsten unverarbeiteten Bild weitermachen und bis zum Ende fortfahren
- Alle Ausgaben zusammen in der Vorschau anzeigen, erst nachdem das letzte Bild abgeschlossen ist
Schritt 9 (Bild) – Vorschau + Bereitstellung + Firefly-Board
asset_preview_file({
assets: [
{ name: "photo_1920x1080.jpg", presignedAssetUrl: result.outputUrl },
// alle erfolgreichen Ausgaben
]
})
In CC speichern + Firefly-Board erstellen
Nach der Vorschau jede Ausgabe mit der Block-Upload-Pipeline in den CC-Speicher hochladen
(asset_initialize_file_upload → PUT-Chunk → asset_finalize_file_upload).
Anschließend das Firefly-Board-Tool mit den finalen Ausgabe-URLs aufrufen:
create_firefly_board({
import_adobe_storage: [
final_output_url_1,
final_output_url_2,
// ...
]
})
✅ Bestätigt funktionierend (Stage):
import_adobe_storagemit signierten URLs vonasset_finalize_file_uploadfüllt Boards erfolgreich.❌ Funktioniert nicht:
import_generic_assetsmit CC URNs (urn:aaid:sc:US:...) – USS-Indizierungsverzögerung führt zu leeren Boards.Wenn die Board-Erstellung fehlschlägt oder die URL fehlerhaft ist, den Board-Link weglassen (erneute Versuche helfen nicht).
Nach dem Board-Schritt die Zusammenfassung ausgeben:
✅ Erledigt! [N] Bild(er) skaliert und bereit.
📥 Download:
• resized_1920x1080.jpg → <cc_storage_url>
[einzeln auflisten, wenn N ≤ 3, oder einzelnen Ordner-Link, wenn N > 3]
🎯 Im Firefly-Board ansehen → <board_url> ← weglassen, wenn Board-Erstellung fehlgeschlagen
VIDEO-WORKFLOW
Schritt 5 (Video) – Asset-ID abrufen
Video-Tools benötigen assetId, keine URL.
| Quelle | Vorgehen |
|---|---|
Hochladen über asset_add_file | Zurückgegebene assetId verwenden |
| CC-Speicher | asset_search mit filters.mediaType: "video/mp4" → Asset id verwenden |
Schritt 6 (Video) – Allgemeine Ziele
| Name | Abmessungen |
|---|---|
| 4K / UHD | 3840 × 2160 |
| 1080p / HD | 1920 × 1080 |
| 720p | 1280 × 720 |
| 480p | 854 × 480 |
| Hochformat 9:16 | 1080 × 1920 |
| Quadrat 1:1 | 1080 × 1080 |
Schritt 7 (Video) – video_resize aufrufen
⚠️
resizeVideoPollist ein Deferred Tool – zuerst laden, bevor das Polling versucht wird. Direkte Aufrufe ohne Laden schlagen mit einem Fehler „nicht geladen“ fehl.
video_resize({
assetId: videoAssetId,
width: targetW,
height: targetH,
mode: "letterbox" // Standard; siehe Modus-Tabelle unten
})
// Gibt { jobStatus: "pending", statusId } zurück
Modus – exakte API-Werte verwenden (nicht benutzerfreundliche Bezeichnungen):
| Benutzer sagt | API-Wert | Verhalten |
|---|---|---|
| „Anpassen“, „Seitenverhältnis beibehalten“, „Letterbox“ | "letterbox" | Behält das Seitenverhältnis bei, fügt schwarze Balken hinzu (Standard) |
| „Ausfüllen“, „Zuschneiden zum Ausfüllen“, „Keine Balken“ | "crop" | Schneidet Kanten zu, um das Ziel exakt auszufüllen |
| „Strecken“, „Exakt erzwingen“ | "stretch" | Verzerrt auf das genaue Ziel |
ℹ️ Auto-Reframing für Videos ist in Claude noch nicht verfügbar, aber ständig kommen neue Tools hinzu. Wenn Sie mehr Kontrolle benötigen, versuchen Sie es mit Adobe Premiere.
Polling: das Deferred Tool resizeVideoPoll laden, bevor es aufgerufen wird – direkte Aufrufe schlagen mit „nicht geladen“ fehl.
// Schritt 1: Deferred Tool laden
…