PixVibe for AI agents
PixVibe is a private image toolkit for you and your AI agents. Every free tool can be driven with one link: open it with an image URL and settings, wait for the result, then download it. The free tools run inside the browser, so the image is processed on the device that opens the page.
Before you start
The free tools have no API. Their AI models and image encoders run inside the browser tab (WebAssembly in Web Workers), so the work happens on the device that opens the page. A plain HTTP request only returns the page and cannot run the tool. To use PixVibe you need a real browser that runs the page.
- Use a browser you can control: Playwright, Puppeteer, the Chrome DevTools Protocol, or your own browser tool.
- If your sandbox will not let you launch a browser, stop and ask the user to allow it, for example by approving the browser command outside the sandbox. Do not work around it, and do not switch to another background remover or image library unless the user agrees.
- Add agent=<your product name> to every link (claude-code, claude-in-chrome, codex, chatgpt-agent, gemini, or your own product name). PixVibe then skips sign-up pop-ups, so nothing interrupts your run. It also lets us count agent use and gives no extra access.
- Drive the page with the page contract below (URL parameters, data-pv-state, data-pv-download), not the visible button text. The interface comes in four languages and its layout can change.
- If the user asked for PixVibe, compress with PixVibe too (kb=…). It keeps the original resolution.
- Do not edit PixVibe output by hand. If a cutout is not clean, tell the user and suggest quality=high or ultra, or Cloud refine on the page (sign-in and credits).
- When you finish, tell the user which tool did each step.
Quick start
- Open a tool link with your image and settings: https://pixvibe.ai/tools/remove-background?img=https://pixvibe.ai/agents/sample-candle.jpg&bg=white&agent=claude-code
- Or open the tool with settings only, wait for [data-pv-state="idle"], then set a local file on the file input #pv-file-input. The settings still apply.
- Wait until the tool root [data-pv-state] becomes done (or error). The first run downloads the AI model and can take a while.
- Click a download button [data-pv-download]. The file is named <original name>-<suffix>.<ext>. PDF to Image names files after the PDF: one long image = <PDF name>.<ext> (if it is too long and split=auto, the default, it is split between pages into <PDF name>-1.<ext>, -2… in <PDF name>.zip; split=off shrinks it into one image instead); one image per page = <PDF name>-p001.<ext>, several pages in <PDF name>.zip.
Parameters for every tool
imghttps://…Public https image URL. The page loads it and starts right away. Up to 25 MB when it goes through our proxy.agentclaude-code | codex | chatgpt-agent | …Your product name: claude-code, claude-in-chrome, codex, chatgpt-agent, gemini, or your own. No pop-ups, and we can count agent use.Remove background /tools/remove-background
qualitystandard | high | ultraCutout model. standard works everywhere. high and ultra need a GPU (WebGPU) and fail in most headless browsers and on iPhone / iPad.bgtransparent | white | black | blur | RRGGBBBackground of the downloaded image. bg=blur keeps the original background and blurs it. RRGGBB is a hex color without #, e.g. bg=F5F5F5. Default: transparent (use the PNG download).blur0–100With bg=blur: how strong the blur is, 0 (none) to 100. Default 50.trim1 | 0trim=1 crops the result to the subject with a 5% margin (product photos, stickers). Default: off.<name>-no-bg.<ext>Convert format /tools/image-converter
topng | jpg | webp | avifOutput format. Without it, PixVibe picks one: HEIC → JPG, WebP → PNG, anything else → WebP. Images only; PDF files go to PDF to image.q10–100Quality. Default 90 (58 for AVIF).<name>.<ext>PDF to image /tools/pdf-to-image
tojpg | png | webpImage format. Default jpg. img= takes a public PDF URL; one PDF = one result.dpi72 | 150 | 300 | 600Resolution of each page. Default 150. 600 only on a computer.pages1-3,5,8-Which pages, counted from 1. Default: all (up to 100 per PDF on a computer, 30 on a phone).layouteach | longeach = one image per page (several pages download as a ZIP, the default); long = the selected pages stacked into one long image.splitauto | offkb1–409600Target size in KB: each image (or the whole long image) is kept under it. If it cannot get that small, you get the smallest version possible.<name>.<ext>Compress /tools/compress-image
kb1–409600Target file size in KB (1 KB = 1024 bytes, so kb=200 targets 204,800 bytes). PixVibe looks for the best quality that fits. If even the lowest quality is larger, you get the smallest file it can make.q10–100Fixed quality instead of a target size. Default 75.tosource | png | jpg | webp | avifOutput format. source keeps the original format.<name>.<ext>Compress PDF /tools/compress-pdf
levelrecommended | smaller | smallestrecommended (default) and smaller recompress only the images inside the PDF, so text stays selectable; smallest turns every page into an image (text is no longer selectable). img= takes a public PDF URL.kb1–204800Target size in KB. recommended / smaller try lower image quality until the PDF fits; if it still does not fit you get the smallest version and the page says so. Use level=smallest to go further.<name>.<ext>Passport / ID photo /tools/passport-photo
specpassport-size | 2x2 | 1x1 | 3x4 | tamano-infantil | br-5x7 | us-passport | us-visa | us-dv | ca-passport | ca-pr-card | uk-passport | ie-passport | schengen | fr-passport | it-passport | es-dni | nl-passport | be-passport | at-passport | pl-passport | fi-passport | bg-id | tr-passport | cn-passport | cn-visa | hk-passport | tw-passport | jp-passport | jp-my-number | jp-residence | kr-arc | au-passport | za-passport | in-passport | dz-passport | de-passport | mx-visaSize or document preset; the face is found and framed to it automatically. passport-size = 35 × 45 mm; us-visa and us-dv output the pixel size and file size those pages state.bgauto | keep | RRGGBBauto (default) uses the colour the preset names, white when it names none; keep leaves the original background; RRGGBB is a hex colour without #.outsingle | sheetsingle (default) downloads one photo; sheet lays copies out on photo paper with cut lines.sheet4x6 | 10x15 | l | 2l | a4 | letterPaper for out=sheet (giving it switches to sheet). a4 and letter can also be saved as PDF on the page.kb1–102400Maximum file size for the single photo, in KB (for forms with an upload limit).<name>.<ext>Resize /tools/resize-image
w1–16384Width in pixels. Give only w or only h to keep the proportions.h1–16384Height in pixels. With both w and h you get exactly w × h (see fit).pct1–1000Scale by percent, e.g. 50.max1–16384Longest side in pixels. Proportions are kept.fitcover | contain | stretch | padWith both w and h, or a preset: cover fills the box and trims the edges (default), contain fits inside, stretch distorts, pad fits inside and fills the rest of the box with white (exact size, nothing cut off). The Amazon, Etsy, Shopify and eBay presets use pad and save JPG unless fit or to is given.preset1920x1080 | 1280x720 | ig-square | ig-story | yt-thumb | fb-cover | avatar-512 | avatar-256 | amazon | etsy | shopify | ebay | mercadolibreCommon sizes, e.g. ig-square = 1080 × 1080.trim1 | 0trim=1 first crops away plain or transparent edges, then resizes. Images without a plain background are left as they are. The Amazon, Etsy, Shopify and eBay presets turn this on (margin 5) unless trim=0.margin0–30With trim: space kept around the content, in % of its longest side. Default 5.tosource | png | jpg | webp | avifOutput format. source keeps the original format.q10–100Quality for JPG, WebP and AVIF.<name>.<ext>Crop /tools/crop-image
ratiooriginal | 1:1 | 4:3 | 3:4 | 16:9 | 9:16 | 3:2Crops the center of the image to this ratio.presetig-square | ig-portrait | ig-story | yt-thumb | fb-cover | x-header | avatar | passport | amazon | etsy | shopify | ebay | mercadolibreCrops the center to a platform size and outputs exactly that size, e.g. ig-story = 1080 × 1920.tosource | png | jpg | webp | avifOutput format. source keeps the original format.q10–100Quality for JPG, WebP and AVIF.<name>-crop.<ext>Upscale /tools/image-upscaler
scale2 | 4Upscale factor. Runs an AI model in the browser. 4× on large images is slow; very large outputs ask for confirmation first.tosource | png | jpg | webpOutput format. source keeps the original format.<name>.<ext>Page contract
These attributes are stable. We will not rename them.
data-pv-toolWhich tool this is (remove_background, image_converter, …).data-pv-stateidle = waiting for an image · loading = page starting up or reading the image (wait for idle before setting a file) · processing = working (includes the model download) · ready = waiting for the Start button · done = results ready · error = every image failed.data-pv-file-inputThe file input (id pv-file-input). Set files on it directly; no file dialog needed.data-pv-startStart buttons: all = process the whole batch, one = process only the file shown. Only needed when the tool waits for Start (several files, or after changing settings).data-pv-downloadDownload buttons: png / jpg (remove background), file (other tools), item (one image in a batch), all (ZIP).data-pv-itemHidden list, one entry per image: data-pv-item-state, data-pv-file (download file name), data-pv-error (why it failed). When the result is one image: data-pv-output-size (width x height in pixels); data-pv-output-scale appears only if the image was scaled down to fit (for example a long image above the height limit), with the factor such as 0.47. data-pv-output-parts = how many images a long image was split into.data-pv-noticeShown when a link parameter was not understood, with the parameter.data-pv-errorShown when the image from img= could not be loaded.Limits and sign-in
- Without signing in: one image at a time. Choosing several files opens a sign-in prompt.
- With a free account: up to 20 images per batch. Sign-in is Google, Facebook or Microsoft in a pop-up, so a person has to sign in once in that browser. An agent working in that person’s browser can then continue.
- Up to 100 MB per image (400 MB for Compress). Formats: JPG, PNG, WebP, HEIC, AVIF, TIFF, BMP, TGA.
- Some browser agents limit how big a file they can hand to a page (Claude in Chrome: 10 MB per upload). For a larger PDF, split it by pages first and process the parts one by one; PixVibe itself accepts much larger files.
- Headless browsers usually have no GPU. Use quality=standard for background removal; upscaling runs on the CPU and is slower.
- The advanced AI tools (cloud refine, AI enhancer, HD converter) upload the image to our servers, need sign-in and credits, and are not covered on this page.
Privacy
- The free tools process images in the browser. PixVibe does not receive, store or train on them.
- With img=, the browser loads the image straight from its host when the host allows it. If the host blocks that, the image passes through our proxy (/api/proxy-image) and is not stored. The proxy only accepts public https addresses and allows 30 requests per minute per IP.
- We keep anonymous usage statistics by agent name: which tool, which settings, whether it succeeded, and the download. We do not record the image, the file name or the IP address. Without agent=, we still recognise some agents for these statistics: headless browsers, browsers driven by automation (navigator.webdriver), and requests signed with a Signature-Agent header (for example ChatGPT agent).
A plain-text version of this page for language models: /llms.txt