# Grocery Delivery Image API Benchmark (Claid.ai, Picsart)

On this page you will find a comparison of our [Image Editing API](https://docs.photoroom.com/image-editing-api-plus-plan) against some of our competitors, on the specific use case of Grocery Delivery images.

## Use Case description

Grocery delivery services need to display an image for each product on their catalog:

* it makes it much easier for the user to navigate that catalog
* it helps the user build trust that they are buying the correct product

Additionally, it's important that all these images follow the same brand guidelines, such as:

* 16:9 aspect ratio
* white background
* centered product, with 10% padding

However, it's not trivial to come up with such images.&#x20;

You might have to deal with vendor images that all have different backgrounds and aspect ratios:

<table data-view="cards"><thead><tr><th align="center"></th></tr></thead><tbody><tr><td align="center"><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FCRkL0WJhGvb4G6eQmQbD%2FVendor00009.png?alt=media&#x26;token=e2e20d8e-6474-47b2-8425-08a97b7138a0" alt=""></td></tr><tr><td align="center"><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FVCFezOPRpQBayn1GQJIJ%2FVendor00001.jpg?alt=media&#x26;token=a5789912-e8a6-48a9-8bcd-3fcc5ec9e8bf" alt=""></td></tr><tr><td align="center"><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FVyW7qzxBvzJnSjaHIGfw%2FVendor00010.png?alt=media&#x26;token=d910ad12-0695-4546-8709-2d2f948fde77" alt=""></td></tr></tbody></table>

Or you might also have to handle images that were taken directly inside the store:

<table data-view="cards"><thead><tr><th align="center"></th></tr></thead><tbody><tr><td align="center"><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FaFTSNuo65p6PV0i2uMtG%2FUGC00008.jpg?alt=media&#x26;token=acd7e33e-db02-4823-bdb1-a928bd1c75ac" alt=""></td></tr><tr><td align="center"><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FEUkiHJv2pMTVYTBwxi7Z%2FUGC00004.jpg?alt=media&#x26;token=7d5bb7ea-5277-46b6-b7c3-b8c275d7bb21" alt=""></td></tr><tr><td align="center"><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FA0ujIOUoyxDEwmPcyj7F%2FUGC00010.png?alt=media&#x26;token=182cc731-3c56-45de-bb41-07b21c659530" alt=""></td></tr></tbody></table>

## Results

### UGC Images

{% tabs %}
{% tab title="Original Images" %}

<table data-view="cards"><thead><tr><th></th></tr></thead><tbody><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FdiBTPmf4UoiYWQJtizq0%2FUGC00001.png?alt=media&#x26;token=b44f0ce5-1e5d-4556-8220-9d70bf12dd50" alt=""></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FQAM3VOU0t1QekuM5wMFR%2FUGC00002.jpg?alt=media&#x26;token=1d35881d-cc44-485c-9b84-6df7717ae701" alt=""></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2F8QbjineEvufa8Bzi9LKQ%2FUGC00003.jpg?alt=media&#x26;token=12d7a07e-f18b-46a0-bd4c-c773a76fc7dd" alt=""></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FCxeSbNQssHAT6SxWXnva%2FUGC00004.jpg?alt=media&#x26;token=e2d5cf68-4fc6-4e28-9e2f-ab24bb8e6558" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2F4vdScQwkpyVSFNfm1crh%2FUGC00005.jpg?alt=media&#x26;token=f1ae4335-3c9c-46d1-9dfe-888f7d7d3817" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2F1t7ARtVibl8obhApOHpA%2FUGC00006.jpg?alt=media&#x26;token=476a1d19-2031-40ab-b318-b557e559531b" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FDKNhUO655TfJMe4LWpBz%2FUGC00008.jpg?alt=media&#x26;token=57e3916e-b651-48c5-a803-a69ddaa83061" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FPuJQoJWr0ulOo42rNVTV%2FUGC00009.png?alt=media&#x26;token=b19b8103-5ad1-4fcd-b883-dae9e9326bfa" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FyOan2PCuqk4bkog3zsjR%2FUGC00010.png?alt=media&#x26;token=8926ca51-0946-4a3a-bc34-ce2c2b4d691d" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2Fzzz67H3ScKTrcl6d6GuS%2FUGC00012.jpg?alt=media&#x26;token=83cc303e-465c-453b-a068-5c50caf89c44" alt=""></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2Fn6J22ojB8xwCC6Vokwe7%2FUGC00011.png?alt=media&#x26;token=f2204370-ca57-4d80-9f98-160ee8a0f571" alt="" data-size="original"></td></tr></tbody></table>
{% endtab %}

{% tab title="Photoroom API" %}

<table data-view="cards"><thead><tr><th></th></tr></thead><tbody><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2F5YQLsS0zsDPRk3ShlXGF%2FUGC00001-photoroom.png?alt=media&#x26;token=bd045d98-799a-4783-83dc-a757b7ecea1e" alt=""></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2Fj8l3B9nI5jVX9vhmwLgm%2FUGC00002-photoroom.png?alt=media&#x26;token=a9367821-829a-43d8-8ccd-fc0ae8f1afa6" alt=""></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FLKDFrTNGoKO2HubEI2I8%2FUGC00003-photoroom.png?alt=media&#x26;token=b3cf7a48-a0c1-49ee-87d9-cf1604dd79a3" alt=""></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FXUsTvj0mvkWa3UzxSI1r%2FUGC00004-photoroom.png?alt=media&#x26;token=0f94b81c-30c0-4bfb-b235-1db22ebc0795" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FYPCrh3VdU1qxpt9TZxZt%2FUGC00005-photoroom.png?alt=media&#x26;token=41fb8fa1-dc38-44d9-a5d4-28975379efa5" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FpcFskHRclA2BbowlK93y%2FUGC00007-photoroom.png?alt=media&#x26;token=737910a7-bbf5-45bc-b6af-e900657b971c" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FjJ7iTdxof7DmossagQiE%2FUGC00008-photoroom.png?alt=media&#x26;token=6487cb76-eea9-4b82-987b-5c1d4437d6c3" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FBeIBbWRt0N4FHdvqDrZM%2FUGC00009-photoroom.png?alt=media&#x26;token=0591679a-e39f-4275-b010-4edfd4d1c17c" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FUIVGACyyX7mil7gpCZjs%2FUGC00010-photoroom.png?alt=media&#x26;token=89b9ea11-73dc-40b0-8fd7-be015e62a278" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2F1oUv6DDQnUrRMJxYalge%2FUGC00012-photoroom.png?alt=media&#x26;token=fcadbe51-2dca-4cea-b565-5a7a0757825e" alt=""></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FWuvsGgEKeEbdWkHVBm5M%2FUGC00011-photoroom.png?alt=media&#x26;token=7cc7fb25-889f-4d12-bee9-d000012d7438" alt="" data-size="original"></td></tr></tbody></table>
{% endtab %}

{% tab title="Claid.ai API" %}

<table data-view="cards"><thead><tr><th></th></tr></thead><tbody><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FL51vj2rI0zeQCAoS5sVm%2Fclaid-ai-1.png?alt=media&#x26;token=153f1089-0beb-457a-a2a3-f14c7666336a" alt=""></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FoMLdnteM5OkcgkJbsQDu%2Fclaid-ai-2.png?alt=media&#x26;token=9a238f1e-f65a-4121-b640-fd34002c1b84" alt=""></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FtWMYia731BtqDjadvt3w%2Fclaid-ai-3.png?alt=media&#x26;token=be6fad8a-d75d-4fa3-bad2-6eaa6c1489a1" alt=""></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FENR4gMzIif4A8qDbxDJl%2Fclaid-ai-4.png?alt=media&#x26;token=29be3034-b78c-4f07-9831-cb0981e26fe2" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FYEahq3IbSVgaWiPKtmAD%2Fclaid-ai-5.png?alt=media&#x26;token=56dce34e-3e1b-46e7-b435-72f523507d9a" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2Fwynt1ixloaibMOhRuZT8%2Fclaid-ai-6.png?alt=media&#x26;token=f0a0da12-c170-4703-9b56-0578e6eb0869" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FhXGxwnIlVLGM4XtGyosO%2Fclaid-ai-7.png?alt=media&#x26;token=938495f7-2881-4617-82d7-c538d8f79dc1" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2Fxc7uAHxzaE5OTVLnv6lO%2Fclaid-ai-8.png?alt=media&#x26;token=7c49875c-c41c-4634-b44e-1f583daf6b8a" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FmmjIyDX6Y39Bl55tnJQG%2Fclaid-ai-9.png?alt=media&#x26;token=c877292f-c1c3-41d3-a0f7-8561ca4d0a50" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FN1MR1U5WjJ65AhwgXD8o%2Fclaid-ai-11.png?alt=media&#x26;token=7e973704-aece-441f-8751-ce35339c5537" alt=""></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FnixRytQjybhyIK4ihRMm%2Fclaid-ai-10.png?alt=media&#x26;token=2f55cad2-0b55-4271-9aee-5e4828ec50d8" alt="" data-size="original"></td></tr></tbody></table>

{% hint style="info" %}
Claid.ai API doesn't support [positioning the subject](https://docs.photoroom.com/image-editing-api-plus-plan/positioning) to occupy all the space available, minus some padding.
{% endhint %}
{% endtab %}

{% tab title="Picsart API" %}

<table data-view="cards"><thead><tr><th></th></tr></thead><tbody><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FN8WP62Z3Uid85fKyv9UF%2FUGC00001-picsart.jpg?alt=media&#x26;token=83cf6970-7034-4541-9a2b-175689a8026e" alt=""></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FLAyCBRGblHIFIaB5EObc%2FUGC00002-picsart.jpg?alt=media&#x26;token=5cc208e8-80f3-4741-8323-b385e61ee024" alt=""></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2F03nkQk5NIXwJyiAyCa1l%2FUGC00003-picsart.jpg?alt=media&#x26;token=1d6bd782-36fe-4885-bc18-4d417552816c" alt=""></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FGWw6tfH3aWgoVPTtmukg%2FUGC00004-picsart.jpg?alt=media&#x26;token=d1752d81-7486-451d-b8ef-7f60831f7b00" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FuenQxkaygD2M0PcbIToY%2FUGC00005-picsart.jpg?alt=media&#x26;token=ae67ab0f-1e50-42a7-8e6a-27fc2bbc9afa" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FeRgcFpArZoXk8ttJOUpT%2FUGC00006-picsart.jpg?alt=media&#x26;token=ff4c9e3f-a52f-41e9-baad-7f10af6b08b7" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2F8BowXZkcYdSglK5gbT6o%2FUGC00008-picsart.jpg?alt=media&#x26;token=86204c11-4d88-416d-9167-67e4ac16ca2e" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FGWYUEDyRoqwKVIg36m3j%2FUGC00009-picsart.jpg?alt=media&#x26;token=f25a081d-b6fc-4456-a37c-5aed63eda7ee" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FCmW3Zlwqm1U8sVqRL1uj%2FUGC00010-picsart.jpg?alt=media&#x26;token=dfff2692-e23d-4e8e-967b-eef7a725f948" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FjAagYAK56d9yt4oVsRRi%2FUGC00012-picsart.jpg?alt=media&#x26;token=2c97d8a0-ddb0-42b0-b7cc-32f83a17edb5" alt=""></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FXZJpurKiaGdnqMSzThuS%2FUGC00011-picsart.jpg?alt=media&#x26;token=9d0775f7-59f5-441f-8d34-4533fe201b17" alt="" data-size="original"></td></tr></tbody></table>

{% hint style="info" %}
Picsart API doesn't support [positioning the subject](https://docs.photoroom.com/image-editing-api-plus-plan/positioning) to occupy all the space available, minus some padding.
{% endhint %}
{% endtab %}
{% endtabs %}

### Vendor Images

{% tabs %}
{% tab title="Original Images" %}

<table data-view="cards"><thead><tr><th></th></tr></thead><tbody><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FetiYq8m5bhULwfavZEpP%2FVendor00001.jpg?alt=media&#x26;token=927aeb1c-b02e-4085-a780-e5434669e6a6" alt=""></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FhiVStMDy4ZfREWY5YTGP%2FVendor00002.jpg?alt=media&#x26;token=d88fa403-e375-4106-b4c4-e7f20e6979f0" alt=""></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FtjnFm4rxOHKs0t2fwMan%2FVendor00003.jpeg?alt=media&#x26;token=fe6b1390-db24-4ec6-93c6-f96eb3d39b7a" alt=""></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2Fl5OXf3rNm4EhIDbUzcPH%2FVendor00004.jpg?alt=media&#x26;token=fdc17b03-cb6e-40e0-b19b-31b7e212be15" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2F7uXahURSmD74PAlGcCxc%2FVendor00005.jpeg?alt=media&#x26;token=3a361a98-a80e-40c8-87b2-3fb3252229b8" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FUG8oDYz3DH0mZsIe5EYd%2FVendor00006.png?alt=media&#x26;token=21eca2e6-28a2-42ff-95a1-2a77901c0094" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FX5puJt1NtqqYiuxF6l4p%2FVendor00007.jpg?alt=media&#x26;token=4cafc8cc-a1c0-45a1-a89a-db0c390ebdd1" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FGDwqXWy9bSV4lFNaeoTw%2FVendor00008.png?alt=media&#x26;token=710f7d19-50b9-4f69-bb71-c2213692fc1f" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FOtopJf2eEHJV8Q106b3m%2FVendor00009.png?alt=media&#x26;token=e7c6c6db-5143-4fe5-84e2-653b07dbbf97" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FhJ336KV3pLYLsq0deHM4%2FVendor00010.png?alt=media&#x26;token=099e1cdc-0f5c-4a42-9ea9-712f69903b8f" alt=""></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2Fyr5zHcvJOaXoSU8EgUVo%2FVendor00011.jpeg?alt=media&#x26;token=97f7797c-bf48-4eb2-9bb7-6f9a203a8de6" alt="" data-size="original"></td></tr></tbody></table>
{% endtab %}

{% tab title="Photoroom API" %}

<table data-view="cards"><thead><tr><th></th></tr></thead><tbody><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FKA81CRhjebKWMX1aYBlj%2FVendor00001-photoroom.png?alt=media&#x26;token=b3c847a8-d5aa-433e-9fa4-d0393dc9fee8" alt=""></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2Fsb61e35wlscRyyQQ83az%2FVendor00002-photoroom.png?alt=media&#x26;token=4eb24252-a612-405a-ba83-481b4b622984" alt=""></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FSdKSj9M6FYnRQbmDV4dJ%2FVendor00003-photoroom.png?alt=media&#x26;token=62a44f1a-6510-41b5-9919-b32be41d6648" alt=""></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FUvrRlkwHPJuoRCZ27F59%2FVendor00004-photoroom.png?alt=media&#x26;token=3ee9f7d5-fdb1-4f99-9bbc-7fcc6bbcd6fc" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FKEkKDTgd3PZOIOgwuwv9%2FVendor00005-photoroom.png?alt=media&#x26;token=21645df8-a83c-4bd1-9d4d-4dd7164834e3" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2F0Qa18PVRcTtWmxGH5B4P%2FVendor00006-photoroom.png?alt=media&#x26;token=2b9472fe-c142-468f-8d38-125b963b8164" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2Fb82zIfDCMzQ08rblqsb2%2FVendor00007-photoroom.png?alt=media&#x26;token=6f3e4827-70c1-4f9b-b82c-d1587fa50b39" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FlLnDW5RuZrelzmFNs9lY%2FVendor00008-photoroom.png?alt=media&#x26;token=b0042665-5390-412d-bb7a-ef4fcaea0113" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FgiMPgjmQ2c6l5XdpbPie%2FVendor00009-photoroom.png?alt=media&#x26;token=7f7cafa0-4dce-4642-9039-8c54edbd7c59" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FBLgwimY9pfyBTMHYzp9T%2FVendor00010-photoroom.png?alt=media&#x26;token=156c06c4-d1a8-4ae9-8a2a-d714349ee5d4" alt=""></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FwdezStLXHZZ9MxE2drZD%2FVendor00011-photoroom.png?alt=media&#x26;token=123c081e-bc1f-4481-8cd6-4b6278867d67" alt="" data-size="original"></td></tr></tbody></table>
{% endtab %}

{% tab title="Claid.ai API" %}

<table data-view="cards"><thead><tr><th></th></tr></thead><tbody><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FeVz0SPk5aOvYx1JzHuRi%2Fclaid-ai-1.png?alt=media&#x26;token=02253f69-4099-4721-b2c4-6e6e0cef22c6" alt=""></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FLMDnzYbddotpsZGY4vRM%2Fclaid-ai-2.png?alt=media&#x26;token=f3578983-eca5-4ae0-b04a-f86698c409a2" alt=""></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FPCBnnDIJsm026uzDgeES%2Fclaid-ai-3.png?alt=media&#x26;token=257c4a02-a68c-442a-8af2-24effa098152" alt=""></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2F4HEZruolK8HuKqy1P05r%2Fclaid-ai-4.png?alt=media&#x26;token=be657e41-dd13-4930-9939-87c02cef921d" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FrQ8ONEWKB7DllMn0EZ1V%2Fclaid-ai-5.png?alt=media&#x26;token=cea6bfa9-1fe9-49ef-9b1d-8c8bbdbbe9ff" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FDAA7Oohy40uZreAmjidt%2Fclaid-ai-6.png?alt=media&#x26;token=c0f965ee-7808-42ec-bb65-0bee29b5ad8d" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FjAl3i6en0kQ8L25xYxrD%2Fclaid-ai-7.png?alt=media&#x26;token=b6400ade-fb87-45a5-a78b-1960bfde4583" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FoZT0Mglk7m7paN40Co8X%2Fclaid-ai-8.png?alt=media&#x26;token=4c6567bc-e8a9-4fe9-ac8c-6edd7952bf73" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2Fbw1YrIiXjyFsVxbyKLiU%2Fclaid-ai-9.png?alt=media&#x26;token=b5b7050e-c971-4cf0-9784-eb418979ae16" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FBEKIGybiQKRr7C3lX3ML%2Fclaid-ai-10.png?alt=media&#x26;token=26ceeeda-e7ad-4ffc-a7b9-d426340dcadd" alt=""></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FAmv8s9NO8AuFZuIMKIWA%2Fclaid-ai-11.png?alt=media&#x26;token=2585acc3-34e0-474a-8129-4f55ca73369d" alt="" data-size="original"></td></tr></tbody></table>

{% hint style="info" %}
Claid.ai API doesn't support [positioning the subject](https://docs.photoroom.com/image-editing-api-plus-plan/positioning) to occupy all the space available, minus some padding.
{% endhint %}
{% endtab %}

{% tab title="Picsart API" %}

<table data-view="cards"><thead><tr><th></th></tr></thead><tbody><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FPPqYeTHi4cSrrYNbCaoE%2FVendor00001-picsart.jpg?alt=media&#x26;token=0881ba2c-d719-4d06-9745-46f5b8a35ff6" alt=""></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FKcAXPfDD1LJHEGx4zDzy%2FVendor00002-picsart.jpg?alt=media&#x26;token=85337f13-515a-47d2-a9fc-d8c3054be7bb" alt=""></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FkAORBGyyLfLg1c9dVX0b%2FVendor00003-picsart.jpg?alt=media&#x26;token=a89f3e0d-4de1-484a-8105-c67231421fa4" alt=""></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FB57Po8GI1FhHZAuF4nWR%2FVendor00004-picsart.jpg?alt=media&#x26;token=64613dc0-a508-418c-8e75-c6ad2a9e4ecd" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2FTFwcvZjkQqX9Imw1TZsG%2FVendor00005-picsart.jpg?alt=media&#x26;token=71b48e21-a64e-43e2-a330-510daa5c9b3d" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2Fqd3bE8DrrjEJVHPaZ8Km%2FVendor00006-picsart.jpg?alt=media&#x26;token=500f1cac-540b-4774-bb8a-4339f1615b78" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2Fw1HqRqlFnaAqjK3acAZE%2FVendor00007-picsart.jpg?alt=media&#x26;token=d5762c03-ac02-4b6d-b07f-700c6d546be0" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2Fq7AwsOyr7PrIbt8Es1wk%2FVendor00008-picsart.jpg?alt=media&#x26;token=4f2e183a-b234-447e-bb0e-b4b1b32db381" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2Fk949j7qjzF8AjyEjuFOG%2FVendor00009-picsart.jpg?alt=media&#x26;token=32fbf74b-0ee9-41e9-806e-165875d2b172" alt="" data-size="original"></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2F04D02HWVSJW1eNWHx5Xy%2FVendor00010-picsart.jpg?alt=media&#x26;token=57eb4613-9142-4d77-bb4f-5c22bf39bde0" alt=""></td></tr><tr><td><img src="https://2855892273-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1SYxn7dWbQYsNtUdJE3f%2Fuploads%2F4TyxMEQRbGLkvvSflJyc%2FVendor00011-picsart.jpg?alt=media&#x26;token=4e9b6f42-2f3d-4804-85f7-29211d2835b2" alt="" data-size="original"></td></tr></tbody></table>

{% hint style="info" %}
Please note that:

* Picsart API doesn't support [positioning the subject](https://docs.photoroom.com/image-editing-api-plus-plan/positioning) to occupy all the space available, minus some padding
* Image #08 being fully white is what was returned by Picsart API
  {% endhint %}
  {% endtab %}
  {% endtabs %}

## Reproducing the results

If you want to reproduce the results of this benchmark, here are the Python scripts that were used to generate the images.

{% tabs %}
{% tab title="Photoroom API" %}
{% hint style="info" %}
Before running this code, please download the original images that you want to re-process and place them in a directory called `original-images`.
{% endhint %}

```python
import os
import requests
import concurrent.futures

API_KEY = "YOUR_PHOTOROOM_API_KEY"

def process_image(input_image_path, output_image_path):
    try:
        url = "https://image-api.photoroom.com/v2/edit"

        with open(input_image_path, 'rb') as image_file:
            files = { "imageFile": image_file }

            headers = {
                "x-api-key": API_KEY
            }

            payload = {
                "outputSize": "1920x1080",
                "export.format": "jpg",
                "background.color": "white",
                "padding": "0.1",
                "ignorePaddingAndSnapOnCroppedSides": "false",
                "lighting.mode": "ai.auto",
            }

            response = requests.post(url, data=payload, files=files, headers=headers)
            response.raise_for_status()

            with open(output_image_path, 'wb') as f:
                f.write(response.content)
                print(f"Image downloaded and saved to {output_image_path}")

    except requests.RequestException as e:
        print(f"Error: {str(e)} ({input_image_path})")
        return str(e)
    
def iterate_over_directory(directory_path, result_directory):
    with concurrent.futures.ThreadPoolExecutor(max_workers=16) as executor:
        for root, _, files in os.walk(directory_path):
            for file in files:
                if file.lower().endswith(('.png', '.jpg', '.jpeg', '.webp', '.heic')):
                    file_path = os.path.join(root, file)

                    result_file_name = os.path.splitext(os.path.basename(file_path))[0] + '-photoroom.jpg'
                    result_file_directory = os.path.join(result_directory, os.path.basename(root))

                    if not os.path.exists(result_file_directory):
                        os.makedirs(result_file_directory)

                    result_path = os.path.join(result_file_directory, result_file_name)

                    if not os.path.exists(result_path): # don't re-process images 
                        executor.submit(process_image, file_path, result_path)    

if __name__ == "__main__":
    INPUT_DIRECTORY = "./original-images/"
    OUTPUT_DIRECTORY = "./result-photoroom/"

    if not os.path.exists(OUTPUT_DIRECTORY):
        os.makedirs(OUTPUT_DIRECTORY)

    iterate_over_directory(directory_path=INPUT_DIRECTORY, result_directory=OUTPUT_DIRECTORY)

```

{% endtab %}

{% tab title="Claid.ai API" %}

```python
import os
import requests

API_KEY = "YOUR_CLAID_AI_API_KEY"

def process_image(input_image_url, file_name, output_directory):
    try:
        url = "https://api.claid.ai/v1-beta1/image/edit"

        payload = {
            "input": input_image_url,
            "operations": {
                "background": {
                    "remove": True,
                    "color": "#ffffff",
                },
                "resizing": {
                    "width": 1920,
                    "height": 1080,
                    "fit": "canvas"
                },
                "padding": "10%",
            },
            "output": {
                "format": "png"
            }
        }

        headers = {
            "Authorization": f"Bearer {API_KEY}",
            "Content-Type": "application/json"
        }

        response = requests.post(url, json=payload, headers=headers)
        response.raise_for_status()

        data = response.json()

        tmp_url =  data['data']['output']['tmp_url']
        
        response = requests.get(tmp_url)
        response.raise_for_status()  # To ensure the request was successful

        output_image_path = os.path.join(output_directory, f"claid-ai-{file_name}.png")

        with open(output_image_path, 'wb') as f:
            f.write(response.content)
            print(f"Image downloaded and saved to {output_image_path}")

        return tmp_url

    except requests.RequestException as e:
        print(f"Error: {str(e)}")
        return str(e)

def iterate_over(image_urls, file_names, result_directory):
    for image_url, file_name in zip(image_urls, file_names):
        process_image(image_url, file_name, result_directory)   

if __name__ == "__main__":
    INPUT_DIRECTORY = "./original-images/"

    # UGC

    UGC_OUTPUT_DIRECTORY = "./result-claid-ai/UGC"

    if not os.path.exists(UGC_OUTPUT_DIRECTORY):
        os.makedirs(UGC_OUTPUT_DIRECTORY)

    UGC_IMAGES_URLS = [
        "https://firebasestorage.googleapis.com/v0/b/photoroom-demos.appspot.com/o/api-benchmark%2Fgrocery-images%2FUGC%2FUGC00001.png?alt=media&token=7be569f4-bfca-4bee-85b4-c41456d8d51a",
        "https://firebasestorage.googleapis.com/v0/b/photoroom-demos.appspot.com/o/api-benchmark%2Fgrocery-images%2FUGC%2FUGC00002.jpg?alt=media&token=1897e16e-0976-4678-afef-4c84cae8944e",
        "https://firebasestorage.googleapis.com/v0/b/photoroom-demos.appspot.com/o/api-benchmark%2Fgrocery-images%2FUGC%2FUGC00003.jpg?alt=media&token=89da64fe-1e99-43c0-b973-b7bf8d0fa087",
        "https://firebasestorage.googleapis.com/v0/b/photoroom-demos.appspot.com/o/api-benchmark%2Fgrocery-images%2FUGC%2FUGC00004.jpg?alt=media&token=ccfd60a4-5e72-4dc6-9593-1172260b2f9a",
        "https://firebasestorage.googleapis.com/v0/b/photoroom-demos.appspot.com/o/api-benchmark%2Fgrocery-images%2FUGC%2FUGC00005.jpg?alt=media&token=d3ce2f60-cb09-4021-9ce6-8ac6abf389c9",
        "https://firebasestorage.googleapis.com/v0/b/photoroom-demos.appspot.com/o/api-benchmark%2Fgrocery-images%2FUGC%2FUGC00006.jpg?alt=media&token=4c6e7292-8ec0-4077-88a4-d87446d67c57",
        "https://firebasestorage.googleapis.com/v0/b/photoroom-demos.appspot.com/o/api-benchmark%2Fgrocery-images%2FUGC%2FUGC00008.jpg?alt=media&token=c6ae512f-e8dd-45bc-91ba-16a5ce7481b1",
        "https://firebasestorage.googleapis.com/v0/b/photoroom-demos.appspot.com/o/api-benchmark%2Fgrocery-images%2FUGC%2FUGC00009.png?alt=media&token=96e9716c-7b7a-4a62-921b-a1dbf6ef1c73",
        "https://firebasestorage.googleapis.com/v0/b/photoroom-demos.appspot.com/o/api-benchmark%2Fgrocery-images%2FUGC%2FUGC00010.png?alt=media&token=c56f5a7d-ec06-4264-b86e-d678ced54730",
        "https://firebasestorage.googleapis.com/v0/b/photoroom-demos.appspot.com/o/api-benchmark%2Fgrocery-images%2FUGC%2FUGC00011.png?alt=media&token=f0db0074-a90c-4ef1-85a5-3d48c1e53748",
        "https://firebasestorage.googleapis.com/v0/b/photoroom-demos.appspot.com/o/api-benchmark%2Fgrocery-images%2FUGC%2FUGC00012.jpg?alt=media&token=2c76fee2-77f3-4f7f-8cfb-d189a9735139",
    ]

    # Vendor

    VENDOR_OUTPUT_DIRECTORY = "./result-claid-ai/Vendor"

    if not os.path.exists(VENDOR_OUTPUT_DIRECTORY):
        os.makedirs(VENDOR_OUTPUT_DIRECTORY)

    VENDOR_IMAGES_URLS = [
        "https://firebasestorage.googleapis.com/v0/b/photoroom-demos.appspot.com/o/api-benchmark%2Fgrocery-images%2FVendor%2FVendor00001.jpg?alt=media&token=a5ee4335-4891-498e-a41c-80851aece10c",
        "https://firebasestorage.googleapis.com/v0/b/photoroom-demos.appspot.com/o/api-benchmark%2Fgrocery-images%2FVendor%2FVendor00002.jpg?alt=media&token=a9118cc1-af0e-4556-b9d8-61fed070fcc7",
        "https://firebasestorage.googleapis.com/v0/b/photoroom-demos.appspot.com/o/api-benchmark%2Fgrocery-images%2FVendor%2FVendor00003.jpeg?alt=media&token=adf4edda-cf10-43ae-a4e8-7deaf7ca303a",
        "https://firebasestorage.googleapis.com/v0/b/photoroom-demos.appspot.com/o/api-benchmark%2Fgrocery-images%2FVendor%2FVendor00004.jpg?alt=media&token=7e4dc31e-5156-47af-b818-4ab09a82dd57",
        "https://firebasestorage.googleapis.com/v0/b/photoroom-demos.appspot.com/o/api-benchmark%2Fgrocery-images%2FVendor%2FVendor00005.jpeg?alt=media&token=1d47bbfd-9f7d-48cc-b49e-ac4eaf1888a3",
        "https://firebasestorage.googleapis.com/v0/b/photoroom-demos.appspot.com/o/api-benchmark%2Fgrocery-images%2FVendor%2FVendor00006.png?alt=media&token=18255a50-f3bb-4f70-a356-c924eefbeb88",
        "https://firebasestorage.googleapis.com/v0/b/photoroom-demos.appspot.com/o/api-benchmark%2Fgrocery-images%2FVendor%2FVendor00007.jpg?alt=media&token=dc66699e-680a-4414-92f6-6a5f5e218e79",
        "https://firebasestorage.googleapis.com/v0/b/photoroom-demos.appspot.com/o/api-benchmark%2Fgrocery-images%2FVendor%2FVendor00008.png?alt=media&token=1223e09e-e789-4a5c-8c9d-b7a5adc95fbe",
        "https://firebasestorage.googleapis.com/v0/b/photoroom-demos.appspot.com/o/api-benchmark%2Fgrocery-images%2FVendor%2FVendor00009.png?alt=media&token=4c0e5ccb-4199-4f07-bf24-2e62e54a0955",
        "https://firebasestorage.googleapis.com/v0/b/photoroom-demos.appspot.com/o/api-benchmark%2Fgrocery-images%2FVendor%2FVendor00010.png?alt=media&token=9f5144a7-9ed0-41d4-8039-ebb6c4282207",
        "https://firebasestorage.googleapis.com/v0/b/photoroom-demos.appspot.com/o/api-benchmark%2Fgrocery-images%2FVendor%2FVendor00011.jpeg?alt=media&token=e792985a-6392-47a9-9ea3-fc06b78d4aad",
    ]

    iterate_over(image_urls=UGC_IMAGES_URLS,file_names=list(map(str, range(1, len(UGC_IMAGES_URLS) + 1))), result_directory=UGC_OUTPUT_DIRECTORY)
    iterate_over(image_urls=VENDOR_IMAGES_URLS,file_names=list(map(str, range(1, len(VENDOR_IMAGES_URLS) + 1))), result_directory=VENDOR_OUTPUT_DIRECTORY)

```

{% endtab %}

{% tab title="Picsart API" %}
{% hint style="info" %}
Before running this code, please download the original images that you want to re-process and place them in a directory called `original-images`.
{% endhint %}

```python
import os
import requests
import concurrent.futures

API_KEY = "YOUR_PICSART_API_KEY"

def process_image(input_image_path, output_image_path):
    try:
        url = "https://api.picsart.io/tools/1.0/removebg"

        with open(input_image_path, 'rb') as image_file:
            files = { "image": image_file }

            headers = {
                "X-Picsart-API-Key": API_KEY
            }

            payload = {
                "export": "jpg",
                "bg_width": "1920",
                "bg_height": "1080",
                "bg_color": "#ffffff",
                "auto_center": "true",
                "scale": "fit",
            }

            response = requests.post(url, data=payload, files=files, headers=headers)
            response.raise_for_status()

            data = response.json()

            tmp_url =  data['data']['url']
            
            response = requests.get(tmp_url)
            response.raise_for_status()  # To ensure the request was successful

            with open(output_image_path, 'wb') as f:
                f.write(response.content)
                print(f"Image downloaded and saved to {output_image_path}")

    except requests.RequestException as e:
        print(f"Error: {str(e)} ({input_image_path})")
        return str(e)
    
def iterate_over_directory(directory_path, result_directory):
    with concurrent.futures.ThreadPoolExecutor(max_workers=16) as executor:
        for root, _, files in os.walk(directory_path):
            for file in files:
                if file.lower().endswith(('.png', '.jpg', '.jpeg', '.webp', '.heic')):
                    file_path = os.path.join(root, file)

                    result_file_name = os.path.splitext(os.path.basename(file_path))[0] + '-picsart.jpg'
                    result_file_directory = os.path.join(result_directory, os.path.basename(root))

                    if not os.path.exists(result_file_directory):
                        os.makedirs(result_file_directory)

                    result_path = os.path.join(result_file_directory, result_file_name)

                    if not os.path.exists(result_path): # don't re-process images 
                        executor.submit(process_image, file_path, result_path)    

if __name__ == "__main__":
    INPUT_DIRECTORY = "./original-images/"
    OUTPUT_DIRECTORY = "./result-picsart/"

    if not os.path.exists(OUTPUT_DIRECTORY):
        os.makedirs(OUTPUT_DIRECTORY)

    iterate_over_directory(directory_path=INPUT_DIRECTORY, result_directory=OUTPUT_DIRECTORY)

```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.photoroom.com/resources/grocery-delivery-image-api-benchmark-claid.ai-picsart.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
