> ## Documentation Index
> Fetch the complete documentation index at: https://apidoc.cometapi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Tạo một tác vụ chỉnh sửa Midjourney

> Sử dụng API Submit Editor của CometAPI (POST /mj/submit/edits) để chỉnh sửa hình ảnh Midjourney với maskBase64, prompt, ảnh gốc tùy chọn và chỉnh sửa nền trong suốt.

Sử dụng endpoint này để chỉnh sửa một hình ảnh Midjourney bằng mask, hoặc để tạo kết quả có nền trong suốt từ prompt kết hợp với ảnh nguồn.

## Hai chế độ phổ biến

* Chỉnh sửa có mask: gửi `maskBase64` cùng với `prompt`, và có thể tùy chọn gửi `image` gốc
* Vẽ trong suốt: gửi `image` cùng với `prompt` khi bạn muốn nhận kết quả có nền trong suốt mà không cần mask riêng

## Luồng tác vụ

<Steps>
  <Step title="Gửi tác vụ chỉnh sửa">
    Chọn chế độ chỉnh sửa, gửi prompt và dữ liệu nguồn, sau đó lưu task id được trả về.
  </Step>

  <Step title="Thăm dò tác vụ">
    Sử dụng [Fetch Single Task](./task-fetching-api/fetch-single-task) cho đến khi tác vụ đạt đến trạng thái kết thúc.
  </Step>

  <Step title="Tiếp tục từ kết quả">
    Sử dụng trực tiếp tài nguyên cuối cùng, hoặc kích hoạt [Action](./action) khi kết quả đã chỉnh sửa hiển thị các nút thao tác tiếp theo.
  </Step>
</Steps>


## OpenAPI

````yaml api/openapi/image/midjourney/post-submit-editor.openapi.json POST /mj/submit/edits
openapi: 3.1.0
info:
  title: Submit Editor API
  version: 1.0.0
servers:
  - url: https://api.cometapi.com
security:
  - bearerAuth: []
paths:
  /mj/submit/edits:
    post:
      summary: Submit Editor
      operationId: submit_editor
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - prompt
                - image
              properties:
                prompt:
                  type: string
                  description: Text prompt describing the desired edit.
                  default: Change to white background
                image:
                  type: string
                  description: >-
                    Image to edit. Pass a public URL or a base64-encoded data
                    URI.
                  default: https://your-image-host/source.png
                state:
                  type: string
                  description: >-
                    Custom state string. Returned as-is in the task result and
                    webhook callback for your own tracking.
                notifyHook:
                  type: string
                  description: >-
                    Webhook URL to receive task status updates. Falls back to
                    your account-level webhook if omitted.
                noStorage:
                  type: boolean
                  description: >-
                    When `true`, return the original provider image URL instead
                    of a CometAPI-proxied link.
              default:
                prompt: Change to white background
                image: https://your-image-host/source.png
            examples:
              Edit by image URL:
                summary: >-
                  Edit an existing image referenced by URL (replace the URL with
                  your image)
                value:
                  prompt: Change to white background
                  image: https://your-image-host/source.png
              Edit by base64 image:
                summary: >-
                  Edit an inline base64 image. Replace the data URI with your
                  own image data.
                value:
                  prompt: Change to white background
                  image: data:image/jpeg;base64,<your-image-base64>
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                    description: >-
                      Submission status code. `1` = submitted successfully
                      (`result` carries the task id). `21` = the action opened a
                      confirmation modal; continue with `/mj/submit/modal` using
                      the returned task id. `4` = parameter error; `description`
                      explains the cause.
                  description:
                    type: string
                  result:
                    type: string
      x-codeSamples:
        - lang: Shell
          label: Default
          source: |
            curl https://api.cometapi.com/mj/submit/edits \
              -H "Authorization: Bearer $COMETAPI_KEY" \
              -H "Content-Type: application/json" \
              -d '{
                "prompt": "Change to white background",
                "image": "https://your-image-host/source.png"
              }'
        - lang: Python
          label: Default
          source: |
            import os
            import requests

            response = requests.post(
                "https://api.cometapi.com/mj/submit/edits",
                headers={"Authorization": "Bearer " + os.environ["COMETAPI_KEY"]},
                json={
                    "prompt": "Change to white background",
                    "image": "https://your-image-host/source.png",
                },
            )

            task = response.json()
            print(task["code"], task.get("result"))
        - lang: JavaScript
          label: Default
          source: >
            const response = await
            fetch("https://api.cometapi.com/mj/submit/edits", {
                method: "POST",
                headers: {
                    Authorization: `Bearer ${process.env.COMETAPI_KEY}`,
                    "Content-Type": "application/json",
                },
                body: JSON.stringify({
                    prompt: "Change to white background",
                    image: "https://your-image-host/source.png",
                }),
            });


            const task = await response.json();

            console.log(task.code, task.result);
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Bearer token authentication. Use your CometAPI key.

````