Modifica di immagini
Modificare un'immagine caricata con istruzioni in linguaggio naturale
POST /api/v1/images/edits accetta multipart/form-data. Ambito richiesto:
images:edit.
Campi del modulo
| Campo | Tipo | Obbligatorio | Predefinito | Regole |
|---|---|---|---|---|
image | file | sì | — | PNG, JPEG o WebP; al massimo 10 MiB e 40 milioni di pixel decodificati |
prompt | string | sì | — | istruzione di modifica, 5–2.000 caratteri |
aspect_ratio | string | no | dipende dall'originale | gli stessi rapporti pubblici della generazione |
resolution | string | no | 2K | 2K o 4K |
count | integer | no | 1 | 1–4 |
Le firme dei file sono verificate indipendentemente dal tipo MIME dichiarato.
Immagini non valide, troppo grandi o non sicure restituiscono
400 INVALID_REQUEST, oppure HTTP 413 con lo stesso codice pubblico.
Crediti
| Risoluzione | Crediti per output |
|---|---|
2K | 10 |
4K | 20 |
cURL
curl https://sci-draw.com/api/v1/images/edits \
-H 'Authorization: Bearer sd_YOUR_KEY' \
-H 'Idempotency-Key: revise-figure-7-v2' \
-F 'image=@figure.png;type=image/png' \
-F 'prompt=Move the legend below the diagram and increase label contrast' \
-F 'resolution=2K' \
-F 'count=1'JavaScript
const form = new FormData();
form.set('image', file);
form.set('prompt', 'Move the legend below the diagram');
const response = await fetch('https://sci-draw.com/api/v1/images/edits', {
method: 'POST',
headers: { Authorization: `Bearer ${apiKey}`, 'Idempotency-Key': crypto.randomUUID() },
body: form,
});Python
with open("figure.png", "rb") as image:
response = requests.post(
"https://sci-draw.com/api/v1/images/edits",
headers={"Authorization": f"Bearer {api_key}", "Idempotency-Key": str(uuid.uuid4())},
files={"image": ("figure.png", image, "image/png")},
data={"prompt": "Move the legend below the diagram"},
)L'immagine caricata è input privato del job e non viene mai restituita nelle risposte di job o di log. I caricamenti idempotenti duplicati vengono scartati; gli originali accettati sono rimossi dopo un risultato terminale.
Dimensioni di uscita
2K e 4K sono livelli di dimensione, non lunghezze fisse dei lati. La tabella mostra i pixel effettivi. Le proporzioni non supportate restituiscono HTTP 400 (INVALID_REQUEST) prima di creare il processo o riservare crediti. Per le modifiche senza aspect_ratio, la proporzione originale deve essere compresa tra 1:3 e 3:1 e soddisfare il livello richiesto (almeno 6 milioni di pixel per 4K); altrimenti specifica una proporzione supportata.
aspect_ratio | 2K | 4K |
|---|---|---|
| 1:1 | 2048×2048 | 2880×2880 |
| 16:9 | 2560×1440 | 3840×2160 |
| 9:16 | 1440×2560 | 2160×3840 |
| 4:3 | 2304×1728 | 3264×2448 |
| 3:4 | 1728×2304 | 2448×3264 |
| 3:2 | 2496×1664 | 3504×2336 |
| 2:3 | 1664×2496 | 2336×3504 |
| 5:4 | 2240×1792 | 3200×2560 |
| 4:5 | 1792×2240 | 2560×3200 |
| 21:9 | 3136×1344 | 3808×1632 |

Documentazione API