mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
All 181 docs markdown files translated into 20 languages (apps/docs/<locale>/**). Companion to the i18n code PR; admin-merged because the file count exceeds GitHub's per-PR CI trigger limit. Validated by pnpm i18n:check (all surfaces, 0 stale/missing) and a clean all-locale docs build.
3.5 KiB
3.5 KiB
description, i18n_source_hash, i18n_provenance, i18n_output_hash
| description | i18n_source_hash | i18n_provenance | i18n_output_hash |
|---|---|---|---|
| Mở rộng canvas của hình ảnh bằng outpainting AI, kéo dài nó theo mọi hướng và lấp đầy các vùng mới cho khớp với ảnh gốc. | 1b00db4ed40d | human | fc25947c5ccc |
AI Canvas Expand
Mở rộng canvas của một hình ảnh bằng cách lấp đầy dựa trên AI (outpainting). Kéo dài hình ảnh theo mọi hướng và lấp đầy các vùng mới bằng nội dung do AI tạo ra khớp với hình ảnh hiện có.
API Endpoint
POST /api/v1/tools/image/ai-canvas-expand
Xử lý: Bất đồng bộ (trả về 202, hỏi vòng /api/v1/jobs/{jobId}/progress để lấy trạng thái qua SSE)
Gói mô hình: object-eraser-colorize (1-2 GB)
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| file | file | Yes | - | Tệp hình ảnh (multipart) |
| extendTop | integer | No | 0 |
Số pixel kéo dài ở phía trên |
| extendRight | integer | No | 0 |
Số pixel kéo dài ở bên phải |
| extendBottom | integer | No | 0 |
Số pixel kéo dài ở phía dưới |
| extendLeft | integer | No | 0 |
Số pixel kéo dài ở bên trái |
| tier | string | No | "balanced" |
Cấp chất lượng: fast, balanced, high |
| format | string | No | "auto" |
Định dạng đầu ra: auto, png, jpg, jpeg, webp, tiff, gif, avif, heic, heif, jxl |
| quality | integer | No | 95 |
Chất lượng đầu ra (1-100) |
Ít nhất một hướng kéo dài phải lớn hơn 0.
Example Request
curl -X POST http://localhost:1349/api/v1/tools/image/ai-canvas-expand \
-F "file=@photo.jpg" \
-F 'settings={"extendTop":200,"extendBottom":200,"extendLeft":100,"extendRight":100,"tier":"balanced"}'
Response
Initial Response (202 Accepted)
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"async": true
}
Progress (SSE at /api/v1/jobs/{jobId}/progress)
event: progress
data: {"phase":"processing","stage":"Expanding canvas...","percent":50}
Final Result (via SSE)
{
"phase": "complete",
"percent": 100,
"result": {
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/{jobId}/photo_extended.png",
"previewUrl": "/api/v1/download/{jobId}/preview.webp",
"originalSize": 300000,
"processedSize": 520000
}
}
Notes
- Yêu cầu cài đặt gói mô hình
object-eraser-colorize(1-2 GB). - Sử dụng outpainting dựa trên LaMa để tạo nội dung cho các vùng đã mở rộng.
- Tham số
tierđánh đổi tốc độ lấy chất lượng:fasttạo kết quả nhanh nhưng có thể có nhiễu,highmất nhiều thời gian hơn nhưng tạo ra phần lấp đầy mượt mà, mạch lạc hơn. - Giá trị kéo dài tính bằng pixel. Kích thước hình ảnh cuối cùng sẽ là: chiều rộng gốc + extendLeft + extendRight nhân chiều cao gốc + extendTop + extendBottom.
- Với các định dạng đầu ra không thể xem trước trên trình duyệt (HEIC, JXL, TIFF), một bản xem trước WebP được tạo cùng với đầu ra chính.
- Hỗ trợ các định dạng đầu vào HEIC/HEIF, RAW, TGA, PSD, EXR và HDR thông qua giải mã tự động.