Użyj spicyapi/object-eraser-v1/edit z image_url oraz krótkim prompt, mask_url albo obydwoma. W masce biel oznacza usunięcie, a czerń zachowanie, a jej wymiary w pikselach muszą odpowiadać obrazowi źródłowemu. Cena to 0,03 $ za obraz wynikowy, niezależnie od tego, ile obiektów usuwa zapytanie. Wynik zachowuje oryginalny rozmiar kanwy, a zaznaczony obszar jest wypełniany treścią otaczającej sceny.
Wybierz prompt lub maskę
Przy wyraźnie wyróżniającym się obiekcie z wolną przestrzenią wokół zacznij od krótkiego opisu:
biały papierowy kubek na podłodze obok przedniej prawej nogi krzesła
Podaj rzeczownik, widoczny kolor lub materiał i położenie. „Zrób scenę czystą i premium" nie wskazuje, co ma zniknąć. Prompt może mieć od 1 do 1000 znaków, ale dłuższy opis nie wskazuje celu precyzyjniej.
| Sytuacja | Które dane wejściowe |
|---|---|
| Jeden niepodważalnie wyraźny kubek na pustej podłodze | prompt nazywający ten kubek |
| Dwa podobne kubki, tylko jeden niechciany | mask_url na właściwym kubku |
| Cienki kabel albo obiekt dotykający krawędzi kadru | mask_url; opisy często je pomijają |
| Opis mógłby wskazać zły obiekt | Wyślij oba, opisując i zaznaczając ten sam cel |
| Potrzebne wycięcie krzesła na przezroczystym tle | Usuwanie tła |
| Potrzeba więcej miejsca wokół zdjęcia | Outpainting po oczyszczeniu |
Opis, który do niczego nie pasuje, zwraca obraz bez zmian, a zadanie i tak kończy się sukcesem. Porównaj więc wynik ze źródłem, zanim uznasz go za usunięcie.

