This page was machine-translated. Spotted a mistake?Help improve it.
Skip to content

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

ParameterTypeRequiredDefaultDescription
filefileYes-Tệp hình ảnh (multipart)
extendTopintegerNo0Số pixel kéo dài ở phía trên
extendRightintegerNo0Số pixel kéo dài ở bên phải
extendBottomintegerNo0Số pixel kéo dài ở phía dưới
extendLeftintegerNo0Số pixel kéo dài ở bên trái
tierstringNo"balanced"Cấp chất lượng: fast, balanced, high
formatstringNo"auto"Định dạng đầu ra: auto, png, jpg, jpeg, webp, tiff, gif, avif, heic, heif, jxl
qualityintegerNo95Chấ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

bash
curl -X POST http://localhost:1349/api/v1/tools/image/ai-canvas-expand \
  -F "[email protected]" \
  -F 'settings={"extendTop":200,"extendBottom":200,"extendLeft":100,"extendRight":100,"tier":"balanced"}'

Response

Initial Response (202 Accepted)

json
{
  "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)

json
{
  "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: fast tạo kết quả nhanh nhưng có thể có nhiễu, high mấ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.