Aus Base64-Daten
Hast du Base64-Daten (einen Canvas-Export, eine Data-URI, einen Inline-Anhang)? Dekodiere und speichere sie zuerst in deinem eigenen Speicher, dann übergib die resultierende öffentliche URL in input.
Überblick
Die Generierungs-API akzeptiert URLs, keine rohen Base64-Payloads — große Base64-Bodies sind langsam, erreichen Anfragegrößenlimits und können vom Upstream-Renderer nicht wiederholt werden. Die Datei zuerst zu speichern ist schneller und zuverlässiger.
Speichern, dann referenzieren
- Dekodiere den Base64-String in Bytes.
- Lade die Bytes in deinen Objektspeicher (S3 / OSS / COS / R2) oder Static-File-Server hoch.
- Verwende die öffentliche (oder vorsignierte) URL der Datei als Eingabewert.
Node.js-Beispiel
JavaScript
import { S3Client, PutObjectCommand } from "@aws-sdk/client-s3";
const s3 = new S3Client({ region: "us-east-1" });
async function base64ToUrl(b64, key) {
// strip a data-URI prefix if present
const data = Buffer.from(b64.replace(/^data:.*?;base64,/, ""), "base64");
await s3.send(new PutObjectCommand({
Bucket: "my-public-bucket", Key: key,
Body: data, ContentType: "image/png",
}));
return `https://my-public-bucket.s3.amazonaws.com/${key}`;
}
const imageUrl = await base64ToUrl(canvasData, "inputs/photo.png");
await fetch("https://97ai.97claude.com/api/generate", {
method: "POST",
headers: { "Authorization": "Bearer " + process.env.API_KEY, "Content-Type": "application/json" },
body: JSON.stringify({
model: "google/nano-banana-image-to-image",
input: { image_url: imageUrl, prompt: "enhance lighting" },
}),
});