Ilustracja z możliwymi zaznaczeniami. Wszystkie zaznaczone obiekty nadal są na miejscu; to nie jest wynik API.
Najpierw wypróbuj w Playground
- Otwórz stronę Object Eraser, zostań na karcie Playground w widoku Form i zaloguj się na konto z saldem, aby uruchomić zadanie.
- Dodaj zdjęcie w polu Input image (JPG, PNG lub WebP, do 10 MB). Upuść plik, wklej link przez Asset URL i Add URL albo wybierz plik z dysku.
- Opisz cel w polu Prompt, dodaj czarno-biały obraz w polu Mask albo wypełnij oba. Formularz wymaga co najmniej jednego z nich.
- Zostaw Output format na PNG (JPEG i WebP dają mniejsze pliki) i uruchom. Cena to 0,03 $ za obraz.
- Otwórz wynik obok oryginału i maski, a jeśli coś zostało, skorzystaj z tabeli błędów poniżej.
Panel Request body pokazuje ten sam JSON, który przyjmuje API, więc prompt lub maskę, które działają tutaj, można skopiować prosto do kodu. Jeśli tu zawodzi, popraw prompt lub maskę, zanim napiszesz linijkę kodu.
Zrób maskę na dokładnie tym obrazie, który wyślesz
Jeśli znasz już obszar (ramka z detektora albo zaznaczenie w interfejsie), wygeneruj maskę w kodzie. Jej rozmiar pochodzi ze źródła, więc zawsze się zgadza:
from PIL import Image, ImageDraw
src = Image.open("source.jpg") # apply EXIF rotation and crop first
mask = Image.new("L", src.size, 0) # black = keep
bbox = (src.width // 4, src.height // 3, src.width // 2, src.height // 2)
# Example coordinates only: adjust this box to the unwanted object in your photo.
ImageDraw.Draw(mask).rectangle(bbox, fill=255) # white = remove
mask.save("mask.png")Dla nieregularnych kształtów na źródle 2400×1600 przygotuj w edytorze graficznym maskę 2400×1600:
- Najpierw zakończ obrót i kadrowanie źródła i zapisz ten roboczy obraz.
- Dodaj czarną warstwę w pełnym rozmiarze kanwy i obniż jej krycie podczas rysowania, żeby cel pozostał widoczny.
- Pomaluj kubek na biało, razem z jego niechcianą krawędzią i cieniem kontaktowym, z niewielkim zapasem tam, gdzie jest miejsce. Noga krzesła zostaje czarna.
- Przywróć warstwie pełne krycie i wyeksportuj ją samą jako nieprzezroczysty czarno-biały PNG, a nie przyciemnione zdjęcie ani kolorowe adnotacje.
- Nałóż wyeksportowaną maskę na obraz roboczy i sprawdź białą strefę.
Zgodne proporcje nie wystarczą: oba pliki muszą mieć tę samą szerokość, wysokość, kadr i orientację. Nieco hojny kształt sprawdza się tam, gdzie w pobliżu nie ma niczego innego. Przykładowa maska ze strony modelu dla regału na krawędzi kadru to czarna kanwa wielkości zdjęcia z jednym zwykłym białym prostokątem nad regałem.
Cienie i odbicia mogą wystawać poza sylwetkę obiektu. Niechciane odbicie pomaluj jako osobny biały obszar. Tam, gdzie cień kubka zachodzi na cień osadzenia krzesła, nie maluj całej ciemnej plamy na biało, bo krzesło może zacząć wisieć w powietrzu. Maska wskazuje, co usunąć; nie dostarcza ukrytej podłogi ani geometrii produktu.
Duże lub zachodzące na siebie usunięcia wykonuj w osobnych przebiegach, budując każdą maskę na zaakceptowanym poprzednim wyniku. Dwa małe obiekty w jednym zapytaniu kosztują 0,03 $; dwa osobne zapytania kosztują 0,06 $. Trzymaj nazwy plików maski i obrazu w parze, żeby starsze zaznaczenie nie zmieniło po cichu nowszego zdjęcia.
Potem uruchom z kodu
Zainstaluj SDK Pythona (pip install spicyapi), ustaw SPICY_API_KEY w środowisku serwera i uruchom poniższe zapytanie. Używa ono przykładowego zdjęcia ze strony modelu, więc działa bez zmian. Pliki z komputera przechodzą przez client.upload_file i wracają jako adres spicy://. Do maski dodaj "mask_url" z własnym plikiem o tych samych wymiarach w pikselach co zdjęcie.
import uuid
from spicyapi import SpicyClient, output_assets
client = SpicyClient() # reads SPICY_API_KEY from the environment
task = client.create_task(
model="spicyapi/object-eraser-v1/edit",
input_data={
"image_url": "https://cdn.spicyapi.ai/models/examples/inputs/fbc8d531c80e6d0d.jpeg",
"prompt": "the wooden ladle lying across the sauna stones at the left",
"output_format": "png",
},
idempotency_key=str(uuid.uuid4()),
)
final = client.wait_for_terminal(task["taskId"])
if final["state"] != "succeeded":
raise RuntimeError(f"{task['taskId']} ended as {final['state']}: {final.get('errorCode')}")
print(output_assets(final)[0]["url"]) # copy the image to your own storage nowPrzesyłanie plików, tworzenie zadań, oczekiwanie, pobieranie, ponowne próby i kody błędów opisują przewodnik po zadaniach i dokumentacja SDK Pythona. Wygenerowane pliki są przechowywane najwyżej 14 dni, więc skopiuj wynik do własnego magazynu.
Albo pozwól uruchomić to agentowi
Gdy edycję ma wykonać asystent, wszystkie trzy oficjalne narzędzia pokazują cenę i pytają o zgodę przed płatnym wywołaniem.
- CLI. Prześlij zdjęcie i maskę, a potem utwórz zadanie:
``bash spicyapi files upload photo.jpg spicyapi tasks create --model spicyapi/object-eraser-v1/edit --input-file input.json --wait ``
Wstaw zwrócone adresy spicy:// do input.json jako image_url i mask_url. Zobacz dokumentację CLI; npx @spicyapi/cli działa bez instalacji.
- Serwer MCP. Dodaj serwer MCP do asystenta i poproś: „Usuń biały papierowy kubek z tego zdjęcia za pomocą Object Eraser; plik jest w /path/to/photo.jpg". Prześle plik przez
spicyapi_upload_file, wywołaspicyapi_task_create, które zatrzyma się na potwierdzenie ceny, a potemspicyapi_task_wait. - Skill.
npx skills add spicyapi-ai/spicy-skillinstaluje Agent Skill, dzięki któremu asystent programistyczny czyta aktualny schemat modelu zamiast zgadywać pola.
Napraw konkretny błąd, który widzisz
Otwórz erased.png obok oryginału i maski. Najpierw sprawdź, gdzie zaznaczenie styka się z zachowaną treścią, potem środek wypełnienia.
| Wynik | Co zmienić |
|---|---|
| Kubek nadal jest po zapytaniu tylko z promptem | Przełącz na maskę nałożoną na ten kubek. |
| Kabel zostaje przy krawędzi | Pomaluj na biało całą jego widoczną długość na masce w pełnej rozdzielczości. |
| Zostaje słaby zarys | Rozszerz zaznaczenie nieco poza krawędź obiektu, nie zakrywając sąsiednich krawędzi produktu. |
| Kubka nie ma, ale został ciemny owal | Dodaj do maski cień kontaktowy kubka, osobno od cienia krzesła. |
| Część nogi krzesła jest źle odbudowana | Zmniejsz maskę tam, gdzie zakrywa nogę. Jeśli kubek zasłania samą nogę, użyj innego zdjęcia źródłowego. |
| Porównanie różnic pokazuje zmianę na całym obrazie | Najpierw wyrównaj obrót i rozmiar; sam szum kompresji nie jest edycją. Sprawdź stałe punkty odniesienia. |
| Zapytanie zwraca 400 | Sprawdź, czy brakuje promptu i maski albo czy wysłano pola, których model nie ma, np. strength, mask_blur lub transparent_background. Za odrzucone zapytanie nic się nie pobiera. |

Ilustracja przedstawiająca kontrolę cieni i odbić. Nie pokazuje zakończonego usunięcia.
Model odbudowuje ukryte tło; nie może ujawnić, co naprawdę było za obiektem. W ofercie produktu nie akceptuj wymyślonego łączenia krzesła ani zmienionego szwu tapicerki tylko dlatego, że podłoga wygląda czyściej. Zrób nowe zdjęcie, gdy usunięty obiekt zasłania szczegół, który oferta musi pokazać dokładnie.
SpicyAPI nie uruchamia dla tego modelu żadnej kontroli bezpieczeństwa; o tym, co wróci, decyduje sam model.
Przechowuj źródło i maskę razem z zaakceptowanym wynikiem, a kolejny przebieg dodawaj tylko dla konkretnego pozostałego obiektu. Karta Examples na stronie modelu pokazuje prawdziwe wyniki przed i po.






