Skip to main content

Hiểu khái niệm cốt lõi

MidJourney API mô phỏng các thao tác tương tác nút trên Discord. Không giống các REST API thông thường, nó hoạt động như một state machine trong đó mỗi thao tác trả về các nút mới cho bước tiếp theo.

4 API cốt lõi


Sơ đồ quy trình hoàn chỉnh


Khái niệm quan trọng: Buttons và customId

Mỗi task thành công sẽ trả về một mảng buttons. Mỗi nút có một customId mà bạn dùng để kích hoạt hành động tiếp theo. Ví dụ phản hồi từ /mj/task/\{id\}/fetch:
customId không phải là giá trị cố định. Nó thay đổi với mỗi task. Luôn lấy nó từ mảng buttons.

Tham chiếu nút theo từng giai đoạn

Sau IMAGINE (ảnh lưới 4 ô)

Các nút này được trả về khi quá trình tạo ảnh ban đầu của bạn hoàn tất:

Sau UPSCALE (ảnh đơn)

Sau khi upscaling, bạn sẽ có quyền truy cập vào các công cụ chỉnh sửa:
Lưu ý: Nhãn nút và định dạng customId có thể khác nhau tùy theo phiên bản MJ được chỉ định trong prompt của bạn (ví dụ: --v 6.1 so với --v 5.2). Luôn đọc các nút từ phản hồi API.
Nút Inpaint (Vary Region) chỉ xuất hiện sau Upscale.

Ví dụ đầy đủ: Tạo và upscale

Bước 1: Gửi yêu cầu imagine

Phản hồi:

Bước 2: Poll trạng thái tác vụ

Phản hồi (khi hoàn tất):

Bước 3: Nhấp U1 để upscale

Phản hồi:

Bước 4: Poll tác vụ mới và lấy kết quả


Khi nào cần Modal?

Khi bạn gọi /mj/submit/action và trạng thái tác vụ trở thành MODAL thay vì SUCCESS, bạn phải gọi /mj/submit/modal để cung cấp đầu vào bổ sung.

Các thao tác Modal đã được xác nhận

Ví dụ: Luồng Inpaint

Chọn chế độ tốc độ

Thêm tiền tố tốc độ vào đường dẫn:

Các điểm vào khác

Các API này là những điểm vào độc lập không đi theo luồng imagine → action:

Mẹo khắc phục sự cố

Dựa trên thiết kế API và quy trình làm việc, đây là những vấn đề phổ biến bạn có thể gặp phải: