Skip to content

AI Abs Filter

Overview

The AI Abs Filter API lets you add realistic abdominal definition to a photo and generate an athletic body-shaping result with minimal effort. Upload a full-body or upper-body image, select the desired enhancement mode, set the intensity level, and receive an edited output image.

Supported modes:

  • Six-pack: Adds visible six-pack abs for a more muscular torso appearance.
  • Vest-line: Enhances central abdominal muscle definition for a fit, athletic look.

Integration Guide

Input Requirements & Processing Criteria:

  • Upload a full-body or upper-body image.
  • Select an enhancement mode: Six-pack or Vest-line.
  • Choose the desired abdominal enhancement intensity level.
  • Maximum long-side image resolution must not exceed 4096 px.
  • Source file size must be less than 10 MB.
  • At least one detectable person is required, with both shoulders visible.
  • The abdomen must be visible, either clothed or unclothed.
  • Supported pose range: −45° < yaw < 45°.
  • Single-person processing is supported. If multiple people appear in the image, the API automatically selects the person with the largest visible shoulder area.

Workflow:

  1. Upload file metadata using the File API.
  2. Retrieve the signed upload URL from the response.
  3. Upload the actual image to the returned URL.
  4. Create an AI task for abs-shape enhancement.
  5. Setup a Webhook or Poll the task status until completion.
  6. Download the generated result image when processing is successful.

Step 1 — Upload File Metadata Using the File API

Use POST /s2s/v2.0/file to create a file record and receive upload details for the source image.

curl --request POST \
  --url https://yce-api-01.makeupar.com/s2s/v2.0/file \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'content-type: application/json' \
  --data '{
    "files": [
      {
        "content_type": "image/jpg",
        "file_name": "full_body_photo_01_3dbd1b6683.jpg",
        "file_size": 547541
      }
    ]
  }'

File API Sample Response:

{
  "status": 200,
  "data": {
    "files": [
      {
        "content_type": "image/jpg",
        "file_name": "full_body_photo_01_3dbd1b6683.jpg",
        "file_id": "SaGaqpDgKwFrVBgMpQMA3HY0LeqdT9/13W5TOD8/u/FfjK3xgCQ+hRt9MJXBFaud",
        "requests": [
          {
            "method": "PUT",
            "url": "https://yce-us.s3-accelerate.amazonaws.com/demo/ttl30/...signature...",
            "headers": {
              "Content-Length": "547541",
              "Content-Type": "image/jpg"
            }
          }
        ]
      }
    ]
  }
}

Step 2 — Retrieve File API Response Details

The response contains:

FieldDescription
file_idIdentifier used to create the AI task.
requests.urlSigned URL for uploading the actual image file.
requests.methodUpload method, usually PUT.
requests.headersRequired headers for the upload request.

Step 3 — Upload Image to Provided URL

Use the requests.url from the File API response to upload the source image.

curl --location --request PUT 'https://yce-us.s3-accelerate.amazonaws.com/demo/ttl30/...signature...' \
  --header 'Content-Type: image/jpg' \
  --header 'Content-Length: 547541' \
  --data-binary @'./full_body_photo_01_3dbd1b6683.jpg'

Step 4 — Create an AI Task

Use POST /s2s/v2.0/task/abs-shape to create the abs-enhancement task.

ParameterDescriptionExample
src_file_idFile ID returned from the File API upload flow. Required when using uploaded-file workflow."SaGaqpDgKwFrVBgMpQMA3HY0LeqdT9/13W5TOD8/u/FfjK3xgCQ+hRt9MJXBFaud"
src_file_urlDirect URL of the source image. Use this alternative to src_file_id."https://example.com/selfie.jpg"
modeEnhancement mode. Supported values are Six-pack and Vest-line."Six-pack"
intensityAbdominal enhancement intensity level.1

Example Request:

const resp = await fetch(
  'https://yce-api-01.makeupar.com/s2s/v2.0/task/abs-shape',
  {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      Authorization: 'Bearer <YOUR_TOKEN_HERE>'
    },
    body: JSON.stringify({
      src_file_url: 'https://example.com/selfie.jpg',
      mode: 'Six-pack',
      intensity: 1
    })
  }
);

const data = await resp.json();
console.log(data);

AI Task API Response:

{
  "status": 200,
  "data": {
    "task_id": "SaGaqpDgKwFrVBgMpQMA3HY0LeqdT9_13W5TOD8_u_GPi6NqQ3dhlmN-6ntFwhzT"
  }
}

Step 5 — Setup a Webhook or Poll for Task Result

See the webhook integration guide for setup and verification details.

For polling, use the returned task_id to check task status.

curl --request GET \
  --url https://yce-api-01.makeupar.com/s2s/v2.0/task/abs-shape/<YOUR_TASK_ID> \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'content-type: application/json'

Step 6 — Retrieve Result Image

When processing is successful, the response includes a download URL in data.results.url.

{
  "status": 200,
  "data": {
    "error": null,
    "results": {
      "url": "https://yce-us.s3-accelerate.amazonaws.com/demo/ttl30/...signature..."
    },
    "task_status": "success"
  }
}

Invalid API Key Response:

If the access token is invalid, the API returns a 401 response.

{
  "status": 401,
  "error": "Unauthorized",
  "error_code": "InvalidAccessToken"
}

Use cases:


File Specs & Errors

File Specifications:

SpecificationRequirement
Image typeFull-body or upper-body image.
Source subjectOne detectable person with both shoulders visible and abdomen visible.
Pose requirementSupported pose range is −45° < yaw < 45°.
Multi-person handlingIf multiple people are detected, the API automatically selects the person with the largest visible shoulder area.
Maximum long-side resolutionLong side must not exceed 4096 px.
File size limitMust be less than 10 MB.
Supported formatsjpg, png.

Error Codes:

Error CodeDescription
exceed_max_filesizeThe source image exceeds the maximum allowed dimensions or file size. The long side must not exceed 4096 px, and the file size must remain below 10 MB.
error_posePose detection failed due to missing person detection, shoulder visibility issues, abdomen visibility issues, waist-region detection failure, hip-keypoint detection failure, or unsupported pose range.
error_nsfw_content_detectedPotential NSFW content was detected in the source image or generated result image.
invalid_parameterInvalid parameters were provided for source keys, destination keys, actions, mode values, intensity levels, or task configuration.
error_download_imageThe source image could not be downloaded successfully.
error_decode_imageThe source image could not be decoded successfully.

Environment & Dependencies:

Tool / LanguageRecommended Runtime Versions
cURLBash ≥ 3.2; curl ≥ 7.58 with modern TLS/HTTP support; jq ≥ 1.6 for robust JSON parsing.
Node.jsNode ≥ 18 for global fetch support.
JavaScript Browser SupportChrome / Edge ≥ 80, Firefox ≥ 74, Safari ≥ 13.1.
PHPPHP ≥ 7.4 with modern TLS compatibility; ext-curl recommended or allow_url_fopen=On with OpenSSL and JSON support.
PythonPython ≥ 3.10 for f-strings; requests ≥ 2.20.0.
JavaJava 11+ for HttpClient; Jackson Databind ≥ 2.12.0.
Download OpenAPI description
Languages
Servers
https://yce-api-01.makeupar.com