Modification d'images
Modifier une image envoyée à l'aide d'instructions en langage naturel
POST /api/v1/images/edits accepte multipart/form-data. Portée requise :
images:edit.
Champs du formulaire
| Champ | Type | Obligatoire | Défaut | Règles |
|---|---|---|---|---|
image | file | oui | — | PNG, JPEG ou WebP ; 10 Mio et 40 millions de pixels décodés au maximum |
prompt | string | oui | — | instruction de modification, 5 à 2 000 caractères |
aspect_ratio | string | non | dépend de la source | mêmes rapports publics que la génération |
resolution | string | non | 2K | 2K ou 4K |
count | integer | non | 1 | 1 à 4 |
Les signatures de fichier sont vérifiées indépendamment du type MIME déclaré.
Une image invalide, trop volumineuse ou dangereuse renvoie
400 INVALID_REQUEST, ou HTTP 413 avec le même code public.
Crédits
| Résolution | Crédits par sortie |
|---|---|
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'image envoyée est une entrée privée du job et n'est jamais renvoyée dans les réponses de job ou de journal. Les envois idempotents en double sont écartés ; les sources acceptées sont supprimées après un résultat terminal.
Dimensions de sortie
2K et 4K sont des niveaux de taille, pas des longueurs de côté fixes. Le tableau indique les dimensions réelles en pixels. Les proportions non prises en charge renvoient HTTP 400 (INVALID_REQUEST) avant la création du travail ou la réservation de crédits. Pour une modification sans aspect_ratio, la proportion source doit être comprise entre 1:3 et 3:1 et respecter le niveau demandé (au moins 6 millions de pixels en 4K) ; sinon, indiquez une proportion de sortie prise en charge.
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 |

Documentation API