Opublikowany przykład Qwen Image 2.1 LoRA: waga stylu wczytana przez pole loras.
Masz wytrenowaną LoRA w formacie .safetensors w bucketze albo w repozytorium Hugging Face i chcesz jej użyć bez rejestrowania, wgrywania czy czekania na akceptację. W Qwen Image 2.1 LoRA to jest pole żądania: adres URL i liczba siły, pobierane przy wykonaniu zadania. Model działa bez cenzury, a wagi, na które wskazujesz, nie są przeglądane.
To usuwa kolejkę wgrywania i przenosi jedną zależność na ścieżkę Twojego żądania: hosting, który serwuje Twoje wagi. Poniżej: jak wypróbować plik w Playground, kod do jego uruchomienia, które zepsute linki psują się od razu, a które później, i ile to kosztuje.
Najważniejsze
- LoRA to pole żądania, a nie coś, co się rejestruje.
lorasprzyjmuje do trzech wpisów{path, scale}; nic nie jest wgrywane, skanowane ani akceptowane. - Oba endpointy to przyjmują: tekst na obraz i edycja na podstawie referencji, więc wagi można zastosować także do klatek, które już masz.
- Część zepsutych linków psuje się od razu, część dopiero po przyjęciu zadania. Strona WWW zamiast pliku to 400; martwy hosting albo link wygasający później zostaje przyjęty i pada później, a zablokowana kwota wraca.
- Wczytanie to nie to samo co działanie. Porównaj z przebiegiem bez wag, tym samym promptem i tym samym seedem.
- Liczba LoRA nie zmienia ceny; przy edycji cenę zmienia liczba obrazów referencyjnych.
Najpierw spróbuj w Playground
- Otwórz stronę tekst na obraz i zostań w zakładce Playground, w widoku Form. Zaloguj się kontem z saldem, aby uruchomić.
- Napisz prompt opisujący scenę, nie styl; wygląd niech niosą wagi.
- W sekcji Style LoRAs wklej bezpośredni link do pliku w LoRA file i ustaw Strength (1 to normalny punkt wyjścia). Add item daje do trzech wag.
- Wybierz 1k na tanie pierwsze spojrzenie, a potem uruchom model.
- Żeby sprawdzić, czy wagi cokolwiek dały, ustaw Seed, uruchom raz, naciśnij Remove item i uruchom ponownie z tym samym promptem i seedem.
Treść żądania w Playground to ten sam JSON, który przyjmuje API, więc działającą tu konfigurację możesz wkleić wprost do kodu. Jeśli tutaj nie działa, napraw link lub wagi, zanim napiszesz choć jedną linię kodu.
Potem uruchom z kodu
Zainstaluj SDK Pythona (pip install spicyapi), ustaw SPICY_API_KEY w środowisku serwera i uruchom:
import uuid
from spicyapi import SpicyClient, output_assets
client = SpicyClient() # reads SPICY_API_KEY from the environment
task = client.create_task(
model="alibaba/qwen-image-2.1-lora/text-to-image",
input_data={
"prompt": "A fishing harbour at first light, rowing boats at their moorings, "
"the far quay dissolving into mist over the water.",
"loras": [{
"path": "https://huggingface.co/your-account/your-style-lora/resolve/<commit-sha>/style.safetensors",
"scale": 1,
}],
"aspect_ratio": "3:2",
"resolution": "1k",
"output_format": "webp",
},
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 nowTworzenie, oczekiwanie, pobieranie, ponowienia i kody błędów opisuje przewodnik po zadaniach oraz referencja SDK Pythona. Wyniki wygasają, więc zajrzyj do przechowywania i dostarczania, zanim oprzesz się na zwróconym linku.
Albo niech to wykona agent
Gdy generacje ma wykonywać asystent, wszystkie trzy oficjalne narzędzia pokazują cenę i pytają przed płatnym wywołaniem.
- CLI. Włóż ten sam obiekt
inputdoinput.json, a potem:
``bash spicyapi tasks create --model alibaba/qwen-image-2.1-lora/text-to-image --input-file input.json --wait ``
Zobacz dokumentację CLI; npx @spicyapi/cli działa bez instalacji.
- Serwer MCP. Dodaj serwer MCP do asystenta, a następnie poproś: „Uruchom Qwen Image 2.1 LoRA z tym promptem i tym linkiem do wag o sile 1.” Wywołuje
spicyapi_task_create, który zatrzymuje 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.
Tablica loras
loras przyjmuje do trzech wpisów { "path", "scale" } na obu endpointach: tekst na obraz i edycję na podstawie referencji (od 1 do 10 obrazów).
| Właściwość | Wartość | Dlaczego to ważne |
|---|---|---|
| Wpisy w żądaniu | Do 3 | Czwarty jest odrzucany natychmiast: loras: must contain at most 3 items |
path | Bezpośredni link HTTPS do pliku .safetensors | Pobierany w chwili generowania, przy każdym zadaniu, skąd go hostujesz |
scale | Od 0 do 4, domyślnie 1 | Siła względem modelu bazowego; 1 to typowa siła początkowa. Powyżej 4 jest odrzucane |
- Używaj linku do pliku, nie strony repozytorium. Adres repozytorium Hugging Face albo strona
blob/main/...zostają odrzucone. Użyj linkuresolve/...prowadzącego do samego pliku. - Nie ma rejestru. Nigdy nie dostajesz identyfikatora wagi ani listy „moje LoRA”. Seed stabilizuje serię, ale nie odtwarza kadru, więc trzymaj listę
{path, scale}, prompt, ustawienia i ID zadania obok każdego wyniku.
Wybieraj wagi udokumentowane jako zgodne z dokładnym zadaniem. Opublikowane przykłady Qwen Image 2.1 zawierają adaptery generacyjne 2512 oraz adaptery do edycji Edit 2511/2509, więc starsza wersja w nazwie pliku sama w sobie nie czyni pliku niekompatybilnym. Te starsze zadania są dostępne także przez Qwen Image 2512 LoRA, a nasz przewodnik Qwen Image 2.1 LoRA omawia, które starsze pliki przenoszą się na nowsze.
Które zepsute linki psują się przy wysłaniu
Gdy wysyłasz wagi, API próbuje linku. Jeśli hosting odpowie, a to, co wróci, nie jest plikiem, dostajesz 400 zanim istnieje jakiekolwiek zadanie i zanim zablokowano środki:
Twój path | Wynik |
|---|---|
Bezpośredni link do pliku na hostingu, który odpowiada (link resolve/... Hugging Face, Twój bucket) | Przyjęty |
| Plik zwracający 404 | 400: The LoRA link in loras does not lead to a file on <host>. Use the direct download link to the .safetensors file, not the model's web page |
Strona WWW zamiast pliku (strona repozytorium, strona blob/, dowolny HTML) | To samo 400 |
| Ścieżka Hugging Face prywatna albo nieistniejąca | 400: needs a sign-in on huggingface.co, so the model cannot download it |
Hosting, który się nie rozwiązuje, tekst, który nie jest URL-em, albo sama nazwa user/repo | Przyjęty przez wycenę; może paść po przyjęciu |
| Link działający teraz, przestający działać później | Przyjęty; pada po przyjęciu |
Obrazy referencyjne na endpoincie edycji dostają to samo traktowanie: brakujący plik image_urls to 400 z nazwą hostingu.
Te dwa wiersze „przyjęty” to właśnie te, przed którymi trzeba się bronić. Link, który umiera później (wygasły link podpisany, repozytorium, które stało się prywatne, przemianowany lub usunięty plik) powoduje błąd każdego żądania, które go wskazuje, bo wagi są pobierane przy każdym zadaniu. Na podstawie naszego testu z października 2026 zadanie, którego hosting wag się nie rozwiązuje, zostało przyjęte, a potem szybko (około 3 sekund) padło z invalid_request; blokada została zwrócona (cost wynosiło 0, settled wynosiło true), a komunikat mówił, że nie udało się wczytać LoRA z podanego linku. invalid_request zwraca też błędne dane wejściowe, więc sam kod nie wskazuje linku, a przy kilku wagach komunikat nie nazywa wpisu. Przygotuj diagnostykę, zanim jej potrzebujesz: po przyjętej wycenie błąd invalid_request oznacza, że najpierw sprawdź adresy URL wag.
Zawęź problem, opróżniając tablicę
Gdy przyjęte zadanie pada, wyślij to samo żądanie raz z pustym loras i nic więcej nie zmieniając. Sukces wskazuje na adapter, jego wczytywanie albo jego interakcję z żądaniem; sprawdzaj kolejno link, format pliku, zgodność i stos. Drugie niepowodzenie oznacza, że następne sprawdzenia to kod błędu zadania, obrazy źródłowe i stan usługi.
Trzymaj jedną wagę kanarkową
Trzymaj mały plik wag hostowany przez Ciebie, nigdy niezmieniany i o jednoznacznym efekcie, na przykład silną wagę stylu. Gdy paczka zaczyna się sypać, wykonaj jedną generację z kanarkiem. Jeśli działa, podejrzewaj swój adres URL wag. Jeśli ona też pada, sprawdź errorCode zadania i stan usługi, zanim zaczniesz ruszać ustawienia magazynu.
Sprawdzaj przy wdrożeniu, nie przy każdym żądaniu
Wykonaj darmową wycenę (spicyapi tasks quote --model alibaba/qwen-image-2.1-lora/text-to-image --input-file input.json) dla każdego adresu URL wag, do którego odwołuje się Twoja konfiguracja, w potoku wdrożenia i przy starcie usługi. To wyłapie wyraźnie nieużywalne linki, ale nie zgodność adaptera. Nie wyceniaj przed każdą generacją; to dodaje opóźnienie, a link i tak może umrzeć minutę później.
Przypnij adres, żeby nie mógł się przesunąć
- Hugging Face:
resolve/main/...podąża za gałęzią. Przypnij commit:resolve/<commit-sha>/<file>.safetensors. - Własny magazyn: wstaw skrót zawartości w klucz, na przykład
character-v7-4f9c81.safetensors, i nigdy nie nadpisuj klucza. - Wygasające podpisane URL: unikaj ich w konfiguracjach długowiecznych. Do zadań cyklicznych użyj stabilnego adresu albo wystawiaj świeży link tuż przed każdym wysłaniem, taki, który przetrwa zadanie i wszystkie ponowienia.
- Repozytoria innych firm: autorzy mogą w każdej chwili przemianować, zamknąć lub usunąć repozytorium. Jeśli plik jest niezbędny, skopiuj go do magazynu, który kontrolujesz, zgodnie z jego licencją, i przypnij swoją kopię.
Czy LoRA coś dała?

Opublikowany przykład stylu Qwen Image 2.1 LoRA. Pokazuje, co waga stylu potrafi zrobić z kadrem.
Odpowiedź nie ma pola informującego, że Twoje wagi zostały zastosowane, więc oceń to po obrazie. Plik może zostać pobrany poprawnie i mimo to zmienić prawie nic: przez niezgodne wagi, brak frazy wyzwalającej, słabą skalę albo nakładające się adaptery.
- Wybierz prompt, którego porażka jest oczywista: podmiot, który model bazowy renderuje fotograficznie, ze stylem, który waga ma narzucić.
- Opisuj scenę, nie styl. Poproś o „loose impressionist brushwork”, a sam prompt to wytworzy, więc oznaczysz wagę jako działającą. Niech wygląd niesie plik.
- Uruchom ten sam prompt i seed bez wag i porównaj. Jeśli wynik jest nieodróżnialny, porównanie nie wykazało widocznego efektu adaptera.
- Zmieniaj jedną wartość naraz: skala 1, potem 2, potem 3. Waga, która staje się wyraźnie mocniejsza, była po prostu słaba; taka, która pozostaje bierna na każdym kroku, jest zapewne zbudowana pod inną bazę. Sprawdź też bazowy model i słowa wyzwalające zalecane przez autora.
- Zapisz werdykt obok adresu URL i trzymaj wagi zgodne i niezgodne na osobnych listach.
Wagi są pobierane przed generowaniem, więc pierwsze wywołanie z nowym plikiem jest wolniejsze o dziesiątki sekund, a przy większych plikach jeszcze bardziej (około 25 sekund dodatkowo dla pliku 1,2 GB). Zaplanuj 90 do 120 sekund na pierwsze wywołanie.
Trzy miejsca
Trzy wpisy pokrywają typowy stos: wagę postaci utrzymującą osobę, wagę stylu domowego z mniejszą siłą i wagę detali dla skóry albo tkaniny.
- Zmieniaj jedną skalę na przebieg. Zmienisz dwie, nie przypiszesz wyniku do konkretnej wagi.
- Zostaw miejsce na wagi wspierające. Waga stylu o tej samej sile co waga postaci zwykle z nią walczy; ustaw wpis wspierający wyraźnie poniżej 1.
- Nie powtarzaj w prompcie tego, co waga już niesie.
- Ta rodzina nie ma promptu negatywnego. Wykluczenia umieszczaj w prompcie.
Ile to kosztuje
Ceny są za obraz:
| Endpoint | 1k | 1.5k | 2k |
|---|---|---|---|
| Tekst na obraz | 0,03 $ | 0,054 $ | 0,102 $ |
| Edycja, 1 referencja | 0,042 $ | 0,078 $ | 0,15 $ |
- Liczba LoRA nie zmienia ceny. Jeden wpis i trzy wyceniają się tak samo.
- Wczytywanie wag kosztuje premię względem modelu bazowego. Qwen Image 2.1 bez tablicy kosztuje 0,024 $ przy 1k i 0,048 $ przy 2k, więc zadanie, które nie potrzebuje wag, powinno wywoływać rodzinę bazową.
- Przy edycji każdy dodatkowy obraz referencyjny dolicza stałą kwotę: 0,012 $ przy 1k i 0,024 $ przy 2k.
| Żądanie edycji | 1k | 2k |
|---|---|---|
| 1 referencja | 0,042 $ | 0,15 $ |
| 2 referencje | 0,054 $ | 0,174 $ |
| 5 referencji | 0,09 $ | 0,246 $ |
| 10 referencji | 0,15 $ | 0,366 $ |
Krótko: najdroższe jest żądanie z wieloma obrazami referencyjnymi przy 2k, a nie takie z trzema LoRA.
Sto klatek tekst na obraz kosztuje 3,00 $ przy 1k i 10,20 $ przy 2k; sto edycji z dziesięcioma referencjami przy 2k kosztuje 36,60 $. Iteruj przy 1k i awansuj najlepsze do 2k.
Edycja z wagami
Nałóż wagę postaci na już zatwierdzony kadr, a pod spodem wagę stylu domowego o mniejszej sile:
{
"model": "alibaba/qwen-image-2.1-lora/edit",
"input": {
"prompt": "The source image is the character. Keep her face, her hair and the cut of the coat exactly as they are. Restage her on a wet city street at night, lit by shop windows from the left.",
"image_urls": ["https://cdn.example.com/approved/frame-0412.png"],
"loras": [
{ "path": "https://cdn.example.com/weights/character-v7-4f9c81.safetensors", "scale": 1 },
{ "path": "https://cdn.example.com/weights/house-grade-v2-0ab3de.safetensors", "scale": 0.45 }
],
"aspect_ratio": "4:5",
"resolution": "2k"
}
}Wyślij to tym samym kodem, używając alibaba/qwen-image-2.1-lora/edit jako modelu. Kopiuj wartości pól z aktualnego schematu na stronie modelu; przewodnik po generowaniu obrazów wyjaśnia, czym różnią się endpointy obrazu.
Wagi bez cenzury i z kategorii ograniczonych
Ta rodzina jest bez cenzury: nie ma flagi dojrzałości, nie ma przeglądu wag, na które wskazujesz, i nie ma skanowania treści dodanego przez SpicyAPI. Twoje obowiązki się nie zmieniają: tylko dorośli, wagi i dane treningowe, do których masz prawo, żadnych nieletnich w danych ani w wyniku, żadnych intymnych zdjęć bez zgody i żadnego podstępnego udawania prawdziwej, rozpoznawalnej osoby.
Następne kroki
Do modelu bazowego zobacz nasz test Qwen Image 2.1; do edycji bez pola maski nasz test Qwen Image Edit. Szerszy katalog modeli obrazu wymienia aktualny schemat i szacunek każdego modelu.
Częste pytania
Czy mogę uruchomić własną LoRA na API bez jej wgrywania?
Tak. loras przyjmuje do trzech wpisów {path, scale}, gdzie path to bezpośredni link do pliku .safetensors. Nie ma endpointu wgrywania, kolejki akceptacji ani listy dozwolonych.
Czy akceptuje linki Hugging Face?
Tak, w postaci https://huggingface.co/<user>/<repo>/resolve/<commit-sha>/<file>.safetensors. Strony repozytorium, strony blob/ oraz ścieżki prywatne lub nieistniejące są odrzucane.
Dlaczego moje żądanie z LoRA padło bez użytecznego błędu?
Najczęściej path przestał działać po przyjęciu zadania. Martwy hosting, wygasły link podpisany albo repozytorium, które stało się prywatne, pada z invalid_request, a ten sam kod zwraca też błędne dane wejściowe, więc sam kod nie nazywa linku. Blokada jest zwracana. Zawęź problem pustym loras albo najpierw sprawdź adresy URL wag.
Moja LoRA ledwo zmienia obraz. Co jest nie tak?
Sprawdź zadeklarowaną zgodność, frazę wyzwalającą i skalę, a potem porównaj ją samą, bez pozostałych wpisów. Starsze pliki Qwen nie są wszystkie niezgodne: kilka jest używanych w opublikowanych przykładach tego endpointu. Przejdź kroki ze skalą powyżej, zanim odrzucisz plik.
Ile LoRA mogę nałożyć i czy nakładanie kosztuje więcej?
Trzy na żądanie, każda z własną siłą. Czwarta jest odrzucana od razu. Jeden wpis i trzy wyceniają się tak samo, więc wybierz wagi, których potrzebujesz, a nie mniej. Przy edycji cenę przesuwa liczba obrazów referencyjnych.
Czy mogę użyć LoRA przy edycji istniejącego obrazu?
Tak. Endpoint edycji przyjmuje tę samą tablicę loras z jednym do dziesięciu obrazów referencyjnych. Wyślij zatwierdzony kadr jako referencję, powiedz w prompcie, co ma się zmienić, a pozwól wagom nieść tożsamość.
Co robi scale i co powinienem ustawić?
Waży LoRA względem modelu bazowego, od 0 do 4, przy czym 1 to typowa siła początkowa. Poniżej 1 wygląd jest subtelniejszy, powyżej 1 waga dominuje.
Jak odtworzyć obraz zrobiony konkretnym stosem?
Zapisz stos. Nie ma rejestru, a seed nie odtwarza kadru, więc trzymaj listę {path, scale}, prompt i ustawienia obok wyniku, a każdą ścieżkę przypnij do adresu, który nie może się przesunąć.





