# Remove background — Remove.bg

> Remove the background of an image

- Key: `remove_bg-remove-background`
- Type: Action (Write)
- Version: 0.1.3
- App: Remove.bg (`remove_bg`) — https://pipedream.com/apps/remove-bg.md
- This page (HTML): https://pipedream.com/apps/remove-bg/actions/remove-background
- Hints: destructive · open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/remove_bg/actions/remove-background/remove-background.mjs

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `image_file` | `string` | No | Source image file (binary). (If this parameter is present, the other image source parameters must be empty.) |
| `image_file_b64` | `string` | No | Source image file (base64-encoded string). (If this parameter is present, the other image source parameters must be empty.) |
| `image_url` | `string` | Yes | Source image URL. (If this parameter is present, the other image source parameters must be empty.) |
| `size` | `string` | No | Maximum output image resolution: "preview" (default) = Resize image to 0.25 megapixels (e.g. 625×400 pixels) 0.25 credits per image, "full" = Use original image resolution, up to 25 megapixels (e.g. 6250x4000) with formats ZIP or JPG, or up to 10 megapixels (e.g. 4000x2500) with PNG 1 credit per image), "auto" = Use highest available resolution (based on image size and available credits). For backwards-compatibility this parameter also accepts the values "medium" (up to 1.5 megapixels) and "hd" (up to 4 megapixels) for 1 credit per image. The value "full" is also available under the name "4k" and the value "preview" is aliased as "small" and "regular". |
| `type` | `string` | No | Foreground type: "auto" = Automatically detect kind of foreground, "person" = Use person(s) as foreground, "product" = Use product(s) as foreground. "car" = Use car as foreground, |
| `format` | `string` | No | Result image format: "auto" = Use PNG format if transparent regions exist, otherwise use JPG format (default), "png" = PNG format with alpha transparency, "jpg" = JPG format, no transparency, "zip" = ZIP format, contains color image and alpha matte image, supports transparency (recommended). |
| `roi` | `string` | No | Region of interest: Only contents of this rectangular region can be detected as foreground. Everything outside is considered background and will be removed. The rectangle is defined as two x/y coordinates in the format "<x1> <y1> <x2> <y2>". The coordinates can be in absolute pixels (suffix 'px') or relative to the width/height of the image (suffix '%'). By default, the whole image is the region of interest ("0% 0% 100% 100%"). |
| `crop` | `boolean` | No | Whether to crop off all empty regions (default: false). Note that cropping has no effect on the amount of charged credits. |
| `crop_margin` | `string` | No | Adds a margin around the cropped subject (default: 0). Can be an absolute value (e.g. "30px") or relative to the subject size (e.g. "10%"). Can be a single value (all sides), two values (top/bottom and left/right) or four values (top, right, bottom, left). This parameter only has an effect when "crop=true". The maximum margin that can be added on each side is 50% of the subject dimensions or 500 pixels. |
| `scale` | `string` | No | Scales the subject relative to the total image size. Can be any value from "10%" to "100%", or "original" (default). Scaling the subject implies "position=center" (unless specified otherwise). |
| `position` | `string` | No | Positions the subject within the image canvas. Can be "original" (default unless "scale" is given), "center" (default when "scale" is given) or a value from "0%" to "100%" (both horizontal and vertical) or two values (horizontal, vertical). |
| `channels` | `string` | No | Request either the finalized image ("rgba", default) or an alpha mask ("alpha"). Note: Since remove.bg also applies RGB color corrections on edges, using only the alpha mask often leads to a lower final image quality. Therefore "rgba" is recommended. |
| `add_shadow` | `boolean` | No | Whether to add an artificial shadow to the result (default: false). |
| `bg_color` | `string` | No | Adds a solid color background. Can be a hex color code (e.g. 81d4fa, fff) or a color name (e.g. green). For semi-transparency, 4-/8-digit hex codes are also supported (e.g. 81d4fa77). (If this parameter is present, the other bg_ parameters must be empty.) |
| `bg_image_url` | `string` | No | Adds a background image from a URL. The image is centered and resized to fill the canvas while preserving the aspect ratio, unless it already has the exact same dimensions as the foreground image. (If this parameter is present, the other bg_ parameters must be empty.) |
| `bg_image_file` | `string` | No | Adds a background image from a file (binary). The image is centered and resized to fill the canvas while preserving the aspect ratio, unless it already has the exact same dimensions as the foreground image. (If this parameter is present, the other bg_ parameters must be empty.) |

## Run it

**MCP**

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_PROJECT_ID!,
        "x-pd-environment": "production",
        "x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
        "x-pd-app-slug": "remove_bg",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
  name: "remove_bg-remove-background",
  arguments: {
    image_file: "Image file",
    image_file_b64: "Image file b64",
  },
})
```

**TypeScript**

```ts
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "remove_bg-remove-background",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    remove_bg: { authProvisionId: "apn_xxxxxxx" },
    image_file: "Image file",
    image_file_b64: "Image file b64",
  },
})

console.log(result)
```

**cURL**

```bash
curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
  -H "Content-Type: application/json" \
  -H "X-PD-Environment: production" \
  -H "Authorization: Bearer {access_token}" \
  -d '{
    "external_user_id": "{external_user_id}",
    "id": "remove_bg-remove-background",
    "configured_props": {
      "remove_bg": { "authProvisionId": "apn_xxxxxxx" },
      "image_file": "Image file",
      "image_file_b64": "Image file b64"
    }
  }'
```

---

- App: https://pipedream.com/apps/remove-bg.md · All apps: https://pipedream.com/apps
