Редактирование изображений
Правка загруженного изображения по указаниям на естественном языке
POST /api/v1/images/edits принимает multipart/form-data. Требуемое право:
images:edit.
Поля формы
| Поле | Тип | Обязательно | По умолчанию | Правила |
|---|---|---|---|---|
image | file | да | — | PNG, JPEG или WebP; не более 10 МиБ и 40 млн пикселей после декодирования |
prompt | string | да | — | указание по правке, 5–2 000 символов |
aspect_ratio | string | нет | зависит от исходника | те же публичные соотношения, что и при генерации |
resolution | string | нет | 2K | 2K или 4K |
count | integer | нет | 1 | 1–4 |
Сигнатуры файлов проверяются независимо от заявленного MIME-типа. Некорректные,
слишком большие или небезопасные изображения дают 400 INVALID_REQUEST либо
HTTP 413 с тем же публичным кодом.
Кредиты
| Разрешение | Кредитов за результат |
|---|---|
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"},
)Загруженный исходник — это закрытые входные данные задачи, он никогда не возвращается в ответах по задачам и в логах. Повторные идемпотентные загрузки отбрасываются, а принятые исходники удаляются после получения окончательного результата.
Размеры результата
2K и 4K обозначают уровни размера, а не фиксированную длину стороны. В таблице указаны фактические размеры в пикселях. Неподдерживаемые пропорции возвращают HTTP 400 (INVALID_REQUEST) до создания задания или резервирования кредитов. При редактировании без aspect_ratio пропорции исходника должны быть в пределах от 1:3 до 3:1 и соответствовать уровню размера (не менее 6 млн пикселей для 4K); иначе укажите поддерживаемые пропорции результата.
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 |

Документация API