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

# Portrait Background Removal

> Human Background Removal API detects people and removes portrait backgrounds for profile photos, design assets, and e-commerce images.

export const FileStoragePolicy = ({uploadedFiles, responseType}) => {
  const responseFileData = {
    URL: {
      stored: "Yes",
      retention: "24 Hours",
      deletion: "Automatic"
    },
    BASE64: {
      stored: "No",
      retention: "N/A",
      deletion: "Immediate"
    }
  };
  if (!uploadedFiles && !responseType) return null;
  return <div>
      <table>
        <thead>
          <tr>
            <th>Data Type</th>
            <th>Stored</th>
            <th>Retention</th>
            <th>Training</th>
            <th>Deletion</th>
          </tr>
        </thead>
        <tbody>
          {uploadedFiles && <tr>
              <td>Uploaded Files</td>
              <td>No</td>
              <td>N/A</td>
              <td>No</td>
              <td>Immediate</td>
            </tr>}
          {responseType && responseFileData?.[responseType] && <tr>
              <td>Response Files ({responseType})</td>
              <td>{responseFileData[responseType]['stored']}</td>
              <td>{responseFileData[responseType]['retention']}</td>
              <td>No</td>
              <td>{responseFileData[responseType]['deletion']}</td>
            </tr>}
        </tbody>
      </table>

      <Tip>
        For more information, see the{" "}<a href="/docs/file-storage-policy">File Storage Policy</a> and{" "}<a href="https://www.ailabtools.com/privacy-policy" target="_blank">Privacy Policy</a>.
      </Tip>
    </div>;
};

export const BillingInstructions = ({creditsPerRequest = 1}) => {
  const creditUnitPrice = 0.0027;
  const billingTiers = [{
    price: 6,
    credits: 2000,
    costPerCredit: 0.003
  }, {
    price: 30,
    credits: 10000,
    costPerCredit: 0.003
  }, {
    price: 300,
    credits: 110000,
    costPerCredit: 0.0027
  }, {
    price: 1500,
    credits: 550000,
    costPerCredit: 0.0027
  }, {
    price: 2500,
    credits: 1000000,
    costPerCredit: 0.0025
  }];
  const formatCurrency = (value, fractionDigits = 2) => value.toLocaleString("en-US", {
    style: "currency",
    currency: "USD",
    minimumFractionDigits: fractionDigits,
    maximumFractionDigits: fractionDigits
  });
  const formatNumber = (value, fractionDigits = 0) => value.toLocaleString("en-US", {
    minimumFractionDigits: fractionDigits,
    maximumFractionDigits: fractionDigits
  });
  return <>
      <table>
        <thead>
          <tr>
            <th style={{
    textAlign: "right"
  }}>Price</th>
            <th style={{
    textAlign: "right"
  }}>Requests</th>
            <th style={{
    textAlign: "right"
  }}>Cost / Request</th>
          </tr>
        </thead>
        <tbody>
          {billingTiers.map(tier => {
    const requests = tier.credits / creditsPerRequest;
    const costPerRequest = tier.costPerCredit * creditsPerRequest;
    return <tr key={tier.credits}>
                <td style={{
      textAlign: "right"
    }}>{formatCurrency(tier.price)}</td>
                <td style={{
      textAlign: "right"
    }}>{formatNumber(requests)}</td>
                <td style={{
      textAlign: "right"
    }}>
                  {formatCurrency(costPerRequest, 4)}
                </td>
              </tr>;
  })}
        </tbody>
      </table>

      <Tip>
        Each successful API request consumes{" "}<strong>{creditsPerRequest} credits (≈{" "}{formatCurrency(creditUnitPrice * creditsPerRequest, 4)})</strong>. Failed requests are not billed.

        <ul>
          <li>
            View pricing on the{" "}<a href="https://www.ailabtools.com/price?tab=api" target="_blank">pricing page</a>{" "}or manage credits in the{" "}<a href="https://www.ailabtools.com/developer/billing" target="_blank">developer platform</a>.
          </li>
          <li>
            Need more credits or an enterprise plan? Contact{" "}<a href="mailto:business@ailabtools.com">business@ailabtools.com</a>.
          </li>
        </ul>
      </Tip>
    </>;
};

export const ExperienceLinks = ({onlineUrl, apiUrl}) => {
  return <Tip>
      Explore this API through the{" "}<a href={`https://www.ailabtools.com${onlineUrl}`} target="_blank">👉 Online Experience 👈</a>{" "}or integrate it using the{" "}<a href={apiUrl}>👉 Run with API 👈</a>.
    </Tip>;
};

## Renderings show

| `return_form` | ORIGINAL IMAGE                     | RESULT IMAGE                           |
| :------------ | :--------------------------------- | :------------------------------------- |
| -             | ![ORIGINAL IMAGE][OriginalImage-1] | ![RESULT IMAGE][ResultImage-default-1] |
| `mask`        | ![ORIGINAL IMAGE][OriginalImage-1] | ![RESULT IMAGE][ResultImage-mask-1]    |
| `whiteBK`     | ![ORIGINAL IMAGE][OriginalImage-1] | ![RESULT IMAGE][ResultImage-whiteBK-1] |
| `crop`        | ![ORIGINAL IMAGE][OriginalImage-1] | ![RESULT IMAGE][ResultImage-crop-1]    |

<ExperienceLinks onlineUrl="/background-removal" apiUrl="/docs/ai-cutout/portrait/portrait-background-removal/api" />

## Billing Instructions

<BillingInstructions creditsPerRequest={1} />

## File Storage Policy

<FileStoragePolicy uploadedFiles responseType="URL" />

## Application Scenarios

* **Portrait photography**: human body segmentation by splitting the photographic subject figure from the background, defocusing the background to achieve a large aperture shallow depth of field effect and highlight the figure subject.
* **ID photo production**: upload or shoot a life photo, you can finely split the figure out, then with other background processing capabilities, and finally produce a standard ID photo.

## Featured Advantages

* **Hair-level fine segmentation**: Provides higher segmentation accuracy in fine areas, down to the hair, so that the resultant image is unobtrusive and difficult to detect as having been processed.
* **Adapt to complex backgrounds**: Even if the person is in a complex background environment, the human body can still be accurately segmented from the background.

[OriginalImage-1]: https://ai-resource.ailabtools.com/rapidapi/cutout/HumanBackgroundRemoval/OriginalImage-1.webp

[ResultImage-default-1]: https://ai-resource.ailabtools.com/rapidapi/cutout/HumanBackgroundRemoval/ResultImage-default-1.webp

[ResultImage-mask-1]: https://ai-resource.ailabtools.com/rapidapi/cutout/HumanBackgroundRemoval/ResultImage-mask-1.webp

[ResultImage-whiteBK-1]: https://ai-resource.ailabtools.com/rapidapi/cutout/HumanBackgroundRemoval/ResultImage-whiteBK-1.webp

[ResultImage-crop-1]: https://ai-resource.ailabtools.com/rapidapi/cutout/HumanBackgroundRemoval/ResultImage-crop-1.webp
